Arduino

**Arduino** adalah pengendali mikro dengan papan tunggal yang berfungsi dalam proyek perangkat lunak sumber terbuka. Fungsi utama dari Arduino untuk memudahkan penggunaan elektronik dalam berbagai bidang. Arduino memiliki perangkat keras yang menggunakan prosesor Atmel AVR. Sementara perangkat lunak yang dimiliki oleh Arduino terdiri dari beberapa alat yakni lingkungan pengembangan terpadu (IDE), penyunting teks, kompilator, Serial Monitor, dan Serial ISP Programmer.

Arduino juga merupakan senarai perangkat keras terbuka yang ditujukan kepada siapa saja yang ingin membuat purwarupa peralatan elektronik interaktif berdasarkan hardware dan software yang fleksibel dan mudah digunakan. Pada aplikasi Arduino, Mikrokontroler diprogram menggunakan bahasa pemrograman C atau C++, dengan pustaka khas arduino. Karena sifatnya yang terbuka maka siapa saja dapat mengunduh skema hardware arduino dan membangunnya.

Arduino menggunakan keluarga pengendali mikro ATMega yang dirilis oleh Atmel sebagai basis, namun ada individu/perusahaan yang membuat *clone* arduino dengan menggunakan mikrokontroler lain dan tetap kompatibel dengan arduino pada level perangkat keras. Untuk fleksibilitas, program dimasukkan melalui bootloader meskipun ada opsi untuk mem-bypass bootloader dan menggunakan pengunduh untuk memprogram pengendali mikro secara langsung melalui port ISP.

## Sejarah Singkat
Semuanya berawal dari sebuah tesis yang dibuat oleh Hernando Barragan, di Institute Ivrea, Italia pada tahun 2005, dikembangkan oleh Massimo Banzi dan David Cuartielles dan diberi nama *Arduin of Ivrea*. Lalu diganti nama menjadi Arduino yang dalam bahasa Italia berarti teman yang berani.

Tujuan awal dibuat Arduino adalah untuk membuat perangkat mudah dan murah, dari perangkat yang ada saat itu. Dan perangkat tersebut ditujukan untuk para siswa yang akan membuat perangkat desain dan interaksi.

Saat ini tim pengembangnya adalah Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino, David Mellis, dan Nicholas Zambetti. Mereka mengupayakan 4 hal dalam Arduino ini, yaitu:
# Harga terjangkau
# Dapat dijalankan diberbagai sistem operasi, Windows, Linux, Mac, dan sebagainya.
# Sederhana, dengan bahasa pemograman yang mudah bisa dipelajari orang awam, bukan untuk orang teknik saja.
# Open Source, hardware maupun software.

Sifat Arduino yang Open Source, membuat Arduino berkembang sangat cepat. Sehingga banyak lahir perangkat-perangkat sejenis Arduino. Seperti DFRDuino atau Freeduino, sedangkan untuk lokal ada SENTSOR Uno Plus yang dibuat oleh SENTSOR Electronics Indonesia, CipaDuino yang dibuat oleh SKIR70, MurmerDuino yang dibuat oleh Robot Unyil, ada lagi AViShaDuino yang salah satu pembuatnya adalah Admin Kelas Robot.

Sampai saat ini pihak resmi, sudah membuat berbagai jenis-jenis Arduino. Mulai dari yang paling mudah dicari dan paling banyak digunakan, yaitu Arduino Uno. Hingga Arduino yang sudah menggunakan ARM Cortex, berbentuk Mini PC. Hingga saat ini sudah ada ratusan ribu Arduino yang digunakan di dunia sejak tahun 2011. Arduino juga sudah dipakai oleh perusahaan-perusahaan besar, contohnya Google menggunakan Arduino untuk Accessory Development Kit, NASA memakai Arduino untuk prototypin, ada lagi Large Hadron Colider memakai Arduino dalam beberapa hal untuk pengumpulan data.

