Anda di halaman 1dari 63

V22222222222222222222222222222222222222222222222

http://microrobotics.blogspot.com

Gambar hanya ilustrasi

MUDAH KOK DIBUAT SENDIRI

Moh.Ibnu Malik,ST

Naufal Micro & Robotics Email : mailto: naufalrobotics@gmail.com

Disclaimer : Dilarang memperbanyak atau mengedarkan Special Report ini tanpa seijin penulis. Customer Name : All Right Reserved 2010

BAB I PENDAHULUAN

1.1 Latar Belakang Perkembangan teknologi informasi saat ini juga berdampak

berkembangnya ilmu-ilmu lain seperti ilmu robotik. Keunggulan dalam teknologi robotik tak dapat dipungkiri telah lama dijadikan ikon kebanggaan negara-negara maju di dunia. Kecanggilan teknologi yang dimiliki, gedung-gedung tinggi yang mencakar langit, tingkat kesejahteraan rakyatnya yang tinggi, kota-kotanya yang modern, belumlah terasa lengkap tanpa popularitas kepiawaian di dalam dunian robotik. Saat ini dunia per-robotan di Indonesia berkembang dengan pesat. Hal ini tidak lain karena tiap tahun diselenggarakan lomba robot yaitu KRCI (Kontes Robot Cerdas Indonesia). Hal inilah yang memacu banyak Universitas untuk berlomba-lomba membuat robot cerdas yang diharapkan akan memenangkan kontes bergengsi tersebut, namun demikian kebanyakan juara lomba tersebut masih didominasi oleh Perguruan Tinggi. Lomba tersebut sudah merupakan jalan bagi perkembangan dunia robot di Indonesia. Robot yang beredar saat ini banyak terfokus pada sistem remote control seperti robot atau robot pesawat terbang, dan lain-lain sehingga harus dikendalikan dari jarak tertentu sehingga bila terjadi kesalahan pada pengontrolan maka robot tidak akan bekerja sesuai dengan tujuan. Mikrokontroler PIC16F84/A dapat diprogram dengan bahasa assembler secara permanen sehingga dapat

mengendalikan robot agar dapat mengikuti garis (line) secara mandiri tanpa ada yang mengendalikan. Sensor infrared dipasang pada robot akan berfungsi sebagai pengendali robot agar bisa bergerak maju mengikuti garis (line) yang berwarna putih dengan tingkat lengkungan yang tinggi. Mekanik Robot dibuat menyerupai sebuah mobil dengan 2 buah roda dengan 2 penggerak yang berfungsi sebagai penggerak roda dan sebuah caster (roda bebas). Robot mobil yang penulis bangun adalah robot pengikut garis (line follower robot) berbasis mikrokontroler PIC16F84/A. Sesuai namanya robot pengikut garis ini bergerak mengikuti garis putih yang ada dibawahnya. Bila garis (line) tersebut berbelok, maka robot mobil tersebut juga harus berbelok mengikuti garis (line) tersebut. Berdasarkan latar belakang tersebut diatas maka, penulis sangat tertarik untuk melakukan penelitian ini dengan judul : Robot Mobile Pengikut Garis ( Line Follower Robot ) .

1.2. Perumusan Masalah Berdasarkan latar belakang yang telah penulis kemukakan diatas, maka rumusan masalah pada penelitian ini adalah sebagai berikut : Bagaimana perancangan software dengan assembler yang akan digunakan untuk mengontrol robot, sensor infrared yang mampu menentukan arah sehingga robot bisa berjalan, merancang mekanik robot pengikut garis yang berbasis mikrokontroler PIC16F84/A.

1.3. Batasan Masalah Dalam peneltian ini penulis hanya akan membahas tentang jenis dan tipe yang digunakan robot pengikut. 1. Jenis mikrokontroler yang dipakai adalah mikrokontroler PIC16F84/A. 2. Base robot akan dibuat menggunakan bahan dari acrylic 3. Robot menggunakan penggerak servo continous 4. Tipe yang dipakai untuk garis adalah warna putih dengan dasar berwarna hitam

1.4. Tujuan dan Manfaat Penelitian

1.4.1. Tujuan Penelitian Tujuan yang hendak dicapai dalam penelitian ini ini adalah : Dapat membuat rancangan dan realisasi robot pengikut garis (Line Follower Robot) , yaitu suatu mobil robot yang dapat mengikuti suatu garis putih diatas lantai (dasar) warna hitam, dengan menggunakan Mikrokontroler PIC16F84/A.

1.4.2. Manfaat Penelitian Dengan membuat robot pengikut garis berbasis mikrokontroler ini maka manfaat yang didapat adalah : 1. Dapat mengikuti perkembangan robot-robot cerdas yang saat ini sudah banyak beredar terutama di kalangan perguruan tinggi.

2. Dapat

mendesain robot untuk dapat bergerak lurus maju kedepan, dapat

berbelok ke-kiri dan dapat berbelok ke-kanan. 3. Pemanfaatan mikrokontroler PIC16F84/A. 4. Pemanfaatan sensor infrared.

BAB II LANDASAN TEORI

2.1 Mikrokontroler PIC16F84/A Mikrokontroler merupakan suatu didalamnya terdapat komponen penyusun (Central Processing Unit), ROM IC (Intergrated Circuit) yang suatu sistem komputer yaitu CPU

( Read Only Memory ), RAM (Random

Access Memory ) dan I/O (Input/ Output ). Mikrokontroler ini banyak dipakai sebagai alat kontrol pada peralatan elektronika saat ini seperti mesin fax, mesin cuci otomatis dan mesin fotocopy. Mikrokontroler dipakai sebagai alat kontrol alat-alat tersebut karena ukuran yang relatif kecil sehingga mudah dipasangkan pada peralatan tersebut.

CPU ROM/Flash RAM I/O

Gambar 2.1 Komponen Penyusun Mikrokontroler

a. CPU (Central Processing Unit) CPU merupakan pengontrol utama pada mikrokontroler. CPU ini mampu menangani data dengan lebar 8-bit. CPU ini akan membaca program yang tersimpan dalam ROM/Flash dan akan melaksanakannya.

b. ROM ( Read Only Memory ) /Flash ROM merupakan singkatan dari Read Only Memory yaitu berarti bahwa memori tersebut hanya dibaca isinya. ROM/Flash dipergunakan untuk menyimpan program/instruksi untuk mikrokontroler. Setelah diisikan ke dalam ROM/Flash, maka isinya tidak akan terhapus walaupun catu daya dihilangkan. c. RAM ( Random Access Memory ) RAM merupakan Random Access Memory yaitu suatu memori yang dapat dibaca secara acak. Selain itu sifat RAM adalah bahwa isinya akan terhapus bila catu daya kepadanya dihilangkan. RAM dipakai untuk menyimpan data yang sifatnya sementara. d. I/O ( Input / Output ) I/O merupakan singkatan dari Input/Ouput. Dengan adanya I/O tersebut, maka mikrokontroler dapat berhubungan dengan alat luar. Port I/O tersebut dapat dihubungkan dengan LED, Saklar, dan LCD.

2.2 Fitur Mikrokontroler PIC16F84/A Mikrokontroler PIC16F84/A merupakan mikrokontroler keluarga

PICmicro yang diproduksi oleh Microchip Inc. Mikrokontroller ini berukuran cukup kecil dengan pena hanya 18 buah saja. Ukuran yang kecil sangat berguna jika kita membuat alat yang relatif kecil. .

Adapun fitur-fitur pada mikrokontroler PIC16F84/A adalah sebagai berikut.

