Kembali ke era kegelapan dari mikroprosesor, dimana pengembangan software dilakukan secara eksklusif dengan bahasa assembly yang spesifik dari divais tertentu. Bahasa assembly ini menggunakan mnemonic sebagai pengganti dari kode numerik bahasa mesin. Untuk menuliskan 0x12 0x07 0xA4 0x8F yang akan memerintahkan chip untuk memasukkan sebuah nilai ke sebuah lokasi memori, kita dapat menuliskannya demikian dengan bahasa assembly: MOV 22, MYBUFFER+7. Program assembler akan menerjemahkan perintah tersebut ke dalam kode mesin.
Saya pernah menulis kode dalam bahasa mesin sewaktu kuliah dulu, dan percayalah saat saya mengatakan bahwa bahasa assembly merupakan langkah maju dalam upaya meningkatkan produktivitas. Namun, bahasa assembly untuk sebuah piranti terikat dengan piranti tersebut. Sulit untuk menjadi mahir di dalam bahasa assembly karena ketika mikrokontroler yang dimaksud kadaluarsa atau hilang dari pasaran, maka apa yang kita pelajari pun menjadi mubazir. Bahasa assembly merupakan bahasa dengan tujuan tertentu yang hanya bekerja pada chip tertentu. Bila kita menguasai bahasa assembly untuk chip Motorola, tidak secara otomatis kita akan menguasai bahasa assembly untuk chip Zilog.
Bagaimana dengan bahasa tingkat tinggi? Seperti Bahasa C misalnya?
Bahasa tingkat tinggi umumnya dikembangkan untuk tujuan umum, untuk pemakain secara luas. Bahasa C merupakan salah satu bahasa tingkat tinggi yang banyak diminati. Sekali kita belajar C, kita dapat berpindah dengan mudah diantara keluarga mikrokontroler, menulis software dengan lebih cepat dan kode yang dibuat lebih mudah dimengerti dan di-maintain. Namun harus dicatat, mikrokontroler yang dimaksud harus memiliki C compiler yang ditulis untuknya. Dengan kata lain, kita bisa membuat program dalam bahasa C untuk mikrokontroler AVR, bila tersedia C compiler untuk AVR.
Saat ini, tidak sulit mencari C compiler untuk mikrokontroler yang beredar di pasaran, walaupun harus sedikit menunggu untuk chip-chip keluaran terbaru.
Satu produk C Compiler open source untuk mikrokontroler AVR, yang cukup banyak diminati, adalah WinAVR, yang dapat diunduh dari http://sourceforge.net/projects/winavr. WinAVR dapat diadaptasikan ke dalam AVR Studio IDE yang memiliki GCC plug-in.
Pemrograman Mikrokontroler dengan Bahasa C
Christianto Tjahyadi, Ir, Selasa, 14 Oktober 2008Mikrokontroler KicChips
Christianto Tjahyadi, Ir, Rabu, 08 Oktober 2008KicChips merupakan mikrokontroler turunan dari PIC, yang dapat diprogram dengan mudah menggunakan Bahasa BASIC melalui KicStudio. KicChips dapat dengan mundah dihubungkan dengan LED, Saklar, Buzzer, dan yang lainnya, serta mendukung beberapa antarmuka standar untuk mengendalikan modul elektronik secara Serial dan I2C.
Yang menarik adalah, firmware di dalam chip dapat di-update dan di-upgrade melalui internet. Dengan demikian, pengguna bisa mendapatkan update terakhir tanpa harus membeli chip yang baru.
KicChips dapat diprogram secara langsung melalui dua buah resistor dan kabel serial yang dihubungkan dengan komputer. Jadi, tidak perlu membeli atau membuat programmer untuk men-download program yang sudah dibuat.
Selain dengan BASIC, pihak vendor menyediakan KicFlow, yang memungkinkan pengguna untuk mengembangkan program menggunakan flowchart.
Setiap chip memiliki In-Circuit Debugger. Fitur mengagumkan ini memungkinkan pengguna untuk melakukan simulasi program di komputer sementara chip tengah beroperasi pada saat yang bersamaan.
Sensor Cahaya
Christianto Tjahyadi, Ir,Sejumlah divais elektronik sederhana dapat digunakan sebagai "mata" pada robot, diantaranya:
- Photoresistor atau sel CdS (cadmium-sulfide). Sel CdS memiliki resistansi yang nilainya bergantung pada cahaya yang diterimanya. Bila tidak ada cahaya yang mengenainya, resistansi-nya sangat tinggi,
sementara ketika dikenai cahaya, nilai resistansi-nya turun. Sel CdS sangat mudah dihubungkan dengan komponen elektronik lainnya, namun yang harus diperhatikan, komponen ini memiliki reaksi yang lambat, tidak dapat "menangkap" lampu kilat lebih dari 20 atau 30 kali per detik. - Phototransistor. Kemasannya sama dengan transistor biasa, dengan bagian atas terbuka. Tidak seperti sel CdS, reaksi phototransistor sangat cepat, dapat "menangkap" lampu kilat puluhan ribu kali per
detik. - Photodiode. Merupakan versi dioda dari phototransistor. Satu karakteristik umum dari kebanyakan photodiode adalah, outputnya rendah, bahkan ketika dikenakan cahaya terang. Agar memberikan output yang efektif, biasanya, output photodiode dihubungkan dengan sebuah penguat.
Masing-masing komponen di atas memiliki sensitivitas yang berbeda. CdS mirip dengan mata manusia, sensitif terhadap cahaya tampak; sementara Phototransistor dan Photodiode lebih sensitif di daerah inframerah.
