Semangat Luar Biasa dalam Belajar Mikrokontroler!

Kurang lebih satu tahun lalu, dalam satu kloter pelatihan mikrokontroler AVR yang saya pimpin, ada satu peserta yang menelepon agar partisipasinya dapat ditunda. Yang menghubungi kantor saat itu adalah istri ybs, dan menyebutkan bahwa suaminya mengidap kanker usus stadium IV, dan kondisinya tengah anfal. Namun, dia sangat bersemangat dan ingin sekali ikut pelatihan mikrokontroler tsb.

Saat menerima kabar tersebut, saya minta staf di kantor untuk menyetujui penundaan partisipasi tersebut. Saya sampaikan, kapan saja kondisinya membaik, silahkan konfirmasi. Saya akan sediakan waktu khusus untuk memberikan pelatihan secara privat kepada ybs., kapan saja!

Saya hanya berpikir, dgn kondisi terkena kanker stadium IV, sangat sulit untuk pulih, walaupun sangat mungkin bila Tuhan berkehendak. Maka dari itu, apapun yang terjadi kemudian, saat beliau mendapat second wind, maka kesempatan itu harus digunakan untuk memuaskan semangat belajarnya.

Kurang lebih dua bulan kemudian, kondisinya sedikit membaik, dan beliau memutuskan untuk segera mengikuti kelas pelatihan. Dengan wajah pucat beliau datang ke kantor, masuk kelas dan ikut pelatihan privat. Saya sangat terkesan dgn semangatnya yang luar biasa! Saat istirahat, beliau sharing betapa sangat sakit ketika anfal, sampai harus disuntik narkotik. Dan dia sudah putus asa dgn tindakan medis modern, karena usus sudah dipotong, kemoterapi dan radioterapi sudah dijalankan beberapa kali, namun hasilnya nihil. Namun, dia tetap semangat untuk mengisi waktu yg masih tersisa. Bahkan, di hari terakhir pelatihan, beliau menyampaikan beberapa impiannya dan akan segera mengaplikasikan pengetahuan baru yg diperolehnya di kelas pelatihan. Satu semangat yang luar biasa di tengah kondisi yang tidak menguntungkan!

Hari ini, di Harian Umum Pikiran Rakyat, ditayangkan iklan duka cita yang memuat foto beliau. Rekan yang penuh semangat telah dipanggil Sang empunya hidup.

Selamat jalan, teman! Semangatmu sangat meng-inspirasi saya dan seluruh rekan di kantor! Kiranya keluarga yang ditinggalkan diberi kekuatan dan ketabahan dari Yang Maha Kuasa.

Bersenang-senang dengan Robot

Pikiran Rakyat, 4 Februari 2009 – JIKA Anda kebetulan bertemu dengan anggota komunitas yang satu ini, jangan sakit hati bila kehadiran Anda diabaikan. Pasalnya, di antara sesama anggota komunitas sendiri, kadang seperti tak hirau satu sama lain. “Iya nih, lagi tanggung,” ujar Eric Andreas( 18 ) yang sedang mencocokkan maket dengan komputer.

Eric Andreas termasuk salah seorang peserta kelas robotika SMAK Trimulia Bandung. Di sekolah ini, memang telah terbentuk semacam klub robotika di bawah bimbingan Ir. Christianto Tjahyadi dari Next System Robotics Learning.

Selain di sekolah, klub robotika juga bertumbuh di lingkungan kampus. Sebut saja Divisi Robotika Unikom Bandung. Komunitas ini menggelar aktivitas “ngulik” robotnya di ruang bawah tanah Kampus Unikom yang terletak Jln. Dipati Ukur Bandung. “Iya, di sinilah kita saban hari ngutak-ngatik algoritma robot-robot yang akan kita buat. Sebagian ada yang masih dalam proses, sebagian lagi sudah ada yang jadi,” ujar Yusrila Kerlooza, koordinator Divisi Robotika Unikom Bandung.

Klub Robotika SD/SMP/SMA Trimulia dan Divisi Robotik Unikom Bandung, hanya dua di antara komunitas robotika yang berada di bawah lembaga pendidikan formal. Masih banyak komunitas lain yang berasa di bawah lembaga formal sekolah dan kampus seperti di ITB, Politeknik Bandung (Polban), Politeknik Manufaktur (Polman), ITT Telkom, Politeknik TIDC, malah di UIN juga ada.