a. Hanya memerlukan 35 instruksi b. Semua instruksi berukuran 14-bit c. Data berukuran 8-bit d. Memori program berukuran 1024 x 14 pada Flash memori e. 68 x 8 Register kegunaan umum ( SRAM= Statik RAM ) f. 15 Register Kegunaan khusus g. Data memori berukutan 64 x 8 pada EEPROM h. Delapan tingkat stack perangkat keras i. Empat sumber sela ( interupsi ). j. Memiliki 13 buah I/O yang terbagi menjadi Port A dan Port B k. Dapat langsung men-drive LED l. Terdapat timer 8-bit dengan pembagi 8-bit m. Dapat memakai beberapa jenis osilator n. Berukuran fisik hanya 18 pena.

2.3 Susunan Pena Mikrokontroler PIC16F84/A Mikrokontroler PIC16F84/A berukuran fisik hanya 18 pena. Cukup kecil untuk suatu mikrokontroler. Dengan ukuran yang kecil ini, maka memiliki

beberapa kelebihan seperti mudah untuk ditanam pada ruang yang kecil dan dapat didayai dengan mudah menggunakan baterai.

10

Adapun ke 18 pena pada mikrokontroler ini dapat dibedakan menjadi beberapa jenis, yaitu pena power, pena osilator, dan pena port. Susunan pena mikrokontroler PIC16F84 diberikan pada gambar berikut ini.

Gambar 2.2 Susunan pena mikrokontroler PIC16F84/A

Berikut ini adalah tabel penjelasan dari pena-pena pada mikrokontroler PIC16F84/A. Tabel 2.1. pena-pena mikrokontroler PIC 16F84/A No 1 2 3 4 5 6 7 8 9 10 11 Nama Pena VDD VSS OSC1/CLKIN OSC2/CLKOUT MCLR RA4/TOCKI RA0 RA1 RA2 RA3 RB0/INT No.Pena 14 5 16 15 4 3 17 18 1 2 6 Keterangan Sumber daya positif (+2~+6 Volt) Ground Masukan untuk detak Output detak Master Clear ( aktif rendah ) Port A bit 4 / Masukan untuk Timer Port A bit 0 Port A bit 1 Port A bit 2 Port A bit 3 Port B bit 0 / Masukan sela

11

12 13 14 15 16 17 18

RB1 RB2 RB3 RB4 RB5 RB6 RB7

7 8 3 10 11 12 13

Port B bit 1 Port B bit 2 Port B bit 3 Port B bit 4 Port B bit 5 Port B bit 6 Port B bit 7

Mikrokontroler

PIC16F84/A

merupakan

mikrokontroler

yang

menggunakan arsitektur Harvard. Hal ini mengakibatkan dibuatnya pemisahan antara bus data dengan bus alamat. Keuntungan arsitektur ini adalah dapat

digunakan suatu kata panjang (long word) tunggal untuk perintah yang membutuhkan hanya satu lokasi pada program memori. Arsitektur Harvard

secara umum dapat digambarkan seperti pada gambar berikut ini.

Program Memory

CPU

Data Memory

Gambar 2.3 Arsitektur Harvard pada PIC16F84/A

2.4. Beberapa Fitur Mikrokontroler PIC16F84/A Seperti telah disebutkan diatas, bahwa mikrokontroler PIC16F84/A memiliki beberapa fitur yang menarik yang memberikan nilai tambah terhadap mikrokontroler ini. Beberapa fitur tersebut akan dibahas berikut ini.

12

2.4.1 Osilator Osilator merupakan komponen yang sangat penting bagi sebuah mikrokontroler. Jika suatu mikrokontroler tidak diberikan osilator ( detak / clock ) maka dapat dipastikan bahwa mikrokontroler tersebut tidak akan bekerja. Hal ini dikarenakan osilator memberikan detak untuk proses internal pada mikrokontroler itu sendiri. Secara umum agar rangkaian osilator dapat bekerja dengan baik, maka kita harus memberikan tambahan komponen yang berupa kristal ( XTAL ) dan 2 buah kapasitor. Nah untungnya pada mikrokontroler ini dapat dipakai 4 jenis osilator. Hal ini akan memudahkan dalam pemberian osilator tersebut. Adapun jenis Osilator yang dapat dipakai pada mikrokontroler PIC16F84 adalah : a. Osilator RC Osilator ini dibuat dengan menggunakan gabungan suatu Resistor-Capasitor. Osilator ini merupakan osilator paling murah yang dapat dipakai. Jika rangkaian mikrokontroler tidak memerlukan pewaktuan yang presisi, maka dapat menggunakan jenis osilator ini.

Gambar 2.4 Osilator RC (Resistor-Capacitor Network )

13

b. Osilator Kristal Apabila mikrokontroler dipakai dengan asumsi ada perhitungan waktu yang presisi, misalnya ada penggunaan fungsi timer sehingga diharapkan dapat menghasilkan perhitungan waktu yang presisi, maka untuk itu dapat dipergunakan jenis osilator yang menggunakan kristal / resonator.

Gambar 2.5 Osilator Kristal ( XTAL )

c. Detak Luar Selain menggunakan kedua jenis osilator diatas (RC maupun

Kristal/Resonator), maka

masih ada

lagi cara untuk memberikan detak

(clock) kepada mikrokontroler PIC16F84, yaitu dengan memberikan detak luar melalui pena OSC1.

Gambar 2.6 Detak Luar

14

2.4.2 Arithmetic and Logic Unit ( ALU ) Pada CPU mikrokontroler PIC16F84/A terkandung suatu ALU ( Arithmetic and Logic Unit ) yang mampu menangani data dengan lebar 8-bit. ALU ini mampu melaksanakan operasi penjumlahan, pengurangan, pergeseran dan operasi logika. Kecuali disebutkan lain, semua operasi memakai sistem komplemen dua. Pada pelaksanaan kerja suatu instruksi yang menggunakan 2 operand, maka biasanya salah satu operand adalah Register W ( Working Register ). Sedangkan operand yang lain adalah register File atau suatu konstanta.

2.4.3 Reset Reset adalah suatu kondisi dimana mikrokontroler berada pada kondisi awal kerja ( default ). Pada kondisi ini, semua register akan berisi dengan nilai defaultnya. Sebagai contoh Pencacah Program ( PC = Program Counter ) akan berisi 000H yang menunjukkan lokasi awal program yang harus dijalankan. Yang perlu diketahui adalah bahwa pada mikrokontroler PIC16F84/A dikenal beberapa jenis reset yaitu : a. Power On Reset ( POR ) Adalah merupakan reset yang terjadi jika mikrokontroler pertama kali kita hidupkan ( Power On ). Pada saat ini maka PC = 000H. Untuk melakukannya cukup dengan menghubungkan pena MCLR ( Master Clear ) ke Vdd melalui resistor 10K.

15

b. MCLR Reset selama operasi normal Yaitu suatu kejadian reset dimana CPU sedang bekerja secara normal, tibatiba pena MCLR dibuat rendah, maka akan terjadi reset ini. c. MCLR Reset selama sleep Pada saat masuk kedalam mode sleep, maka daya yang digunakan akan berkurang, hal ini sangat berarti pada alat yang didayai baterai. Pada saat sleep ini, ia dapat diaktifkan lagi dengan memberikan sinyal rendah pada pena MCLR. d. Reset Time Out Adalah perhitungan yang telah selesai dari watchdog timer selama operasi normal. e. Reset Time Out dari Watchdog Timer selama prosesor dalam mode sleep

2.4.4

Memori Pada Mikrokontroler PIC16F84/A Program untuk mikrokontroler ini disimpan dalam suatu Flash memory

yang berukuran 1024 x 14. Flash memori ini dapat dihapus tulis beberapa ribu kali tanpa mengalami kerusakan, sehingga cocok untuk dipakai dalam proses pengembangan alat. Pencacah program (PC = Program Counter) pada mikrokontroler ini memiliki lebar 13-bit dan mampu mengalamati hingga 8K x 14 ruang program memori. Namun hanya permulaan 1K ( 1024 ) x 14 saya yang diwujudkan yaitu dari alamat 0000H sampai 03FFH.

16

