RGbGt Humdnoid AKAAN PAN .TIMUR Widodo Budiharto Paulus Andi Nalwan Free CD r Aplikasi-aplikasi Pendukung . Datasheet r Assembler r Basic Stamp Editor o Bascom AUR o Code Vision C AUR HI Membuat Sendiri Ciptakan sendiri robot mirip manusia berbiaya murah I I
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
02009, PT Elex Media Komputindo, JakartaHak cipta dilindungi undang-undangDiterbitkan pertama kali olehPenerbit PT Elex Media KomputindoKelompok Gramedia, Anggota IKAPI, Jakarta 2009
121091564
978-979-27 -5625-8
leEpl
Dilarang keras menerjemahkan, memfotokopi, atau memperbanyak sebagian atau seluruh isi buku ini tanpaizin tertulis dari penerbit.
Dicetak oleh Percetakan PT Gramedia, JakartaIsi di luar tanggung jawab percetakan
Penulis juga tidak lupa mengucapkan terima kasih sebesar-besarnyakepada Bpk. Dr.lr.Djoko Purwanto, M.Eng yang telah membimbing danmengizinkan penulis menggunakan sarana riset di Lab ELKA ITS.
Jika Anda ingin mengikuti training secara inhouse atau private, atauingin mengadakan seminar atau workshop dapat menghubungi penulisdi:
CV Pusat e-Technology
Perumahan Mutiara Gading Timur I , Jalan cendana 5,BlokD3l2 RT 6124Bekasi Timur - Jawa barat 17510HP :08 5 698 87 384, Yahoo Messg : prof_widodoEmail :[email protected]. Toko-elektronika. comwww.toko-robot.comwww.Widodo.com
sebagai penutup, penulis juga mengharapkan saran dan kritik yangmembangun guna penyempurnaan buku ini. Anda juga dapatberkomunikasi dengan penulis melalui email di [email protected] Paulus@delta -electronic. com.
Bne 5 Sexson-SENSoR Ronor..... ...............77Pendahuluan............ .....77Rotary Encoder .............77Sensor Jarak Ultrasonik ................81Modul Suara D-Voice 04............ ...................87
Proses D-Voice secara Manual ...................89Proses D-Voice secara UART/Serial dengan Mikrokontroler.......................91Pengalamatan Memori D-Voice 04............ .................93
Sensor Penjejak Garis ...................98Penjejak Garis dengan Sungut..... ...............98Penjejak Garis Tunggal ..............99
Sensor Warna TCS230... .............102Proses Pengukuran Nilai Frekuensi ..........107
Remote dengan Media Inframerah ............113Aplikasi Penerima Data dari Remote Televisi ...........115Remote dengan Media Celombang Radio .................722Aplikasi Penerima Data dari D-Joy Controller ..........729
Bagian Otak......... .......734Download Program melalui Parallel Port.......... ............135
Kata robot sendiri diperkenalkan ke publik oleh Karel Capek pada saatmementaskan RUR (Rossum's Universal Robots). Namun, awal mun-culnya Robot dapat diketahui dari bangsa Yunani kuno yang membuatpatung yang dapat dipindah-pindahkan. Sekitar 27O BC, Ctesibus,seorang insinyur Yunani membuat organ dan jam air dengan komponenyang dapat dipindahkan. Zaman Nabi Muhammad SAW pun, telahdibuat mesin perang yang menggunakan roda dan dapat melontarkanbom. Bahkan, Al -jajari (1136-1206) seorang ilmuwan Islam padadinasti Artuqid adalah yang dianggap pertama kali menciptakan robothumanoid, hebat kan? Nah, Anda sendiri bagaimana? Di zaman sudahmaju begini, apa yang telah Anda buat berkenaan dengan robot?
Pada tahun 7770, Pierre Jacquet Droz, seorang pembuat jamberkebangsaan Swiss, membuat 3 boneka mekanis. Uniknya, bonekatersebut dapat melakukan fungsi spesifik, yaitu dapat menulis, yanglainnya dapat memainkan musik dan organ, dan yang ketiga dapatmenggambar. Pada tahun 1898, Nikola Tesla membuat sebuah boatyang dikontrol melalui radio remote control dan didemokan di MadisonSquare Garden. Namun usaha untuk membuat autonomus boattersebut gagal karena masalah dana.
Pada tahun 1967, Jepang yang pada pada saat itu merupakan negarayang baru bangkit, mengimpor robot Versatran dari AMF. Awalkejayaan robot dimulai pada tahun 1970, ketika Profesor VictorScheinman dari Universitas Stanford mendesain lengan standar. Saatini, konfigurasi kinematiknya dikenal sebagai standar lengan robot.Terakhir, pada tahun 2000 Honda memamerkan robot yang dibangunbertahun-tahun lamanya bernama ASIMO, serta disusul oleh Sonydengan robot anjing AIBO.
Robot banyak dibuat oleh Institusi Riset, Universitas, DepartemenPertahanan, serta institusi besar lainnya seperti NASA dan Sony. Saatini hampir semua industri manufaktur menggunakan robot karena biayaper jam untuk mengoperasikan robot jauh lebih murah dibandingkanmenggunakan manusia. Robot pada awalnya digunakan untuk melaku-kan fungsi spesifik, misalnya pengecoran, penyolderan, dll. Namun,saat ini sudah banyak robot yang melakukan banyak fungsi.
Beberapa penerapan robot saat ini antara lain:
o Merakit dan mengelas kerangka mobil di industri manufaktur.r Pencari dan pemadam sumber api, intelijen.
Robot humanoid saat ini banyak dibuat untuk robot pelayan atau penirumanusia, misalnya robot pemain ping pong TOPIO di bawah.
Gambar 1.2 Robot pemain Ping Pong TOPIO
Jika Anda tertarik untuk membuat robot humanoid, saya sarankan Andamencoba robot humanoid yang berfungsi sebagai robot pelayan (seruantrobot), seperti robot ENON ini yang sangat cerdas. Percayalah, Andadapat membuatnya.
kan untuk program utama serta melakukan proses komputasi datadan images kecepatan tinggi yang tidak mampu dilakukan olehmikrokontroler standar. Untuk memberikan catu daya pada robotdapat digunakan baterai, aki, atau solar cell.
Ok, sampai kapan Anda hanya terpana dengan gambar di atas? Sudahsaatnya Anda sebagai generasi penerus bangsa terutama yangmenekuni bidang elektronika memikirkan dan berupaya agar mamPumengejar ketertinggalan kita dari negara lainnya. Jika Anda hanyahobi tanpa memiliki bekal pengetahuan dasar di bidang elektronika,tidak masalah. Yang penting Anda mau belajar dan mencoba sekarangjuga. Demikianlah pengantar robot humanoid yang dapat dijadikansumber pijakan utama bagi Anda yang ingin mengembangkan robothumnoid yang Anda impikan.
Latihan
Yang membuat Anda mahir robotika tidak lain adalah pengalaman dalambereksperimen dan ketekunan. Untuk itu, Anda diharapkan menjawabdan mengerjakan semua latihan ini.
1. Sebagai seorang pemula/pelajar, Anda membutuhkan informasipelengkap terkini tentang dunia elektronika dan robot melaluiInternet. Akseslah situs google.com atau yahoo.com untuk mencariinformasi komponen elektronika untuk dapat menjelaskan cara kerjadari:
a. Resistorb. Kapasitor elektrolit dan kapasitor keramikc. Transistor NPN dan transistor PNP
d. MOSFET dan FETe. Relay 5 Vf. Dioda penyearahg. IC regulator variabelh. Kamera webcami. Motor DC dan servo
2. Rangkailah catu daya berbasis solar cell amorphous 5.2Y 21mA
G amb ar 2. 1 Mikroko ntroler AT me g a8 53 5/ 1 6
Pada gambar di atas terdapat 4 buah port, yaitu PA, PB, PC, dan PDyang semuanya dapat diprogram sebagai input atau output. Jika dilihatIebih detail lagi, pada bagian pemroses mikrokontroler ini terdapat unitCPU utama untuk memastikan eksekusi program. CPU juga dapatmengakses memori, melakukan kalkulasi, pengontrolan, dan penanga-nan interupsi. Ini dilakukan menggunakan arsitektur harvard (bus untukmemori, program, dan data terpisah) sehingga dihasilkan performayang tinggi. Hal ini dikarenakan instruksi pada memori program diek-sekusi dengan single level pipelining. Dengan demikian, pada saatsebuah instruksi dieksekusi, instruksi berikutnya dapat diakses darimemori program. Konsep ini memungkinkan instruksi dieksekusi padasetiap siklus clock.
Pin I/O pada mikrokontroler AVR dapat dikonfigurasi sebagai input atauoutput dengan cara mengubah isi I/O dari Data Direction Register.Misalnya, jika ingin port B dikonfigurasikan sebagai output, maka DataDirection Register port B(DDRB) harus di-set sebagai OxFFH (samadengan 255). Jika diinginkan sebagai input, DDRB harus di-set ke0x00H (sama dengan 0).
Simpan file tersebut, lalu buka lagi melalui menu File I Open.Pilih tipe file berekstension .c. Konfigurasikan juga proyekAnda, antara lain dengan menambahkan file source .c ini keproyek Anda. Ketik program seperti gambar di bawah ini:
3.
:s:. ts.U
Proiect: l0
ffi Notes
0thg Fdes
t I 6l c
[ ] output
t 'l inodp,
|l deleks
rdl
itllj
rs;
"I3$
iiEi
// llen..1ha llerbuat !rogrs f,odevi;inn .$[/r' ler.nhss 0{Lpui ds delsy psds Port E
l/ LlD;:rhu!,&g di Port B
/ / tts.k lipia e-Teclu6.l6gy l:efi1t ZfitB
*ra.1$ae <tegaJ.6.h>l/renyeft Elre lihlsry f ilE EegE]6
i-.i^rC9 <deley-h> //sengqu8ks delari
r'liBii libla4,alys hsrus diE*6ks
mid DEin{rcid) \ / lprq,$e tJzea
DDRS=zsS; ,/,/Poti B dikorifigulari ,ebagai 4urrutlr'Y81tu lBLl -FF?
p0!.18=255; ,'r'geuua p*tt P ttnyeluerlie//IDgiks I sehingqs Ee&us !B! bEtl
Gambar 2.6 File source berekstension .c
Berikut ini adalah program yang harus Anda coba untuk mulaimempelajari mikrokontroler AVR. LED terhubung di Port B. Programakan membuat beberapa LED berkedip.
fsh::@',:Ee+ I Fsi*€: I!to& 568'Si ::tW*d$.R ,!SF.;:ti:it i
5. Setelah kode selesai dibuat, klik menu Project I Compile untukmengkompilasi proyek Anda. Jika tidak ada kesalahan ketik, akantampil informasi sukses seperti gambar di bawah ini;
ATmegal E
i*::i*---:;=**5
lil*" g."fl.
slprintl lealures int, Nidth
type: ApplicBtionmodel: Smalllor: Si2E
feitures: int, widthchar to int: No
6 unsqned: Yesbit enums: Yes
instruclionsr Dnreqister dllo.Etion: 0n
tl9 linelsi compiledetr0rswarnings
lariablei size D b!te[s]
Steck area 60h to 15FhSlack size: 258 byle{rl
rtimated 0at6 Stack uiaqe 0 bltehl
variables srze: 0 bftelsl
stack Brea: I 60h lo 45FhStack sire: 788 byte[s]
EPB!M usage 0 bylelg [0 0:i ol EEPE0M]
Gambar 2.8 Hasl kompilasi Aang sukses
Terakhir, Anda dapat mengisikan program tersebut ke mikrokontro-Ier melalui menu Tools I Chip Programmer, lalu pilih Program All.Jika telah selesai, lampu LED Anda akan berkelap kelip dengandurasi 0.5 detik dan 1 detik. Pastikan programmer yang Andagunakan adalah STK 200/300 (AVR ISP Programmer) berbasiskanport parallel. Jika Anda ingin mengisi melalui port serial/USB, Andadapat menggunakan DT HiQ Universal Programmer.
Fr
6.
16
:
iLL
. snjral oueTn-req upli€ Udea5oad / / T?plu og.t.TpE!-; T e{T6oT ue{:enTe6uaur I lrod enures// lEgz=s,tuod-Ad- OAd n?re^ /lndlno rE6eqas rse-rn6r]uo{\p A 1aod.// IE9Z=EEGC
3. Kompilasi dan jalankan. Pada alat akan tampil lampu LED yangberkedip secara bergantian sesuai dengan delay yang telahditentukan. Beri komentar mengapa diperoleh hasil tersebut.
Penerapan Input Output
Langkah-langkahnya;
1. Siapkan SmartAVR Robotics ver. 3, dan hubungkan dengan kabelAVR ISP Programmer ke PC.
2. Buat program di bawah ini:
InputPortCkePortB. c:/ / Percobaan Input di Port C dan Output pada Port B
// Saklar di Port C, LED terhubung di Port B
#include <mega16.h> //Menyertakan library file AThegal6#include <delay.h> //menggunakan de1ay, jadi librarynya harus digunakanvoid main(void) { //Program Utama
DDRB=255; //PorE B dikonfigurasi sebagai output, yaitu PBo -PB7PORTB=255; //Semua Port B mengeluarkan logika 1, semua LED matipoRrc =0; //Marikan )):;:i:1"$'i"I? ffi';:e"":::l-3i:n inpur
#asm ('nop") //persiapan/ / Program akan berulang Lerus
while (1) {PORTB=PINC ; / /Semua push button yang ditekan di Port C, datanya
dikirim ke Port B); / /ak},it looPing
j / /Akhir Program utama
3. Amati apa yang terjadi jika satu atau beberaPa push button di PortC ditekan. Dapatkah Anda menjelaskan fungsi PINx?
3. Hubungkan sensor Sharp CP2D12 di port A.0, keluaran PortB keSPC DC Motor (S1-S4), dan keluaran SPC DC Motor ke Paket MotorDC GT2 atau GD20 Mini Metal gear motor.
Gambar 2.11 Paket Nlotor DC GTz dan Roda (kiri) dan GDZO Nlini MetalGear Motor 100:1 lengkap dengan rod.a besar (kanan)
Rakitlah robot tersebut sesuai keinginan Anda.
Buat program di bawah ini, lalu masukkan ke mikrokontrolerdengan bantuan CodeVision C AVR Compiler:
RobotAvoider.c:/ / Percobaan baca data sensor jarak Sharp GP2DL2// Untuk Robot Avoider (Penghindar hafangan)// SPC DC Motor di Port 8.0,8.1-, 8.2 dan B.3// Sensor ,farak Sharp GP2D12 di PorE A.0// Hak cipta Mr. widodo Budiharto 2010
#include <mega8535.h>#include <stdi,o.h>#include <de1ay.h>#def ine ADC_\,'REF_TYPE 0x6 0flash unsigned char stringl[]={"data adc: td; "};/ / Baca 8 bit terpentingunsigned char read_adc(unsigned char adc_input) {ADMUX=AdC_iNPUI I (ADC-\REF-TYPE & OXff);/ / Delay needed for the stabilization of the ADC input voltagedelay_us (10);/ / M'alai konversi ADCaocsnal=0x40;// Tunggu konversi ADC sefesaiwhife ((ADCSRA & 0x10)==Q;;ADCSRA | =ox1o;return ADCH;)void main(void) {// Inisialisasi Port B dan D sebagai outputPORTB=0xFF;DDRB=oxFF;PORTD=OxFF;DDRD=oxFF,'
5. Jalankan program. Hasilnya harus seperti berikut:
Merakit Robot BRAT
Masalah body robot kadangkala menjadi hambatan bagi pemula.Tetapi, saya ingatkan agar Anda jangan putus asa hanya karenamasalah kecil tersebut. Anda dapat merakit body robot BRAT inimenggunakan acrylic atau seng. Anda juga dapat memiliki paketlengkap robot ini dengan harga yang tidak terlalu mahal dibandingkanpengetahuan dan kesenangan yang Anda peroleh dalam merakit danmemprogramnya. Pada intinya, saya ingin menunjukkan bahwa untukmembuat robot berkaki seperti BRAT ini, Anda perlu mengetahuimodel pemasangan servo dan kalibrasi servo yang memadai agar kakirobot ini dapat bergerak mirip dengan kaki manusia. Oleh karena itu,kita namakan robot seperti ini termasuk robot humanoid. Manuallengkap pemasangan dan konfigurasi robot ini dapat Anda lihat padasitus www.lynxmotion.com. Beberapa komponen yang perlu Andaperhatikan bentuknya untuk jika ingin merakit body robot ini adalah:
. ;.::i*
30
Gambar 3.8 Bagian bawah kaki
I€
:lnlrJeq Jeqr.ue6rpedas 'renses pJeoq eped rosues upp olJes ue6ueseued uelqse6
;turn t.he yelfow LED oncommand=2 ;back up one stepgosub movecommand=11 ;turn left two stepsfor xx=1 to 2gosub movenextdetect = fafseinput 14 ;turn the yellow LED off
; turn the green LED oncommand = 9gosub movepause 2000sound 9, [150\4400] ,1itt1e whistle while you restpause 50sound 9, t50\44001pause 50sound 9, t150\39601pause 50sound 9, t50\39601pause 50sound 9, t250\34001pause 2000input 13 ; lurn the green LED off
endif
goto main
move:if(command = 1) then
Walk Forward
low 13
giosub movementgosub movementgosub movementgosub movement
one var floattwo var floatthree var fl-oatfour var floatfive var floatsi.x var floatgetlongest Ione, two, three, four, five, six]
if(one<O.0)thenone=-1.0*one
endi fif(two<0.0)then
two=-1.0*twoendi fif(three<0.0)then
three=-1 . 0*threeendi fif(four<0.0)then
four=-1.0*fourendif
40
LV
qxe z Ja?ataolap))e ueduescuad gI'€ JequeD
Jalauolala))e ueouap pJeog ?og lslauoy'l pqel
:r.le^\Bq Ip Ieqel ruedss rsprn6rJuol upDuepIyUg loqoJ rp lnqesJel Josuas qel6uesed '1oqor eped relaruoJele))Brosues uBderaued pqo)ueru {ntuD 'rur nlnq de16ua1ed q) 1p lpqlllpledep e{uoeprn otueC 'e{uyrseq ler{rl upp sp}e rp ruerDord up{uelef
u,rnle-TIeT' rT cap]'0OrgtT,1no-s 1no-rasl
[000r\0T] '6 punosj0T /:t =:r
lXaU(rellTl)dua?+.zT=-rr
6 01 0 = -ralTrl: -roJ0=f,T
lXeU(ralTTf)dua1 '6I uTpe
6 o1 0 = -relTrJ -rol:
Bab 3: Robot Humanoid BRAT
Buatlah program seperti Brata4.bas di bawah ini. Anda pasti terpanadan terkejut dengan gerakannya yang seperti manusia:
Brata4.bas:; Program Accelerometer pada BRAT;Robot bi.sa bangun dan berdiririghthip con p10rightknee con p8rightankle con p7lefthip con p6leftknee con p5leftankle con p4
true con 1false con 0
;caLibrate steps per degree.stepsperdegree fcon 166. 6
; Interrupt. initENABLEHSERVO
; Init posit.ions;Note, movement subroutine arguments areRightankle, Ri grhtknee, Ri ghthip, Lef tankle, Lef tknee, Lef thj-p, speedgosub movement [ 0.0, 0.0, 0.0. 0.0. 0.0, 0.0, 0.0];1ow 1
;low 2pause 1000
command var bytexx var wordir var wordlastir var wordAMx var wordAMy var wordprevAMx var wordprevAMy var wordbat var worddetect var bitbehaviour var bytefilter var bytetemp var word(10)
Gerakan tangan tidak membutuhkan torsi sebesar aktuator sehinggadapat digunakan HS-422 yang memiliki torsi 4.1 kg.cm. Beban darimotor servo ini adalah tangan, gripper, dua buah motor servo HS-422,dan objek yang diambil apabila lengan telah memperoleh objek yangdituju.
Gambar 4.5 Gerakan Nlemutar Gripper
Untuk menyesuaikan posisi dengan objek yang dituju terdapat sebuahmotor servo HS-422 yang berfungsi memutar posisi gripper hinggaposisinya sesuai dengan kondisi objek,
Setelah objek diperoleh, lengan robot akan melakukan gerakan men-cengkeram dengan merapatkan gripper. Hal ini dilakukan denganmemutar sebuah motor servo HS-422 yang terhubung pada bagian inisehingga gripper bergerak merapat atau merenggang.
Pengaturan sudut servo dilakukan dengan menggeser-geser posisi ,,,
sakelar geser dari masing-masing servo yang ada pada tampilan pCServo Controller. Sedangkan kecepatan diatur dengan memberikan nilaipada field di bawah sakelar geser dengan range 728-255. pada bagiankanan, Anda juga dapat mengisikan nilai sudut servo secara manuar.
Base $eruo.$err*oPotitisn.S+rv'o"SpeeU.
Actuater: SErvCI
SEnre Pseitis*
Sarvo, : J]
spGec:1'
PiE , ;f*"*:'::- ...,6fl...,,: ' tl1*1-Y::1-:+*i. .*:"1-tYl*r
Untuk operasi secara manual, Anda dapat menambahkan tombol,keypad, keyboard, atau remote control pada mikrokontroler untukmenggerakkan sumbu-sumbu lengannya.
Gambar 4.12 Proses Kendali Melalui Mikrokontroler secara Nlanual
Pada Gambar 4.72 digunakan Modul DST-51 sebagai sistem mikrokon-trolernya karena modul ini telah memiliki antarmuka untuk PC keyboarddan keypad sebagai input manual. Dengan menambahkan Modul IR-
8510, maka DST-51 juga dapat menerima input dari remote controltelevisi.
Program Penggerak Lengan Robot Otomatis
Selain aplikasi manual, lengan robot sebetulnya lebih sering digunakanuntuk aplikasi otomatis di mana gerakan-gerakan sumbunya telahterprogram sebelumnya dalam memori. Program berikut diawali dengangerakan base memutar ke kiri. Satu detik kemudian, aktuator turun dantangan turun, Ialu gripper berotasi dan mencengkeram. Satu detikkemudian, tangan naik dan base memutar ke depan kembali.
Sebagai contoh, sensor ultrasonik yang diletakkan di bagian pinggir tubuhrobot akan memberitahukan operator tentang jarak robot terhadaphalangan. Sensor ini memberitahu operator agar menghentikan ataumembelokkan arah robot sehingga tidak membentur halangan. Sensorseperti ini seringkali ditemukan pada kendaraan-kendaraan sebagaiperingatan pengemudi akan halangan yang ada di belakang saatmemundurkan kendaraan.
Selain menunggu perintah dari operator untuk mengamankan robot daritindakan yang membahayakan, otak robot juga bisa mengambil inisiatifdengan memerintahkan motor untuk berhenti bila jarak sudah mencapaititik berbahaya dan operator mengabaikan peringatan.
Rotary encoder berfungsi untuk mengetahui sudut putar sebuah motoratau .menghitung kecepatan motor. Motor seryo yang pengaturansudutnya ditentukan oleh lebar pulsa PWM sekalipun seringkalimembutuhkan sensor ini. Hal ini karena pengaturan lebar pulsa padamotor servo tidak selalu menunjukkan suatu sudut tertentu. Sumbertegangan motor atau baterai yang turun juga bisa menjadi penyebabperubahan sudut, walaupun pulsa yang dibangkitkan masih memiliki lebaryang sama. Beban motor yang membutuhkan torsi lebih besar juga dapatmenjadi faktor penyebab perubahan sudut tersebut. Dengan adanya rotaryencoder, otak robot dapat mengetahui apakah gerakan motor telahmencapai sudut yang diharapkan atau belum. Dengan demikian, biladiperlukan lebar pulsa akan diatur kembali agar sudut tersebut diperoleh.
:"t !:',:t") onto-interruRter
,{-
78
Gambar 5.1 kaki Delta Robo Spider dan Rotarg encoder
Gambar LED inframerah dan phototransistor tersebut adalah photointerrupter yang memiliki celah, di mana piringan encoder masuk danberputar di antaranya. Pada saat lubang piringan tidak melalui celahtersebut, cahaya terhalang dan phototransistor berada dalam kondisi OFF.Tegangan pada keluaran rangkaian ini (kaki 1 dari konektor 3 pin) adalahsebesar VCC. Pada saat lubang piringan berada pada celah, cahaya tidaklagi terhalang dan phototransistor akan berada dalam kondisi ON. Arusmengalir dari VCC ke emitor melalui R 1K yang mengakibatkan keluarandari rangkaian ini terhubung ke Ground atau tegangan 0 volt. Putaran daripiringan encoder akan membuat keluaran rangkaian ini berubah-ubah dari
logika 0 ke 1, kembali lagi ke 0, dan seterusnya.
Gambar 5.3 Diagram Skematik Delta Encoder Kit
Opto interrupter yang digunakan adalah tipe MOC703CY dengankonfigurasi kaki seperti pada Gambar 5.4
Proses pengukuran dilakukan dengan menembakkan sinyal ultrasonik danmenghitung kapan sinyal tersebut diterima kembali oleh sensor. Sensorultrasonik yang sering digunakan di pasaran adalah sensor yang memilikirespon frekuensi 40 kHa Oleh karena itu, untuk memancarkan sinyaldengan respon maksimum, dibutuhkan gelombang dengan frekuensi 40kHz yang dibangkitkan dengan osilator.
Pada Cambar 5.6, tampak bahwa osilator dibangkitkan oleh trigger darimikrokontroler dan dikuatkan oleh bagian penguat sebelum dipancarkanoleh pemancar ultrasonik. Sinyal ultrasonik akan terpancar setelahgetaran ke-8 dari osilator dan dipantulkan oleh objek. Mikrokontroler akanmulai melakukan perhitungan setelah getaran ke-8 dari osilator dilakukan.
urrnnsourc L
..-" TRANSM|TTER
Gambar 5.6 Sistem pengukuran jarak dengan ultrasonic
Penerima ultrasonik akan menerima pantulan dari objek dan mengubah-nya menjadi getaran-getaran listrik. Namun, getaran tersebut masih terlalulemah sehingga perlu dikuatkan oleh sebuah penguat sebelum masuk kemikrokontroler.
Mikrokontroler akan berhenti melakukan perhitungan saat sinyalultrasonik diterima kembali. Perhitungan waktu dari saat sinyal ultrasonikpertama kali dipancarkan hingga diterima telah diperoleh. Jarak yangditempuh oleh rambatan gelombang ultrasonik mulai dari dipancarkanhingga memantul pada objek dan kembali diterima akan diperolehdengan mengalikan kecepatan rambatan suara dengan waktu yangdiperoleh tadi sehingga diperoleh persamaan berikut.
perhitungan akan dikirim ke bagian port serial D-Sonar dalam bentukhasil pengukuran jarak.
Perintah-perintah untuk pengukuran jarak dapat dikirim dari mikro-kontroler atau PC dengan protokol tertentu yang dijelaskan pada Tabel 1.
Mikrokontroler atau PC dapat meminta informasi jarak dalam bentuk Hexmaupun ASCII dengan menentukan byte 06 sebagai 01 atau 02.
Gambar 5.8 lfiodul D-Sonar
Tabel I Protokol Permintaan data jarak dari PC/Mikrokontroler
Bvte Nilai )eskripsi00 ,IE \wal Paket01 02 D D-Sonar02 OO-FF tlomor urut D-Sonar. Pada kondisi standarnva selalu 01
03 00 D Penqirim adalah Master/PCo4 OO-FF tlomor urut Master/PC05 01 raniano data06 01t02 )l = Perintah meminta data dalam bentuk oeriode
)2 = Perintah meminta data dalam bentuk iarak07 lhecksum di mana total semua data + checksum = 00
Tabel di atas menunjukkan protokol data yang merupakan informasi jarakdari Modul D-Sonar yang dikirimkan melalui port serialnya ke mikrokon-troler atau PC.
Mov Digit3Dsonar,BufferDsonar+1 ;Data-data yang diperoleh dicopyMov Digit2DSonar,BufferDsonar+2 ;ke variabel penyimpan data ASCIIMov DigitlDSonar, BufferDSonar+3 i DSonarLjmp $
AmbilDataDSonar:BukanAwalPaket:
Lcall Serial_In ;Tunggu awal paketCjne A, #1Eh, BukanAwalPaket ;
BukanDSonar:Lcall Serlal_In ;Apakah ID D Sonar?Cjne A, #IDDSonar, BukanDsonaI] ;Lcall Serial_In ;Ambil nomor urut D SonarLcall Serial_In ;Ambil panjang dataMov B,AMov R0, #BufferDSonar
LoopAmbilData:Lcall Serial_In ,Ambil isi dataM^rr AP n L
lortuoy ue16eg bO ntoA-O qnel.uarts uet6elq qOI'g requeD
UA L-Hm grdd/f} I IdNisd t tdu €-tdmf z'H
ItdLZa 0 Idszagzd r1tzd ueza [Ntzza otNttzd0zd
r3s3uLOd90d90d dt0de0dzod Ixr'0d00J d E
I
Bab 5: Sensor-Sensor Robot
r: ::$$$ fl
I I Ltr{, tr{.11
fl,ue r*
&
*r--l*
Gambar 5.11 Instalasi sakelar dan LED pada D-Voice 04 untuk aksesmanual
Lakukan instalasi seperti pada gambar.
Hubungkan sumber suara (max 20 mV p-p) ke Line In D-Voice 04.
Hubungkan port serial/UART ke PC bila sumber suara mengguna-kan sound card. Hal ini diperlukan untuk mereduksi noise denganmenghubungkan ground D-Voice dengan ground PC..
Aktifkan power supply dengan memberikan sumber daya 9V-12VAC atau DC ke konektor power.
Pastikan posisi sakelar Rec/Play pada posisi record, yaitu P3.2
__iGambar 5.l2Instalasi D-Voice 04 dengan Sistem Mikrokontroler
Posisi RXD (pin 2) dan TXD (pin 3) dihubungkan secara cross (Gambar5.12) sehingga serial output (TXD) sistem mikrokontroler terhubungdengan serial input (RXD) D-Voice 04 dan sebaliknya.
Perintah-perintah akan dikirim dari sistem mikrokontroler melalui port inidengan protokol seperti pada tabel di bawah. D-Voice 04 akan membalaske mikrokontroler berupa ACK (Acknowledge) yang mengindikasikanbahwa perintah telah diterima.
Tabel3 Protokol Data D-Voice O4
Pen data dari PC/Master ke DvoiceBwe Deskripsi Nilai Keterangan00 Header 1E Awal paket data01 Destination lD 13 lD Subsystem02 Destination Number 01 No urut Sub System03 Source lD 00 lD Pengirim 00 = Master (PC/Mikrokontroler)
04 Source Number 01 No urut Master05 Lenqth Panianq oaket data06 Perintah Baca ienis-ienis perintah
07-08 lsi DataCheck Sum Totaldari keseluruhan data = 0
Jenis-ienis perintahNilai Keterangan01 Perintah Power UP
02 Perintah Putar mulai dari alamat tertentu03 Perintah Putar pada alamat saat ini04 Perintah Rekam denqan alamat tertentu05 Perintah Rekam pada alamat saat ini
07 PerintahOB Perintah Stoo Rekam09 Perintah Power Down
Modul ini memiliki 2400 blok memori sehingga untuk versi 16 menitsetiap blok memori akan menyimpan suara dengan durasi:
durasibloh - 16x6o2400
Yaitu = 0,4 detik
8 menit untuk versi 8 menit dan 16 menituntuk versi 16 menit
Gambar 5.13 Pengalamatan memori D-Voice 04
Dengan 2400 blok, maka dibutuhkan pengalamatan sebanyak 12 bit yangterdiri atas 2 byte, byte tinggi dan byte rendah. Untuk memutar suarapada lokasi 1 menit pertama dapat dilakukan dengan cara sebagaiberikut.
1 menit = 60 detik. Pada versi 16 menit, 1 blok adalah 0,4 detik sehingga1 menit akan menempati pada blok berikut
Iumlahblnk= j'rtl,4
= 150 atau 96h
Dengan demikian, perintah untuk memutar suara pada alamat 1 menitpertama adalah perintah di mana byte tinggi dari protokol adalah 00 danbyte rendah adalah 96h
Ilvtest:'Program EesEer D-Voice 04 untuk merekam selama 2 menit dan memutar mulai 1menit pertama' By Paulus Andi Nalwan' www. roboti-nd.ones ia . com
Aplikasi robot Iine follower membutuhkan sensor yang memantau kondisigaris yang diikutinya. Untuk mengetahui keberadaan garis ini dilakukandengan menembakkan sinar inframerah dan mendeteksi pantulannya.Garis hitam akan menyerap sinar inframerah dan sensor tidak mendeteksipantulan tersebut sedangkan warna putih akan memantulkan sinarinframerah dan sensor akan mendeteksi adanya pantulan.
Ada dua macam sensor penjejak garis yang ada, yaitu sensor penjejakgaris tunggal atau single line follower dan sensor garis inframerah (DeltaInfrared Line Sensing) yang berupa sungut.
Penjejak Garis dengan Sungut
Penjejak garis dengan model sungut adalah berupa sepasang sensor yangdapat diatur posisinya baik secara maju-mundur maupun kiri-kanan
Motor kanan bergerakmaju
Sensor kirimendeteksi garis
Robot akan berbelok kekiri
Gambar 5.14 Delta Infrared Line Sensing pada robot gang berjalan
Pada saat sungut sebelah kanan tidak mendeteksi garis hitam lagi, makamotor kanan akan bergerak maju dan motor kiri bergerak mundursehingga robot akan berbelok ke kiri untuk memperbaiki posisinya.
Pengaturan posisi maju-mundur digunakan untuk mengatur waktu responsensor. Untuk robot yang bergerak dengan kecepatan rendah, maka
Pengaturan tegangan komparasi dilakukan dengan mengatur variabelresistor yang ada pada DSF-01. Objek diletakkan pada posisi di manakeberadaannya harus mulai terdeteksi. Variabel resistor diputar perlahan-lahan hingga LED merah aktif yang merupakan indikasi bahwa kebera-
daan objek telah terdeteksi.
Keluaran dari DSF-01 masih diperkuat lagi dengan sebuah buffersehingga dapat diperoleh keluaran dengan arus yang cukup untuk dide-teksi mikrokontroler maupun fungsi-fungsi lainnya, misalnya dihubungkanke transistor pengendali relay.
Sensor Warna TGS230
Salah satu identifikasi objek yang sering dibutuhkan pada aplikasi robotikadalah pengenalan warna. Dengan teknologi infrared, proses pengenalan
warna dapat dilakukan dengan memperhitungkan kuat lemahnya pantu-lan cahaya.
Tr
$ilm
$
Y4t;
ffi#{
s1 E
ffi3#f'lD 4
Li tJLr
f uld-
fi fitJT
= !.f.J VNM
Gambar 5.20 Sensor u)arnaTcs-230
TCS230 adalah sensor warna keluaran Texas Advance OptoelectronicSolutions yang berisi 8 x 8 matrix photodiode yang masing-masingberukuran 120 pm. Photodiode tersebut terdiri atas 16 photodiode denganfilter merah, 16 dengan filter hijau, 16 dengan filter biru, dan 16 tanpafilter. Masing-masing kelompok photodiode ini diaktifkan melalui internal
Untuk mempermudah aplikasi, dapat digunakan Modul DCLI-230, DeltaColor Interface yang sensornya sudah tersolder ke PCB dan dilengkapidengan konektor untuk antarmuka dengan mikrokontroler.
Pada modul ini juga sudah disediakan 8 buah LED putih yang terhubungke keluaran mikrokontroler sehingga LED bisa dinyala-matikan Iewatprogram untuk penghematan daya. LED hanya diaktifkan pada saatproses pengenalan warna dan berfungsi selain untuk penerangan jugamenetralkan pengaruh-pengaruh akibat pantulan cahaya pada warna-warna sekitarnya.
Tabel5 Deskripsi VO DCLI-230
Pin Sinval DeskriosiI GND Ground Power Supply. Semua tegangan mengacu ke Ground.
2 VDD Tesansan Supolv (2.7 - 5 volt)J S1 Input pen: ih skala frekuensi output (penielasan pada Tabel 6)
4 SO Inout oem ih skala fiekuensi output (peniclasan pada Tabel 6)
5 S2 Inout pem ih filter yane diaktifkan (penielasan pada Tabel 7)6 OE Enable untuk fo (Aldif LOW)7 S3 Input pemilih filter yang diaktifkan (penielasan pada tabel 7)8 OUT Keluaran frekuensi (fo)
9 LED Kontrol LED (Aktif LOV/)l0 NC No Connect, tidak terhubung
Keluaran frekuensi dapat diatur skalanya melalui S0 dan S1, seperti padaTabel 6. Untuk skala frekuensi rendah digunakan pada mikrokontroleryang mempunyai kecepatan rendah.
mempengaruhi perhitungan pengenalan warna yang membuat akurasimenjadi kurang baik. Dengan perhitungan frekuensi, maka mikrokontrolerakan menghitung berapa jumlah pulsa yang masuk selama satu detik.Dengan proses ini, sedikit perubahan nilai perioda tidak akan memberikanbanyak pengaruh pada pengukuran frekuensi sehingga dapat diperolehhasil yang lebih konsisten.
Kelemahan metoda ini adalah kecepatan proses pengukuran yangmembutuhkan waktu paling cepat satu detik untuk mengenali warna.
T.*?***k
ffi ilJ-erLtrlt[ Hffi
, *stxir:n t dr+tik tarrja&i l*tffi 6x*inxnhamg
Gambar 5.24 Metoda Penghitungan Frekuensi
Hasil pengukuran dalam nilai frekuensi tadi, baik dari metoda perhitunganfrekuensi maupun perhitungan perioda, akan dibandingkan dengan nilaifrekuensi skala penuh (full scale) dan filter cahaya mana yang diaktifkan.Semakin besar intensitas warna, semakin besar pula frekuensi yangdihasilkan.
Apabila skala penuh terjadi pada saat filter merah (R) diaktifkan, makadapat dinyatakan bahwa warna merah dengan intensitas tertinggi sedangdideteksi. Apabita frekuensi yang dihasilkan mendekati nol pada saat filtermerah (R), hijau (G), biru (B), dan cerah (clear) diaktifkan, berarti warnayang terdeteksi adalah hitam.
L-
i06
z0t
I rsuenle{ In}un 'e{uqo1uo3 'pxeq Intueq uJelep g ralsr6eg rp uedursreluele r66url elr{q rplru upp y relsr6eg rp uedurrsre} uplp qppuer agq relrp
kHz atau 8000 Hz akan diperoleh nilai 1F40h, di mana Register B bernilai1Fh dan Register A bernilai 40h.
Untuk pengaturan nilai skala maksimum frekuensi pada 10 kHz, maka S0dan 51 diaktifkan melalui P1.1 dan P1.0. Sedangkan agar diperolehcahaya yang cukup terang, LED putih diaktifkan dengan memberikanlogika 0 pada P1.6.
Seperti yang terlihat pada Gambar 6.1, bagian ini terdiri atas bagiansensor dan joystick/keypad sebagai pemberi masukan pada otak.Bagian sensor telah dijelaskan pada Bab 5. Oleh karena itu, pemba-hasan akan langsung masuk ke bagian remote. Pengertian remote kaliini bukanlah hanya merupakan remote kontrol seperti pada televisi atauAC, melainkan lebih luas daripada itu.Remote adalah sebuah perangkat pengendali jarak jauh di manaperintah-perintahnya dikirimkan melalui media infra merah atau gelom-bang radio.
Gambar 6.2 Robot gang dikendalikan secara manual melaluiiogstick /remote control
Kondisi logika rendah dalamdurasi panjang akan mewakili
durasi pendek dan logika tinggidata biner 1.
dalam
{ }{ ts{ }{ }01il1Gambar 6.4 Timing Diagram PCIvI
Agar cahaya inframerah dapat mengirimkan data perintah dalam jarakyang jauh dan akurat, cahaya tersebut harus digetarkan dengan freku-ensi tertentu. Standard frekuensi yang biasa digunakan oleh remotecontrol berada pada area 3842kH2.
Data-data perintah yang sudah dimodulasikan dalam bentuk PCM iniakan dimodulasi lagi dengan frekuensi carrier sebesar 3842 kHzsebelum diumpankan ke dioda pemancar.
Gambar 6.5 Timing Diagram Nlodulasi 4O KHz
Apabila sistem kendali yang digunakan adalah remote control televisi,Anda tidak perlu lagi mengatur PCM maupun modulasi 40 kHz ini.Sinyal yang dipancarkan dari remote control sudah berupa kode PCM
dengan modulasi 40 kHz. Anda hanya perlu membuat demodulator 40kHz dan program untuk mengurai PCM pada mikrokontroler yang adapada robot. Bila sistem kendali Anda berupa PC atau joystick yang tidakmemiliki pemancar infra merah, Anda harus menambahkan mikrokon-
Gambar 6.6 Diagram Blok Aplikasi Penampil Data RemoteTV pada LCD
Modul DST-51. Sistem minimum AT89S51 akan digunakan sebagaisistem minimum mikrokontroler, mengingat pada modul ini sudahtersedia port LCD sebagai media penampil data.
l-{11} t'o{rrssr
Iqesd ${ttttrln Slsl$n rrafrrBrtri,,q :
P(n '..\
l\*lB/Prrl llleil(ler &2 \
1! l.{]l} }fiJ:t( Hl r{}R1l,rrt I port0 I
rre*rsrtdi.r tles{r.rsr2 i ljl:tl.I1111^1,11 Ii i t .lutil t{;II't 1
Gelombang radio merupakan media yang paling leluasa, mengingatmedia ini mampu menembus halangan dan tidak harus berada padagaris lurus. Namun, dibanding inframerah, media ini lebih rentan terha-dap noise apabila disain pemancar dan penerimanya kurang baik. Halini disebabkan oleh tingginya frekuensi yang digunakan sehingga sedikitperubahan pada jalur PCB saja akan membawa pengaruh yang cukupbesar.
Bila pada media inframerah digunakan PCM sebagai modulasi data,pada gelombang radio digunakan metode ASK (Amplitude ShiftKeying) atau FSK (Frequencg Shtft Keying). PSK (Phase Shift Keging)kadang-kadang juga digunakan untuk aplikasi-aplikasi tertentu. Yangpaling umum digunakan adalah FSK, di mana getaran dengan frekuensilebih tinggi biasanya mewakili logika 0 dan frekuensi lebih rendahbiasanya mewakili logika 1.
Gambar 6.9 Komunikasi D-Jog Controller dengan Modul DX-24 pada robot
Dengan menggunakan D-Joy Controller, Proses modulasi-demodulasiFSK maupun modulasi-demodulasi 2.4GHz telah diatur oleh modul DX-
24 yang ada pada robot mauPun yang ada pada D-Joy Controller.Selain itu, proses pengalamatan dan Pengaturan frekuensi dapat diaturdengan mengubah nilai-nilai register pada DX-24.
Modul D-Joy Controller ini juga mengkonversi data dari JoystickPlaystation menjadi data-data yang akan dikirim ke DX-24. Data dariJoystick dikirim melalui kaki data ( 1) dari konektor joystick.
tArS 4PS ?ftS&r.s * i.* *:,.&:1,: ry &'6
Gambar 6.10 Konektor Jogstik
Kaki nomor 2 berfungsi untuk mengirim data dari mikrokontroler kejoystick. Baik data mauPun command, Proses pengiriman selalu diiringidengan sinyal clock pada kaki nomor 7 (Gambar 6.10). Setelah
Command diterima oleh joystick, sinyal ACK akan dikirimkan olehjoystick ke mikrokontroler sebagai indikasi bahwa perintah darimikrokontroler telah diterima.
Dengan adanya D-Joy Controller, proses pengambilan data tersebuttelah diatur oleh modul ini sehingga anda hanya perlu mempelajari datayang diterima pada DX-24 penerima (di bagian robot saja).
Sinyal dari frekwensi 2.4 GHz diubdrrenjadidata SPI oleh DX-24 dan mqjadi
input dan otak robotData dd jaystick diubah renjdi
SPI dan ditransmisikan oldl DX-24
((((((((((
I
Gambar 6.13 Proses Komunikasi Data dari Jogstick ke Robot melaluiGelombang Radio
Modul D-Joy Controller ini memiliki 4 port joystick sehingga dapat digu-nakan untuk mengendalikan 4 buah robot dengan 4 joystick hanyadengan menggunakan 5 buah Modul RF DX-24. Empat buah moduldiletakkan pada 4 robot dan sebuah di D-Joy Controller (Cambar 6.14).
Data Bit o Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7
Data 1 Analog kanan arah kanan kiri ( 00 sampai FF )
Data2 Analog kanan arah atas bawah ( 00 sampai FF )
Data 3 L2 R2 L1 R1 A \-l X EData 4 select x x Start up right down left
Tabel 3 menunjukkan data-data yang diterima oleh bagian DX-24 padarobot. Dengan adanya D-Joy Controller, Anda dapat fokus mengolahdata yang ada di tabel tersebut tanpa harus mengatur sinyal-sinyal darijoystick. Selain pengiriman data melalui gelombang radio, modul inijuga dapat mengirimkan data melalui port serial dengan protokol sepertipada Tabel 4. Pengiriman data melalui port serial ini dilakukan denganmenekan tombol select pada joystick.
Tabel4 Protokol Data Serial D-Jog Controller
iIL
Pengiriman data dari Joystick ke PClMasterBvte Data Nilai KeteranoanBvte 0 Header 1E
Bvte 1 Destination lD 00Byte 2 Destination Number 01
I.Uns{)eq)g[ e]^gI)qs^of g etBCz[ e]^g>{)qs^of g p}pcI I a]AgY)rls^or 7 Blecl0t al^gI)qs^or E Blecl6 augpqs{op Z ptp(lB el^g{)r}s^of I plp(lz el^g
IOqElurred srusr9 e]^g
>1c11s[op Upp elpp uprenley
Bab 6: Bagian Pengendali Robot
konfigurasi yang dapat dilihat pada Cambar 6.77. Data-data akantersimpan pada Buffer TRW24 dan Anda dapat menggunakan data-datatersebut untuk aplikasi robotik sesuai kebutuhan.
D- joy. asm:$MODs l-
;DEKLARASI I/O SESUAI DELTA ROBO CPU PORT
DATA BIT P2.1CLK1 BTT P2.6CS BIT P2.4CE BIT P2.OCLK2 BIT P2.2DATA2 BIT P2.3DR2DR1
. DSEGOrg 30h
PanjangData EQU 4
BufferTRW24 Ds PanjangData
; MAIN PROGRAM
; - Data dari dari joystick akan disimpan pada BufferTRW24, BuffertRw24+1; hingga BufferTRW24+3
.************************************************************'subroutinguntuk mengirim data TRW24 dengan pengalamatan sebanyak 2 byte; - R6 = alamat. byte 2
Mov A,#Oh ;Send Reserved ByteAca11 Kirim_Printah ;Mov A, #0 ;Acalf Kirim_Printah ;Mov A, #0H ;Acall Kirim_Printah ;Mov A, +1*8 ,'Channel 2 panjang 1 byteAcall Kirim_Printah ;Mov A,+8*PanjangData ;Channel 1 panjang 6 byte (48 bit)Aca11 Kirim Printah
Mov A, #CH2AddressByte4Acall Kirim_PrintahMov A, #CH2AddressByte3Aca11 Kirim_PrintahMov A, #CH2AddressByte2Acall Kirim_PrinLahMov A, +CH2AddressBytelAcall Kirim Printah
0al.{gssarppvzHcTal^EsserppvzHJz a1^8 s sa-rppvzHctal^assarppvzHJ?e1^g s sa-rppvzHc
nog loqoE-rouoN
Bab 6: Bagian Pengendali Robot
Bagian Otak
Seperti yang telah dijelaskan pada bagian sebelumnya, bagian iniberfungsi sebagai pemberi keputusan dan perintah agar bagian motoraktif menggerakkan mekanik-mekanik robot. Selain itu, otak juga harusmemiliki unsur memori yang berfungsi sebagai media ingatan robot.Contohnya, robot yang menyimpan gerakan-gerakan yang dilakukanpada memori saat melewati labirin agar rute yang telah dilalui tercatatpada memorinya.
Modul Delta Robo CPU merupakan modul yang sesuai untuk aplikasi inikarena modul ini telah memiliki Port DC Driver untuk mengendalikanMotor DC, Infrared Line Sensor dan Ultrasonic Transducer untuk InputSensor, Infrared Receiver Port dan DX-24 Port untuk Input Remote, dan1 kb I2C Serial EEPROM sebagai memori. Selain itu, modul ini jugamemiliki Port ISP untuk keperluan men-download program ke dalammikrokontroler Delta Robo CPU
Tekan tombol Signature. Signature bit dari mikrokontroler akantampil pada layar yang mengindikasikan bahwa PC telah terhubungdengan baik pada sistem mikrokontroler.
Tekan Open File dan pilih file hex yang akan di-download. File inidapat berupa file yang ada pada contoh-contoh program atau hasilassembly dari program rancangan pengguna melalui RIDE atauDelta Studio.
Tekan Write. Akan tampil progress bar yang menunjukkan bahwaproses download sedang berjalan.
Untuk me-reset sistem, pengguna dapat melakukannya melalui PC
dengan menekan tombol signature. Apabila signature bit tampil,berarti proses reset berhasil.
Dewasa ini parallel port sudah tidak lagi digunakan pada notebook danbahkan pada PC sekalipun. Teknologi USB telah mendominasi port-portini di berbagai jenis PC maupun notebook. Untuk itu dibutuhkanprogrammer yang dapat melakukan proses download melalui USB.
oN l0ol PP.@ordiqFs lu :$mP.l !E..{ri@h'p t.hpe,p!q9l
az,9:6r.ru80i!rus lorydE@H:
@lPddv:dle6rd:BZ I6tu1V d{ti
-,-._ ::".r*-r1:":l;wg1dl*fi6l..6El
Bab 6: Bagian Pengendali Robot
Motor DC
Motor ini adalah motor yang paling sederhana untuk pengaktifannya.Hanya dengan memberikan tegangan DC, motor ini akan berputarsecara kontinyu ke arah tertentu. Membalik arah putaran motor dapatdilakukan dengan mengubah polaritas arus yang mengalir pada motor.
Motor DC biasanya mempunyai kecepatan putar yang cukup tinggi dansangat cocok digunakan untuk roda robot yang membutuhkan kece-patan gerak yang tinggi. Juga dapat digunakan pada baling-baling ataukipas pada aplikasi robot pemadam api.
Untuk mengendalikan motor ini dibutuhkan sebuah rangkaian yangdisebut rangkaian Half Bridge. Rangkaian ini akan membuat arusmengalir pada motor melalui dua kutubnya secara bergantian sesuaiarah yang diinginkan. Gambar 6.28 menunjukkan rangkaian Half Bridgeyang dilengkapi dengan proteksi hubung singkat. Rangkaian ini dapatdijumpai pada Modul Delta DC Driver yang memiliki dua rangkaian HalfBridge sehingga dapat mengendalikan dua buah motor DC.
Apabila transistor PNP yang kiri aktif, transistor NPN kanan juga aktifsedangkan PNP kanan dan NPN kiri non-aktif. Arus akan mengalir darisumber daya positif ke kaki 3 JP4 yang terhubung ke kutub motor danditeruskan hingga kaki 4 JP4 ke sumber daya negatif atau ground.Sebaliknya pada saat transistor PNP kanan yang aktif, maka transistorNPN kiri juga aktif sedangkan PNP kiri dan NPN kanan non-aktif. Arusakan mengalir dari sumber daya ke kaki 4 JP4 dan terus menuju kesumber daya negatif melalui kaki 3. Dioda berfungsi untuk mencegahadanya tegangan reverse akibat induksi motor.
Pada rangkaian Half Bridge, hal yang tidak boleh terjadi adalah keempatbagian transistor, yaitu NPN kiri, NPN kanan, PNP kiri, dan PNP kananaktif bersamaan. Hal ini akan menghubungsingkatkan sumber dayapositif dan negatif. Untuk mencegah kondisi ini, rangkaian gerbangIogika yang dibentuk oleh IC 74LS02 diatur sehingga NPN kiri dan NPNkanan aktif bergantian. Hal ini ditentukan oleh kondisi logika pada P1.0sebagai penentu arah gerakan motor. Sedangkan P1.i berfungsi untukmengatur apakah motor dalam keadaan aktif atau tidak. Bila kondisilogika P1.0 adalah logika 0, maka keluaran U3B akan berlogika 0 pulaselama P1.1 aktif (berlogika 0). Hal ini akan mengakibatkan transistorNPN kiri non-aktif. Sedangkan keluaran U3C akan berlogika 1 yangmengakibatkan keluaran U3A juga berlogika 1 dan transistor NPN
Gambar 6.30 Modul Delta DC Drioer dengan Dual Half Bridge
Motor Stepper
Pada dasarnya ada 2 jenis motor stepper, yaitu bipolar dan unipolar.Sebuah motor stepper berputar 1 step apabila terjadi perubahan aruspada koilnya yang mengubah pole magnetik di sekitar pole stator.Perbedaan utama antara Bipolar dan Unipolar adalah sebagai berikut :
Bipolar- Arus pada koil dapat berbolak balik untuk mengubah arah putar
motor.
- Lilitan motor hanya satu dan dialiri arus dengan arah bolak-balik.
(nipolar- Arus mengalir satu arah dan perubahan arah putar motor tergantung
lilitan (koil) yang dialiri arus.
- Lilitan terpisah dalam 2 bagian dan masing-masing bagian hanyadilewati arus dalam satu arah saja.
Modul 55T-06 V2.0 ini selain dapat mengendalikan motor steppermelalui perintah-perintah serial juga dapat mengendalikan motorstepper secara manual dengan menghubungkan Left atau Right pada J7ke Ground. Dengan menghubungkan Res pada J7 ke Ground, makamotor akan bergerak ke Home Position (posisi awal).
Sakelar push button 51 berfungsi untuk mengubah kecepatan motorsecara manual. Perubahan kecepatan ini dapat dilihat dari perubahankecepatan kedip LED saat motor bekerja. Memori AT24C08 akanmenyimpan nilai kecepatan tersebut sehingga pada saat powerdiaktifkan kembali, kecepatan gerak yang digunakan adalah kondisiterakhir terjadi sebelum power dimatikan.
Pengaturan gerakan melalui UART dilakukan dengan mengirimkanperintah-perintah yang akan dilaksanakan oleh Modul 55T-06 sesuaiTabel 5 berikut.
Tabel S Protokol 55I-06
Pengiriman data dari PClMaster ke 55T-06Byte Nilai Keterangan00 Header 1E Awal paket data01 Destination ID 06 ID Subsystem02 Destination Number O1-FF No urut Sub System03 Source ID 00 ID Pengirim 00 = Master
(PC/Microcontroller)04 Source Number O1-FF No urut Master05 Length Panjang paket data
06 Perintah 01 Start Motor kontinyu02 Stop Motor03 Start Motor ke posisi tertentu04 Set Kecepatan Motor05 Set Home Position
07+n Checksum OO-FF Total mulai 1E hinggachecksum = 00
Perintah Start Motor KontinyuByte Nilai Keterangan07 Set Direction 00/01 00 ccw01 cw
I OB I Kecepatan Motor 2 | 00 - FF I step per second I
ACKByte Nilai Keterangan07 Status ACK 4514F 45 = E atau error da
4F=OatauOK
Motor Servo
Berbeda dengan motor DC dan motor stepper, motor servo adalahsebuah motor dengan sistem umpan balik tertutup di mana posisi darimotor akan diinformasikan kembali ke rangkaian kontrol yang ada didalam motor servo. Motor ini terdiri atas sebuah motor DC, serangkaiangear, potensiometer, dan rangkaian kontrol.
Potensiometer berfungsi untuk menentukan batas sudut dari putaranservo. Sedangkan sudut dari sumbu motor servo diatur berdasarkanlebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Sepertitampak pada gambar, dengan pulsa 1.5 ms pada periode selebar 2 ms,maka sudut dari sumbu motor akan berada pada posisi tengah.Semakin lebar pulsa OFF, akan semakin besar gerakan sumbu ke arahjarum jam. Semakin kecil pulsa OFF, akan semakin besar gerakansumbu ke arah yang berlawanan dengan jarum jam.
l- 1 5 ms--lmgt^^t
-zms -ng1-7L]
lr ,s]
148
Gambar 6.33 Teknik PWIvI untuk mengatur sudut motor seroo
memberikan informasi tersebut. Untuk menghitung jumlah lubangencoder ini dapat digunakan rangkaian DEC-01 seperti pada Qambar6.35.
Gambar 6.35 Diagram Skematik DEC-01
Hubungan antarakonektor 3 pin padapada Gambar 6.36.
DEC-01 dan DSR-08 dapatmasing-masing modul dengan
dilakukan melalurpengkabelan seperti
Gambar 6.36 Pengkabelan DEC-01 dan DSR-O8
Untuk mencegah kerusakan akibat kegagalan mekanis atau kesalahanpengaturan gerak servo, misalnya apabila pengguna mengatur servoagar bergerak 20 step ke CCW dan pada saat itu terdapat penghalangyang mengakibatkan mekanik terganjal pada saat step ke-10, maka
maka DSR-08 akan memerintahkan servo secara otomatis bergerak kearah sebaliknya sehingga sensor tidak lagi aktif.
Gambar 6.39 Skema DCS-OI dan DSR-O8
Potensio dalam hal ini berfungsi untuk mengatur besar nilai arus yang
akan mengaktifkan sensor.
Selain pengaturan gerak ke sudut tertentu, servo controller juga dapatdiperintahkan untuk bergerak secara relatif dari sudut tertentu. Hal iniakan meringankan beban otak robot karena tidak perlu mencatat atau
mengingat posisi sebelumnya. Otak robot hanya memerintahkan servo
controller ini untuk bergerak ke arah CW atau CCW sebanyak sekianstep saja.
Gambar 7.1. Robot Laba-laba dengan kaki 2 dan 5 (kaki-kaki tengah)terangkat
Gerakan setiap ruas dari kaki-kaki tersebut merupakan gerakan sudutsehingga motor servo adalah alternatif terbaik dalam hal ini. Sepertitelah dijelaskan pada bagian pengendali servo, posisi sudut dari motorini diatur oleh teknik PWM.
Gambar 7.2 ke enam kaki laba-laba tampak atas
Dengan menggunakan enam kaki dan dua ruas, maka dibutuhkansetidaknya 12 motor servo yang harus diatur PWM-nya. PengaturanPWM merupakan fungsi pengaturan timing yang sangat kritis karenasedikit perubahan akan mengakibatkan pergeseran posisi gerakansudut ruas. Untuk itu, agar kinerja otak robot tidak terlalu berat denganadanya pengaturan PWM ini, maka digunakan beberapa servo controlleryang berfungsi sebagai otak tambahan dari robot.
Dengan Modul DSR-08, maka otak robot dapat mengirimkan perintahmenggerakkan motor servo, meminta informasi lebar pulsa PWM,meminta informasi sudut servo (dengan bantuan rotary encoder),menghentikan motor servo, dan lain-lain. Pada umumnya, yang palingsering digunakan adalah perintah menggerakkan motor servo. Otakrobot akan mengirimkan perintah tersebut dalam sebuah paket yangberisi variabel-variabel sebagai berikut:
- Nomor urut DSR-08 yang menentukan modul DSR-08 mana yangdiakses.
- Nomor servo yang diakses.
- Posisi servo atau lebar pulsa PWM yang menentukan sudut motorservo.
- Frekuensi PWM yang menentukan kekuatan gerak motor servo
Lebih detail mengenai variabel-variabel ini dapat dilihat di bagianprotokol pada penjelasan tentang bagian pengendali servo.
Setelah perintah diterima, DSR-08 akan memberikan informasi padaotak bahwa perintah telah diterima dengan baik dan akan dikerjakan.Otak robot mengetahui bahwa DSR-08 telah menerima perintah denganbaik dan sedang mengerjakan perintah tersebut sambil menungguperintah selanjutnya.
DSR-08 mmbsiACK
3
, -,, l:: illii
MOTOR SERVO 2
DELTA SERVOCONTROL
DELTA ROBO CPU
Gambar 7.4 Modul DSR-08 memberi informasi siap pada Delta Robo CPA
Untuk mengendalikan 18 motor servo pada mekanik laba-laba ini digu-nakan 3 buah DSR-08. Masing-masing DSR-08 akan mengendalikan Imotor servo.
Kaki robottampak atas
UJMotor Servo 3 alauT -'-l
4 atau 8
Motor Servo 1 atau 5 untukfungsi ekstra
Gambar 7.6 Posisiposisi Motor Seroo Pada Nlekanik Kaki Laba'laba
Ke-18 motor servo tersebut tersebar pada keenam kaki laba-laba.Masing-masing kaki memiliki 2 buah motor servo penggerak ruas dan 1
motor servo ekstra. Cambar di atas menunjukkan nomor-nomor motorservo pada setiap kaki laba-laba. Untuk kaki ganjil (1,3, dan 5) digu-nakan motor servo t hingga 4 dari setiap DSR-08. Sedangkan untukkaki genap (2, 4, dan 6) digunakan motor servo 5 hingga 8 dari setiapDSR-08.
Motor Servo 4 atau motor servo 8 berfungsi untuk mengangkat danmenurunkan kaki laba-laba ruas pertama. Ruas ini adalah ruas yangmenopang tubuh laba-laba saat berdiri sehingga motor servo yangdigunakan adalah motor servo yang memiliki torsi paling besar, yaituHS-8058B dengan torsi24,7 kg-cm.
Untuk ruas kedua yang bergerak secara horizontal, untuk mengaturmaju mundurnya kaki dikendalikan oleh motor servo 3 atau motor servo7. Walaupun tidak sekuat ruas pertama, namun ruas ini juga membu-
'lu!deqel eped r1ema1ra1 ledep I spnr er{u1e1Duere1 uer66ur}ar rrpp qppuar
Bab 7: Robot Laha-Laba dengan 6 Kaki
Tampak samping, ruas 1
diangkat
Tampak atas, ruas 2kembali ke posisi lurus
Tampak samping, ruas 1
diturunkan
Gambar 7.9 Gerakan Langkah Lurus
Gerakan Badan Kiri Maiu
Cerakan ini berfungsi untuk menggerakkan tubuh robot bagian kananmaju. Proses gerakan dilakukan dengan mengangkat 3 buah kaki robot.Dua kaki kiri dan satu kaki kanan (tampak dari sisi robot)
Gambar 7.1O Gerakan mengangkat kaki 1, 3 d.an 5
Pada saat ini, tumpuan tubuh robot berada pada kaki 2, 4, dan 6. Agarrobot bergerak maju pada bagian kiri (kiri dari sudut pandang robot),
Sama halnya dengan gerakan maju kiri, pada saat ini tumpuan tubuhrobot berada pada kaki 1, 3, dan 5. Agar robot bergerak maju padabagian kanan (kanan dari sudut pandang robot), maka kaki-kaki inidiatur untuk mendorong ke belakang. Gerakan tersebut langsung dilan-jutkan dengan gerakan maju kaki 6 disertai turunnya kaki 2, 4, dan 6.Dengan bantuan gravitasi, maka gerakan maju ini akan semakin lancardan tubuh bagian kanan robot akan bergerak maju.
Gambar 7.13 Kaki 1, 3 dan 5 mendorong ke belakang dilanjutkan kaki 6m4ju serta kaki 2, 4 d.an 6 turun
Gerakan Robot Berdiri
Gerakan ini adalah gerakan laba-laba untuk ke arah posisi siap.Gerakan ini difungsikan untuk mengatur posisi semua ruas kaki laba-Iaba ke arah di mana keenam kaki mengarah lurus ke samping danmenyentuh lantai. Ini adalah posisi di mana apapun kondisi sebelum-nya, keenam kaki ini akan bergerak ke arah posisi siap untuk berdiri.
Gerakan ini diawali dengan gerakan meluruskan ruas-ruas dua darisetiap kaki sehingga pada saat mengangkat kaki, ruas-ruas tersebuttidak saling berbenturan. Kemudian dilanjutkan dengan gerakan meng-angkat keenam kaki sehingga ruas 2 dan ruas 3 dari masing-masingkaki akan dapat bergerak dengan bebas.
Bagian ini akan membahas hubungan antara gerakan-gerakan mekanikpada robot laba-laba terhadap pengaturan sudut motor servo. Terdapatdua gerakan dasar, yaitu gerakan ruas satu yang berfungsi mengangkatdan menurunkan tubuh laba-laba dan gerakan ruas dua yang berfungsimengarahkan kaki laba-laba ke depan.
Gerakan Ruas Satu
Ruas satu digerakkan oleh motor servo yang paling kuat torsinya, yaituHS-805BB dengan torsi 24,7 kg. Penggunaan motor servo dengan torsiterbesar pada bagian ruas ini ditujukan untuk mengangkat tubuh laba-laba berdiri.
Meskipun tidak sekuat torsi motor servo pada ruas satu, namun padaruas ini tetap dibutuhkan torsi yang cukup kuat. Di sini digunakan HS-
645 mG yang memiliki torsi 9,6 kg-cm. Hal ini karena fungsi motortersebut adalah menggerakkan tubuh laba-laba yang cukup berat kearah maju maupun mundur.
Gambar 7.18 Arah Gerakan Ruas 2
Posisi servo pada kaki 7,2, dan 3 berlawanan dengan kaki 4,5, dan 6sehingga bila pada kaki 1 ,2, dan 3 gerakan CW adalah gerakan ke arahmaju, maka pada kaki 4,5, dan 6 gerakan CW adalah gerakan ke arahmundur. Pada ruas ini, motor servo diatur agar arah Full CCW adalaharah mundur terjauh yang diperbolehkan pada kaki 7, 2, dan 3 atauarah maju terjauh yang diperbolehkan pada kaki 4,5, dan 6.
772
eLt
'E uep '€ 'I I>lB>l e,{uunrnlr6urrrrp IJI{ e{ relndraq }oqor qnqnl e66urqas rnpunur Duoropueu guep V r1e>1 'nfeu Duoropueu Z HeI p^\qpq >1edue1 6t'Z requpD eped
Proses gerakan dilanjutkan dengan kaki 1 dan 6 melangkah maju serta
kaki 2, 3, 4, dan 5 kembali ke posisi lurus sehingga robot dapat siap
untuk berputar lagi bila masih diperintahkan'
Berbeda dengan gerakan memutar tadi, kali ini gerakan meluruskankaki 2, 3, 4, dan 5 serta langkah maju kaki 1 dan 6 berupa sebuah
langkah dengan mengangkat terlebih dahulu kaki tersebut sehinggatubuh robot tidak berubah posisi untuk saat ini. Setelah proses inidilakukan, maka robot telah siap untuk kembali melakukan gerakanputar apabila masih diperintahkan demikian.
Gambar 7.27 adalah diagram alir dari robot yang bergerak maju. Proses
diawali dengan inisialisasi serial port, yaitu port yang digunakan untukkomunikasi antara otak robot dengan modul-modul servo controller.Kemudian, robot mulai melakukan gerakan-gerakan untuk berdiridengan diawali mengangkat keenam kaki, meluruskan dan menurunkankembali ke posisi siap. Gerakan badan maju, baik kiri mauPun kananmulai dilakukan setelah robot bergerak berdiri.
174
9LL
n{b614eodtag pqoA 41yuet6eru rc'l requeD
---'f- - -unJnltuPpzuPy
nrvv\l NVNV) NVGVEL-- - 1,
nlVhl lul)1 NVOV€_-- - - ;>
IU|OUSA IOAOU __ >,
z sEnJ-enluElsnJn"l
unJnllquPs nfeu g ue)
Bab 7: Robot Laba-Laba dengan 6 Kaki
Spider.asm:$MOD5 1
; PROGRAM DEI,TA ROBO SPIDER BER.JALANSMOD5 1
DSEGDeviceID EQUPerintahKontro 1Mo t orSTXNomorRobot
;Nomor urut robot;.f enis Slave;Nomor urut Slave;Variabel Master;Variabe} nomor urut Master;Checksum paket data serial;Panjang data pada paket serial;Buffer data serial;Buffer perintah dari Wireless
;LeveI indicator penuh;Inisiaf Serial Port 11-5200 bPs
;
;Robot berdiri
kaki2 depan
00hEQU 01EQU 1EhEQU 03
DSDs
;Majukan
GERAKAN-GERAKAN ROBOT
176
MajuModel:
7
LLI
r{eI un-rnl I
e sen-r un]n1 I
-!{e1 ntelrl
r{e){ 1e{6ue:
T{P{ un-rn1 i
t senf un-rn1 i
T{€1 nteulj
Tlie{ 1e)i6u€ i
suro0T-^ETao ITec.Io^,rasTsTsodlas TTer"I
suroE--4eTac TIec.Io^.rasTSrsodlas TTeJ.I
suog-.{eTaq TTeclo^.rasrsrsod?es TTec.I
suroE-^eTaq TTec"Io^-rasrsrsodlas TTe3"I
rnpunhizr)iEx#'llJdo /\ow: -rnpuntrdqeISuerI z T)iex
Kesemuanya itu membutuhkan OpenCV sebagai program utama antarawebcam dan pengolahnya, yaitu komputer. Silahkan kunjungi situsopencv.org untuk men-download atau mengetahui berita terbarutentang software ini.
Pemrograman Dasar OpenCV
Anda membutuhkan editor dan kompiler Visual Studio .Net 2005 untukmengedit dan mengkompilasi program OpenCV. Anda terlebih dahuluharus mengkonfigurasi Visual C++ .Net tersebut di mana file library dansource-nya harus disertakan (lihat tutorialnya di internet). Beberapa filelibrary juga harus ditambahkan pada input linker di Visual C++. Andajuga dapat mengikuti paket training 3 hari fullday/workshop sehariComputer Vision pada Robot yang diadakan oleh CV Pusat e-Technology milik penulis, baik secara private mauPun inhouse.
'C : \P169"** FilesropenCv\lib"
*r*:.:iinilhrn direclories for:
lSsou*cmtrot si*i***--**T [h*\,ril",
-
";l*l Text Edlori$il;;; : yjafE,rjtl,-:":""*" *"
l$(vLlosldlDir)lib
.{ l.b:sslns Errr,:*;;ffi;b,;"-.;J{'\hb-:iJLrevrte'ool, ffirtrm:U(llh\0rtrEletrei' r ttT|,,tL D"r,**, i$(r(IniitsllDir)Fldborm50K\lib
r.ueDqe^\ rrep e6eur lrqtue6uaru upp tue)qe^\ rslalapueur ur6ur epuy elrf
Bab 8: Computer Vision untuk Robot
Pengenalan Wajah
Haar Cascade Classifier
OpenCV adalah open source library computer vision yang memudahkanpemrograman deteksi wajah, face tracking, face recognition, kalmanfiltering, dan berbagai metode artificial intelligent.
OpenCV menggunakan sebuah tipe face detector yang disebut HaarCascade Classifier. Qambar menunjukkan face detector berhasil bekerjapada sebuah gambar. Jika ada sebuah image (bisa dari file/live video),face detector menguji setiap lokasi image dan mengklasifikasinyasebagai "wajah" atau "bukan wajah". Klasifikasi dimisalkan sebuahskala fix untuk wajah, misal 50x50 pixel. Jika wajah pada image lebihbesar atau lebih kecil dari pixel tersebut, classifier terus menerus jalanbeberapa kali untuk mencari wajah pada gambar tersebut.
Classifier menggunakan data yang disimpan pada file XML untukmemutuskan bagaimana mengklasifikasi setiap lokasi image. OpenCVmenggunakan 4 data XvlL untuk deteksi wajah depan dan 1 untukwajah profile. Termasuk juga 3 file XML bukan wajah: 1 untuk deteksifull body, 1 untuk upper body, dan 1 untuk lower body. Anda harusmemberitahukan classifier di mana menemukan file data yang akandipakai. Salah satunya bernama haarcascade_frontalface_default.xml.Pada OpenCV, terletak pada folder:
Program_Fil es/OpenCY I data I haarcasades/ha arcasca de_frontalface_default.xml.
Konsep Pendeteksian Wajah
OpenCV face detector menggunakan metode Paul Viola dan MichaelJones. Silahkan baca detail paper mereka di CD Program. Metodemengkombinasikannya adalah sebagai berikut:
Fitur rectangular sederhana yang disebut fitur Haar.
4. Untuk menjalankan detektor, panggil objek cvHaarDetect. Fungsiini membutuhkan 7 parameter; 3 pertama adalah pointer image,XML data, dan memory buffer, sisanya di-set pada default C++.
pFaceRectSeq =cvHaarDeEectObj ecEs(pInpfmg, pcascade, pStorage,1-.1-, / /tLngkatkan skala pencarian dengan 10% E.iap passing3, //drop group yang kurang dari 3 deteksiCV_HAAR_DO_CANNY_PRUNNING //skip region yang tidak berisi wajahcvSize (0, ) ) ; / /gunakan xl4l- defauft. untuk skala pencarian terkecil.
5. Untuk membuat display Window gunakan cvNamedWindow sepertiberikut:
cvNamedWindow ( "Haar Window", CV-WINDOW_AUTOSIZE) ;UnLuk memasukkan image ke display, panggil fungsi cvshowlmagefl dengannama yang telah dibuat pada window dan nama image yang inginditampi lkan.
Berikut ini kode lengkapnya:
DetectFace.cpp:/ / Hak Cipta cognotics. com#include "stdafx.h"#incfude <stdio.h>#include'cv.h'#include "highgui.h"
OpenCV face tracker menggunakan algoritma CamShift. Camfsit terdiridari beberapa langkah :
1. Membuat histogram warna untuk merepresentasikan wajah.
Camshift merepresentasikan wajah yang di-track sebagai histogramnilai warna. Ketinggian setiap bar berwarna mengindikasikanberapa banyak pixel pada daerah image yang memiliki "hue". Hueadalah satu dari 3 nilai yang menjelaskan warna pixel pada HSV(Hue, Saturation, Value).
Menghitung probabilitas wajah untuk setiap pixel pada frame videoyang diterima.
Menggeser lokasi dari persegi wajah pada setiap frame video.
2.
iIIl_ *
204
3.
Y: rtr-
I (T_)uer6o.rdfTxa ( OTTVxTUTi )l.F j0=lceuacedd+lcaEl\J
t ^6ab
?brr^ ,^6T- )
+ +-rEr{c 'c6:e qur ) ureu pro^
I ( )eure-rdoapr^a]nlde3 pro^l (epoc 1ur)ule_r6o"rd1Txa pTo^
1. Untuk mahir computer vision pada robot, tidak ada cara lain selainAnda mengerjakan tugas yang penulis berikan. Buatlah ProgramRobot Line Follower yang mengikuti wajah orang di depannya.
2. Buatlah program edge detection menggunakan OpenCV'
3. Buatlah program Threshold dan ROI menggunakan OpenCV.
4. Jelaskan cara kerja Haar Cascade Classifier.
5. Buatlah program dan file library XML untuk deteksi objek buatanAnda, misalnya deteksi gelas dan gunting. Anda harus membuat filepositif berupa file gambar yang ingin dideteksi minimal 72 gambar
dengan berbagai pose dan file negatif berisi gambar yang bukaningin dideteksi. Lalu, lakukan pembuatan file vector dengan contohperintah:
Oleh karena itu, penulis tertarik untuk memotivasi pembaca agarmembuat robot ini.
Robot yang akan Anda buat berbasiskan 2 buah mikrokontroler BasicStamp dan AVR Atmega8535 untuk mengendalikan webcam sertaaktuator. Perangkat yang digunakan secara detail adalah:
o 2 buah mikrokontroler Basic Stamp dan 1 buah mikrokontroler AVR
. Modul Text to speech dari Parallax
. SG6 Arm Robot 5 DOF Crustcrawler
o 2 buah servo continuous Parallax
o 2 buah webcam standar
. Sensor jarak PING
. Motor dan roda robot serta komponen pendukung
Berikut ini adalah rancangannya. Intinya, robot mendeteksi wajah sese-orang menggunakan webcam, robot menerima input order dari switchmanual atau speech recognition. Setelah itu, robot dapat memberikanorder orang tersebut menggunakan arm robot dengan berjalan meng-gunakan kaki atau roda. Berikut arsitektur robot penulis yang bernamaSrikandi.
Gambar 9.1 Arsitektur robot pelagan Srikandipenulis)
*E;;;;;;Ill
+i
r;;..,_-";-+*
f -**'Jl
ertuilpa r,!aarera
r0rtrD:ler
272
(seroant robot, hak cipta
r€.tz
tpue{trg uefrepd pqor gutdues 4eduel €'6 requeD
sEag *----------*
jtaIPtsds
It'xleulp.looq 0,ruaS liq d
r*.rs'E
lpu",tqg uefrepd pqor uedap qeduet Z'6, requeD
eAeperle3
[,u tr
Soqo; uetual ---------------r'
I -,.,
QSi6!A8ilAls ________--______*, #,.,, G&
Bah 9: Robot Pelayan Humanoid
Anda dapat memesan demo robot ini dalam bentuk sudah jadi (robotpeople follower) tanpa lengan robot seharga 9 juta rupiah. Jika lengkapdengan lengan robot, harganya sekitar 30 juta di luar laptop/PC.
Perangkat Lunak Robot Pelayan
Untuk mengendalikan Basic Stamp digunakan bahasa PBASIC. Untukmengendalikan webcam dan image processing di PC, digunakanOpenCV. Sedangkan untuk mengendalikan AVR digunakan CodeVisionC AVR. Untuk antarmuka antara PC dengan pengguna (User Interface)digunakan Visual C# .Net. Agar robot dapat berbicara, digunakan kitText to Speech dari Parallax. Contoh robot berbicara ini sudah dibahaspenulis pada buku sebelumnya, yaitu 10 Proyek Robot Spektakulerterbitan Elex Media Komputindo.
Face Recognition
Konsep Dasar
Untuk membuat robot pelayan dari arsitektur di atas, pertama Andaharus membuat program face recognition yang akan mengenali wajahpemesan dan object recognition untuk mengenali gelas atau bukan.Object recognition dapat dibuat dengan membuat file library XML. Facerecognition di sini menggunakan Eigenspace dan PCA, yaitu suatuteknik yang umum dikenal jika pemula ingin belajar pengenalan danidentifikasi wajah. Penulis mengharapkan Anda membaca paper aslidari penemu teknik ini di CD Program. Penulis juga mengharapkanAnda mempelajari Machine Learning. Program dimulai dengan training,di mana program akan melakukan proses pembelajaran. Selanjutnya,dilakukan pengetesan image, yang kemudian diteruskan dengan prosespengenalan wajah. Buatlah proyek baru dan beri nama FaceEigensebagai berikut:
Jika program ini dijalankan dengan melakukan training terlebih dahulu,lalu test, maka akan terlihat bahwa gambar 1, 2 , dan 3 sesuai denganbasis data 7,4, dan2.
Gambar 9.4 Hasil face recognition
Jika program diatas telah berhasil dikembangkan, langkah berikutnyaadalah membuat program object recognition. Setelah itu, membuatlengan robot yang dapat mengambil dan menerima gelas. Untukmengendalikan servo pada lengan robot, paling mudah menggunakanParallax Servo Controller yang dapat memperoleh posisi servo.
1. Jelaskan cara kerja Face recognition serta beberapa teknik yangumum digunakan.
Kembangkanlah demo kode pada bab ini untuk mewujudkan robotpelayan humanoid menggunakan stereo vision berbasis webcamyang mampu mendeteksi tingkat kedalaman dari suatu image.
Kembangkan juga robot yang mampu mengikuti wajah seseorang(people follower) seperti gambar di bawah:
Gambar 9.6 Hasil deteksi dan tracking w4iah robot people follower
Untuk mengoptimalkan pengenalan wajah, gunakan teknik penyim-panan 3 sampelwajah per orang.
Gambar 9.7 Basis data w4iah gang disimpan per orang dengan Eigenspace
Berikut ini contoh user interface berbasis C# untuk mendeteksiposisi wajah yang terdeteksi