775_membuat sendiri robot humanoid

234
RGbGt Humdnoid AKAAN PAN .TIMUR Widodo Budiharto Paulus Andi Nalwan Free CD r Aplikasi-aplikasi Pendukung . Datasheet r Assembler r Basic Stamp Editor o Bascom AUR o Code Vision C AUR HI Membuat Sendiri Ciptakan sendiri robot mirip manusia berbiaya murah I I

Upload: drmat-rmat-ii

Post on 29-Dec-2015

368 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 775_Membuat Sendiri Robot Humanoid

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

Page 2: 775_Membuat Sendiri Robot Humanoid

fut#ltLat

ploueunH loqouu!puos l.Pnquaru

Page 3: 775_Membuat Sendiri Robot Humanoid

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

Page 4: 775_Membuat Sendiri Robot Humanoid

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

Page 5: 775_Membuat Sendiri Robot Humanoid

/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

Page 6: 775_Membuat Sendiri Robot Humanoid

'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

Page 7: 775_Membuat Sendiri Robot Humanoid

Penulis juga tidak lupa mengucapkan terima kasih sebesar-besarnyakepada Bpk. Dr.lr.Djoko Purwanto, M.Eng yang telah membimbing danmengizinkan penulis menggunakan sarana riset di Lab ELKA ITS.

Jika Anda ingin mengikuti training secara inhouse atau private, atauingin mengadakan seminar atau workshop dapat menghubungi penulisdi:

CV Pusat e-Technology

Perumahan Mutiara Gading Timur I , Jalan cendana 5,BlokD3l2 RT 6124Bekasi Timur - Jawa barat 17510HP :08 5 698 87 384, Yahoo Messg : prof_widodoEmail :[email protected]. Toko-elektronika. comwww.toko-robot.comwww.Widodo.com

sebagai penutup, penulis juga mengharapkan saran dan kritik yangmembangun guna penyempurnaan buku ini. Anda juga dapatberkomunikasi dengan penulis melalui email di [email protected] Paulus@delta -electronic. com.

Jakarta, 1 Agustus 20Og

Widodo Budihorto & Poulus Andi Nolwan

VT

Page 8: 775_Membuat Sendiri Robot Humanoid

!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

Page 9: 775_Membuat Sendiri Robot Humanoid

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

Page 10: 775_Membuat Sendiri Robot Humanoid

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"-

Page 11: 775_Membuat Sendiri Robot Humanoid

{

Face Recognition ........274Konsep Dasar ..........214

Latihan..... ...222

DaRTRR ACUAN ,,,.,,,.,,,.,225

LAIVTPTRAN ......227

TENTANG PexuLIs.... ......229

Page 12: 775_Membuat Sendiri Robot Humanoid

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

Page 13: 775_Membuat Sendiri Robot Humanoid

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

\

Page 14: 775_Membuat Sendiri Robot Humanoid

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

Page 15: 775_Membuat Sendiri Robot Humanoid

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

Page 16: 775_Membuat Sendiri Robot Humanoid

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

Page 17: 775_Membuat Sendiri Robot Humanoid

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

Page 18: 775_Membuat Sendiri Robot Humanoid

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

Page 19: 775_Membuat Sendiri Robot Humanoid

'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

Page 20: 775_Membuat Sendiri Robot Humanoid

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

Page 21: 775_Membuat Sendiri Robot Humanoid

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)

Page 22: 775_Membuat Sendiri Robot Humanoid

/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

Page 23: 775_Membuat Sendiri Robot Humanoid

€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

Page 24: 775_Membuat Sendiri Robot Humanoid

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

Page 25: 775_Membuat Sendiri Robot Humanoid

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

Page 26: 775_Membuat Sendiri Robot Humanoid

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

Page 27: 775_Membuat Sendiri Robot Humanoid

:

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

Page 28: 775_Membuat Sendiri Robot Humanoid

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

Page 29: 775_Membuat Sendiri Robot Humanoid

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

Page 30: 775_Membuat Sendiri Robot Humanoid

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

Page 31: 775_Membuat Sendiri Robot Humanoid

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

Page 32: 775_Membuat Sendiri Robot Humanoid

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

Page 33: 775_Membuat Sendiri Robot Humanoid

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

Page 34: 775_Membuat Sendiri Robot Humanoid

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

Page 35: 775_Membuat Sendiri Robot Humanoid

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

Page 36: 775_Membuat Sendiri Robot Humanoid

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

Page 37: 775_Membuat Sendiri Robot Humanoid

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

Page 38: 775_Membuat Sendiri Robot Humanoid

6Z

Luerdord ls!6uaw g'€ requreD

inqafl

