«

»

Aug 30

Arduino : Plus dan Minus

Arduino merupakan platform prototyping mikrokontroler yang luar biasa, hadir dalam sejumlah “cita rasa”, dengan sekian banyak proyek open source, tutorial, forum, dan yang lainnya. Sangat ideal untuk mereka yang mulai bermain dengan embedded hardware. Menggunakan IDE yang sederhana serta kode berbasis C++, sebuah kabel USB dan sejumlah komponen pasif, kita dapat membuat blinking LED secara cepat, tanpa perlu memahami elektronika terlebih dahulu.

Tidak diragukan lagi, Arduino adalah untuk pemula yang mengagumkan, namun seberapa jauh Anda dapat pergi bersama Arduino? Mungkin cukup jauh, seperti yang dibagikan di situs ini, namun selalu ada tradeoff antara kesederhanaan dan performa. Jadi, tergantung pada Anda untuk memutuskannya.

Secara pribadi, saya (penulis asli) memutuskan untuk keluar setelah beberapa bulan menjalani kurva pembelajaran. Sebenarnya, Arduino sendiri yang mendorong saya pada keputusan ini. Berikut adalah sejumlah alasannya, dan saya coba memberikan sejumlah nilai plus terlebih dahulu:

What is great?

a. Arduino IDE menggunakan referensi AVRGC. Mempelajari Arduino dapat membantu Anda dalam mempelajari C++. Jika Anda tidak menyukai perintah atau pustaka yang disediakan Arduino, Anda dapat menggantinya dengan C++ yang ekivalen.

b. Anda dapat memberikan catu, memrogram dan meng-komunikasikan Arduino melalui sebuah kabel USB.

c. Anda dapat melalukan sesuatu yang sederhana (dan lambat) dalam beberapa menit, dengan memanfaatkan pustaka standard. Lambat berarti membaca tombol, menampilkan pesan Serial atau LCD, memutar motor.

d. Komunikasi Serial dan SPI sangat baik dan out-of-the-box.

What is awful?

a. Arduino IDE adalah editor yang paling buruk dan paling tidak bisa digunakan setelah notepad.exe. Bila satu hari, Anda berpintah ke editor eksternal, Anda harus membiarkan IDE terbuka, bila ingin tetap dapat memrogram divais.

b. Untuk finalisasi produk berbasis Arduino, Anda harus “membakar” bootloader secara manual ke setiap chip ATmega, dan mengurangi memori flash sebesar 2k.

c. Bila mengikuti product line resmi, Anda hanya bisa memilih ukuran program antara 30k dan 248k. Apa yang terjadi bila kode program Anda, sebut saja, 42k? Satu-satunya pilihan adalah Sanguino, cloning Arduino semi-compatible.

d. Tidak ada cara yang mudah untuk merubah frekuensi clock. Btw, model 3.3V/8MHz dapat berjalan dengan aman hingga 12 MHz.

e. Fungsi digitalWrite() memerlukan 56 siklus clock untuk meng-eksekusinya. Beberapa rekan melaporkan 400 siklus clock! Ada cara mudah untuk menggantikan fungsi ini, dengan meng-akses port secara langsung. Secara umum, Arduino sangat tidak friendly untuk time-efficient coding.

f. Anda tidak dapat (dengan mudah) men-disable default hardware serial library, untuk mengambil alih interupsi TX dan RX.

g. Terdapat ISR overflow timer yang muncul setiap 64 siklus clock di background, untuk melayani fungsi millis() dan micros(), walaupun kedua fungsi ini tidak digunakan.

h. Sebuah proyek kosong menghasilkan 466 bytes pada Arduino UNO dan 666 bytes pada Arduino Mega 2560. Saya sangat tidak menyukai overhead ini.

i. Terakhir, namun bukan yang paling terakhir – lingkungan Arduino menyembunyikan aspek-aspek penting dari arsitektur mikrokontroler: register, interupsi dan timer.

Sumber : Arduino – Thank You and Bye-bye