Salah satu komponen dari arduino (yakni *text-editor*) dibangun menggunakan Java. Hal ini mengakibatkan banyak yang mengira bahasa arduino adalah bahasa baru turunan dari Java. Arduino sebenarnya menggunakan bahasa C / C++, dengan *compiler* avr-gcc yang sama dengan yang dipakai pada avr-studio. Aturan proses kompilasi sudah disediakan oleh aplikasi Arduino, di mana berkas kode utama dengan ekstensi *ino* akan hubungkan dengan berkas-berkas lain. Telah disediakan pula rutin utama C++ (fungsi *main*) yang memanggil fungsi *setup* dan *loop* dari file kode utama berekstensi *ino*. Kombinasi *[[Pustaka (perangkat lunak)|pustaka]]* Arduino dengan aturan kompilasi (*[[Makefile]] [[GNU Compiler Collection|avr-gcc]]*) ini memudahkan siapa saja menggunakan Arduino tanpa harus faham tentang C++. Sehingga orang awam pun bisa menjadi seniman digital, bisa mempelajari Arduino dengan mudahnya. Plugin yang disediakan pada software Arduino memungkinkan komunitas untuk menambahkan bermacam compiler lain selain avr-gcc, bahkan dukungan untuk prosesor lain selain Atmel AVR.

## Jenis

### Arduino Uno
Jenis yang ini adalah yang paling banyak digunakan. Terutama untuk pemula sangat disarankan untuk menggunakan Arduino Uno. Banyak sekali referensi yang membahas Arduino Uno. Versi yang terakhir adalah Arduino Uno R3 (Revisi 3), menggunakan ATMEGA328 sebagai pengendali mikronya, memiliki 14 pin I/O digital dan 6 pin input analog. Untuk pemprograman cukup menggunakan koneksi USB type A to To type B. Sama seperti yang digunakan pada USB printer.

### Arduino Due
Berbeda dengan saudaranya, Arduino Due tidak menggunakan ATMEGA, melainkan dengan chip yang lebih tinggi ARM Cortex CPU. Memiliki 54 I/O pin digital dan 12 pin input analog. Untuk pemprogramannya menggunakan Micro USB, terdapat pada beberapa handphone.

### Arduino Mega
Mirip dengan Arduino Uno, sama-sama menggunakan USB type A to B untuk pemprogramannya. Namun, Arduino Mega, menggunakan Chip yang lebih tinggi ATMEGA2560. Dan tentu saja untuk Pin I/O Digital dan pin input Analognya lebih banyak dari Uno.

### Arduino Leonardo
Bisa dibilang Leonardo adalah saudara kembar dari Uno. Namun banyaknya pin I/O digital, pin input Analog, dan input output PWM berbeda dari Arduino Uno. Hal ini dikarenakan Arduino Leonardo menggunakan pengendali mikro ATmega32u4.

ATMega32u4 ini telah memiliki fitur komunikasi USB yang terintegrasi, sehingga pada Arduino Leonardo tidak memerlukan tambahan pengendali mikro pengatur komunikasi USB ke TTL Serial seperti yang terdapat pada board Arduino Uno yang menggunakan tambahan ATMEGA16U2 disamping ATMEGA328P. Dengan ATMega32u4, memungkinkan Arduino Leonardo untuk berkomunikasi sebagai Keyboard/Mouse dengan protokol USB-HID menggunakan pustaka Keyboard.

### Arduino Fio
Bentuknya lebih unik, terutama untuk socketnya. Walau jumlah pin I/O digital dan input analognya sama dengan uno dan leonardo, tapi Fio memiliki Socket XBee. XBee membuat Fio dapat dipakai untuk keperluan projek yang berhubungan dengan wireless.

### Arduino Lilypad
Bentuknya yang melingkar membuat Lilypad dapat dipakai untuk membuat projek unik. Seperti membuat amor iron man misalkan. Hanya versi lamanya menggunakan ATMEGA168, tapi masih cukup untuk membuat satu projek keren. Dengan 14 pin I/O digital, dan 6 pin input analognya.