Tak cuma itu, di Bandung juga terdapat komunitas robotika yang lebih terbuka namanya, Next System Robotic Learning Center. Klub ini mengutak-atik berbagai jenis robot dari Next System di bawah bimbingan Christianto Tjahyadi yang kemudian juga mengembangkan klub robot ini di sekolah-sekolah.

Peserta yang bergabung dengan Next System Robotic Learning Center sangat beragam, mulai dari siswa SD, SMP, SMA, perguruan tinggi, sampai karyawan dan profesional. Malah beberapa peserta datang dari luar kota seperti Semarang, Purwokerto, Denpasar, Surabaya, dan kota-kota lain.

Biasanya, kata Christianto, mereka ikut program TFT (training for trainer) karena akan mengembangkan robotika di kotanya masing-masing. “Bandung termasuk salah satu kota tujuan orang yang ingin mendalami robot karena di kota Bandung, bukan saja di lembaga formal tetapi di kelab-kelab seperti ini juga bisa memperlajari robot,” ujarnya.

Di tempat ini, mereka berlatih pemrograman robot Lego Mindstorms NXT untuk siswa dan umum. Pemrograman ini meliputi pemrograman Robot Mindstorms NXT dengan NXT-G, pemrograman Robot Mindstorms NXT dengan Bahasa C, dan pemrograman Robot Mindstorms NXT dengan Bahasa Java dan Microsoft Robotics Studio.

Pelatihan robot ini berlangsung setiap Sabtu dengan waktu bervariasi. Untuk anak-anak TK-SD pagi hari, untuk remaja dan dewasa siang sampai sore hari. Untuk menjamin kualitas pembelajaran, kelas dewasa dibatasi 2-3 orang, sedangkan untuk anak-anak bisa agak banyak, sampai 3-6 orang.

“Kita bertemu memang setiap Sabtu di sini, tetapi interaktif lebih banyak di dunia maya. Terutama anggota yang ikut dari luar kota. Sedangkan untuk anak-anak yang masih bersekolah, pertemuan yang lebih intensif di sekolah,” ujar Christianto yang menggelar kegiatannya di ITC Kosambi Bandung.

Bosan, tapi menyenangkan

Bila robot sering identik dengan sesuatu yang rumit atau ruwet, sebaliknya di Klub Robot Christianto. Anak-anak maupun orang dewasa yang bergabung di sini menganggap robot sebagai hobi yang menyenangkan. Pasalnya, kata Christianto, sejak awal mereka akan menekuni robot, selalu diberi pemahaman bahwa robot itu menyenangkan. Cara menekuninya pun “mengalir” saja, sampai akhirnya para peserta merasakan bahwa bermain robot sangat menyenangkan.

Diakui Christianto, cara kerja robot tidak terlepas dari mekanisme elektronik yang harus dipelajari dan dimengerti. Tetapi jika “jalan masuk” ke pemahamanan itu diberikan dengan cara-cara menyenangkan, anak-anak atau siapa pun yang menekuninya akan tetap merasa “kerasan” untuk berlama-lama “ngulik” robotnya sampai bisa difungsikan.

Dalam setiap pertemuan, peserta memeroleh pengenalan persepsi robot, model-model yang digunakan, cara kerja sensor, dan eksplorasi prinsip-prinsip dasar serta aplikasi robot. Disampaikan pula teknik-teknik robot dalam kehidupan sehari-hari, sehingga kehadiran robot pun jadi sangat dekat dengan lingkungan.

“Kalau bukan bekerja berdasarkan cara kerja robot, bagaimana mungkin lampu lalu lintas bisa mengatur kendaran dari berbagai penjuru. Hal-hal seperti itulah yang biasanya kita sampaikan kepada anak-anak dan peserta di sini,” ujar Christianto.

Tak mengherankan, bila 80 persen pertemuan klub selalu diisi dengan praktik. Sedangkan untuk teori dan pengenalan sistem (mekanisme) kerja robot maupun sensor, hanya 20 persen saja. Pasalnya, hanya dengan 15-30 menit pun, seseorang sudah akan bisa memahami cara kerja robot.

