Belajar Sensor dan Aktuator menggunakan Grove Starter Kit

Pendahuluan

Grove is a modular electronics platform for quick prototyping that does not involve soldering or bread boarding. Simply plug the Grove modules into the Grove shield and leverage the example code provided for each Grove module. The Grove Starter Kit contains a multitude of sensors and actuators, so you can start messing around with projects. (Grove at Wikipedia)

Pernahkah sobat terbayangkan membuat purwarupa pengukur suhu dengan tampilan LCD tanpa harus menggunakan breadboard atau solder-menyolder, cuman colokin-colokin saja kayak lego? Atau bikin kontrol servo menggunakan potensiometer? Atau bikin kontrol LED menggunakan sensor cahaya?

Yah bisa jadi penggunaan breadboard atau kegiatan solder-menyolder menjadi hambatan untuk tetap terus belajar… atau memang enggan pake simulator yang harus di-crack sehingga merasa berdosa menggunakan perangkat lunak ilegal… lagian juga kalo bisa dicoba secara nyata… secara real, why not? iya nggak…?

[jika Anda berdomisili di DIY atau Jawa Tengah, bergabunglah dengan komunitas Arduino Joglosemar]

Nah alhamdulillah… sudah ada yang bikin modul dengan nama Grove Starter Kit yang berisikan sekitar 11 modul plus 1 buah shield dasar (base shield) yang bisa digunakan bersama dengan Arduino — sebuah platform mikrokontroler yang saat artikel ini ditulis mengalami booming alias nge-trend luar biasa!

Tentang Grove

Grove Starter Kit v3.0

Sejak awal, Grove memang ditujukan untuk sarana belajar yang praktis, seperti pada Lego, bagian-bagian sensor dan aktuatornya dibikin dalam bentuk modul-modul yang tinggal dicolokin ke base shield yang sudah disediakan.

Continue reading

Posted in arduino, Mikrokontroler | Tagged , , , | 1 Comment

Multithreading Pada Mikrokontroler

multithread sulhanMultithreading artinya mengerjakan banyak tugas atau thread sekaligus. Pembagian waktu adalah kuncinya. Thread yang banyak tidak bekerja terus-menerus, melainkan sering berada dalam kondisi menunggu. Biasanya, kondisi menunggu diwujudkan dengan loop yang panjang, yang disebut delay. Kebanyakan, program sederhana akan melewatkan
kondisi menunggu begitu saja tanpa melakukan apa-apa. Jika program berlaku seperti itu, sementara masih banyak pekerjaan lain yang belum selesai, maka “keputusan” tersebut menjadi sia-sia belaka.

Ada yang disebut teknik Sleep, ketika suatu thread hanya sedang menunggu. Thread tersebut menyerahkan jatah waktunya kepada thread lain yang membutuhkannya. Ada lagi teknik dinamis, ketika suatu thread dibutuhkan dan dibuat. Ketika sudah tidak dibutuhkan, thread akan dihapus. Masih ada banyak teknik lain yang dibahas dalam buku Teknik Pemrograman dan Multithreading Pada Mikrokontroler karya Sulhan Setiawan (klik disini untuk order).

Untuk siapa buku ini?

Continue reading

Posted in Mikrokontroler | 4 Comments

NuEDU UNO: Arduino dengan Cita Rasa ARM Cortex M0

Baru saja NUVOTON mengeluarkan produk papan pengembang sederhana yang kompatibel dengan Arduino namun dengan mikrokontroler Nuvoton NUC131SD2AE, sebuah mikrokontroler 32bit dengan inti (core) ARM(R) Cortex M0 yang terintegrasi didalamnya, berikut ini penampakan boardnya NuEDU UNO…

nuedu

Mikrokontroler NUC131SD2AE merupakan salah satu dari sekian banyak mikrokontroler 32-bit keluarga NUC131 keluaran Nuvoton. Ditujukan untuk kontrol dalam dunia industri dan aplikasi-aplikasi yang banyak membutuhkan antarmuka komunikasi yang beragam. NUC131 dapat diberikan clock hingga 50MHz, memiliki flash sebesar 64K-byte dan 8K-byte untuk SRAM. Dilengkapi dengan berbagai fungsi periferal seperti CAN, I/O, timer, UART, SPI, PWM, ADC, Watchdog Timer dan Brown-out Detector. Berikut diagram blok dari NUC131…

EN_NUC131AE

Berikut peta fasilitas pin pada papan NuEDU UNO, perhatikan perbedaan antara fasilitas dari NUC131-nya dengan standar Arduino-nya.

nuedu_board

Langkah Persiapan

Asumsi: Sudah pernah pake Arduino apa saja dan Arduino IDE

Persiapan Software Arduino

  1. Download Arduino versi 1.5.8 sebagaimana disarankan Nuvoton (versi windows atau windows installer), kemudian install Arduino tersebut;
  2. Klik disini untuk mengunduh skematik, user guide dan patch-nya;
  3. Jalankan program “NuMicro_Patch_For_Arduino1.5.8” (klik disini untuk mengunduh) yang akan digunakan untuk melengkapi pustaka khusus NuEdu Uno di Arduino 1.5.8 – pada program tsb, pilih folder dimana tadi Anda menginstall Arduino 1.5.8-nya, klik OK;
  4. Sudah selesai – Arduino 1.5.8 siap untuk NuEdu UNO-nya.

