View
311
Download
4
Category
Preview:
Citation preview
RGbGtHumdnoid
AKAANPAN.TIMUR
Widodo BudihartoPaulus Andi Nalwan
Free CDr Aplikasi-aplikasi
Pendukung. Datasheetr Assemblerr Basic Stamp Editoro Bascom AURo Code Vision
C AUR
HI
Membuat Sendiri
Ciptakan sendiri robot mirip manusiaberbiaya murah
I
I
fut#ltLat
ploueunH loqouu!puos l.Pnquaru
Sonksi Pelonggoron Posol 22:
Undong-Undong Nomor 19 Tohun 2002
Tentong Hok Cipto
Borongsiopo dengon sengoio melonggor don lonpo hok melokukon perbuoton sebogoimonodimoksud dolom Posol 2 Ayot (1)otou Posol 49 Ayot (1)don Ayoi (2) dipidono dengon pidonopenioro mosing-mosing poling singkot 1 (soiu) bulon don/otou dendo poling sedikit Rp.l.000.000,00
(sotu iulo rupioh), otou pidono penioro poling lomo 7 (tuiuh) tohun don/oioudendo.poling bonyok Rp 5.000.000.000,00 (limo milyor rupioh).
Borongsiopo dengon sengoio menyiorkon, memomerkon, mengedorkon, otou meniuol kepodoumum suotu ciptoon otou borong hosil pelonggoron hok cipto otou hok terkoit sebogoi dimoksudpodo Ayot (1) dipidono dengon pidono penioro poling lomo 5 (limo) tohun don/qtou dendopoling bonyok Rp 500.000.000,00 (limo rotus iuto rupioh).
L
2.
id
l'?#trP{Yt # $tr/rf}t'{}X ffi opurtnduoy elpaw xalg jfr lrqraue4
ue^ leN lpuv snlned8
ouBL.l!png opoplM
ploueunH loqouu!puos
qr."
IPnqu0ru
/tr
,i'. " .
it';;iriL j i. ::' i
Membuat Sendiri Robot Humanoid
Widodo Budiharto t' Paulus Andi Nalwan
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
'34o.4stlsr'rc lrlW
&c
'de16ua1ad
q3 eped qalorad epuy ledep Durluad u:er6ord epes '6uqued tseuuro;utupp ueleru ue6uap qnued uep pqo) Bpuy snrpq 6uBr{ dB.re1 ders rse4ldeqotuo) re6eqraq ue6uep rdelDualrp BDn[ tut nlng 'tuo)'elluorl{ela-o{Ol'^\/\t1y\ uep I.UO)'}OqOJ-o>{Ol'1n1\\/r\ nple ulo)')luoJpele-pllap'Av\rfi\ lp srlnuad e)JeuIruo)-e snus InlPIeu spqeqlp 6uer{
lll Dlrlrureu ledep epuv 'tut nlnq Ip loqor laford re6eqreq Pqo)ueruepuv qepnuredLua(u InluD 'er(urye Bpe IePII eles eeeqtueu e{ueg'Duns6uel eqo)uatu ulplas e>llloqoJ rlqeu Inlun ulel PJe) PpB >leplI
'Bqo)Jp upp p)pqrp {n}un IIJeueu le6ues er(un}uelrur nlnq eped e>lgoqoJ rqoqEued uep rsrl>1erd 7 tJaleur Iseroqeloy'lul nlnq eped rurlJel loqor uep rosues r6o1ou1a1 ue>lralndodtueue6n[ srlnued 'egseuopul 1p p{I}oqor r6o1ou1a1 uelnfer-uau In]uD
'erseuopul Ip Ppe qeurad6uer{ delDualra} loqor n>lnq ue{pdnreu IUI n{ng 'lPpueq relor}uo>lorlluqelo lorluolrp 6ue,( proupulnq loqoJ lenqtuetu euetute6eq tlelep BJp)esseqBquleu rur n{nq rs1 'ese,{elared e:ed eues Plruorllale rqoqEuadepes 'emsrspqptu 'refeled qelo p)eqrp tedat le6ues rul n{ng 'ptoueunq
loqoJ lenqurou uenpued nlnq uelJn)unlau rleq Eueuas ueEuep srlnued'qplnll >{n}uD 'e{ruort>{ele rqoq6uad uep refeled r6eq ltreueu 6ue,{
1eq uelednre(u rurlral r6o1ou>1e1 ueEuap plouetunLl loqod lpnqulew
rclue6ue4 epy
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 :Widodo@widodo.comwww. 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 widodo@widodo.comatau Paulus@delta -electronic. com.
Jakarta, 1 Agustus 20Og
Widodo Budihorto & Poulus Andi Nolwan
VT
!l^
22............ ueqtlP,I
6t "'.."..". '.repro^v loqou lenqurew8I """""" 'lndln6 lndul uederaued
LI """""" ,{e1aq rs6ung uep 1nd1ng uederaua6
Lt """""" ' uer6ol4 eped uederaued
€t """""" uer6or4lpnquew eqo)uew2L """""" ralrduoS ) UAy uorsr6epo) rsplelsul
I I """""" """ dAV >lnlun :a1rduo3 3 uer6o.r66 """"""" "'g€Eg e6euly dnv JeloJluoIoJIrW
6 """"""" ""'upnlnqppued
6 """"""' 'UVSVq rOSOU NVhTVUDOUWEd Z SVg
9 """"""" ueqllelE """"""' ProuPrunH ]oqod rnllelrsrv€..............
...............prouprunH loqodI """"""" loqod qerefag
I """"""" loqod 1eua6ue14
I """"""" ""'uenlnqepued
[ """"""' "qroNwrDH rosou'rvNlrDNaw I sv8
II4"""""" ISI UVJ^:IYQ
A""""""' UVTNVDNedYrYy
lq )eueo
Bae 3 Roeor HqmAxorp BRAT ....25Pendahuluan............ .....25Mengenal Robot BRAT .................-25
Perangkat Keras....... ..................25Mencoba Mikrokontroler Basic Atom Pro .......... .........26
Merakit Robot BRAT .....30Latihan..... .....48
Bne 4 Lencex Ronor 5 Sumeq Generen .....53Pendahuluan ............ .....53AplikasiPenggerakLenganRobotMenggunakanPC..... ................59Aplikasi Penggerak Lengan Robot Menggunakan Mikrokontroler ..................67Program Penggerak Lengan Robot Otomatis .................68Latihan..... .....76
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
Latihan..... ...110
Bes 6 BRcrRr\ PENGENDALT RoBor .............111Pendahuluan............ ...111Bagian Input........ .......112
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
viiii:1 ,
,,& -ii
XI
v12""""" "" up^eled loqou lpunl ]pl6ueJedLLz""""" up1{pled ]oqod rnllelrsrvLL7""""" up1{eled loqou upFup)updLLZ """"" ""'uBnlnqpPuad
ILZ""""' "" qrONVhrDH NVAVted rOSOU 6 SVg
902......... uPr{r}pl
V02""""" qPIBA\ Dunperl002 """"" """"""'qpfe716 uerslalepued dasuoy002 """"" 'JerJrssel) epp)sp) rBBH
002 """"' r{p[p1\ ueleue6ua4
96I .'"""" """"n)uedg reseq ueruerDorua6E6I """"' 13uedg tuer6or6E6I """"' loqou eped uotstl ralnduo3 leua6ueyl96I """"' """uenlnqepued
g5I """"' rosou yDrND Norsrn ugrDdwo) g 8vg
66I """"" ueqrlplt,L1""""" ""relndrag uep nfe14 loqo6 up>leJeD
0ZI """"" onros rolow lnpns ue6uap up{BreD ue6unqngggl """"' "" rJrpreg loqod uBIBreD
Lg1""""" nleyl ueuey uppeg ue>lpreDg9I """"" """""""'n[BW trty uppeg up>leraD
E9I """"" snrn'I qe16ue1 up{preDg9I """"' rnpunw qe16ue1 up{BreD?gI """"" "n[ew qe16ue1 ue>lpreD
vg]- """"" nqq-nqn1 upleJaD-up>leraD
291""""" "'lypy spnd-sen5 >lereD uernle6ue4
L91""""" PqP'I-pqel toqodLqL """"" ""'upnlnqppued
LgI""""' """""Iyvy 9 NVDNEq VSVI-VSV'I rOSOU I SVg
99I """"" upr{r}P-l
8?I """"" "'olres rolowVil """"" reddalg rolow2v1""""" """')q rolow1V1""""" ""rolow uer6eg96l """"" trod gSD rnlelelu tuer6or6 ppoluly\oq
Lt"-
{
Face Recognition ........274Konsep Dasar ..........214
Latihan..... ...222
DaRTRR ACUAN ,,,.,,,.,,,.,225
LAIVTPTRAN ......227
TENTANG PexuLIs.... ......229
T
'p,{pp nle) Jeqr.uns uep 'ppol 'u1setu lrupletu resep nlrer{'1oqo: eped ueleun6rp >1er{ueq BEnf Br{rurpl Irqou eped ueleun6rp6uBf drsuud pueJpy 'loqoJ lenqtuetu Inlun Jespp Ieleq rlrlrueuqPPns ppuy 'er{rrue1 llqotu }rlerer,u Iqoq IIIlFuer.u ne}p qeured ppuvelrf 'loqoJ lpnqtuatu qplepp efuerelue rp 'e1ruor11a1e ue6uap urer.uJeqepuy elrf ueluesoqrueu leprl uep lrreuau 6uer{ 1eq >lefueq epy
loqou qPrB[os
loqou lBuobuaw
'uoq)e-Jalq loqoA ueunH ue6uep Ipuelrp 6uer{ ersnueur qredas n>leyrrdrequpp rslerelurreq uBnduBrua{ rlrlrrueu ueldereqrp 'ue>1qeg 'eJsnueurdrrrtu JnlrJ r>lrlruaru 6uBr{ }oqor rpefuau uelsn{oJrp ue>1e uedep aI }oqoruedereued BUoJBI 'ru1 lees uelDueqrualrp re)ue6 proueunq loqod
uenlnqepuod
ploueurnH ioqoa puoduew
/l
Bab 1: Mengenal Robot Humanoid
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.
\
vaNoH lreP oulsv pqoa I'I requeD
I'I requleD ruedes PpuoH
Irep OWISy nlrp^ {rreuer.u dnlne 6uef proueunq }oqod 'e[uure1 ]oqorDurpueqrp r66ur1 qrqel 6uer{ ue}rlnse{ 1e16uq qrlrtueru proueunq loqod'lersos BJB)es rs{pJe}urJaq ndureu-r lpnquaur 6ue,( ersnuetu qnqn} ue6uepdrrnu e{uueqnrnlasal uelrdruel ue6uap }oqor qelepe proueurnq }oqou
plouBrunH loqou
'uere11ope1 Eueprq rp rs6un;-rsDung
'(fVSO) {6o1ou-q)eI pue sse))y aredg Jo e)rJJO Jp ue{rspradorp 6uer{ trloqorale}uerEord rer{unduretu VSVN 'reurnofog Bureu ueDuap sre14 1aue1dnBlB uelnq rp rser.uJoJul Ue)uatu e{ulesru: ':aroldxa/qefelefuad }oqo5
'ersnueu qalone16ue[rp qesns 6uer{ ge:oJle Ip 6uenr n}ens rsledsur6uatu yn}uneun6req 6ue,t (93y14) ue1s,{g 6ur1mer3 pe}puotnv uoq)unJr}lnw
'"Wgl,, JnJnq lpnqtueur ynlun Jel)ru IelsrJ{ eped uouextrrole ge uelqppurureu Inlun (edocsonrl4 6ur1auun1 Duruuerg)WfS ueleun66ueu Wgl qrlaued '066t unqel epe4 'r(6olouq)aloueN
'(1oqor:ern) 6ue.red loqor 's;patu toqoJ 'e>1auoq loqor 'o1o1uer{e1e4
a
a
Bab 1: Mengenal Robot Humanoid
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.
t4
Gambar 1.3 Robot Asisten pribadi ENON
9
-eun6rp do1de1/34 uelEuepag 'qne[ leref BrBres qelurrad prrrgeue(unplp elep uplrsrusueJluaru ledep loqor re6e qelepp sple rp ueleun6rp6ue,( ssalarrm r6oyouleJ 'loqor rIBI uep epor nple loqor ue6ual rpedasrolpnlle 3I rsIP uelnlelatu ue{B relorluoloJ>lru '}enq B}r{ qelet6ue,{ uBr6ord rnleleu nlp'I 'JaloJluo>loJlru qalo qelorp uBIe Josuesqelo erurJalrp 6ue{ lndur entues 'eserq rpnl uBndrueure>1 ue6uapruolV )rseg uep 'durelg )rseg 'dnv Igedes JepeJeq tuntun 6ue,{Jepuels reloJluoloDlrr.x up{pun66ueu ledep epuy 'un16untu sppJe)eslnqesJel proueunq loqor lenqtuetu Inlun Jelorluolo.r>pur/lorluo6uedre6eqraq ueleun66uau ledep BpuV efurlur 'se1e rp requb6 epe6
(41nua4 e1fi2 4eg) repuels ploueunq ?oqoA ue6uecueg b'I requeD
uoIlIuBoceJecroA
YE'utiu Lrz-6 Y YCmv3
'tenq epuy ledep 6uefrepuels proupunq toqor ure.r6erp {otq ueledmatu Llelr\pq rp requeD
n3ued6 .re,ueg 1bg4bg.(1ni .loN'++J I?nsIA .do1du7 34
(,tazdt)psJe{ul Josuos
ilp/ruolv crseg
77 durelg crseg
79ggg e8sqygny/LLA9I )rd
77ge?sulyany
:rolorlrro{oJ)lltr^trIuelqs
t*'
plouBrunH loqou Jnllollsrv
rI
Bab 1: Mengenal RobotHumanoid
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
i,
t:tN
..ri
ondifl
'A)uedo epas leN' ++) Iensrn upurprDor(ued qeprefela6 .V
'er{uure1uep 'rqeurneud 'reddels ')q Jolou 'onJes qredes ,plouerunq loqoJrotpnlle ue6uep ue6unqnqreq 6uer{ urlEunu 1er{ueqas oJur qplrre) .€
kL.
'E€gg e6euly dAV ralorluo>loryrr.u dle uld0? rppupls rlp{ upunsns qelepp }nlrreq rpqrleD .g€.gg e6auly g1yurpl prplup rur lees ue{lpdepp qepnur upp lpuelral 6ue[ relor]uoloJlrw'tenqlp uele 6uer{ loqor prupln lo4uo6uad uelednteu reloJ}uo{orlrw
gtgg e6eu1v unv rolorluoloDlll l
'er{ur-unlaqes up{n}ue}p qplel 6uBf uerEord rBnses1nd1no uer6eq eped rsle uplnlplp uep 'relorluolorlru qelo seso.rdrpn1e1 'etultelrp 6uer{ lndur rseuJoJuJ uplJpsppJeq r.uelsrs nlpns up{rlpp-ue6ueru Inlun qplepp reloJluolorlrtu uedereuad upp rspluerJo .]oqoJ
efrel uelorluo6ued rrep Jpsep ueledn:au JeloJluoroDlrr.u upupr6orua4
uBnlnqBpuod
rcseo ioqoa ue.aetdotuod
F.,
Bab 2: Pemrograman Robot Dasar
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).
i
t_
PB0_(XCK/r0)PE1 _(T1 )PE2_{ArN0itNT?)
PE3_(AlN1t13C0)66i
"FF
PBs_(MOSr)
P86_(MrSO)
PB7_(SCK)
PD0_(RXD)
FBl -(rXD)PO2-(rNI0)
PO3_(NT1 )PD4_(OCl BlFDs_(OC1 A)PD6_0CP)
P07_(OC2)
RESET
XTALl
PA0_(ADC0)PAl _[ADC1 )PA2_(ADC2)PA3_(ADC3)
PA4_(ADC4)FAs_(ADC5)PA6_(ADC6)PA7-(ADC/)
PCLI-(SCL)
PC1 _(SDA)PC2_(TCK)
FC3_(TME)
PC4_(rDO)PC5_(TDr)
PC6_tTOSCl )
ouiiAREF
II
'lnqasrel LuerEord uplpun6rp ulnlq>{erdeped 'nll puerpl qelg ') pspL{pq slseqraq 6uef dAV uorsJ1apo)qplepe 11ryrernod Wqel 6uBf efuurel uerDord ue>16uepes 'Unyr.uoDspg r{BIepB leuelrp 6ur1ed 6ue1 'ra1or}uo>loJlru uer6o-rd ralrdruotuep rolrpe le6eqes ueleun6rp ledep 6uB,{ uer6o.rd lefueq ppy
UAV Inlun rollduoc c ueroord
0.9 uod eI rurrrlrp 0.) uod p epq// : 0.)NId=0.8IdOdg uod aI urrr{rp ) uod Ip e}Bp entuag// :)NId=gIdOd
:qoluo)
llq'xuld rs6un; ue>1eun6rp ledep urd"red rslelapuetu Inlun uelDuepas'xNId rs6un; ueleun6rp pod nles qples eped lndul rslelepueru InluD
JIDIe dn-11nd leuralur// :0=gldod
lndur re6eqas rsern6r;uollp g Uod // :g=gdqq
r{o}uo)
HoO=gtUOd UPP Hoo=gUqQ PIeu 'ueIJrt{PrP e,{u-dn-11nd
IeuJelur uep lnduJ re6eqas rse.rn6guollp g uo4 'er(u1esq4 'rolslsal dn pndleuralu rlrlrueu UAV relorluolor{ru O/l utd derlag '('"1)Vtugz rpseqessnJP UPP AZ'' JelDIas er{ureseq 6up{,,1,, e16o1 uelrenleEueu e! p>{l}elralorluo{oD{lru O/l urd eped uBFueDe} qelepe (aOe1yoa qfiq TnQno ) 'oA
lndur re6eqas rsern6r;uollp e Uod //:00x0=edqq1nd1no re6eqes rsern6rsuolr.p gUo4// :9EZ=SUCC
qoluo)
/l
Bab 2: Pemrograman Robot Dasar
lnstalasi CodeVision AVR C Gompiler
1. Installah dengan mengeksekusi file setup.exependamping buku sehingga muncul tampilan
yang terdapat di CDberikut:
Welcome to the CodeVisionAVR CCompiler Setup Wizard
This will install CodeVision4VF V].25.7 Beta 5 on your
aomFutet.
ll is recommended that you close all olher Epplicdhohi befoEcontinuing.
Dlick NeBt to continue. or llnncel to exit 5etuF.
li ilad>rSr Cdlrd I!
Gambar 2.2 Tampilan awal instalasi
2. Klik Next sehingga tampil gambar di bawah ini. Pilih direktori insta-lasi Anda, lalu klik Next hingga mencapai Finish.
Gambar 2.3 Persiapan instalasi
€I
'(c'tOI rpefueu srletuolo) 191 e,(ulesnu '1nqasre1 ayrg
eurpu rJag 'e)rnos qllld nlel 'fi\eN I ellg nueul >1r116ueur erer ue6uapqpllpng ')' uolsuelsleraq 6uer{ apol alrJ }enquretu qplppe uelnlelppuy srupq 6uetr 'rur qprv\pq rp .reque6 rpadas u.ro; lrdue] uely .Z
4afrod etueu lraquary ?'Z requeD
:rur qeaeq rp reque6 qradas OI eupuraq e{ulesru 'uelur6ur ppuy6uer{ rap1o; eped epuy }eeford pureu rJeg 'prezrly\ ueleun66uauuerernBuad uelreqv '1eepr4 map qrgd n1e1 'mag I e[C nuou qrlrd .I
:qplPpe e,(uqe16ue1 -qe16ue1'rueq 1ar{o.rd lenqtuau In}uD 'ralrdu:o3 ) UAV uorsr^epo) uerDordlrdu:e1 e66urq ]nqesel r-uet6o"rd ueluelef 'lesa1as rsplelsur sesord qplelas
, -E n E 4 [I :*.* !jI*tJ!:J :4d* r ,
t'i r*ttt:r
ueJooJd lBnquow eqocuaw
rBab 2: Pemrograman Robot Dasar
Gambar 2.5 Progek gang sud.ahiad.i
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
\"74
9L
4aftord Eerni{uoy l'Z requteD
$- qPm lurl' i
ffi,#::: !li: :,:;,iiXl ririi$d& ffitir I
l:_ ,"li_" rdovl r
:i,11:ii*, :]i
l:- purxeyl! .
ry:: r ; .F#iittoEilrdGFi; dzrsil@i
r :t a ; :::: il l:#}Ep{8e:l :
:up>lpun6rp 6uef lcop upp ralorluolorlru edquelrlsetuaul upDuep ppuv 1e,(ord rsern6rJuo{ouaru Bpuy uBlr}sed
pupln ureJooad a.T,,trllU/ /EurdooT ar\Ile// !{
{Tlap T xele1// J(000I)sur-z{e1apTleul ZAd Ogl// jf =Z'A,IEOdTleur 996 o"=r, j T=0 's,tEod
{T1ap 9'O ,{eteq/ / r (009) sur-. plape1e",{ueur Zg.d Ag.I/ / r O=Z'EJEOdeTe^ueur OAd qg"I/ / 10=0'A;UOd
} (T) AIIqI^sn-re1 EuETn-raq ue{e weabojfd / /
T?euoET Enuas Tpe[ 'I e)ir6oT ueI-renTe6ueu E 1.rod pnu]as// rgEZ=S,luOd
Lsd- gad n?re^ 'lndfno re6eqas rse.rn6r;uo{Ip A laod// jEgz=auocpro^ elep adrl.raq EurEan ulet6o-rd// ) (pToA)uTeu pro^
uElieun6rp sn.rer{ e^u^-rE-rqrT Tpet ^eTap ue)iEun66uaur// <q.^elap> apnTJur+
9 f E6ou aTTl: ^-re-rqTT
ue)ie1-ra1{uautr / / <q,. 9 1e6au:> apnTcur#
0T0Z lalual ^6oTour{JeJ,_a
e?drJ XeH / /E 1.rod rp 6unqnq-ra1 agl / / g lrod eped /ieTep uep fndlno ueeqoc.rad //
IL\V uorsr^apoJ ure-r6o-rd lenqual^I pqocuetr{ //: c'ror
'v
i
II
; .r ill -.::;'F dt J xlH Nob loll {+iEtuii; Eliho ql,I-:.:.ffi ,:lll:
. .- .., I , , , t*nqA'trr*u, -: j
,, *;*r*,r+i"L;+-:i"frti I
: :- : :ryryqn"uqs!ry11ryf.'ffi J I
,,fffi,{flffifi a q$4"sid@8il6,A+B ne ei,,
, 11qTnl'"*.'# : ii;Eqt+q::i::" . ..f"stl.Teptry oIi ,, , . ..: -.=.?:;:1 aeEg4aepoS.lli;il+i#itif .isr:iai,+:i:i,f is!.ff ,s,#ffi F;t,l^::'.-r. .;a: J;":1",......
JlFSq .l " iqtgvgspuqqr ,
, * =ffi *,*r.-"*i ,l
$S: *-"$!Se]. ssztr
Bab 2: Pemrograman Robot Dasar
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
eurEln urelbo-rd/ / ) (pro^)ureu pro^ue)ieunorp sn-rpq p^u^-rp-rqrl rpe! ,u(e1ap ue{eun66uaur/ / <q.^elap> apnTcur#
91e6aur aTrl ^-re-rqr1
ue1e1:e.{uau/ /<Ll. gTe6eur> apnTcuT#E 1.rod Tp Eunqnqraa Ag.I / / g lrod pped
^elap uep 1nd1no ueEqocjad //
3 c.qlrodlno
:rur qp^rPq Ip ureJ6oJd leng 'z')d aI Jer.uruer6ord dsl dAV leqel ueDuep up>l
-6unqnq upp renses 6uef nele € 'rel s)rloqo5 lr/ypelus ue{ders .I
e{uqe16uel-qe{6up-l
feleg ls6unJ uep lnd]n6 uBdeJauad
E
L
E
L
'l
ralorluo4or4lu a4 tuet6otd lslduaq 6'Z requeD
ruBJEoJd eped uedeJouod
rir{ ;i;
: : ; : ..!'il$fli,r$ F,t*'
;#r ai
i,i:r::iir 91r.fr t Pi:lt5_!.ll*I : :,j : :: :.:-::.: ;: i;:iiiir iF :: ::rl
,* 8 ry:*l$i,i
n=r'l7q lnnH I0=.LSU100S _l
0=N10300=N35V1l0=1.J0)il
0=lAvSllD= LZST OD8
0=tlAl'10080=Nl00E
t_t= L1t'tS0=0-LnS
0=Ell5)l0=IllSYl0=[ll5Il
ls)f
IsSgdf*i,lii*,-;:**ffii ar: :. : :..... :; ::,,.. ::,.::,, :
:I*ff ' :i;r$Hrcli::.
jit;i+{t"T:m
UE
Ir
Bab 2: Pemrograman Robot Dasar
whi-1e (1) {PORTB.0=0; //LED PBO menyalaPORTB.l=1; // LED pB1 mariPORTB.2=0; //LED PB2 menyafadelay-ms(500); //Delay 0.5 detikPORTB. 0=1; / /LED PBO matiPORTB.!=O; // LED PB1 menyalaPORTB.2=1; //LED PB2 maxidelay-ms(1000); //Delay 1 detik
j; //akhir looPingi //Akhir program utama
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?
I
\
18
6t
raploae Toqor lueroelp 4o1g ol.z requeD
')d lPrres uodeI JelorluoloDlrur rrep lprras leqel ue{EunqnH .)d eI rar.uurerEorddsl uny Ieqp{ ueDuep tnqesra} relorluolor{ru }p{ ue{EunqnH .z
Eunlnpued slool epes uauodruoy .relsel Pel .
qenq Z {e^ueqes gxz )CI .loqor ,{pog .
Ppor uep )Q rolotu la{pd .Zl,qZdD dreqg 1e:e[ rosuas .
,{e11or1 epog .rolow )q )dS .
'er(usrue[es neleg1e6etu1y srseqraq s)rloqou xr yupurs relorluoloJ>llur gy .
:uelqnlnqrp 6uer( 1e16ue:ed uelderg .t
:lnlrJeq reDeqas qelepp rur Jeprolp loqoJuelrlerad qe16ue1-qe>16ue1 '6002 opurlnduoy Brpew xalE uplrqrelrsrned rsrp3 sppJa) loqog rJrpues ]enquaw nlref ,efuunlaqas n{nqp)pqureru epuv ueluerefueu srlnued'er(uue1r1nse1 1e16uq Euer(eqre1Ippn uep Eun6urq uele ppuv urlEunu_r euerel efes eeeqrp/ue>lrrqrdrper.unD ue6uep 'nlnr{Bp qrqalJel lul }oqor eqo)uetu epuy ue>lqrfernsrlnuad 're1or1uo1or4tu uplsrspqraq loqor lenqureu qeurad unleq6ue,{ epuy eletu 'qr66uet 6ue,{ proueunq }oqoJ }enqtuetu ledep IntuD
gggg e8elqlyUAV
relorluo{oDIrI
zlcTdD{?Jef Josues
ropro^v loqou lenquohl
Bab 2: Pemrograman Robot Dasar
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,'
4.
5.
20
LZ
:rur qp/neq rp reqr.up6 ruedes lpr{lllp }BdpplnqesJel loqor rJpp IrsBH 'ruBr6ord rp uplnluet elpl qplal 6uB{ upDuepIenses )q roloru upl{pre66uelu re6p )q ro}oru re^lrp eI n}ueue}Ie^urs uplrJeqr.ueru JeloJluoloJ{lw 'rnpunu nele '>loleq 'nletu snJpr.{rlupu LIeIede uelnlualrp uep uBr6ord ue6uep uelDurpueqrp er{ureyuuerpnrual Inlun Iell6lp elep rpefuaLu qpqnrp JeloJluo>lor{ru qalo 'reeurl1epr1 6uef perp{ur rosues 6o1eue ue6ue6e} upJpnley 'rn>1nra1 6uef>1eref ue6uap rensas 6ue{ 6o1eue uBDuBEal uBIJBnleEuau leref Josuas
{.1
Teurur-ral-rad H0'vd Tp
{
j (09) sur)^eTapuEue{ {oTaE// jT=ELI)UOd
I ( 00T ) su- ETapfnPunI^I // jo=SIUOd
)asTe
{.00T ) sur- eTap
r.letq. / / igT=E&nOdi
(00T>oJlroar ) lTrp ue{IrdueJ, // ! (C,IUOd'T5ur-rts)J1ur.rd.zosuas elep ecea // j(0)Jpp-pee.r=oJuod
)(I) aT-Ir{l1^
I dTx0=aEoIdsj L\rx0=vESccv
j lfx0 T sd&t-dEE^-Jqv=x0fiovelep 1Tq g ue1eun66ua6 77
butuung aa-rJ :a3jrno5 :e661:6 olnv JqV //uTd CCnv :eoua.ro]alJ eOelIoA Jau / /zH>I 092'19 :.dcuanbalf )i3oTJ )au //
uorlezTTe-l?\ul )au / /i 6Txo=-IUUAni 0 0x0=HUEAnI 98x0=JESJnI 8TxO=gUSCOj 00x0=\tdsJo
0096 :a1eE pneE ,IEVSO //snouo-rqcuIsv ; apo4 ,IEVSO / /
uo :-ra11rlusuelJ J,uvsn //uo :ta^raJaE &uvso //
'dols T 'e1eo I :sla?aure-red uoTlpcrunuuroJ //uoTlezrTET?Tu-I JEVSO //
.^1r-rEd oN
Bab 2: Pemrograman Robot Dasar
Gambar 2.12 Robot Aooider gang sudah jadi
1. Gambarkan arsitektur l/O pada mikrokontroler AVR ATmega8535.
2. Berikan contoh kode C untuk membuat port mikrokontroler AVRATmega 8535 berlaku sebagai I/O, dengan kondisi berikut:
o Port B sebagai input yang terhubung ke 8 buah sakelar, inter-nal pull up mati, eksternal pull-up aktif.
o Port D sebagai output yang terhubung ke relay yang diaktifkanmelalui sebuah transistor.
3. Jelaskan cara kerja lampu LED yang dikontrol oleh mikrokontrolerdi bawah ini:
Latihan
22
EZ
'nlueuel rsle uplnlplel.U Inlun 'n)uedo up>lpun66uetuplr{ p}etu updrpal rslelepueu ndrueu 6uBr{ ue:6ord qelleng
'6 UBP g qPErp p)pqrp ledep 1n[ue1 qlqel rspurroJul 'BlrI elntu qere qnlr6uauledep snJpq lnqesJal eletu pnpey '(uorsrn oa"rels) pJetup>l ednreqelptu Z ueleun66uau 6uBr( proueunq loqor ue.r6ord qpllpng
gledauly ralor?uo4orqltil ruu-nruurylu ua?sls uep46ueg €I'Z requeD
'9
,v
zHli'l itn
ldee
]hE I,3
ldEt oN$
J]UVJJl\tr]]A
(zrsorf/]d( r3sor)-sf,d(roifscd(oorI rf,d(st,lrI Eld(yf,rfzid(vosI [f,d('r)sI o3d
(l.f,ov] lHd(stcvfBYd
(!f,ovfrvd(Ef,ov)-EVd(rf,ovfzvd( roovf rvd(of,ovfovd
t'tvlxz'lvLx
13S]H
(ef,o)-lod(dlr)-sod
(vrlo)-sod(B r.sofrod
{ r.lNrJ Eod(orNr)_zod(oxrI rod(oxH)-ood
(Hf,sf1sd(osrFl] sEd(Eov'rfsEd
ss)-tsd(orryItrtvfeea(EJ,NtioNtv] zEd
(r-r)- r.Ed(oxvJxfoEd
9Z
'qPPnu lp6uBseEnf er(uuBurer6onued'nll ureles'er{uure1 JoloJ}uolorlrtu uelEupupqrppserq :eny uendrupural rlrlrtueru r-uolV )rspg relorluoloD{lw '(JOCI)uopaa{ ;o aer6ep € llllJureur eJ 'oruas 9 ueleunEDuetu euarey '7"rod
-sueq 6u4e1n47tv )Uoqoy ppaqg rrep uele>l6urs lygg 'ruolV )rspgsrseqJaq relorluoloJlru qalo up>{rlppuallp upp onJes 9 ueleun66ueuuellere6rp 6uer{ rlelreq proupunq }oqor ueledmau IVdg }oqod
seray lel6uerad
lvug loqou lBusouow
'epuv r6eq 1e11nr-u rlelreqploueunq ]oqoJ e{rupletu upp upurprEorued uenqela6uad r4yrue14']nqesrel loqor fpoq eped ue6uequrasel uplrrequau ledep e66urqesJeleuorale))e rosues ue6uep rdelDuelrp Iul loqod 'IVUS qeJpperreleledrp ynlun rleururp 1er{ueq 6ur1ed 6uer{ rlelraq proueunq }oqo5
uenlnqBpuod
lvaa ploueunH ,pqoa
Bab 3: Robot Humanoid BRAT
Gambar 3.1 Robot Berkaki BRAT
Pada gambar di atas, robot dapat berjalan dengan teliti menggunakan
6 buah servo Hitec. Ia menggunakan sensor jarak PING yang mampumendeteksi jarak penghalang di depannya hingga 3 meter.
Mencoba Mikrokontroler Basic Atom Pro
Modul Basic Atom Pro pada kit Bot Board II ini jauh lebih handal
dibandingkan Basic Stamp karena memiliki kelebihn antara lain ada
fitur ADC dan kecepatan eksekusi yang sangat tinggi. cobalah pro-
gram sederhana berikut untuk mencoba menggunakan kit mikrokon-troler ini.
Langkah-langkahnya:
1. Pasanglah modul ini ke PC dan berikan sumber catu daya.
26
LZ
l-rels 0106leadef i
ltT 'x Jscl'0096T'1no-s lno.ros-ralnduo{ e}t rTEqura{ x uTfrx j
T+x=xlunoJ er{1 01 auo ppp I
000T asnedpuocos auo -IoJ asnedl
[009t\0Er'0008\09T'0092\0ET]'6 punos'deaq rxunq uEXTrser{FuaI^Il
ord r.uolv )rspg Jolrduo) pped ppe 6up{-{ppqes e6nf r.refeled 'lul qefi\pq rp u:e.r6ord
'3CI ord ruolY
II preog pg uy z'€ requeD
or.^ l::t:3 srq.11n1o:d1g
.lnqesJel
resep rs6un; OZ e(urselrduo>1 uPp {r}ay '€
)rseg ruB.r6ord Ilelsul 'Z
-I-(
e
IE
ipA0'$'EE 0Aras
ip^0'6'EE flEol
Bab 3: Robot Humanoid BRAT
#i;F,*ffs#
fi*l#Ei { r*it* I n** t ,&ssenrtrsr } ,r-*u.*
f
r-fennSw.l---*-*--.--'-'-r :-t*4sdt& kd Fk -
i{i:
li
utn
'Flryd }*am,'Fre
*dryffi*ed
Gambar berikut adalah tampilan editor dari Basic Atom Pro IDE
Gambar 3.3 Tampilan ATONI Pro IDE
Anda juga perlu mengatur Preferences dari aplikasi ini yangmengacu pada comPort yang digunakan dan mendeteksi AtomPro.
28
Gambar 3.4 Setting Preferences
6Z
Luerdord ls!6uaw g'€ requreD
inqafl
:lnlrreq rpedas6ur11ag urtuo) pe)uelpv e6nf rnle '1erur1do 6uer( pseq {n}uD
ul6r
'v
Bab 3: Robot Humanoid BRAT
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
duescdnl Uepns ZZ? )alH oaras qenq g nseH
rpef qepns 14e4 4ede1a7 ue6unqtues ue16eg 6'€ reqlueD
:lnlrreq rgedaser{u1n1ueq e66urqes srlaq ue6uep IIeI 1ede1e1 ue6unques r.lBI}Bng
''. a:.:arr:l1r; i.:ii;;: iiAEr rir lillllrl
i, *i :::i;Yii, :i j. i;1w-
_-.. ; ir#;i::i( ;'# *p:.
0I'€ requeD
Bab 3: Robot Humanoid BRAT
k:,-ri+3
NF
Accelerorreter Y Axi* iF 14Arelerom+ter X Axis P1F)
GP2D1 2 Sentor iPl !)Ldt Ankle Srvo rP4)Left Krr++ Sgvo ,Ftr
L+ft Hip SrrcBiql-rt Ankie lsvc (FIFight Kr:ee:3avr: {FEisht Hip S+trc (P1-n]
Gambar 3.11 Susunan sambungan ke seruo dan accelerometer
Gambar 3.12 Seroo controller terpxang di bodg
32
iE
1lri
1l1l
! loaA
jl!l!ljl
rlrlrl
ip.zPog 1oE e puEulol\f ue 6ursn ;X119 uorlourxu^.I
fno^ ,roJ slas]Jo o^.ras aqlpuTf o1 ue:6ofd sTr{1 esn
snE ^q
fasfJoo^-Tas aq1 aseajrrap 01 v ssa-rd
asn 01 &oH
0 uof, 1.rPls-aT){uelJaT0 uoc 1.ze1s-aau{?JaT0 uoc 1-rp?s-dTqf+aT
uo) 1.re1s-aT{ue?r{5r.r0 uor l.rels-eeu)i1q6-!ir0 uoc 1re1s-dTqlq6r"r
?d uo) el)iuell:aTgd uoJ aeu{11:eT
9d uoc dTqlfeTLd uo3 aT)tuelqorJ
Bd uoc eeu{1q6r-zOTd uor dTqti{oTf,
seTqer-rEl1. urals^S i: EEq. IsolBrg
lj e^"rg seue1' ^q
uallr-rl\,l I i.rapuTJ leslfo on:a5 | l
I +---------- -------------+.1
oaras ls;ern6lfuo4 d1su1t4 ,I'€ requeD
dl* ****Bst
1
i,I-lX .: I--#X +* *fffi 'uers
asuH ""._."&
8lxuv.""_..a ElEffIlaf '$a-t -puas
seq'*s*18.,qI
:ln{rJaq le6eqes efudrsurr4 'repulJ }esJJo onres re6eqesrs6un;raq 6uert nlnqep qrqalrel seq'Jsolprq uer6ord u1ue1efuaursnrpq rlupu Bpuy 'leruqdo e[:e1aq reDB onras rsern6rsuol6uau In]uD
Toqot frpoq p II preoq 7oq uepduel €I'€ requrcD
Bah 3: Robot Humanoid BRAT
rhip var swordrknee var swordrankle var sword ;Lhip var swordlknee var swordlankle var sword ;
Press C to increase E.he servooffsel by 5us
Press B Lo change which servo is l;being manipulat.ed, and t.o senddatsa back to the termi,nal
t.
ilrhip = ((righthip_start / 24) + 1500\rknee= ((rightknee_start / 24) + 1500)rankle = ((right.ankle_start / 24) + 1500\thip = ((lefthj-p-start / 24\ + L500)fknee= ((leftknee_sLarL / 24) + 1500)lankfe = ((Ieftankle_start / 24) + L500)currentservo var bytecurrentservo = I
buttonA var bit.buttonB var bitbuttonc var bit
prevA var bit
l::"""sound 9, 150\3800, 50\4200, 40\41001
main
gosub pulsemove Irank]e, rknee, rhip, Iankle, 1knee, thipl
prevA = buttorrAprevB = bultonBprevC = buttonc
buEtonA = iriL2bultonB = inl-3buttonc = in14
if (but.tonA = 0) AND (prevA = 1) tshensound 9, [50\3800]
gosub decreaseOffset
goto mainendi f
if (buttonB = 0) AND (prevB = 1) thensound 9, t50\ (3600 + (currentservo * 100) ) l
currentservo = currentservo + 1
if(currenLServo = 7) thensound 9, [75\3200, 50\3300]goto output_daEa
endifgoLo main
endi f
if (buttonc = 0) AND (prevC = 1) then
34
9€.
.t:' lvz(009T - aauI.r)) reps ,,, uoc 1-rels-aau{1q6Tf ,, 1 ,00?gtT,lno-s lno-ras+ (009T - dTq:) ) caps ',, uoc 1le1s-drq1r{6Tjr,, I ,oo78tr,1no-s lno.ras
elep-lndfno
utnlaf,
0Z asned(Z * dTqf,) ,dtqlq6r: ?nosTnd
(Z + aau{-:) ,aau1lq6r.r lnosTnd(Z + eTltue:) ,aT)iuelqbT-r lnosTnd
(Z * d'IqT) ,dTr{1f aT lnosTnd(z + aau){T) /aau{?JaT lnoslnd
(Z + aT>{upT) ,aT{uelfaT lnosTndI dTqT' aau]iT / aTIueT' drr{r' aou{-r, aT)iuel I a^ouras Tnd
ulnla:f Tpue
[00st\09T] '6 punosesla
E-aT)iuPT=eTliupT(007T < aTIupT) ONV (g = o^.raslua"r.rnc)JTasTa
E -dTqr=drr{.rueq? (00?T < dTr{f ) oNV (T = o^-rasluar.rnc) f
-F
?asJJoesea-rcap
u:n1e-rf Tpua
[009t\0ST] /6 punosasle
S+41{ueT=eT>{ueT(009T > aI{ueT) ONV (9 = o^-aaslualrnc)JresTa
E+aau{l=eau{r(009T > aau{jr) oNV (z = o^rasluel-rnc)l:resTe
E+dtq:=drr{.ruaql (009T r d-Ir{r) ONV (T = oA,ragluo.rrnc)JT
fasJJoaseairour
ureuf, 0106
f TpuauTeu 0106
las]JoasEa-rcu-! qnso5 ! |
[00r?\09]'6 punos
hb 3: Robot Humanoid BRAT
serout s_out, i38400,24),131
serout s_out, i38400,serouE s_out, i38400,serout s_out, i38400,
24\,13)
wai t loop
[ "rightankle_start con
[ " lefthip_start con " ,["leftknee_sLart con "[ " leftankle-sEarE con
", sdec ((rankle - 1500) *
sdec ((lhip - 1500) * 24\,131, sdec ((1knee - 1500) * 241,131", sdec ((1ank1e - 15001 *
gosub pulsemove Irank1e, rknee, rhip, 1ank1e, 1knee, Ihlp]
buttonB = in13
if (buttonB = 0) AND (prevB = 1) thencurrentservo = 1sound 9, [200\3800]qoto main
endi f
prevB = buttonB
qoto waitloop
Sebagai demo robot penghindarinfrared Sharp Q?2D12, jalankan
Brata2.bas:;Program Sharp cP2D12 pada BRATrighthip con pl-Origiht.knee con p8rightankle con p7lefthip con p6leftknee con p5leftankle con p4
true con Ifafse con 0
Gambar 3.15 Pemasangan sensorjarak Sharp GP2D12
halangan menggunakan sensor jarakprogram Brata2.bas berikut:
36
LE
'saTJelsqo:3solf, rol qJlrd -rar{6Tq 'sdals uaa/vr1eq ur daaql [(0T * r-I) \0OT] ,6 punos
J TPUEen.rl = lcalep
uaql (092 < fT) fT
f -Ipua
[0009\0E'00??\EZ'000E\0E]'6 punosno1 6ut11eb s1 d:a11eqluaq1 (OLZ > lpq) fT
'sauT1 1e -rnor^Er{aq re66TJ1 01 sTr{1 asn s,1ati
lEq / 9T u-Jpe
rrpea-r qnsoo(T+ "rnor^Er{aq) = -rnor^pr{aq
fTpue0 = rnoT^er{eq
uaril (9T = lnor^eqaq) JT
uTeu
0 = 1ca1ap00EZ asneda^our qnsob
g = pueuuoc0 = -rnor^er{aq
[00rr\0s] '6 punos0E asnEd
1096e\0El /6 punos0E asned
Ioorr\os]'6 punos
(0T )p,ror :en durala?.dq Je.^' relTTf
al^q -re^ fnor^€qaql-Iq rE^ lcalap
p-ro1vl. -re^ 1Eqpfo/vi -re^ .rTaf^q :e.1\ xx
ai^q .rp^ pueunuoc
000T asnedz x!ol!T 1v\oT l
t0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0 I luarra^our qnso6paads 'dTq1l:aT ' aaulf Jarl 'aT{ue1Ja-I 'dTr{1r{6rU'aau)tlr{6TU 'al)iup1r{6TE
a-re sluaunbfe eurlno-rqns ?ueue^ou ,aloNisuoTS-tsod lruI j
OAEgSHS'IAVNS1-Iu'J ldnffaluf 1
0 uo3 lfels-aTltuElJal0 uoc l"re1s-aau{1JaT0 uo) lrPts-dTr.{llaT
0 uoo l-rP1s-aT>{uelq6r-r0 uoc 1.reas-aau>11q6t:0 uoJ 1.rets-dtq3qbt:
9'99T uoJf aa-r6ap.zadsdels'aa:6ap -red sdais ele-rqrTeJi
>lr
Bab 3: Robot Humanoid BRAT
if detect thenlow 14
el- seLow L2command=1gosub move
; turn t.he red LED on
input 12 ; turn the red LED offendi f
if (behavi-our = 5) Lhen
;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
elseif(command = 2)
sound 9, t50\44001pause 50sound 9, [50\3960]pause 50sound 9, I50\39601
elseif(command = 11)
gosub movementgosub movementgosub movementgosub movement
; Headbutt.gosub movement [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 500.0]gosub movemenL | 0.0,-50.0,-90.0, 0.0,-50.0,-90.0, 500.01gosub movement [ 0.0, 32.0,-58.0, 0.0, 32.0,-58.0, 400.0]pause 200;gosub movemenLgosub movement
7.0,-20.0,-20.0, -'7.0, 20.0, 20.0, s00.01-7 .0, -20 .0, -20 .0, 7 .0, 20.0, 20.0, 500.01-7.0, 20.0, 20.0, 7.0,-20.0,-20.0, 500.01
7 .0 , 20 .0, 20 .0, -7 .0, -20 .0, -20.0, s00.01
[ 0.0,-11.0, '7.0, 0.0,-11.0, 7.0, 500.0]0.0, 0.0, 0.0, 0.0, 0.0, 0.0,500.01
0.0,-35.0,-40.0, 0.0, 35.0, 37.0,500.010.0, 3s.0, 3'7.0, 0.0,-35.0,-40.0,s00.01
-L4.0, 35.0, 37.0, 20.0,-35.0,-40.0,500.01-14.0, 35.0, 37.0, 20.0, 35.0, 37.0,s00.01
38
6€
,6 .e=p""o"31pI 6 .6=peadsl:j 0. 0=peadsq-rI 0
. 0=paadseT
j 0 .0=paadslTr 0. 0=paadsT{I
paadse.z , Ipaads , a^ourlse6uoT , soda Txuelqbt:-1se 1
, sode l{ue1qO., f p33}3r.oqnsoo
paads{"r , Ipaads ,a^our?sa6uoT , sodaau11q61.r-lseT , sodeeu,{1r{6T,r] peadsla6qnsoE
paadsq.r' I paads, e^ourl se6uo I, soddTr{1q6T-r-1 seT, soddrqlqE T,r ] paads? a6 qnso6paadseT , Ipaads ,a^ourl sa6uoT , sodaT>{uElJaT-1seT , sodaT{uel]af I paadsla6
qnso6paads>i1'Ipaeds,e^ourfsa6uof,sodaau{1]:aT-lseT,sodaarqlJaTlpaadsla6 qnso6
paadsqT'Ipaads,a^ourlsa6uoT,soddlqlg:a1-iseT,soddTr{1faT]peads?a6 qnso61 16. gTTpeads) / (aa-roap.radsdals*anourlsa6uof ) ) = paads
a^ourl sa6uo T, I sode TIuElq6t:-1 se 1 _ soda IXuelr{6T:| ' sodaau:i1q6T:-f spT - sodeaur1lr{6rr
| ' soddTqlr{6T-r-1sET - soddTr{1r{6Tr| ' sodaTIuel l:a I-1 sEf - soda 11ue1 g:a1
| ' sodaarr:i1g:aT-lseT - sodaau{lJaTl'sodd1q13eT*1seT-soddTq?laIllse6uoTta6 qnso6
uaql(0.0<>paads)JTIpaads
'soddTqll:aI 'sodaau{?JaT ,sodaT)tuplJaT , soddrq?r{6r-r, sodaau{?r{6T,r, sodef{uejqOr:l?uaura^ou
lpeads 'sodaT)iue?q6r.r , sodeau{1q6rr ,soddfr{1r{6Tf , sodaT{uE?Ja1 , sodaatnllg:a1 , soddrql;:a1 I?uauo^our I
?eoTJ :e^ a^ourlsa6uoT?eoTl jre^ paads
lEoTl: ,re^ peadse:fpoTl: jre^ paadsl:leoT] -re^ p""d:Tl
EoII: -re^ soddrr{?r{Or:leoT] le^ sodaT{uelfaTleoTJ -rp^ sodaeu{lJaIfeof] .reA soddTr{?l:eT
'ureu /vloTaq pue srql a^oqesaurlno-rqns -rasn ppv .aurf sTr{1 1,\oTeq 6uTr{1^ue lrpe o? paeu jra^au plnoqsj
:.iiIO.L\1:e1s-aauI?JeT + (ee-r6apradsdals+sodaam{1}aT_ )
[,NIOJ,\?]e1s-d1q1q6t: + (aa.r6ap-radsdals*soddTqlq6Tr)
trNIOJ\1jre1s-dIr{+}eT + (ae-r6ap-radsdals*soddTr{lleI_ )
to'oos'o'Er'o'E7'o'o'o'9r,o.gr,o.o l
(6
| ,paads>tT
JINIOJ,\ aau>[1]:eTl
--- l,paadsqrJ,NIOJ,\ dTr{1q5T,r
l --^ l,poadsr{I
,INIOJ\dTqllaI I o^-lasq
u"Tn1a jIf Tpua
fuouralour qnso6uorlTsod ?sau
= pueunuoc) ITasTa
toto
'00E '0' Lt '0 'Ee '0' ,T- '00E'0'Lt 'o'9t 'o'vT-'0'0r-'0'sE-' 0' 0z ) luaura^our qnso6' 0' Le 'O 'ge '0'02 I ?uaua^our qnso6
Bab 3: Robot Humanoid BRAT
rightsknee\T0INT (rightkneepos*stepsperdegree) +
rightknee-sEart\TOINT rkspeed, I
leftankle\TOINT (-leftanklepos*stepsperdegree) +
feftankfe-start\'IOINT laspeed. I
rightankle\TOINT (rightankfepos*stepsperdegree) +
ri ghtankle-s tart \TOINT raspeedl;hservowait tlefthip,righthip,leftknee,rightknee,feftankle,rightanklel
idle var bytefinished var bytejunk var wordsensorloop
finished = truegethservo lefthiP, junk, idleif (NOT idl,e)then
finished=fa1seendifgethservo righEhip, junk, idleif (NOT idle) then
finished=falseendi fgethservo leftknee, junk, idleif (NOT idle) then
finished=fa1seendi f
:::n".t.ro rishtknee, junk, idle
; adin 0, ir;if (ir > 210) then; detect = true; endi f
if (NOT finished) then sensorlooP
last-lefthippos = lefthj,Pposfast-leftkneepos = leftkneePoslast-feftanklepos = leftankleposlast-righthippos = righthipposlast-rj-ghtkneepos = rightkneeposlast-rightanklepos = rightankleposreturn
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)
main
if (behaviour = 16) thenbehavi.our = 0
endi f
adin 16. batgosub readAMxgosub readAMygosub readir
; Accelerometer readings;If x is high, then the robot it on its left side;ff x is 1ow, then the robot it on its right side
42
ev
f rpuae3uanbaslsef qnso6
uaql (g = .rnor^eqoq) fT
seurrl 1e :nor^eqaq -re65r-21o? sTr{1 asn s,1eri (T+ -rnor^eqaq)f f o qsT pe-r aql u]n1 I
f Tpue= fnor^er{aq
zT fndura^ou qnso6
T=pueuilrocZI .lv\OT
asla
rasoTs jro] r{c1rd laq6Tr{ ,sda?s uee/llleq ur daaqj'salcPlsqo
[(0I * rT)\00T],6 punoslTpue
onrl = ?co?apuaql (092 < fT) fT
f TpuaIoooE\oE'oorr\92'ooo9\09] /6 punos
/1 oT 6ur??a6 sr ^-ral1Eqiuaql
(OLZ > 1eq) f T
f Tpua
f Tpuaa^ou qnso6
g = puEuluoc(06t > 1{NV) ]TasTa
aaour qnsobL = pueuuroC
ueql (009 < 1{IiIV) fIrl6gpea: qnso6
002 asned
f Tpua
idn ?aE i^{s eql 1e 6uT.re1s a-r,no^ uaql 1
idn ?45 ;aceg: :noduo leIl: a"r , no^ j
uo GE.I paf aql u-rn1 .'
]fo oET ruolfa^ aq1 urnlt
sdals o/r!1 lJeT
dals auo dn {ceqjuo Gg.I /'toTTa^ aql u-rn1 ,l
i-ra^oTTo-rr (0Lt
i ]a^oTlo-r I ueql
uo (0t9 < ^wv)
Eo (ott > xr{v)
71 qndutesTel: = 1ca1ap
lXaUa.^'oul qnso6
z o1 l=xx -roJuJnlj TT=pueuuloJ
a^ou qnso6z=pueuuoJ
,T roTuar{1 13a1ep fr
a^our qnso6eT = pueuuoc> ).I^IY) Jrasla
a^our qns06tT = pueuuroJ
(089 < xwv) lT44gpea: qnso6
969 esnedlro (099 < xwv) l:r
{ceq slr uo 1T loqo.r aq1 uaql ,^lof sT ^
l:Iiluo-r] s1T uo 1r loqojr aq1 uaql ,r{6Tq sr
^ l:f j
uaq? (08€ > xInIV)
eu
Bab 3: Robot Humanoid BRAT
goto main
move:if(command = 1) then
Walk Forwardgosub movement [ 7.0,-20.0,-20.0, -'7.0, 20.0, 20.0, 500.0]gosub movement [ -7 -0, -20.0,-20.0, 7 .0, 20.0, 20.0, 500.0]gosub movement [ -7 .0, 20.0, 20.0, 7 .0,-20.0,-20.0, 500.0]gosub movement ['1.0, 20.0, 20.0, -1.0,-20.0,-20.0, 500.0]
elseif(command = 2)Walk Backwards
gosub movement L -7.0,-20.0,-20.0, 7.0, 20.0, 20.0, 500.01gosub movement [ '7.0,-20.0,-20.0, -7.0, 20.0, 20.0, 500.0]gosub movement [ 'l .0, 20 .0, 20 .0, -'7 .0, -20.0, -20.0, 500 - 0]gosub movement [ -7 .0 , 20.0, 20 .0, 'l .0, -20.0, -20.0, 500.0]
elseif(command = 3)
gosub movements [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 500.0]sound 9, t50\44001pause 50sound 9, t50\44001pause 50sound 9, [50\4400]
elseif(command = 6)Headbutt
gosub movemenEgosub movementgosub movementpause 200;gosub movementgosub movementsound 9, t50\44001pause 50sound 9, t50\39601pause 50sound 9, t50\39601
elseif(command = 11)'Iurn LeIt
gosub movementgosub movementgosub movementgosub movementgosub movementgosub movement
0.0, 0.0, 0.0, 0.0, 0.0, 0.0,500.010.0,-s0.0,-90.0, 0.0,-50.0,-90.0, s00.0l0 . 0 , 32 . 0 , - 5 8 . 0 , 0 . 0 , 3 2 . 0 , - 5 I . 0 , 4 0 0 . 0 l
t 0.0,-LL.o, 7.0, 0.0,-11.0, 7.0,500.010.0, 0.0, 0.0, 0.0, 0.0, 0.0,500.01
0.0,-35.0,-40.0, 0.0, 3s.0, 31.0,500.010.0, 35.0, 37.0, 0.0,-35.0,-40.0,s00.01
-L4.O, 35.0, 37.0, 20.0,-35.0,-40.0,500.01-14.0, 3s.0, 37.0, 20.0, 35.0, 3'7.0,s00.0120.0, 35.0, 3'7.0,-1-4.0, 35.0, 37.0.500.0120.0,-35.0,-40.0,-1-4.0, 3s.0, 37.0,500.01
elseif(command = 15)Surprise I
gosub movement [ 0.0,-45.0,-45.0, 0.0,-45.0,-45.0, 350.0]gosub movement [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 500.0]
elseif(command = 9)Rest Position
gosub movement [ 0.0, 45.0, 45.0, 0.0, 45.0, 45.0, 500.0]endi f
return
;Should never need to edit anything below this line. Add user subroutinesabove this and below main.lefthippos var float
44
9V
: eslel:=paqsruTli: uaql (aTpT &oN) lT
aTpT '{un! 'd-rqf }aI o^-rasqf a6en-Il = paqsTurl
dool-rosuasp.ro.({i .ze^ {un[
a1^q .rE^ paqsruT]oS.dq -rE^ aTpT
leT{ue?r{6T:'aT)iue1JeT'aau{1q6Tr'aou}{lJaT'dTq?r{6T.r'dTrilleTl 1Te/v\o^.rasqlIpaedse] JNIOJ,\1Je1s-aT)iue1r{6T,r
+ ( aa.r6ap.radsdal s + soda T)tuE1r{6Tf ) J,NIoJ, \ a TluP?r{6 T:l'peadsel JNfoJ\1.re?s-eT{uetlaT
+ (aar6apredsdals+sodaT{uell:aT-) J,NIOJ,\aT{uelfaTl'paedsl: J,Nrotr\lrP1s-eau{?q6T.r
+ (aarEap.redsdals+sodaauilqbt:1 J,NIOJ,\aau{1q6T.r| 'peads>tT
J,NIO&\l-rets-aau{llaT + (aaf6ap-radsdafs+sodaau)iffaT-) II/NIoJ,\aeu{?]:aT| 'Paadsq:
&NIOJ,\?rp1s-d1q1q6r: + (aa.r6apf,adsdals+soddTqlqoTr) J,NIOJ,\dTqlr{6T-z| 'paads{t
&NIOJ,\1.re1s-d-tq?laT + (aar5ap.radsdals+soddTqllaT-),tNIoJ,\dTr.I]leTl o^rasqf Tpuo
10. o=paadsp.rl0 .0=paadsl_r10. o=paadsq.r,0. 0=paadspTI 0.0=paads{IJ 0'O=paadsqT._=
paadse.r ' Ipaads 'a^ourlsabuoT ' sodaT)tuelq5r:-1 seT 'sodaT>{up1q6T.r ] paedsle6qnso6
paads{.r' Ipeads'a^ourlsabuoT 'sodaeu>tAr{6r.r-]sET 'sodaeu}i?LI6T-rl paadslabqnso6
paadsqr ' Ipaads 'a^ourisa6uoT ' soddTqlq5Tr-1seT ' soddTq?q6r] I paads1a6 qnso6paadsel ' I paads 'a^our?sa6uoT 'sodaT{ue1 JaT-1 seT 'sodaTlue?J aT ] paadslao
qnsobpaads{1'Ipaeds'e^ourlsa6uoT'sodaau{tJaT-1seT'sodaau){lfeI]paads1a6 qnso6
paedsqT'Ipeads'a^oulsabuoT'soddTr{lfaT-?seT'soddTqlfaT]paads?a6 qnso6( (O' OZlpeads) / (aar6apradsdals+a^ourlsa6uoT) ) = paads
a^ourf sa6uo T' I soda T{ue?i{5 Tr-? seT - soda T1uelr{bT "r
| ' sodeaullqET]-fseT - sodeeu>J1q6r:| ' soddtqrUDTr-1 sET - soddrT{1q6'ljr
| ' sodalluelleT-?seT - sodaT{ue?JoII ' sodaau>{11:aI-?seT - sodeau:1?J aT
l'soddlqgyaT-1seT-soddTqllaTl Ssa6uoT?e6 qnso6ueql (0'O<>paeds) f
-r
Ipaeds'soddTql]eT 'sodaeu)t1f at 'sodal{uelJeT 'soddrr{1q6r.r 'sodaeu{1q6'f l 'sodaT1ue?q5T .11
?uaruaAorulpaads
' sodaT{uefq6r.r ' sodaau{lt{6r-z ' soddTqlq6rr ' sodaT{ue1 l:eT ' sodaau>119:a1 ' soddtqlfaT llUaUrA^Olu i
leoT] -re^ a^ourlsa6uoTfeoT] .re^ paads
lEoT] .re^ peadse.rleoT] .r"^ paadst.I?eoTl: Je/\ paedsq.rleoT] .:re^ p""d::J
?eoTl :e.^' soddaqlqoT]leoT; .rp^ sodaT)iuplJaTlPoTl .ze^ sodaeu{1JeT
Bab 3: Robot Humanoid BRAT
endi fgethservo righE.hip, junk, idleif (NOT idle) then
finished=falseendi fgethservo leftknee, junk, idleif (NOT idle) tshen
finished=falseendifgethservo right.knee, junk, idleif (NOT idle) then
finished=fa1seendi fgethservo leftankle, junk, idleif (NOT idle) then
finished=fa1seendifgeLhservo leftankle, junk, idleif (NOT idle) then
finished=faIseendif;add sensor handling code here
;adin 0, ir;if (j-r > 210) then; deEect = true; endi f
if (NOT finished) then sensorlooP
last-lefthippos = lefthipposlast-leftkneepos = leftkneeposlast-leftanklepos = leftankleposIast-righthippos = righthipposlast-rightkneepos = rightkneeposlast-rightanklepos = rightankleposreturn
one var floatstvro var floatthree var floatfour var floaEfive var floatsix var floatgetlongest Ione, two, tshree, four, five, six]
if(one<0.0)thenone=-1.0*one
endi fif(two<0.0)Ehen
tswo=-l-.0*twoendif
if (one<three)t.henone=three
endi fif (one<four) then
one= fourendifif (one<five) then
one=fiveendi fif (one<six) then
one=six
46
LV
iasr.rd.rns juaql ((002- >
lSa-Z nO^
uaql ( (002- >
1005e\0El '5 punos0g esnPd
t008t\E?l '6 punosEt asned
too??\orl '6 punos
e^ou qnso6ET = pueuuoc
(fT - .rrlseT)) GNv (009- < (irT - -r-F?seI) )) f T
0T asned-rT ,6T urpe
009 01 T = xx -roJ
Jfo clsT uaa"r6 eq3 u-rn1 i €T ?nduTt00rE\0Ezl '6 punos
0E asned1096t\091 '6 plmos
0g asnEd[096€\0ET] '6 punos
0s esnedtoor?\o9l'6 punos
0E asnedaTTr{r\ aT?srrt\ aTl1-lT, [00?7\0ET] ,6 punos
l}(aUr-F = f,TlseT
f Tpuagt asnPd
[00r?\0L] '6 punosge asned
tooSt\oEl'6 punosge asned
t005t\0El '6 punos09 asned
t008t\9rl '6 punosgE asned
t00??\0rl '6 punos
aaou: qnso6ET = pueunuoc
(-rr - rTtseT) ) arcd (009- < (-zT - ,rrlseT))) lT
0T asned-rr ,6T urpe
00E 01 T = xx -zo]
Te^xeu+ (lsa6uoT/ (socldrau-soCIpIo) ) urnla.rf Tpua
TE1\xpru+ (1sa6uoT/ (sodpTo-sodaau) ) u-rn?a.ruaql ( sodpTo<sodlrau) f T
I T e^xeu' ? sa6uo 1' sodpl o, sod/"reu ] paads la6?eoTJ -re^ Te^xeu
leoTJ Je/1 lsa6uoTleoTJ te^ sodpTo?EoTJ :el sodirrau
auo u-rn1a.IJTPUA
Bab 3: Robot Humanoid BRAT
pause 35sound 9,pause 35sound 9,pause 35
endif
lastir =next
ls0\38001
[70\4300]
ir
return
readir
for filter = 0 Eo 9
adin 19, temp(filter)nextir=0for filter = 0 to 9ir=ir+temp(filter)nextir=ir/10;sound 9, tl-0\40001iserout s-out, i38400, [dec ir ,13]
return
readAMx
for filter = 0 to 9adin 18, temp(fifter)
next.AMx=0for filter = 0 to 9AMx=AMx+temp(filter)nextAI"Ix=AIvIx/10;sound 9, [10\4000];serout s-out, i38400, ldec ir , ],31
return
:::*'
Lihatlah gerakan yang ditunjukkan robotdapat dilihat pada CD pelengkap buku.
Latihan
tersebut. Tampilan videonya
Cobalah jalankan program demo Bot Board II dengan moduleBasic Atom Pro sebagai berikut:
48
6V
,d trioT
8d .qoT0d ^toTesTa
?d qETr{Bd r{6Tr{0d qETT{
uaql(T=oJrg.uu)lT
z,trr8'uu = cpaTTJIE'uu = SpeTO,T,Ttr'UU = meT
f lpua6d r^oT
tooor\orl '6d punos0=uu uar{1 (dn-NO,I,IOS = Clnq-^ard) aNV (NtvtOC-NO,I&nS = Jlnq) l-I
f rpua6d 1{oT
t000T\0Tl '6d punosT-uu=119
uarll (dn NOJ,&nA = slnq-^a.zd) aNV (N/VIOO-NO,I&OS = alnq) ]Tf Ipua
6d toTtoogz\El '6d punos
T+uu=uuuar{1 (dO-NO,t,tOg = V?nq-^ard) aNv (N!}OO-NOJJOS = vlnq) l-F
ItT',,,,'9\dura1 gcap],009LqT,,IOO-S lno.resdural'9T uTp€
: uTeusCgT aT66rM,
al
el
pf,o/vr
1Tq fe^1Tq fE^1Tq rp^
u - uq
0 = Jlnq0 = Ellnq0 = V?nq0 = JPaTn = sDeT0=VpaT
do-No.L&naNMOC_NOJ&OA
fe^ durelJlnq-Ae-rd81nq-^a.zdVlnq-^a-rd
lTq fe^ Jlnql-Iq fE^ ElnqlTq fE^ Vlnq
lTq fP^ JpaTlTq fe^ EpeT1Tq fe^ vpaT
e1^q .re^ uu
r uo,0 uoJ
Bab 3: Robot Humanoid BRAT
endifif(nn.BITl=1)Lhen
high pl-high p5
else1ow p1low p5
endifif(nn.BIT2=1)then
hish p2high p10hish p6
elseIow p21ow p10low p5
endifif(nn.BIT3=1)Ehen
hish p3hish p7high p11
else1ow p3Iow p71ow p11
endif
pause 50
prev-butA = butAprev_but.B = but.Bprev-butc = buECgosub buttson-led-control
goto main
'subroutine to read Ehe buttons and control Eheput in'variables butA, butB, and butc. LED sEates areledA, 1edB,'and 1edc.button-1ed_conErol :
'Make P4-P6 inputs to read butsLons. This turnsinput p12input p13input p14butA = IN12butB = IN13butC = IN14
'Outputs LOW to each LED Ehat should be onifledA=1then
Iow p12endififledB=1then
1ow p13endi.fifLedC=1then
1ow p14endi freturn
LEDS. Button states are
read from variables
the LEDS off briefly
50
L9
'rl.uelp
qrqet lnqasrel loqor uerrel ue{Ere6 re6e ue6up} uep qnqn} pppdolres edereqeq uelqequeueu nlrad epuy 'laqp{ ueleun66uauer{ueq eltf resaq qrqel ue{rreqrp 6uef uerelrued lurod eua'tpl )elJHrJpp pJBns Josues ue1eun66uer.u BpuV ueldereqgq '6uodrep uerJelueln>lelel.U e,{ulesnu 'ur16untu tnql'Uales ue>1ere6 ueDuap er{uqn1r-6uetu upp ue{ureurrp 6uer{ >lrsnur uerye6uepueu: ndtueu snJpr.{
rur loqod 'unqel derles ue{eperp rur seluoy '(lSUy) prseuopul ruesloqo5 seluoy Inlun loqor rpefueu 1uI IVdg loqor qeluelEuequley 'Z
€9
lrdafueur reddrr6uelera6 uep 'lelnrueru raddrr6 uelereE 'unrn1-1reu ue6uel ueqereD'unrn1-1reu Jolenllp uelere6 'aseq uerelnd nle{ ,uelere6 nqunsg ue6uap loqor ue6ual reua6ueut seLleqp up{B rur ueledurase{ pppd'loqor rBlrles 1p >lelqo-Iafqo pqueEuecu {n}un ue>leun6rp loqor ue6uel
loqou uB6uo'I
'proueurnq loqoJ lpnqtuatu urelep Eurlued le6ues efursrsod rnqel-e6uatu Inlun olres uelorluoEuad uep qr66uer reddrr6 r6o1ou1e1 ueDueploqoJ ue6uay ueesen6ue6 'proupunq loqor rselrlde Inlun etuelnral'1oqor eped ueleunBrp l1e16ur:es 6uer{ uer6eq n}es qelps qplepe ue6ua1
uBnlnqepuod
uuletag nquns g pqoa ue6ue1
Bab 4: Lengan Robot 5 Sumbu Gerakan
Gambar 4.1 Lengan Robot dengan 5 Sumbu Gerakan
Aplikasi ini dapat dibangun dengan menggunakan:
- Robotic Arm Mechanic
- Servo Controller DSR-08
- 3 pcs Motor Servo GWS S04BB
- 3 pcs Motor Servo Hitec HS-422
- 1 pcs Gripper
- 1 pcs Modul USB to serial DU-232 (untuk PC non-serial)
- 1 pcs Modul DST-51 (untuk aplikasi stand alone)
Sebuah motor servo GWS S04BBberfungsi untuk mengatur gerakanmemutar.
memiliki torsi 13 kg.cmdari lengan robot secara
yangbase
54
99
'd\)) qerp aI lere6raq snrpq upupl ISIS lp o^resrolou '/y\) qere eI lere6req lrl>l Isls Ip o^res Jolour elrg .er.ues 6uE^lnpns uellnser ueEuep upuply\plraq 6uer{ qere ue6uep uplnlelrp snJer_lrur onJes Joloru enpe{ ue>1ere6 'uedepeqraq 6uer{ el{ursrsod ueDueq
unrnl-4leN ropnl\v ue\eDD €'? requeD
'rolpnl{B ueuel upp rrrl Isls Ip up{Ie}eltp 6ue,( ggyggSIAD o^Jes Joloru qenq pnp ueleunDrp 'nlr InluF) 'rrrpuas n1r ue6ue1 1ru-p{au rrep upqeq ledepueru e6nf 1a[qo 1e16ue6uau urples puarp>l ]ereq6ur1ed 6uer{ uelera6 uelednJer.! unJn} upp llpu >ln}un Jo}pn}Ie uB{eJeD
Jelntuaw as2g ue\eraD z'? JequreD
PJI
TU:
Bab 4: Lengan Robot 5 Sumbu Gerakan
Gambar 4.4 Gerakan Tangan Naik-Turun
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.
.:r;il.ii#:'&i,
m:
ffir
im
ir
lt.:..r,,
#,lflIfi[0*ri
ili*#rffi,
ffi,*s1
f;$.!;
II,ii;
.
i',
I
I
l
II._
56
L9
'lerJas
3{ gsD rrep reuenuo>l rpDpqes z6z-Dq Inpow uplpunErp tedep lerJesUod rlrlrluetu leprl 6ue,{ 34 {n}uD "IIJ eI Z6Z35 repeluol rdelEualrpqe1a1 6uef ZeZ-q) Iprres leqe{ uplqn}nqp 34 ue6uep rselrlde In}uD
'90-dSC IJep IdyD al uelDunqnqpDuns6uel ledep e66urqes JUVD uod r>lrlrueu IE-ISCI Inpow 'lg-ISq relorluoloD{rur rnlpleu euole pup}s undnBtu )d rnleleur ue{nlplrpledep rur loqoJ ue6uel rlppua>l saso.rd p^\qpq lpllrlrel L'V reqrileD pppd
pqoA ue6ua1 nepuay L'? requeD
[;;],,, 80-uso ,r'
./' /
'J_dyD pod rnleleu lprJes prp)es uplrurrrlrp 6ue{ qeluuad-qelurradrnlpletu qppnu ue6uap uplnlplrp tpdpp olres Jolou uelera6 seso.rd'rur lnpotu efuepe ue6uaq 'luapuadepu! pJpDes olJes ro]otu qpnq g upy-rlepue6uau Inlun upndr.uerual Dlrlrtuetu 6ue{ gg-gsq Inpow uen}upque6uep up{nyplrp }nqesJe} olres ro}otu tupuael ue11ere66ueu In}uD
6ue 6 6ue ;a61 uep 7e deta61 nddltg ue1eoD g' b re queD
i$i!
€
Bab 4: Lengan Robot 5 Sumbu Gerakan
Gambar 4.8 Modul USB to 232 Conoerter DA-232
vcc
JPl II rh----I i 5-----.pe-| .P+
I
CoNNECTOR 5P I=
., T^.LED I .o
I
", * PJO220 l!
I
58I
L
o ooo3v3our 9 99; rc
'npUSBDM
RI$
usoP cT$
DR'
RST@T* DS*
ocD*NN
Rt*
Gambar 4.9 Diagram skematik Modul usB to 232 Conoerter DU-232
69
'rJpq uerPnlue>l IP srlpr.uolo upDual
Iere66ued rsp>{rlde }enqr.ueu up>lp BpuV elne{ eun6req uelp 6upl{uplple) re6eqas uedursrp ledep loqoJ ue6ual nqurns rsrpuol snsJel1o1o1ord elep e66urqes loqor ue6uel nquns-nquns upllere66uau uep
BS-USq 1UyD aI uplturJr>1p e6nf tnqasret ue>11rdtue1rp 6ue,{ Iolo}ord
ranortuo) oarag )d ueqnsz-qlp 6ueft ep1 p4otord OI'? requeD
renlel 6uert elep 1o1o1ord rolluor.uau ledepe6n[ epuy '1oqo: ue6ual nquns uelera6-uelera6 qepnuradrue(u ureles'esnoru rsrsod rese6-rase66uaur ueEuep e{ueq ueln{elrp ledep rur }oqoJue6uel rJpp nquns dBrles uelere6 'JelloJluo) olres 36 uer6or6 ueBuaq
'{ooqa}ou np}p )d rnlplaru Iensrn eJe)es rur ue6ual ue1-rlepua6uau ledep ppuy '80-USe Inpour 1UyD Uod rnlplew 'relloJluo)orues re6eqes rs6uqraq 6ueri gg-gsq Inpour rnlpleur )d ue>leun66ueu:ue>11era6rp ledep Iur loqor ue6ual 'er{uunleqes up{splefip 6ue[ rpedeg
rErya}| fuE^ lo:,Flord
Cd ueleun66uary loqou ue6ua-l lero66ue6 lsellldv
Bab 4: Lengan Robot 5 Sumbu Gerakan
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
Sdtmq I- .-.---- - -t:,-- --.-.^-i
$- ?s5
$snro $peed
H*nd,$*nqo.,$arur,F**itioltSenrs.Spe*d: SentBata::
lData senl : ]E 1 1 01 00 0'l 04 01 lll 07 00l^.
11t
FlecvDdar
Gambar 4.11 Pengaturan Kecepatan Seroo
Berikut ini adalah listing program PC Servo Controller yang dibuatdengan menggunakan Delphi.
pcger/o.pas:/ /Crealue by: ,Januar Susanto/ /DELTA ELECTRONIC 2OIOuni-t Unitl;interface
usesWindows, Messag.es, Sysutits, Variant.s, Classes, Graphics, Controfs, Forms,Dialogs, SEdCtrls, CPort, Comctrls, Vrspinner, VrControIs, Vrcauge,VrSlider;
typeTForml = class(TForm)
ComPorE.l: TcomPortiButEonsetting : TButton;But.t.onconnect : TButton;VrSliderBase : TVrSlider;LaDe.L1 : ',I'LJabeI ;Label2: Tlabef;
60
T9
,pua{ suorlP-rPTcep sTIqnd }
3TTqnd{ suoTle.rETcap a1E^r-rd )
elp1\r.rd j (-ra5e1ul :lunoc rfsa[qoJ :-rapuas).rer{3xuT1-rodluoJ a"rnpeco-rdi (AJetqoi :-rapuas) Ic-ITJTuo?lng a-rnpe)o-rd
1(-za6a?uI :I /X lelelSlJTqSJ :tlTqS juollnEasnoI^IJ :uol1nEI j?JetqoJi :.repuas) drlasnohldr-roraprTS.rA a.rnpaco-rdl(-ra6a1ul :I 'X iale?SllTqS[ :1fTr{S
juollngasnoldJ : uo1lnE l13a lqoll :.repuas ) dnasnohl-radr:e.raprTS-rA a-rnpaco-rdI (,za6e1uI :^ /X jelelSllTr{S,t :1f Tr{S
luollngesnol^I& :uo11ng llca[qoJ, :-repuas)doasnohJpueH.rap-ITS.rA a-rnpaco]d,1 (1ca [qoJ : -repuas ) a6uer{SlrpEpaadsdr.r.) a-rnparo,rd
j (1Je tqOJ, :.rapues ) aoupqolTpgpeads.radT-rg a-rnpaJo-rdj ( ?ca tqoJ : .rapuas ) abupqcl rpEpueHpaads e.rnpacord
j (-re6afuI :i 'X jalelSllTqSJ :1fTr.IS iuollngesnoNJ, :uot?nEl 1 ca !qO,! : .rapuas ) dna snowrolenl rv-rap r T S]A a-rnpa 3o,rd
j (1ca[qoJ :"rapuas) a6uer{JlrpEpaods]olen1cv a-znpacojrdI ( lca [qO& : "rapuas ) alear3u.rod a"rnpaco.rd
j (1ca tqofi :.rapues ) aoueqJl'Fpgpaedsoseg a.rnpaco-rdj (]e6aluI :l 'X jalelSlfTI{SJ :tlTqS
iuolln8asnol^IJ, : uo??ng 11ca [qOJ : -repuos ) dflasno]nlasEg-rapTTS.rA a-rnpacoldj (lJatqoJ :-ropuas) {rrTJlcauuoJuolln8 a.rnpaso-rdi (3cetqoJ, :_repues) )tcrTD6uT31asuo11ng e-rnpeco-rd
I oual^IJ : oIuaI^IAcaEJTaqe-I& :gZTaqerljTaqel& tlzlaqerl
j uollngJ : Tuol?nE jTaqeTJ : EZTaqeTr lTpS[ : f,1TpE
JTaqe-IJ tzzlaqel11TpE,t : lrpgpeads
i Teqerlfi : TeTaqeTj 1TpS,I : unNo^.ras
1lTpEI : lapEpeadsdr-re)j ]aprTs-r^Jr : dr-r5.rapr Ts.r^ j TaqeT& : 0 ZTaqerI
I TeqerIJ : 6TToqeTtTeqET&:gTTaqeTjTeqeT[ : LTTaqel
i lTpEJ : lrpgpeads.radr.re1 jrapr TS.rAJ, : .radr.rc.T ap-I T s.rA
i Taqerl[ : gTTeqeTiTaqeTJ:ETTaqpTI Taqerl& : rTTaq€Ti TeqeTJ : ETTaqEl
11TpE,t : lrpgpueHpaadsI -raprTS-rAJr : pueH.raprTS-rA
j TaqelI : zTTaqp.IjTaqETJ : TTTaqeTi Taqerl& :0TTaqETjTaqelJ:61aqeT
i ouaw& : oural^I1uasileqeTJJ:gTaqET
j t-FpEJ : I rpgpaadSf,olenlrV1 TaqeTJ : LTaqerl.rTaqelJ :gTeqerliTeqET& : gTaqeT
l -rapr TS-rAJ :,ro1en? Jv-rapr IS-rAi Ieqe.I& : ?Taqerl
riTpSJ :lrpEpaedSaseElTaqe.IJ : tTaqel
Bab 4: Lengan Robot 5 Sumbu Gerakan
varForml: TForml;posisi_servo: string;header, Df , DN, Sf , SN, L,NU, P: byEe;KS_B , KS-A, KS-H , KS-GR , KS-G : bYtE ;Chk,Cksum: byte;byte-count : word;
implemenLation
{Sn *.dfm}
procedure TForml.ButtonsettingClick(Sender: TObject) ;
ComPort I . ShowsetupDialog ;end;
procedure TForml.Buttonconnectclick(Sender: TObject) ;
if ComPortl.Connected thenbegin
ComPortl . CIose;Buttonconnect. Caption : =' Connect' ;
endelse
beginTry ComPortl.Open; Except
la6,.i -
exit;end;
end;Buttonconnect. . Captj-on: = 'Disconnect '
end;if ComPortl.Connected E.hen
beginComPortl . abortAllAsl'nc ;ComPortl . Cl-earBuf f er ( true, true ) ;
end;end;
procedure TForml.VrSliderBaseMouseup(Sender: TObject; Button: TMouseButton;Shift: Tshiftstate; X, Y: Integer);
varDc.hl,r^.
chk. =n .
header:=g1E;Chk : =Chk+header;nr.=(11.Chk: =Chk+DI;p11; =901;Chk: =Chk+DN;51; =900;Chk: =Chk+SI;gry; =901,;Chk: =Chk+SN;tr; =$04;Chk: =Chk+L;P; =$01;1111; =901;PS : =VrSliderBase . Pos ition ;Chk: =Chk+P ;Chk : =Chk+NU;
62
e9
j T+{r{J= : {qJir0s=:rr
INS+{qC= : )iqcrT0S=:NS
j IS+rtr{J=: }tr{Jj 00$=: rS
jNO+{r{J=: {qJ1 T0$=:No
j rc+{qJ= : Ir{Jl TIS=: fG
i -reppaq+{qJ= : Ir{JlgT$=: _rapearl
r0=:IqJur6aq
ip.Tott: T.l pJolv\ : lunoc.l6uTr1s : 11s
l al^q: sd.TE.1\
i(ra6a?uI :I /x le1e1s1]Tr{sI :lfTIIS iuol?ngesnow& :uo11n8I 1ce f qOJ : -aapuas ) dnasno,.If,olpn33Y-rapT TS.IA
- Tur.rog& a.anpaoold
jpuaJ ( ?xa[' 1 Tpgpaeds]olen1cv ) 1uIoJ.r1S - E E Z= : V-SX
uT6aqj ( 13e tqoJ : -repuas ) e6upr{J? TpEpaadslosenlc\I. Turrod& alnpeco-zd
lpuaI ( ?xaJ,' 1 TpEpaadsdrre ) ?uIoJ-r1S- E E Z= : e-Sy
, ( lxail' 1 TpEpaadsradT.r9 ) lulod,.rf S - E S Z = : EO-SXi ( txeJ,' 1 TpSpueHpaads ) 3uroJ,-r1 S - S E Z= : H-SX
.i ( ?xa&' lTpEpaeds-rolen1cv) luroJl.Ils - s E z= : v-sxI (1xe[' lTpgpaadsaseg) 1uJoJ,-Ils-992= : S-S)I
j -reaT3 - ouraw^cauj -reaTJ - oural{?uas
uT6eqr (lJacqo& :-rapues) e?ea"r3uLrod. rur_rod& arnpaco-rd
jpua, ( 1xa&' ?Tpspeadseseg) luloJ-rls- EEZ= : 8-Sy
ur6aqJ ( 1ca !qOJ, : ]apuas ) ebuer{J3 TpEpaedsaseg
. Tur"roJd, a-rnpaco.rd
jpue( (Z,uns{c)xoHoJ,?uI+,, + (Z,g-SX)xaHoJ,lul
+ , , + ( z 'sd ) xaHoJ,luJ+ ,
,+(z'rud)xaHo&lul+, ,+(z,d)xeHo&1ul+, ,+(2,1)xeHo&1uJ+, ,+(Z,NS)xaHoJlul+,,+(z,Is)xaHoJlul+,,+(Z,NO)xaHo,t?uI+,
,+(z'Io)xaHo,l?ul+, ,+(z,"rapeaq)xaHoJluI+, : luos €?eo, )ppv.sarrrT.ouawluasI ( I'ums{3) a1Tf,M. T?.zoduroJ
J ( I'E-SX) elTfM. TljroduroSi (T ,Sd ) e1TfM. I?-rodluoJI ( T 'nN) alTfM. T1-roduroJ
J ( T,d) a?r-rM. T1-roduoC.i ( T,T) e1T.rM. TlroduioJ j ( T,NS ) e1TrM. Tl.roduroc
i (T, IS) olTfM. rl.roduroS, ( T,NO) e1ff,M. T?f,oduroJ.l ( T, IA) a?TfM. Tl.loduroJ
.l ( T,repeoq) a?Tfl,,t. T?rodtuoJj:tqc_ggZ=:uns{c
I 8-SX+{qJ= : {r{cI sd+)iq3= : >tq3
Bab 4: Lengan Robot 5 Sumbu Gerakan
p; =901;NU: -$02 ;PS : =VrS1 iderActuator . Position ;Chk : =Chk+P;Chk: =Chk+NU;Chk: =Chk+PS ;Chk: =Chk+KS_A;Cksum: =256-Chk;ComPortl .Write (header, 1 ) ;comPortl. write (Dr, 1 ) ;comPortl.write (DN, 1) ;comPortl.write (sI, 1) ;ComPortl.Write (SN, 1 ) ;ComPortl.Write(L,1);ComPortl-.Writse (P, 1) ;comPortl.write (NU, 1 ) ;ComPortl-.Write (PS, 1) ;ComPortl.Write (KS_A, 1) ;ComPortl.Write (cksum, 1) ;SentMemo.Lines.Add('Data sent: '+Int.ToHex(header,2)+' '+fnEToHex(DI,2)+,
' +IntToHex (DN, 2 ) + " +IntToHex (SI, 2) +'+Int.ToHex(SN,2)+' '+lntToHex(L,2)+' '+IntToHex(P.2)+' ,+lntToHex(NU,2)+,
' +fntToHex ( PS , 2l + ' ' +IntToHex (KS_8, 2\ + " +IntToHex (cksum, 2 ) )
ComPortl- . Readstr (str, count ) ,.
end;
procedure TForml . SpeedHandEditChange ( Sender: TObj ect ) ;begin
KS_H : =2 5 5 -StrToInt ( SpeedHandEdit . Text ) ;end;
procedure TForml.Grj.perspeedEditchange (Sender: TObject) ;begin
KS_GR: =2 5 5 - StrToInt ( criperspeedEdit . Text ) ;end;
procedure TForml.GripspeedEditchange (Sender: TObjecE) ;
KS_G : =2 55 -StrToInt (GripSpeedEdit. Text ) ;eod;
procedure TForml.VrSliderHandMouseup(Sender: TObject; BuEton: TMouseButton;Shift: TShiftstatei X, Y: Integer);
VAIPS : byte;
beginChk: =0;1r..6qr;=g1E;Chk : =Chk+header;p1 ; =911;Chk: =Chk+Dr;pg; =901;Chk: =Chk+DN;51 3 =$00;Chk: =Chk+SI;911;=901;Chk: =Chk+SN;r,. =q0/..Chk : =Chk+L;p;=901;NU: =g 04;PS : =VrSliderHand. Position ;
64
99
,,+(z/IS)xaHof,llul+,,+(e'Nc)xaHoJJ1ul+,-izlIG)xaHo,l?ul+, ,+(z,f,epeaq)xaHoJlul+, : luas e1eo,)ppv.seuTT.oural^Ilues
J ( T /urns{J ) a1Tflvl. T1-rodurocj ( T,E0-SX) alTfM. Tl-lodluoJ
1 (T ,Sd) alTfM.TfjroduroJl (T ,nN) a1TfM. Tl.roduroJ
,l ( T,d) a1T-rM. Tl-roduroJJ ( T'T) a1T-IM. T?.roduroc
I ( I'NS) a?TfM. TS.roduroSI ( T, IS ) a1T.rM- Ilf,oduroa)j ( I,NO) e1TfM. Tl.roduroSJ (I 'IO) a1Tf,M'Tl.roduroJ
: (I'rapeaq) e1Tfl4. Tl.roduroJJIr{J_9EZ=:ums{J,l ue-sx+{T{J= : )tqc
i Sd+)iT{C= : {r{J1ru{+{r{3= : )iqJ
j d+{qJ= : }tr{Jj uoTlTsod ' .radT.r5-rapT TS-rA= : sd
I 90$=:ru{.r T0$= : d
I .I+{qC= : >ir{Jr ?og=: T
1NS+)tqJ=:)iqJjT0$=:NS
I IS+{r{J= :IqJI 00$=: rS
jNG+{r{3= : {rIJrI0S=:N(
I IO+{qC= : }tr{JjITS=:ro
,,*ET;]T:;;J:il0= : )tq3
uT6aqJ e1^q : Sd
ite/1.I (]ebe1uI :I 'X JalelSllTr{S,t :1}Tr{S iuol1ngesnow& :uo1?ng
J 1ce tqOJ, : -rapues ) d0asnol^I.radT-re.repr TS.rA. Tur.rodL aJnpaco-rd
Jpua( (z'urns{c)xaHo[1uI+, . + (z,H-sx) xaHoJluI
+r, + (Z'Sd)xaHoJ,luI+,,+(z'ru{)xeHoJluI+, ,+(z 'd)xaHo[luI+, ,+(z /T)xaHo&1uI+, ,+(z 'NS)xaHotr,lul+
,,+(z'IS)xaHo[1uI+,,+(z,NG)xaHoJlul+,+(z'IG)xaHo,lluI+, ,+(z'Japeaq)xaHoJ,luI+, : luas e1eo, )ppv-sauTT-ouel^Ilues
,l ( T,urns{c) a1T.rM. TlroduroCi ( I,H-SX) a1Tf,M. T1-roduroJ
i (T,Sd) a1Tf,M. Tl.roduroJi (I ,nN)a1TfM.f l.roduroJi (T ,d) alr-rM.TljroduroJi ( T, T) a?T-rM. Tl.roduroJ
j ( T,NS ) alTfM. TljroduroJJ (T' IS) e1Tf,M. Tl-rodluocI ( T'Nq) e1Tf,M. T1-rodtuoJi (T, IG) a1TfM. T?.roduoJ
I ( T',-rapeeq) af Tf,M' T1-roduroJl{qJ-992=:ums{J
I H-SX+{r{J= : Ir{Jj Sd+)iI{J= : }ttl3j ru{+)tl{3= : ltqC
J d+{qJ= : {qC
Bah 4: Lengan Robot 5 Sumbu Gerakan
+IntToHex(SN,2)+' '+IntToHex(I',2)+ ' '+IntToHex(p,2\+ ' '+IntToHex(NU,2)+,' +IntToHex ( P5 ,2) + " +
lntToHex(KS_GR.2) +'' +IntToHex(cksum, 2) )
end;
procedure TForml.VrSliderGripMouseUp(Sender: TObject; Button: TMouseButton;Shift: TShj,ftState; X, Y: Integer);
varPS: byte;
beginChk: =0;header:=g1E;Chk: -Chk+header ;DI:=S11,Chk: =Chk+DI;p1g3=901;Chk: =Chk+DN;cr . =(nn.Chk: =Chk+SI;51'11=$01;Chk: =Chk+SN;T..=(nd.Chk: =Chk+L;p.=<n1.NU: =906;PS : =VrSliderGri-p. Position;Chk : =Chk+P;Chk: =Chk+NU;Chk: =Chk+PS;Chk: =Chk+KS_G;Cksum:=256-Chk;ComPortl.Write (header, 1) ;ComPortl-.Write (DI, 1 ) ;ComPortl.Write (DN, 1) ;ComPortl.Wrj,te (SI, 1 ) ;ComPortl-.Write (SN, 1) ;ComPortl . Write ( L , 1 ) ;ComPortl.Write (P,1) ;ComPortl.Write (NU, 1) ;ComPortl.Write (PS, 1) ;ComPortl .write (KS_G, 1 ) ;ComPortl.Write (cksum, 1) ;SentMemo.Lines.Add('Data sent : '+fntToHex(header,2)+' '+Int?oHex(DI,2)+'
' +IntToHex (DN, 2 ) + " +IntToHex (SI, 2 ) + "+IntToHex(SN,2)+' '+fntToHex(L,2)+' '+IntToHexlP,2)+ ' '+IntToHex(NU,2)+'
'+IntToHex(PS,2l+' '+IntToHex (KS
-G, 21 + " +IntToHex (clisum, 2 ) )
end;
proced.ure TForml-.Buttonlclick(Sender: TObject) ;var
PS : byte;KS : byte;
beginchl.. =n.neader: =Sl-E:;Chk: =Chk+header ;p1 ;=911;Chk: =Chk+DI;p53 =901-;Chk: =Chk+DN,'cr. -Cnn.rr. -?vv,
Chk: =Chk+SI;
66
L9
'rensas 6ue^ueqrlrd qelepe relorluoloJlrtu ueeun66ued 'rur qredes 1se1r1de epe6'rsualslJe ueselp {nlun rJppurqrp e{ueserq looqe}ou nptp )d ueBun66ued'lera6req 6uer{ }oqoJ-}oqor eped Br.uplnJe} 'n}ueue} rse4lde pped
, + ( Z'rtl{) xaHo[1uf+ ,
,+(z/Io)xaHo,tluI+,
JoloJluoIorM^lueleun66uey11 loqog ue6uo'I IBJo66uod lsBMdV
'pueipua
i (exaq+ , : 1\ca-r p?Eo , ) ppv' sauTrl - ourew soujpue
! (Z' (l.I1.rts) e1^q)xaHo[luI+,, +exaq=:exaqurOaq
op (l1s)q16uaT 01 T=:r.ro] J ( unoc,.r1s ) -r1SpEaU. TljoduroCuTEaq
I p,Tollr : TJ6ur-r1s: exeq,-r1s
f,PAi (-ra6eluI :1unoJ Jlcatqo[ :]apuas) JeqCr8Tl-roduroJ' TuuoJ& a]npeco-:d
jpua( (Z'urns)ic) xeHoJlul+,, + (Z,e-SX) xaHo[1uI
+ , , + ( z 'sd ) xeHo&lul+ ,
, + (z/d)xaHo[,lul+,, + (z'T)xaHo[?uI+,, + (z'NS)xaHoJ,?uI+,,+ (z'IS)xaHoJ,luI+,,+(z'Nc)xaHo[1ul+,
, + (Z'-repeeq)xeHoJ,lul+, : luas e?po, )ppv'sauT.I'ouar{1uasi ( T'urns)ic) e1Tf,M' Tl.roduroJj ( I,e-sx) a1Tf,M. T1-roduroJ
J (T,Sd) atTfM. I?:odruoJI ( T,ON) a1TfM. Il.roduroC
I (T /d) a1r-rM. TlfoduroJi (T,T) alTrM. T1-roduroJ
1 (T 'NS ) a1TfM. Tl.roduoJi ( T, rs) a1Tft4. Tl.roduroJI (T ,Nq) a?Tf,Iv]. f 1-roduoJj (T, rG) alTfM. Il.roduroJ
I (T,:apeaq) a?TrAt- I1-roduroJ
' ''u?;i:fi;Ti3i Sd +{r{D= : }tq3Jru{+{qC= : }tr{J
,l d+{t{J= : {r{J,l ( txafi' lrpEpoads ) ?uloJ.zlS-SS Z= : SX
j ( ?xa[' TITpS) lulo&.r1s= : SdJ ( 1xeJ,' urnNo^-ras ) lulo&:1s= : nN
I T0$=: dJT+{qJ=:{qJ
r?og=:rI NS+){I{J= : {qC
. LU>-.t\>
Bab 4: Lengan Robot 5 Sumbu Gerakan
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.
Itga;
68
lF
69
TPT.ras BSep .ra]Jng j
eped p?ep 6ue[uedjTeTjras elPp ?eled ums{caqci-ra?ser{ 1n-rn .roluou TeqeT-reA,
f,a1sEh1 IeqeT.rPAlaAeTS 1n,rn rouroNJ
oAeTS SruafjIOqOJ 1n:n fouoNl
TsoT
T
T
T
T
I
TlaUqEro 610
Tfexr{80 610
1.rets d*!t00 610
EgSJ
sq : sus--zalunoJ9Z sc :.raJl:n8
Ter-ras 1a{ed.r: TET-reSelec6upfued
sq :Plequms]{ceqJsG :UnNaC-rnossG : ad J,ac.rnossO : urnN?a6-reJ,sO : ad.{J,1a6:eJ,sq : ssa-rppveJr^ac
TSEVIUYA-'IETIVIEVA J
H0t6ro
?oqou 1n-rn -rotuoNinoE loqou-rouoNoos x&s
noE .ro1oi^ITo.zluoyrle3ur.radq00 O0S eJacr1\a(I
EESOT EOONS
0T0z JrNoE,tJaTE VJ,.rsq jup/,\TeN rprrt snTned :^q alea.r3 j
,IOEIOU NVCNST I^IVECOUd jluge. oqo.ruErB
'relloJluo)o^res )d eppd IJdLupl 6uef elep lo{o}ord 6 eilq rrpp r.{eloredrp 6uefuplede)el rnlp6ued felap qelepe IEr.ursap gZI nelp qog elpq .rallorluo)orues )d pppd lrdlupl 6uB{ p}pp Io>lo}ord g e},tq Irpp r{sloradrp6uer{ lnpns da}s LIplBpe qgl e}Bq 'aspg >lpre66ued onres rolou nlrp^'uelrlepualrp 6up,( o^res rolou ror.uou r{plppe pnpe>l 6up/{ t0 e}pq
'(gO-USq Inpou nles ppe e{ueq euare>1)rur rsplrldp pppd I0 nleles 6uer{ rrrpues gg-dse }nrn ror.uou qplppeetueged 6uef 1g Blpq 'q0g'r{0t 'I0 'I0 lpllu ledepral Zespgleqpl eped'qoluo) 'rur tuerDo.rd ueleunEDueur unleqes nlnqpp qrqelJet olJes Ieqelderlas lp rplru,relru up>{n}ueuetu {n}un rallor}uo) o^ras 36 ueleunEer{ulreqas 'n}l puaJBI qalo 'olJes Jolou IJpp :e16uet DuesBtuatuepuy lpps rsrsod eped Eunlue6raq le6ues Jul IpH
.ueJ>lrurep nlelesr{pl{ppl} rur rue:6ord 1eqe1-1aqe1 eped p}pp lolotord ernqeq }e}B)rp nlJad
TOI{AT
TO
Bab 4: Lengan Rohot 5 Sumbu Gerakan
Org 13ht(eta
StarE:Lca11 Init_Serial ;Inisial Serial port 57600 bpsMov PCON, +0h ;Mov TH1, #OFAh ;
Loop:Mov DPTR,+TabelBasel ;Gerakan Base memutar ke kiriLca1l SetPosisiservo ;Lca11 Delay_ldetik ;Mov DPTR,#TabelActuatorl- ;GerakanActuat.or EurunLcall SetDualservo ;Lcall DeLay_ldetik ;Mov DPTR,#TabelHandl ;Gerakan Hand/Tang:an turunLcall SetPosisiServo ;Lca11 Delay_ldeEik ;Mov DPTR,#TabelGripperl icerakan rotasi gripperLcal1 Set.Posisiservo i
Mov DPTR.#TabelGripl ;Gerakan gripper membukaLca11 SetPosisiservo iLcal1 Delay_ldetik ;Lcal1 Delay-ldetik ;
Mov DPTR,#TabelGrip2 ,.Gerakan gripper menuEupLcall SetPosisiservo ;Lca11 Delay_ldetik ;
Mov DPTR,#TabeIHand2 ;Gerakan tangan naikLca11 SetPosisiservo ;Lcall Delay-ldetik ;
Mov DPTR,#TabelBase2 ;cerakan base memutar ke depanLcal1 SetPosisiServo ;Lca11 Delay_Ldetik ;Llmp t
; TABEL; - Bagian ini berfungsi untuk menentukan sudut-sudut servo dan kecepatan; - Uncuk kecepatan, min = 30 dan max = 728 / 80}L;- Formasi TabelActuat.or: [Nomor Servo Cont.roller] [SuduE. servo] [kecepat.an];- Formasi Tabe12 lainnya: [Nomor Servo Controller] [Nomor Servo] [Sudutservol Ikecepatan]
TabelActuatorL:DB 01,9,80h ;range sudut actuator 05 - 09
;05 angkat dan 09 turun
TabelBaseL: i range sudut Base 05 - 15DB 01,01, l-5,80h ;15 Counter Clock Wise, 1-0
; Centre
TabeIBase2 ;
DB 01,01, 1 0, 80h
Org 23}:Rel]t
S&+
70
rLL
!o^-ras TsTsocl las !
!!!!
o^fas uelell){a>t / ^eTep
lasj
o^ras TsTsod ?as,
E,IdCI CI]I0u cur
u' 01Ia l1or{g'v qqns
J fTJvl+'u /IoI{
V , S AoI.I
EIdO+Vo'V JAoW00+'v /\o'{
0u cure0+'0E0 /!oH
o^_ras?os TTesT
HCIG dOAT<Iq dod
?e{eduT-rTx TTesTEJCIG JUI
0u 3urv,oua ./\oN
u,Ldcl+va'v cAoI^I
00*'v AoIitr
U,lcl0 3uI0t{ cuI
V,oEA AoI^IEIdO+VA'\1 cAoI^I
OO#,Y 1\ON
0u curz0* ,0u0 AoIitr
o^:as?as TTPcT'Ido qsnalHdq qsnal
: o.rltasTenglas
1a>{edurTrTx d*[t9E
/ Z+raJ:lnE ..\oll
L0+'T+faffn8 ..!ofiz0# ,.raf l:nE AoI.I
loqoE.rouroN#'ssarppvacT^aq AoN164'ump1a6:e; l1ol{
r{TT# 'ad J,1a6.reJ, ,.!or{: -ro1ol^Ido?surTf Tx
9T - E0 EuTddT.ze a6ueu j
g0 uorlelo-r -raddr-r6 aEUPUJ
a-r?uac 0T 'un-rn1 g0 iqT - q0 ue6ue1 a6ue.rj
q08 '0T '90 'T0 Eq: zdTfcireop.T.
q08 '90 '90 'T0 Erq: Tdr.rCIaqetr,
9T -jq08'80'90'T0 EG
: T-reddr.:reTaqeJ,
q08 '8'?0'T0 Eo: zpueHToqel
q08'90 'n0'r0 so: TpueHTaqPJ,
Bab 4: Lengan Robot 5 Sumbu Gerakan
Mov A, #00Movc A, GA+DPTRMov @R0,AInc R0Inc DPTRLca11 KirimPaketRet
SetPosisiServo:Lcal1 SetServo
Mov A, #00Movc A, SA+DPTRMov GR0,AInc R0Inc DPTR
Mov A, #00Movc A, GA+DPTRMov @R0,AInc R0Inc DPTR
Mov A, +00Movc A, GA+DPTRMov eRo,AInc R0Inc DPTR
KirimPaket:Push DPHPush DPL
Lcafl KirimPaket.Dat.aLca1l AmbilDataSerial
Pop DPLPop DPHRet
SetServo:Mov TargetTl4)e, #1lh
(DSR-30 / DSR-o8)
Mov A, #00Movc A, EA+DPTRMov TargetNum,AInc DPTRMov DeviceAddress,#NomorRoboEMov R0, #BufferMov GRO, #04Inc R0Mov @R0,+PerintahKontrolMotorInc R0Ret
; Set
i
delay / kekuatan servo
; SeE Nomor Servo
i
;Set Posisi servo
i
;Sets delay / kekuatan servo
;
;Targiet. Servo Conlrol-ler
nomor DSR-08
nomor robot. = 01panjang dala
Kirim perintah konErol motor
Set
; Ambil data serial (ACK atau info dari DSR-08)
ArnbilDataSerial:Lca11 Serial_InCjne A,#lEh,AmbifDataserial
72
CL
?-re1s I
ad &ac-rnos 'V AoInI
v'elecums{ceqc Ao}i1no-Ter-res TIPc.l
x,ts#'v Aoritr:1e)iedTerw
3eEsclnoTer"res TIesT
ssa-rppvacT^ao 'v lloltr
sJlnoTerJes TTec.IcIaJr^aG+ 'v ..!ow
sJlnoTET.zas TIeclurnNla6.ze&'V AoI.I
sJlnoTPTf,aS TIec.Iad^J1a6.r€J,'V l\or,I
v'EleGums{JeqJ ..!oN?no-Ter-ras TIec.I
x&s+'v 1lofi: -relsew?e}{edTEI{v
1aEf no-Ter-ras TTEc.I
etecxrns{car{J 'v qqnsC fTJ
00+'v Aowtno-ra;Jngdoorl /
LE zulqsSlnoTer-ras T Tec.I
0u cuf0u0'v /!or{
:1ng:aSgngdoo-1T+jtaf l:nE+ '0u l\ow
sc?noTeTf,as TTe3TV, LlI 1\O'^I
0ll0'v /\oI{-raliJng#'0U /\oN
-ralseI^Ila{PdTe1vlv TIEc.I: e1PGla{edurr.rTN
1auuI-TeT-ras TTPc.I
uIelecdoo.I'E zulqOE CUI
v'oua ^ow uI-TeTjres TTecl: uleSeqdoo-I
0u curV'OEO 1\ON
-ral:l:ng+ ' 0u .I\oNV,S l\OW
uI-TeT.ras TTe3TuI-TeT-res TTesTuI-Ter.ras TTecTuJ-TeT.ras TTecTuI-TeTles TTecl
Bab 4: Lengan Robot 5 Sumbu Gerakan
Lca11 SerialoutCSMov A, SourceN\rmLca11 SerialOutCS
Mov A, #DeviceIDLca11 SerialoutCS
Mov A, DeviceAddressLca1l SerialOutCS
Ret
SaveBuffer:Mov @R0, A ;InC RO
Add A,ChecksumData ;Tambah check su.m
Mov ChecksumData,A ;Ret
SerialOutCS:Lcal1 Serial OucAdd A.ChecksumDataMov ChecksumData,ARet
rnit_Serial:MOV SCON, #52H , Mode 1 Ren
; MOV TMOD,#20H ; T0 Mode 2, T1 Mode 2Mov A,TMODAn1 A, #0FHOrl A, +20HMov ?MOD,AMOV TH1, *OFFH ; 57600Setb TR1MOV PCON, #8OH ;RET
SeriaI_Out:Clr TIMov SBUF,A
TungguKirim:,Jnb Tr, Tung$rKirimClr ?IReE
Serial_In:Clr RI
I\rngguTerima:Jnb RI , TunggrLrTerimaMov A, SBUFClr RrRet
KirimPesan_Serial :Mov A, #00HMovc A, GA+DPTRCjne A, *OFH, KirimTerusRet
KirimTerus:Lcal1 Serial_Out.rNC DPTRAjmp KirimPesan_Serial
*E
74
r9L
CNElau
J f,TCH00#'V 1\oW
Tdc doaV,HdG AO}{
E&dO+V0'V sAoI^IH00+'v 1\oL^I
cJV r{snd}IJdC CUI
lltdo+Vo'v cAoI^IH00+'V AoI^I
ILIdC cul: nualaxqeluTfed
1aEc qlas
: nurel ax{€pT,lr{e1ur-red
r{EluT.radTjreCdooT d*["fu,rdg curUJdC CUIu,tdo cuI
nualaxqElur-rad8'V qqns
C fTJnuro loxIep rlqelurfad
COW.I
OlIJ
Surg-n66unJ,surg-r{ppns ' 0dJ
uJdc+vo'v c^ohlH00#'V ,\oN
: r{e1ur-redr.reJdooT: SIqelUr-radr-reJ
dodrTJ
: surE-qepns
dur ['I3q.C
: Sug-n66unJ
"ralunoc 1-Iq 9T apol^I raurJi
ouJ qlasHddO#,OTJ l\OhIHOEO# ,OH,t AoI^IHTZ#'qOi.^IJ 1!oW
OOI^IJ l{snd: gu:E-de1a6
?ell)tIlapT-n66unJ'SurE-.ra1unoC z-ule
5urE-.de1ag TTecT: {T1epT-n66unJ,
0020#'surg-fa?unoJ ^oL_ :)iTlapT eTec
Bab 4: Lengan Robot 5 Sumbu Gerakan
Latihan
1. Sebutkan tiga contoh aplikasi lengan robqt otomatis pada kebutuhanindustri.
2. Tuliskan program yang menampilkan protokol data yang dikirimkanke lengan robot ke layar LCD M1632 pada Modul DST-51.
3. Tuliskan program pengendali lengan robot dengan menggunakanRemote Sony, di mana Tombol Prog+ dan Prog- adalah pengatur
kiri-kanan/turun-naik. Select adalah tombol pemilih servo.
76
LL
'loqoJ uelP^eqPq(ueur6ue,{ ue>1epuq up{nleletu lepq rolerado re6e ueselpq ue>lrrequreru ne}pepe 6ue.( uBepBeI reuaDuaru roleredo nqelrrequau Inlun uelrs6uqrpledep de1a1 Josues 'roleredo e[ra1 qepnuradueur {n}uD 'lenueurerp)es roleredo DuBroas qelo uelrlppue{lp e,tueserq eleredoele} }oqo5
rapocu3 ftelog
'a1eradoe1a1
loqoJ eped epe e6n[ rosues ueurlDunual dnlnpel {ep11 'uer1rcuep unrueN'up{n{Blrp snreq 6ue,{ ue{epurl uple rrrpues uesnlndal pqtue6uau6ue[ sqeuolo sruaf loqor-loqo: eped ledepral eserq rosues ']nqesre]ueepea{ renses uBIBpur} ue{nleletu ledep }oqor e66urqes 1e1o uerDeqa{ }oqor re}rles Jp epp 6uez( rsrpuol ue4edulBfueru In}un rsBurg:eq uruer6eg '6ue1eurq nple ersnueu eped prepur er{u1e.(e1 }oqor eped rosuag
uenlnqBpuod
loqoa tosuos:-/osuas
Bab 5: Sensor-Sensor Robot
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
6L
'Japo)ua uB6uurdue6uap rde16ue1p qe1a1 6uer{ }ry rapo)ug plleq rrpp {qeuals urerEerpuellnfunueu E'E rpqrupD 'reldmrelur-oldo re6eqas 1a1ed nles tuplppseualrp rlelEurres JolsrsupJloloqd nele rosuesoloqd uep qpJer.up{ul CE'I
rapo)u1 frn1oy Z'g EqueD
uCIsNA 0ifil{d
'srueletu r6nr-r6ru nete upqplpse{ uBllnqturuetu ledep 6uer{ srueleu:>1a;a rpefret lepn euere{ ueleun6rp Eurras LIIqel 1ul IIUIaJ 'rosues eIqeJer.uerJur e{eqec uereoued Duolotuau uplp Jolou uerelnd euer.u rpqpJer.up{ur {lu>let ueleun66ueu 6uer{ Jepo)ue nlrez{ 'raporuE lecqdg 'Z
'uerBlnd 1pe[el leps IPluoIup{lnqurueu 6uB{ Joloru eped unur) qenqes ledepral pupru rp
srue>latu IeJe uelpun66uau: 6uer{ rapocua n1re.( 'repooug lp)rueq)ew 't:n1rer{ 'repo)ue {Jula} rue)Br.u enp ledeprel relnd }npns Dunlrq6uaru In}uD
'1ede16uef lnpns qaloradp re6e eslndreqal rlpqtuel rnle6ueru uplp loqor >lelo eleur-qeqrueq rolou upqeq
]Bnqtuetu 6uer{ uepaur upqeqrued nB}e reJa}eq ue6ue6al er{uunrnl leqple
-ue{nluelrp 6uer( }npns redBcueru unleq qlseu DIeI uBIereD ernqeq
Dunlrq6uau loqor lplo lees 'eqpl-pqel loqor rye>1 eped 'qoluol re6eqeg
Bab 5: Sensor-Sensor Robot
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
80
i8
er{uuedep Ip lelqo rs{elepueu lees rnlnluauuele ue6ual uedel uplnlueuatu Inlun qplepp loqoJ ue6ual Inlun er(uued-erauad qoluo) 'Jenses 6uer( erpetu qelppe >{ruosp4ln 'reletu g e66urqru) € prplup >1eref rueleq 'nluepel 1a[qo->1afqo depeqre] loqoJ rsrsodrnqela6uau Intun loqor qelo up4{ntnqJp 1ul 1e;1 'lere6raq Euepes 6ue,{toqor qpnqes eped Eupuad uetuele nlBs r.{ples qelepp leref uern>1n6ue4
I!uoseJlln leJer Josuos
ny rap@ugenao E'9 requrcD
qemeq 4edue7 nTdnttayul o?do r'g requeD
iurur*el rruu
iHCIl.*3n**iqruH3{IftHIVf; d HId
Bab 5: Sensor-Sensor Robot
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.
[--
82
e8
uep lrseH 'lerres/IdvD ue6uep urlJIIIp 6uef qelurred ue6uap ue6unlrqradsaso:d upln{pletu ledep e6n[ reuog-q 'es1nd In]ueq tuplpp urples
'Ielqo ue6uap Josuesprelup leref relru qalo.radruau {n}un }nqesre} eslnd reqel Dunlrq6uaun1:ad e,{ueq }oqor Ip}O 'qeloredrp 6uer{ lerel ue>1n]ueueru uele eslndrpqel euetu rp 'espd qpnqes pe[ueru rsre^uo{lp uele ue6unlrqred yse;-1
'er{urunlaqes ue{seleltp qetet 6ue,{ rpadasue6unllq:ad ue{nlpletu ppes lruosprlln 1e,{urs uellq6uequau uele6ue,{ reuog-q eped reloJ}uoloJ{rl.u uep ra66u1 qenqas uelurrr6uau ngedefueq loqor 1e1o rpefuau 6uer{ reloJ}uo{or11u 'reuog-q Inpow ue6ueq
reuos-e uetielq 6u1tu11l'g requeD
uje-LrJ3eleielsLuSL - Sn00! Pslnd
r_I V I
,euosou,r,ntay
ttosE{ln uEJEsued
--|[Gtl unur;u1rurao6y1
'rPuoS-C lnqasp 6ue[Inpolu nlens r.uelpp sptue>lrp 6ue[ ulpuesrel ralor]uo{oDlrur qelo ue{n{elprpel leref uJelpp eI rsJeluol uep nlle^\ ueDunlrqred sesord e{etu'1ere[ rnlnEuau r.uBIBp loqoJ rJBp le]o efraur1 qepnr-uredrueu {ntuD
'IruoseJlln Duequola6 upleqrueJ>1ere[ r1e>1 zh r{plepe lelqo ue6uap rosues ere]ue leref uelDuepag
-. ., -+r - -^- --+ ^ r,L bbttt, :
+xn:s
Bab 5: Sensor-Sensor Robot
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.
84
E8
.reuos-q elep T-rqurvl
x€leI efuru]uEsed urfrxJ
!!
.rpuosc IIJSV efep uedurr^ued IeqeTf,eAi
feuoscPlPoTrquJV TIecTTer.ras uesedui-IfTx lIecl
xe.refelurr\luesad#/uldo Aor{L-r--J +i-f TleJl
oo 6:0sooS'
IIIv
sq:euogqllrbrqsq :euos6TqtbrqsC :euosct:]r6rosc leuoso:raJJng
VTVC'
za n03 f,euoscclTe-ifas rnTeTour jreuos-O eped >1e:eI p]urureur ure:6o:6
use'reuosc
QQ = luns]cotlc +e]ep enuos le]o] eueu lp unspoqc0l,
oc8 uelBp leJer relru rJBp 0 euEpr6C
(xaH) opoued teltu uep 0 al^q nBlB (ocg) lerel relru uep L olAEprBC
(xeg) epoued relru uep I eilq nele (OCe) leJp[ relru uep Z oilEprLC
lerel lnluaq uelep uulllp IBJBI Bleo - zcapouod )nluaq uPlep u!r!M IBJBI elBo = l.cz0tLc9C
apouod lnlun g0 uep )BJBIInlun ,,0 'elep oueluect0trc9C
L0 nlBlas e^upJepu€ls lsrpuol eped 'Jeuos-c lnJn JouroNll-0tvcreuos-o olz(ec
cdlolseyl lnrn JouoNlJ-0(ZC
cdflolsey\ L{BlepB euuauod cl0tLC
loled le^ b3tOC
!soulsec!Bt!hol^E
ralorluo{or{u u)d e{ r8uos-o IrEp {urs[IssruroJul B]Bp lo{olord z IaqBI
xeH Inlueq urPlep I upp z el^q ePPd uelurrryrPeporred rspruroJul 'c)g {n}ueq LuplBp lprPf P}PP 0 e}^q qelPPe
6 al^q uep 'IpJpf Blpp I a]^q qelppp I e1(q '1ere[ p]pp rrpp Z e],{qrlrlp^\eur z ailg '6 upp '8 'z elr{q PPPd uelurJrlrp uele IPJeI rspruJoJul
'uenfnl lnrn Jor.uou eped plnd upDlrr.ueq '00 ntrp^ ')d/Jelspw relorluol-orlru qelppE upnfnl ql NI la{ed pppd PIpI.u 'reuog-q qelppe upnfn]
CI p^uurnleqes plrg 'relorluoloJlru nele )d Irpp upelurured Dunlue6ral
IprpI np]p eporJed pdnJeq uple uB>lr.urJrlrp 6uBrt IeJpI JspruJoJul
Bab 5: Sensor-Sensor Robot
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 ;
BukanI D:Lcalf Seriaf_In ;Apakah = 00 / ID MasterJnz BukanID ;
Lcall Serial_In ;Ambil nomor urut master
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
Inc R0 ;Djnz B, LoopAmbilData ;LcalI SeriaI_InRet
Pe sanMintaJarak :
DB LE,ln,02,01,00,01,02,ODBh
-Lnrt Serra-L:MOV SCON, #52H i Mode 1 RenMOV TMOD,+2OH ,' T0 Mode 2, T1 Plode 2
MOV THl, #0EDH , 9600 BaudrateSetb TR1MOV PCON, #OH ;RET
Ser.ia.I_Out:Clr TIMoV SBUF,A
TungguKi rim:Jnb TI, TungguKirimRet
SeriaI_In:Cfr RI
TungguTerima:Jnb RI, TungguTer.imaMov A, SBUFRet
KirimPesan_Serial:Mov A, #00H
86
L8
'sBJe{ dnlnc 6uBr( erBns uellseq6uar-u ledep e66urqes e)ro1-C ueJBnlayeped Up^\ 0I tuntulslpur e66urq uelen6ued up{rrequeu ueIB VZurnurrs{eru sn:e ueDuep I€dlI ro}srsuerJ '7007CSI rrpp rpnla{ 6uer( B:Bnseunlol rnle6ueru upp ue{len6ueur In}un rs6unyeq VZ€W1 dcuy dg 31
'139 pefueul IdyD rrep r{plurrad-qeluuad rsraluol ue{nlpletu rs6unyaqrur ynporu eped lES6gIy ralorluolorlrtu eletu '7007CSI sesle6uer-uuelep eun66uad qepnureduaur {nluD '(g'g requeD) IdS Blnturptueueleun66ueu 6ue{ 7007CSI )l ue{pun66ueru Iul 70 af,rol-C Inpow
Uod IUyD rnlpletu elep 1o>1o1ordue6uep uep lBnuptu erp)es n1re,( 'erens Jplntueru uep tue{eteru sesordue{nyelatu r.uelpp erp) enp rlrlnueur pl 'lruetu g e66urq prpns Jp}nureuruBp ure>leralu ndureu: 6uer( ruelsrsqns qenqes qelepe ,0 e)ro1-q Inpow
'nluepel rspuo{-rspuol eped repdrp uepnlnqep qrqalre] tue{errp 6uer{ loqor prens IeJe-IeJa re6eqes ueleun6rpledep BDn[ rur Inpou '1nqesre1 rselrlde urples 'eletu-p]etu nele rclur6uedreDeqas 1epuryeq 6uer{ loqor eped e{uqo1uo3 'pJens 6ue1n JB}nr.ueuruep tuelarerl Inlun ue{qnlnqp e6nf loqor 'n}ueuel rse4lde-rse1r1de epe6
70 oclon-o erBns lnpohl
TeT.ros uEsadulr-lTxEJ,dC
1ng 1et:e5
sn: e J,ur-r rX, H.{ 0 #,VErdc+v0'v
dr[vcur
I IECV: sn-zaJuT.TTx
loueu IJcAor{
fs
1,
.1,..,&u-"
v,,t
Gambar 5.9 Nlodul D-Voice 04
vcc
I4 ",,
-L
"i" _.
) a7o
r
t,,V LEo
I
,i
88
Gambar 5.10a Diagram Skematik D-Voice 04 bagian Suara
68
'lnlrraq rp6eqss ?0 e)ro^-q la{BdLuelep prpesrel 6uef uolpq qsnd loquol-loquol ue{eun66uau ue6uepueln{plrp ledep [pnuptu eJB)os pJens rp]nureru uep tueleJetu {n}uD
lenuew eJBcos oclon-o sosord
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
terhubung dengan Cround.
Bc$
t.}&:lF{
6!
ffirpt.r
Ft"dpt.f
Ft. *
Ft.3
Er,*
PT.I
ft.e(sf
,fiIAf
Js
1.
2.
3.
4.
5.
90
e&aa59d't'{ddi*FBAA4A
ResetEtop
t6
'0t'E rpqlueD Bped ruedesntre^ '€I€ZIS upp [90Z-IS/dAV-ISC/29-ISq/[E-ISq Hedas ellec rel-orluo>lor>lrur uelsrs rrpp lerras/IdvD ueBuep leqqeduro{ ILII lprres/Idvf)Jol{auol IJep lno uld ueunsns 'Jelor}uoloDIrur rue}srs rrpp lerres/fUVnue6uep VO a)JoA-C lrpp IeueS/fdVD rolleuol uel6unqnq6uetuueEuep uelnlelp ledep rur sesord InluD 'relorluo{orlru tue}srs epeduel6unqnqrp ledep t0 a)ro1-C 'ue1r1ue ruelsrs eped racunouue e)lol'sJ1euo1o 1eq '1oqor eped erens rgedes 'n1uepe1 rselrlde-rselqde 1n1up
rolorluoloJlltll ueouap teuas/Iuvn Blecos oclo^-o sasoJd
'pnpal uetuelal re6ueptale66urq UelS loqLuol 16BI ue{et 'rrLIIeJeq erens uptueler }BeS 'VL
'uetue>lar rsr ueryeDuepueu Inlun UelS loquol uple1 '€l'uerue{eJ lerne rsrsod
eped acrol-q rssod rnleDuetu Inlun dolg/1eseg loqruol ue>laf 'Zt
' 367r'elo.rluoloolrr.u ue6uep e,{uuerelnrued
sesord seslerp Inlun ders qepns e)ro1-C 'rur deqel eped redueg 'I I'efep Jaqurns rleqtuelEueseureur upp lnqp)uau
ue6uep ruelsrs uelsed uep ,(e16 epou eI rele{es rsrsod qppuld '0I
'uelaltp dolg/1esegIoquol pllq rlpn)eI e,{u1n[ue1as rsrsod eped uedrurstel ue{peJens uel.Ue{ed 'er(u1n1rreq uels loquol ueue>leuad eped r}ueqJaquetuelered sasord lpps Jrlleuou rleqtuel uplp rur qg1 'Duns6uepequeuelered sesord uelBpupueru l6pl JRIB uele qE'I 'UBls
Ioquol r6el sedeletu uep up{eueur ue6uep Eueynrp ledep sesord '6
'ueupleJed sesord uelqueqDueuInlun rueped qg1 e66uqes Upts Ioquol r6el uelsedal uep ue{ef 'g
'BJEns Jaqr.uns ue4;qle6uar-u ue6uepupetuesreq JII{e CE-I e66urqas uels loqluol uelsedel uep ue{ef 'L
'1erne rsrsodeped epe ueueler rsrsod laser-eu Inlun dolg/1eseg loquol uplef '9
Bab 5: Sensor-Seasor Robot
vccRXD SISTEMTXD MIKRoKoNTRoLER
(DST-5rST-51 /DST-AVRy
cND sT-2051/ST-2313)
__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
5*-
92
'z1>l V nlrp{ (qepual qrqel 6uef eler Durldrues D{rlrureut }ruerug[ !sra^ ue>16uepas 'zHI I eler Durldups Dlrptueu lrueur g rsJa1 'WgI-7007CSI nplp WB-tgg7qSI ueleun6Dueur 6uB,{ e{u-lasdrq) rrep uplpp-eqrp 6uer( lrueu 9l rsrel uep ]rueu I rsrel sple rrrprel 70 e)lon-q Inpow
?0 aclo^-o uoruol l uPleueleoue6
'reuaq ueEuap eurrrelrp plep plrq e L lV Z0 g0 €0 l0 €l I0 00 Etqplepp e{uueseleq e{eur 'se1e rp uelurrrrlp 6ue{ qelurrad >1n1up1 'y leqelue6uep Jenses ptpp Iololord ednraq y)v seleqr.ueu ueye t0 a)ro1-q
0 = elep ueqnlnlosal uep lBlolulns l3or{crorrSDo9VH'eleo rsl
y3v opoy90L.|eluuod
elep )aleo DuBruedqlDuatuals^sqns lnJn oNLOJoqunN osJnos
uals^sqns olfl.olesJnosJalseN lnJn oNTOJaqunN uorleullsac
(ra11o.r1uocorc!yI/Cd) ralseyl - gg uurtr0ue6 6g00ol uorlBurlsaoelep lolBo lel\Av3tJOpeeH
uEoueJoloy!e!!NralsBu\l/3d o{ oclono uep B}Bp ueuflJlDuod
DO a4ory-e yep epp ueu146ua4, pqet
'70 a)lon-q prpns uprupler letuelp rrpp r{ppuer e1,{q qelppeg-a1 et/{q uep e)ron-q erens ueurelal }e(uele r"rep r66uq ey(q rlqernaru
Z-a{ a},{g 'g-a1 ey{q uep 1-a>1 eytq ledepral uele n}ueue} }pueleeped uelar nplp nlueuel leurplp eped relnd qelurred Inlun snsnqy
'euBuadupl'upyal nplp 0o 00 lel.uplp rslsod nfnuau uep (rte6) "rB]nd epou epedpppreq {n}un (19 n1e1as lur rsJan eped) I }nrn rotuou ue6uep 70 e)ro1-q a{ qelur:ad uelur:r6uau ( 1 lnrn Jo(uou ue6uep reloJluoloJlrtu uelsrstut teq u:elep) ralspw B,{uruB 6uert 93 00 Z0 g0 l0 00 I0 €I EI 1o1o1o:dueDuap upynlppp 00 lpruple eped erens ue1;ple6ueu Inluf) :r.{o}uo)
Bab 5: Sensor-Sensor Robof
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
. DATA
l
Blok Blok12
Blok2400
94
96
xcv elep TTqurvjacro^-o a{ qelur_rad faxed urr.rTxl
euel-rad lTuau T leureTv;-relnd rlP?ur-rad,
el,tqt=elepouE[uedj
NJV elep TTquViosro^-o a{ qelur-rad ?aIed uTlTXj
!
0 f€uIeTVldols qef uT-rad J
a?^qt=ElepEue[ue6l
aJro^g = 1a5-reJ,l
XJV elep T-JqurVJecro^-C ali qelur"rad 1a{pd urrTx I
!
0 feuIPTVlnf ual-ral leueT€ ueEuap ueliou qe?ur-rad i
al^qe=plPpEuE[uedj
ecro^C = 1e6-reJl]
$ du[rTer.reseleoTrqurv TTPcIeleq?a{Pdurr-zTx TTer.I
r{96# ' t+.raJ:]na l\or{00# ' z+roJ:l:n8 ..IouZ0+
/ T+.aal:l:n8 Aotrd
e 0+ '.raf JnE AoI,iT0#'umN1a6-ref,, AoI^I
qtT# / ad J,1a6.reJ /lotd
Ter.ras€legTrqurv TTeJTpfeclaledur.rrx TTecT
q00# / t+-lalf ng 1\oW
00#'z+"re]JinE ]\or[L0# ' T+-reJ:J:ng l\ow
t0# /,raJ:l:nE AoI{T0+'urnN1a6-reJ, AoN
qg14'ad. ;1a6:e6 1!oW
oEocsE doJS HV,lNrUEd
ure{a6dooT'}tT1aqJaluno, zulT{Tlap-i- ETao TTecT
: ue{aEdoo.l0zT#'{Tlaofalunoc l!or[
TeT-raselecTrqurv' TTeJIeleolaledurr"rrx TTecT
q00# / E+.ral:l:ng 1\or.{
00# ' z+-raJ:J:ng AoI{?0+ 'T+jraflng ^oN t0#'"reJJn8 ,^'ow
T0#'urnN?a6re& AoI^Ir{tT+ 'ad Jta6.reJ AoN
,IINS]T Z VhIYTUS I{\DIE}I SSSOiId
Ter-Ias-?ruI TT€c.l:1.1e1s
t.r€ls dur!.I00 6:0
soo3'
r{ET O0S X,tS
sG surg-JalunoJsc {r1ao-relunoc
-ralJngsQ elecunslicaqcsO urn1gle6:e;sO add;qe6:e;0t 6f,o
arro^.G = lab-reJ,J
UlIIX\aAEg VCONIH VJ^IVJESd ,lINSfi T IUVC MOJ^I UV,tOd HV,INIUSd I
9Z
T
Tso
T
II
-
ti
Bab 5: Sensor-Sensor Robot
Ambi lDataSerial :
Lca11 Serial_InCjne A,+lEh,AmbilDataserialLca11 Serial-InLcalI Serial_InLcall Serial_InLcall SerlaL fnLcall Serial InMov B,AMov R0, #BufferMov GRO,AInc R0
LoopDat.aIn:Lcall Serial InMov eRO,AInc R0Djnz B, LoopDatalnLca11 Serial_InRet
KirimPaketData:LcaII AwalPaketMaster
Mov R0, #BufferMov A, @R0
Mov R7,ALcalI SerialOutCS
Mov R0, #Buffer+1LoopBufferout:
Mov A, @R0
Inc R0LcalI SerialOutCSDjnz R7, LoopBufferoutMov A, #00CIr C
Subb A,ChecksumDat.aLcalI Serial_OutRet
Awal PaketMas ter :
Mov A, #STxLcall Serial-OutMov ChecksumData,A
Mov A, TargeLTl4)eLcaIl SerialOutCS
Mov A,TargetNumLca11 SerialOutCS
Mov A, #00LcalI SerialOutCS
Mov A, #01Lcall SerialOuECSRet
Init_Serial:MOV SCON, #52H ; Mode 1 RenMOV T1.{OD,*20H ; T0 Mode 2, Al l{ode 2
96
L6
OOW.INOD.I
OH'IOT,T
surE-n66unJ,surg-r{Ppns ' oJJ
doddoddoddod
: surE-r{epns
d*Fvrq.C
:5urg-n66un,1
-ralunoc lTq 9T apow faurrJ,J
01IJ qlasHd,{o+ 'O.r,t Aor{HOEo+'oH,t Ao]/{HI Z# ,qON,I, .\o}{
01,1 qsndOHJ qsnd
NOJ,I qsndOOI^IJ qsnd
SurE-1{eTeq
1a.u{T1apT-n56unJ,'Sug-"ralunoJ z-ule
Sug- eTaq TIeoV:111ap1-n66ung,
0020#'surg-relunoc ^o,tr :1r1ep1-de1a6
leEY ' Pleoums>tcar{J .I\oNeleoums{car{D /v ppv
?no-Ter-ras TIecT: sclnoTeT"ras
1auI-U f TJ
dNSS,V 1IONuT-TeT-resdooT'IU qut
: u1-1et:agdoo'yIU fTJ
: uI-TeT-TAS
l allI.I f TJ
urr:1yn65unJ,IJ quc: urr:ryn66un;
V,dNSS 1!OI{IJ fTC
:1no-TeT.ras
JEEH00#'Nocd Aor[
TII'I qlasHC,{o#'TH,r AOW e1e-rpne8 0096 j
Bab 5: Sensor-Sensor Robot
Sensor Penjejak Garis
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
t
98
66
'lnlrreqre6eqes nlueuel rs6un;-rs6unJ Inlun rsBrJpA re6eqreq rBr{undruatu Jed\olloJeurl e16urg plleq nele 16-JSC 'te{ep leref uelep loqor retryes 1p lelqo-Ialqo upepeJeqe{ rslelapuetu In}un e6n[ rde1e1 's1"le6 rsle]epueur {n}uner(ueq >{pp$ Jul Josues rselrldy 'toqor eped nluape} mpns-}npns Ip up{-{e}el1p ledep Jul Josuas e66urqes uBEuBsBd ednreq ue{nq 'qesrdrel 6uer{
1e[e[ued rosues uelednreru reaolloJ eurl e16urs nele 1e66un1 sue6 1e[a[ue4
lB66unI sUeC >1e[e[ue6
Dulsuag aut1 AI e?pq 9I'g requeD
'srre6 upleqele>l rpnses rJrI e>l uBpueuel e1 resa6rp ledep BEn[ Dursuas auq dl ptleq 'rs{a}epp 6uert sr:e6:eqe1 :nle6ueu {n}un uelDuepeg '(Vt'E requeg) }oqor Llnqn} depeq:e1e{urrrp ueqeuatu {n}un ueleunDrp 6ue,t Dursues eurl UI p}taq uep rereds6ueqn1 rsrsod rnleDuau ue6uap ue{nyelrp ledep rur uernle6uad 'rurp qrqel
]nqasJal ueqeqnrad rnqela6ueru up>le loqo: e66urqes nfeu qrqal Jnlepledep ln6uns 's1re6 ueqeqnred uodsaratu ledar qrqel ledep rosues re6y
'lBderqrqal ]enqrp snrpq rosues uodser eletu 'r66uq ueledecel ue6uap >1era6req
6ueX loqor eped e,{ulrleqas uep iequpl qlqel }pnqJp snreq rosues uodser
8t_vos0sdor
:eceds 6ueqn1 6
Bab 5: Sensor-Sensor Robot
Gambar 5.16 DSF-OI Versi 1
DSF-01 V1 dengan jarak deteksi 0,5-1 cm dengan bentuk fisik sensor
yang mengarah ke bawah berfungsi untuk mendeteksi garis pada bagian
bawah robot.
Gambar 5.17 Posisi DSF-OI Versi 1 pada robot
untuk DSF-01 Versi 2 dengan jarak 0,5-3 cm, sensor ini dapat
mendeteksi garis dalam jarak yang lebih jauh dan dapat diletakkan pada
robot yang lebih tinggi Posisinya dari permukaan lantai. Sedangkan DSF-
01 Versi 3 yang memiliki jarak deteksi 0,5-9 cm lebih cocok digunakan
untuk mendeteksi objek secara horizontal. Sensor ini dapat diletakkanpada sudut-sudut robot untuk mendeteksi keberadaan objek di sekitarnya.
Dibandingkan jenis ultrasonik, sensor ini memiliki harga yang jauh lebih
ekonomis.
i
l
It
100
I0t
'0 elr6oJrequple upJpnlel 'rsprpdruol ue6ue6el qB^\eq rp epeJaq uBunfe leps uep
1 elrDopeq uple uprenlal 'rsereduol ue6ue6el sele rp BpeJeq uBun,(B
lees 'reseq 6uef 116o1 ue6ue6el ueqeqruad rpefueu qeqnlp ue{p }nqesre}ueun,{e 'roleredu:o1 ue6ueq 'JeloJ}uo{orlrru rrep rg6o1 6/1 qalo rleuelrpledep 1epr1 e66uqes [)eI 6uef Eueluer tuelpp unfe6ueu er{ueq }nqesre}ue6ue6al ueqeqrued 'untup1.1 'ue6ue6al ueqeqruad nele {rr}sr1 1e,{ursrpelueu prurJa]rp 6uer( e.{eqer qeqn6uaru 6uer( rolsrsueJ}o1oqd ednreqeurpeued uer6eq eped uel6uepes 'Ielqo e1 efeqer uelrurrr6uar-u JIt{enlples 6uer{ qeraup{ul qEl qenqes rsrJeq reeuBured rsrs 'erurJeuad uep:ecuBu:ad uer6eq sple rrrprel e rsren e66urq I ISreA IIeq tg-Jsq Inpow
rc-CSO fipo6 4o1g ue$erc GI'S requeD
'e1nd qneI qrqal 6ue,{ lereI uellrseqEuar-u uelerur lenl 6uez{ uBrerued 'Z uep t rsren uelDurpueqrp }Bn{ qrqel qBJer.up{uruere>ued e66urqes er{ueuruaued reEeqes Zgl_g€g-SdOI ro}srsuerloloqdue? OOVVIVSJ qpretupr;ulCgl:amod q6q ueleunDDuaru E rsre1 IS-JSC
Toqot eped € lsraA IO-JSO lstsod gl'g reqlueD
(--------------i......----.....?
Bab 5: Sensor-Sensor Robot
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
l$-
102
€0r
'lnqesJel
Ielqo Jespp puJefi\-eruel\ rJep r{purel }pn{ Eunlrq6ueu ueDuap ueln{ellpledep euJpfy\ nlpns ueleua6ued '!pef .nrlq uep ,nptq ,qeleur Jesepprue^\ uauodruol rJep >lnlueqJel nlelos yalqo derles rrep eure.{\ rnllru}S
o€z-sDluereuaqay pqel zz.g requeD
Lr+i.Jl,HHil.HH
i.lrillll,iillr leiillIHIH
+11lEHIHII
'1Llliri*ff .l+9r,-.1II
IdAr aE{}t0sl"(}r{duli{di} sHl'tvss A}ilBt]&EUJ tndrftot"s0s
'ts uep 0s plel rslpuoy mlelal.U zH{ 009 ne}p%1OL upp 'zH{ 0ZI np}e %OZ 'zHy. ZL ne1r- 7o7 rpelueu e,{uurnrursleruBlels rnlep ledep e6nf 6g7gf,I Irep renle{ 6uer( rsuanle{ upJesag
'uelJrlletp lnqesJal lodluo1a1 EursBru-Burseur lees96ZS)I ueJenle{ uer6eq rp In)untu 6ue.( rsuen{a{ ueJeseq-upresaq rnyn-6ueur uep eporpoloqd lodluola>1-1odruo1e1 qrlrruatu ue6uap up{nyplrpIul IBH '0€ZS)I eporpoloqd qalo eurrralrp 6ue,{ (teap) Durueq uep ,g'g 'g er{eqp) qeLuel lpn{ rs{e}epuau ue6uep up{nlellp eurea ueleua6ua4
O€Z-S)1 uetietq 4oE tz'g requeD
l+I trl tlt-l
i+- I
'rsuan{e{ uerBsaq rpefuau Lleqnlp eporpoloqd qolo eurJe}rp6uer{ snre qeual 1en1 '(;apaauo) frcuanbat! oJ JuaJJn)) rsuanler; a1srue qeqn6uad uer6eq rnlelaw'sruB r.{Br.uel }en{ rpefuau rpefueu qpqnpuplp eporpoloqd Llalo erurJalrp 6uer{ r{pJe{.ue{ur efeqec r.{Burel }pny
'esupp ZS lndur eped nluagel e46o1 rspuol uplrraqr.uau ue6uap repo)ap
J+U*4U413{*tr*n ba.r g-*1gua.*n 3
#Bab 5: Sensor-Sensor Robof
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.
Tabel 6 Pengaturan Skala Frekuensi
SO SI Skala frekuensi Outnut0 0 Power Down0 I 2%
0 20%I t00%
r04
!:, ;
eD6rmras pporred rplru upqeqnred upllpqqp6ueul uelp 6ueppl-6uppplesrou pl{uppv 'r66un 6ue,{ uerlrle}e{ uelqn}nqtuetu 6uef rse4ldp In}unuelnlplrp Jul IeH 'Inep deqas tuplep reloJluo>lorllu eI Inspw 6uer{ eslndqelunf Dunlrq6uau up6uep uelnlplp rsuenle{ relru up6un}rr{rad ppo}ew
epolrad ue 6un71q 6uad epop6 €Z'g requeD
*3{H . {te*q 8ffi ffi**{ * $t$u'{ a"{'rmxu**qa"t3 t}'ftr#$[ ]
'g*txq e"Sxt*lp*$$e{* E $#{I Huu,qrmnla$ ; r
'qeloredp qplel rsuenle{ rplru pleur 'LlL = J uperuesred ue6uaq'slu I nlref 'rrq1e:eq eporrad nles qpleles reseles ue1e1e{urp ledep qepnsptup^\ ueleua6uad sasord '97'g reqrue0 eped qoluo) 'rslelaprel rsuenlerJsnllrs nlps qeleles uelnlepp Euns6uel euJpt\ ue;eue6ued sasord euerurp r66uq 6uer{ uodseJ uplqnlnqueu 6ue,{ eure^\ rsle}ep rselrlde {n}unueleun6rp 1ul IpH 'g€Z-n)q qelo uplrpnlelp 6uBr( rsuan>le{ rJBp eporradreqal Dunlrq6ueu ue6uep upln{elrp eporred relru ue6unlrqred ppolew
'epoued 1e1ru ue6unlrq.rad Bpoleu upp rsuenle.g rplru ue6unlrq.rad epoletun1re.( 'ur sasord Inlun ueleun6rp 6ue{ epoleu enp epv .lul 1npotuqalo uplrpnle{p 6uB{ rsuenle{ rplru npqep r.{lqelre} Eunlrq6uau snrpqralorluo{oJ4u e66urqes rsuenyer; ednreq qelppp 062-l1)q rrpp uprpnley
'JelllJlp 6ue{ nrrq nele 'nefrq 'qeteru puJpn\ ue>ln]ueueuledep gez-n)C 'uerlnuap ue6ueq 'leqpl rpnses rsern6rguol ue6uepES uep ZS mlpletu eurefr\ rellrJ rselrlle rnle6uau ledep e6nf gg7-g3q
nBlrr.{ rellqluedIIrellr} EqUBI0I
rurq rellgrusdI0qsJeu Jellgruod00
JII{B BUBA epolpolortrdtsZS
{S!il{ *nt "f6-fd
ffi
BUJBil\ relllf, uurnlu8ua; 4 1aqu1
Bah 5: Sensor-Sensor Robot
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
'lnqasrol lqap nlps eporred Luplppepe 6ue,{ eslnd qepunf re6eqes pplel 6uB{ rsdmelur qeprnf Eunirq6uauuple relorluoloJlruu e66urqas uplJq{elp uBIp Ieurelsla rsdnralul '[e1epsaso:d pruples '0 reurrJ ue>1eun66uaur uB6uep Inap nlps ptuplas felepuelnlpleru uele uerEord '0 lpuJelsle rsdn:a1ur ueleunDDuaur ue6uapuelnlplrp Insew 6uBr{ eslnd qepunf er{u1er{ueq Euryrq6uau >lnluD
O€Z17)A ueduap IgS1gtV 4neua4s uetdelq gz'g requeD
'rsuenle{ ue6unlrqradepoletu ue>1eun66uaur uB6uap g€Z-n)e Irpp erulrelrp 6ue,( rsuanlar;Ipllu Bunlrq6uau: Inlun ueleun6rp 6uB{ rselrtde qplppp Iul }nlrreg
:
r
II
CXUCrud/f"lvN3sdUMEE'
LZd9Zd9Zdtzdtzdzzdtzd0zd
L0d90d90d,0dt0dzodt0d00d
Ltd9rd9rd,td0tdZ'Ldttd0rd
il_0J_
rtNt01Nt
0tbIL9Iezt
lsuonloJJ !el!N uernlnouod sosord
Bab 5: Sensor-Sensor Robot
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.
DCLI230.asm:. DdLd
Org 50hCountR DS 2
Countc DS 2
CountB DS 2
Count_lDetik DS L
s0 Bir P1.1s1 Bir P1.032 BiL TO
s3 Bir rLOE BiI INT1LED BiT P1.6
. Codeorg 000hLjmp StartOrg 003h1,1mp EXU r srOrg 00BhRet,aOrg 013hRetrOrs Ol-BhRetiOrg 023hReta
Start:Setb 51 ;Set frekuensi 10KHzClr S0 iClr LED ;Aktifkan LEDSetb EA ;aktifkan interupsiLca11 Ukur-MerahLcalI Ukur_HijauLcalI Ukur-BiruLca1l Dosomething-WithDataSjmp Start
DoSomething_Wi thData :
;Proses pengolahan data tergantung jenis aplikasi;let.akkan kode programnya disini; ------
Ret
Ukur_Merah:Clr 32C1r 53C1r OE
L
t
108
60i
T fexOxs qlas
sdT{s'o+ 'v
V0xE
,dTlts3uf
au Ic3UrfTf,
: jrsT0xE
1euOXE f,TC
{T1aqT-n55unJr'/{rlaoI-?uno3 zulaO}IT f TJ
$ 'o,s,r qur01IJ qlesOJ.I f TJ
0000E-# '0'IJ AoId
992l0000E-#'oHJ 1\oN: )trlaGT-n66unJ,
Oxs qlas5 'o,rmr qur
0#'8 l\oNV fTJ
0z*'>tTlacT-lunoJ AoNqf,o#'oow], .\or{
: jrn{O
v' 0u00E
A,VV,O1IO
ElunoJ# '01IEO
f,n)iosoCE
v'Ouo011
s'vv'080
i)lunoc# '08EO
rnloEOc<ZS
v'ouaOE
a'vV,OEA
ulunoJ+ / 0uso
rn{n
..\OI^I
cur.{OW1\Ord
1rOrtr
qlesTTECl
.TT JqlasfT:]
: n-TT8--Tnx1l
.\OI^Icur1\OW
1\ON.\Ord
T TEJ'IfTf,
qtasqtas
: ne t'lH-rn{n
1aEAor{curAOW.^OW
AOldqles
T TPC'I
Bab 5: Sensor-Sensor Rohot
Latihan
1. Jelaskan bagaimana proses terjadinya pulsa-pulsa dari RotaryEncoder
2. Tuliskan protokol untuk meminta informasi jarak pada D-Sonarbeserta protokol balasannya
3. Tuliskan protokol untuk memperdengarkan suara di menit kedua dariModul D-Voice 04
4. Berapa arus maju maksimum dari LED Infrared TSAL4400?
5. Buat aplikasi penjejak garis dengan menggunakan Modul DST-51 danModul DSF-01
6. Buat program perhitungan frekuensi pada keluaran DCLI-230 denganmenggunakan metoda perhitungan perioda.
7. Telusuri lebih dalam sensor accelerometer, voice recognition, magnet,PIR, dan kompas.
110
ITt
'lerJlsnpur loqoJ-loqor eped uplnlelrp rur sesord B1(ueserg'elosuo) LIBnqes qelo ue{uerDordrp 6uer{ eiep-etpp lrep lndur qeyo-radu:eru 6uef loqor ederaqaq e6nf epy 'loqor qenqos eped epe snreq{el}n(u lepq er(u1n}aqes 6uef rosuas upp eloureJ ednraq lndur uer6eg
'uesnlndel eues>1e1adre6eqes Jolour ser{eq p}rl uele Iul IIeI ueleduasal eped ,unrue;.1
'dnplq InlqpLu eped 1o1o uelere6 rednrer{ueur e66urqes 6ue66ue:au:uep lederaur uByB let\pl '1nqesre1 lplrel eped nluegel snJe uelJrle-6uaru ue6ueq 'loqoJ uelera6 eueslelad re6eqas lolo le^\ey nele aJtAapsnN r6o1ou1a1 uelEueque{rp qepns e6n[ rur lees eped 'loloru urples
'uesnlndel euesleled re6eqes rolour epesuesnlnde>1 r:aqrued upp sesoJr.uad reDeqes lelo sele rJrpJal rur uer6eg'Irue>leur uep lndur prelue rp ue>lqnlnqlp Iul rlepua6ued uer6eq qelnllInluD 'e,,{u1rue1eu uer6eq eped euelntel lnfuel qrqel rsleer uelnleleI.UInlun loqor qelo ueleun6rp uEIe lnqesrel qeloredrp 6uer{ lndur-1ndu1
'JOSueS rJpp lespJeq er{ueserq 6uer{ srler-uo}o erp)esqeloradp 6uer{ lndur ne}p 'elorue: ue6uep er{ulesrur 'roleredo qelurradrnlplau lpnueu uJe)es qeloredrp 6uer( lndur uelJesepreq loqoJ uelera6-uelere6 rnle6ueu: 6ue,{ uer6eq qelepe }oqor rlepue6ued uer6eg
uBnlnqepuad
,oqoa ilepue6ue4 ue!6eg
Bab 6: Bagian Pengendali Robot
-----_--__-_-______--------l
Gambar 6.1 Blok Diagram Bagian Pengendali Robot
Bagian lnput
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
,€1--=-S-
^nr--+f ^ -ffi-H
112
'II'0 raurq elpp rlrle^\au uele lapued rsprnp Luplpp r66uq e46o1 upp ueplapuad rseJnp trrelep qppuer e1r6o1 rsrpuoy .W)d nele uoqeppoN apo)aqnd rsplnpou upln{plrp nlnqep qrqelrel '1ern1e ue6uap Br.rrrragp ledeprulrlllp 6ue,( qelurred elep re6y '1oqoJ a{ rlepuel tua}srs uep qelurredemeqrued prpau reEeqes rs6un;req rur rselrlde Luelep Llereup{ur JBurS
qenuelul untT4adg €'g requeD
t 1e;it; iiun;ir ri+r1; r.".r*fi ff];
l*qry.X!! ;lrl,tfi rirtJir{P*$
L)1..,t j(:l'j*,l!tj r*.::+;1 .,,
€'g reque9 eped ledtuel qradas prsnueru Bletuuodsar renl rp epereq e,{ulecund 41q 6uef Duequole6 DupfuBd ue6ueper{eqec qenqes qelepe qprer.uerJul '}nqesret qeJer.ue{ur qelede rnqel-eDueur nlred e1r1 nlnqpp qrqelre] 'qereruer;ur erpeu rrefeledueu InluD
'g€gTdOSl undnele 0Igg-dl rpadas re11rg ssedpueq Inpourueleun6rp ledep elep rpefuetu lnqesrel 1e,{urs-1e{urs rlequre{ qeqn6ueuInlun uelEuepeg 'rsrnelel undnBur )y eloLuo: qredas erpesJel r.{epns6ue,{ qereure{ur e}oruer ueleun66uau: ledep B}rI lnqasrel qpJer.ue{ure,{eqer uBrBcuBd rpefuau: Blep qeqnDued erpau In]uF) 'e1ep rpefuer-ulnqesral 1er(urs-1e,{urs rlpqtual qeqnDuau uep qprer.up{ul er{eqecup:pluBd rpefueu elep qeqn6uau qelepp IUI eloruer e[ra1 drsur:4
'urel-urpl upp 'q)A')v'rsrlelal rgades {ruoJllala uelelered-uelelerad e}oruer In}un ueleun6rpr1e16ur:es rur prpeur 'n1r euetel qal6 'sruouole upp pueqJapas 6ur1ed6ueX eloural plpp rse>lrunuoy erpau uelednreru qerer.ue{ul BIpaW
i]l: s -r #ire ry tft :. ::r.s., f ;: fi **,r$
!u- ,.t y-" : B "'Q i-.t -
*;
t
r.lEJouerlul e!pohl ueouap oloruou
Bab 6; Bagian Pengendali Robot
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-
,4S KHg
114
9tl.
upxrdruplrp upre erurralrp Eue,{ elep ere., '}nqesrel ,ffifLi:X'Hir'i-e6ued qepnu:edrueur {n}uD 'r{pJar.ue{ur erurraued Inpou rJep e{urre}rp6ue,{ elep lrque6ueu e:er uefeleduueuu ledep epuy rur ruerDord epe4
!s!^alal oloruou UBp eleo euuouod lsBMdV
'recueurad ue6uap srre6as lppq nele 6ueleqra1 6uer(
tedr-ue1 rp pppraq elrqede opuetuol ue6uelrqel uple loqog 'snrn1 sue6eped epe:eq uep uelequeq seqeq snJeq etuueued uep re)ueued ue-16eg 'uBr.{euole>1 rer{undueru lur qeJar.uerJur ue6uep Isp{Iunurol BIpeW
260#+IOA
t60#-EoJd
060#+doJd
680#0
3C0#lceles880#6
sd0#,80#8
nd0#+980#L
9rI0#deels980#9
sv0#OEPIA/AJ,80#s
160#B/Vt80#v960#opohtr JId280#c
960#(elddol)Je.{iodr80#Z
t60#JOA080#IExaIIJoqlllotrExallIoqHroI
(ftuog a7ouag) euqan1 6uefr eTeq uep pqluotls6ung pqet I pqet
'lnqasJal aloruor r.rpp Ioquol-loquol derlesuep epol uelednrau: 6uBr{ n}uepa1 ap(q-e1fq 4nluaquetu ue>1e (y'9ieqr-ue5) W)d r.uelsrs ueleun66uau ueEuep Durporep llseq elep-B]e6l
'efes r66ur1 uelederel ue6uap ]p{ap leref tsp{Iunuroy {n}un uel-nln]lp uep sdqry 1 ueledacel ue6uep yqrl prppue]s uBlpun66ueur tuterpau..r untupu 'qereure:guJ erpetu rlrlrtuetu DuBtuetu 36 ederaqeg 'loqodrlepuay sesord 6ue1ue1 ueselefued eped 1re1ep L{Iqel ueysplatp uBIe rur
uer6eg 'zH>i OV rselnpou uep W)d rnleEueu: >lnlun rs6un;raq 6uer{ .ra1or1
Bab 6: Bagian Pengendali Robot
REMOTE TV
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
ilrl
l.r. n lfi&l] Ft)ttt
, - 1!\'Il(l lnia)ili
\ l'drlt lt.l), Purl l' llrsrler i | \r ,{ unl\
' t\(Dnhl\: I'( h'e.rlnrild "
+ !rbl{.tuilrtxrl\if U l.l.0
DST-51 P1,3
IR RECEIVER(lR-8510 ATAU
TSOP4838)
: fr*:i
I'6n fi I l'qrl r\ 1,P,1)
tlorr tryori L l.ll,
P$rf liFqrt (: l.LL
l'or, ?ilhn tl 1.i.l}[-n*Nr iurno.r
il[({hlt.lsmF+rl'sr,Bi'lqrtl l,I:l)
}*r!Uiltnilll{ia,J.r 5rl - *
L$lrlr Jil&perFr'rtl}ll0rti L&ll)
I'orrrjPoriJ l.tlt)
Rrilj1t\fi--"
116
Gambar 6.7 Deskripsi Nlodul DST-51 V3
LLT
Hdo'v ppvE,V AoI^I
V ,TdG /\O'{: HdqcuI{epTJ
Hdq curHdcruI{epTJ rul]
TdO,V PPVJ fTJ
gV Tn{L+,A ,\OW
H08+'V qqnsJ fIJ
ToclruoJ,Taqei+'uJdc Aow: Toquo[Taqe[{ntunJ
ouoso}{ Iepr1 eTTq
uE>[-FEqeeuT.ralTp 6ue^ apolt
ue)ireqe
,.
!
Ieqel rsr ue{TTdureJrj!
'6uoso)i Taqef ETrgrrPnsas teqel >{n[unJ,l
!
'H08 qeaeq rp apoxl
dooTTE/[\Y-TsTsod
rTST-UE SAiUTf TV
Telfiv-TsTsoddoo.I
E,Idqo,vToquro;TaqeJ,{n [unJ,
doo.Jt+s 'HdL+'v
alourallT rqurv
.ZAluT,T,A TUT
ocl-1Tur
9Znos
d*fvT IED'ITIE3TT IEC'I
xAohITIPsV
cI\du!-J
TIPCV: dooT
TTEsVT TEC'I
:1-re1s
PfecSue Iued
elep dP-rl ]inlun -rarurl Tersrul I
-rolca^ 1dn-r-re1uI 1r-r"g,!
-rolca^ 1dn-r.reluJ T .raurfiJ!
f o13an T ?dn.r-raluJ Teu.ralxE i
Joloe^ 3dn.r.raluI 0 .raurfi j!
folca^ 0 1dn-r-re1uI Teu.ralxEi!
folcaA fasaul
TlaEH8Z+WOE 610
T?auHgT+WOu 5rO
TlEEHtr+r[oE 6:0
T aexHEo+WOu 610
TSAEH E +I^iOlI 6:0l:e1s durtv
woE 610
H000n0E,{o1I
sooJ'T goowS
:rrlaE'.f,uogu
g'ld pppd {nsptu 6ue{ eslnd reqel Eun}rq6ueu6ue,{ 1ES6B1V IJep 0 rer.urf uplpun66uatu ue6uep up>{nyplrp tnqesJa}sasord 'al^q qenqas rpeluau W)d llu{o} upleunDDueru ue{qeuefrelrpuPp 6'td uod r.{elo erurra}rp UBIE 8e8?dosl nB}B 0tgg-ul rrpp le^urs
Bah 6: Bagian Pengendali Robot
DPH, AMovRet
AmbilRemote:AcaIl CekStartBitMov R7, +8
AmbilDat.a:Push AAcal1 BitPop ARrc ADjnz RT,AmbilDataCfr TRORet
cekstartBit:Jb P1.3, $Set.b TRoJnb Pl-.3,$Mov A,TH0Cjne A, #08H, $+3.Tnc CekStart.BitSelesaiC1r TRoMov THo, #00Mov TLO, #00Ajmp CekStart.Bit
CekstartBiLSefesai:C1r TROMov THO, #00Mov TLo, #0CRet
;'I'unggu SCarC BfE;Panjang data bit =
;Ambil 1- bit
;;Geser ke akumulator; Lakukan 8x
13rt:,fbSetb,fnbC1rMovCj neJncClrMovMovRet
Birl:SetbMovMovKCL
-Lna 1]'_L'1mer :MovMovPushMovAnlOr1MovPop
P1 .3,$TROD1 ? t
TROA, THOA, #03, $+3BirlC
THO, #OTLO, +O
C
THO, #OTLO, #O
THO, #00TLo, +00AA, TMODA, #OFOHA, #01-HTMOD,AA
118
6n
e^ulntueTes r-roruaru e}{
u€{nuralTp urnTaq eureTes oJ.I e{
{ntunlrp 6^ rrouaur r.r€p e1ep
.I:)rr-uEsar{ur-rr\Tdoor dutvf,1o'c 3uI
.ra1{efex*ur.rrN TTecv: QCrI-uI-rrx
lauOJrl-urr.rTX,Hd0#,V auIJ
fldc+vo'v c^ohlH00+'V ,\oN: oCT-uesadur-rTXdoo.I
: oSrI-uESadu.t:T)I
1aECJT-IeTao TTBcV
r{e1ur-red-urTfTx TTecvH'T#,V AOtr^I
: ueuex--To s-TnJ-re sae
_::::t_:l-t::t::_r:::: .
laECJT-IeTaC ITerv
r{e1ur-rad-ulr-rrx TTPcvHOT+,V 1!OI{
: T-r TX-.rO S-rnC-rASee
Tf,T)i a{ jrosfnc fasa[) j------ !
4n[un6 I
Hdo I
uT.rTx j
T TcSnV 1
GDT-^eTaGqelurfad-urfrx
HZ0#,v
Te1"le rsrsod
3auT TP3\,TTECV
l\Oi,tr: TEIYry-rSTsod
e){ rTequrexj
1aECJT-.^eTaq TTecV
qelur.rad-ur-tf,Tx TTeJvH8I+'V /loInl
: t:ty-z(e1ds1o-rasae)
-IrT)i a{ ^eTdsTO
jrasagi------ !
1auqCT-^eTao TTE3V
qelu-I.rad-urTfTx TTecvI{dT#'v 1\oW: ueuey-.{eldsTOrasae
ueue){ a}{ xeTdsro rasael___________ !
* 6:0EOOJ'
I'Zd 1TS SU
lau
Bab 6: Bagian Pengendali Robot
********* SUBRoUTINE INISIAL LCD *******IniI_LCD:
SeIb RS
Mov A, #30H ;Kirim 30HAcall Kirim_Perintah ;Acall DeIay_LCD
Mov A, #30H ;Kirim 30HAcall Kirim_Perintah ;Acall Delay_LCD
Mov A, +3 0H ; Kir j-m 3 0HAcall Kirim_Perintah ;Acall Delay_LCD
Mov A, #20H ; Send InitAcaII Kirim_Perintah iAcall Delay_LCD
Mov A, #2FH ;8x5 2linesAcall Kirim-Perint.ah ;AcalI Defay_LCD
Mov A, #08H ;
Acafl Kirim_Perintah iAcafl Delay_LCD
Mov A, #0IH iAcall Kirim_Perint.ah iAcaII Delay_LCD
Mov A, #07H ;Acall Kirim-Perintah ;Acall Defay_LCD ;
Mov A, #0EH ;Display ONAcall Kirim_Perintah ;Acall DeIay_LCD ;
Mov A,#06H ;Mode Increment AddressAcall Kirim_Perintah ;Acall Delay_LCD ;Ret
Kirim_Perintah:Clr P2.LAcal1 Kirim-DataLCD ;4 bit sebanyak 2 xSwap AAcall Kirim-DaEaLCD ;Acall Delay-LCDRet i
Kirim_DataLCDMov Po,A ;Kirim ke Port 0Acall PulseE_Cfock ;Beri I pulsa E Clockret
PulseE_Clock:Push AMov A, #0A0HOr1 A,P2M^r, D, I
120
IZL
To-rluoc oloue] xnlun
Hdo' , -2, acH,{0, , _T, 80
q8 j 0'0 '0 '0 '0 '0 '0 Eoe8 j 0'0 '0 '0 '0 '0 'o sq
HJo' , 0, sGHdO, , 6. ECHdo
" 8, aq
Hdo', L, AGHJO, . 9, EOHJ0' , 9, soHdO
" ?, so
HdO, , E, EOHdo' , z, aoHdo' , T, Eq
: Toquro&Teqe&
uTPT 6ue^ adrl ^uos -
uPbuepec apo{ qpTepe 00 TsTtoq qrseul 6ue^ elep-e1Ee -SLZS-,Od EdIJ TOUJNOC EJ,OI^ISU TOANO,I-TOSNO& TSSVJ
qJT ^eTeci!
xz cJT a)i j
leu+ ,E zula
Hddo+'a Aow: zoJT-IeTao
lauE dod
doo.I-qJ.I- eTaG,E zufoI dod
zocrl-^PTac T TesVg qsnd
: dooT-OJT-IeTaOHgO+'a 1!or{
E qsnd: cJT-IeTac
1aEzoJT- ETaq TTesV
qelurf,ad-ur-r-tx TTPcVHZj+'U .^oli
: qJrI-T s r-reE
lauqelur"rod-rullrx IIPcV
H0c0#'v ,\otr{: oJT-ZSr-rpg
1auqJT-^eIaO TTerV
oJTefeo-ur-rrx rresvV dEiS
of,-lP1ec-urTf,rx IIPDV1'ZA qlas
: ,TA 1IP"TEII-lll'F f, T)
Vvcd
H,{0+'v
1audoNdoa.{Or{
ruv
Bab 6: Bagian Pengendali Robot
DBDBDBDBDBDBDBDBDBDBDBDBDB
DBDBDBDBDBDBDBDBDBDBDBDBDBDBDBEND
;8e;8f
. oe
i99;9a
0,0,0,0,0,0,00,0,0,0,0,0,00,0,0,0,0,0,00,0,0,0,0,0,00,0,0,0,0,0,00,0,0,0,0,0,0r+ ',OFHr'nEU0,0,0,0,0,0,00,0,0,0,0,0,00,0,0,0,0,0,00,0,0,0,0,0,00,0,0,0,0,0,00,0,0,0,0,0,0'Select' ,0FH
Remote dengan Media Gelombang Radio
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.
122
rezL
'plpp rpefueul purrJo]rp 6up1t orppJDuequole6 1er{urs-1er{urs qeqn6ueu 6uef VZ-X1 Inpow ueleunBrp ledepBruueuad rsrs eped 'orper 6ueqruola6 elpp upJp)ued rpefueu 1cr1sr{ofIoqLuol ueuelauad upp ue{era6-uelera6 qeqn6uaur 6uer{ Jollor}uo)leqsr{op Inpour qenqes nlre{ 're11or}uo) ,(of-C Inpou ueleun6rp ledeprur orpeJ Euequole6 rnleler.u ueryepue6ued sesord qepnruradueur {n}uF)
'lapuadradrp ledep euelue 6uefueduern>ln eIBr.! 'r66uq 6uBf rsuen{o{ ueyeunDDueur ueDueq .JHD rp)-uerued uep (tautec) emequad rsuenla{ qplepe Jo}BIrso uep rsuan{eq
ySJ Fefipo6l ue6uap olpey Oueqtuolag l'sz-qrunurcy g.g requeD
nz+cb'ztz{l)g16/€€r uo-Lvllso
]vtuSs vfvo <uotvtnoon:o - ysl
ulAt33luUILLIY{SNVUlJHN
ao-LVrnoor!vsr+ ]vlufs vlvo lHn
-l_.t- ffil]umn ilrmum tlljl]]]]Jiln ]t-.ZHD
V'Z uep 'zHW 916 'zHW €€V qelppp lrloqor rselrlde eped ueleun6rpLunllrn 6ue1 'rolelrso qalo nluapel rsuan>{e{ ue6uep ue>peie6rp ntnqepL{rqalJa} :etueu;ed euelue e1 ueluedunrp urnleqas }nqasJa} ySJ 1e{urg
Bab 6: Bagian Pengendali Robof
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.
*
124
!r9ZL
'(inol ;q1e elepp Ioquolenu;es) uBlelrp 6uBr{ efes pupru Ioqtuo} rser.uJoJur rsrJaq 6ue,{ 1rq g x 9elpp ue{tur.rr6uetu lnsfof 'n1r qeleleg 'urlrlllp up{p etpp p^\qpq uenqe}-rreqrued re6eqes (ZgxO) elpp up{turrr6ueu: ue6uep selequreu 1sr1sr{ofeletu '1cr1sfo[ qalo pturJe]lp (Z?x6) plpp qele]eg '1cr1s{ot r:ep elepplurrue(u {n}un (ZVxO) elep urrr6uau e6nf relorluolorllul ,ql urur6uetu>1crp{so[ ]eBS eped '(6o1eue >1tr1sfof Inlun €Zxg uBp le]l6lp >1r1s,(of In]unt7x0) lrqsr{of Irep CI ue11nfunueur 6uer{ elep urrr6uetu ue{p lrqsr{otelptu '1or1sfo[ qalo.prurretrp peu]tuo) Ue]s qele]es .(tOxO) puetutuo)pels re6eqas elep rurrr6ueru uep 1r\ol elrEopeq IIV uld lenquretu snJeqJeloJluo{or1[u '>1tr1s,{oI rrep e]ep lrque6ueru ur6ur rallorluo{oJlru plrr
1elras ere)os eTep a1ftq y ueultlOuad II.g requeD
edp3l,\,oll)lcv)cv6w>lilmqnq !p {?plJt/N8
{COIJ).IJLqllll'ued i uorlue$vIJV9
3cAJ]AIprmorl)CNCv
r.raldr.mqnqrp {8prJJ/Nc
pusruruo3GI^IJZEN(TVJVC
uebrrBJele)BIUBNuld
4tt1sfro7u14 pendyluoy Z pqet
Bab 6: Bagian Pengendali Robot
ATT
rltr(
-
H H U U
Gambar 6.12 Timing Diagram Pengambilan data
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).
-.. Yr,l
oxza ---!
:-lI\\l
\.i
\itillilil
_E- .,\tItoro'
jt
126
LZI
ZHDT'Z raalacsueq bz-xa lnpow 9l'9 requeD
Ounqnqta7 4cl1sfrof qenqas ue6uap ranorluoD frof-O fipo6 EI'g requeD
'loqor eped epe 6ue( y7-yq burseu-EursBtu letuelea1 ueque6Jaq pJe)as er{uuelur:r6ueru uep Eunqnqre} 6uer( lrqsr{ofleduaal rrpp elpp 6uruuels up{nleleur up{e rallor}uo) ,(of-q Inpow
ranoquoD fiof-e Lpnqas qalo qc11sfrolV ueduap pqor ? lppuay ?I'g requeD
l +,.-o / ' 'JL!'1\'t +/ 'l**' ____:-l
' 1 ,-11./ :\-Y + !jv'
\rl
Bab 6: Bagian Pengendali Robot
Tabel3 Data RF Jogstick
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
Bvte 3 Source ID 72 lD D-Jov Controller
Byte 4 Source Number 01Nomor urut
Joystick/RobotBvte 5 Lenqth 07
01 = Keluaran data dariJoystick
02 = Keluaran data darirobot yangdikirim lewat RF
Byte 6 Perintah 01102
lsi DataChecksum
128
6ZL
renses VZ-X1 up6uap Dunqnqral uep loqor 1e1o reDeqes rsDun;raq lul IpqLuelep IES6SIV ralorluolorlru up{pun66uar-u 6ue,t p63 oqod p}leq
Dd) oqoy e77aq ueiuap ?Z-XO ueDunqng /I.g requeD
ndc o80u vltfo
'loqor rJpp lplo re6eqes relorluolorlrru qelo qelolp uep loqor eped epe6ue( y7-yq qelo BurrJelrp Jellorluo) ,tof-q qelo uelurrr>1rp 6uer{ >1cr1s-r{of elep eueure6eq rrefeledtueu ledep ppuv 'rur lnlrreq rselrlde epe4
Jollorluo3 rtof-O lrep ElpO Brupouod lselrldy
9',Zdo'zd,'zd9'ZdL'Zd
tuo33sc ,z-xoLIIC
I.Unsl)aq)z[ eug0000 nlPlesI I el^g0000 nlples0t aug0000 nlBles6 e]Ag0000 nlplasB eug
Z lrq BbDuq € Iq IrBpUod e4xg e>116o1 rsrpuoyZ e],tg
ZOqelulred sluer9 aiAB
(.racaog oqog plleq eped efueq) loqor lrep elep uerpnlay
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
. CSEGOrg 00
LcaIl InitRecTRW24Clr CSSeTb CE
Loop:Jnb DR1 , $Mov R7, +PanjangDataMov R0, #BufferTRW24LcaIl LoopTerimaDataLjmp Loop
;KUMPULAN SUBROUTINE
.************************************************************'subroutinguntuk mengirim data TRW24 dengan pengalamatan sebanyak 2 byte; - R6 = alamat. byte 2
; - R5 = alamat byte 1
; - R7 = panjang data
SendTRW24:Mov A,R6 ;Kirim byte 2 alamat tuiuan
BIT P2.1.BIT P2.5
;
t130
rteL
J,SEef Pceurr-reJdoo.I ,Lu zula
OE JlrIv'oua 1\ol{
eleoeurrfeJ, TTecv: PleOEur-lfaJdooT
$'tuo aNrTIIC SJESEf, g.IESSJ U'IJ
eleobue tued+ 'Lu AoI^I
7ZMEJ,-rof linS+ ' 0E notr^I
: \rr[r'uE,tr
efep .raJ]nq Teae ?eueTe = 0E - je?,ep 6uE[ued = LE - ]
TZMEJ, elep Eur-rauau {n1un aurlnofqnsl=====.1
rsu,{IUIX "ITVJV
: NV)I-I,\IIEI)C1 Vfr1
EC A.ISS: VJVO-hIIUI)
NV)I-,{IEIX dr^Ilsel orEo
EJ 1ITC
ax8r.{rEIx 'a
VJVOTYTJTXTJ
3,V,IVCV
TXTJ
8# '8a
$r-i0 8 #
HVJN]Ud-WIEI}
JEtIdod
zNtqETJulc
a'lEsAOI{CTEE'ID
: xSNrur)AOr{
HSOd:,{TEI)
l altcsq
A&ESzuCfr.\Or{1I1J
zutfr'11VCV
JI]IAOhI
,zMEJpuesdoo.l
TXsc,a,sac
? ZPIU.I,PuoSdoo'I ' LEVLLVU hI-LtlI)
nv
080'v
uPn[n1 leueTP T al^q ur]rx]!
,zl,1E[.ra]:JnE#'01I /\oNeleo-ur.rrx TTecv
gu'v ,{oNEleq-uT-rrx TTecv
Bab 6: Bagian Pengendali Robot
TerimaData:PUSH BMOV B, +8MOV A, +OH
TERIMASX:CLR CLK1SETB DATASETB CLK1RLANopNopMOV C,DATAMOV A.O,CDJNZ B, TERIMASXCLR CLKI.POP BRet
; SUBROUTINE UNTUK INISIALISASI Dx-24 / TRW-24
IniLSENDTRW24:AcaIl IniL_TRW24
Acall Ambif-TabefClr A.0Acal1 Kirim_Printah
Ret
InitRecTRW24:AcalI IniI-TRW24Acall Ambil_TabelAcalI Kirim_PrintahRet
INIT_TRW24:CLR CECLR DATACLR CSCLR CLKI
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
I
I''T
132
7
e6r
6ue^ {orls^of -rourouueouap rEnsas j loqou-rouroN00000000
0000000000
ZHJ^I 0T x 0 + ZHDV'Z Tsuan{a.rdl
gpo fa1vlod j(TT0) Te?s^a) zwn 9I!
sdgl^I T !
1s:n8lcoqs jIauuer{3 aTOurS l
aTqeuE .rotE-rauae JUJ dTr{c No a f,uc lTq 9T i9T = I{16uaT ECov j
8T0000000 ao
8TTTTOTTO AO
aTT0000T0EO:,IINI_'ISSVJ
.IE1Iu,tdo+vo'v cAoI^I
0#'v nor{:.IEAVJ-'II8WV
,IEENIE]X?ZA{E,I_,INI,S ZN.CO
.IIJdO JNIHV,trNIlId-WIlIIX'I'IV3V
Teq€[-Trqurv TTEcv: ,{IUIY7 ZMEJ_JNI
,IINI-TEAVJ+'}r,tdG AOr{Z+,9 AOId
qelu-Ifd-lur-rrx rlecvoal^gssa:ppvTHJ*'v Aol^I
qelur-rd-urr-rrx TI€cvTa1^gsse"rppvTHJ#'V Aol^I
qelur-rd-urrfrx TIecvZa1^Sssa.zppVTHC#'V 1!or[
qelu-[rd-urr.rrx TIesvtel^Essa"rppvTHC#'V 1!oN
r{elur-rd-urI-rrx TIecv,a1^gssa.rppvTHc#'v l1'ohl
qefur]d-rur.rrx ITeDVOal^gssa-rppvzHc+'v ./\oli
o0uo0sn0so0so0s
n0sn0so0Bn0En0s
TO
CNgue{eun6rp
0el.i{SsserppvTHJT a1^gs sa-rppYTHJzal,(EssalppvTHJte1^assarppvTHJ,41^ES sa-rppvTHS
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
Dtt.TA *()B{} Ii}l}I}C DRIVEIT FSRI'ISP ProgEmElaE
Prr{
lrfr{rrd ljs$ S$r$firP{d
llltrsoolc Y}*nrdEderfort
B{tl{rt Cotrodortl(b l2C f{rtfitEEI'ROH
Gambar 6.18 Delta Robo CPU sebagai Otak Robot
Agar otak robot ini dapat berfungsi, terlebih dahulu harus dilakukanpemrograman pada mikrokontroler yang ada di dalamnya. Pada Delta
DELTA ROBO KITSDELTA ELECTRON]C
E,!oi
134
eel:I
iiI,1
.j;i
',{1ddns remod uB{JI}IV
'dx s^\opurlA {nlun }eq'dx-dsl L{D}pd ueIuEIer'uPr{y rulsy ue}pnq 0'€wDd dsl arpn\uos up>lupler
ueqy ulsv uelenq otutuetfiord dSI eua4s 6,1.9 requeD
'6I'g JeqLueg eped eurels epedepe 6uer{ ueuodruo>1 ederaqaq relEuereu ue6uap ue{n>lplrp qepnuue6uap ledep )d uod 1e11ered rnleleur reunuBr6o.rd un6uequreru InluD
Tt----r
o='rf I
,,il Tr^f-
IHOdIdE
aoI]3NNO] SZEO rOZT ONH E NId .LUOH5
T f5 1 ]Hbt
]}VJEf INI H]I,{I,,{VH5OUd-dSI
E
J
1H0dNUd
ET}DT)
zso
-]I ]H
9.J, 9U
b,JT bHEA EHz^ z,rJT1 TH
IEb
zr
TZ,
Eb5I
uod lollBJed !nlelau ueJoord peolurnoo
'gSD trod nple )d Uod IellBred rnlelatu ue6uap n1re,{'tE-lsqruedas IES6SJV JeloJluo>lor>lrur uelsrs nplp Dd) oqo5 ellaq e{ )dr:ep (tuer6o.rd peolumop) urerDord uesrlnuad sasord sruef enp ledepral'Dd) oqo5 ellee rlBIBp epe 6uef tEs6g1y relorluo>lor{rru rrep WOddE
qspl-j rsr6ueu: Inlun uplnlplrp ledep dSI BJB)as tuBr6ord peoluly\opsasord uep rur god eped ue>lDunqnqlp ledBp reruruerDord 1e16ue.ra4
'lnqesJel uenlradaq Inlunrs6unyaq 6ue,{ (6unuuer6or4 urels,tg ul) dSI pod erpasJal Dd) oqo5
Bab 6: Bagian Pengendali Robot
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.
ffitii;fliiti# i;f i,ry.:,xta"B.l*-t :i:i,,fi,,:Look8iF:iiI i:r; ,ii;;; ;il;ilti*tlf r*'Il7 :r!i,s..tl{r*,iEft
: lryrfieloe tr a i!;i;i:::i:i;:: I slAnffUfA, Ii .i ir .i ; ;l :i :li:t :l :r
aernrO fite .l*;--:.---Ji!ii:i! i i: :;:i,: i:r:ti:r efout.i
,:l:.:l::l :l:::: :: It;,*;:l:tr;i:i:ll!!ll!tlt!!l!!#'
I liiI.{a I'itr ir r;i; :i:J ;: t:t r:: :t:tr.tl
$E*Hffitrhq x[, .bb i]il:: ;r::.;: .i ::::t ::l l:r !l ail
Gambar 6.2O Asim Khan ISP Programmer
Download Program melalui USB Port
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.
L-Lm,
136
_Ei
'epuy >looqelou/)d eped e,(urrrpuas ue6uep le]surre] ueIB 0.ZAdSI-DC {ntun relrrq gSD uep gI., olpntSUAV uBr6ord uelrsele}sul _
0'ZA dSI-Dq ueleun66uauue6uep ure:6ord peolu^\op-uetu Inlun qe>16ue1-qe16ue1 qplBpe ]n>lrrag
0'zA dsrDQ uod 4ep7 epl requeD zz.g requeD
0'zA dsrDo lnpow IZ'g requeD
'dSI IIuIel ueleun66ueu6ue,{ 1aur1y Jalor}uo{orrrru tup)pur re6eqreq e>1 urer6ord peoluanop-ueuInlun ueleun6rp ledep 6ue,{ ggpl reruruBr6ord qeyepe 0.ZA dSI-Dq
Bab 6: Bagian Pengendali Robot
Buka program AVR Studio 4.76 dan pilih Auto Connect pada bagianTools - Program AVR.
: l$et h{jrd. 3ri}d ,t,i*:,= * **l-"il 8,rii ui#i,,:I trael*Figbi+d rr,i,
Ioo,, ig::^$.,..S:F......ail_'l8tE%..
ri'ririo gp;Gcr:, .. ..:j
! nAiiCEsl$ilpqrRdE,! 4r(e nllri lpgrigE,.
;i fiemr *ts usg,"a*
. r.3 Jrrglfl lpg'ine- Si\6efB{rn*r
:lr -.l Qpti*nt, ,
:ffi,*L#
AVR Studio akansecara otomatisyang terhubung.
Gambar 6.23 AVRStudio V4.16
mendeteksi port USB yang terhubung pada DU-ISPdan sekaligus mendeteksi mikrokontroler target
,e ;DrqsiFlM:tet8fts:kdd. rurcq"iryft w ,
oekil 5$tu8@
' i; : ,^.91*:.9.:l1,1.i
i:i,ldft.El €ad
Fq]@kd&dl&gdsdiv -
iiF;;a---**"*--- -**:1
iI
ii
;D@@!54'.ffisPd_[dmffi&,milt&d:Etw'$s..@E j0.@ L(
ti,l iY$ tt;set.:r si!Jii
*li rve.3nery:t{cisi;n'ii 4te Qtn*rh Sts*,a
138
Gambar 6.24 AVRStudio mendeteksi mikrokontroler pada DU-ISP Vz.O
6€r
uolslA apoD prezql4 gz'g requeD
'upleunDrp 6uer{ relor}uoloJlru srueI uelrensasuep 1re[o:d prezrlA opo) uerpntue{ slool qrlrd 'epaq:eq elrqedy
'1e6re1 ue6uep erues6uer{ relor}uoyoJyrur ueleunDDuaur Irqurprp 6ue,( lcaford uplr}sed
'peford qoluo) re6eqas salduexE/U1y1) raploJ eped epe6uer{ 1te[o.rd nles qeles 1r66ued uep uorsr1 epo) uer6or6 1r66ue4
'uorsr4 epo) ueeun66uedInlun uelnlelrp 6ue,( qe16ue1-qe16uel lnlueg 'nlnqep qrqelrel xeqInluaq eI ) rJep elrduoo seso:d uelnlplrp BEnf rurs rp 'peolurnop sesordurplas ') eser{Bg Luplep uBr6ord e)rnos In}un ueleun6rp eu{ueserqrur eJp^\UoS 'uorsr1 epo) areagos ueleunDDueul ueDuep uelnlplrpledep e6n[ uerEord peolumop sasord 'olpn]Sdnv ueleun66ueu urplos
'1eDre1 JalorluolorlrurLuelep a{ uerDord uelsrlnueu up{e dSI-DC upp r-uer6or4 IIIy
'ue:6ord uer6eq eped xaq elrJ peol uep uet6ord qeJ_ qllld
Bab 6: Bagian Pengendali Robot
Pilih File, kemudian Cenerate save and exit. Simpan nama file barusesuai ekstensi yang sudah ditentukan oleh Wizzard.
Pilih Project, kemudian Configure dan After make. Aktifkan Programthe Chip agar proses programming langsung dijalankan saat Prosescompile selesai.
dl This plq{r$ rrEs lriduEen bY tle
1# ElEck siffinture '- fl@l Erase l* P!*eNe EEFB0M ? ysry
rle, 1f,compiElleetuB,,{i&e AltshlahFl, :' :,
0 $ogram the Ch[ r !reate Usert Pmgrem
r Mirge datE *ffi a.Rgfi Fto ts Fusil PflsmmiFg
thip Prog,amir{ Odiffi: sx rr"o ,
f 5ooffi- -:J ,, ii PEsIEm FE B(sl
' FLASH L**,8ile : '" r ' -r - '
I lj EoP,,xu,*ion l
I r:"- Proqmfuire disabhd :
:,' Fros.lY,Id SltEititr di|*led
;'Eoott*liBit0--::1 : r Spdlm&8* t- -i:
n. EBlnSSe=t ' ! i; 8l1=tafxil i
: t' efi.+eg2=t : I a' 811"flt12=1
, r att=ue0?=P I : r" elt=0Bt:+:
! i-' Bol=1 Be=[ . : r" 111.1 8'1?=0 ]
:I LKSLLU=U 4:lll crsrrr=o ..1.
lf: lKsEL2=o I r:iT CK5EL]=Oil 5UT0=0i[] sull=o :r:lf: EoDEN=o .:'if: B0DLEVEL=0 r;:iri B00TEST=0 ;iiT BooTszo=oiT BooTszl=oIT EEsAvE=o ::riT cKoPT=o :i:!f JTAGEN=0 .,..'
il- oro$t=oill wDroN=o B,
:I
t
iiI
,liri
tt
I
I*!*d I -? aetp
6l ,',. ,.'. E iriEiaifzatisn
Gambar 6.26 Konfigurasi Proiect
Klik OK dan klik Project - Make sehingga Proses comPile dijalankandan selanjutnya Code Vision akan menanyakan aPakah Prosesprogramming dilakukan.
140
fLVL
'UBInIPIIP
qepnur L{rqal uBIB onres Jo}oul llepue6uad sesoJd elpur 're11or1uot
oNas plnurJelue ue>1eun66uau: uB6uap'uet>lturaP unuIBN'p{nlrrJe}ueDlrlttueru qepns 6uBr{ omes Jo}our llen)e{ 'lolotu sas>le6ueur 6uns6uel
ledep {epq }oqoJ {elo '1nqasre1 Jo}otu-Joloru uB>lllepua6uetu tuelpq
'lnpns ue>1e.ra6 edntaque>1era6-uelera6 Inlun onJes Jolour uep 'r66ut1 IsBJnIP ue6uep rselrlde
Inlun reddels Jolour 't66ut1 ueledaral uPlqnlnquau: 6uBr{ rse>1r1de
>lnlun )c Jolou nlrer{ '1oqor eped ueleunErp psPlq 6uBr{ rolour UIB)PLU
ederaqaq ledeprel 'edurs6un; ue{rpsepreg '}oqoJ {Plo qalo ue>llraqlP
6uer{ qelurrad-qelutrad rrep euesleled uet6eq uelednlelu tut uet6eg
roloru uBloBg
'ue{n{plrpera6as uB{B EurutuBr6ord sesord uPP d1q) eqt tuer6or4 {lN
uolslA epo2 eped tuet6ot4 peolucnoq sasoJd lZ'9 requeD
f;#*i':Hsp-e--re:l
[Nsn]Ft'0)W,eE! sz![B0ud]lP20 0)(.)arq0 sQsh i
F@o! Flil se i
u0 @rP+i.NBrtrl.@F!:!0:@r${su.E. P..uEwl!
s.AsM@ fr8ie\ Pflun'ru:
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
€ri
Nl d 1€fruls 4nruag 6,2'9 requeD
ledac LlequrEuaq rolow
raaltQ )o enaQ eped adplrg heH eua\s 8z'9 reqlueD
'rur upr6pq rnlelal'u JnlBrP lPdpp uBIB Jolou {BJe6't'Id eppd wlAd up{lDl6upqrueru uP6ueq 'rolol.U
rnle6ueu {n}un rsDun#eq BDn[ t'ld 'JIDIe upuB{
I ruorI
i<- apouad
ueledaral P>{Bru
1e:a6 ueledacal
Bab 6: Bagian Pengendali Robot
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.
r9Vl
o'zA go-tgg raddals lgpuaduad 4nelua4g uer0elQ z€'9 requeD
3c^_/\^_
J,VD IJpp lelras qeluJJed u'{res,Preq ro}oul,r::;':;#::I6uer{ relo"r}uoloJ{Iul rde16ualp qe1a1 6uer{ .radde}s ro}otu rlepua6uedr.uelsJs qpnqes n11e,( 'areJrelul raddalS urelsfsqng 90-J-ss InPow IrPP
eIUaIs uellrdueuau ZE'9 JPquBD 'uPInYelIp ledep relodrun undneu:relodrq reddals rolotu IIePueI seso.td 'CI€6Z1 )l ueleunDDueur ue6uaq
rc1od1up uep rc1odrg ndda1g rolo6 ueePaqrad I€'9 requeD
,.*' T
repdrE
llr ,
n" 1irL
P
Bab 6: Bagian Pengendali Robot
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
146
7LVI
puo)es Jad dals-{-{ - 00I ro]ow uplpde)3yLO
ue6ueJelsy!e[NeilgJoloru uPlPdaDe{ oJut
0 = plepupr{nJnlesa>l rJPp IBIoJulns I)3r{)u+20
elPC rslLO
Joloru uplpde)el oJUIs0qelurJad90BtPp 1e{ed 6uefue6qlbual90
u.ralsr{g qns }nJn oN-{J- t0Jeqr.unN a)rnosv0uralsr{S qns Clvlcl a)rnose0J3]spw lnJn oNJJ-TOJeqr.unN uorlBurlsecZO
(rellorluo)or)lw)d)Jelspw = 66 turrr6ua6 q100cl uorlBurlsecIO
elep 1a1ed lernyEtrappaH00ueEuereleyIEIINer/(g
relsew)d e{ 90-Iss lrep Plep uPtu146ua6
ueEueraleyIEI!NeilguoHlsod ar,uoH les qeluuad
00r-00ueledarayLO
ueEueralay!EI!Neilgrolow ueledeeey les qelulJed
dals/1eferep B'l ]npns In]uD002-00dals qelurnp60
.{.J-00uerelnd qplunfBO
A\) to/A\)) 00r0i00uorl)erlcl lesLO
ueEuereley!PI!Ner{gnlueuel Islsod a{ rolow uPls qeluued
ueEuereleyIPI!Neilgrolow dots qeluued
f
Bab 6: Bagian Pengendali Robot
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
6?L
ledpp BS-USq 'ue1e{ueueu }oqor {p}o }pes n}pns elrqedy '[ onresJoJour r6eq .repocue relru uedur{ued IJor.ueru eped g relru uedlurr(uetuuele BS-USC eletu 'rapo)ue 6ueqn1 qpnq g qB/y\elau e1e,(ura1upp urpl 6uer{ lnpns a{ }npns nlens IrBp t olres Jolou ue11ere66ueuInlun 80-dsq uelqplurJaureur loqoJ lplo lpes eped 'qoluoc re6eqeg'uelnlplrp lnpns ueqeqnred qelurred rye>1 derlas rlefi\elrp 6uer{ repocuaDueqny edereq neJueureur ledep e66urqes Japo)ua ,{re1or qenq g epeduelBunqnqrp ledep e6nf gg-gsq 'IUyD rnlpletu rlepuel sesord ureles
'ure1 6ue,{ ue1er6e1 ue1-n{eleu ledep }oqor >lelo uep 80-USC rue6uelrp uele e,(ulnfuelas WA\dsesoJd 'BfBs oaras Jololu lnpns rnle6uelu {n}un qelurrad qpnqas uelruu-r6ueru nped er(ueq loqoJ 1e1o eped raloJluo>lo"rryu 'nlr6eq ue6ueq 'g
Iaqel eped uelselotp 6ue,{ rpades IdyD pod rnlelau 1o1o1o:d qelurred-qeluued uelluur6ueru ue6uep ueInIBIrp olJas rolou rlepue>l sesord
'er(uuelederelundnBru lnpns lreq 'qesrdJol eJe)es olJes Jolotu qpnq 8 uelrlepue6uau-rledep rur Inpow '80-USC ralloJluo) olres Inpou ueleunDrp e,{ueserq'rur rselrlde qepnturedlueru {nluD 'WA\d relru uelrqplsal rnle6ueu Inqrsdnlno uele JaloJluo{oDlrur eped tuerEord e66urqes olres Jo}o(u qenqesrrep qrqel uplqnlnqrp rlelburres loqor 1se1rlde InluD 'ralorluolorlrtuqelo uellr>16ueqrp ledep 6uer{ ry164 eslnd uelrrequelu ue6uep ue1-n>lBIIp olJas Joloru uelere6 ue:nle6uad 'se1e rp uelseleftp qetet qredeg
'Jeseq dnlnr rsJol uBI-qnlnquou uep selpqJal uele:a6 rer{undruetu 6uer( urel uer6eq-uer6eqnele 'ueDuel 'lIB{ uer6eq In}un ueleun6rp Duuas rur Jo}oru '}oqoJ eped
oaras rolow pqey ?no uld ?€'9 requeD
oNc+n
lBu0s
'nr{ur1uo1 lereDreq reDe rselr;lporu1pledep olres Jolou 'nluepel uenl.radal edereqaq Inlun 'uerlrtuepnplel6 'raddals rolou undneur )A roloru rpedes n,{uquo1 {ep$uep eles n]uega] ]npns rBdpruatu 1e:e6raq efueq er(ueserq olJes ro]ow
Bab 6: Bagian Pengendali Robot
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
150
&
DSR-08DECrc(
L9L
'seusedpl rqrqelau snJe ueeun66uad uep nlensas uBrlepal {rue>{erulees eped e66urqas olJes uep rernod uerEeq eped ue11e1a1rp 6ue{Ig-S)q snJe Josues ueleunDEueru ledep eun66ued ,ue1ur16unurp
IBprl lrueleu uer6eq rp Josues ue6uBseured euBur rp rselrlde {nlup)
g9-USO eped 1g-ggq uedueseuad g€'g requeD
'90-USA r6eq rosuesuelnspru re6eqes ue>1eun6rp ledep 16-_JSC peJp{ur Josues 'n1r euelelqel6 'uelulzllp lepn sruelaur uprnlueq 'nluapel rselryde-rse1r1de epe6
9O-USO uep LpUmS ilLul1 rosuas: ue0unqng l€'g requeD
'nlensas Jnluequau {rueIatu lees punor6ue6uap rur lndur uel6unqnq6uetu 6uer{ q)}r^rs }ltull ueleun6Dueurledep eun66ue6 'er{ulndur uer6eq 1p 0 eII6o1 e,{uepe ue6uep ;r11erur rosues 'lnqasJel uelefue6 uep lrueletu ue{seqaqueu ps{etueturslalapuau leprl rosues e66urq ertuunleqas tuBr6ordlp qplel 6uer( qerea1 1era6:eq Inlun gg-dsq uelqplurreureur uep Jrl{B up{e rur rosues
t0-uso
Bab 6: Bagian Pengendali Robot
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 6.4O Modul DSR-08
€,9t
Iepo)ua ePPd Dueqnl qelunl = xXxx-00raPo)u3 rBlrNBO
rololu lnrn Jor.uoN-cJ- t0rolow Jor.uoNLO
ueDueJsley!PI!Neug(€0) rapo)ug !el!N Plulw qelulred
rul ]ees o^Jas lnPns dels IseuJoJul9Z-LOo^res inpns clelsBO
JOIOTU lnJn JoluoN-i-{- t0JOIOIII roruoNLO
ueDueJeleyIPI!Ne$g(ZO) oNaS lslsod elulw qPlulred
BZt nPlB qo8 ABIep JDDuluel uelpde)eyEEZ ne]r- JC
^EIap qppuare] uelede)ey
JJ-OBo^Jes uplede)ey60
9Z-tOo^ras lnpns oels80Jolou lnJn JouIoNJ.i- r0Jolow JouoNLO
uPDuerelayIE[Neltg(I0) o^ras ue{{er3D qelulrad
00 = unsl)aq) eDDulq eI lelnu] IP]of.iJ-00I'UnsY)aq)u+20
JIIBIoJ eJP)eso^Jes ue{{eJe66ueI.U qe}ulJad
90
srupleu UPIBDBDe{ IsYelepusluJOSUes leBs qBre JnlE6ueu qBlulJed
v0
Jepo)ua IBIIU Blultu qelulJed€0o^Jas rslsocl elultu qplulJedZO
o^Jes ue{{PJaD I{B}ulJedIOqelurJed90plpp ]a{BCl DuplupdqlDue'I90
JelsBW lnJn oN.{J- t0Jeqr.unN e)Jnosv0(ra11or1uoeor)lW)d)
JelsBW = 66 uur6ua6 q100cl e)Inos€0
urals^s qns ]nrn oN-{-{- t0JequnN uorleurlseqZO
Luels^sqns qltIql uoqeurlse(IOBlep te>lpd Ie{\VEIrepPeH00
ueDuereley!EI!NeugrellorluoD oNes e{ relsPw/)d Irep Plep uelulrlDu3d
80-uso lo4o?ord I Pqel
Bab 6: Bagian Pengendali Robot
Perintah Atur Arah Saat Sensor Mendeteksi Keqaoalan Mekanis (04)Bvte Nilai Keteranqan
o7Arah Motor-motor OO-FF
Setiap bit mewakili posisi setiap servo(lihat Gambar 6.41)
Perintah Menqatur Gerakan Relatif (05)
Bvte Nilai Keteranoan07 Nomor Motor O1-FF Nomor urut motor
OB
Arah gerakanSCTVO 00/01 00=cw/01=ccw
09 Step Relatif o1-25 Sten relatif terhadap steo sudut saat itu
Perintah Stop Servo (O6)
Bvte Nilai Keteranqan07 Nomor Motor O1-FF Nomor urut motor
Penqiriman data dari Servo Controller ke PClMasterBvte Nilai Keteranqan00 Header 1E Awal paket data
01 Destination ID 00 ID Master (PClMicrocontroller) = 00
02DestinationNumber O1-FF No urut Sub Svstem
03 Source ID 11 ID SubSvstem
04 Source Number O1-FF No urut Master
05 Lenqth Paniano paket data
06 Perintah 0.1 Informasi posisi servo02 Informasi nilai encoder
07+n Checksum OO-FF Total mulai 1E hinooa checksum = 00
154
rEAI
'er{uuelede)e{ {n}un sLu 8ZI ,{e1ap ue6uep 97dels e1 Bnpe{ olJes Jo}oru ue11era66ueul {n}un 1o>1o1ord uB{sIInI
'{llap rad da}s g 1 ueledere>1
ue6uep IJII a{ 90-JSS ue>11era66ueu In}un 1o1o1ord UPISIInI
'e{uque66uad re6eqas eg6z'1 )l ue{eun66ueruue6uep gZ'g requre6 eped {r}ptuels ue:6erp ueIrBqLuBD
'z€9twq31 rer{e1 a1 pr1s,{of ue>1uun1rp 6ue,( plpp Iellu-re[u uellrdrueuoruynlun urBr6ord ue{srln} upp IE-ISO 7 ttod eped y7-yq 6uese6
'ue{elrp {uog elotuer eped
I loqLuol lpes 0'14 eped CEl ue{Jllle6ueu {n}un uBr6ord UBISIInI 'I
,9
'v
'€
.Z
uBq!le'I
stue4aNue1efie1ay ls4appuary rosuas ir;es qerv rn1efiua4 o7s16ay l?'9 requeD
L uep M3 ),lnlun Q = |lQB oruos
z oruos
9 oruosI o^ros, oruos
t oruas
z oruosL oruos
MCS lnlun
0qtqZq'0q,q9q9qLq
L9t
'll)e>{ upDuplBr{-up6upleq rnedluplaur >leJeDJoq
]edpp e66urqas senr e6q r{rlrueur r>1e>1 derlas 'uprn}pJeq Ip} uepetu-uppeu Ip Ilqels re6e loqor rsrsod B6elueu rs6uryreq lnqesJal eqel-pqelIrueleu eped r1e1 ureug 'uprnlpJeq lBprl nple Jese>l upparu rp undnerurplpp uepeur Ip {lpq r66ur1 qrqel 6ue{ splrlrqe}s 1e16ur1 rB{undueulul lrupletu 'lepedrq undnBru ppoJeq loqoJ ue6uep uelDurpueqrq
BqB'l-BqB-I loqou
'rur pqel-eqplloqoJ lenqruatu pJB) uelsplafrp uele rulqeq eped 'ueperu eye6as rp {r}oqor rselryde eped uelDuequalrp In}unsrllerd Dur1ed 6ue[ loqor >.1rue>letu In}ueq qelppp pqpl-eqel IrueIeW
uEnlnqepuod
Dlut 9 ueduop eqereqq ioqoa
Bab 7: Robot Laba-Laba dengan 6 Kaki
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.
Ruas 1
Kaki4 Kaki 3
Kaki 5 Kaki2
Kaki 6 Kaki 1
9L
'urpl 6up^ rspyrlde-rselrlde Inlun up{eunErp ledep uep }praq nlplre} {epn (Dd) oqoupllec) loqor IBlo eftaull 'lul sesord up6uec 'upleuBslplrp praEes ueIBuPp >lrPq uP6uep PrurrelrP qPlel qeturred e^\qPq rselrpur up{pdnJaurDue.( Dd) oqod elleq aI y)V ednreq rseurrJuo{ uelurrr6uaure6nf 80-dsq 'Dd) oqo5 Btlaq lrpp rspurroJur purrreueru qBIetaS
'ue{rreqrp 6uer{ lnpns rser.uJoJur
renses uellere6rp 6ue,( olres Jolou eped W \d uellrlDuequraruupp erulreuetu UBIB g9-USC 'lnqesrel {Blo r.lelo ueln}ue}rp qe1e1 6ue,{rsrsod eped onras Jolotu-Jolou uellere66ueur Inlun qelurrad-qelurreduelurrrDueu efueq eqel-eqel loqor rrpp lelo nlples Dd) oqo6 ellaq
tl.la6ls uetdelq 4oE €'l requeD
tzonuSs - ztonufs(e) so-uso
ndc o80uVIIfC
(z) eo-uso
(L) eo-uso
m;;;;r Li
r-8onuls - Lonulls
'lnqasJal 1n16uesra1 upepeel er{uepe rslo}epuetu{epr} Josuas e66urq er(u1r1eqes qpJp eI ue>1>1ere66uetu ue6uep }nqesralIrupleur ueyseqequetu Bra6as up{e JalloJ}uo) olJes p{Br.u ';l}1e rosuesuep nlensos 1n>16uesre1 IruBIeu epqede loqor Iruelaur uel"snrexqeEerueu Inlun rs6un;req lul IeH 'Iplo Irep qelurred n66unueureduel r6e1 ;q1e leprl Josuas e66urq ueuprt\elreq qeJe eI olJas uel-1e:a66uaru ue6uap uodseraru Bre6es ueyp rur Inpow 'Jrllp Josues lndurnlps qeles elrq rpefre1 IUI leq '80-dsq olJes rlepueEued pped 'snsnq>l
snspl-snse1 eped IBlo rrpp uodser n66unueu eduel Duns6uel rsyeeJeqe6nl 6uepe1-6uepe>1 uep {eto rrpp qe}urrad Brurraueu 6uBr{ Brsnueur
lrpp lrrolout Serer{s qredes e{uln1eqes lul ueqeque} Ie}o rs6un3
Bab 7: Robot Laba-Laba dengan 6 Kaki
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
MOTOR SERVO,I
160
rt9t
'HVur 000'gt/Ag {)ed 1(re}}Pg
')rupq)ew 6el raprdg 9
'(er1s1e Js6un;1n1un) qHZZT-SH )elrH olres rolow 9
'DWE,9-SH )ellH o^res rolow g
'ggE0g-sH )euH o^res rolow g
'JelloJluo) olres re6eqas 80-dSA Inpow €'1e1o reEeqes Dd) oqod elleq lnpow I -
:ln{rJeq uedel-6ue1.rad ue>1eun66uaru ue6uep un6ueqrp rur pqe[-eqe'I ]oqog rseryldy
'reseles unleq qrser.u 6ue( 7 onres rolou uelere6 uelquaqDuatu eduellera6req lnsnfueu ledep I olJas Jo]our e66urqes e,{uuelef:a6uatuDuns6uel uplp 80-dsq 't olres rolor.u ue11era66ueu qelurred ueqrpe4f 'qoluor re6eqag 'efulnlrreq qelurred Br.rrJreueru ledep qepns g0-dSA rdelel 'olJes Jolou ue11era66uau qplurJad qelepe sele rp requre6uretpp 'erueped qelurred uelefraEueur Euepes B0-USq undne1e16
etue1tad qeTultadue4e{ta6uau Ouepas SO-USO tees ue4utlrt4tp enpa4 qeluqad g'l requeD
Yt1P14 ler{utgndc o80u v,t'tlovtulfs
z onuls uo_Lot"i toul.NoSonufs v-Ltfo
\rL
I, .,',,*".J :.- i1: .,n _
J (rlil m- ftJ:1 lnr '! tl
--+ttd.l rt-.]h"' 4-t -- r:
r onufs uolohl
Bab 7: Robot Laba-Laba dengan 6 Kaki
Pengaturan Gerak Ruas-Ruas Kaki
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-
#
162
!"E9r
I sonuYZ9tz sonuI,Z9t
or+s)l rsbunJLZ9L
I sonuOZIe
z sonu6tI0oJls)l rsbunJILIt
I sonu9tvZ
z sonu9tvZorls)l rsounJtrvZ
L sonuZL0Z
z sonut_t_LZ
Dllsll rsbunJ6tZ
L sDnu8Zt
z sonuLZtorls)l rsounlIZt
I sDnu?Lt
z sonu0ttor+s)l rsbunJLtt
uolruorele)o^res JolowrouroN
DqDl-DqDI
lIox rouroN80-uso
fnrn JoutoN
efruls6ung uep oaras rolo6 lnrD routog I pqel
'1efueueru ueleta6 rselrlde eped uorlrns yrJeualuertuyesruu 'n1ue1ra1 ueqeqtuq rs6un;-rs6unJ Inlun ue>leun6rp ledep 6ue,{eJlsle olres Jolou reDeqas rsEuryraq 7 olJas Jolotu nele I onJes Jo]oW
'rea6 1e1au uep 61 9'6 rsrol rlrlruretu unureu1rra1 6uer{ rsuaurrp ue6uep olres rolou qenQes r.{Blepe DWET9-SH .ll)e{6ue,{ lrsr; ueJnln ue6uap rde1e1 1en1 dnlnc 6uer{ onres Jo}otu uelqnl
Bah 7: Robot Laba-Laba dengan 6 Kaki
n_' t*tP ol
tr ll L_lt "l rampak atas, ruas 2 maiu\,/\.!--:-
Tampak samping, ruas 1
diturunkan
Gambar 7.7 Gerakan langkah m4ju
Pada fungsi ini, motor servo HS-8058B berlaku sebagai penggerak ruas
satu dan motor servo HS-645MG sebagai Penggerak ruas dua. Ruas 1
terangkat dengan ketinggian tertentu, lalu dilanjutkan dengan ruas 2yang memutar maju kaki robot. Halangan-halangan kecil yang lebih
&
Gerakan-Gerakan Laba-Laba
Secara garis besar, gerakan laba-laba ini dibedakan menjadi gerakan
kaki dan gerakan tubuh. Gerakan-gerakan kaki di sini terdiri atas gerak
langkah maju, mundur, dan lurus. sedangkan gerakan tubuh adalahgerakan untuk berdiri-turun, gerakan badan ke kiri maju-mundur dan
gerakan badan ke kanan maju-mundur.
Gerakan Langkah Maju
Gerakan langkah maju adalah gerakan mengangkat kaki laba-laba dan
menggerakkannya ke arah depan hingga meletakkan kaki kembali ke
lantai untuk menoPang tubuhnYa.
Tampak samping, ruas 1
diangkat
it-
164
E9r
'qplEuploru eJe) up6uepSNJNI ISISOd EY IIPI IIPqUIEI P^\PqUIEUI UEYP IUI UPIPJED 'TNPUNIUundnelu nleru rsrpuor tuplpp lreg 'efuunleqes rsrpuo{ undede rrep'sn:n1 qpJp er r>1e1 rsrsod uprrlpqtueDueu: rnlun rsEuryreq rur uE>leJaD
snJn'l qe16ue1 ueIEJoC
rnpung qe46ue7 ue4eraD g.l requeD
uPIUnJnltpL senJ 'Ourdules ledr-ue1
JnpunulZ senJ 'se1e ledule_1
le16uerpsenl' 6urdutes >1edure1
a>1 relndraq EueX efes enp spnr ueJnteouad eped e,(ue, ,il,'"::r:"Xr'j:'n[eu qe46ue1 ue>1ere6 ueDuap purps rrdueq Jnpunur qe16ue1 uer1e.ra5
rnpunw qe16ue1 ueleroc
'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),
&
Kaki 4 Kaki 3
(aki5 dan5 Kaki2terangkat ---.-_
Kaki 6 Kaki 1
166
!
L9I
g uep ?'z t4e4 p46ue6uau ue\eraD zl'l requeD
(toqor lsrs rrep) IrlI IIeI nles uep ueupl r{elpnc 'loqor rIeI qPnq 5 1e16ue6ueru ue6ueP uBInIPlrp uelereD sasord'loqor nleu ue>1ere6 r:ep uer6eq nlBs r4elps uelednretu er{ueserq uepnfeur ur>1 uer6eq ]oqoJ qnqn] ue11ere66ueu {n}un rs6un;req rur uBIpJaD
nJeUU ueuey uepeg ueIBJog
unrnl g uep €'Me4 eTtas n[but4e4 ue4tnluenp 6ue4e1aq a4 Duotopuau g uep ? 'Z !4ey II'L reqweD
'n[eurur nferureuasrpueleraD
>lere6raq up>lp loqoJ rrrl uer6eq qnqn] uep rp)uel urlptues uBIeuelere6 'rselrner6 upnlupq ue6uaq 'g upp '€ 'I Iye>l er(uunrnl
I IIeI nfeur uelere6 ue6uap ueltn[ue1rp Euns6upl ]nqesJel'6ue1eyaq e1 Euoropueur {n}un rn}Brp Iul llp{-l{py pletu
L !)Py I Uey
ZD{P>| 9uBp gHey
t'z !ley--__--_
e l)EY , Uey
L !le) Mey
Z Ue\ 9 lley
e !le) , ue>t
Bab 7: Robot Laba-Laba dengan 6 Kaki
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.
I
L
Kaki 4 Kaki 3
Kaki 5 Kaki2
Kaki 6 Kaki 1
168
69r
daTs p11u-1efiu uep ocuas ue4eo6-ue4eraD Z pWI
ulpraq lslsod 9I'l requeD
'lnpns nfnuaur qelurred ue6uep uelnlplrp elrqede ]BdernlBIJel 1era6:aq ueyp runq rselrner6 ue6uep qpJees 6uer{ uelera6 qerele6ur6uaur ueleun6rp rur lru{al 're}uel aI unJnl uplp rle{ uep e6euelue6uepqal rur senJ 'er{u1eqr1y 'n}Bs spnJ rlepue6uad onJes Jo}our-JoJoureped ry64 uelrluaq6ueu ue6uep rdBlel '1npns nlnueru qeluued ue6uapupln>lelrp >lePrl rPlupl e{ }nqesre} eqPI-eqpl rIpI-rle{ up>{IP}eletu In}uD
t4e4 ueuaa4 Te46ueduau) ue1eJaD bI'/, JequeD
nloru rloy9r-0rz sonuL
o:1o13 rs6un1I1o16uore1 ulo;IZ-91L sonu?
nlour r>1o;9r.-0rz sonue
orps13 rs6unSt
/U\) qOIV(ders) o^restnPns Dtoouo6uorelay
o^res JolowrouroN
8 Ruos I 15-24 Koki terongkot
9 Fungsi Ekstro
11 Ruos 2 10-16 Koki moiu
12 Ruos l t5-24 Koki terongkot
r3 Fungsi Ekstro
t5 Ruos 2 r0- t6 Koki mundur
16 Ruos I 15 -24 Koki terongkot
17 Fungsi Ekstro
19 Ruos 2 r0-16 Koki mundur
20 Ruos I 15-24 Koki terongkot
21 Fungsi Ekstro
23 Ruos 2 t0-16 Koki mundur
24 Ruos I 15-24 Koki terongkot
Bab 7: Robot Laba-Laba dengan 6 Kaki
Hubungan Gerakan dengan Sudut Motor Servo
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.
l!*
170
LLL
're^rJp uPr6Pq eped lruoJllele ue{ps-nre{ np}p Jpe6 upr6pq epPd lrueletu uplpsnJe{ uP{lnqurueru uBIeer{urrqle upp }nqesJe} upqpuel 6uef lsrsod nfnuetu In]un rJrp ue>les-{Br.ueu uple o^res ro}ow 'PqBI-eqPI qnqn} uPqeue} r{PI ueP urrrls{enlplrel 6uer( 80-USC eped lnpns rplru uBtst6ued lpqllB uelesnreluelrepurq6uetu Inlun ueleun6rp lul IeH 'eqel-eqel qnqnl qnluer{ueuunleqes 1ede1 'qnued 1e16uere1 rsrpuol leps eped 763 IIn.J tstsodeped epereq olres rolou e66urqas rnlptp snrpq eqel-pqel I{pI IrBpnles senr eped orues rsrsod elBtu '>llue{etu ue>lesnJe{ 1pe[re1 lepq re6y
7Z ue4elnqrP nplP tL'?z =
L80'O/l'Z =
OI uPllelnqlP nelP €'0[ =
Lgo'0/6'0 =
A\) IIN.J IBIIN
A\)) IIN.{ IEIIN
:lnlrJaq ueeruBsred ue6uep qaloredrpledep A\) InC uep A\)) IInJ {ntun relru 'n1t puere{ qalg 'de1s radsrt Zg resaqes lsnloser re,(undrueru 80-USq uelDuepeg 'Srug'I qelBppe,{uqe6ual lqq puptu Ip '1\\) IInJ {n}un sur l'Z e66urq A\)) IInJ Intunsru 6'0 erelup eslnd rseJnp rselr;rseds re{undueu: q)ellH olJas Jo}oW
'rJrpJeq
lera6raq uelp rrrpuas eqel-eqpl upp unrnl uele pqpl-pqBl rIeI nelenlps spnJ eyetu '(mll) uBf tunref qere ue6uep ueupl\Bpaq >lere6reqolres Joloru epq 'e{ulllpqes 'rnpr} rsrsod a1 lera6raq uele rJrpuespqBI-eqBI luereq ru1 '1e16uerel ueIB eqBI-eqBI rIeI nele nles sBnr e{ptu'tuef run:ef qe'rees leraDreq olJes elrq ledupl nlps sBnJ eppd '(mff)esrlA l)ol) raluno) nBle tuB[ tunref qere ueue^\elraq uep (163) as176
{)ol) nele uef unrBf qeJees qelnsl lpuelrp olJes ro]ou ue>1era6 epe4
I sena ueleDD 9I'l requeD
88908SH
Bah 7: Robot Laba-Laba dengan 6 Kaki
Gambar 7.17 Gerakan Ruas 2
Gerakan Ruas Dua
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
(7oqot Ouepued tnpns yep) y14 a4 nTndoq pqoA 6I'l EqueD
'n[eu Euoropueu9 uep 7 IIp{ uep rnpunu 6uoropuau up{e Z plp{ 'ueue1 a{ rp}nureulera6raq loqor re6e er{ulllBqes 'rnpunu Duoropuau g upp ? I>lpIuep nferu Euoropuau uple Z ple{ 'lrl{ eI rplntueu lera6req loqor re6y
'Jelnuretu>1ere6req uele loqo: e66urqes ueup^\plreq 6ue,( qere eI Duoropueurueupl upp lrl{ uer6eq rc6e rruprp qerp 'relndraq uelereE epedunr.ueN '6ue1e1eq e1 Duoropueu r>lel enrues re6e rnlerp sBnJ :e1ndqere 'nfetu ue>1era6 InluD '1e16uere1 1epr1 6uer( IIe{-!>lB{ rrep Bnpe>lsenr rBlnd qere {Ble[ LIelppB el{uueepeqrad rur lpq urelep 'unruep '}oqorr{e>l qenq e6rl lel6ue6uaru ue6uap rle/v\Brp nlreu{ 'nfeur }oqor uelera6ue6uep erues rrdueq uplnlelrp 6uef sasord 'relndreq uelere6 InluD
'6ueprq uep{nrured depeqral }oqor qnqn1 ueqeueur 6uer(uoq)ns uplqnlnqrp {epq puptu rp re}epueur 6uer{ Bueprq rp lere6reqloqor lees eped ue{n{plrp ledep er(ueq rur sesord 'tBder qrqel >1era6raq
ledep loqoJ e66urqes Iunq rselner6 ue6uap nlueqrp 6ue,( nfBuruelera6 {n}ueqtueru e66urqes uequeBreq pJB)as ueupl uep rJDI uer6eqloqor uepeq nfeu uelereE rrep uere>16ue:as ueledn:eru rur ue{pJeD
I HeX I Ue){
Z DlF>4 9 p{Py
€ !)e) t ryey
Jelndrog uBp nferu loqou uelBroc
Bab 7: Robot Laba-Laba dengan 6 Kaki
Gambar 7.20 Robot bersiap untuk berputar lagi
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
2nuvrv
; VARIABEL_VARIABEI,DeviceAddress: DsTargetT\4)e: DsTargetNum: DsSourceT)rpe:SourceNu.m:ChecksumData: DsPanj angDataSerial :
Buffer: Ds 25BufferPerlntah: Ds.IoystickCounter_sms: Ds
CSEGOrg 00Ljmp Start
org 03hReti
Org OBhReti
Org 13hRetr-
Org 23t,Reti
Start:MovLCAIl.MovMov
LCat -t
LCA.t ILcaflLC 1-L
Lcal 1
Loop:LCA-L1Ljmp
P0, #00lnit-SerialPCON, #80hTH1, #OFFh
Wakeup
Delay_5 0 omsKakilLanqkah.I4a juDelay_5 0 OmS
Kaki 6Langkahllaj u
MajuModelLoop
;Nomor urut Robot
;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
lelIsur00T-.4ETaa TTecl
o^.rasrsrsod?as TTPcTsuog-^ETac TTerT
o^fasrsrsodlas TTEsTsur0g-^ETao ITpc.I
o^.rasrs-tsodlas TTeJTsuroE-^eTac TIEsT
o1\f,asrsrsodlas Tlec-l:npunhlTr{Px+'E,ldo AoI^i
: .rnpunl^JrlE{6ueT I T{e}l
rIe{ qeIoueT-qe){6uel ue{e.raei
T SenJ-Sen.r
-i{e>t
o^.rosrsrsodlaso^"ras-Fs-Fsod?eso^-resTsTsodlaso^.resTsTsodlaso^]asTsTSodlaso^.rasrsrsodlas
r{exunf n&TaqE&+' llI,dc
seutarlT sEnlIsurO o g-xeTaoT{ex91eI6uv
{TlapT-^ETeCrY€x9snfnlfasae
rvpvounf n.T.
sur0 0 g-.{eTeG
^qpue?S
TT€CTTTP'TTTECTT TEJlT TEC'ITI€C.I
..\O',I: r){ex9un-rn[
1auT TEC'ITTP3TT TPC'ITTEC'IT TEJ'I
:
^qpue?sleE
T TEST
T TE3'IL L9V I
: dnaltEM
un-rnl j
u€{seuraT l!
918)i6uvi
IIe{ 9 uelsn-rnT I
rfrpfag I!
deTs rs-lsod a{ TXe{ ue{{e.rae i
l allsur00T-^PIaq TT€r.I
-rnpunl^Iueuexuepeg TTeoTsuooT-^ETeo TTec.I
.rnpunwTfTxuepe8 TTec.I: Tapohl-rnpunli
1ausuro0T-xeTao ITec.I
1E)i6uvueue{uEpEg TTec.Isuro0T-^eTaG TTerT
1e{6!rvr.rrxuepeg TTecT
Bab 7: Robot Laba-Laba dengan 6 Kaki
Ret
Kaki3LangkahMundur:Mov DPTR, #Kaki3MundurLca1l SetPosisiservo ;angkaL kakiLcaIl Delay-5OmSLca11 SetPosisiservo ;maju kakiLcaIl Delay-5OmsLcall Set.PosisiServo ; Eurun ruas 3
LcaIl Delay-SOmSLcall SetPosisiservo ; t.urun kakiLcalI Delay-10OmSReE
Kaki 4 Langkah.I'{undur :
Mov DPTR, +Kaki4MundurLca1l SetPosisiServo ;angkat kakiLca11 Delay-5OmSLcall SetPosisiservo ;maju kakiLcall Delay-5OmsLcall SetPosisiservo ;turun ruas 3
Lcall De1ay-5OmSLcal1 SetPosisiservo ;Eurun kakiLcall Delay-10OmSReE
Kaki5LangkahMundur:Mov DPTR, #KakisMundurLcall setPosisiservo ;angkat kakiLcalf Delay-5OmSLcall SetPosisiServo ;maju kakiLcal1 Delay-5omsLcall SetPosisiservo ;Lurun ruas 3
LcaIl Delay-5OmSLcall SetPosisiservo ;turun kakiLcall DeIay-10OmSRet
Kaki6langkahMundur:Mov DPTR, #Kaki6MundurLcaII SetPosisiservo ;angkat kakiLcall Delay-5OmSLca11 SetPosisiServo ;maju kakiLcaIl Delay-5omsLcall SetPosisiServo ;turun ruas 3
LcaIl- DeIay-5omsLcall SetPosisiservo ,'Eurun kakiLca11 Delay-10OmSRet
KakillangkahMaj u:Mov DPTR, #KakilMajuLcafl SetPosisiservo ;angkat kakiLcalI DeLay-5OmSLcal} SetPosisiServo ;maju kakiLcal1 Delay-5OmsLcafl SetPosisiservo ;turun ruas 3
Lcafl Delay-5OmS
!\
178
6Lr
E S€nr un-rn1 j
r{e{ n[Pu1
Tlte)t 1€{6ue I
-J{e}{ un.rnl 1
t sen: unJnl i
r)ieli n[eur]
rltP{ leI5ue I
T{e{ un.jrnl I
t senr unrnl i
r>te{ n[eul
Tlte{ 1e}t6ue i
TIe{ unjrnl .l
t senf, unrnl 1
rlie){ n[eu]l
r{e}t le){ouej
r{e{ un-rn1 l
E S€nf un.rn1 j
r>[e]i n[eurj
T{e}i 1e{6uEl
o^fasrsrsodlas ITe3lsur0E-.{eTeO TTET.I
o^"ras-!s'FSodles TIP3Tsurog-xeTac TIer.I
o^-rasrsrsodles TIecTntPI^Igr{eI+'UJ,dO ,\o?{
: ntehJqelSue.Ig r)iex
l allsuro0T-xeTaG TIecT
o^-resrsrsodlas TlecTSuOE-^ETaC TIeJ.I
o^.rosTsTsodlas TTecTsuro9* eTao TTec.I
o^-rasTSTsodlas TTeJ.lsuroE-IeTaq TTEo.I
o^jrasrsrsodlas TIecTntewgT){EX+'UJ,dC AoW
: n teI^JqE)i5ueT9 Tlex
1aEslro0T-1\eTeo TTec.I
o^-resrsrsod?as TIesTsurO9-^eTao TIPcrI
o^.rasTsTsodtas TTecTsurog-IeTac ITec.I
o.1\Jasrsrsodlas ITec.ISUIOE-^PTeO TTE3.I
o^-rosTsTsodlos TIec"lnFehITT{ex+',uJ,dc 1\o}{
: nIe]^Iqe{6uE1?r>[€x
l allsurooT-^elao TIe3.I
o^:asTsrsodlas TIPc.Islrog-^ETaq TIesT
o^.rssrsrsodlas TTe3.1suog-^eTac TTeJ'I
o1\-:aqTsTsoelas TTe3TsuoE-^eTac TTe3.I
o^.rasTSTsodlas TTe3lnteWEr{eX#'EJdC ,\oN
; nIewqe{.6ue.Ie T{ex
1aEsuro0T-^ETac TTec.I
o^-rasrsrsodlas TTe3Tsuro9-^eTao TTec.I
o^,rasrsrsod?as TTec.Isuog-.^eTac TTesT
o^.rasTsTSodlas TTecTsuroE-^€Taq TTe3.I
o^fasrsrsodlas TTecTnteldz-l)iex# /EJdc Aow
: n t pI^Iq€>t6uerI Z rIeX
1aEsuro0T-^eTao TTec.l
o^Jasrsrsodlas TTec.I T{eI unJnl j
Bab 7: Robot Laba-Laba dengan 6 Kaki
Lca11 Delay_5omsLcal1 SetPosisiservo ; turun kakiLcal1 Delay-1-0OmSRet
Kaki6Langkahlurus :
Mov DPTR, #Kaki6lurusLca11 SetPosisiservo ;angkat kakiLcal1 Delay_5omSLcal1 Set.PosisiServo ;maju kakiLca11 Defay-5OmsLcall SetPosisiservo ;Eurun ruas 3
Lcall Delay_5OmSLcafl SelPosisiservo ;turun kakiLcall Delay-10OmSRef
Kaki 5Langkahlurus :Mov DPTR, +Kaki5lurusLca11 SetPosisiServo ;angkat kakiLca11 Delay-5OmSLcall SetPosisiservo ;maju kakiLcall Delay-SOmsLcall SetPosisiservo ,'turun ruas 3
Lcall Delay-50mSLca1l SetPosisiservo ;turun kakiLcal1 Delay-10OmSReE
Kaki4Langkahlurus :
Mov DPTR, #Kaki4lurusLcaII SetPosisiservo ;angkat kakiLcall Delay-5OmSLca11 SetPosisiServo ;maju kakiLcaIl Delay-5OmsLcall SetPosisiServo ; turun ruas 3
Lcall Delay-5OmSLcall SetPosisiservo ;Eurun kakiLcall Delay-l0OmSReE
Kaki3Langkahlurus :
Mov DPTR, #Kaki3lurusLcall SetPosisiservo ,anqka! kakiLcaIl Delay-somsLcall SetsPosisiservo ;maju kakiLcall Delay-5OmsLcall SetPosisiservo ;turun ruas 3
LcaIl Delay-5OmSLcall SetPosisiservo ; turun kakiLcaIl Delay-l0OmSRet
Kaki2Langkahlurus :
Mov DPTR, #Kaki2lurusLcall SetPosisiservo ;angkat kakiLcall DeIay-5OmSLcaII SetPosisiServo ;maju kakiLcall Delay-5OmsLcal1 SeLPosisiservo ;turun ruas 3
180
18I
HdC.IdC
.ro1ol^Idol surT-r Tx90+ '91It0#'Lu
"ro1o]^Idol surr-r Txz0*'9tIt0*'tE
-u o?ohldo?surT:Tx90+'98ZO+,LE
JOI Or{do1SrUrf, rXz0#'98ZO*,LE
-rolohldolsuTf -tx
90#'9lITO+ ,LE
.ro1ol^Idol surTir TNz0+ '9uT0#'Lli
TdCIHdc
doddod
lTECTAOrd1\Or.tr
l TEJ'I1\Or{r\Olitr
lTEf,T.^OW
/!OI{TTECT
1\ONlr0w
T TEC'I1lOr{1\OW
Tlec'IAON/\OI,{
qsnalr{snd
: seuralesenu jSNI,INOEAOS I E SVNU
T{e{ 1e{6uEJT)ie{ un.Inl j
TIe)i 1e{6ue it senf un-rnl ,
T{e{ 1e>t6ue jT)ie{ nleui
T{e)i lP){ouejTlie{ lp){ouEl
r{e{ un:nl:
E Sen-r unrnl i
r{e)i nleul
T{P{ 1e}i6ue i
1eEsurooT-^eTeq TTEoT
o^.ros'rsTsodlas TTEc'Io^rasTs'Fsodlos TTecT
slroE-^eTao TTPrlo^-rasrsTsod?as TIecTo^.rasTsTSodles TTecT
suroE-.4eTac TTec.Io^-resrsrsodlas TTecTo^.:rasTSTSod?as TTecT
surog-xelac lTerTo^-rasrsrsod?as TTe3.Io^.ras-FS"lsodlas TTPc"t
snrnlqe6uaJ,T>tex,I+'E,IdG 1!ol{: sn-rnTqP6uaJ,r>{E)I
1aEsurOoT-xeTao TTec.I
o^jras-FSTsodlas TTe3.IsuroE-^PTaG lTec.I
o^-rasrsrsodlas TTec.IsuoE-^eTaq TTPcT
o^.rasrsrsodlas TTesTsuos-.{eTaq TTec.I
o^.rasTsrsod?as TleJlsn-rnTTr{ex# /u&dc AoR
: sn-rnTr{el.oue1T T{ex
laEsurooT-^eTac TTec.I
o^-rasTSrsodles TTea.Isuog-^eTaG TTec.I
T{e{ un-rn? J
Bab 7: Robof Laba-Laba dengan 6 Kaki
AngkatRuas3:MovLcal ILJCal- -tLca11LcaIlLca11Lcal1Ret
Ruas2Lemas:PushPushMovMovLcal1MovMovLcal 1MovMovLcaIlMovMovLcal IMovMovLcallMovMovLC I-LPopD^hrvP
Ret
DPTR, #TabelAngkatRuas3Set.PosisiServosetPosisiServoSet.PosisiServosetPosisiServoSetPosisiServoSetPosisiServo
;angkat ruas 3
ceserlurus 6Kaki :
Mov DPTR, #TabelLurus6KakiLcalf SetPosisiservo i lurusLcal1 SetPosisiServoLcall SetPosisiServoLcalI SetPosisiServoLca11 SetPosisiServoLcaIl SetPosisiServoRet
DPHDPLR7, #01R6, #03KirimStopMotorR7, +01R5, +07KirimstopMotorP''7 , #02R6, #03Kirimst.opMotorR7,#02R6, +07KirimstopMotorR7, #03R6, +03KirimstopMotorR7, #03R6, #07KirimstopMotorDPLDPH
; SUBROUTINE RUAS 1.
Angkat6Kaki:Mov DPTR, #TabelAngkat6KakiLcalf SetPosisiServo ; angkatLcalI SetPosisiServoLcall SetPosisiServoLca11 SeEPosisiServoLcaIl SetPosisiServoLcall SetPosisiServoReE
782
€8I
o^-r3s rsTsod las
!!!!
o^fes fotuoN los I
]o?oru Tofluo{ qeluT-rad urT-rTx j!!
elep 6uP[uPd lasjTO = loqo-r fouou ?asl
!!!
80-ESG .rouou 1as i
-raTTo-rluoJ o^.ras ?a6-rEJ, I
E&dG01I
v'0110lltrdc+vo,v
00#'v
E.IdgOE
V, O1IOE,tdo+vo'v
00#'v
0u.ro1oI^II o.rluoXqe?ur-rad #' OEA
OE70#'080
.ral:Jna# ' 0uloqouf ouioN+' s sa-zppva c T^ag
u,tdov'urnN1a6-reJ,
E,tdc+va'v00+'v
HdC.IdC
.ro1ol^Idol sluT-: TX
80# '9Et0#'Lu
.rolol^Jdolslrrr.r rxt0#'91it0#'Lu
.roloLldol slur-r rx80+'98z0+'tu
.rolol^IdolsurTf T)It0+ '91IZO*, LA
-ro1ol^IdolsluTf Tx80+'9u10#'ru
rolowdolsurTfTx,0+'9uTO+
, LlI
TdGHdG
3Ifrcur1\OW
cl\oI^IlroI^I
curcur.{\oI^I
Cl\OI^I.1\oI^I
curAOtr{cur1\Or,I
l1otr^I
I'otrIcurAOr.I
C/\OI^IAOI{
1audoadod
rIE3T1\ONl\o,.I
I T€C']1!otr{l1Or.I
I T EC'I.r\oI^I
1\Ofi
rrecrAOL{AON
1\OW
AoInI
ITECTAONAOW
rlsndqsnd
: seureTTsenu
(8o-uso / 0E-lrso)r{TT# 'ad J1a6-ref,, Aotr^I
: o^rasTsTsodlas
1a{edu1:TX d*[t91I'Z+falln8 Ao,{
L0+'I+fefJnS AoNZ0#'-ra]l:n8 ,rlotr{
loqoErouroN*'ssa:ppvacT^aq 1!ow
15'um51a6:e[ ^or[ r{TT# 'ed J,1a6.reJ, lloinl: rolowdolSUrrJr)I
Bab 7: Robot Laba-Laba dengan 6 Kaki
Mov A,#00 ;Set delay / kekuatan servoMovc A, EA+DPTR ;Mov GRO,A iInc R0 ;Inc DPTR ;
KirimPaket;Push DPHPush DPL
Lcalf KirimPaketDataLcalL AnrlcilDataSeriaf
Pop DPLPop DPHRet
; Ambil data serial (ACK atau info dari DSR-08)
AmbilDataSerial:Lca1l Serial_InCjne A,#lEh,AmbilDataserialLcal.l- SeriaI InLcall Serial InLca1l Serial_InLcall Seria1 InLca-l1 Ser]-al InMov B,AMov R0, #BufferMov GRo,AInC RO
LoopDataln:Lcall Seraa-l fnMov GRO, AInc R0Djrlz B, LoopDatafnLcalI Serial_rnRet
KITIMPAKCLDAI :
Lcafl AwalPaketMaster
Mov R0, #BufferMov A, @R0
Mov R7,ALcall SerialoutCS
Mov R0, #Buffer+lLoopBufferout:
Mov A, GRO
Inc R0Lca11 SerialoutcSDjr,z R7, LoopBufferoutMov A, +00Clr C
Subb A, Checksr-mDaLaLcafl Serial_outRet
784
98r
nterfuepe8 durftn[el^JuEueXupETaqe&+'lltdo ..!oW
: fp{ouvueuExuEpeE
n[e14uepeg durl'I.rnpunl^Jueueypsq,I+'u,ldo ..\oI^I
: -rnpunwupuexuEpeg
ntel^JuEpeg durFT-rnpunwTrTxpaq[#'tt,tdo AoI^I
: f,npun {TfTxuepeg
!
uns {3aq3 qequre[]
1.re1s j
1au.^or{ppv
T TEC'I: sJlnoT€T_ras
/1'oI^I
ppvJUI.^'oI^I
: -zaJl:n8a^es
1eETTEs'I
.1\oI^I
T TEJT1\Or{
TTECT.^ol{
TTECT1\oI4
AOI^I
TTPCT.{\or.I
:14{edTer v
V 'eleoumsltoer{JpleGlrnsIcaqJ 'V
?no-Ter-ras
v ' elPcums{caqJelecurns{ceqc'v
OEv'0u0
sJlnoIeT-rasssa.rppvacT^aG 'v
c1)anoTPTfacolacrAeo# /v
sclnoreT.rasurnNac-rnos'VsJlnoTET-ras
ad J,eclnos'V
V ' eleoums{3ar{Jlno-TeT-ras
XJS+,V
1ausJlnoTET-ras TTecT
ssa.rppvaJr.l\ao'V 1\ol{
sJlnoTEr.ras TlecToIecT^eo+'v ..rotr{
sSlnoTer-aas TTesTurnN?46-rEJ, 'v 1\oW
sJ?noTeT:as TTecTad J,1a6-reJ'v ,\ol,I
V'elecurnsIcaqJ AoN?no-TEr,ras TTecT
xls#'v 1!otr{: -re?sEN1a{edTer v
Bab 7: Robot Laba-Laba dengan 6 Kaki
BadanKiriAngkat :
Mov DPTR, +TabelBdnKiriMaju
BadanMaju:Lca11 SetPosisiServoLcaIf SetPosisiServoLcal1 Set.PosisiServoLcall SetPosisiServoLca11 SetPosisiServoLcafl SetPosisiServoLca11 Delay-10OmSLca1l setPosisiServoLca11 SetPosisiServoLca11 SetPosisiServoLca11 Delay-10OmSLca1l SetPosisiServoLca11 SetPosisiServoLca11 SetPosisiServoLca11 SetPosisiServoRet
PutarKiri-:MovLca11LcallLca11LcaIlLcallLca1lLca11LcaIlLcallLcalILca11Lcalll,ca I fLcal1Lca11Lcal-l-LcallLcaIlLcaIlLca11Lca11Ret
PutarKanan:MovLcall-LcallLcal1Lca]1Lca11LcaIlLcal1Lca11Lcaf1Lca11Lca11Lcal 1Lca1ll,cal I
DPTR, #TabelPutarKiriSetPosisiServoSetPosisiServoSetPosisiServoSetPosisiServoSetPosisiServoSetPosisiServoDelay-10OmSSeEPosisiServoSetPosisiServosetPosisiServoDelay_10omsSetPosisiServoSetPosisiServoSetPosisiServoDelay-10OmSDelay-10OmSKaki 6LangkahMaj uKakiLLangkah.l4a juKakiTengahlurusKaki 3 LangkahlurusKaki 4Langkahlurus
DPTR, #TabelPutarKananSetPosisiServoSetPosisiServoSetPosisiServoSetPosisiServosetPosisiServosetPosisiServoDelay_1 0 OmS
SetPosisiServoSetPosisiServoSetPosisiServoDelay_10 OmS
SetPosisiServoSetPosisiServoSetPosisiServo
186
L8L
Jnpunur Tn[eu] 9n[eur ?n[Eu] Z
1e{6ue g
lEltoue E
1e{6ue T
sn.znT zsn-anT zsn.Tnl z
T{ex I
rvpv I
T)tex ITYPV J
T{ex j
T)tpx I
T{ex 1
sEnE.lsenu jsenE I
nFeur g
fnpunur E,rnpunu e-rnpunu T
1e{6ue g
1e)t6ue ?1e)t6ue z
sunT zsn,rnT zsn-rnT z
Tvpv I
T{ex j
T)tex iT)tex I
T)[EX Itvpv j
I{ex 1
senu I
senu I
s€nu I
un-rnl I r{ex 1
unfn? e r{px I
un-rn1 T Tliey j
n[pur T r){EXj-rnpunu 9 T)tex ilnpunu , T{exl:npunu z T{exl?eI5ue E T>{exi?E){6uE E TltEXr1E>[6ue T T]IEX I
sn-rnT z s€nuJsn-rnT z sEnEjsn-InT z senE j
r{08'0I't0'I0 soI{08 ,OT ,LO ,EO ACq08 '0T ' L0'20 aor{08'9T'L0'10 aoq08'8T'?0'e0 aoq08 'LT 'VO'20 soq08'8T'?0'T0 ao
q08'€T'80'80 aoq08 'ET ' EO'ZO SOr{08 'tT 't0 'T0 ao
: jrnpunl^Irf TXpgq&
q08'9T'80'80 aor{08 '9T '80'20 aoq08 '9T '80 'T0 sG
I{08 ,TT , LO, IO SC
q08 '9T 't0 '80 acq08 '0T ' t0'20 sor{08'0T't0'T0 ao
r{08'8T'80'e 0 aor{08'LT'80'20 AGi.I08'8T'80'T0 AO
r.I08'tr'L0't0 scr{08 'tT ' L0'20 aor{08'eT'L0'10 ac
: n Iel^Jueue)upgIeqeJ
r{08 '9T 'n0' t.0 aoq08 '9T 'i0'20 aoq08 '9T 'V0'10 so
r{08'9T'€0'T0 soq08'9T'10't0 sotIO8,9T,LO,ZO SCq08'0T ' Lo't0 Eor{08 '8T '?0 '80 aoq08 'LT 'n0'20 scr{08 '8T '?0'T0 ao
q08'ET'80'e0 aor{08 'e T ' t0'20 sqr{08 'e r '€0'T0 a6
: n Ier{r-rrXrrp8T aq€,],
OAUSS NV)rVUEE TESVJ '====== !
1aEsn-rnTqe{5ueT?T}tPx TTec.Isn-rnTq€{6ueTeT{ex TTE3T
sn.rnTqP6uaJr{ex TTecTntel^IqE{6up.ITr{eX TTecTntEWrIE{EueT9T{eX TTecT
suro0T-.{EToc TTec.ISur00T-1{eTaO TTer.I
Bab 7: Robot Laba-Laba dengan 6 Kaki
01-,04,1-5,80h02 ,04 ,15, 8 0h03. 04, 15, 80h
TbBdKananMundur:
DBDBDB
01, 07, 13 , 80h02,01,13,80h03 ,0"7 ,13 , 80h
01,08,18,80h02,08,17, 80h03, 08, 18, 80h
01,03,16,80h02,03,16,80h03,03,10,80h03,07,16,80h
01,08,15,80h02 ,08 ,1s , I 0h03, 08, 15, 80h
;Kaki 1 turun;Kaki 3 Lurun;Kaki 5 turun
;Ruas 2 lurus;Ruas 2 lurus;Ruas 2 furus
;Kakj- 2 angkat;Kaki 4 angkat;Kaki 6 angkat
;Kaki 1 maju;Kaki 3 maju;Kaki 5 maju;Kaki 6 mundur
;Ruas 2 lurus;Ruas 2 lurus,'Ruas 2 furus
;Kaki 1 angkaE;Kaki 3 angkat;Kaki 5 angkat
;Kaki 2 maju;Kaki 4 mundur;Kaki 6 mundur
;Kaki 1 turun;Kaki 3 turun;Kaki 5 turun
;Ruas 2 lurus;Ruas 2 lurus;Ruas 2 lurus
;Kaki 1 angkat;Kaki 3 angkat;Kaki 5 angkat.
;Kaki 2 mundur;Kaki 4 maju;Kaki 6 maju
;Kaki 1 turun;Kaki 3 turun;Kaki 5 turun
DBDBDB
DBDBDB
DBDBDBDB
DBDBDB
TabelPutarKiri:DBDBDB
DBDBDB
01,03, 13, 80h02,03,13,80h03, 03, 13 , 80h
0L,04,18,80h02 ,04 ,17 , 8 0h03. 04, 18, 80h
DB 01-,0'l ,l-6,80hDB 02,0'7,15,80hDB 03, 07, 16, 80h
DB 01, 04, 15, 80hDB 02,04,15,80hDB 03, 04, 15, 80h
TabelPutarKanan:DB 0L ,0'l ,13 , 80hDB 02,07,13,80hDB 03,01,13,80h
DB 01, 08, 18, 80hDB 02 ,08 ,17 , 80hDB 03, 08, 18, 80h
DBDBDB
01,03,10,80h02,03,10,80h03, 03, 10, 80h
01, 08, 15, 80h02,08,1-5,80h03, 08, 1s, 80h
DBDBDB
188
V68r
un-rnl T senu idels g senglnfeu Z senE,
1e:16ue1p T sengl
un.rnl T sEnujdeTs e senul
sn.rnT Z senu ilP){ouPrp T senEi
un.rnl T sEnUJdPTs e sPnui
snJnT z senujle){buerp T sPnul
unrnl T senEJdels g seng:
sn-rnT z senul3e>16uerp T senE j
unf,nl T senEtdels g sengl
sn-rnT Z senu jleIEuETp T senuJ
un-rn? T senu jdeTs t senul
snjtnT z senu,i?e}{6uerp T spnEj
un:n? T senulders € senEj
snrnT Z sPnEife{6u€Tp T sen6l
fnpunurTTliE){zsPnujsn.rnTtT{eIZsenE!
rnpunu9T)ieyZsenujsn.ilnT T T{e{ z senu jsedaT 7 Tlte{ ra)tcns 1
sedaT e T{et ra)tons i
sn:nT?r}[EIzsenuj
-rnpunuE-I{e>{zsPnu,sn.znT9TXe>{Zspnuj
-rnpumuTT{e{zsenu,sedoT ? r{e)i ,ra{cns jsPdaI E r{e)t .ra{cns j
q08 'ET ' n0' t0r{08'9T '20'10q08 '9T ' e0 'T0q08 '0 2 '?0 'r 0
acEqgcl
EA: n[er[TT{pX
I{08 , ET ,80 ,IO EICIq08'7T'90'80 sqtI08'tT 't0'e0 scrrI08'02'80't0 ao
: snJnTgT{eN
r{08'sT '?0 '€0q08'eT '20't0I{08, ET, EO, EOr{08'02'?0't.o
q08'ET'50'20q08 '7T '90'ZOqO8 ,ET ,
LO,ZOr{08'02'80'20
EIG
EGEICI
EC: SNf,NTETIEX
SGEIG
EIGgo
: sn-rnT7T{ex
q08'9T 'V0'20 Ecrr{08 'tT '20'20 sorIOS ,
ET , I,O'ZO EG
q08'02'no'20 EG: sn.rnTtr{ex
I{08 ,9T ,80 , TO ECI
rI08'?T'90'T0 acri08'ET'L0'10 gcrrI08'02'80'T0 Eq
: sun.IZT)iex
q08 'ET 'n0'I0 soq08 'ET '20'10 aqq08'rT't0'T0 sor{08'02'?o'T0 EA
: SNf,NTTTXE)I
qO8 ,9T , LO,ZO EIG
q08 'rT 't0'20 aoI{08 , ET
, LO, I,O EIq
r{08 'Er'e0 'T0 aqr{08'tT'90'20 ECrq08'TT'10'20 so
: ueuex6uorasTeqe,I,
I{08 ,CT , LO,ZO EG
q08 'TT ' t0'20 aoI{08 ,
ET , LO, TO EG
q08'TT'80'T0 sor{08 'TT '90'ZO AOq08 '1r '10' z0 Eo
: T-rrX6uo"raSTaqeJ
Bab 7: Robot Laba-Laba dengan 6 Kaki
Kaki2Maju:DB 01-,08,20,80hDB 01-,07,15,80hDB 01, 06, 14, 80hDB 01, 08, 15, 80h
Kaki 3Maj u :
DBDBDBDB
Kaki4Maju:DBDBDBDB
02,04,20, 80h02,03,15,80h02,02,1-3,80h02,04,15,80h
02,08,20,80h02 ,0'7 ,11, 80h02 , 06 , L4, 80h02,08,15,80h
03,04,20,80h03,03,11,80h03 ,02 ,14, 80h03,04,15,80h
03,08,20,80h03 ,0'7 ,L2 ,80h03,06,14,80h03,08,1-5,80h
01-,04,20,80h01, 03, 1l_, 80h0L,02 ,15, 80h0L,04,15, 80h
01,08,20,80h01-,07 ,11,80h01, 06, 14, 80h01, 08, 15, 80h
02,04,20,80h02,03,11,80h02,02,13,80h02,04,15,80h
02,08,20,80h02,01 ,15,80h02,06,14,80h02,08,15,80h
03 ,04,20, 80h03, 03, 15, 80h03,02,14,80h03,04,1-5,80h
;Ruas 1 diangkat.;Ruas 2 maju;Ruas 3 siap;Ruas l- E.urun
;Ruas 1 diangkat;Ruas 2 maju;Ruas 3 siapiRuas 1 turun
;Ruas l- diangkat.;Ruas 2 maju;Ruas 3 slap;Ruas 1 turun
;Ruas 1 diangkat;Ruas 2 maju;Ruas 3 siap;Ruas 1 turun
;Ruas 1- diangkat;Ruas 2 maju;Ruas 3 siap;Ruas 1 turun
;Ruas I diangkat;Ruas 2 mundur;Ruas 3 siap;Ruas 1 turun
;Ruas 1 diangkat;Ruas 2 mundur;Ruas 3 siap;Ruas I turun
;Ruas 1 diangkat;Ruas 2 mundur;Ruas 3 sj-ap,'Ruas l- turun
;Ruas 1 diangkat;Ruas 2 mundur;Ruas 3 siap; Ruas l- turun
;Ruas 1 diangkat;Ruas 2 mundur;Ruas 3 siap;Ruas 1 turun
Kaki 5Maj u :
DBDBDBDB
Kaki6Maju:DBDBDBDB
KakilMundur:DBDBDBDB
Kaki2Mundur:DBDBDBDB
Kaki3Mundur:DBDBDBDB
Kaki4Mundur:DBDBDBDB
KakiSMundur:DBDBDBDB
190
t6r
I SPnjr ?e{6uer
ire>tcns lopes iunf,n1 9'r{e)iTsenul
.ra{cns lopas a
un.rn1 zT)|exTsenEi
q08 'ET '80 '€0 soq0 8 ' ET 'n0' t0 scr{08 '7T '80' ZA AOq08 'gT 'v0'20 Eoq08 '?T '80 'T0 aoI{08 ,
ET ,NO,IO ACI: rxPxun.rnJ,Taqe&
r{08'ET'90'E0 sGq08 'eT '20't0 Eqq08 '?T ' 90' z0 scq08 'er '20'20 sqT{08 ,
?T ,90 , TO ECI
q08 '9T 'ZO'rO SG: ESenule{6uYTaqE[
r{08'02'80'E0 €rcr{08'02'70 '80 EioIt08 '02'80 '20 sGq08 '02 '?0'20 sGrI08'02'80'T0 sqr{08 '02 '10'10 so
: T{ex91e}i6uvTaqPJ,
q08'?T' L0't0 soq08'tT'80'e0 Eori08 'TT ' L0'20 ssq08 'eT 't0'20 ECr
I{O8,ET,LO,IO ECIr{08'ET't0 'T0 so
: T)iex9sn.rnrlTeqeJ,
€ sen-z uE>{dPrs i
q08 ' rr 'T0 ' t0r{08 '9T '?0'e0
EOSG
: un.rnJ,ET)iex
un.Tnlunfn?
deTsdPTs
sn-rnTsnf,nT
1P{6ueTp1P)i6uetp
senE isenu.'senE J
senu iZ SPNEJ
z senEaI senuiI senEl
I{O8,EZ,90,TO ACr{08'9T'80'T0 so
: unf,r\LzT{Ex
q08'9T'r0't0 sGr{08'9T'80'T0 soq08'eT '20'to acri.I08'?T'90'T0 ACr
r{08'e r't0'80 rroI-IO8,ET,LO,TO EGq08'02'?0'80 €roq08'02'80'T0 8(
: sn-rnTqEEuattr -[ xEx,],
r{E5uaf T{e{ ue{e.re6-ue1e:ao :
un.rnl T senEldels g sengl
-rnpumu Z sEnU I
lPI6uPrp T senEl
r{08 '9T '80'E0I{08 , ZT ,90 ,
EOr{08 '9T'L0'e 0r-I08'02'80'80
sqaoEqAG
: -rnpunl^I9T{e}I
Bah 7: Robot Laba-Laba dengan 6 Kaki
Inac serfar:MOV SCON, #52H ; Mode 1 Ren
; MOV TMOD,+2OH ; T0 Mode 2, T1 Mode 2
Mov A,TMODAnI A, #oFHOr1 A, #20HMov TMOD,AMOV TH1, #OFFH ; 51600Setb TR1MOV PCON, #8OH iRET
Serial-Out.:C1r TIMov SBUF,A
'lungguK1r rm :
Mov 0A6H, #lEHMov 0A6H, +0E1HJnb TI , TungguKirimCIT TIRet
Serial_In:Clr RI
TungrguTerima:Mov 0A6H, #lEHMov 0A6H, #081HJnb RI, TungguTerimaMov A, SBUFCIT RIRet
KirimPesan-SeriaI :
Mov A, *00HMOVC A, GA+DPTRCjne A, +0FH, KirimTerusRet
KirimTerus:Lca11 Serial-OutINC DPTRAjmp KirimPesan-Serial
; SUBROUTINE DELAY
Delay_ldetik:Mov Counter-Sms, #0200
Tunggu_l-detik:Lca11 Delay-SmSMov 0A6h, #LEhMov 0A6h, #081hDjnz Counter-sms,Tunggu-ldetikRet
Delay_50oms:Mov Counter-sms, #0100
Tunggu_5 0 oms :
Lcall Delay-5mSMov 0A6h, #1EhMov 0A6h, #0E1h
it
792
7
e6r
'Jnpun(U>lere6Jaq 6uer{ pqel-eqpl }oqor uelera6 eu1rro61e ue{srlnJ
'uorl)ns rs6un; ueqpqruB] ueDuepEurrrur Dueprq eped eqey-BqBl toqor uelete6 etu1uo61e uplsrlnl'{rueJel Eurpurp rp ledrueuau >ln}un uorl)ns lrJpueur ledep eJ}slers6ung ueEuap olres re6e uelqnlnqp 6uer{ lrue>leLu uelrpqtupD
'€
.Z
uBr,{!lB'I
falunoc 1-Iq 9T apol^I -raurrJJ
1auHLo doa
SI^I0S^eTapdooT'LE zul1qTEO#,q9V0 AoI^IqsT#'r{9v0 1!owSurE-^eTac ITEc.I
: 51a19 gzlelepdool0T#'LU 1\old
HLo qsnd: 5urg E-.{e1eq
1aEoor{,r dodOEf fTJ
: surE-r{epns
SUE-n55unJ, d*!tsurg-rlepns ' odJl cqIl
: Surg-n66un;
oEJ qlasHddo# 'OT,t l\ohlHOEO# ,OH.I 1'OW
HTZ+,COI^IJ AONqow,t qsnd
: SUJE- €TaG
1aEStlr0O1-n66unJ,/Surg-JalunoJ zulq
r{TEo#'r{9v0 Aor^Ir{ET#'r{9V0 1!ohlSurE-IeTao TTec.I
: gu:gg1-n66un;
020#'surE--ralunoJ AoI^I: Suo0T-^eTaC
fauSUro 0 9-n66unJ ' Surg-.ralunoJ zulq
Bab 7: Robot Laba-Laba dengan 6 Kaki
4. Tuliskan listing program untuk robot laba-laba yang dikendalikanmelalui D-Joy Controller Wireless.
5. Kembangkan pengontrolan wireless robot menggunakan TLP/RLP433 MHz atau Bluetooth.
794
7
96t
'lnqesJel 6uBro qefem leue6ueur/rlnlr6ueu: rpedas 'n1ueya1 rs{p uel-nIBIer.u Inlun loqoJ r{olo sesoJdrp uerpnual 'relndurol qalo sesordrpnlel 'ue)qern/eratuec qalo rslelaprp ersnueu qefem 'e{uyesq4 '(uott-)pJelul loqod-ueurnpl) loqor upp prsnupur eJBluB rs{Bre}ur }pnqureuledep ppuv '13uedg ue6uaq 'B>lrloqor eped qelepe er{uuedeteuadnles qplBS 'uorsrl relndruoe uBr6ord re6eqas ueleun6rp 1er{ueqrur lees 6uer{ ++3 uelsrseqJeq e)Jnos uado urerDord qelepe 13uedg
nCuodo uelooJd
loqou epBd uolsrn rolnduoc leuo6ue6l
'loqoJ eped ereu:Bl rnlelaur eu{urunrun 'se6eulrlndur qelo6uaru eun6req uorsrl ralnduo3 'fioqot TueaLas) ue,{e1ed }oqoJre6eqes uelderelrp ledep 6uer{ ersnueur durr-u }oqor }enqtuetu qelBperur r6o1ou>1e1 uesenDuad uep qery '6ugued lB6ues uorsrl relndluocueesen6ued eleu 'lppueq 6uer{ proueulnq }oqoJ unEueqtueur ur6ur e>1rp
uBnlnqBpuod
loqoa tlnrun uolsl^ randuoc
TBab 8: Computer Vision untuk Robot
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
', LrarfreHorE5UKU[]lfij'-it,o'::,:. ffiM1 rts uertsuttS :i t: ^':"l: ri VL++ BUIId!i
i + !c++ Dire.tories i
I Web 5eitinqs I
ll3windowsFtrroDtriqrer l,nt11i:1:1,);11i,i;,.;1:11 ;,1r;;11g11s ii::ri Xl'lL OEiBffir
Libtaly Oirrtt{iiajPath to ure urhen *arching im ht(ary filtr u*de burldflq E VC++ proiect,
CffiesFonds to Ertrirffirffit vari*le LIB,
["llt-J qfrrt i tlr i
Gambar 8.1 Konfigurasi File Librarg
Sebagai contoh, buatlah program Win32 console application untukmenampilkan sebuah gambar di Windows.
196
L6l
alnc aieut uertndueuatu uteJfioJd tlscg Z'g JequeD
: lnlrJeq requre6 lrdtuel UPIV
cdf'cru ouloc
:qelurrad ue6uepueluelef nele eldtcrel 6uBf exe' elIJ Isn{esla 'tseltdtuollp t{PIeleS'0rnopur716patueN^) ueqeun66ueu ue>11rdrue1rp nlpl'0eDeu1po1nrueleunDEueur ue{Iraq p}ll 6uer{ 6dt alIJ ppoletu uP{e selp rp uer6or6
j ( ,,tIVgi^IVe-lVldSIC-t{o1uoJ,, ) &lopurM^of lsac.I\cr (6urT{ ) oEEulIaseaTaU/\J
j (0)^aylreM ci (6uT ' ,,uvaHVc-.I'VTdSIG-tIo1uoJ,, ) a6euIAol{s^c
I ( sz I So&ov-MocNIM-AJ ",
uVAWVS-IV.Id S Ic-qoluoC,, ) 1{opurMpaureN^ci ( [T]^6re) a6eurlp€oT^J= 6urr *a6eur11d1
)(,\6-re + +:er{c 'c6-re 1u-J ) uTPllr 1ur
<q'rn6q6rq> apnT3ur#<q'.1\3> apnTcuT#
rq'oruocr apnTJuT#,,r{'xlep?s ! apnlJur+
uro3' Elruo"rl{aIa-o{o1'/v\.lwh uloc' loqo-r-o}tol'/vta.ryI //g1g7 opoplg .aw
^a / /
lnurr -zequrE6 ueriTTdureuaur urE-r6oJd ouJoa / /sddc'ouec
Bah 8: Computer Vision untuk Robot
Berikut contoh program memodifikasi/memroses gambar:
cadbar.cpps#include "stdafx.h"#include <cv.h>#include <highgui.h>#include <math.h>int main( int argc, char** argv ) {
CvPoint center;double scale=-3,'IplImage* image = a:rgc==2 ? cvloadlmage(argrv[1]) : 0;if ( I image) return -1;center = cvPoint (image->width/2, image->heighL/2) ;for (int i=0; i<image->height; i++)for(int j=0; jcimagle->width; j++) {double dx= (double) ( j-center.x) /center.x;doubfe dy= (double) (i-center.y) /center.y;double weight=exp ( (dx*dx+dy*dy) *scale) ;uchar* ptr =&CV-IMAGE-ELEM(imaqe, uchar, i, j *3 ) ;ptr [0] = cvRound(Ptr[0] *weight) ;ptrtl) = cvRound(Ptr[1] *weight);ptrt2J = cvRound(ptr[2] *weight) ; ]cvsavelmage( "coPY.Png", image ) ;cvNamedwindow( "test", \ );cvshowlmage( "test", image );cvwaitKey( ) ;
return 0;)
Jalankan program denganseperti gambar berikut :
perintah Gambar frra.JPG. Hasilnya adalah
I
[_
198
Gambar 8.2 Hasil program
66I
i 0 u-rnla-r
J ( a-rnlde3d5 )arnldeCasEaTaE,\ce-rn1de, oapr^ Tseurvaa& / /
{I (aurEueIrJ ' ,u\sZ aTrf aoeulT e1T.rr^ o1 paITel,, '.r-rap1s) l:lur]d]
)( (aure-rdoapl^d'aureuaTrf )a6eurIa^ps^ci )fT j (T+T',,6dt'pgauretdoapTA,,auleuaTrl) llur-zds
aTTli a{ srTnl / /
{I (,,u\oure.rl: oapr^ E ?a6 01 paTTef r /-r-rap1s)Jlur-rdl
)( aure.rJoapr^di )lT
i ( e-rnldEJd )aulE-rd^-ran0^J = aure-rdoapr^d]
(++r 1t>I i0=r),roloeprA auP-rJ e TTqurv //
, f _ uJnle-rj ( !u\upcqaa TsesrTersrur lEbee ,, '-r-repls) Jlur]dl:
)( a:rnldEJdi )lT j (
^NV-dVC-AJ )I^IVJulo.r.{e-rnldpJAJ = a.rnldeJd
e,rnldEc oapT^ rsesrTeasr.ril / /
j [0E] aueualll!a
-:er{J1uT
j0 = aure:JoaPTAd + eoEurJIdII0 = a]nlde3d + a-rnldeJ^J
(,\6-re r + -Ter{c 'c6-ae a,r-, ..-t* a,rl
,,r{' rn6q6rr{,, apnTruT#
' ";l'i3:: :B:+:X+l
,q'oTp1s,, apnTcuT#
o, o . -"i:y;J;rn ?;;d''^lli" ), aure-r] uEdurrs uEp uecqaa a{ rs{auo}t ouaq //: ddc . ernldECurecqe1,l
J ( INV-dVJ-AJ )I^IVCuto,r.{a-anldEJAc = a:n1de3d
: qelepe ueleun6rpurnrun 6uert rs6un; eupturp 'rur lnlrreq epol otuep ue>1eun6 'lnqasJal
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.
Integral image untuk deteksi fitur yang cepat.
200
rTOZ
j (T-) lrxii
I (,,u\ Te6e6 TsesrTeTSTuI.,) l:1ur,rd)
(opEcseJdi ll a6erolsdi ll 6ur1du1d;)4t
'rPuaq ueDuap PPol-lPelrJ uplrlsprueur >lnlun uPle)e6ued ueTraq efulreqag 'q]Pd t{plPs
upurl6unueI PPP ntuel 'alIJ IreP PteP Peol-erx Dulres ue{P PpuY '€
j ( a6e.rolsd3 ) a6Pf olsurar{asEaTa}Il\c
'rpselss r{PIe} P{I}aI P^u-esPelaJ-elu uep
I ( o ) a6erolsurawaleaJJ1\J=e6erolsd
:e^ulenquleu qelePe ueIPfJe{ pPuY snrel{ 6uetr'reJJnq
e{ IIA}aPJa1 6ue,{ qefern reuPPuaur ue{P ro})a1eq 'a6ero}sluaw^)
{e[qo uplqnlnqueu PPuY 'e6eult eped qefem Is>le]apuau unleqas 'Z
'ueleun6rp >1epr1 6uef :aleutered ue>16ue1rq '++) ueleun66uaueIIl '0 rpelueur B,{uBsts reletuered les ') eped apol }pnqureu epuve{lf '}ndu! re}eruPred 5 ue>1qn}nqtueu Duer{ a1t3 Irep e}PP Ppol-euInlun ulnuln rs6ury qBIPPP Ppo-I^D '$peo1nc rs6ury ueleun66ueuledep epuv 'eperse3d eI IWX PlPp Peol-eu InluD "IWX ellJ
rJpp plep uBdtutfuetu apecse3d x ePP)sP)reIJIsspl)rePH^) aIqPIJPA 'l:qe[e76 rs{e}eq rselueueldul
'Bpe uelplellp lnqasrel rnlrJ '(6uru"ree1 etueles las-lP) Ploqserqlsple rp ueepaqred elrp '6uerel qereep eler-elpr lexrd rrep de1a6 qeraePplpJ-pler lexrd ue6uern6uad qalo uelnluellP rBeH 'dele6 I UPP 6uere1 1
,ueqelaqasraq 6uer{ t6es1ad uefiuesBd L{elBPe Ie}oI Euequolafi '1suetu1p
Z eped '>lploy Duequole6 qenqes qelppe "reeg Duequola6 Inlueg 'rPeH
6uequrole6 Inlueq ueleun66ueu seuor upp plor^ ueleunDrp 6ue[ rnlrg
'uersrJe eJe)as JnllJ
1er{ueq ue{tseulqtuol6ueur {n}un ePe)se) 1se4;1se116ued qenqeg .'lsoogepv Durureal eulq)Ptu epolew .
Bab 8: Computer Vision untuk Robot
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"
/ / ******** *********** **************+
#define OPENCV_ROOT "C:/Program Files/OpenCV"/ / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
void displayDetections(Iplfmage * pfnpfmg, CvSeq * pFaceRect.Seg);
int main(int argc, char** argv){
// variablesIpflmag:e*pInplmg=9,CvHaarClassifierCascade * pCascade = 0; // face detectorCvMemstorag:e * pstorage = 0; // memory for detector Eo useCvseq * pFaceRectseq; // memory-access interface
// pengecekanif(argc < 2){
printf("Missing name of image filet\n,,"Usage: ?s <imagefilename>\n", arW[0]) ;
exit(-1);)
// initializationsplnplmg = (argc > 1) ? cvloadlmage(argv[1], CV_LOAD_IMAGE_COLOR) : 0;pstorage = cvcreateMemStorage(0) ;
202I
Il.' e
f€,oz
I ( MOCNIM-Ld S IO ) r\opuTM^o.I? saG^ci (O)^aXlreM c
I (bulduId',MOONIM-IVTdSIG ) e6Eurll{oqs^cue{TTdue? //
{
(O 'V ' E '(O'ggz'OlaeE-AC 'Z?d 'I1d 'SurIduId)aTouElcau^c,{ 1r{6Tar{<-r +
^<-l 'qlpT/,l<--r + x<-.r } = Zld lurod^J
! { ^<-a.
'x<-f, } = T1d lurod^c1 (r 'baslcaEacedd)ureTgbes?ae^c(+lcell^3) = -r +13aEAC
)( ++1 : (O: Telol<-baslcauace.{d abeslcauacedd) >rJ0=T)'roJ:
uorlJalap qcEe puno-Ie auTTlnO fpTn6uelCaf e llleap / /
j ( E Z I S O,InV-MOONIM-AJ' MOoNIM-^V'Id 5 1q ) atopu f MPeureNAcsase] pa1c31ep .{eldsrp 01 8lopuTlv\ e aleaa) / /
j ,,r opuT}.4
(baslcaEace.{d + bas^J
jr fuTfEPfi,, = MOCNIM-I\V'IdSIG + -req3 lsuoJ
),Euitduld + aoeurITdI) suoTlselac^eTdsrp pro^
I0 u-rn?a-r
I (e6e-rolsdA) a6e,rolSueI^IaseaTalI,\3 (aoelolSd) l:TI ( apEcseJds ) apEcseJf, ar J r ssPTc.rePHesPalaEAJ ( apesseJd ) f "l
j ( EuIdulda ) aoeurIaseaTeE^JsaJf,nosaf aseeTaf pue dn uee-lc / /
1 (baslDeEacpJd' ourIduld) suoTl caleo^eTds rprs{alapJa1 6ue^ qeter u>iTrdurel //
= 1calap 01 ace] azrs lseIIeuIS
ureluoc 01 ^TalTTun
suor6a-r dr)issuor?ca1ap aa-rq? l:o sdnofE a6Jau.l
qcea Z0T ^q
alecs l{Jreas aseafJuT
0 7x0,I ( (0r'0r)azrs1\c
aceJ €
/ /'9NINflUd-INNVJ-OO-1{WH-AJL
ssed,I'I
'aoe.rolSd'apecseJd'bu1duId)slca tqolJalacfeeH^s = baslcauacedd
aOEUlr uT saJef 1oa1ap //
{i (T_)1rxo
I ( [T]^6,re ",o6ero1s
elep f,oJ ^f,ouraur
e?ecoTTe 01 aTqeun,,: ,!1CA-T-IO3 ST qlEd alns a{euu
,, -- apecsec-.reeq peoT 1,uec,, a (apeJseJdi); ,, aTTf a6eulT peoT 1 , ueJ r a (ourrdurd i )
, ,,u\s% :paTTef uoTlezTTe-I1ruI ,, ) Jlurrd)
( aperse3di ll a6e:o15di ll 6ut1du1d; 1;t1IT.rado.rd pazrTerlrur 6utq1.{:ala lEr{1 a?eprTeA //
j(o'o'o' ( ,, TuD(' l TnPl:ap-aoeJ Teluo-rl-apessec-reEq / sapecsEs-reel{/Ef €pl ,,,IOOE-ACNEdO ) )
peorI^3(+ apEcspCrerJ-lsseTJ]ePH1\C) = apeJseod
Bab 8: Computer Vision untuk Robot
Gambar 8.3 W4jah cantik gang terdeteksi
Tracking Wajah
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^
I O TTVITUr tu-FlsbunJ rsa:u'tJeA ////
t0 = IdoJeureJdoapr^d + aEeulITdIsaTqer"rp^ IeqoID ////
,,ACuedO/saTTJ urp:6ofd/ : J,, ,toou-ASNsdo aurl:ap#j,,/'lopurM^pTdsTC" = MOoNIM-IVTdSIo + -rer{) isuo3
,, J' -raddpf,r -f JTr{sure3 r apnTcuT#,, q' radde-r/v\-l !t Tr{suec,, apnTour+
i 3' lapaJe] ,, apnlsur#!q'lapacE]! apnTcur#,, ) 'a.rnlde),, epnTJuT+,, q ' a-rnldec ,, apnl sur #
<i{'orpls> apnT)ur+,, q ' Tn6r{6rr{ ,, apnT cur #
,,q'..Ic,, apnTcur#uroJ's)r1ou6oJ eldrJ >PH //
qEtel^ 6ur{Jeal, ouaa / /ddc.{cEr[ecrJ
:e{uePol qo}uo) rur }nIrJeE
. ? q, a ] D u B r r s e ru el: o;'t#'
il'r? ?:Xr*"XIll:;tffi ;' iil i:t ::: iuelra: Iplol rJep lnpns upp upJnln uplrpnsefuaru BDn[ Br puaJBI
.; ls ueew,, e^ueq uelnq 'up{pun6rp a^rldEpp ,{lsonurluo) epolaw
'lnPns upP uern{n 6un1rq6ueyl
'enr)ruEuro) urJoQ r{elo ,,}J!r{s upew,, eLulrJo6le-jplrpsppreq rselr^eJ6 lesnd ueDuap uelEunqnqDueru Inlun lelo{i:';rqs sasord 'nJpq rsB>lol a{ Jesa66ueu In}un qe{Dupl uplrse}-uaLUaldu-rrDuaur 0UUSIuB)A) rs6unJ 'Iplo{ }psnd aI IIp{ edereqeque{nlplrC 'rselrner6 }psnd qp/y\alar.u ez{u1e1o1 e66urq lp}o>lrasa66uaLu 'nlp-l 'Ielo{ qenqes I.uplep ,{lrlrqeqord-a)pJ relru rJepIselrApJF ]esnd Dunlrq6ueu upp p{uunleqes rsplol eped relnueuup6uep lnqesral nreq rsp{ol rrp)uau ue{p el 'r(lrgrqeqord ere; e6eurrBppd 6ueJe1 laxrd r:ep rD6uq rspJluesuol upDuep BeJp pppd lesndralledel lenqueul 'qeferrr rsp{ol rrep e^ursE(ullse Jese66ueur urqsulp)
'9
'v
Bab 8: Computer Vision untuk Robot
/ / CapLure and display video frames until a face// is detectedwhile( 1 )
i/ / mencart wajah pada nexE framecapturevideoFrame ( ) ;pFaceRect = detectFace (pVideoFrameCopy) ;
// Tampilkan imagecvshowlmage ( DISPLAY-WINDOW, pVideoFrameCopy ) ;if ( (char)27==cvWaitKey(1) ) exitProqram(0) ;
/ / exit Ioop when a face is detectedif (pFaceRect) break;
]
/ / init.ialize t.rackingstartTracking (pVideoFrameCopy, pFaceRect) ;
/ / "lrack the detected face using Camshiftwhite( 1 )
{CvBox2D faceBox;CvPoint facePoint;
/ / ar&)il next frame videocapturevideoFrame ( ) ;
/ / Lrack wajah Pada video framefaceBox = track (pVideoFramecopy) ;
// Bentuk eliPscvEllipseBox (pVideoFramecopy, faceBox,cv_RGB (50,255,0) , 2, CV_AA, 0 ) ;cvshowfmagie( DISPLAY-WINDOW, pVideoFrameCopy ) ;
) tf( (char)27==cvWaiEKey(1) ) break;
exitProgram(0);)
int initAll ( )
{if( linitCaptureO ) return 0;if ( I init.FaceDet (OPENCV-ROOT
" / daEa /haarcascades /haarcascade-frontal face-defaul t .xml " ) )
return 0;
/ / Buat jendela displaycvNamedWindow( DISPLAY-WINDOW, 1 ) ;
/ / flltiaLLze trackercaptureVideoFrame ( ) ;if ( IcreateTracker(pvideoFrameCopy) ) ret.urn 0;
/ / SeL parameter Camshj-ftsetVmin(60);setsmin(50) t
return L;
206
&
ILOZ
opopllyl'rN qe[bm 6u14ce4 uep .sqa:.np ilseH g.g requeD
{'.- ^ - -ro< -^doCeure-rdoep rAd
r ( o Yo ,iuij.urrrro.pl4d )drI.{^c)
palra^uT sr aoeurT ar{? sueau T // ( ur6T.ro<-IdoJaure-rdoapT^d == T )lr1 ur6 r jro< - aue-rdoapr^d = ur6r]o< -xdo Jaure-rdoap r^d
I ( 0,-^doJauiE,rdoapr^d iaue-r.{oapTnd )Ido3^c!(
'8' (aupjrdoepl^d)azTSla[}/\J )a6eurJa?ee.rl^c = IdoCaurerJoapr^d( 1{doJeure-adoapT^di )lT papeeu fT 11 EuTlre^ur ,a6erur
^pTdsTp aql o? al Ad.o3 I 1
i (I_)urE-r6o_zd?Txe ( aure-rdoopTndi )lT , Oaure-rdoeprA?xau = aureJdoeprAd * a6eur11d1aure-r] lxeu aql a]nldp3 // I (,,u\pg : E?eC,, ) l:tur-rd
)( ) eue-rdoepT^a]nldec pro^
{1 (apoc) lTxe
j ( )-ra{ce:J,eseaTa.rJ ( ) laoesEgasoTcj ( )a-rnldECasoTc
sac-rnosa-r aseareu //j (
^doJaure-rdoepT^dT )o6eurIaseaTaE^c
.i ( MOCNI14-IVTdSIq ) ,tnopuTg^o,rlsa6losac-rnosa"r esEaTalI / /
)(epo, 1ur)1ue-r6o-rdlrxa pToA
Bab 8: Computer Vision untuk Robot
Latihan
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:
createsamples.exe -info positiveSample/info.txt -vec data/vector.vec'num 18 -w 20 -h 20
Kemudian melakukan training dengan perintah :
haartraining.exe -data data/cascade -vec data/vector.vec 'bgnegativeSample/infofile.txt -npos 12 -nneg 2 -mem 1000 'mode ALL 'w 20 -h 20 -nonsym
Lalu buat file XML dengan Perintah:
haarconv.exe data output.xml 20 20
L* &
208
r602
1NX ue?enq ttafrqo 6u14ce4 uep lsqapp nsery L'B requeD
i t"tz
'lersretuol erunp eped up{derelrp qelet reuaq-rpuaq 6uB{ ue,{eyed loqorBpe r.unleq ue{e}plrp ledep urpues erseuopul Ie 'EJeDIqJaq upp 'pJpns
'qefern leua6ueu-r ledep urel eJB]uB 'pJsnuetu ue6uap lelsos Is>lEJa]uIJaq
ndrueu snJer.{ er{un1ua1 rur edq }oqod 'elII re}Iyes rp ue,{e1ed loqore{urrpeq qplepe }oqor rDoloulal ue6uequeryad rrep uedereq n}es qeles'plsnuetu ueefraled nlupqueu uep rde>16uolau ndtuelu 6uer{ seprarloqoJ er{u:rpeq }nlunuau qPlel }oqor r6o1ou1et }esed ue6uequ:erye6
'ersnueru drrnu 6uer{ proueunq]oqor uelpnfnmeu Jeueq reuaq ur6ur e>1rf sas{ns e66utq }enq epuysnrer.{ Iuls Ip ueryededrp 6uer{ loqor 'epuy seJa1 e[.re>1 uep e{ur-unyeqes
Iraler.u 1eleqreg 'a;ec/ue1eu qerunr eped ue,{eyed loqor qelppp IUI
Ieq urelpp 'ersnupLu ruer(e1euu ndtueu: 6uer{ loqo: qBIepB uer{e1ed loqod
uenlnqBpuad
uB^Blod loqou rnllolrsrv
ue^Blod loqou ueOuEcuBU
ploueunH uelte1od ioqoa
Bab 9: Robot Pelayan Humanoid
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:
&
214
r9tz
iu.rnle.I(sacedure.zJ,u',u\pt ztluo suleluoc aTTl: 1nduI,,
,,u\sare] 6uTuTe.r1 e.:olu .ro Z peeN,,,-r-rapf s) li?uT.rdf
)( z > saceguTerlu )l:-F
I ( .3x1 'uTe.r1,, ).^E]-rv6urIecedpeoT = sacegure-rJ,uelep EuTuTeaa peol / /
jlasJJo ,T luT)
( )ujreel pTo^
{i O ezru6oce-r
)( (,,lsal,, 'IT]^6rp)dur.r?si )]r
{j ( )u.rPeT
)( (,,uTPf,l r 'IT]^6"re)durc-r?si )l:T
)( A6.re ++fer{c /c5le 1uT )uTeur pToA
r o a6esoluT.zd pTo^i (eueuaTT] + .rer{c)^e.rJvburlacedpeoT 1uT
j (aredlsaJ,pa?)a !o:d + fpoTJ ) .roqqbTaNlsa,reaNpuTJ ?uTj (lewumNuos-ra6ute:;d ++ IeN/1J)eleg6uTuTe.r&peoT 1uT
I ( ) Plpq6uTuTp.rJ,alols pro^I OYJdop pTo^
r Oazru6oca-r pro^l Ou.reaT pro^
sed lolo-rd :uoal)urri ////
sasPJ buTuTerl palcafo.rdsenTe^ua6Te
sfolJa^ua6reaOEurT a6E-ra..\e aq1
sanTp4ua6Ta Jo faqumu aq1sabeur 6u1ute:1 J:o .rac[u]nu aqa
sfaqumu uos-zad Jo ^e.r-re sa6eur acel: Jo ^Pf,f,e
3PNaCedure.rJpalcato-rd + IeNAJ?eNTeAuoETa + IPNI\J
-r-rv13e^ua6Ta ** ebeur11d16urIuTerJ,6^Vd r eoPurITdI
suooTEu ?uTse3eduTPjrJ,u lur
1el^Jq1n-r[urnt[uosJad * lefiurorjrvburlace] ++ a6purITdlsaTqer-re^ leqoIlD ////
,,q' rn6q61q,, epnTcur+.,q'xne^cr apnTcuT+
,,ri'1\3,, apnTcuT+<q'6ur-r1s> apnTJur+<q'o-!p?s> apnTcur#
,,r{' xf ep1s,, apnTcuT+
scTlouboJ eldrJ )teH //ece.{ ourop ure,z6o.zd / /
!dda.ueETgeoBJ
.u =
.u =
.u -
.u =
j0 =
uoc .
uoTlTu6oca-r acedsua6Tg sTsPq:aq
Bab 9: Robot Pelayan Humanoid
/ / do PCA on the training facesdopCA( ) ;
/ / projecx the training images onto the PCA subspaceprojectedTrainFaceMat = cvcreateMat( nTrainFaces, nEigens, CV-32FC1 ) ;offset = projectedTrainFaceMat->step / s:'zeof (float);for(i=0; i<nTrainFaces; i++){
/ /inL offseE = i * nEigens;cvEigenDecomposite (
facelmgArr Ii] ,
eiqenvectArr,0, 0,pAvgTrainImg,/ /proj ectedTrainFaceMat->data. fl + i *nEigens ) ;projectedTrainFaceMat->data. f1 + i*of fse!) ;
)
/ / sLore the recognition data as an xml filestoreTrainingDat.a ( ) ;
)
void recoqnize ( )
{int i, nTestFaces = 0; // L]ne number of test. imagesCvMat * trainPersonNunMat = 0; / / |uhe person numbers during trainingfloat * projectedTestFace = 0;
/ / \oad tes! images and ground truth for person numbernTestEaces = loadFacefmgArray( "test.t.xt" ) ;//prinLf ("%d test faces Ioaded\n", nTestFaces);
/ / load the saved training dataif( !loadTrainingData( &trainPersonNurMat ) ) return;
/ / projecL the test images onto the PCA subspaceprojectedTestFace = (float *) cvAlloc ( nEigens*sizeof (f1oat) ) ;for (i=0; i<nTestFaces; i**){
int iNearest, nearest, truth;
/ / project Lhe test image onto the PCA subspacecvEigenDecomposite (
facelmgArrIi],nEigens,eigenvectArr,0, 0,pAvg',l',rarnImg,projectedTestFace) ;
iNearest = findNearestNeighbor (projectedTescFace) ;truth = personNumTruthMat->data. i Ii] ;nearest = trainPersonNumMat->data. i IiNearest] ;
printf("Wajah ini mirip dengan = ?d, Truth = %d\n", nearest, truth);i
)
A
276
rLLZ
{i ( (0'0)lsTrlfllv^c
' IT ] .r.lvlranuaoTa 'eueurp^ 'e6e-rolsaTTl ) a1rf,M^)!l \ ',,p8-ScaAua6rar ',aiueule^ )J:luTfds
: [002]aueure^ .req3)
(++r i sua6Tgu>r 10=r )-rol:j((O'0)1sT1r11vA)'SulrurerJ,6^vd',,6ufurerJr6.l\p"'abelolSal"[J)alr:IqnD i ( (0'0)lsTrlftlv^c
':tetilase.{ure]J,pal3ato-rd ',, lEwece-{u"lEfJ,pal'3atofd" 'o6P]of saI-Jl:)a1I'IM C
i ( (0'0)?sT'If,1fv^c'lewTe^uabTa',,1eNTeAuaora"'e6elofsoTrJ)e1I]M 3
1 ( (0 '0 ) 1sT.r:11V c
'lENr{1n-rlurnNuosfad',,1BI,0:rnNuos-rodure-r1"'e6e'rofSaITJ)a3r'rA/\Oj ( saoeJuTe-rJu ' ,, sacEJurPJJ,u,, 'aoplolseTrJ ) 1uIalT:M J
l i sua6rgu ' ,, suaorgu,, 'abE]olsaTT] ) 1uralr]M^cElEp er{1 TTe alols //
!\
,, Tu.rx'E1epaceJ,, ) 36ero1saT'Fduado^) = a5p'rolsaTrlarE3ra?uT a6e:o1s-a1tJ e aaeaac / / E,],I1IM_EC\'dOJS_AJ, O
l r lu-liaoplolseTrf + a6E-rolSoT-id^c
)( ) elEq5ururef,fiaf,ofs ProA
1T U-rnlaf
1 ( aFe-rolSaT-Il! ) e6prolsaT-iJaseaTau^)a3eJ.ralur abef,ols-alrJ aq1 eseaTe-r / /
{
1(0 'aulPure^'O 'a6E.rolSaT-Il:)aureN^gpEau,r\c(+ a6eulTdI) = [r]r]vlseAuaorei ( -t ' ,pZ-lJaAuaEra,, 'aulEuf,e^ ) l:luTrds
I [002]eulPu-re^ f,eq,j
(*+r isua6Tgu>r :0=r)-roJj ( (+ e6eurlTdI)Joazrs+saceJure-rJu)coTTV^J(+x a6EurfIdI) = f,'rvlce^ua6ra
r (o
',,5urIuTerJ,6^e,, '0 'aoErolSol-!f )aureN^gpEaE^c(+ abeurIldI) = ourIurE:JE1!VdI (0',,1eNa3eJure-rJpalcatofd,,
'0'aoE.rolsaTrl) aureN^SpeaE^) (+ lEI'{^C) = leNaJeduTe'z'Ipa1ca!o:. tu
',,?eNTEAuaOra,, '0 'abe-rolsaITl)aueN^EpPaUAc(+ 1eI^1^C) = fEI^ITeAuabrai (0 ' ,, f EwunNuosradure-r1 0
' 0'a6ero1saT"il: ) aureNlgpeau^) ( + lEI^iAJ) = lewurnNuosf,adure'rJ'dYi (0 ' ,, sa)e.{u-FPjrJ,u,, '0 'abelolsaT-!l ) aueN^gluIpeaE^3 = sa3PlurP'r[u
, (o ' ,,"i.orsr},, 'g 'abe:olsaT-If )aureNAalurpeeElr = sua'6ruu
I0 ufnla.r: ( !u\Turx'e1epe3eJ uado 1,uec,, 'f,f,ep1s) Jlurf,dl
)( a6ef,olSaTrli )lT
r(oVEE-Eev-SoJS_^c,0,|lTuIx.elPPa3E]'')a6efolsaT-lduado^D=a6ef,o1saTTfarEl.ralu-! a6P]o1s-aTTJ e eleaa) / /
ir iuTia6e-rolsaTrJ + a6ejolsalrJAC
)(lpwunNuos-radu-lE-rJ,d ++ letr{AJ) P?Eoburu-IPrJpeoT luT
Bab 9: Robot Pelayan Humanoid
/ / release E.he file-storage int.erfacecvReleaseFileSEorage( &fileStorage ) ;
)
int findNearestNeighbor(float " projectedTestFace)t
//double leastDistsq = LeL2;double leastDistsq = DBL_MAX;int. i, iTrain, iNearest = 0;
for(iTrain=0; iTrain<nTrainFaces; iTrain++){
double distSq=0;
for(i=0; i<nEigens; i++){
float d-i =projectedTestFace Ii] -projectedTrainFaceMat->data. f I IiTrain*nEigens +
il;
distsq += d-i*d-i; // Euclidean)
if (distsq < leastDistsq){
IeastDistsq = distsq;iNearest = iTrain;
))
return iNearesE,')
void doPCAot
inE i;CvTermcriteria calcLimit ;CvSize facelmgSize;
/ / set Ehe number of eigenvalues Lo usenEigens = nTrainFaces-1;
/ / alTocaLe the eigenvector imagesfacelmgsize.width = facelmgArr[0] ->width;facelmgsize.height = facermgArr[0] ->heighE;eigenvectArr = (IplImage**) cvAlloc (sizeof (IplImage*) * nEigens) ;for(i=0; i<nEigens; i++)
eig:envecEArrlil = cvcreatselmage(facermqsize, IPL-DEPTH-32F, 1) ;
/ / al.Locale the eigenvalue arrayeigenvalMat = cvcreaEeMat.( l-, nEigens, CV-32FC1 );
// allocate Ehe averaged imagepAvgTrainlmg = cvcreat.elmage(facelmgsize, IPL-DEPTH-32F, L) ;
/ / seL the PCA uermination crit.erioncalct,imit = cvTermCriteria( CV-TERMCRIT-ITER, nEigens, 1) ;
// compute average image, eigenvalues, and eigenvectors
278
6IZ
,,u\a-TE spueunnoo,, u\<pueuuoc> ace]uaora
PTTEA: e5Esnr ) J:luTjd
( )aoesnruT.zd pTol
J saceJu u-TnlaJi ( eTrJ?srT6urT ) asoTsl:
iI0 u]n1a-T
i (aurEuaTrJbuir ,,,u\s? ulo-r] aoeurr peoT ?, \ueJ,, '-r-rep1s) li?ur-rdli]
( [acedT].r.rv5urIeoEli )JT
i(STVJSI\a80-ECVWI-CVOT-AJ 'aueuaTTd6urT)a6EurIppoT^c = [aredT]-uv6urJare]aberur acEJ aq? peol //
I ( aueuaTTdouT / acedT+T' elep<-1ewq?n.rfiurnNuos,rad',, sA p*,,' aTTdlsT.ISurr ) Juecsl:
aITl: a6euT Jo aueu pup jraqumu uosrad peaa / /)
( ++aceJr .i saJEdu>acegT i 0=aJedr ) -rol
^ejr-re u€ ur saoeuT aJef aq1 eao1,s / /
I ( TJSZT-AJ ',sa3pdu ',T ) 1e]^Ia1ea.rJ^c = ?el^JlIln,rJurnNuos_rad1( (+ aEEurITdI)]oazTs+sa3edu )coTTV J(++ aoEurITdI) =-r-rv6urIace]
xr-r1eur -requmu uos-rad pue de::e obeurr-aJel aq1 ale)oTTE //l 1 a1rg1s116urr ) puraa_r
jsa3p.{u++ ( (aIrd?sr.I6uI'ZlE'aurEuaTrd6ulT)s1o6l )aIIql1^saseJ Jo .aaqumu aq1 lunoc //
(auPuaITl: ',u\s%
(
{
i 0 u-rn1a-raITf uado 1, \ueJ,, '.r-rapls);3ur:d3
)((,,-r,, 'oueuaTTl:)uedol = aTrJ?sTTEurT) i )lT
aTrl lndur aql uado //
:o=saJedu 'aJedl 1uIj I ZIS ] eurEuaTrdoulT .reqJ
t0=aTrdlsTTEurT*ETIJ]
(aueuaTTJ +,reqc)^e.r.rv6urlaceJpeoT 1ur
j (0 'T.I-AJ '0 'I '?el{Te^uabTa '1el{Tenua6ra ) azTTeur.roN^3
, ( Tl' elep<-lehlTe4uabTa'6urIuTe,rJ,61!Vd
,lTUITTCTECT,0,0
,XJVAT'IVJ ON r'AOCIS AJ',rrvlce^uabra ( +pTo^)
']:V6uIIaJeJ ( +pTo^)'sacEdurE-rJ,u) slca tqouabTgJI€J^J
Bab 9: Robot Pelayan Humanoid
t.rain\n "
Lest\n" ) ;)
Siapkan basis data file gambar berekstension .pgm dengan aneka posisiwajah. Berikan data percobaan untuk training.txt, misalnya:
1 s1ll.pgrm2 s2lL.pgm3 s3l1.pgrm4 sa/2.stgrr5 s2l2.pgm5 s3l2.pgm
Berikan data percobaan untuk test.txt:
1 s1/1.pgm2 sL/2.pgn3 s2l\.pgar
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.
220
IZZ
'@ eqo)uaw leLueles 'Duesedrp qeyel Euert qceadgol ]xaj Inpou ueleunDDueru JII>leJa pre)es rsB{runuro>{req snJeqe6n[ loqog 'epor ue>leun66uaur uelef:eq ue6uep ]oqor qelo uprrJeqrpsnJeq ueseued upujnurtu rsrJeq 6uB.( se1a6 '1nqesre1 ue66ue1adrJep upuesad le6ur6uaur upp leue6uaLu loqor qeleles 'Br{ueueu euasaqlnqesJel qefe1Y\ rser.uJoJur uedrur,{ueur uep qefern leuaEued uBr6ordue>lrser6elur6ueru uep uel6ueqrueDueur qBIBpp Jrr.{{ere} qe16ue1'oruep uer6o"rd rensos lere6raq sas{ns qple} epuv toqoJ ue6ua1 elrp
uc '(z)flnq ,(T)llnq ,(o)llnq ,il:-rol ,ru,, "fl3*3 Ie\]lnq u'lsl 'JSdpyTl '009 'pneq ,leps NIEES
luc",aEEAJSi,, ] ,0008s + pneq ,?eps ,toolrEslIJ,,,3Sd r.rPJuar{u eo8Eo
: Jsdpu,tf
( t ) e1^s trv^ li lnqTZOI NOJ PNEqEI NId IPPS
{E.Z JISVSdS} .
{dZSE dNvJSS} .
:dsq.:e4
.9I UIda1 uelDunqnqlp 6ue,{ lerres B}ep ednreq Jelorluolor>1rur 1nd1no eupurrp 'ra1lor1uo) o^Jas xBIIeJed lrep }H rsJo^ rre)uaur ourep qelppe ln>lrreg
ranor?uoD oaras )reneled ueOunqng 9.6 requeD
Bab 9: Robot Pelayan Humanoid
Latihan
2.
3.
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
I
Ib'\-
222
Iiue)qafi ueouap ramonol aldoad pqoa adlplord 6'6 requeD
)d eped acelra?u! rasD 9'6 requeD
" -*lsJ:'Et:
rnt v=Yl ,\
i-:
.axwl#itt*ilsi$;Eis.*$.8
)ruorpelE Pllec III IPnuew
'8002'oputlndtuoy pIPeW xa17'g Te1atulyaAV raprluo4or4lN Lun4ll4erd uenpued 'oPopl/Y\ 'oueqlpng
'epeler{6o^ teSJJO
'9002
'9002 ?aN' aseg PnslA 'oPopll\\ 'oupqlPng '8
'€002 'Eraqlepteg
urlreq 6e1re1-re6uudg Fcqoqoy pappaqluz 'seuoql 'lunerg 'L
se4udy uep1OOZ 'opul]nduroy elpew xel1 'ralorluo4or4lN
u/a?srs: ueDuecueta4 'oPoPI1Y1, 'oueqlPng '9
'9002'er{eqerng )tuorl)el3elrlelouul 'g1y eDrcryay o1otyuo4oJ4tN sn4eJd uenpued '31 Lueaf '9
'9002'opuqndruoy PIPoW
xela 'elntuad 4nlun raprluo4or416 4afrot4 Z/ 'opopl^\ 'oueqlPng 'V
'6002 'opurlnduoyelpew xelg 'septaS loqoA lenqluaN 'oPoPIA\ 'oypqlpng
'6002'epelefDol]asJJO rpuy 'lseTuatualdul uep uoal'e4lloqog 'oPopl1\ 'ouPqlpng
'8002 'opuqndtuoyelpaw xel3 'n1n4e74adg pqog 4afrord 0t 'opoPIA\ 'ouPI{IPng
'0I
'6
'e
.Z
.I
uencv teueo
1 1. Manual Crustcrawler dan Lynxmotion
1 2. www.toko-elektronika.com
13. www.cognotics.com
14. www.atmel.com
1 5. www.sourceforge.net/projects/OpenCV
16. www.parallax.com
17. www.mcselec.com
18. www.ti.com
19. www.wikipedia.org
20. www.maxim-ic.com
2 1 . www.beyondlogic.com
22. www.hpinfotech.ro
23. www.diptrace.com
24. www.cmucam.org
25. www.crustcrawler.com
226
i*
z x 9l xrrlPw c)lz€9tw c)rra^Je)eu parerJul InPow8€Srdosr
Ia^Ja)ad 3 relllulsuprl palprJul Inpow0tE8-drsluouole
Durled 6ue,{ i9S6SIV tunuIIuIW uelsJsIE-IS{eldsrq q13l Ze uep preoq{aY )d 'C)l
BlnurJelup ue6uep lES6S1V ulntutulw welslsIE-ISCP^Pqe) bunPullad uPllq IPIoI
uep q11nd qg1 ue6uep purplA rosues Inpow0€z-n)crsue{\IaJJ upJpnlal uBbuap PUJP/I\ Josuas0ez-s)r
snonuJluo) o^Jes Joloul PnP
qelo ue{Ipre6rp 6uei( 9 IIeIreq }oqol {luPIaW)ruPr4)ew podexeg
JrlPrJeA DueA
lsyalep 1e:e[ ue6uep le6Dunl srre6 1e[e[ua6IO-.{SCDunpurlad uesl(lEl uPDuap JolslsuerloloqdZEIJO6OSdOI
rbburl e^ep qPrauP{ul C3'lo0tt'lvsl_e^uuodser unclnP(u sldll leqal
rnlep ledep 6uer{ ln6uns ednreq srre6 1e[a[ue4Dursuag eurl dl ellaqlrueLu 9l / g lsernp upDueP eDPJralul e)lo^70 a)ron-q
loDolord fdvl)+ 70-lUS 1eq11edtuo1 'ece;re1u1 DluoserllDreuos-c
lry repo)uExx-)3q8SD SlsPqreq reluulPrDoro
ue6uep E5gge6auty d1y oJIIul lryuotsren gsD EEES-J-suEsElaluedIDtr
{eplerd 6ue$nued Iy reueQ
ue4dwel
DX-24 Modul antarmuka TRW-24 dengan sistemmikrokontroler
D-Joy Controller Ivlodul antarmuka 4 Joystick Playstationdenqan keluaran UART
D-Joy Controller (Wireless Version) Modul antarmuka 4 Joystick Playstationdenqan keluaran RF ke DX-24
DU-ISP V2.O Downloader ISP untuk berbagai macammikrokontroler Atmel (Kompatibel Vista)
Delta DC Driver Modul Pengendali 2 buah Motor DC secara HalfBridoe + pelindunq kondisi inhibit
Delta Robo CPU Modul Otak Robot yang dilengkapi konektor-konektor untuk sensor dan kompatibel DeltaDC Driver
SST-06 Sub System Stepper lnterface yang dapatmengendalikan motor stepPer bipolar mauPununipolar secara manual atau berdasar perintahdariUART
DSR-08 Smart Servo Controller yang dilengkapi metodeperhitungan nilai encoder dan deteksi kondisikeoaoalan mekanik
L293D IC Driver motor dengan kapasitas arusmaksimum 2A
HS-422 Motor Servo Hitec denqan torsi 4.1k9 /cmHS.645MG Motor Servo Hitec dengan torsi 9.6k9 /cm
metal qear
HS-8O5BB Motor Servo Hitec denqan torsi24.7kg /cmGWS SO4BB Motor Servo GWS denqan torsi 13 kqlcmDCS-01 Sensor arus denqan kapasitas maksimum 20A
Soider Leo Mechanic Kaki Robot laba-laba denqan ruas-ruasnva
DU-232 Antarmuka USB to RS232
Gripper Mekanik peniepit pada lengan robot
cB-232 Kabel serial dilenqkapi RS232 to TTL Converter
Delta Robo Arm Mekanik lenqan robot denqan 5 sumbu gerakan
KIT ROBOT PELENGKAP (ITA]UA
ROBOT BRATSG6 Arm Robot 5 axisLeoo Mindstrom NXTRobot Peoole Follower berbasis VisionSilahkan order di www.toko-elektronika.com
228
6ZZ
'tttoaopoplm@opoptm rp r6unqnqrp ledepsrlnued 'uro)'p>lruoJllela-olol'1{\A\1y\ aurluo p>lruoJ}Ial3 sn}rs r{rl[ueLu pl'uralsr{s poppequa upp elr}oqoJ >lnlun rorues ue}lnsuo{ uep ,{lrstenrupSDNIS rp 11 Dueprq rp rsrurepple uep rsrllerd qplppp oyeqlpng opopllh
' tao? 2!u otpap-enap@sn1ne d rnlelaul srlnued rDunqnq6ueut ledepePUV 'uroD')ruoJl)alo-ellep'd\1v\1r\ rp eurluo e{ruoJ}>lela olol r>lrlrtuel.uupp JalorluoloJ{rtu srspqJaq elruoJ}Iele rselrlde ueDueque6ued uelepuetueleDued:aq le6ues pl 'erseuopul Ip prupurel ualsr{s peppequeupp elrloqor uellnsuol uep rsrl>1erd qBIBpp up^\leN IpuV snlnpd .rl
sllnue4 aue\ual
,.,-';9J
td
Recommended