«

»

Apr 17

Arduino : Sebuah Pilihan

Arduino merupakan platform perangkat keras berbasis AVR – menggunakan ATmega8 atau ATmega168 atau ATmega328, lengkap dengan lingkungan untuk pemrogramannya (IDE – Integrated Development Environment).

IDE Arduino dikembangkan dengan Java, dengan bahasa Processing. Di dalam chip AVR yang digunakan sudah ditanam sebuah program bootloader, yang berisi protokol komunikasi, agar program bisa di-download ke dalam chip melalui jalur serial alias tidak memerlukan downloader khusus.

Arduino dikembangkan untuk bertempur dengan BASIC Stamp – sebuah mikrokontroler turunan PIC yang dikembangkan oleh Parallax. Namun harus diakui, walaupun BASIC Stamp memiliki harga yang cukup tinggi ($49), namun peminatnya tetap fanatik.

Pemrograman Arduino – yang disebut sketch – mirip dengan kode dalam Bahasa C. Sejak awal memang dibuat sedemikian, untuk memudahkan penggunanya. Program kemudian diterjemahkan menjadi kode-kode Bahasa C yang dimengerti oleh WinAVR, sebuah C Compiler gratisan untuk mikrokontroler AVR. Selanjutnya, file .hex yang dihasilkan di-download ke dalam chip. Proses download dapat dilakukan secara tradisional – melalui ISP Downloader, atau melalui menu yang disediakan dalam IDE. Pilihan kedua hanya dimungkinkan bila chip sudah diisi dgn bootloader yang telah disediakan.

Saya sempat mencicipi IDE yang disediakan, membuat sebuah program kecil – LED Blinking, salah satu program contoh yang disediakan, kemudian meng-kompilasinya. Hasilnya, sebuah file .hex berukuran lebih dari 4k ! Padahal, bila menggunakan WinAVR secara langsung – pemrograman dengan Bahasa C – hasilnya kurang dari 200 bytes!

Kelihatannya, standard library dari Arduino ikut di-download sehingga ukurannya menjadi sebesar itu.  Tidak jadi soal karena tidak akan mempengaruhi performance. Yang penting, aplikasi bisa segera terwujud 😉

Berikut adalah contoh program dalam Arduino:

int ledPin = 13;

void setup()
{
  pinMode(ledPin, OUTPUT);
}

void loop()
{
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}

Berikut adalah contoh yang sama untuk BASIC Stamp:

'{$PBASIC 2.5}
OUTPUT 14
DO
  HIGH 14
  PAUSE 1000
  LOW 14
  PAUSE 1000
LOOP