Koneksi NuEdu UNO ke PC

  1. Lakukan instalasi “NuMicro_ICP_Programming_Tool” (klik disini untuk mengunduhnya) – jika sudah selesai instalasi, koneksi-kan NuEdu UNO ke PC;
  2. Cek pada Device Manager apakah NuEdu UNO nya sudah mendapatkan port COM serial – catat nomor COM-nya (nanti diperlukan untuk koneksi ke Arduino IDE-nya;
  3. Pada Arduino IDE-nya dipilih board “NuEdu UNO”
  4. Selamat bersenang-senang dengan Arduino IDE dan NuEdu UNO!

Pembahasan lebih lanjut? Software atau user manual? Yang jelas siapkan saja Arduino 1.5.8 yang kemudian nantinya di-patch dengan software NuEDU UNO agar pustaka, device dan lain-lainnya menyesuaikan ke board tersebut.

blink_nuedu

To be continued alias bersambung…

Posted in arduino, Mikrokontroler | Tagged , , , , , | 3 Comments

Paket Belajar AVR Mudah menyenangkan!!

Anda mengalami kesulitan dalam belajar Mikrokontroler AVR??

Bingung memilih/menentukan hardware
yang bisa dipakai dengan mudah untuk
belajar Mikrokontroler AVR?

Pingin yang simpel, murah dan komplit untuk
belajar Mikrokontroler AVR?

Paket Hardware dengan Kelengkapan Tutorial Lengkap Harga PROMO, mau?

Kekhawatiran Anda akan berakhir! Kesulitan Anda akan segera teratasi Apa yang Anda cari akan segera ditemukan!

Rekan-rekan yang berbahagia…

Apakah Anda sedang mengalami kesulitan belajar mikrokontroler AVR? Apakah Anda sedang mencari hardware untuk belajar mikrokontroler AVR plus downloader-nya dengan harga yang murah dan terjangkau?? Adakah hardware pembelajaran mikrokontroler AVR yang cukup lengkap? Maka Anda sudah berada pada halaman artikel saya yang TEPAT ini! Mengapa? Karena saat ini sudah hadir dan bisa Anda miliki sebuah papan pengembang sekaligus untuk belajar Mikrokontroler AVR yaitu AVR Basic Trainer Board versi 8.0!

 Image

AVR Basic Trainer Board (V8.0) BARU!

Mengapa alat ini saya rekomendasikan?

Continue reading

Posted in Uncategorized | Tagged , , , , | Leave a comment

ARM Cortex™-M0 NuMicro® Family

NuMicro® Family is Nuvoton’s brand-new 32-bit Microcontroller product line based on the ARM® Cortex™-M0 processor with rich peripherals to offer superb features and connectivity capability. Besides the NUC100, NUC120, NUC130 and NUC140 series, a new series the NuMicro M051™ series, including the M052/54/58/516 is to satisfy the worldwide customers’ 8-bit/16-bit microcontroller demand with a higher performance of a 32-bit microcontroller.

to be continued…

Posted in Uncategorized | Tagged , , , | Leave a comment

Implementasi FFT (Fast Fourier Transform) 16-Titik pada FPGA ALTERA Keluarga FLEX-10K menggunakan VHDL

Oleh Agfianto Eko Putra dan Eka Budi Santosa

Telah dilakukan implementasi FFT 16-titik berbasis FPGA Altera keluarga FLEX-10K menggunakan deskripsi VHDL . Implementasi FFT ini didasarkan pada algoritma Radix-2 Decimation-In-Frequency. Implementasi dilakukan pada 2 (dua) macam FPGA Altera Keluarga FLEX-10K, yaitu EPF10K20TC144-3 (FLEX-10K) dan EPF10K30ETC144-1 (FLEX-10KE). Analisis pewaktuan, untuk FPGA tipe EPF10K20TC144-3, menunjukkan bahwa sistem mampu diberikan detak (clock) hingga 26,73 MHz dan melakukan proses FFT 16-titik dalam waktu 16,75 mikrodetik. Sedangkan tipe EPF10K30ETC144-1, maksimum frekuensi detak-nya adalah 60,97MHz dan melakukan proses yang sama dalam waktu 7,35 mikrodetik.

Selengkapnya bisa diunduh di sini

Posted in FPGA | Tagged , , , | Leave a comment

Perancangan Aplikasi Real Time (2): Solusi Tanpa RTOS

SINOPSIS

Melanjutkan artikel sebelumnya, perlu diketahui bahwa tidak setiap aplikasi membutuhkan sistem operasi atau tepatnya RTOS. Hmmm, jadi langsung saja, artikel ini memberikan gambaran tentang solusi tanpa menggunakan sistem operasi, yang nantinya kita evaluasi dan simpulkan baik buruknya, kelebihan kelemahannya. Okey, take a deep breath, ambil napas yang dalem,…. Tahan…. dan jangan dikeluarkan… what?! he he he just kidding… ya silahkan dilepaskan pelan-pelan… (maksudnya supaya santai dulu relaks)

IMPLEMENTASI

Solusi yang dibahas kali ini menggunakan pendekatan kalang (loop approach), dimana setiap komponen aplikasi dinyatakan dalam bentuk fungsi yang harus dijalankan hingga selesai. Idealnya digunakan pewaktu perangkat keras untuk melakukan penjadwalan fungsi-fungsi kontrol yang kritis. Namun, menunggu datangnya data dan perhitungan data yang begitu kompleks menyebabkan fungsi kontrol tidak cocok untuk dijalankan dalam batasan rutin layanan interupsi. Seberapa banyak dan urutan komponen mana yang dikerjakan dalam kalang tak-hingga dapat diatur dengan memasukkan unsur prioritas, silahkan perhatikan pembahasan dalam contoh nantinya.

FUNGSI KONTROL PROSES (PLANT)

Perhatikan kode pseudo berikut…

void PlantControlCycle( void )
{  
  TransmitRequest();
  WaitForFirstSensorResponse();
  if( terima data dari sensor pertama )
  {
    WaitForSecondSensorResponse();
    if( terima data dari sensor kedua )
    {
      PerformControlAlgorithm();
      TransmitResults();
    }
  }
}

FUNGSI ANTARMUKA PENGGUNA Fungsi ini meliputi antarmuka keypad, LCD, komunikasi RS232 dan server WEB tertanam. Perhatikan kode pseudo berikut…

int main( void ) 
{
  Initialise();
  for( ;; )
  {
    ScanKeypad();
    UpdateLCD();
    ProcessRS232Characters();
    ProcessHTTPRequests();
  } 
// seharusnya tidak pernah sampai disini 
  return 0; 
}

Ada dua asumsi: Pertama, masukan/luaran komunikasi di-buffer melalui rutin layanan interupsi, sehingga periferal yang terkait tidak perlu melakukan polling (proses menunggu terus menerus). Kedua, fungsi pemanggilan fungsi dalam kalang dikerjakan secepat mungkin sehingga semua syarat pewaktuan dipenuhi.

PENJADWALAN FUNGSI KONTROL PROSES

Ingat kembali bahwa kontrol proses dilakukan dalam batasan waktu 10md, perhatikan kode pseudo berikut ini…

// Flag digunakan untuk menandai waktu 
// saat siklus kontrol dimulai. 
int TimerExpired;
// Rutin layanan untuk interupsi pewaktu. 
// Dikerjakan setiap 10md. 
void TimerInterrupt( void ) 
{ 
  TimerExpired = true; 
}
// main() masih mengandung kalang tak-hingga 
// dimana pemanggilan fungsi kontrol proses 
// ditambahkan 
int main( void ) 
{ 
  Initialise(); 
  for( ;; ) 
  { 
    if( TimerExpired ) 
    { 
      PlantControlCycle();
      TimerExpired = false; 
      ScanKeypad(); 
      UpdateLCD(); 
// LED dapat menggunakan layanan interupsi 
// atau pewaktu lain yang berbeda 
      ProcessLEDs(); 
// Buffer untuk komunikasi harus cukup besar 
// agar bisa menampung data 10md. 
      ProcessRS232Characters(); 
      ProcessHTTPRequests(); 
    } 
// mikrokontroler bisa dibuat 'tidur' 
// disini dan akan dibangunkan dengan 
// adanya interupsi. 
  } 
// seharusnya tidak pernah sampai disini 
  return 0; 
}

Hmm… solusi awal ini belum bisa diterima, karena beberapa hal:

  • Misalnya ada jeda atau kegagalan pada fieldbus akan menyebabkan penambahan waktu eksekusi dari fungsi PlantControlSycle(), sehingga eksekusinya menjadi lebih lama, artinya syarat pewaktuan akhirnya tidak dipenuhi (tidak bisa selesai dalam kurun waktu kurang dari 10md).
  • Semua fungsi yang dijalankan untuk tiap siklus juga bisa mengakibatkan pewaktuan siklus kontrol bisa tidak dipenuhi (sekali lagi hal ini karena ada batasan 10md harus dilakukan pengulangan proses kontrol dari awal.
  • Ada beberapa hal yang bisa dijalankan jika ada permintaan. Misalnya, eksekusi untuk fungsi ProcessHTTPRequest() dapat diabaikan jika tidak ada permintaan HTTP, tetapi akan memakan waktu lama jika ada permintaan sehingga bisa menganggu yang lain.
  • Tidak mampu dipertahankan – adanya ketergantungan pada setiap fungsi yang sedang dikerjakan dalam rentang waktu maksimum.
  • Penyangga (buffer) komunikasi hanya dilayani sekali setiap siklus yang mengharuskan ukurannya sepadan dengan data setara waktu yang dibutuhkan

Continue reading

Posted in Mikrokontroler | Tagged , , , , , | Leave a comment