Meski agak berbeda pandangan, Yusrila Kerlooza dari Divisi Robotika Unikom Bandung membenarkan. Menurut dia, menekuni robotika itu sangat menyenangkan. Kendati begitu, hanya orang-orang yang mampu mengalahkan rasa bosanlah yang akan bertahan menekuni dunia robot.

Pasalnya, kata Yusrila, merancang robot tidak cukup sampai robot itu bisa bergerak. Tetapi, bagaimana gerakan robot tersebut bisa dipertahankan dan kuat. Untuk pehobi robot anak-anak, kecenderungan bosan mungkin akan sedikit teratasi karena hampir sebagian besar bahan dasar robot sudah disediakan.

“Kalau anak-anak yang menekuni robot, biasanya kan sudah tersedia construction kit-nya. Algoritma juga. Berbeda dengan komunitas robot mahasiswa dan dewasa. Mereka harus merancang algoritma, mencari bahan, merangkainya sampai robot itu bisa bergerak dengan gerakan yang andal,” ujarnya.

Inilah yang menurut Yusrila, disebut dengan bisa membunuh rasa bosan. Bayangkan saja, untuk sampai bisa berdiri tegak dan bergerak serta gerakannya bertahan baik itu, waktu yang diperlukan tidak hanya seminggu dua minggu tetapi bulan bahkan sampai tahun,” ujarnya.

Target lomba

Hampir semua pehobi robotika mengaku, lomba sebagai target dari ekspresi karya mereka. Seperti disampaikan Christianto, untuk menakar kualitas karya anggota, pihaknya sering mengadakan lomba rutin. Untuk tingkat sekolah, lomba digelar di sekolah. Sedangkan untuk tingkat yang lebih tinggi, mengikutsertakannya di berbagai ajang lomba.

Hal sama diakui Yusrila. Menurut dia, menekuni robot di Indonesia masih dianggap hobi mahal. Sangat disayangkan bila hasil karya hobi ini hanya dipandangi begitu saja. Ikut serta dalam lomba merupakan jawaban untuk memberikan penghargaan setimpal atas biaya mahal dan kerja keras.

Komunitas robotik Unikom misalnya. Sudah tiga tahun berturut-turut berjaya di ajang Kontes Robot Cerdas Indonesia (KRCI) nasional. Selain para penghobi ini bisa mengukur hasil karyanya, juga dapat menimba ilmu dari peserta lain. Terlebih menurut Yusrila, setiap ajang lomba mempunyai keistimewannya masing-masing.

“Lomba yang digelar di Amerika, belum tentu bisa disebut lebih berkualitas dibandingkan dengan lomba yang digelar di Jepang. Pasalnya, setiap negera mempunyai spesialisasi masing-masing yang biasanya disesuaikan dengan perkembangan teknologi robot masing-masing negara,” ujarnya.

Klub robotika yang dikembangkan Christianto, kini bukan hanya menyebar di sekolah, tapi juga beberapa kota di Indonesia seperti Semarang, Purwokerto, Denpasar, Medan, dan Surabaya. Mereka kerap datang ke Bandung untuk mengikuti program training for trainer (TFT) yang digelar Klub Robotik Kosambi.

Hal itu, kata Christianto, karena terbatasnya instruktur robot di Indonesia. Permintaan klub ini untuk melebarkan kegiatannya di berbagai kota, cukup besar. Namun, karena keterbatasan instruktur dan guru, permintaan itu tak bisa dipenuhi. “Makanya, kita selalu mengajaknya untuk datang saja ke sini,” ujarnya.

Satu lagi kiprah urang Bandung yang sudah mampu “menyedot” perhatian dan minat pendatang untuk bertandang ke kota kreatif ini. Anda ingin bergabung? (Eriyanti/”PR”)***

NEXT SYSTEM
Robotics Learning Center
ITC Kosambi F2
Jl. Baranang Siang 6-8
Bandung 40112
Tel. (022) 4222062, 70775874
Email: info@nextsys.web.id

Website: edukasi.nextsys.web.id

Mikrokontroler Turunan

