INSTITUT TEKNOLOGI BANDUNG PROGRAM STUDI TEKNIK ELEKTRO JALAN GANESHA NO. 10 Gedung Labtek V Lantai 2 (022)2508135-3! (022)2508135-3! (022)250 0"#0 $AN%&NG #0132
Dokumentasi Produk Proyek Akhir
Le'ba Sa'u* %+ku'en Judu* %+ku'en
PROYEK AKHIR AKHIR EL3014 SISTEM MIKROPROSESOR: Se'i Aut+'ati, Aut+'ati, 2% a
Jeni/ %+ku'en
IMPLEMENTASI Catatan: Dokumen ini dikendalikan penyebarannya oleh Prodi Teknik Teknik Elektro ITB
N+'+ ei/i
02
Na'a i*e
355950275
angga* angga* 4enebitan
24 Mei 2017
&nit 4enebit
Proi Te!"i! E#e!$ro % IT&
Ju'*a Ha*a'an
23
(te'a/uk *e'ba /a'u* ini)
%ata 4engu/u* 4engu/u*
Na'a Na'a
Han/en %edd9 e*/an e*/an
akad 6/an Haiadi 4e'bi'bing Na'a Le'baga 4+ga' Studi eknik E*ekt+ Sek+*a eknik eknik E*ekt+ dan 6n:+'atika 6n/titut ekn+*+gi ekn+*+gi $andung Labtek V! V! Lantai 2! Ja*an Gane/ Gane/a a n+. 10! $andung e*e+n ; <2 22 250 220 ak/ ;<2 22 253 #222
N67 N67
1321#0 1321#1#8
anda angan
E'ai*;/tei=/tei.itb.a,.id
DAFTAR ISI DA'TAR DA'TAR ISI((((((((((((((((((((((((((((((((((( ISI(((((((((((((((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((((((((((( (((((((((((((((((((((2 ((2
)ATA )ATATAN SE*ARAH PER&AIKAN DOKUMEN(((((((((((((((((((((((((((((((((((( DOKUMEN((((((((((((((((((((((((((((((((((((((((((((((((((((((((( ((((((((((((((((((((((((((3 (((((3 PROPOSAL PROYEK PENGEM&ANGAN SEMI AUTOMATI) 2+D )AR((((((((((((((((4 1
PENGANT PENGANTAR AR((((( (((((((((( (((((((((( ((((((((( ((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( ((((((((( ((((((((( (((((((((( (((((((((( (((((((((( ((((((((((((4 (((((((4
1.1 1.2 1.3 2
IMPLEME IMPLEMENT NTAS ASI(((( I((((((((( (((((((((( (((((((((( ((((((((( ((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((((((( ((((((((((((((((((( ((((((((((((((((5 ((((((5
2.1 2.2 2.3 2.# 2.5 2. 2. 3
6NG>ASAN 6NG>ASAN 6S6 %O>&7EN.. %O>&7EN....... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... ............ ................ ..................# .........# &J&AN 4EN&L6SAN %AN A4L6>AS6?> EG&NAAN EG&NAAN %O>&7EN.......................................# EEENS6 EEENS6..... .......... .......... .......... .......... .......... .......... .......... .......... .......... .......... ......... ......... .......... .......... .......... .......... .......... .......... .......... .......... .............# ........#
GA6S $ESA 4 4ENA4A6AN 674LE7ENAS6.................................................................5 IMPLEMENTASI MEKANIK R ROBOT................................................................................5 IMPLEMENTASI MODUL AKTUATOR / MOTOR............................................................ 674LE7ENAS6 4E7$AAAN SENSO J JAA> $ESA7AAN AA> $ESA7AAN........................................." 674LE7ENAS6 SENSO 6 6 %AN 4E7$AAAN E7OE E7OE ONOL............................10 674LE7ENAS6 O7$OL S6H 4&SH O N...............................................................11 674LE7ENAS6 L% 1 @ 2......................................... 2................................................................ ............................................ .......................11 ..11
EKSPERIM EKSPERIMEN(( EN((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( ((((((((( ((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((( (((((((((((((( (((((((((((((((((( (((((((((((11 ((11
3.1 3.2 3.3 3.# 3.5
E>S4E67EN 7OO %..................................... %............................................................ ......................................................11 ...............................11 E>S4E67EN SENSO & &LASON6> %AN LASON6> %AN L% 1@2.................................................12 E>S4E67EN O7$OL S6H 4&SH O N..................................................................1# E>S4E67EN SENSO 6 6 NA E% E% %AN E7OE E7OE ONOL 6..................................15 E>S4E67EN O$O O$O SE76 A&O7A6 2% A ...................................................18 ...................................................18
2
Catatan Sejarah Perbaikan Dokumen
,ERSI
TANGGAL
OLEH
PER&AIKAN
1 2
30 Ai* 201 2# 7ei 201
Han/en %edd9 dan Han/en
%+ku'en e/i eta'a %+ku'en e/i kedua
3
Proposal Proyek Pengembangan Semi Automatic 2D Car !
Pengantar
1.1 RINGKASAN ISI DOKUMEN %+ku'en ini bei/i ene*a/an i'*e'enta/i dai de/ain 2WD CAR 9ang te*a dibuat dan ek/ei'en 9ang te*a di*akukan. •
$ab 4enganta bei/i ingka/an i/i d+ku'en! tuuan enu*i/an dan a*ika/i?kegunaan d+ku'en! dan e:een/i.
•
$ab 6'*e'enta/i tentang d+ku'enta/i bagian-bagian dai +9ek 9ang te*a dii'*e'enta/ikan /e/uai dengan de/ain 9ang te*a dibuat ada d+ku'en $300.
•
$ab Ek/ei'en
1.2 Tujuan Penulisan dan Aplikasi/Kegunaan Dku!en uuan dai enu*i/an d+ku'en ini daat die*a/kan / ebagai beikut. 1
Sebagai d+ku'enta/i a/i* enge'bangan +duk Se'i Aut+'ati, 2% a
2
4e'bei ga'baan de/ain dan a/i* enge'bangan +duk 9ang daat digunakan untuk 'enge'bangan *ebi *anut.
3
1."
4e'enuan tuga/ +9ek aki 'ata ku*ia EL301# Si/te' 7ik++/e/+.
RE#ERENSI 1 4ing &*ta/+ni, ange inde! BOn*ineC. e/edia; tt/;??DDD.aduin+.,,?en?tut+ia*?ing B%iak/e/ 2 Ai* 201! 00;0# 2 A%&6NO $a/ed 6 e'+te +nt+* +b+t! BOn*ine. e/edia; tt;??DDD.in/tu,tab*e/.,+'?id?A%&6NO-ba/ed-6-e'+te-,+nt+*-+b+t? B%iake/ 2 Ai* 201! 00;1 3 6 +nt+* >it H++ku Guide! BOn*ine. e/edia; tt/;??*ean./ak:un.,+'?tut+ia*/?i-,+nt+*-kit-++ku-guide B%iak/e/ 2 Ai* 201! 00;28
#
2
I"P#$"$%TASI
$eikut i'*e'enta/i beda/akan de/ain 9ang te*a dibuat ada d+ku'en $300
2.1 Ga$is %esa$ Pen&apaian I!ple!en'asi 6'*e'enta/i +duk Se'i Aut+'ati, 2% a te*a /e*e/ai /e*uun9a. Se*uu k+'+nen 9ang 'en9u/un badan +b+t te*a dia/ang dan be:ung/i /e*uun9a. 4+ga' untuk 'ena*ankan +b+t uga te*a dibuat ingga /e*e/ai dan te*a te*a di*akukan e,+baan. edaat eubaan de/ain +b+t dai an,angan +b+t ada *a+an-*a+an /ebe*u'n9a. 4eubaan 9ang di*akukan tidak te*a*u /igni:ikan dan akan die*a/kan ada bagian /e*anutn9a dai *a+an ini. 2.2 Implementasi Mekanik Robot $agian 'ekanik +b+t te*a dia/ang /e*uun9a 9ang 'e*iuti '+t+ % 2 bua be/a'a dengan dua bua +da. 7+t+ te*a tea/ang ada /ebua keangka +*i'e 9ang didaatkan ketika 'e'be*i '+t+ '+t+ % te/ebut. >a'i 'enggunakan keangka te/ebut /ebagai keangka uta'a badan +b+t?'+bi* 9ang ka'i buat. Se*ain itu! ada bagian baDa keangka tedaat dua bua b+*a *+ga' 9ang tea/ang di dean dan be*akang. %ua b+*a *+ga' ini be:ung/i /ebagai +da dan en9angga aga +b+t daat begeak dengan /tabi*. 4ada bagian ata/ keangka! dia/ang 4$ 9ang teubung dengan b+ad Aduin+ &NO! /en/+! dan k+'+nen *ainn9a. Ga'ba de/ain 4$ 9ang digunakan daat di*iat ada ga'ba di baDa ini.
5
G-./-r 2(1 De-i" P)&
Ha/i* i'*e'enta/i badan +b+t /e,aa ke/e*uuan daat di*iat ada ga'ba di baDa ini.
G-./-r 2(2 &--" Ro/o$ Mo/i# 1
G-./-r 2(3 &--" Ro/o$ Mo/i# 2
G-./-r 2(4 &--" Ro/o$ Mo/i# T-.-! A$-
G-./-r 2(5 &--" Ro/o$ Mo/i# T-.-! &e#-!-"
G-./-r 2( &--" Ro/o$ Mo/i# T-.-! De-"
2.3 Implementasi Modul Aktuator / Motor a. 4engenda*ian 47 ti'e ;
8
47 bea/i* digenea/ikan dengan 'enggunakan i'e 2 untuk 'engatu dut9 ,9,*e (0-100F 0-255) 9ang akan di'a/ukkan ke enab*e die '+t+! k+den9a /bb; void setPWM(double inputKiri, double inputKanan) { TCCR2A = _B(C!M2A") # _B(C!M2B") # _B(W$M2") # _B(W$M2%)& TCCR2B = _B(C'22)& !CR2A = inputKiri& !CR2B = inputKanan&
6nut>ii dan inut>anan 'euakan aiabe* 9ang 'en9i'an ni*ai atau be/a 47 untuk '+t+ kii dan '+t+ kanan. Ni*ai 47 ini akan 'enentukan be/a ke,eatan uta '+t+. Ni*ai 47 'ini'a* 100 kaena /ete*a di*akukan e,+baan! didaatkan baDa aabi*a ni*ai 47 *ebi enda 100! 'aka '+t+ tidak beuta. Ha* ini di/ebabkan enegi 9ang dibeikan keada '+t+ tidak ,uku kuat untuk 'e*aDan ke*e'ba'an atau enegi ge/ek 9ang dibutukan untuk 'e'buat '+t+ 'u*ai beuta. Sedangkan ni*ai 'ak/i'a* 47 255 kaena ti'e 2 9ang digunakan /ebe/a 8 bit /eingga ni*ai 'ak/i'a* 9ang daat di,aai +*e 47 ti'e ada*a 255. b. Atu aa dan ke,eatan '+t+ % dengan L2"3% %ai ga'ba di baDa! daat di*iat in 'ana /aa 9ang digunakan untuk 'enggeakkan dua bua '+t+ %. 4in EN be:ung/i 'engakti:kan ke*uaan die L72"3%. 4in ini akan dibeikan 'a/ukan 47 dai 'ik+k+nt+*e A7328. Se*anutn9a in 6N be:ung/i 'enentukan aaka '+t+ akan beuta dan ke 'ana aa uta '+t+. >+n:igua/i in 6N ini daat di*iat ada tabe* 2.1. 4+De '+t+ bea/a* dai tegangan V a/i* egu*a/i L64O 2 /e*.
"
G-./-r 2(7 S!e.-$i! LM293D T-/e# 2(1 Ko"6ir-i i" IN1 -" IN2 $er8--$ er-! .o$or 1 EN1 . 255 128 128 255 128 128
IN1 H6GH H6GH H6GH LO LO LO
IN2 LO LO H6GH H6GH H6GH LO
GERAK MOTOR 7OO 1 E4A 7OO 1 SE%ANG 7OO 7A6 7OO 1 E4A 7OO 1 SE%ANG 7OO 7A6
2.( I!ple!en'asi Pe!)a&aan Sens$ *a$ak )e$sa!aan Sen/+ aak 9ang digunakan ada*a /en/+ u*ta/+nik ing aa**a. Sen/+ 9ang digunakan /eban9ak e'at bua 9ang be:ung/i 'e'ba,a aak beikut. •
Jaak %ean
•
Jaak Se+ng >anan
•
Jaak >anan
•
Jaak >ii
7a/ing-'a/ing /en/+ 'e'butukan 3 bua kabe* untuk diubungkan ke 'ik+k+nt+*e 'e*a*ui aan 4$! 9aitu kabe* V! g+und! dan data. O*e kaena itu! untuk /en/+ aak /e*uun9a dibutukan 8 +t di b+ad Aduin+ &NO! 9aitu V! g+und! dan in A%0;5.
10
4e'ba,aan bea/i* teat dan ,eat dengan k+de /bb; in*lude +Pin3./0 Pin3 pin36epan = Pin3(2)& Pin3 pin3Kanan6epan = Pin3(7)& Pin3 pin3Kanan = Pin3(8)& Pin3 pin3Bela9an3 = Pin3(:)& Pin3 pin3Kiri = Pin3(5)& Pin3 pin3Kiri6epan = Pin3(;)& double
2.+ I
void setup(){ 'erial.be3in("":2%%)& void loop(){ ba*aPin3()& 'erial.print(6epan> )& 'erial.print( )& 'erial.print(
!ple!en'asi Sens$ IR dan Pe!)a&aan Re!'e ,n'$l 6 SO4 138 6 e,eie 'e'e*ukan tiga bua in! 9aitu V! g+und! dan data. Sen/+ 'enei'a data dai /ebua e'+te ,+nt+* in:aed. &ntuk 'enggunakan e'+te ,+nt+* ini! dibutukan in:+'a/i k+de 9ang dikii'kan ika 'enekan t+'b+* tetentu. O*e kaena itu! di*akukan e,+baan untuk 'engetaui ni*ai 9ang dikii'kan bebeaa t+'b+* 9ang akan digunakan. >+de 9ang digunakan untuk e,+baan ini ada*a / ebagai beikut. in*lude +Rre-ote./0 int R1C_P = "%& Rre*v irre*v(R1C_P)& de*ode_results results& void setup() { 'erial.be3in(45%%)&
11
irre*v.enableRn()& ?? 'tart t/e re*eiver void loop() { i@ (irre*v.de*ode(results)) { 'erial.println(results.value, 1)& irre*v.resu-e()& ?? Re*eive t/e neDt value
Ha/i* e,+baan 'e'beikan data /ebagai beikut. T-/e# 2(2 Ni#-i !e#-r-" e$i- $o./o# re.o$e IR To./o # He 0 8" 100 "8 $0# 200 30 1 18E 2 A8 3 5 10E # 38 5 5AA 5 #2$ % #A$ 8 5 52A " %
2.- I!ple!en'asi T!)l Si'& Pus On +'b+* ini digunakan /eban9ak dua bua ada /i/i /e+ng kanan dan kii. 7a/ing-'a/ing t+'b+* an9a akan digunakan /atu bua /aa /e/uai dengan '+de 9ang /edang dia*ankan +*e +b+t. Jika +b+t da*a' '+de following right wall ! 'aka t+'b+* kanan /aa 9ang digunakan. $egitu uga /eba*ikn9a untuk following left wall ! an9a t+'b+* kii /aa 9ang digunakan. +'b+* ini be:ung/i ika '+bi* 'enabak /e/uatu ada /i/i /e+ng dean '+bi*. Jika '+bi* 'enabak dan t+'b+* tetekan! 'aka '+bi* akan 'undu /ebenta dan /edikit beuta aga tidak 'enabak *agi. 12
2.0 I!ple!en'asi ,D 1- 2 L% 12 digunakan untuk 'ena'i*kan '+de 9ang /edang dia*ankan +*e +b+t! ke,eatan +da kanan dan kii (da*a' ni*ai 47)! dan aak kanan?kii /eta dean. L% dia/ang ada bagian ata/ dean badan +b+t. L% 'enggunakan bebeaa in /ebagai beikut. T-/e# 2(3 Ko"6ir-i i" L)D 12 N-.- Pi" V G+und S E %# %5 % %
&
Pi" -- Ari"o V GN% 2 8 " 4#
$'SP$RI"
%$".1 Ekspe$i!en M'$ D, 4e,+baan '+t+ % di*akukan untuk 'enge*+'+kkan bebeaa eni/ geakan 9ang die*ukan da*a' +ga' Da** :+**+De. Ha/i* e,+baan untuk /etia geakan ada*a /ebagai beikut. T-/e# 3(1 *e"i Ger-!-" Mo$or Ger-!-" 7au *uu/ 7undu *uu/ 4uta kanan 4uta kii $eenti 7au be*+k
P&4 1 0 0 1 0 1
P&5 0 1 1 0 0 0
PD4 1 0 1 0 0 1
PD5 0 1 0 1 0 0
P+M Kiri 255 255 250 250 a
P+M K-"-" 252 252 250 250 Va
4+t 4$#;5 dan 4%#;5 ada*a +t 9ang be:ung/i untuk 'engatu aa uta +da. 4+t 4$#;5 'engatu aa +da kii /edangkan +t 4%#;5 'engatu aa uta +da kanan. 4ada geak 'au *uu/! ni*ai 47 kii *ebi be/a dai 47 kanan. 4adaa* ika ingin 'au *uu/! /eau/n9a ni*ai keduan9a /a'a aga 'endaatkan enegi 9ang /a'a be/a. Na'un! /ete*a di*akukan e,+baan! diketaui baDa +da kii 'e'e*ukan t+/i 9ang *ebi be/a dai +da kanan untuk beuta. %engan kata *ain! tedaat ebedaan kaaktei/tik 'ekanik antaa +da kanan dan kii. Jika ni*ai 47 keduan9a /a'a! akibatn9a +b+t akan ,endeung bea*an bebe*+k ke kii. $eda/akan a/i* e,+baan! ni*ai 47 dengan k+n:igua/i ada tabe* te*a daat 'e'buat '+bi* bea*an *uu/. 4ada '+de geak uta! be/a 47 +da kanan dan kii b+*e /a'a tetai dengan aa uta 9ang be*aDanan tegantung aa uta 9ang dituu. %engan ,aa ini! '+bi* daat beuta di te'at dengan u/a +b+t /ebagai ++/. 13
&ntuk 'e'buat '+bi* beenti! ,uku dengan 'e'buat /e'ua ni*ai +t 4$#;5 dan 4%#;5 'enadi 0 /e*uun9a atau 1 /e*uun9a. Sedangkan untuk '+de 'au be*+k! ni*ai 47 diadikan aiabe* aga be/an9a begantung ada kebutuan atau begantung ada aak '+bi* dai dinding. Jika 47 kii *ebi be/a dai kanan! 'aka +b+t akan 'au /a'bi* bebe*+k ke kanan. Seba*ikn9a ika 47 kanan *ebi be/a dai kii! 'aka +b+t akan 'au /a'bi* bebe*+k ke kii.
".2 Ekspe$i!en Sens$ Ul'$asnik dan ,D 1-2 4e,+baan /en/+ u*ta/+ni, dan L% 12 di*akukan be/a'aan untuk 'e'e'uda e,+baan keduan9a. %a*a' e,+baan ini! ka'i 'ena'i*kan aak 9ang teuku +*e /en/+ u*ta/+nik ke *a9a L%. edaat *i'a k+ndi/i engukuan dengan a/i* /ebagai beikut.
G-./-r 3(1 Se#r8 e"or $i-! i8-#-"
G-./-r 3(2 Se"or e-" i8-#-"
1#
G-./-r 3(3 Se"or !iri i8-#-"
G-./-r 3(4 Se"or ero" !-"-" i8-#-"
15
G-./-r 3(5 Se"or !-"-" i8-#-" T-/e# 3(2 Ko"6ir-i 8-i# L)D Poii >ii ata/ >anan ata/ >ii baDa >anan baDa
Se"or %ean >anan Se+ng >ii
4ada ga'ba 3.1 bi/a di*iat ni*ai aak 9ang dita'i*kan ada L% *ebi be/a dai 10 /e*uun9a. Ha* ini di/ebabkan /en/+ tidak dia*angi ada aak 9ang dekat. Sedangkan ada # ga'ba beikutn9a! te*iat tedaat /ebua ni*ai aak 9ang ke,i* (di baDa 10) 9ang dita'i*kan. 4+/i/i ni*ai 9ang ke,i* te/ebut begantung ada /en/+ 9ang dia*angi. >+n:igua/i +/i/i /en/+ teaa +/i/i ni*ai ada L% daat di*iat ada tabe* 3.2. %ai e,+baan 9ang di*akukan! daat di/i'u*kan baDa /e*uu /en/+ u*ta/+nik 9ang digunakan bekea dengan baik! begitu u*a dengan L%.
"." Ekspe$i!en T!)l Si'& Pus On 4e,+baan t+'b+* /Dit, ini di*akukan dengan 'e'beikan /uatu einta keada +b+t aabi*a t+'b+* te/ebut ditekan. 4einta 9ang di*akukan ada*a 'undu *uu/! de*a9 /e*a'a bebeaa Daktu! uta kii! dan de*a9 /e*a'a bebeaa Daktu. 6ni di*akukan ika t+'b+* /i/i kanan 9ang tetekan. Sedangkan bi*a t+'b+* kii 9ang tetekan! 'aka +b+t akan 'e*akukan einta 9ang /a'a ke,ua*i uta kii 'enadi uta kanan. $eikut ada* a k+de untuk t+'b+* kanan. i@(ETo-bol) { MundurFurus()& delaG(8%%)& PutarKiri(":%)&
1
delaG(7%%)&
Sedangkan bi*a k+de untuk e,+baan t+'b+* kii ada*a /ebagai beikut. i@(ETo-bol2) { MundurFurus()& delaG(8%%)& PutarKanan(":%)& delaG(7%%)&
+'b+* ini akan /e*a*u 'e'beikan ni*ai 1 atau *+gika &E bi*a da*a' k+ndi/i tidak ditekan. Sedangkan bi*a t+'b+* /Dit, tetekan! 'aka t+'b+* akan 'enga/i*kan ni*ai 0 atau *+gika ALSE. O*e kaena itu! enge,ekan di*akukan dengan 'e'eik/a aaka +'b+*1 atau +'b+*2 'enga/i*kan *+gika ALSE.
".( Ekspe$i!en Sens$ In3$a Red dan Re!'e ,n'$l IR 4ada e,+baan 'enggunakan /en/+ 6 dan e'+te ,+nt+* 6! ka'i 'e'buat aga +b+t daat digeakkan dengan 'enggunakan e'+te ,+nt+*. edaat " eni/ geakan 9ang daat di*akukan +*e +b+t ika dikenda*ikan dengan e'+te. Jeni/ t+'b+* dan geakan 9ang dia/i*kan +*e +b+t daat di*iat ada tabe* di baDa ini. T-/e# 3(3 Ko"6ir-i $o./o# -- re.o$e ;o"$ro# -" er-!-" L-/e# To./o# *e"i Ger-!-" I eu/ beuta kii KKI eu/ beuta kanan eu/ 'undu *uu/ < eu/ 'au *uu/ KII $eenti 2 7au *uu/ /ebenta # $euta kii /ebenta $euta kanan /ebenta 8 7undu *uu/ /ebenta $eikut ada*a k+de +ga' *engka untuk 'ena*ankan +b+t dengan 'enggunakan e'+te
,+nt+* 6. in*lude in*lude in*lude in*lude
+FiHuidCrGstal./0 +Rre-ote./0 +avr?io./0 +util?delaG./0
FiHuidCrGstal l*d(2, 5, ;, I, 4, "I); int R1C_P = "%; int -ode = %; ?? %> oto-atis& "> -anual& 2> stop& int speedKanan = 2:2; int speedKiri = 2::; Rre*v irre*v(R1C_P ); de*ode_results results; 'R(TM1R"_!J_ve*t)
?? interrupt untu9 -ena-ba/
1
stopat*/ { if (irre*v.de*ode (&results )) { l*d.*lear(); irre*v.resu-e (); ?? Re*eive t/e neDt value } if(results.value==%DJJ4I5; ) { -ode = ";
} if(results.value==%DJJ5I4; ) { -ode = %; } if(results.value==%DJJB%8J ) { -ode = 2; } = (" <
}
void setup(){ l*d.be3in("5, 2); 66R6 = 66R6 | %b%%"""%%% ; 66RB = 66RB | %b%%"""%%% ; irre*v .enableRn(); int_re-ote(); }
void loop(){ sei();
if(-ode == %){ l*d.setCursor(%,%); l*d.print(ALT!MATC); } else if(-ode ==") { l*d.setCursor(%,%); l*d.print(MALAF R1M!T1); if (irre*v.de*ode (&results )) { l*d.*lear(); 'erial.println(results .value, 1); irre*v.resu-e (); ?? Re*eive t/e neDt value } if(results.value==%DJJ"%1J ) { PutarKiri(); _delaG_-s("%%); results.value = %DJJC276 ; } if(results.value==%DJJ"I1; ) { Ma
18
if(results.value==%DJJ:AA: ) { PutarKanan(); _delaG_-s("%%); results.value = %DJJC276 ; } if(results.value==%DJJ8AB: ) { MundurFurus(); _delaG_-s("%%); results.value = %DJJC276 ; } if(results.value==%DJJC276 ) { l*d.setCursor(%,"); l*d.print(B1R1T); } if(results.value==%DJJ2266 ) { PutarKiri(); _delaG_-s(2:%); } if(results.value==%DJJAI:; ) { Ma
} else { l*d.*lear(); l*d.print( -ode B1R1T); ber/enti(); _delaG_-s(:%); }
analo3Write(7,speedKiri); analo3Write("",speedKanan ); ber/enti(); }
void ber/enti(){ di3italWrite("2,F!W); di3italWrite("7,F!W); di3italWrite(8,F!W); di3italWrite(:,F!W); delaG(:%); }
void PutarKiri(){
1"
di3italWrite("2,F!W); di3italWrite("7,$); di3italWrite(8,$); di3italWrite(:,F!W);
}
void PutarKanan(){ di3italWrite(8,F!W); di3italWrite(:,$); di3italWrite("2,$); di3italWrite("7,F!W); }
void Ma
void MundurFurus(){ di3italWrite("7,$); di3italWrite("2,F!W); di3italWrite(:,$); di3italWrite(8,F!W); }
void int_re-ote(void) {
TM'K" = %b%%%%%%; TM'K" = _B(T!1"); ??-en3a9ti@9an !ver@lo nterrupt TCCR"A = %; TCCR"B = %b%%%%""%"; ??pres*alar "%28 TCT" = :I4"%; ?? untu9 %," deti9 sei(); }
".+ Ekspe$i!en R)' Se!i Au'!a'i& 24D ,a$ 4ada e,+baan aki ini! +b+t te*a daat dengan baik 'engikuti dinding kanan atau kii. >e'a'uan +b+t *ebi baik da*a' 'engikuti dinding kanan kaena tedaat /en/+ aak ada /i/i /e+ng kanan! /eingga 'e'eke,i* ke'ungkinan +b+t untuk 'enabak. Se*a'a e,+baan di*akukan! 'a/i ada ke'ungkinan +b+t 'enabak dan tidak daat begeak *agi. Ha* ini teadi ika '+bi* 'enabak ada /udut tetentu di 'ana /en/+ tidak daat 'endetek/i aak dengan baik. Na'un a* ini /angat aang teadi. >e*e'aan *ainn9a ada*a '+bi* 'a/i bea*an dengan kuang ai. Seing ka*i +b+t te*iat bebe*+k be*ebian atau bea*an dengan te*a*u /eing be*+k kanan-kii /eingga tidak /tabi*. $eikut ada*a k+de +ga' *engka untuk 'ena*ankan +b+t /e'i aut+'at,i 2% a dengan '+de following right wall . in*lude +Pin3./0 in*lude +FiHuidCrGstal./0 in*lude +avr?io./0
20
in*lude +util?delaG./0 Pin3 Pin3 Pin3 Pin3
pin36epan = Pin3(A7); pin3Kanan = Pin3(A2); pin3'eron3 = Pin3(A%); pin3Kiri = Pin3(A");
FiHuidCrGstal l*d(2, 5, ;, I, 4, "I); double all 9anan& "> all 9iri& 2> -anual& 8>ber/enti& int speedKanan = ";:; int speedKiri = ";:; 'R(TM1R"_!J_ve*t) {
displaGara9(); TJR" TCT"
= (" <
}
void setup(){ l*d.be3in("5, 2); l*d.print(WAFF J!FF!W1R); _delaG_-s("%%%); int_
66RC = 66RC & %b""%""""" ; P!RTC = (" << PC:); 66R6 = 66R6 | %b%%"""%%% ; 66RB = 66RB | %b%%"""%%% ;
}
void loop(){ ba*aPin3 (); allKanan(";:,"%,7:,:); }
void allKanan(int 'peedAal, int 'etPointara9, int Kp,int Kd) {
int Prevara9Kanan; int To-bol = di3italRead(A:); ??Para-eter P6 = 'etPointara9 -
??Para-eter Wall Jolloin3 unsi3ned */ar 6epan6e9at = ":; int t/res/old = 5%; -ode = %; ??pe-batasan nilai
21
if(PersenBelo9 > t/res/old) { PersenBelo9 = t/res/old; } if(PersenBelo9 < -t/res/old ) { PersenBelo9 = -t/res/old; }
speedKiri = 'peedAal - PersenBelo9; speedKanan = 'peedAal + PersenBelo9; if(!To-bol ) {
??sit*/ terte9an atau -obil -enabra9
MundurFurus(); _delaG_-s(7%%); PutarKiri(":%); _delaG_-s(7%%);
} else {
??WallJolloer if( 7) { PutarKiri(2%%); ??belo9 9anan _delaG_-s("7%); } else ??nabra9 { MundurFurus(); _delaG_-s(2%%); PutarKiri(2:%); _delaG_-s(":%); } } else ?? depan 7%) { Ma "%) { Ma
}
22
}
void allKiri(int 'peedAal, int 'etPointara9, int Kp,int Kd) {
int Prevara9Kiri; int To-bol2 = di3italRead(A8); ??Para-eter P6 = 'etPointara9 -
??Para-eter Wall Jolloin3 unsi3ned */ar 6epan6e9at = ":; int t/res/old = 5%; -ode = "; ??pe-batasan nilai if(PersenBelo9 > t/res/old) {
PersenBelo9 = t/res/old;
} if(PersenBelo9 < -t/res/old ) { PersenBelo9 = -t/res/old; }
speedKiri = 'peedAal + PersenBelo9; speedKanan = 'peedAal - PersenBelo9; if(!To-bol2) {
MundurFurus(); _delaG_-s(7%%); PutarKanan(":%); _delaG_-s(2%%); } else {
??sit*/ terte9an atau -obil -enabra9
??WallJolloer if( 7) { PutarKanan(2%%); ??belo9 9anan _delaG_-s(":%); } else ??nabra9 { MundurFurus(); _delaG_-s(7%%); PutarKanan(2:%); _delaG_-s(2%%); } } else ?? depan 7%) { Ma
23
Ma
} else {
Ma
} }
Prevara9Kiri =
void displaGara9(){ l*d.*lear(); l*d.print(
l*d.print(
void ba*aPin3(void){ pin36epan.@ire();
void ber/enti(void){ l*d.setCursor(%, "); l*d.print(%); l*d.setCursor("2, "); l*d.print(%); P!RTB = (% << PB8) | (% << PB:); P!RT6 = (% << P68) | (% << P6:); _delaG_-s(:%); }
void PutarKiri(int 9e*epatan){ l*d.setCursor(%, "); l*d.print(9e*epatan); l*d.setCursor("2, "); l*d.print(9e*epatan); P!RT6 = (" << PB8) | (% << PB:); P!RTB = (% << P68) | (" << P6:); setPWM(9e*epatan,9e*epatan); }
2#
void PutarKanan(int 9e*epatan){ l*d.setCursor(%, "); l*d.print(9e*epatan); l*d.setCursor("2, "); l*d.print(9e*epatan); P!RT6 = (% << PB8) | (" << PB:); P!RTB = (" << P68) | (% << P6:); setPWM(9e*epatan,9e*epatan); }
void Ma
void MundurFurus(void){ l*d.setCursor(%, "); l*d.print(22:); l*d.setCursor("2, "); l*d.print(22:); P!RT6 = (% << PB8) | (" << PB:); P!RTB = (% << P68) | (" << P6:); setPWM(2::,2:2); }
void Ma 2::){ 9anan = 2::; } else if(9anan <"%%){ 9anan = "%%; }
if(9iri > 2::){ 9iri = 2::; } else if(9iri <"%%){ 9iri = "%%; }
P!RTB = (" << PB8) | (% << PB:); P!RT6 = (" << P68) | (% << P6:); setPWM(9iri, 9anan); }
void setPWM(double inputKiri, double inputKanan)
25
{
TCCR2A = _B(C!M2A") | _B(C!M2B" ) | _B(W$M2") | _B(W$M2%); TCCR2B = _B(C'22); !CR2A = inputKiri; !CR2B = inputKanan;
}
void int_
TM'K" = %b%%%%%%; TM'K" = _B(T!1"); ??-en3a9ti@9an !ver@lo nterrupt TCCR"A = %; TCCR"B = %b%%%%""%"; ??pres*alar "%28 TCT" = :44"%; ?? untu9 %," deti9 sei(); }
2