Seperti apa yang pernah diucapkan almarhum buyut
:
The only source of knowledge is experience
Saya ingat bagaimana saya membuat robot pertama kali dengan pengetahuan nol dalam bidang robotika dan juga elektronik. Meskipun banyak buku, artikel dan tutorial yang membahas bagaimana membuat robot dari awal, rasanya hanya akan membuat bingung dengan segudang referensi tanpa mengotori tangan dengan solder dan coding. Akhirnya saya lupakan referensi dan mengingat sebagaian referensi yang masih menyangkut di otak. Ini saatnya memakai otak untuk sedikit berpikir dan berimajinasi. Jadi teringat pesan buyut
:
Any man who reads too much and uses his own brain too little falls into lazy habits of thinking.
Albert Einsten.
Berhubung robot yang dibuat hanya sebatas tugas lab, maka saya tidak memprioritaskan untuk membuatnya istimewa. Cukup bekerja sesuai deskripsi yang diminta. Apabila saya mengingat robot itu, saya tertawa membayangkan baris program yang sangat sederhana sekali, tapi beberapa orang melihatnya cukup serius
. Mungkin ini juga sering terjadi apabila Anda belajar bahasa pemrograman dan sebulan kemudian melihat program Hello World. Tadinya saya berniat menaruh skematik beserta program di tulisan ini, tapi filenya entah di mana..
. Robot yang saya buat ini adalah light seeking, hanya menggunakan 3 LDR. Kalau tidak salah ada koran yang memuatnya (he2.. narsis).
Robot kedua yang saya buat dibuat untuk mengikuti kontes robot line follower di kampus, kontes perdana.
Masih dengan pengetahuan yang sangat minim dan agak sotoy (karena menganggap enteng) dan masih acuh terhadap sistem kontrol, maka yang terbesit saat itu hanya teknik kontrol ON-OFF. Teknik kontrol seperti ini masih bisa di terapkan di arena tak bersimpang, namun arena yang digunakan banyak terdapat simpangan, sehingga dibutuhkan teknik kontrol
yang dapat mentolelir gain motor. Hal yang pertama di lakukan adalah melakukan pendataan kondisi sensor pada garis dan menentukan aksi terhadap kondisi tersebut. Pada robot tersebut digunakan 5 sensor dengan susunan sebagai berikut :
(4)___(3)_(2)_(1)___(0)
Angka tersebut menunjukkan urutan pin pada port mikrokontroller. Untuk nilai binary dengan 4 variabel (sensor) memliki kemunkinan nilai unik (kondisi sensor) sebanyak 2^4 = 16. Tidak semua kondisi digunakan. Adapun kondisi yang perlu diprioritaskan untuk mendapatkan aksi adalah :
—————————————————-
4 | 3 | 2 | 1 | 0 | Aksi
—————————————————-
x | 0 | 1 | 0 | x | Maju
x | 1 | 1 | 0 | x | Serong kiri
x | 1 | 0 | 0 | x | banting kiri
x | 0 | 1 | 1 | x | serong kanan
x | 0 | 0 | 1 | x | banting kanan
x |1 | 1 | 1 | x | Maju
——————————————————
1 menunjukkan sensor berada pada garis.
Pengaturan jarak antar sensor disini memungkinkan 2 atau 3 sensor mengenai garis. Dengan mengabaikan sensor paling kiri (4) dan kanan (0) dan menggunakan aksi sesuai tabel, robot saya dapat berjalan cukup smooth mengikuti garis lurus. Bila terdapat jalur berupa huruf L, sensor (0) dan (4) bisa membantu. Kontrol yang digunakan hanya proportional
saja, yaitu pemberian PWM motor. Apabila diinginkan pergerakan yang lebih smooth bisa menambah kontrol derivative. Mendapatkan nilai konstanta proportional yang tepat adalah melalui test berulang kali. Ini seperti melakukan mapping input sensor terhadap output PWM motor. Nilai input disini sangat sederhana jadi tidak perlu menggunakan fuzzy logic. Beberapa orang menyebutnya dengan table lookup. Oia ini video robotnya, cupu abis :
Sialnya nih robot dah di gondol oleh orang yang tidak tahu berterima kasih tidak bertanggung jawab, tidak menghargai karya orang lain, menipu dosen (dengan mengklaim robot saya sebagai robot buatannya). Dan parahnya dia adalah seorang wanita yang seharusnya menjadi pamong bagi mahasiswa/i di filkom (ketua BEF). Astagfirullah,
mudah-mudahan Allah ta’ala memaafkannya. Saya sendiri sudah mengikhlaskannya (mudah2an). Apabila ada yang tertarik ini source codenya. Saya bukan programmer sekelas Kel, jadi masih banyak menggunakan delay. Rutin utama yang perlu diperhatikan adalah rutin scan :scan:
mov a,p1
anl a,#0eh
jz cekKiKamov p2, #66h
mundur: ;serkan / serkir / maju, 0,6,c,e
mov B, A
movc A,@A+dptr
mov pwmKi, A
mov A, B
inc A
movc A,@A+dptr
mov pwmKa, A
ret
mundur_:mov p2, #3Ch
sjmp mundur
cekKiKa:jnb sKiLuar,_kanan
_kiri: mov pwmKi,#40h
mov pwmKa,#50h
mov p2, #36h
ret
_kanan: jnb sKaLuar,mundur_
mov pwmKi,#50h
mov pwmKa,#40h
mov p2, #6Ch
ret
Pemanggilan rutin scan secara otomatis akan memandu robot untuk mengikuti track putih tanpa mempedulikan simpangan. Pertama-tama kontroler akan membaca kondisi sensor saat itu nilai sensor akan menentukan alamat pengambilan data PWM motor. Penggunaan instruksi ‘anl a,#0eh’ akan membaca 3 sensor tengah (sesuai dengan susunan sensor yang saya jelaskan di atas). Instruksi ‘jz cekKiKa’ akan mengecek nilai accumulator, apabila ’0′ maka sensor paling ujung (0 & 4) akan dicek. Jika ada salah satu dari sensor (0) atau (4) mengenai track putih (memberikan logik ’1′) maka robot akan spin ke arah sensor bernilai ’1′ tersebut. Ini berguna untuk track yang memiliki belokan berbentuk huruf L. Jika 3 sensor tengah memberikan nilai ’0′ dan tidak ada sensor (0) dan (4) yang memberikan logik ’1′ maka robot akan mundur. Ini kurang efektif, jika saya berpikir sekarang, untuk digunakan sebenarnya. Sayangnya, rutin ini hanya bisa diimplemetasikan pada jalur lurus. Ada paper menarik, Penggunaan Kombinasi Sensor Array Depan dan Belakang pada Robot Pengikut Garis (Kasus Robot Otomatis ASKAF-i), yang menggunakan tambahan sensor belakang dalam kombinasi sensor Array. Jika Anda menginginkan navigasi line tracking yang lebih robust, paper ini dapat dijadikan acuan. Jika jalur yang digunakan tidak lurus, terdapat jalur melengkung, ada baiknya melihat robot ini.
Robot yang saya kerjakan saat ini (sudah selesai seminggu yang lalu) menggunakan fuzzy logic untuk navigasinya, baik untuk wall following (mengikuti dinding) dan obstacle avoidance (menghindari dinding). Karena menggunakan sensor ultrasonic, data untuk satu sensor tidak lagi berupa biner. Biner dalam bahasa pemrograman tingkat tinggi dapat di padankan sama halnya dengan tipe data boolean (true atau false). Engineer melihatnya sebagai level tegangan, apabila bekerja dengan komponen logika, yang mempresentasikan 0 atau 5 V. Tapi tidak absolut 0 atau 5 (tergantung spesifikasi komponen tersebut). Misal jika sebuah sensor memberi masukan 5 V, program melihatnya sebagai ’1′ atau true, yang mengindikasikan sensor menangkap adanya objek yang berdekatan. Bila tidak objek yang menghalangi sensor dalam batas toleransinya, maka akan dihasilkan tegangan 0 V, dimana program merepresentasikan nya sebagai ’0′ atau false. Secara sederhana program dapat di tulis seperti ini :
if (sensor==1) {
aksi(1); //aksi yang dilakukan sistem bila ada objek
} else {
aksi(0); //aksi yang dilakukan sistem bila tidak ada objek
}
Dalam teknik kontrol, ini termasuk kontrol ON-OFF. Bagaimana bila sistem yang kita inginkan dapat melakukan aksi yang berbeda untuk jarak yang sangat jauh, jarak jauh, sedang, cukup dekat dan dekat. Mungkin ini saatnya menggunakan Fuzzy logic. Teori fuzzy logic dipropose oleh seorang ahli matematika bernama Lotfi Zadeh pada tahun 1973. Sebelumnya Zadeh memperkenalkan teori fuzzy set pada tahun 1965.
Bersambung … (Ntar lagi ya lanjutinnya, banyak image nya soalnya bagian ke-II)
mantrap, salam kenal
@deRegen
mantrap apanya nih..??
eh sori tadi nyasar ke yg lcd
Mas aku mo nanya kok aku waktu hbs nge klik paper menarik yang di link diatas aku cuma bisa ngliat abstraknya aja
jadi gimana donk kalo mo ngliat fulltextnya
apa mas punya
kirimin donk
makasih ya….
@juno
Register dulu mas, bisa di donlod klo dah login. Ntar klo masih gak bisa ta kirimi papernya japri
Oh ya mas aku mohon bantuannya donk. aku dah semester akhir mau ngambil TA mobile robot yang pengendalinya pake fuzzy control. Tapi aku dah cari referensi tentang applikasi fuzzy dalam mikrokontroler gak nemu2 juga.
Bisa gak mas gue dikasih tutorial mengenai aplikasi fuzzy pada mikrokontroler sekalian source codenya biar aku bisa paham.
Terimakasih mas atas kesempatannya.
Aku tunggu loh.
Ass…
mas aku bgg dengan kontrol derivativnya, kalo propnya kan pwm, tapi klo derivativnya apa?
oh ya aku minta sourcecode lengkapnya robot linefollowermu donk, abis link sourcecodenya ga bisa. matur nuwun. Wass…
Assalamualaikum…
Bang…. Saya sangat tertarik dengan tulisan anda tentang fuzzy logic untuk implementasi navigasi robot…
Nah lha kok kebetulan, saya lagi pusing soalnya harus buat robot
pemadam api, dimana si robot harus menyisir dinding untuk mendeteksi ruangan2… nah untuk menghindari dinding saya menggunakan sensor ultrasonic (pastinya Abang paham donk)…
karena sulitnya medan yang akan dijalani robot, sekarang saya
dituntut buat program jitu dengan bahasa C++ AVR menggunakan teori fuzzy logic…
sungguh saya berharap sekali kiranya abang mau membantu, ju2r saja pengetahuan saya tentang fuzzy nol putul (gak iso blas), tanya2 ma dosen tambah pusing… mudah2an abang mau membantu jelasin lebih detail cara ambil data learnig (sample data), trus bikin aturan sensor dan pwm motor (aq pake vexta).. syukur2 kalo Abang memberi contoh program yang mungkin prnh Abang buat…
matur nuwun
@Aji Seto
Saya waktu itu malah mengambil referensi dari robotnya anak PENS yg diikutkan KRCI (saya dapat dari dosen saya yang ikut workshop robotika di PENS). Saya menggunakan 6 PING untuk sensor jaraknya. Saya menggunakan 2 mikon AVR, satu (slave) mikon terhubung ke 6 PING tersebut dan mengirimkan secara UART data jarak ke mikon satunya (master). Rule FL nya ada di mikon master. Akan saya jelaskan di post mendatang mungkin
bang tolong tunjukin contoh syntak memprogam ATMEGA8535 dengan baskom AVR bwt line follower!!!!!!!!!!!!
soalnya saya coba kondisi if then g bsa!!!
Ass.bang boleh mnta tolong jelasin tentang FL, terutama u/ aplikasi pada mikro.kalau bisa sekalian pakai contoh program.
Ass…
artikelnya menarik bgt….bang kita baru pemula ada ga bahan buat referensi belajar fuzzy logic yang mudah di mengerti(bhs.indonesia)………..thk
mau dong kang, paper+file workshop dari pens-nya..
kirim ke herry_winandi (at) yahoo.com ya
thx..
bos… kontrol pede nya tolong dijembrengin lagi bos… coz aku pake fuzzy logic nggak bisa nemuin setingan pas untuk meluncur klo pake kecepatan tinggi,klo baterai mo habis,baru fuzzy logicku mau dapetin tu garis ntuk meluncur & ndak goyang &dak gedhek2. ntuk saat ini ku baru mo coba ngasih inputan variabel untuk seting lewat push botton pada linetracerku & aku pake lcd juga ntuk persiapan
klo fuzzy logic dah clear,rencana mo coba pe de nya from bos gedhex. so tolong dibantuin ya bos ge dhex.trims sebelumnya..
artikel nya ok juga bos !
adalagi buat artikel fuzzy nya ???
buat tugas dosen mat.diskrit nih .
thanx berat ya
kak bleh minta tlong gak…..
aq lg bingung ni…….
kakak tau gak cara menyelesaikan bascom robot pemotong rumput,,,,,,
kak,,,,
tlong aq yaaaaaaaaaaaaa,,,,,
please kaakk,,,
atau memprogram ATMega8535 dengan bascom,
untuk pemograman robot pemotong rumput…….
kkaaaaaakkkk baik dehhhhhhh……..
please,,,,,,,,,,
mas aji seto…
bleh kirim peper dari pens itu g?????
buat bljr bloem TA sih
ke alamat email yoshi_sasuke@yahoo.co.id
mksih ya mas
ass…
Koq pake bahasa assembly sih… pake bahasa C aja gmn? biar mudah dipahami…
hehehe….
newbie ni…
lengkapin donk ama image image and penjelasan program serta fungsi yang detail
postingannya oke bgt..
keep the spirit..
SALAM KENAl. nama saya ranu asay baru saja belajar tentang robotik jadi tolong dibantu ya. kalau mau chat saya saya bisa chat di ranu_abi@yahoo.com
makasih ya…keren2…saya juga penggemar A.Einstein…
sebelumnya salam kenal.
nama saya reino
saya baru belajar pemrograman..
saya mau tanya,bagaimana mengelola data sensor ultrasonik devantech srf04 dari bilangan mentahan menjadi data jarak dengan program baskom..
saya menggunakan mikro atmega16.
sebelumnya saya ucapkan trimakasih dan mohon bantuannya
mas gmna caranya untuk mencoding defantech srf 04 untuk bascom
aq memakai AT Mega 8535
tolong kirim source code ya ke emailku
please…………..
thanx
wah Pa keren banget,ada ngga tutorial lengkapnya kalau ada boleh dong ke email saya notZahra@yahoo.co.id
Salam kenal bwt semuanya…
Wah topiknya pas bgd sama tugas akhir saya nih..robot pake fuzzy…saya tunggu tulisan lengkapnya y mas..semoga bisa ngebantu newbie bwt bikin robot fuzzy…oia mas klo ad bahan tentang robot fuzzy(artikel, schematic, n source code)..tlg kirim ke email y mas..(baihaqi.r@gmail.com or bucks_q@yahoo.co.id)..
best regards
kalo penerapan fuzzy logic 8uat ro8ot vision gimana ya…??
mas ajarin buat wall folower dum..progamnya gt hee..kalo buat coba2 pake 1 ap 2 sensor cukup gak..byar bisa ngikutin tembok
Aku punya modul SRF02 ultrasonic range finder, kalau ada yang perlu, aku jual dng harga miring, no hp. 0888.0276.7057, email penyimpan73@yahoo.com, juga ada modu TRF 2,4G, SHT 11, IC ISD 25120.