Saat ini, begitu banyak pengembang mengembangkan turunan dari mikrokontroler yang ada, untuk tujuan kemudahan dalam penggunaan. Pola yang digunakan dalam “menciptakan” mikrokontroler turunan ini umumnya sama, yaitu menanam sebuah firmware khusus sehingga bisa bekerjasama dengan development tool berupa IDE – Integrated Development Environment dan compiler, yang dikembangkan bersamaan, agar saling mendukung. Jadi, pengembangannya dilakukan di dua sisi, sisi mikrokontroler dalam bentuk firmware dan sisi komputer berupa IDE dan compiler untuk pemrogramannya.

Kelemahan umum dari mikrokontroler turunan ini adalah, tidak bisa keluar dari pakem atau aturan yang telah ditentukan sejak semula oleh pengembangnya. Misalnya, bila mikrokontroler turunan tersebut fokus pada pemrograman dengan Bahasa BASIC, maka dia tidak bisa diprogram dengan cara lain. Pemrogramannya pun harus menggunakan resources yang disediakan oleh pengembang.

Dari statistik, turunan dari mikrokontroler PIC dari Microchip adalah yang paling banyak. Dua yang cukup populer adalah BASIC Stamp dan PICAXE. Keduanya menggunakan Bahasa BASIC sebagai rujukan. Di satu sisi, keduanya menawarkan kemudahan, dan memang kenyataannya cukup mudah dan nyaman untuk pengguna pemula. Namun di sisi lain, saat kita memikirkan cara yang berbeda untuk memprogramnya, itu tidak bisa dilakukan. Firmware yang ada di dalamnya sudah dikunci dan hanya mengerti token yang dikirimkan oleh IDE terkait.

Pada BASIC Stamp, “compiler” di sisi komputer meng-kompilasi source code ke dalam bentuk token. Token-token tersebut dikirim ke mikrokontroler BASIC Stamp untuk disimpan dalam EEPROM eksternal, kemudian diterjemahkan dan di-eksekusi saat program dipanggil. Mekanisme yang digunakan masih seperti BASIC pada awalnya, yakni interpreter.

PICAXE sudah menggunakan konsep compiler. Yang dikirim ke dalam chip sudah berbentuk machine code yang siap di-eksekusi. PICAXE hanya berupa single chip – berbeda dengan BASIC Stamp yang berupa rangkaian – yang di dalamnya sudah ditanam sebuah firmware, namun masih menyisakan sejumlah ruang untuk program yang kita kembangkan, yang ditempatkan dalam sebuah eeprom eksternal.

Contoh lain dari turunan mikrokontroler PIC adalah OOPIC. Mikrokontroler ini menerapkan konsep OOP – Object Oriented Programming berbasis Bahasa BASIC di sisi pemrogramannya. Dengan demikian, mereka yang terbiasa dengan Visual Basic, diharapkan, bisa lebih cepat menguasainya. Skema / rangkaiannya mirip dengan BASIC Stamp. Ada EEPROM eksternal untuk menyimpan object code hasil kompilasi yang dikirim dari komputer, dan dalam flash internal-nya sudah ditanam firmware yang sesuai dengan tujuan pengembangnya. Sama seperti BASIC Stamp dan PICAXE, OOPIC tidak bisa diprogram dengan cara lain, selain yang didukungnya. Saat ini OOPIC mendukung Bahasa BASIC, Java dan C.

IDE yang disediakan vendor-vendor di atas umumnya free, namun tanpa menggunakan perangkat yang mendukungnya, software tersebut tidak berguna.

Untuk mikrokontroler AVR, saya hanya mencatat satu turunan yang cukup populer, namun masih kalah populer dibanding turunan PIC; yang mengusung isu open source, yakni Arduino. Pemrogramannya menggunakan Bahasa C yang sedikit di-modifikasi untuk mencapai target kemudahan, serta menggunakan C compiler GCC yang juga open source, yang bisa run di Windows maupun Linux. Arduino menggunakan konsep yang berbeda dibanding turunan PIC di atas. Di dalam flash-nya tidak ditanam firmware yang spesifik. Jadi, program yang kita buat bisa disimpan dalam flash internal. Yang ditanam di dalamnya hanyalah sebuah bootloader, yang berisi sejumlah inisialisasi. Selebihnya tidak ada yang istimewa. Versi terakhir Arduino menggunakan ATmega168.