:lnlrreq rpedas6ur11ag urtuo) pe)uelpv e6nf rnle '1erur1do 6uer( pseq {n}uD

ul6r

'v

Page 39: 775_Membuat Sendiri Robot Humanoid

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

Page 40: 775_Membuat Sendiri Robot Humanoid

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

Page 41: 775_Membuat Sendiri Robot Humanoid

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

Page 42: 775_Membuat Sendiri Robot Humanoid

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

Page 43: 775_Membuat Sendiri Robot Humanoid

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

Page 44: 775_Membuat Sendiri Robot Humanoid

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

Page 45: 775_Membuat Sendiri Robot Humanoid

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

Page 46: 775_Membuat Sendiri Robot Humanoid

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

Page 47: 775_Membuat Sendiri Robot Humanoid

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

Page 48: 775_Membuat Sendiri Robot Humanoid

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

Page 49: 775_Membuat Sendiri Robot Humanoid

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

Page 50: 775_Membuat Sendiri Robot Humanoid

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:

Page 51: 775_Membuat Sendiri Robot Humanoid

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

Page 52: 775_Membuat Sendiri Robot Humanoid

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

Page 53: 775_Membuat Sendiri Robot Humanoid

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

Page 54: 775_Membuat Sendiri Robot Humanoid

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

Page 55: 775_Membuat Sendiri Robot Humanoid

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

Page 56: 775_Membuat Sendiri Robot Humanoid

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

Page 57: 775_Membuat Sendiri Robot Humanoid

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

Page 58: 775_Membuat Sendiri Robot Humanoid

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

Page 59: 775_Membuat Sendiri Robot Humanoid

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

Page 60: 775_Membuat Sendiri Robot Humanoid

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

Page 61: 775_Membuat Sendiri Robot Humanoid

€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

Page 62: 775_Membuat Sendiri Robot Humanoid

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

Page 63: 775_Membuat Sendiri Robot Humanoid

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:

Page 64: 775_Membuat Sendiri Robot Humanoid

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

Page 65: 775_Membuat Sendiri Robot Humanoid

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!

Page 66: 775_Membuat Sendiri Robot Humanoid

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

Page 67: 775_Membuat Sendiri Robot Humanoid

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

Page 68: 775_Membuat Sendiri Robot Humanoid

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

Page 69: 775_Membuat Sendiri Robot Humanoid

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

Page 70: 775_Membuat Sendiri Robot Humanoid

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

Page 71: 775_Membuat Sendiri Robot Humanoid

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

Page 72: 775_Membuat Sendiri Robot Humanoid

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

Page 73: 775_Membuat Sendiri Robot Humanoid

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

Page 74: 775_Membuat Sendiri Robot Humanoid

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

Page 75: 775_Membuat Sendiri Robot Humanoid

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\>

Page 76: 775_Membuat Sendiri Robot Humanoid

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

Page 77: 775_Membuat Sendiri Robot Humanoid

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

Page 78: 775_Membuat Sendiri Robot Humanoid

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

Page 79: 775_Membuat Sendiri Robot Humanoid

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,

Page 80: 775_Membuat Sendiri Robot Humanoid

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

Page 81: 775_Membuat Sendiri Robot Humanoid

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

Page 82: 775_Membuat Sendiri Robot Humanoid

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

Page 83: 775_Membuat Sendiri Robot Humanoid

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

Page 84: 775_Membuat Sendiri Robot Humanoid

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

Page 85: 775_Membuat Sendiri Robot Humanoid

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

Page 86: 775_Membuat Sendiri Robot Humanoid

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

Page 87: 775_Membuat Sendiri Robot Humanoid

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

Page 88: 775_Membuat Sendiri Robot Humanoid

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

Page 89: 775_Membuat Sendiri Robot Humanoid

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

Page 90: 775_Membuat Sendiri Robot Humanoid

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

Page 91: 775_Membuat Sendiri Robot Humanoid

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

Page 92: 775_Membuat Sendiri Robot Humanoid

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

Page 93: 775_Membuat Sendiri Robot Humanoid

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

Page 94: 775_Membuat Sendiri Robot Humanoid

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

