Line Folower Robot
-
Upload
gd-surya-adi-pranata -
Category
Documents
-
view
239 -
download
2
description
Transcript of Line Folower Robot
BAB III3.1 Diagram Blok
SensorJarakSensorHentiSensorGarisMikrokontrolerAT89S52ComparatorLM339Motor DriverL293BRodaKananRoda Kiri
3.2 Alat dan Bahan3.2.1 Alat Solder Tang Pinset Cutter Penyedot Timah Kipas Setrika Listrik Printer Toner Alas Kayu Penyangga solder Multimeter Kabel Buaya Adaptor 5 Volt dan 12 Volt Komputer Bor Listrik Project board Kabel Tunggal Software simulator Proteus Software PCB layout design Pad2Pad Software schematic design TinyCAD Software burner ProgISP1.0.7 USB Downloader Software pemrograman Reads51 Sistem minimum AT89S52
3.2.2 Bahan Timah Kertas Glossy Tutup pulpen Kawat email Lakban Hitam Double Tip Socket IC 14 pin Socket IC 40 pin Socket IC 16 pin LM339 L293B AT89S52 Resistor 10k Photransistor IR-LED Resistor 1k Kapasitor 1000 F LM7805 Black housing 2 pin Black housing 4 pin Male Header Kapasitor 10 F/ 16V Push Button Kapasitor 33pF Crystal 12MHz Kapasitor 100nF Resistor 330 Resistor 100 Dioda 1N4002 Motor DC dua arah Trimpot 10k PCB polos Spacer Mur + baut tamiya L-Male Header Female Header Tanduk pengerat Roll-on Fres-Care Roda tamiya Rainbow cable
3.3 RangkaianAdapun rangkaian robotika yang telah direalisasikan seperti yang ditunjukkan pada Gambar 3.1
Gambar 3.1 Skematik Rangkaian Robot Pengikut Garis
Dalam merealisasikan skematik yang diperlihatkan pada Gambar 3.1 maka penulis merancang PCB layout yang didesain dengan software Pad2Pad seperti yang diperlihatkan pada gambar 3.2
Gambar 3.2 Rangkaian utama PCB layout Robot pengikut Garis
Adapun rangkaian tambahan dari Gambar 3.2 adalah berupa rangkaian sensor yang dipasang secara terpisah dari rangkaian utama. Rangkaian tersebut seperti yang diperlihatkan pada Gambar 3.3.
Gambar 3.3 Rangkaian sensor Robot pengikut garis
3.4 Tabel Input dan Output3.4.1 Tabel InputInput dari rangakaian robot pengikut garis ini adalah masukan dari sensor. Jumlah sensor yang digunakan pada robot pengikut garis ini berjumlah 8 buah, yang masuk ke port 1 pada mikrokontroler AT89S52. Adapun pembagian tugas-tugas dari sensor yang digunkanan diperlihatkan pada Tabel 3.1 :
Tabel 3.1 Pembagian tugas berdasarkan masukan yang diperoleh Port 1 mikroontroler AT89S52Sensor PinKeterangan
1P1.0Sensor Jarak (Kanan)
2P1.1Sensor Jarak (Kiri)
3P1.2Sensor Pemberhentian (Kanan)
4P1.3Sensor Pemberhentian (Kiri)
5P1.4Sensor Garis Kiri (Kiri)
6P1.5Sensor Garis Kiri (Tengah)
7P1.6Sensor Garis Kanan (Kanan)
8P1.7Sensor Garis Kanan (Tengah)
Berdasarkan pembagian tugas sensor tersebut maka dapat dibuat tabel pembacaan dan perintah yang akan dilaksanakan berdasarkan masukan yang diperoleh port 1 mikrokontroler AT89S52, seperti yang diperlihatkan pada Tabel 3.2.
Tabel 3.2 Perinta yang dilaksanakan berdasarkan masukan pada Port 1 mikrokontroler AT89S52No.Sensor MasukanPerintah
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0
1xxxxxx00Mundur
2xxxxxx10Belok Kiri
3xxxxxx01Belok Kanan
4xxxx1111Mundur
500000011Jika BenderaTujuanKanan=1 maka belok Kiri,Jika BenderaTujuanKanan=0 maka belok Kanan
600010011Belok Kiri
700100011Belok Kiri
800110011Putar Kiri
901000011Belok Kanan
1001010011Maju
1101100011Tidak Diidentifikasi
1201110011Tidak Diidentifikasi
1310000011Belok Kanan
1410010011Tidak Diidentifikasi
1510100011Maju
1610110011Putar Kiri
1711000011Putar Kanan
1811010011Tidak Diidentifikasi
1911100011Putar Kanan
2011110011Jika BenderaTujuanKanan=1 maka Putar Kanan, Jika BenderaTujuanKanan=0 maka Putar Kiri
Catatan : X = Dont CareDari Tabel 3.2 dapat dilihat bahwa logika no 5, 6, 7, dan seterusnya akan dijalankan apabila P1.3, P1.2, P1.1 dan P1.0 memenuhi logika 0011, dengan kata lain hal ini akan terpenuhi apabila port-port tersebut tidak sesuai dengan salah satu dari logina no 1, 2, 3, 4 dan 5. Hal ini bertujuan untuk memprioritaskan sensor jarak dan sensor pemberhentian dari pada sensor garis. Maka dari itu algoritma ini akan memprioritaskan keselamatan robot dari pada tugas yang seharusnya dijalankan yaitu mengikuti garis. Pada Tabel 3.2, logika no 11, 12, 14 dan 18 tidak dapat mengidentifikasi perintah apa yang seharusnya diberikan karena pada logika no 11 sensor yang mendapat masukan adalah sensor gari kiri (tengah) dan sensor garis kanan (kanan), hal ini sangat jarang terjadi bahkan tidak mungkin jika garis yang digunakan tidak cacat (berlubang ditengah). Begitu pula dengan logika yang tidak dapat diidentifikasi lainya, seperti logika 12, 14, dan 18. Dengan cara ini pemrograman akan menjadi lebih ringkas dan lebih pendek.
3.4.2 Tabel OutputSelain menerima masukan, robot line folower juga harus menampilkan aksi berupa menghindar dari halangan, berhenti dan mengikuti garis. Untuk melakukan hal tersebut mikrokontroler harus dapat memberi perintah ke motor driver berdasarkan masukan yang diterima. Dalam memberikan perintah ke motor driver program yang dibuat harus disesuaikan dengan pin-pin mikrokontroler yang tersambung dengan pin-pin pengendali pada motor driver. Dalam hal ini penulis merancang konfigurasi penyambungan pin-pin tersebut seperti yang ditunjukkan pada tabel 3.3
Tabel 3.3 Sambungan pin pengendali motor driver ke mikrokontrolerNoPin Motor DriverPin MikrokontrolerFungsi
1EN1P2.7Mengaktifkan In1 dan In2
2In1P2.6Mengendalikan Roda Kiri pin (-)
3In2P2.5Mengendalikan Roda Kiri pin (+)
4In4P2.4Mengendalikan Roda Kanan pin (-)
5In3P2.3Mengendalikan Roda Kanan pin (+)
6EN2P2.2Mengaktifkan In3 dan In4
Konfigurasi biner pada Port 2 mikrokontroler untuk menghasilkan gerak robot yang diinginkan diperlihatkan pada Tabel 3.4
Tabel 3.4 Konfigurasi biner pengendali robot pengikut garisPerintahPort 2
P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0
Berhenti00000000
Mundur11010100
Maju10101100
Belok Kanan10111100
Belok Kiri11101100
Putar Kanan10110100
Putar Kiri11001100
BM Kanan (Belok Mundur)11011100
BM Kiri (Belok Mundur)11110100
3.5 Listing Program Lengkap#include BenderaBalikbit 20H.0BenderaTujuanKananbit 20H.1;---------Lompat Ke Program Utama----------- ljmp Start;--------Sub Program Delay------------Delay1:Push 3 Push 4 Mov R3,#255D1: Mov R4,#50 Djnz R4,$ Djnz R3,D1 Pop 4 Pop 3 retDelay2: Push 3 Push 4 Mov R3,#255D2: Mov R4,#5 Djnz R4,$ Djnz R3,D2 Pop 4 Pop 3 Ret;---------Program Utama---------------------Start: setb BenderaTujuanKananMulai: Mov a,P1 anl a,#00000011b cjne a,#00000000b,AmanDiam: Mov a,#11010100b ;Mundur Mov P2,a sjmp MulaiAman: cjne a,#00000010b,Aman1 Mov a,#11101100b ;Belok Kiri Mov P2,a sjmp MulaiAman1: cjne a,#00000001b,Aman2 mov a,#10111100b ;Belok Kanan Mov P2,a sjmp Mulai sjmp Aman2Aman2: mov a,P1 anl a,#00001100b cjne a,#00001100b,JalanSetopBro: Mov a,#11010100b ;Mundur Mov P2,a;-----------------Line Sensor---------------------------- Jalan: mov a,P1 anl a,#11110000b cjne a,#00000000b,mybe0001 jb BenderaTujuanKanan,BlkKiri ;perintah saat sensor 0000 mov a,#10111100b ;Belok Kanan Mov P2,a Sjmp MulaiBlkKiri: mov a,#11101100b ;Belok Kiri Mov P2,a sjmp Mulai mybe0001: cjne a,#00010000b,mybe0010 mov a,#11101100b ;Belok Kiri Mov P2,a setb BenderaTujuanKanan sjmp Mulai
mybe0010: cjne a,#00100000b,mybe0011 mov a,#11101100b ;belok kiri Mov P2,a sjmp Mulai
mybe0011: cjne a,#00110000b,mybe0100 mov a,#11001100b ;Putar kiri Mov P2,a sjmp Mulai
mybe0100: cjne a,#01000000b,mybe0101 mov a,#10111100b ;Belok Kanan Mov P2,a clr BenderaTujuanKanan sjmp Mulai
mybe0101: cjne a,#01010000b,mybe0110 mov a,#10101100b ;Maju Mov P2,a sjmp Mulai
mybe0110: cjne a,#01100000b,mybe0111mybe0111: cjne a,#01110000b,mybe1000mybe1000: cjne a,#10000000b,mybe1001 mov a,#10111100b ;belok kanan Mov P2,a ljmp Mulai
mybe1001: cjne a,#10010000b,mybe1010mybe1010: cjne a,#10100000b,mybe1011 mov a,#10101100b ;Maju Mov P2,a ljmp Mulai
mybe1011: cjne a,#10110000b,mybe1100 mov a,#11001100b ;Putar Kiri Mov P2,a ljmp Mulai
mybe1100: cjne a,#11000000b,mybe1101 mov a,#10110100b ;Putar kanan Mov P2,a ljmp Mulai
mybe1101: cjne a,#11010000b,mybe1110mybe1110: cjne a,#11100000b,mybe1111 mov a,#10110100b ;Putar Kanan Mov P2,a ljmp Mulaimybe1111: cjne a,#11110000b,MulaiUlang jb BenderaTujuanKanan,PutKanan mov a,#11001100b ;Putar Kiri Mov P2,aMulaiUlang: Ljmp MulaiPutKanan: mov a,#10110100b ;Putar Kanan Mov P2,a Ljmp Mulai Selesai: end