Dari contoh-contoh di atas, kita bisa melihat, bahwa banyak pengembangan dilakukan untuk “memanjakan” pengguna, sehingga bisa lebih produktif. Untuk aplikasi yang memerlukan waktu penyelesaian yang singkat, menggunakan mikrokontroler turunan jelas merupakan pilihan yang disarankan. Memang ada extra cost yang harus dibayarkan, namun itu sebanding atau bahkan lebih rendah dibanding time saving yang kita dapatkan.

Namun, untuk sebuah fleksibilitas, mikrokontroler “original” tetap merupakan pilihan, karena tidak tergantung pada vendor tertentu, kecuali produsennya 🙂

Komunikasi RS2322

Ada sejumlah rangkaian transceiver RS232 yang biasa digunakan untuk komunikasi antara mikrokontroler dengan divais lain seperti PC atau divais lain yang menggunakan RS232. Untuk menekan harga, dapat digunakan rangkaian dengan dua transistor seperti yang tampak pada gambar berikut.

Dalam rangkaian lain digunakan Max232 dari Maxim. Rangkaian ini sangat stabil dan digunakan untuk rancangan yang profesional. Divais ini tidak mahal, menyediakan dua kanal RS232. Setiap output transmitter dan input receiver dilindungi terhadap kejutan elektrostatik hingga 15kV. Divais ini dapat beroperasi dengan catu tunggal 5V.

RFID – Radio Frequency Identification

Radio Frequency Identification (RFID) adalah terminologi umum untuk teknologi non kontak yang menggunakan gelombang radio untuk meng-identifikasi orang atau objek secara otomatis. Ada sejumlah metoda identifikasi, namun yang paling umum adalah menyimpan nomor seri yang unik yang meng-identifikasi orang atau objek, dalam sebuah microchip yang dihubungkan dengan sebuah antena. Kombinasi antena dan microchip disebut RFID transponder atau RFID tag, dan bekerja bersama sebuah RFID reader atau terkadang disebut RFID interrogator.

Sebuah sistem RFID terdiri dari sebuah reader dan satu atau lebih tag. Antena pada reader digunakan untuk memancarkan energi dalam frekuensi radio. Bergantung pada tipe tag, energi ditangkap oleh antena pada tag dan digunakan untuk mencatu rangkaian internal di dalam tag. Kemudian tag akan me-modulasi gelombang elektromagnetik yang dihasilkan reader dan mengirim data ke reader. Reader menerima gelombang ter-modulasi dan meng-konversinya menjadi data digital. Beberapa modul RFID reader mengirimkan data digital yang diterimanya dalam bentuk serial.

Ada dua jenis teknologi tag. Passive tag adalah tag yang tidak berisi sumber daya sendiri atau pemancar. Ketika gelombang radio dari reader mencapai antena chip, energi dirubah oleh antena menjadi listrik yang dapat memberi daya pada microchip dalam tag (dikenal sebagai parasitic power). Kemudian tag mampu mengirim balik informasi yang disimpan pada tag dengan memantulkan gelombang elektromagnetik sebagaimana yang dijelaskan di atas. Active tag memiliki sumber daya dan pemancar sendiri. Sumber daya biasanya berupa sebuah batere, digunakan untuk menjalankan rangkaian microchip dan untuk memancarkan sinyal ke reader. Mengingat passive tag tidak memiliki pemancar sendiri dan harus memantulkan sinyal ke reader, maka jarak bacanya lebih pendek dibanding active tag. Namun, active tag umumnya memiliki ukuran fisik yang lebih besar dan lebih mahal. Kebanyakan modul RFID reader dirancang untuk bekerja dengan passive tag ber-frekuensi rendah (125 kHz).