Page 95: 775_Membuat Sendiri Robot Humanoid

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{

Page 96: 775_Membuat Sendiri Robot Humanoid

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

Page 97: 775_Membuat Sendiri Robot Humanoid

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

Page 98: 775_Membuat Sendiri Robot Humanoid

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

Page 99: 775_Membuat Sendiri Robot Humanoid

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

Page 100: 775_Membuat Sendiri Robot Humanoid

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

Page 101: 775_Membuat Sendiri Robot Humanoid

'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)

Page 102: 775_Membuat Sendiri Robot Humanoid

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

Page 103: 775_Membuat Sendiri Robot Humanoid

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

-

Page 104: 775_Membuat Sendiri Robot Humanoid

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

Page 105: 775_Membuat Sendiri Robot Humanoid

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

Page 106: 775_Membuat Sendiri Robot Humanoid

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

Page 107: 775_Membuat Sendiri Robot Humanoid

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

Page 108: 775_Membuat Sendiri Robot Humanoid

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

Page 109: 775_Membuat Sendiri Robot Humanoid

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

Page 110: 775_Membuat Sendiri Robot Humanoid

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

Page 111: 775_Membuat Sendiri Robot Humanoid

€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

Page 112: 775_Membuat Sendiri Robot Humanoid

#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

Page 113: 775_Membuat Sendiri Robot Humanoid

!:, ;

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

Page 114: 775_Membuat Sendiri Robot Humanoid

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

Page 115: 775_Membuat Sendiri Robot Humanoid

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

Page 116: 775_Membuat Sendiri Robot Humanoid

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

Page 117: 775_Membuat Sendiri Robot Humanoid

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

Page 118: 775_Membuat Sendiri Robot Humanoid

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

Page 119: 775_Membuat Sendiri Robot Humanoid

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

Page 120: 775_Membuat Sendiri Robot Humanoid

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

Page 121: 775_Membuat Sendiri Robot Humanoid

'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

Page 122: 775_Membuat Sendiri Robot Humanoid

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

Page 123: 775_Membuat Sendiri Robot Humanoid

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

Page 124: 775_Membuat Sendiri Robot Humanoid

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

Page 125: 775_Membuat Sendiri Robot Humanoid

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

Page 126: 775_Membuat Sendiri Robot Humanoid

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

Page 127: 775_Membuat Sendiri Robot Humanoid

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

Page 128: 775_Membuat Sendiri Robot Humanoid

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

Page 129: 775_Membuat Sendiri Robot Humanoid

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

Page 130: 775_Membuat Sendiri Robot Humanoid

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

Page 131: 775_Membuat Sendiri Robot Humanoid

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

Page 132: 775_Membuat Sendiri Robot Humanoid

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

Page 133: 775_Membuat Sendiri Robot Humanoid

!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

Page 134: 775_Membuat Sendiri Robot Humanoid

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

Page 135: 775_Membuat Sendiri Robot Humanoid

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

Page 136: 775_Membuat Sendiri Robot Humanoid

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

Page 137: 775_Membuat Sendiri Robot Humanoid

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

Page 138: 775_Membuat Sendiri Robot Humanoid

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

Page 139: 775_Membuat Sendiri Robot Humanoid

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

Page 140: 775_Membuat Sendiri Robot Humanoid

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

Page 141: 775_Membuat Sendiri Robot Humanoid

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

Page 142: 775_Membuat Sendiri Robot Humanoid

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

Page 143: 775_Membuat Sendiri Robot Humanoid

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

Page 144: 775_Membuat Sendiri Robot Humanoid

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

Page 145: 775_Membuat Sendiri Robot Humanoid

_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

Page 146: 775_Membuat Sendiri Robot Humanoid

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

Page 147: 775_Membuat Sendiri Robot Humanoid

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

Page 148: 775_Membuat Sendiri Robot Humanoid

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

Page 149: 775_Membuat Sendiri Robot Humanoid

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

Page 150: 775_Membuat Sendiri Robot Humanoid

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

Page 151: 775_Membuat Sendiri Robot Humanoid

€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

Page 152: 775_Membuat Sendiri Robot Humanoid

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.

Page 153: 775_Membuat Sendiri Robot Humanoid

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

Page 154: 775_Membuat Sendiri Robot Humanoid

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

Page 155: 775_Membuat Sendiri Robot Humanoid

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

Page 156: 775_Membuat Sendiri Robot Humanoid

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

Page 157: 775_Membuat Sendiri Robot Humanoid

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

Page 158: 775_Membuat Sendiri Robot Humanoid

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(

Page 159: 775_Membuat Sendiri Robot Humanoid

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

Page 160: 775_Membuat Sendiri Robot Humanoid

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

Page 161: 775_Membuat Sendiri Robot Humanoid

€,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

Page 162: 775_Membuat Sendiri Robot Humanoid

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

Page 163: 775_Membuat Sendiri Robot Humanoid

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

Page 164: 775_Membuat Sendiri Robot Humanoid

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

Page 165: 775_Membuat Sendiri Robot Humanoid

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

Page 166: 775_Membuat Sendiri Robot Humanoid

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

Page 167: 775_Membuat Sendiri Robot Humanoid

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

Page 168: 775_Membuat Sendiri Robot Humanoid

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

Page 169: 775_Membuat Sendiri Robot Humanoid

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

Page 170: 775_Membuat Sendiri Robot Humanoid

!"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

Page 171: 775_Membuat Sendiri Robot Humanoid

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

Page 172: 775_Membuat Sendiri Robot Humanoid

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

Page 173: 775_Membuat Sendiri Robot Humanoid

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

Page 174: 775_Membuat Sendiri Robot Humanoid

!

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

Page 175: 775_Membuat Sendiri Robot Humanoid

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

Page 176: 775_Membuat Sendiri Robot Humanoid

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

Page 177: 775_Membuat Sendiri Robot Humanoid

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

Page 178: 775_Membuat Sendiri Robot Humanoid

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

Page 179: 775_Membuat Sendiri Robot Humanoid

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

Page 180: 775_Membuat Sendiri Robot Humanoid

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

Page 181: 775_Membuat Sendiri Robot Humanoid

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

Page 182: 775_Membuat Sendiri Robot Humanoid

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)

Page 183: 775_Membuat Sendiri Robot Humanoid

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:

Page 184: 775_Membuat Sendiri Robot Humanoid

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

Page 185: 775_Membuat Sendiri Robot Humanoid

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

Page 186: 775_Membuat Sendiri Robot Humanoid

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

Page 187: 775_Membuat Sendiri Robot Humanoid

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

Page 188: 775_Membuat Sendiri Robot Humanoid

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

Page 189: 775_Membuat Sendiri Robot Humanoid

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

Page 190: 775_Membuat Sendiri Robot Humanoid

€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

Page 191: 775_Membuat Sendiri Robot Humanoid

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

Page 192: 775_Membuat Sendiri Robot Humanoid

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

Page 193: 775_Membuat Sendiri Robot Humanoid

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

Page 194: 775_Membuat Sendiri Robot Humanoid

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

Page 195: 775_Membuat Sendiri Robot Humanoid

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

Page 196: 775_Membuat Sendiri Robot Humanoid

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

Page 197: 775_Membuat Sendiri Robot Humanoid

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

Page 198: 775_Membuat Sendiri Robot Humanoid

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

Page 199: 775_Membuat Sendiri Robot Humanoid

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

Page 200: 775_Membuat Sendiri Robot Humanoid

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

Page 201: 775_Membuat Sendiri Robot Humanoid

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

Page 202: 775_Membuat Sendiri Robot Humanoid

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

Page 203: 775_Membuat Sendiri Robot Humanoid

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

Page 204: 775_Membuat Sendiri Robot Humanoid

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

Page 205: 775_Membuat Sendiri Robot Humanoid

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

Page 206: 775_Membuat Sendiri Robot Humanoid

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

Page 207: 775_Membuat Sendiri Robot Humanoid

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

Page 208: 775_Membuat Sendiri Robot Humanoid

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 .

Page 209: 775_Membuat Sendiri Robot Humanoid

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

Page 210: 775_Membuat Sendiri Robot Humanoid

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

Page 211: 775_Membuat Sendiri Robot Humanoid

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.

Page 212: 775_Membuat Sendiri Robot Humanoid

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

Page 213: 775_Membuat Sendiri Robot Humanoid

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

&

Page 214: 775_Membuat Sendiri Robot Humanoid

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

Page 215: 775_Membuat Sendiri Robot Humanoid

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

Page 216: 775_Membuat Sendiri Robot Humanoid

r602

1NX ue?enq ttafrqo 6u14ce4 uep lsqapp nsery L'B requeD

Page 217: 775_Membuat Sendiri Robot Humanoid

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

Page 218: 775_Membuat Sendiri Robot Humanoid

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

Page 219: 775_Membuat Sendiri Robot Humanoid

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&

Page 220: 775_Membuat Sendiri Robot Humanoid

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

Page 221: 775_Membuat Sendiri Robot Humanoid

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

Page 222: 775_Membuat Sendiri Robot Humanoid

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

Page 223: 775_Membuat Sendiri Robot Humanoid

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

Page 224: 775_Membuat Sendiri Robot Humanoid

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

Page 225: 775_Membuat Sendiri Robot Humanoid

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

Page 226: 775_Membuat Sendiri Robot Humanoid

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

Page 227: 775_Membuat Sendiri Robot Humanoid

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

Page 228: 775_Membuat Sendiri Robot Humanoid

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

Page 229: 775_Membuat Sendiri Robot Humanoid

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

Page 230: 775_Membuat Sendiri Robot Humanoid

)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

Page 231: 775_Membuat Sendiri Robot Humanoid

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*

Page 232: 775_Membuat Sendiri Robot Humanoid

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

Page 233: 775_Membuat Sendiri Robot Humanoid

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

Page 234: 775_Membuat Sendiri Robot Humanoid

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