Post on 30-Jun-2015
1
V22222222222222222222222222222222222222222222222
http://microrobotics.blogspot.com
MUDAH KOK DIBUAT SENDIRI
Moh.Ibnu Malik,ST
Gambar hanya ilustrasi
Email : mailto: naufalrobotics@gmail.com
Naufal Micro & Robotics
2
Disclaimer :
Dilarang memperbanyak atau mengedarkan Special Report ini tanpa seijin penulis. Customer Name :
All Right Reserved © 2010
3
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
4
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.
5
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.
6
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.
7
BAB II
LANDASAN TEORI
2.1 Mikrokontroler PIC16F84/A
Mikrokontroler merupakan suatu IC (Intergrated Circuit) yang
didalamnya terdapat komponen penyusun suatu sistem komputer yaitu CPU
(Central Processing Unit), ROM ( 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.
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.
CPU
ROM/Flash
RAM
I/O
8
8
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. .
9
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 Nama Pena No.Pena Keterangan 1 2 3 4 5 6 7 8 9
10 11
VDD VSS
OSC1/CLKIN OSC2/CLKOUT
MCLR RA4/TOCKI
RA0 RA1 RA2 RA3
RB0/INT
14 5
16 15 4 3
17 18 1 2 6
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.
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.
CPU
Data
Memory
Program Memory
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, tiba-
tiba 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 proses download program pada saat mikrokontroler
diprogram.
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 Simbol Keterangan
1
(terminal symbol) menunjukan awal dan akhir dari program
2
(processing symbol) menunjukan pengolahan aritmatika dan pemindahan data
3
(input/output symbol) menunjukan proses input atau output
4
(decision symbol) untuk mewakili operasi perbandingan logika
5
Arah atau alir untuk proses symbol untuk penghubung antar aktivitas
22
6
(predefined process symbol) proses yang ditulis sebagai sub program, yaitu prosedur/fungsi
7
(connector Symbol) penghubung pada halaman yang sama
8
(preparation symbol) memberikan nilai awal pada suatu variable atau counter
9
(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
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
+5V
10K
MCLR
VDD
VSS
RESET
OSC1
OSC2
14
4
5
15
16
PIC16F84
Resonator 4MHz
Port A
Port B
24
25
penurun tegangan yaitu 7805. Rangkaian berikut menjelaskan cara merubah
tegangan baterai 9 Volt menjadi tegangan sebesar + 5 Volt.
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.
7805 +9V +5V
10u 16V
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.
Gambar 3.3. Gambar Line Follower Robot dari bawah
Roda
servo
Roda caster
sensor
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.
Gambar 3.4 Rangkaian sensor Infra Merah
+
-
4
1
8 2
3
LED IR
PHOTODIODA
1K 10K
10K LM358
KE PIC16F84 (RA0 dan RA1)
LED MERAH
+ 5 V
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 adalah nol ( logika
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.
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
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 sensor-
sensor dan sistem penggerak (motor servo) dihubungkan dengan I/O yang mana.
Hubungan antara mikrokontroler dan sensor maupun sistem penggerak dapat
dilihat pada gambar berikut.
10K 4
5
4K7
12
13
4K7
+5V
10u 16V
DB9 ( SERIAL PORT )
14
PIC16F84/A
TxD(3)
Gnd(5)
RTS(7)
DTR(4)
CTS(8) Socket IC
(ZIF)
33
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
PIC 16F84/
A
Servo Kiri
Servo Kanan
Sensor Kiri
SensorKanan
RA0
RA1
RB0
RB1
34
berikut akan menjelaskan letak hubungan kedua sensor IR dengan garis ( line )
pemandu.
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 ).
Sensor IR Kanan (logic 1)
Sensor IR Kiri (logic 1)
Garis Pemandu berwarna putih
35
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 ).
Sensor IR Kiri (logic 0)
Garis Pemandu berwarna putih
Sensor IR Kanan (logic 1)
36
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 Sensor Kiri
Sensor kanan
Servo Kiri Servo kanan
Keterangan
1
2
Logika 1
Logika 0
Logika 1
Logika 1
Jalan
Jalan
Jalan
Berhenti
Jalan Lurus
Belok
Sensor IR Kiri (logic 1)
Garis Pemandu berwarna putih
Sensor IR Kanan (logic 0)
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
Gambar : 3.10. Flochart Program
Cek Sensor
Baca port A dan simpan di W register
AND-kan dengan 00000011B
Apakah Bit Zero di set ?
Start
Isi W dikurangkan Dengan OH
Putar Kanan
Isi W dikurangkan Dengan 3H
Apakah Bit Zero di set ?
Apakah RA0 = 1 ?
Belok Kanan
Belok Kiri
Jalan Lurus
39
Adapun program untuk flowchart diatas adalah :
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 ; cek apakah RA0=1? goto belok_kanan
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 ber-
ektensi 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 kemudian dipasang
kedua buah 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
Rangkaian Mikro-kontroler PIC16F84/A
Rang-kaian Pende-teksi sensor IR ( Compa- rator ) Baterai
untuk Mikrokontroler
Baterai untuk Motor Servo
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 infra-
merah. 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 ; copy isi PORTA ke W-
reg
Setelah itu hasilnya di AND-kan dengan 00000011B agar didapatkan bit-
bit pada RA0 dan RA1.
Berdasarkan penjelasan pada bab sebelumnya yaitu pada tabel 1 diberikan
keterangan sbb :
47
Tabel 4.1. Kondisi Sensor
No Sensor kanan Sensor Kiri Hexa Keterangan
1
2
3
4
1
1
0
0
1
0
1
0
3H
2H
1H
0H
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 ;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
48
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
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
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 ; PORTA sebagai masukan
movlw b'00000000'
movwf TRISB ; PORTB sebagai keluaran
bcf STATUS,RP0
bcf PORTB,0 ; matikan LED
bcf PORTB,1 ; 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 Sensor Kanan Permukaan Non-Inv Inver Output Non-Inv Inv Output
Permukaan Putih
1,9 V 1,46 V 3,69 V 1,64 V 1,08 V 3,79 V
Permukaan Hitam
0,3 V 1,46 V 0,0 V 0,23 V 1,08 V 0,0 V
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 ; cek apakah RA0=1? goto belok_kanan 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 Harga Rp.50.000,- Hub.email tersebut atau sms ke :
081 293 295 12
63
Biaya dapat ditransfer ke :
Bank BCA No. Rek. 522-077-3754 ( a.n Moh.Ibnu Malik )
Bank Mandiri No.Rek. 156-000-01-8944-1
Paypal ( $5 ) : moh_ibnumalik@yahoo.com