Frekuensi merujuk pada ukuran dari gelombang radio yang digunakan untuk komunikasi antara komponen-komponen sistem RFID. Seperti halnya kita menala radio pada frekuensi yang berbeda untuk mendengar stasiun radio yang berbeda, RFID tag dan read pun harus ditala pada frekuensi yang sama agar dapat ber-komunikasi secara efektif. Secara tipikal sistem RFID menggunakan satu diantara jangkauan frekuensi berikut: frekuensi rendah (LF, sekitar 125 kHz), frekuensi tinggi (HF, sekitar 13.56 MHz), frekuensi sangat tinggi (UHF, sekitar 868 dan 928 MHz), atau microwave (sekitar 2.45 dan 5.8 GHz). Semakin tinggi frekuensi yang digunakan, semakin tinggi kecepatan transfer data dan semakin jauh jangkauan pembacaan, namun lebih peka terhadap faktor lingkungan, misalnya, cairan dan logam yang dapat interferensi dengan gelombang radio.

Mengakses EEPROM pada Mikrokontroler AVR

Meng-akses EEPROM internal AVR dilakukan dengan menggunakan global variable, diawali dengan atribut memori eeprom atau __eeprom.

/* Nilai 1 disimpan dalam EEPROM saat chip programming */
eeprom int alfa = 1;
eeprom char beta;
eeprom long array1[5];

/* Sebuah string disimpan dalam EEPROM selama chip programming */
eeprom char string[]="Hello";

void main(void) 
{
  int i;

/* Pointer to EEPROM */
  int eeprom *ptr_to_eeprom;

/* Menulis 0x55 langsung ke EEPROM */
  alfa=0x55;
/* atau tidak langsung dengan menggunakan sebuah pointer */
  ptr_to_eeprom=&alfa;
  *ptr_to_eeprom=0x55;

/* Membaca nilai langsung dari EEPROM */
  i = alfa;
/* atau tidak langsung dengan menggunakan sebuah pointer */
  i = *ptr_to_eeprom;
}

Menggunakan PID pada Robot Line Follower

Ingin membuat robot yang dapat mengikuti garis? Dengan kecepatan rendah, prosesnya cukup mudah. Jika sensor membaca arah pergerakan ke kiri, arah robot digerakkan ke kanan, demikian sebaliknya. Proses ini memiliki batasan terutama ketika kecepatan dinaikkan dan bentuk lintasan yang berkelok-kelok. Untuk kasus demikian, umumnya digunakan pengendali PID.

PID singkatan dari Proportional, Integral, Derivative. Pengendali PID meggunakan perhitungan matematika untuk memproses data dari sensor dan menggunakannya untuk mengendalikan arah dan/atau kecepatan robot. Mengapa PID bisa lebih baik dibanding model sederhana di atas?

Perilaku Robot ketika Mengikuti Garis

Misalnya robot kita memiliki 3 sensor, kiri, tengah dan kanan. Ketika sensor tengah melihat garis, robot diprogram untuk bergerak lurus. Ketika sensor kiri melihat garis, robot diprogram untuk belok ke kanan. Ketika sensor kanan melihat garis, robot diprogram untuk belok ke kiri. Dengan pemrograman demikian, robot akan bergerak “bergelombang” di atas garis, dan jika terlalu cepat, maka akan kehilangan kendali dan berhenti mengikuti garis (garis merah pada gambar di samping).

Metoda ini hanya memperhatikan satu perilaku saja, yakni, robot harus selalu berada di tengah garis. Untuk meningkatkan performance, kita harus memperhatikan dua perilaku lainnya – berapa cepat robot bergerak dari satu sisi ke sisi lain dan berapa lama dia tidak berada di tengah garis. Ketiga perilaku ini disebut Proportional, Integral dan Derivative dalam terminologi pengendali PID.

Berikut adalah beberapa definisi dari beberapa terminologi yang digunakan dalam PID:

Target Position – Untuk mengikuti garis, posisi ini adalah tengah garis. Kita akan merepresentasikannya dengan nilai nol.

Measured Position – Seberapa jauh ke kiri atau ke kanan terhadap garis. Nilai ini dapat negatif atau positif untuk merepresentasikan posisi relatif terhadap garis.

Error – Perbedaan antara target position dan measured position.

Proportional – Mengukur berapa jauh robot kita keluar dari garis. Proportional merupakan dasar untuk membaca posisi robot dengan menggunakan sensor. Semakin banyak data, semakin akurat kita dapat mengukur posisi robot di atas garis.

