Line Sensor pada Line Follower

Pada aplikasi Robot Line Follower, ada sejumlah pilihan line sensor yang dapat digunakan. Yang paling sederhana menggunakan LDR, dengan menggunakan prinsip pembagi tegangan. Namun, LDR memiliki respons yang agak lambat, sehingga untuk line follower yang lebih agresif, sensor ini digantikan dengan Infra Red yang lebih responsif.

Berikut adalah dua rangkaian line sensor sederhana berbasis infrared. Yang pertama mengeluarkan output tegangan analog, sementara yang kedua dapat langsung dihubungkan dengan pin I/O digital.

qtr1a

qtr1c



Untuk diskusi dan sharing mengenai mikrokontroler dan robotik, silahkan bergabung dengan milis id-mikrontroler@yahoogroups.com. Bila memerlukan informasi produk dan pelatihan terkait dengan mikrokontroler dan robotik, silahkan menghubungi Next System Robotics Learning Center.

Atmel ISP Programmer

Programmer ini dihubungkan dengan port paralel dari komputer, dan dapat digunakan untuk memprogram kebanyakan mikrokontroler AVR dari Atmel, tanpa harus mencabut chip dari sistem. Antarmuka melalui port paralel ini memiliki pinout yang sama dengan programmer STK-200 dari Kanda Systems. Kabel pemrograman STK-200 sangat populer, dan kebanyakan software ISP download mendukungnya.

Divais ini sangat sederhana, hanya berisi satu chip 74LS245 (octal bidirectional 3-state driver), serta didukung oleh software programmer seperti PonyProg. Ketika divais tidak diprogram, jalur interface pemrograman dalam kondisi tri-state, sehingga divais dapat berfungsi secara normal.

Berikut adalah standard pinout ISP::
atmel_isp_layout
RESET, digunakan untuk me-reset target dengan kendali komputer.
SCK, serial data clock.
MOSI - Master Out Slave In, digunakan untuk mengirim data dari PC (master) ke AVR (slave). Data dikirimkan pada sisi dari SCK.
MISO - Master In Slave Out, digunakan untuk mengirim data dari AVR (master) ke PC (slave). Data dikirimkan pada sisi dari SCK.
LED, sebagai indikator bahwa pemrograman tengah berlangsung.
PWR, digunakan untuk menyediakan daya pada sistem target selama pemrograman.

atmel_isp_ckt

Memprogram Mikrokontroler AVR

AVR memiliki dua mode pemrograman: Parallel Programming Mode (Parallel Mode) dan Serial Downloading Mode (ISP mode).

Pada Parallel Mode, divais yang akan diprogram ditempatkan pada soket pemrograman dan diperlukan tegangan 12V pada pin RESET. Komunikasi antara programmer dan divais dilakukan dengan perintah pemrograman secara paralel. Kecepatan pemrograman dua kali lebih cepat dibanding ISP Mode. Cara pemrograman ini biasanya digunakan dalam pre-program dan/atau ISP Mode tidak dapat digunakan karena faktor disain. Kebanyakan programmer, kecuali STK500, kelihatannya tidak mendukung mode ini.

Pada ISP Mode, divais berkomunikasi melalui interface SPI untuk memprogram dan mem-verifikasi. Mode ini hanya memerlukan tiga jalur sinyal tanpa tegangan pemrograman 12 Volt, sehingga dapat langsung memprogram sistem target - ISP (In-System Programming). Hanya saja, ISP Mode tidak dapat merubah fuse bit pada beberapa divais, dan beberapa divais tidak memiliki fitur ISP. Divais seperti ini harus diprogram secara paralel.
avrx_lpt

Ketika menggunakan AVR dengan ISP Mode, target board harus dirancang dengan mempertimbangkan fungsi ISP, yang menggunakan pin ISP : RESET, SCK, MISO dan MOSI. Pin ISP dapat berbagi antara fungsi I/O dan ISP dengan memuaskan. Ketika menggunakan pin I/O yang memiliki fungsi ISP, harap diperhatikan hal-hal berikut:

a. Sisipkan sebuah resistor antara pin RESET dan rangkaian reset untuk menghindari interferensi dari rangkaian reset.
b. Pastikan bahwa aksi ISP tidak menimbulkan efek pada fungsi lain.
c. Jangan men-drive dari rangkaian luar saat operasi ISP berlangsung, atau bila dikehendaki demikian, perlu disisipkan sebuah resistor.
d. Jangan menghubungkan dengan beban berat karena akan mempengaruhi fungsi ISP.

isp_pcb2

Sensor Temperatur LM35

lm35LM35 dari National Semiconductor adalah sebuah sensor temperatur centigrade presisi, yang memiliki tegangan output analog. Memiliki jangkauan pengukuran -55ºC hingga +150ºC dengan akurasi ±0.5ºC. Tegangan output adalah 10mV/ºC. Tegangan output dapat langsung dihubungkan dengan salah satu port mikrokontroler yang memiliki kemampuan ADC, misalnya ATmega8535. ADC pada ATmega8535 memiliki resolusi 10-bit, yang dapat memberikan keluaran 2^10 = 1024 nilai diskrit. Bila digunakan catu 5V, resolusi yang dihasilkan adalah 5000mV/1024 = 4.8mV. Karena LM35 memiliki resolusi output 10mV/ºC, maka resolusi termometer yang dibuat dengan ATmega8535 adalah 10mV/4.8mV ~ 0.5ºC.

Beberapa varian LM35:

* LM35, LM35A memiliki jangkauan -55ºC hingga +150ºC.
* LM35C, LM35CA memiliki jangkauan -40ºC hingga +110ºC.
* LM35D memiliki jangkauan 0ºC hingga +100ºC.

Pemrograman Mikrokontroler PIC dengan Bahasa C

Mikrokontroler PIC 16F877 merupakan salah satu produk dari Microchip yang sangat populer. Hadir dalam beberapa kemasan, namun yang umum beredar di pasaran umum adalah PDIP 40. Mikrokontroler ini memiliki flash 8kB, 33 buah port I/O, 8 kanal ADC dan 2 kanal PWM; sehingga cukup ideal untuk diterapkan dalam aplikasi robotika.

Ada sejumlah compiler bahasa tingkat tinggi yang tersedia untuk PIC, diantaranya MikroC yang berbasis Bahasa C. Pemrograman dengan MikroC cukup mudah. Kelihatannya, pihak pengembang ingin memanjakan penggunanya, sehingga dalam beberapa bagian, kemudahan menjadi keterbatasan. Anyway, untuk pembelajar pemula atau mereka yang ingin meng-aplikasikan mikrokontroler PIC secara cepat, MikroC merupakan produk yang bisa dipertimbangkan.

Bagi mereka yang ingin mempelajari mikrokontroler PIC dengan cepat, NEXT SYSTEM Robotics Learning Center yang berlokasi di Bandung, menyelenggarakan kelas pelatihan Pemrograman Mikrokontroler PIC dengan Bahasa C, BASIC dan Pascal. Peserta pelatihan bisa mendapatkan PIC 16F877 dengan harga sangat murah. Silahkan menghubungi telepon (022) 4222062 atau email info@nextsys.web.id untuk informasi lebih lanjut.

Pemrograman Mikrokontroler dengan Bahasa C

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.

Mikrokontroler KicChips

KicChips 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.