Vektor reset memiliki alamat 0000H yang berarti bahwa pada saat terjadi reset, maka PC tersebut akan berisi alamat 0000H. Sementara vektor sela adalah 0004H yang berarti bahwa bila terjadi sela ( sela diaktifkan ), maka PC akan menuju alamat 0004H. Peta program memori dapat dilihat pada gambar berikut.

Gambar 2.7 Peta program memori dan stack

2.4.5 Organisasi Register File Register adalah suatu lokasi memori yang bertanggung-jawab terhadap suatu alat dalam mikrokontroler. Untuk mengatur alat pada mikrokontroler tersebut dilakukan dengan mengatur register yang berpadanan dengan alat tersebut.

17

Sebagai contoh untuk mengatur bit-bit mana yang sebagai masukan atau keluaran pada Port A dilakukan dnegan mengatur register TRISA. Untuk mengatur bit-bit mana sebagai masukan atau keluaran pada port B dilakukan dengan mengatur isi register TRISB. Register file diorganisasikan sebagai 128 x 8. Register ini dapat diakses baik secara langsung maupun tidak langsung melalui register SFR (File Select Register). Pada mikrokontroler ini register dimuatkan pada 2 halaman ( 2 bank ) yaitu bank 0 dan bank 1. Pemilihan bank tersebut dilakukan dengan mengatur bit RP0 ( bit ke-5 pada register STATUS ). Bila RP0 = 0 maka terpilih bank 0, bila RP0 = 1 maka terpilih bank 1. Berikut adalah gambar Peta register file.

Gambar 2.8 Peta register File

18

Dua belas lokasi pertama adalah digunakan untuk memetakan register fungsi khusus. Sedangkan lokasi selanjutnya ( 0CH sampai 4FH ) merupakan register kegunaan umum yang diwujudkan sebagai statik RAM.

2.4.6 Port Mikrokontroler Mikrokontroler PIC16F84/A memiliki 2 buah port yang diberi nama Port A dan Port B. Port A berukuran 5 bit (RA0 ~ RA4) sementara Port B berukuran 8 bit (RB0 ~ RB7). Ada beberapa port yang memiliki fungsi khusus yang dimultiplek dengan fungsi umum, yaitu RA4 juga merupakan masukan detak luar untuk menuju ke Timer/Counter. Kemudian RB0 juga memiliki fungsi khusus sebagai masukan Interupt (sela). Selain itu pena RB6 dan RB7 juga merupakan masukan untuk diprogram. proses download program pada saat mikrokontroler

2.5 Motor Servo Motor servo merupakan sebuah motor DC yang memiliki rangkaian kontrol sehingga jika posisi yang diharapkan sudah tercapai, maka putaran motor akan berhenti secara otomatis. Motor servo sendiri ada 2 jenis yaitu motor servo standar yang putarannya terbatas, dan motor servo continous yang putarannya 360 derajat. Untuk mobil robot ini maka harus dipakai servo jenis continous.

19

Gambar 2.9 Motor Servo

Motor servo ini dikontrol hanya menggunakan 1 bit saja dengan sistem memberikan pulsa dengan lebar tertentu. Lebar pulsa adalah antara 1 sampai 2 ms.

2.6. Sensor Infrared Sensor Infra Merah ini digunakan untuk membedakan warna putih dan warna hitam. Warna putih adalah line yang akan digunakan pada tugas akhir ini. Sedangkan warna hitam sendiri merupakan warna dasar.

20

Pada saat sensor mendeteksi warna putih, maka akan dipancarkan sinar Infra Merah ke permukaan putih tersebut. Oleh karena warna putih tidak memiliki sifat menyerap cahaya, maka sinar tersebut tidak dipantulkan. Namun jika sinar mengenai permukaan warna hitam, sinar akan dipantulkan. Pantulan sinar inilah yang nantinya dideteksi oleh sensor infra merah.

Gambar 2.10 Prinsip pen-deteksian line Dipasaran telah tersedia sinar infra merah dalam bentuk modul yang siap pakai. Hal ini tentu memudahkan dalam pembuatan tugas akhir tersebut.

2.7. Diagram Alur (Flowchart) Flowchart (diagram alur) adalah suatu bagan yang

menggambarkan/mempresentasikan suatu prosedur untuk menyelesaikan masalah atau dengan kata lain flowchart yaitu bagan yang menggambarkan suatu prosedur dan proses suatu File dalam suatu media menjadi file dalam media yang lain dalam suatu system data.

21

Flowchart adalah diagram yang menunjukan semua langkah penting dalam suatu proses. Diagram alur merupakan langkah awal dalam menganalisa suatu proses dengan menggunakan symbol-simbol tertentu untuk

mendokumentasikan langkah-langkah proses. Jadi flowchart merupakan suatu gambar atau bagan yang menunjukan keseluruhan langkah-langkah proses secara berurutan. Flowchart merupakan symbol-simbol yang berisi langkah-langkah arus control dari pelaksanaan suatu program. Tujuan dari pembuatan flowchart ini adalah untuk mempermudah dalam penulisan program yang akan dibuat. Diagram alur flowchart merupakan bentuk grafis visual dari algoritma.

Table 2.2 diagram alur (flowchart) No 1 Simbol Keterangan (terminal symbol) menunjukan awal dan akhir dari program

(processing symbol) menunjukan pengolahan aritmatika dan pemindahan data (input/output symbol) menunjukan proses input atau output

(decision symbol) untuk mewakili operasi perbandingan logika

Arah atau alir untuk proses symbol untuk penghubung antar aktivitas

22

(predefined process symbol) proses yang ditulis sebagai sub program, yaitu prosedur/fungsi (connector Symbol) penghubung pada halaman yang sama

(preparation symbol) memberikan nilai awal pada suatu variable atau counter

(off page connector symbol) penghubung pada halaman yang berbeda

2.8 Hubungan Antara Komputer Dengan Robot Hubungan antara komputer dengan robot adalah sangat dekat. Hal ini tidak lain karena sebagian besar komputer dikontrol dengan menggunakan komputer. Dalam hal ini komputer disini adalah dalam pengertian yang luas, artinya bisa komputer PC ( Personal Computer ), SBC ( Single Board Computer ), PLC ( Programmable Logic Controller ) maupun sistem berbasis mikrokontroler. Untuk robot-robot dengan kinerja sangat presisi biasanya dikontrol dengan sistem komputer. Namun tentu kita tahu bahwa ada beberapa robot ( BEAM Robot ) yang dapat dikontrol dengan rangkaian analog.

23

BAB III ANALISIS DAN PERANCANGAN

3.1. Analisis Jenis mikrokontroler yang akan digunakan adalah mikrokontroler PIC16F84/A buatan Microchip Inc. Pemilihan didasarkan pada pertimbangan diantaranya adalah ukuran mikrokontroler yang relatif kecil ( hanya memiliki 18 pena ). Ukuran PCB ( Printed Circuit Board ) diharapkan tidak terlalu besar. Hal ini dikarenakan bagian sensor juga akan menggunakan board yang sama. Agar dapat berfungsi sebagaimana mestinya, sebuah mikrokontroler memerlukan piranti (part) tambahan agar dapat bekerja. Diantaranya adalah sebuah sumber daya ( baterai ) dan sebuah sumber detak (clock). Oleh karena itu kedua bagian tersebut harus ada pada sistem minimum mikrokontroler. Sistem minimum artinya sebuah sistem terkecil dimana sebuah mikrokontroler sudah dapat bekerja. Jadi tanpa catu daya atau tanpa sumber detak, maka mikrokontroler tidak akan berguna. Lebih detail tentang sistem minimum mikrokontroler PIC16F84/A. Pada sistem ini, sebuah resonator sebesar 4 MHz akan ditambahkan sebagai penghasil detak (clock). Sumber daya akan digunakan sebuah baterai 9 Volt yang nantinya akan dirubah sesuai tegangan kerja mikrokontroler. Tegangan 9 volt tersebut akan dirubah sehingga menjadi + 5 Volt yang cocok untuk mikrokontroler PIC16F84/A.