Integral – Mengukur akumulasi error terhadap waktu. Nilai integral naik ketika robot tidak berada di tengah garis. Semakin lama robot tidak berada di tengah garis, semakin tinggi nilai integral.

Derivative – Mengukur seberapa sering robot bergerak dari kiri ke kanan atau dari kanan ke kiri.

Faktor P – Kp, adalah konstanta yang digunakan untuk memperbesar dan memperkecil pengaruh dari Proportional.

Faktor I – Ki, adalah konstanta yang digunakan untuk memperbesar dan memperkecil pengaruh dari Integral.

Faktor D – Kd, adalah konstanta yang digunakan untuk memperbesar dan memperkecil pengaruh dari Derivative.

Dengan mengkombinasikan nilai Proportional, Integral dan Derivative, kita dapat mengendalikan pergerakan robot secara lebih presisi, dibanding hanya menggunakan Proportional. Perilaku ideal ditunjukkan oleh garis merah pada gambar di kiri. Pergerakan robot menjadi lebih “halus”, tidak “bergelombang” seperti sebelumnya, dan robot lebih “sering” berada di tengah garis.

Performance keseluruhan penerapan PID bergantung pada jumlah dan tingkat presisi dari sensor dan kemampuan dari mikrokontroler yang digunakan.

Paparan di atas adalah prinsip di atas kertas. Dalam praktek, bagian-bagian terkait harus disesuaikan agar optimal untuk karakteristik robot yang digunakan. Begitu pun nilai Kp, Ki dan Kd yang digunakan, perlu penyesuaian sehingga hasilnya maksimal.

NEXT SYSTEM Robotics Learning Center, mulai bulan Mei 2009, mengadakan kelas pelatihan khusus “Pemrograman Robot Line Following”. Selain mempelajari konsep penjejakan garis dan pengendalian dengan PID, peserta pun akan belajar bagaimana melakukan performance tuning sehingga hasilnya optimal.

Untuk informasi lebih lanjut mengenai kelas pelatihan di atas serta perangkat robot yang digunakan, silahkan menghubungi:

NEXT SYSTEM
Robotics Learning Center
ITC Kosambi F2
Jl. Baranang Siang 6-8, Bandung 40112

Tel. (022) 4222062, 085100775874
WhatsApp 085102238024

Email: info@nextsys.web.id

http://edukasi.nextsys.web.id

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. Tipikal, LDR memiliki resistansi sekitar 1 M dalam keadaan gelap gulita, dan memiliki resistansi di bawah 1 K dalam keadaan terang benderang. Namun, LDR memiliki respons yang agak lambat, sehingga untuk line follower yang lebih agresif, perlu mempertimbangkan penggunaan photodioda atau phototransistor yang lebih responsif  ~ 1 uS.

Berikut adalah dua rangkaian line sensor sederhana berbasis phototransistor. Rangkaian kiri dapat digunakan sebagai sensor analog, sementara rangkaian kanan dapat digunakan sebagai sensor digital.

Bila memerlukan informasi produk dan pelatihan terkait dengan mikrokontroler dan robotik, silahkan menghubungi:

NEXT SYSTEM
Robotics Learning Center
ITC Kosambi F2
Jl. Baranang Siang 6-8, Bandung 40112
Tel. (022) 4222062, 085100775874
WhatsApp 085102238024

Email: info@nextsys.web.id

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

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.

Sensor Temperatur LM35

LM35 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 referensi 5V, resolusi yang dihasilkan adalah 5000mV/1024 = 4.8mV. Karena LM35 memiliki resolusi output 10mV/ºC, maka resolusi termometer yang dibuat dengan ATmega8535 adalah 4.8mV/10mV ~ 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.

Saat ini, tersedia sejumlah besar sensor temperatur yang lebih cerdas serta mudah penggunaannya, misalnya DS1820. Hasil pengukuran sudah dalam bentuk digital, dan dikirimkan ke mikrokontroler secara serial.

Berikut adalah contoh program pembacaan sensor LM35 dan menampilkan besaran temperatur pada layar Serial Monitor. Program dibuat dengan software NS.One:

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  int sensor = analogRead(0);
  float temp = (float) sensor * 500.0 / 1024.0;
  Serial.println(temp);
  delay(1000);
}