### Arduino Nano
Sepertinya namanya, Nano yang berukuran kecil dan sangat sederhana ini, menyimpan banyak fasilitas. Sudah dilengkapi dengan FTDI untuk pemograman lewat Micro USB. 14 Pin I/O Digital, dan 8 Pin input Analog (lebih banyak dari Uno). Dan ada yang menggunakan ATMEGA168, atau ATMEGA328.

### Arduino Mini
Fasilitasnya sama dengan yang dimiliki Nano. Hanya tidak dilengkapi dengan Micro USB untuk pemograman. Dan ukurannya hanya 30&nbsp;mm x 18&nbsp;mm saja.

### Arduino Micro
Ukurannya lebih panjang dari Nano dan Mini. Karena memang fasilitasnya lebih banyak yaitu; memiliki 20 pin I/O digital dan 12 pin input analog.

### Arduino Ethernet
Ini arduino yang sudah dilengkapi dengan fasilitas ethernet. Membuat Arduino kamu dapat berhubungan melalui jaringan LAN pada komputer. Untuk fasilitas pada Pin I/O Digital dan Input Analognya sama dengan Uno.

### Arduino Esplora
Rekomendasi bagi kamu yang mau membuat gadget sepeti Smartphone, karena sudah dilengkapi dengan Joystick, button, dan sebagainya. Kamu hanya perlu tambahkan LCD, untuk lebih mempercantik Esplora.

### Arduino Robot
Ini adalah paket komplet dari Arduino yang sudah berbentuk robot. Sudah dilengkapi dengan LCD, Speaker, Roda, Sensor Infrared, dan semua yang kamu butuhkan untuk robot sudah ada pada Arduino ini.

## Contoh program

```c
int LED_PIN = 13;

void setup ()
{
    pinMode (LED_PIN, OUTPUT);     // aktifkan pin 13 untuk output digital
}

void loop ()
{
    digitalWrite (LED_PIN, HIGH);  // menyalakan LED
    delay (2000);                  // Tunggu 2 detik (2000 millisekon)
    digitalWrite (LED_PIN, LOW);   // matikan LED
    delay (2000);                  // Tunggu 2 detik
}
```


## Papan yang kompatibel dengan Arduino
Karena rancangan hardware dan software Arduino bersifat open-source, produsen lain bebas untuk menirunya, misalnya:
* SENTSOR Uno Plus
*Freeduino
* Robotdyn
* Freeduino MaxSerial
* Zigduino
* Panjerino

## Bacaan lanjutan
* *Getting Started with Arduino*; Massimo Banzi, Michael Shiloh; 262 pages; 2014; .
* *Make: Sensors*; Tero Karvinen, Kimmo Karvinen, Ville Valtokari; 400 pages; 2014; .
* *Arduino For Dummies*; John Nussey; 446 pages; 2013; .
* *Programming Arduino Next Steps: Going Further with Sketches*; Simon Monk; 2013; .
* *Exploring Arduino: Tools and Techniques for Engineering Wizardry*; Jeremy Blum; 384 pages; 2013; .
* *Arduino Workshop: A Hands-On Introduction with 65 Projects*; John Boxall; 392 pages; 2013; .
* *Beginning C for Arduino: Learn C Programming for the Arduino and Compatible Microcontrollers*; Jack Purdum; 280 pages; 2012; .
* *Programming Arduino: Getting Started With Sketches*; Monk Simon; 162 pages; 2011; .
* *Arduino: A Quick Start Guide*; Maik Schmidt; Pragmatic Bookshelf; 276 pages; 2011; .
* *Make: Electronics (Learning by Discovery)*; Charles Platt; 352 pages; 2009; .

## Referensi

## Pranala luar
* Situs resmi Arduino