Line Folower Robot

15
Sens orJa rak Sens or Hent i Sens or Gari s Mikro kontro ler AT89S5 2 Comparato r LM339 Moto r Driv er L293 B Roda Kana n Roda Kiri BAB III 3.1 Diagram Blok 3.2 Alat dan Bahan 3.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

description

Desain robot line follower dengan AT89S52 menggunakan bahasa assembly. dengan sensor dibentuk oleh infrared dan photo transistor.

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