24

+5V 24 10K 4
VDD

14
OSC1

16

Resonator 4MHz

MCLR

OSC2

15 RESET PIC16F84
VSS

Port A Port B

Gambar 3.1 Sistem mikrokontroler PIC16F84/A

Pada gambar tersebut terdapat sebuah sumber daya sebesar +5 Volt, sebuah Resonator 4 Mhz sebagai sumber detak, sebuah resistor 10K Ohm yang dihubungkan antara pena MCLR dengan +5 Volt dan sebuah saklar sebagai saklar reset. Resistor 10K Ohm tersebut memang diperlukan agar pena MCLR berlogika tinggi sehingga mikrokontroler akan bekerja, jika pena MCLR berlogika rendah, maka mikrokontroler akan secara otamatis akan di reset. Pada sistem mikrokontroler tersebut diperlukan sebuah sumber tegangan sebesar + 5Volt. Untuk mendapatkan tegangan sebesar itu dapat dengan mudah dengan cara menurunkan tegangan baterai 9 Volt menggunakan sebuah IC

25

penurun tegangan yaitu 7805. Rangkaian berikut menjelaskan cara merubah tegangan baterai 9 Volt menjadi tegangan sebesar + 5 Volt.

+9V

7805

+5V 10u 16V

Gambar 3.2 Penghasil tegangan + 5 Volt dengan IC 7805

Rangkaian diatas merupakan rangkaian yang akan menurunkan tegangan 9 Volt dari baterai menjadi tegangan 5 Volt. Kapasitor digunakan untuk lebih meratakan tegangan keluaran dari IC 7805.

3.2. Perancangan Perancangan yang penulis lakukan pada tugas akhir ini penulis bagi menjadi 2 bagian yaitu : a. Perancangan/desain perangkat keras (hardware) yang meliputi : perancangan mekanik robot pengikut garis (linefollower robot), perancangan system penggerak robot, perancangan sensor infra merah.

26

b. Perancangan /desain perangkat lunak (software) yang akan membahas software yang berhubungan dengan perangkat keras meliputi : programmer mikrokontroler.

3.2.1. Perancangan perangkat keras (hardware)

1. Perancangan Mekanik Robot Robot pengikut garis (line follower robot) secara garis besar menggunakan beberapa komponen seperti motor servo kiri dan kanan sebagai penggerak roda, mainboard tempat merangkai komponen-komponen termasuk mokrokontroler PIC 16F84/A, pembuatan 2 buah roda, pemasangan sensor infra merah.

sensor

Roda caster

servo

Roda

Gambar 3.3. Gambar Line Follower Robot dari bawah

27

2. Perancangan sistem pengggerak Agar dapat bergerak, sebuah mobil robot memerlukan sistem penggerak ( drive sistem ). Karena robot ini berbentuk mobil, maka sistem penggeraknya yang sesuai adalah motor servo. Untuk menggerakkan robot ini dapat dipakai motor dc ataupun menggunakan motor servo . Apabila kita akan menggunakan motor DC, maka kita harus membuat sistem gear. Sistem gear berguna agar putaran motor memiliki putaran per menit yang kecil dan memiliki torsi yang besar. Perlu diperhatikan bahwa

menghubungkan sebuah poros motor dengan roda secara langsung adalah tidak diperkenankan. Hal ini karena torsi yang cukup kecil yang nantinya tidak akan kuat untuk mendorong mobil robot. Selain memerlukan sistem gear, juga diperlukan sebuah IC penggerak khusus agar motor dapat bergrak dengan baik. Jika tidak menggunakan IC driver khusus, maka harus menggunakan gabungan beberapa transitor yang sering disebut dengan nama H-Bridge. Untuk memudahkan pemasangan gear motor, dan IC penggerak motor maka pada tugas akhir ini akan menggunakan sistem penggerak menggunakan motor servo. Pada motor servo sudah terdapat sebuah motor dc yang sudah dilengkapi dengan sistem gear. Pada putaran sebuah motor servo sudah didapat RPM yang rendah dan torsi ( torque ) yang tinggi, sehingga roda akan dapat menggerakkan mobil robot.

28

Selain itu juga untuk mengontrol motor DC hanya diperlukan sebuah jalur I/O saja. Motor servo sendiri sebenarnya terdiri dari 2 jenis. Jenis pertama adalah jenis standard. Pada motor servo standard putaran maksimalnya hanya sampai sekitar 180 derajat saja. Motor servo standard ini sering dipakai pada mobil-mobil remote control, yaitu untuk mengatur arah roda pada mobil remote tersebut.

Jenis kedua adalah motor servo continous. Motor servo ini dapat berputar sampai 360 derajat. Motor servo ini dapat diperintah agar berputar CW ( Clock Wise ) ataupun CCW ( Counter Clock Wise ) ataupun stop ( berhenti ). Pengaturannya menggunakan sistem PWM ( Pulse Width Modulation ). Motor servo yang akan digunakan adalah berjumlah 2 buah. Satu untuk roda kiri yang akan dihubungkan dengan mikrokontroler port RB0 dan satu lagi untuk roda kanan yang dihubungkan dengan mikrokontroler port RB1.

3. Perancangan Sensor IR (Infra Red) Sensor infra merah digunakan untuk menentukan line. Line tersebut dapat berupa garis hitam pada dasar warna putih, atau garis putih pada dasar warna hitam. Cara kerja sensor infra merah adalah sebagai berikut. Sebuah LED Infra Merah akan memancarkan sinar infra merah. Sinar ini tidak dapat kita lihat karena tidak termasuk spectrum sinar tampak. Oleh karena itu untuk mengecek apakah LED infra merah memancarkan cahaya, dapat dilihat menggunakan kamera pada handphone. Caranya arahkan kamera handphone pada

29

LED tersebut yang telah diberi catu daya. Apabila LED infra merah tersebut menyala, maka akan tampak pada kamera pada handphone. Apabila dasar ( lantai ) berwarna putih, maka sinar infra merah tadi akan dipantulkan oleh lantai tersebut. Namun jika lantai tersebut berwarna hitam, maka sinar infra merah tersebut akan diserap sehingga sinar infra merah tidak dipantulkan. Prinsip inilah yang digunakan untuk mendeteksi line (garis).

Pada sisi LED infra merah akan dipasang sebuah photodioda. Photodioda adalah sebuah dioda yang peka terhadap sinar infra merah. Photodioda ini bentuknya mirip dengan LED infra merah. Apabila photodioda tersebut terpapar sinar infra merah, maka dia akan menghantarkan arus dari anoda ke katoda. Adapun rangkaian sensor infra merah untuk sebuah LED infra merah adalah sebagai berikut.

+5V

LED IR

10K

2
PHOTO DIODA

8 -

LM358
1
KE PIC16F84 (RA0 dan RA1)

3
1K 10K

+ 4
LED MERAH

Gambar 3.4 Rangkaian sensor Infra Merah

30

Rangkaian diatas perlu dibuat 2 buah. Hal ini diperlukan agar mobile robot dapat mengenali arah line (garis) apakah lurus, belok kiri ataupun belok kanan. Namun perlu diingat bahwa dalam sebuah IC LM358 terdapat 2 buah komparator seperti pada gambar diatas. Adapun cara kerja rangkaian diatas adalah sebagai berikut. Setelah catu daya diberikan, maka LED Infra merah akan menyala dan mengeluarkan sinar infra merah. Apabila saat itu bidang yang dipapar adalah bidang warna hitam, maka sinar tersebut akan diserap ( tidak dipantulkan ). Hal ini menyebabkan photodioda tidak aktif, sebagai akibatnya output dari komparator rendah ). Namun jika yang terpapar adalah bidang berwarna putih, maka sinar infra merah akan memantul dan akan diterima oleh photodioda. Sebagai akibat akhirnya maka output dari komparator menjadi tinggi ( logika tinggi ). Output sensor ini nantinya akan diproses oleh sistem mikrokontroler untuk menentukan motor servo mana yang harus berputar. Sensor kiri akan dihubungkan dengan mikrokontoler pada port RA0 dan sensor kanan dihubungkan dengan mikrokontroler pada port RA1. adalah nol ( logika

3.2.2. Perancangan perangkat lunak (software)

31

1. Programmer Mikrokontroler PIC16F84/A Agar dapat bekerja sebuah sistem mikrokontroler memerlukan beberapa syarat yang harus dipenuhi. Apabila salah satu saja syarat tersebut tidak dipenuhi, maka sistem mikrokontroler tersebut tidak akan bekerja. Adapun syarat agar sistem mikrokontroler dapat bekerja adalah sebagai berikut. a. Tersedianya catu daya pada mikrokontroler tersebut b. Tersedianya sumber detak pada mikrokontroler tersebut c. Tersedianya program (firmware) pada mikrokontroler tersebut

Syarat pertama (a) dan kedua (b) adalah mudah dilaksanakan. Sedangkan untuk syarat yang ketiga (c) harus memiliki suatu alat yang dinamakan programmer. Mikrokontroler PIC16F84 dijual oleh produsennya dalam keadaaan kosong (tanpa ada firmware) didalamnya. Alat untuk memprogram mikrokontroler

tersebut sangat mudah dibuat. Berikut adalah salah satu contoh rangkaian yang dapat dipakai untuk memprogram mikrokontroler PIC16F84/A

32

DB9 ( SERIAL PORT )

+5V 10u 16V

TxD(3)

10K 4

14

Gnd(5) 4K7 RTS(7) 4K7 DTR(4)

PIC16F84 /A
12

13

CTS(8)

Socket IC (ZIF)

Gambar 3.5 Rangkaian Programmer PIC16F84/A

Dengan adanya programmer ini, maka mikrokontroler yang kosong tersebut dapat segera diisi dengan firmware yang sesuai.

2. Perancangan Software Setelah selesai melaksanakan perancangan hardware, maka selanjutnya adalah perancangan software. Perancangan software memang harus dilakukan setelah perancangan hardware selesai. Hal ini dikarenakan kita telah tahu sensorsensor dan sistem penggerak (motor servo) dihubungkan dengan I/O yang mana. Hubungan antara mikrokontroler dan sensor maupun sistem penggerak dapat dilihat pada gambar berikut.

33

RA0

Sensor Kiri Sensor Kanan


RA1

RB0

PIC 16F84/ A

Servo Kiri Servo Kanan

RB1

Gambar 3.6. Hubungan Mikrokontroler dan sensor-sistem penggerak

Dari gambar diatas terlihat bahwa sensor dihubungkan dengan RA0 dan RA1 sedangkan motor servo dihubungkan dengan RB0 dan RB1. Oleh karena itu maka PORTA harus diinisialisasi sebagai port masukan (input) sedangkan PORTB diinisialisasi sebagai port keluaran (Output). Hal ini dapat dilihat dari arah panah pada gambar diatas. Pada tugas akhir ini akan dibuat dengan ketentuan dasar (base) yang digunakan berwarna hitam sedangkan garis (line) yang harus diikuti oleh mobil robot berwarna putih. Berdasarkan keterangan diatas bahwa pada saat sensor diatas bidang warna putih maka output sensor akan berlogika tinggi (1) sedangkan jika sensor diatas bidang warna hitam output sensor akan berlogika rendah (0). Dengan informasi diatas maka kita akan dapat membuatkan tabel kebenaran untuk hubungan antara sensor dan motor servo. Sebelumnya gambar

34

berikut akan menjelaskan letak hubungan kedua sensor IR dengan garis ( line ) pemandu.

Sensor IR Kiri (logic 1)

Sensor IR Kanan (logic 1)

Garis Pemandu berwarna putih

Gambar 3.7 Jalan Lurus

Pada gambar terlihat posisi sensor IR masing-masing berada dalam garis pemandu ( warna putih ) hal ini mengakibatkan keluaran kedua sensor tersebut adalah tinggi (1). Maka mobil robot harus berjalan lurus ( motor servo kiri dan motor servo kanan berputar ).

35

Sensor IR Kiri (logic 0)

Sensor IR Kanan (logic 1)

Garis Pemandu berwarna putih

Gambar 3.8 Belok kanan

Pada gambar diatas sensor kiri ada diluar garis pemandu sehingga output sensor berlogika rendah ( 0 ) sementara sensor kanan masih ada pada garis pemandu sehingga sensor kanan outputnya tinggi ( 1 ). Kejadian ini akan mengakibatkan mobil robot berbelok ke kanan ( motor servo kiri berputar dan motor servo kanan diam ).

36

Sensor IR Kiri (logic 1)

Sensor IR Kanan (logic 0)

Garis Pemandu berwarna putih

Gambar 3.9 Belok Kiri

Pada gambar diatas sensor kiri ada pada garis pemandu sehingga sensor berlogika tinggi sementara sensor kanan diluar garis pemandu ( sensor berlogika rendah ). Hal harus menyebabkan mobil robot bergerak ke kiri ( motor servo kiri diam dan motor servo kanan berputar ). Dari kejadian-kejadian diatas dapat dibuatkan tabel kebenaran hubungan antara logika pada sensor dan output kepada motor servo sebagai berikut.

Tabel 3.1 Hubungan sensor dan motor servo No 1 2 Sensor Kiri Logika 1 Logika 0 Sensor kanan Logika 1 Logika 1 Servo Kiri Jalan Jalan Servo kanan Jalan Berhenti Keteranga n Jalan Lurus Belok

37

3 4

Logika 1 Logika 0

Logika 0 Logika 0

Berhenti Berhenti

Jalan Berhenti

Kanan Belok Kiri Stop

Tabel

diatas inilah

yang menjadi dasar untuk membuat

program

(firmware) yang nantinya akan dimasukkan kedalam mikrokontroler. Karena pada mobil robot tidak boleh Stop, maka pada point stop diganti dengan putar kanan. Ini dimaksudkan agar jika sensor mobil robot dua-duanya terpapar ke warna putih, mobil tidak berhenti melainkan berputar ke kiri. Dari sini dapat dibuat flowchart sebagai berikut.

38

Start Cek Sensor Baca port A dan simpan di W register


AND-kan dengan 00000011B

Isi W dikurangkan Dengan OH

Putar Kanan

Apakah Bit Zero di set ?


Isi W dikurangkan Dengan 3H

Belok Kanan

Apakah RA0 =1?

Apakah Bit Zero di set ?

Belok Kiri

Jalan Lurus

Gambar : 3.10. Flochart Program

39

Adapun program untuk flowchart diatas adalah :

cek_sensor movf PORTA,0 ; copy isi PORTA ke Wreg andlw b'00000011' cek_putar_kanan sublw b'00000000' ; kurangkan W dengan 0H btfss STATUS,2 ; cek bit Zero (Z) goto cek_jalan_lurus goto putar_kanan ; cek_jalan_lurus sublw b'00000011' dengan 3H btfss STATUS,2 goto cek_belok_kiri goto jalan_lurus jalan_lurus cek_belok_kiri btfss PORTA,0 goto belok_kanan

kurangkan

ya

maka

; cek apakah RA0=1?

3. Cara kompilasi dan menanamkan program ke Mikrokontroler

40

Gambar.3.11. Layout proses penyimpan program di mikrokontoler

Cara Memprogramnya adalah sebagai berikut. 1. Klik pada open ikon Open file setelah itu cari file yang akan

dimasukkan kedalam mikrokontroler PIC16F84. File nya adalah yang berektensi Hex. 2. Setting oscilator pada mode XT dan Beri tanda centang pada Power Up Timer

3. Tekan pada ikon Program

maka proses downloading ke

mikrokontroler akan segera berlangsung. Jika telah menunjukkan 100% berarti proses downloading telah selesai.

4. Untuk menghapus ( erase ) isi mikrokontroler tekan ikon Erase 5. Untuk merubah isi EEPROM data dengan cara double klik pada lokasi yang diinginkan, kemudian ganti dengan nilai yang dikehendaki.

41

3. Pembuatan Line Follower Robot Secara Keseluruhan Setelah persiapan baik hardware maupun software telah selesai, maka saatnya sekarang untuk tahap penyelesaian Line Follower Robot secara keseluruhan. Pertama yang harus dipersiapkan adalah bagian mechanical dari line follower robot tersebut. Robot pengikut garis (Line Follower Robot) ini akan menggunakan base dari acrylic yang di buat berwujud bulat. Pada sisi-sisinya kedua buah kemudian dipasang

motor servo ( kiri dan kanan ). Sementara pada ujung lainnya kita

pasang roda caster. Agar posisi robot dapat ditopang dengan baik, maka bagian bawah dipasang tempat untuk meletakkan baterai ( 4 buah baterai @ 1.5 Volt ) yang digunakan untuk mendayai motor servo. Perlu diingat bahwa motor servo harus diberi catu daya tersediri tidak boleh mengambil dari catu daya dari mikrokontroler. Hal ini agar mikrokontroler tidak menjadi hang pada saat motor servo mulai berputar. PCB dan Layout PCB yang digunakan untuk mengontrol mobil robot.

42

Gambar 3.12. PCB pengontrol mobil robot

Baterai untuk Motor Servo

Rangkaian Mikrokontroler PIC16F84/ A

Baterai untuk Mikrokontr oler

Rangkaian Pendeteksi sensor IR ( Comparator )

Sensor Infra Merah

43

Gambar 3.13. Layout PCB

Komponen-Komponen Untuk Menyusun Mobile Robot Berikut ini akan dibahas komponen-komponen yang dipakai untuk menyusun mobile robot pada Tugas Akhir ini.

1. Mikrokontroler PIC16F84/A Adalah merupakan mikrokontroler yang dipakai untuk mengontrol keseluruhan Tugas Akhir ini. Program yang dimasukkan kedalam mikrokontroler ini akan memberikan unjuk kerja bagi mobil robot ini. 2. Motor Servo Adalah merupakan komponen untuk penggerak. Dia akan dihubungkan dengan motor sehingga dapat membuat mobil robot bergerak baik maju maupun mundur. Pada disain ini dipakai motor servo sebanyak 2 buah. Agar dapat berbelok dilakukan dengan cara mengatur satu servo on dan satu servo off. 3. Komparator Merupakan suatu IC yang berisi op-amp ( operational amplifier ) yang digunakan untuk membandingkan tegangan pada output sensor IR dan tegangan dari trimpot. Dengan menggunakan komparator ini, maka dapat diatur sensitivitas alat.

44

4. LED Infra merah ( IR ) Merupakan LED yang dapat mengeluarkan sinar infra merah yang dipakai untuk mendeteksi warna permukaan apakah hitam ataukah putih. 4. Photodioda Merupkan komponen semi-konduktor yang peka terhadap sinar inframerah. Komponen ini dipakai untuk mendeteksi ada tidaknya sinar infra merah yang dating kepadanya. 5. Baterai Merupakan sumber listrik yang dipakai untuk menggerakkan mobil robot ini. Pada mobil robot ini dipakai 2 buah sumber daya yaitu +9 Volt ( baterai kotak ) untuk mendayai sistim mikrokontroler dan +6 Volt yang dipakai untuk menggerakkan motor servo,

45

BAB IV PENGUJIAN ALAT DAN PENGAMATAN

4.1. Pemograman Ada beberapa program (coding ) yang dilakukan untuk menjalankan robot pengikut garis ( line follower robot ) sehingga antara perangkat keras (hardware) dapat berjalan sesuai dengan harapan program. Beberapa program ( coding ) tersebut adalah sebagai berikut : a. Inisialisasi Maksud dan tujuannya adalah mengeset port-port mana saja sebagai port masukan dan port keluaran. Bagian inisialisasi ini sangat penting, karena akan memberitahukan kepada mikrokontroler port yang akan dijadikan sebagai port masukan maupun port keluaran. Hal ini disebabkan semua port adalah memiliki sifat bi-directional ( dua arah masukan/keluaran ). Adapun coding untuk inisialisasi adalah sebagai berikut :
init bsf STATUS,RP0 ; ke halaman (bank) 1 movlw b'00000000' ; isi W reg dengan 0H movwf TRISB ; copy isi W ke TRISB ; portb sebagai keluaran(output) movlw b'11111' ; isi W dengan 11111B movwf TRISA ; copy isi W ke TRISA bcf STATUS,RP0 ; kembali ke halaman (bank)0 ; porta sebagai masukan(input) bcf PORTB,0 ; init servo off bcf PORTB,1 ; init servo off

46

Pada program ( coding ) diatas terlihat bahwa Port B dijadikan sebagai port keluaran, sementara Port A digunakan sebagai port masukan. Setelah itu dilanjutkan dengan mematikan kedua motor servo dengan memberikan instruksi : bcf PORTB,0 dan bcf PORTB,1.

b. Pengecekan Kondisi Sensor Program ( coding ) berikutnya setelah inisialisasi adalah program untuk mengecek kondisi dari sensor. Pada proyek ini dipasang dua sensor IR yang terhubung dengan RA0 ( sensor kiri ) dan RA1 (sensor kanan ). Kedua sensor ini harus dibaca kondisinya secara bersamaan untuk menentukan arah mobile robot apakah harus berjalan lurus, belok kiri atau belok kanan. Untuk melakukan hal ini maka dilakukan hal sebagai berikut. Pertama dibaca kondisi port A dan simpan isinya ke Working Register ( W ) : movf PORTA,0 reg Setelah itu hasilnya di AND-kan dengan 00000011B agar didapatkan bitbit pada RA0 dan RA1. Berdasarkan penjelasan pada bab sebelumnya yaitu pada tabel 1 diberikan keterangan sbb : ; copy isi PORTA ke W-

47

Tabel 4.1. Kondisi Sensor No 1 2 3 4 Sensor kanan 1 1 0 0 Sensor Kiri 1 0 1 0 Hexa 3H 2H 1H 0H Keterangan Jalan Lurus Belok Kanan Belok Kiri Stop

c. Pengaturan Putaran servo Program ( Coding ) selanjutnya adalah untuk mengontrol apakah motor servo perlu berputar atau diam. Jika ingin membuat robot pengikut garis (line follower robot) berjalan, maka kedua servo harus berputar. Jika ingin berbelok maka salah satu servo berputar, servo yang lain harus diam. Ada 4 kerja yang harus dibuat yaitu Belok kiri, belok kanan, jalan lurus dan putar kanan. Adapun programnya . coding -nya adalah :

belok_kiri bcf PORTB,0 bsf PORTB,1 call Delay1ms bcf PORTB,1 call Delay18ms; goto cek_sensor ;matikan servo1; ;aktifkan servo2

belok_kanan bsf PORTB,0 call Delay2ms bcf PORTB,0 ; aktifkan servo1

48

call Delay18ms

bcf PORTB,1 goto cek_sensor

; matikan servo 2

jalan_lurus bsf PORTB,0 call Delay2ms bcf PORTB,0 call Delay18ms ; aktifkan servo1

bsf PORTB,1 call Delay1ms bcf PORTB,1 call Delay18ms; goto cek_sensor

;aktifkan servo2

putar_kanan bsf PORTB,0 call Delay2ms bcf PORTB,0 call Delay18ms ; aktifkan servo1

bcf PORTB,1 goto cek_sensor

; matikan servo 2

4.2. Pengujian / Tes

49

4.2.1 Pengujian Pada Sistem Minimum Mikrokontroler PIC16F84/A Sebelum dapat dipakai maka sistem mimimum mikrokontroler PIC16F84/A ini harus di uji terlebih dahulu apakah telah bekerja dengan baik. Pengujian ini sangat perlu untuk mengurangi pencarian kesalahan ( troubleshooting ) kelak jika alat tidak bekerja dengan baik. Untuk menguji sistem minimum mikrokontroler PIC16F84 ini dilakukan dengan memberikan program uji. Program uji ini dibuat mirip dengan konfigurasi I/O pada alat Line follower robot yaitu : RA0 masukan 1 ( dihubungkan dengan switch1 ) RA1 masukan 2 ( dihubungkan dengan switch 2 ) RB0 keluaran 1 ( dihubungkan dengan LED1 ) RB1 keluaran 2 ( dihubungkan dengan LED2 )

Rangkaian uji ini akan dibuat sesederhana mungkin yaitu jika saklar S1 ditekan maka LED1 akan menyala. Dan jika saklar S2 ditekan, maka LED2 akan menyala. Berikut program untuk menguji sistem mikrokontroler PIC16F84. ;program uji mikrokontroler PIC16F84/A ;============================ processor 16f84 STATUS equ 0x03 RP0 equ 5

PORTA equ 0x05 PORTB equ 0x06

50

TRISA equ 0x85 TRISB equ 0x86 Org 0x00 inisialisasi bsf STATUS,RP0 movlw b'11111' movwf TRISA movlw b'00000000' movwf TRISB bcf STATUS,RP0 ; PORTB sebagai keluaran ; PORTA sebagai masukan

bcf PORTB,0 bcf PORTB,1

; matikan LED ; matikan LED

cek_saklar1 btfsc PORTA,0 goto cek_saklar2 goto nyala_LED1 cek_saklar2 btfsc PORTA,1 goto cek_saklar1 goto nyala_LED2

51

nyala_LED1 bsf PORTB,0 goto cek_saklar1 nyala_LED2 bsf PORTB,1 goto cek_saklar2 end Hasil pengujian : Jika saklar S1 ditekan maka LED1 menyala Jika saklar S2 ditekan maka LED2 menyala Dengan demikian sistem mikrokontroler PIC16F84 dapat dikatakan telah bekerja dengan baik.

4.2.2. Pengujian Pada Sistem Sensor Infra Merah (IR) Setelah sistem minimum mikrokontroler dapat bekerja dengan baik, yaitu dapat melaksanakan program uji dengan baik, maka langkah selanjutnya adalah melakukan pengecekan pada sensor infra merah. Untuk melakukan pengecekan ini dilakukan dengan cara sebagai berikut. 1. Akan kita uji terlebih dahulu sensor sebelah kiri. 2. Arahkan sensor ( led IR dan photodioda ) ke permukaan warna putih 3. Atur (putar-putar) TRIMPOT sehingga LED pada output LM358 menyala (aktif-high)

52

4. Arahkan sensor pada permukaan warna hitam. Pastikan LED harus menjadi mati. 5. Hal yang sama juga dilakukan untuk sensor sebelah kanan. Pengaturan diatas dilakukan untuk memastikan bahwa sensor bekerja sesuai harapan yaitu outputnya akan berlogika tinggi jika sensor dipaparkan pada permukaan putih. Sebaliknya outputnya akan berlogika rendah jika sensor dipaparkan pada permukaan berwarna hitam. Tabel berikut merupakan hasil pengukuran secara langsung antara output dari photodioda ( masukan non-inverting ( + ) LM358 ) dengan tegangan

pembanding (masukan inverting) (-) LM358

Tabel 4.2. Perbandingan tegangan permukaan putih dan hitam Sensor Kiri Permukaan Non-Inv Permukaan Putih Permukaan Hitam 1,9 V 0,3 V Inver 1,46 V 1,46 V Output 3,69 V 0,0 V Non-Inv 1,64 V 0,23 V Inv 1,08 V 1,08 V Output 3,79 V 0,0 V Sensor Kanan

Dari tabel diatas dapat dilihat bahwa pada sensor kiri, output dari photodioda dibandingkan dengan tegangan 1,46V ( yang didapat dengan cara mengeset TRIMPOT sensor kiri ). Pada saat output dari photodioda diatas tegangan banding tadi, maka keluaran dari komparator akan tinggi. Disini terlihat bahwa pada saat dipaparakan ke permukaan putih, maka output dari photodioda akan menghasilkan tengan 1,9 Volt. Karena tegangan ini melebihi tegangan

53

banding ( 1,46 Volt ) maka output komparator akan menjadi 3,69 Volt ( logika tinggi ) dan ini akan menyebabkan led menyala. Namun jika sensor dipaparkan pada permukaan hitam, sinar infra merah akan terserap yang menyebabkan output pada photodioda hanya sebesar 0,3 Volt. Karena tegangan ini dibawah tegangan banding (1,46 Volt ) maka output dari komparator adalah 0 Volt. Demikian juga pada sensor sebelah kanan. Pada permukaan putih output sensor photodioda adalah 1,64 Volt sementara input invertingnya diset pada 1,08 Volt. Akibatnya output komparator menjadi 3,79 Volt ( logika tinggi ). Sementara pada permukaan hitam output photodioda hanya bertegangan 0,23 Volt yang menyebabkan output komparator 0 Volt.

4.2.3. Pengujian Secara Keseluruhan Setelah pengujian sistem mikrokontroler dengan sistem sensor telah diuji dan dinyatakan bekerja dengan baik, maka kini saatnya untuk dilakukan pengujian sistem secara keseluruhan. Untuk menguji ini, penulis menggunakan jalur pandu berwarna putih selebar 7 cm. Pemilihan ini adalah didasarkan pada jarak antara sensor kiri dan sensor kanan yang selebar 3 cm. Adapun lebar jalur pandu yang 7 cm diharapkan bahwa sensor akan berada pada jalur selama Line Follower Robot berjalan.

Pada pengujian ini ternyata robot pengikut garis (Line Follower Robot) dapat melewati garis pandu dengan tanpa kesalahan.

54

4.3. Operasi dan Perawatan. Setelah semua perangkat keras (hardware) dan perangkat Lunak (softwere) sudah selesai di tes maka langkah yang terakhir adalah mengoperasi robot pengikut garis (line Follower Robot) diatas landasan yang terbuat dari triplek dengan garis (line) berwarna putih dengan dasar berwarna hitam. Setelah robot pengikut garis (line follower robot dapat berjalan atau dioperasikan, maka perlu diadakan perawatan antara lain: 1. Perlakuan terhadap robot pengikut garis (line folloer robot harus hati-hati hal karena komponen yang terpasang pada robot sangat sensitive pastikan tombol On Off robot selalu dalam keadaan off bila robot tidak di operasikan. 2. Hindari penggunaan sumber daya yang berlebihan karena dapat merusak program yang telah disimpan di dalam mikrokontroler PIC 16F84.

55

BAB V KESIMPULAN DAN SARAN

5.1

Kesimpulan Dari hasil pengamatan dan pengujian alat perangkat keras dan perangkat

lunak serta pengujian secara keseluruhan terhadap robot pengikut garis (Line Follower Robot ) dapat diambil beberapa kesimpulan sebagai berikut. 1. Dalam membuat robot pengikut garis (Line Follower Robot) ini, hanya membutuhkan 4 line I/O dari total 13 line I/O yang dimiliki mikrokontroler PIC16F84/A. 2. Pada perancangan perangkat lunaknya, hanya menggunakan sistem kontrol on-off yang berfungsi mengecek kondisi sensor dan menjalankan sistem penggeraknya ( motor servo ) berdasarkan kondisi dari sensor. 3. Jarak antar sensor berpengaruh terhadap kemampuan Line Follower Robot dalam menghadapai sudut belokan. Jarak sensor yang pendek memungkinkan Robot berbelok pada sudut belok yang lebih kecil. 4. Kecepatan gerak Line Follower Robot ini tidak dapat dipercepat maupun diperlambat. 5. Perubahan warna jalur pemandu dari putih menjadi hitam masih dapat dimungkinkan, hanya diperlukan perubahan pada perangkat lunak saja.

56

5.2. Saran Berdasarkan pengamatan terhadap hasil rancangan ini, maka dapat diberikan saran-saran sebagai berikut. 1. Jumlah sensor dapat ditambah, agar lebih presisi dalam menentukan line pandu. 2. Sistem kontrol dapat menggunakan sistem yang lebih komplek seperti kontrol proporsional, kontrol Intergral, kontrol Derivatif maupun menggunakan teknik Fuzzy Logic. 3. Apabila dibutuhkan agar laju Line Follower Robot dapat dipercepat maupun diperlambat, maka dapat menggunakan sistem penggerak Motor DC dengan teknik pengaturan PWM ( Pulse Width Modulation ).

57

LAMPIRAN 1

58

LAMPIRAN 2 ;Program Line Follower Mobile Robot

;Sensor IR dihubungkan ke RA0 (sensor kiri) dan RA1(sensor kanan) ;(sensor high jika ketemu line putih ) ;Motor Servo dihubungkan ke RB0(servo kiri) dan ;RB1(sevo kanan) ;---------------------------------------processor 16f84 STATUS equ 0x03 RP0 equ 5 PORTA equ 0x05 TRISA equ 0x85 PORTB equ 0x06 TRISB equ 0x86 PDel0 equ 0x0c ; alamat awal ram PDel1 equ 0x0d PDel2 equ 0x0e PDel3 equ 0x0f PDel4 equ 0x10 Ulang equ 0x11 ; servo time PDel5 equ 0x12 PDel6 equ 0x13 PDel7 equ 0x14 PDel8 equ 0x15 org 0x00 init bsf STATUS,RP0 ; ke halaman (bank) 1 movlw b'00000000' ; isi W reg dengan 0H movwf TRISB ; copy isi W ke TRISB ; portb sebagai keluaran(output) movlw b'11111' ; isi W dengan 11111B movwf TRISA ; copy isi W ke TRISA bcf STATUS,RP0 ; kembali ke halaman (bank)0 ; porta sebagai masukan(input) bcf PORTB,0 ; init servo off bcf PORTB,1 ; init servo off

59

cek_sensor movf PORTA,0 ; copy isi PORTA ke W-reg andlw b'00000011' cek_putar_kanan sublw b'00000000' ; kurangkan W dengan 0H btfss STATUS,2 ; cek bit Zero (Z) goto cek_jalan_lurus goto putar_kanan ; cek_jalan_lurus sublw b'00000011' ; kurangkan w dengan 3H btfss STATUS,2 goto cek_belok_kiri goto jalan_lurus ; ya maka jalan_lurus cek_belok_kiri btfss PORTA,0 goto belok_kanan

; cek apakah RA0=1?

belok_kiri bcf PORTB,0

;matikan servo1;

bsf PORTB,1 ;aktifkan servo2 call Delay1ms bcf PORTB,1 call Delay18ms; goto cek_sensor belok_kanan bsf PORTB,0 ; aktifkan servo1 call Delay2ms bcf PORTB,0 call Delay18ms bcf PORTB,1 ; matikan servo 2 goto cek_sensor jalan_lurus bsf PORTB,0 ; aktifkan servo1 call Delay2ms bcf PORTB,0 call Delay18ms

60

bsf PORTB,1 ;aktifkan servo2 call Delay1ms bcf PORTB,1 call Delay18ms; goto cek_sensor putar_kanan bsf PORTB,0 ; aktifkan servo1 call Delay2ms bcf PORTB,0 call Delay18ms bcf PORTB,1 ; matikan servo 2 goto cek_sensor ;------------------------------------------------------------; Delay 500us = 0.5ms ;------------------------------------------------------------PDelay movlw .123 ; 1 set number of repetitions movwf PDel8 ; 1 | PLooip0 clrwdt ; 1 clear watchdog decfsz PDel8, 1 ; 1 + (1) is the time over? goto PLooip0 ; 2 no, loop PDlL1 goto PDlL2 ; 2 cycles delay PDlL2 clrwdt ; 1 cycle delay return ; 2+2 Done ;------------------------------------------------------------;------------------------------------------------------------Delay1ms ; Delay 1ms ;------------------------------------------------------------movlw .248 ; 1 set number of repetitions movwf PDel0 ; 1 | PLoop0 clrwdt ; 1 clear watchdog decfsz PDel0, 1 ; 1 + (1) is the time over? goto PLoop0 ; 2 no, loop PDelL1 goto PDelL2 ; 2 cycles delay PDelL2 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------

;------------------------------------------------------------Delay1k5 ; delay 1.5ms ;-------------------------------------------------------------

61

movlw .249 ; 1 set number of repetitions movwf PDel3 ; 1 | PLoopx0 clrwdt ; 1 clear watchdog PDelLLL1 goto PDelLLL2 ; 2 cycles delay PDelLLL2 decfsz PDel3, 1 ; 1 + (1) is the time over? goto PLoopx0 ; 2 no, loop clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------

;------------------------------------------------------------Delay2ms ; Delay 2ms ;------------------------------------------------------------movlw .249 ; 1 set number of repetitions movwf PDel4 ; 1 | PLoopy0 clrwdt ; 1 clear watchdog PDelLLLL1 goto PDelLLLL2 ; 2 cycles delay PDelLLLL2 goto PDelLLLL3 ; 2 cycles delay PDelLLLL3 decfsz PDel4, 1 ; 1 + (1) is the time over? goto PLoopy0 ; 2 no, loop PDelLLLL4 goto PDelLLLL5 ; 2 cycles delay PDelLLLL5 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------

;------------------------------------------------------------Delay18ms ; Delay 18ms ;------------------------------------------------------------movlw .26 ; 1 set number of repetitions (B) movwf PDel1 ; 1 | PLoop1 movlw .172 ; 1 set number of repetitions (A) movwf PDel2 ; 1 | PLoop2 clrwdt ; 1 clear watchdog decfsz PDel2, 1 ; 1 + (1) is the time over? (A) goto PLoop2 ; 2 no, loop decfsz PDel1, 1 ; 1 + (1) is the time over? (B) goto PLoop1 ; 2 no, loop PDelLLx1 goto PDelLLx2 ; 2 cycles delay PDelLLx2 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------

62

;------------------------------------------------------------; Code generated by PDEL ver 1.0 on 8/5/06 at 9:10:18 PM ; Description: Waits 1000000 cycles ;------------------------------------------------------------Delay1s movlw .14 ; 1 set number of repetitions (C) movwf PDel5 ; 1 | PLop0 movlw .72 ; 1 set number of repetitions (B) movwf PDel6 ; 1 | PLop1 movlw .247 ; 1 set number of repetitions (A) movwf PDel7 ; 1 | PLop2 clrwdt ; 1 clear watchdog decfsz PDel7, 1 ; 1 + (1) is the time over? (A) goto PLop2 ; 2 no, loop decfsz PDel6, 1 ; 1 + (1) is the time over? (B) goto PLop1 ; 2 no, loop decfsz PDel5, 1 ; 1 + (1) is the time over? (C) goto PLop0 ; 2 no, loop PDelLc1 goto PDelL2 ; 2 cycles delay PDelLc2 clrwdt ; 1 cycle delay return ; 2+2 Done ;-------------------------------------------------------------

end

File ini adalah file iklan dari special report yang sesungguhnya. Adanya halaman kosong adalah memang disengaja. Jika anda tertarik

dengan special report ini secara utuh maka dapat mendapatkannya melalui email : naufalrobotics@gmail.com atau sms ke : 081 293 295 12 Harga Rp.50.000,- Hub.email tersebut

63

Anda mungkin juga menyukai