BAB I PENDAHULUAN
1.1 Latar Belakang Masalah
Kendaraan bermotor pada masa kini didesain sedemikian rupa untuk lebih memanjakan pengemudinya. Salah satu contohnya adalah pengemudi kendaraan bermotor pada masa sekarang tinggal menginjak pedal gas dan rem. Pengemudi tidak dipusingkan lagi untuk menginjak pedal coupling dan memindahkan gigi persneleng. Hal ini dimungkinkan karena kendaraan tersebut mempunyai sistem yang bisa memutuskan sendiri kapan saatnya gigi persneling dipindahkan. Kemudahan-kemudahan lainnya bagi pengemudi kendaraan bermotor bukan tidak mungkin untuk diciptakan. Bukan tidak mungkin anak berumur tujuh tahun bisa mengendarai kendaraannya sendiri. Anak tersebut tidak perlu memegang kemudi serta menginjak pedal gas dan rem. Anak tersebut tinggal menekan tombol START dan menentukan arah tujuannya maka sampailah dia ke tempat tujuannya Tentunya hal tersebut di atas tidak mudah untuk diaplikasikan pada kendaraan sebenarnya saat ini. Tetapi pada skala yang lebih kecil hal tersebut lebih mudah terwujud. Skala yang lebih kecil yang dimaksud adalah pada skala robotic. Hal tersebut di atas mudah diaplikasikan pada skala robotic karena pada skala robotic ini ada beberapa hal yang bisa disederhanakan. Salah satu hal yang bisa
1
disederhanakan adalah lintasan. Lintasan yang akan dilalui kendaraan berbasis robotik ini bisa disesuaikan dengan tingkat kecerdasan robot. Sedangkan tingkat kecerdasan robot sendiri ditentukan oleh sensor yang dimiliki dan program yang telah dibuat. Oleh karena itu perlu lebih diperkenalkan cara membuat robot termasuk didalamnya cara membuat program yang digunakan untuk mengontrol robot tersebut.
1.2 Tujuan Tujuan dari tugas akhir ini adalah membuat sebuah robot yang mampu melaju pada lintasan tertentu. Selain itu robot ini juga harus mampu bereaksi bila ada bendabenda yang merintangi perjalanannya. Reaksi yang harus dilakukan robot ini adalah memindahkan benda tersebut sehingga tidak merintangi perjalanannya lagi.
1.3 Batasan Masalah Masalah yang dibahas dalam laporan tugas akhir ini meliputi pembuatan badan In Line Follower Robot Berlengan Satu, pembuatan perangkat keras sistem kontrol, dan pembuatan perangkat lunak sistem kontrol. Tetapi pada laporan tugas akhir ini pembahasan mengenai pembuatan badan In Line Follower Robot Berlengan Satu dan pembuatan perangkat keras sistem kontrol tidak akan dibahas secara mendetail. Yang akan lebih mendetail dibahas adalah pembuatan perangkat lunak sistem kontrol.
2
1.4
Metode Penelitian 1.
Studi kepustakaan dari buku – buku penunjang, data dari internet serta laporan – laporan tugas akhir yang terkait dalam pembuatan tugas akhir ini.
2.
Eksperimen dan pengambilan data melalui pengujian pada perancangan alat ini.
1.5
Sistematika Penulisan Laporan tugas akhir ini terdiri dari lima bab. Isi masing-masing bab adalah
sebagai berikut:
BAB I
PENDAHULUAN Bab ini berisi tentang latar belakang masalah, tujuan, batasan masalah, metode penelitian, dan sistematika penulisan.
BAB II
TEORI DASAR Bab ini berisi tentang masalah mekatronika, komponen elektronika, mikrikontroler Atmel AT89C51, bahasa assembly dan jenis-jenis perintah yang digunakan pada bahasa assembly.
3
BAB III
PEMBUATAN IN LINE FOLLOWER ROBOT BERLENGAN SATU Bab ini berisi tentang pembuatan rangka In Line Follower Robot Berlengan Satu, rangkaian elektronika dan program.
BAB IV
PENGUJIAN DAN ANALISA Bab ini berisi tentang pengujian sistem In Line Follower Robot Belengan Satu serta analisa hasil pengujian.
BAB V
KESIMPULAN DAN SARAN Bab ini berisi tentang kesimpulan dan saran yang berhubungan dengan In Line Follower Robot Berlengan Satu.
4
BAB II TEORI DASAR
Pada
bab
ini
dibahas
mengenai
mekatronika,
komponen-komponen
elektronika, motor DC, motor servo, mikrokontroler, dan bahasa assembly.
2.1
Mekatronika Mekatronika adalah singkatan dari dua kata, yaitu mekanik dan elektronika.
Mekatronika adalah salah satu bidang ilmu yang mempelajari tentang pengontrolan sistem mekanik dengan menggunakan rangkaian-rangkaian elektronika. Rangkaianrangkaian elektronika yang dipergunakan untuk mengontrol sistem mekanik ini biasa disebut dengan nama kontroler.
2.2
Komponen Elektronika Beberapa komponen elektronika yang akan dibahas pada sub bab berikut
adalah IR LED (Infra Red Light Emitting Dioede), Photo dioda,Op Amp LM324, dan IC Inverter L293D.
2.2.1
IR LED (Infra Red Light Emitting Diode) IR LED (Infra Red Light Emitting Diode) adalah salah satu jenis LED (Light
Emitting Diode). LED atau biasa disebut juga dioda cahaya adalah suatu semikonduktor yang dapat memancarkan cahaya apabila ada arus listrik yang
5
melewatinya. Karena LED tidak dapat menerima arus yang besar, maka pada pemakaiannya umumnya digabungkan secara serial dengan resistor. Fungsi resistor adalah membatasi arus yang mengalir melewati LED. Cahaya yang dihasilkan LED tergantung pada bahan semikonduktor yang digunakan. Cahaya yang dihasilkan LED bisa berupa cahaya tampak atau inframerah (infrared). IR LED adalah jenis LED yang memancarkan cahaya inframerah (infrared). Cahaya inframerah tidak dapat dilihat oleh manusia. Cahaya inframerah tidak dapat menembus materi yang tak tembus pandang. IR LED memiliki dua kaki yaitu katoda dan anoda. Kaki anoda pada IR LED memiliki ukuran yang lebih panjang jika dibandingkan dengan kaki katodanya. Kaki anoda dan anoda pada IR LED dapat dilihat pada gambar 2.1. IR LED akan berfungsi dengan baik jika kaki-kaki IR LED dipasang dengan benar. Kaki anoda dipasang pada bagian positif (+) dan kaki katoda dipasang pada bagian negative (-). Bentuk, kaki-kaki dan symbol IR LED dapat dilihat pada gambar 2.2.
Gambar 2.1 Kaki anoda dan katoda pada IR LED
Gambar 2.2 Bentuk dan struktur serta simbol IR LED
6
2.2.2
Photo dioda Photo dioda adalah komponen elektronik semikonduktor yang sangat sensitif
terhadap cahaya. Fungsi dari photo dioda adalah sebagai penerima (receiver) cahaya. Cahaya yang diterima photo dioda dapat berasal dari sumber cahaya (transmitter) secara langsung ataupun berasal dari cahaya yang dipantulkan. Jenis cahaya yang bisa diterima photo dioda bisa berupa cahaya tampak ataupun cahaya tidak tampak. Sumber cahaya bisa berasal dari lampu, matahari, api, atau dari LED. Konfigurasi Dioda Photo Dioda photo adalah suatu dioda yang di rancang dengan tegangan muka terbalik (renerse bias). Dioda ini biasanya terbungkus oleh kaca. Gambar dibawah ini adalah bentuk lapisan symbol dan kontruksi dioda photo. cahaya
P
-
+
N
Gambar 2.3 Susunan Lapisan Cara Kerja Besarnya reverse tergantung dari temperature dan intensitas cahaya yang datang pada daerah pengosongan (depletion layer). Daerah pengosongan adalah daerah dimana terjadi perpindahan muatan diantara 2 lapisan semi konduktor P – N
7
(lihat gambar 2.3). Berkas cahaya yang datang pada dioda tersebut akan ikut menentukan besarnya arus reverse, sehingga memungkinkan lepasnya ikatan – ikatan antara electron – electron valensi dengan intinya. Kejadian tersebut akan membentuk pasangan electron bebas dan hole yang baru. Oleh karena itu arus reverse akan bertambah pula, perubahan arus reverse ini sangat kecil yaitu hanya beberapa micro ampere (µA) saja. Tetapi hal ini cukup untuk dimanfaatkan di berbagai keperluan. Bentuk dan lambang photo dioda dapat dilihat pada gambar 2.4.
Gambar 2.4 Bentuk dan simbol photo dioda
Gambar 2.5 Rangkaian IR LED dan Photo Dioda
8
Cara kerja photo dioda adalah ketika mendapat cahaya dari IR LED maka photo dioda akan saturasi, arus mengalir dari positif ke negatif dan dihubungkan ke rangkaian penguat OP AMP LM 324 sebagai komparator. Cahaya yang bisa diterima oleh photo diode memiliki intensitas serta ketentuan sebagai berikut: Cahaya
frekuensi
f = C/ λ
panjang gelombang Intensitas
λ = C/f terang gelap
.
Gambar 2.6 Jarak antara Tx dan Rx ( IR LED dan Photo Dioda)
2.2.3
Op Amp LM324. LM324 adalah komponen elektronik yang berfungsi sebagai penguat arus atau
penguat signal atau sebagai amplifier. LM324 lebih dikenal dengan nama Op Amp (Operational Amplifier). Komponen elektronik ini mempunyai 14 kaki yang
9
mempunyai fungsi yang berbeda-beda. Bentuk dan symbol LM324 dapat dilihat pada gambar 2.7.
Gambar 2.7 Bentuk dan simbol Op Amp LM324 Inverting amplifier Rangkaian dasar penguat inverting adalah seperti yang ditunjukkan pada gambar 2.8, dimana sinyal masukannya dibuat melalui input inverting. Seperti tersirat pada namanya, pembaca tentu sudah menduga bahwa fase keluaran dari penguat inverting ini akan selalu berbalikan dengan inputnya. Pada rangkaian ini, umpanbalik negatif di bangun melalui resistor R2
10
Gambar 2.8 Penguat Inverting
Input non-inverting pada rangkaian ini dihubungkan ke ground, atau v+ = 0. Dengan mengingat dan menimbang aturan 1 (lihat aturan 1), maka akan dipenuhi v- = v+ = 0. Karena nilainya = 0 namun tidak terhubung langsung ke ground, input op-amp v- pada rangkaian ini dinamakan virtual ground. Dengan fakta ini, dapat dihitung tegangan jepit pada R1 adalah vin – v- = vin dan tegangan jepit pada reistor R2 adalah vout – v- = vout. Kemudian dengan menggunakan aturan 2, di ketahui bahwa : iin + iout = i- = 0, karena menurut aturan 2, arus masukan op-amp adalah 0. iin + iout = vin/R1 + vout/R2 = 0 Selanjutnya vout/R2 = - vin/R1 .... atau vout/vin = - R2/R1 Jika penguatan G didefenisikan sebagai perbandingan tegangan keluaran terhadap tegangan masukan, maka dapat ditulis G = VOut /Vin = - R2 /R1
… (1)
11
Impedansi rangkaian inverting didefenisikan sebagai impedansi input dari sinyal masukan terhadap ground. Karena input inverting (-) pada rangkaian ini diketahui adalah 0 (virtual ground) maka impendasi rangkaian ini tentu saja adalah Zin = R1. Non-Inverting amplifier Prinsip utama rangkaian penguat non-inverting adalah seperti yang diperlihatkan pada gambar 2.9 berikut ini. Seperti namanya, penguat ini memiliki masukan yang dibuat melalui input non-inverting. Dengan demikian tegangan keluaran rangkaian ini akan satu fasa dengan tegangan inputnya. Untuk menganalisa rangkaian penguat op-amp non inverting, caranya sama seperti menganalisa rangkaian inverting.
Gambar 2.9 Penguat Non Inverting Dengan menggunakan aturan 1 dan aturan 2, kita uraikan dulu beberapa fakta yang ada, antara lain : vin = v+ v+ = v- = vin ..... lihat aturan 1.
12
Dari sini ketahui tegangan jepit pada R2 adalah vout – v- = vout – vin, atau iout = (vout-vin)/R2. Lalu tegangan jepit pada R1 adalah v- = vin, yang berarti arus iR1 = vin/R1. Hukum kirchkof pada titik input inverting merupakan fakta yang mengatakan bahwa : iout + i(-) = iR1 Aturan 2 mengatakan bahwa i(-) = 0 dan jika disubsitusi ke rumus yang sebelumnya, maka diperoleh iout = iR1 dan Jika ditulis dengan tegangan jepit masing-masing maka diperoleh (vout – vin)/R2 = vin/R1 yang kemudian dapat disederhanakan menjadi : vout = vin (1 + R2/R1) Jika penguatan G adalah perbandingan tegangan keluaran terhadap tegangan masukan, maka didapat penguatan op-amp non-inverting : G = Vout /Vin = (1 + R2/R1)
… (2)
Op Amp mempunyai dua ujung input yaitu inverting input (diberi simbol negative) dan non inverting input (diberi simbol positive). Input dari kedua ujung input Op Amp ini bisa diolah menjadi data output yang berbeda-beda sesuai dengan fungsi Op Amp yang dijalankan. Salah satu fungsi Op Amp adalah sebagai komparator. Fungsi dari Op Amp sebagai komparator adalah membandingkan tegangan yang masuk pada kedua ujung input Op Amp. Untuk membandingkan kedua ujung input ini maka salah satu ujung input bisa diberi tegangan referensi dan ujung lainnya diberi tegangan pembanding. Jika tegangan pada ujung non inverting input (+) lebih besar atau sama dengan tegangan pada ujung inverting (-) maka
13
outputnya akan berharga high (1). Tetapi jika tegangan pada ujung non inverting input (+) lebih kecil dari tegangan pada ujung inverting (-) maka ujung output akan berharga low (0). Skematik Op Amp yang berfungsi sebagai komparator dapat dilihat pada gambar 2.10.
Gambar 2.10 Skematik Op Amp sebagai komparator
Karakteristik Op.Amp sebagai Komparator Pada gambar a, jika tegangan masukan v1 lebih besar dari tegangan referensi V R , tegangan keluaran v o akan berharga positif. Karena harga penguatan sangat besar maka perbedaan tegangan yang relatif kecil akan membawa penguat pada “daerah jenuh”. Karakteristik transfer menunjukkan bahwa sedikit penurunan pada i v (milivolt) akan membawa opamp dari jenuh positif ke jenuh negatif (lihat gambar b). Jika V R = 0 volt, ini akan menjadi zero-crossing comparator. Komparator jenis ini dapat digunakan untuk mengubah isyarat AC menjadi gelombang kotak dengan operasi pemotongan (clipper) seperti terlihat pada gambar c.
Gambar 2.11 Karakteristik Op.Amp sebagai Komparator
14
Syarat Op Amp sebagai komparator dapat dilihat dari perhitungan berikut ini * Jika V(+) ≥ V(-) → Vout = High (1) * Jika V(+) < V(-) → Vout = Low (0)
Vref
Gambar 2.12 Op Amp LM 324 sebagai Komparator dengan Diagram Hysteresisnya
Gambar 2.12 menunjukkan
sebuah
komparator
sederhana,
terdapat
Vreferensi yang merupakan hasil bagi tegangan dari tegangan sumber, sehingga Vreferensi akan bernilai separuh tegangan sumber. Sedangkan tegangan input divariasikan
dari 0V hingga Vsumber. Gambar
2.12 menunjukkan diagram
Hystresis dimana hysteresis merupakan perbandingan lebar jarak antara Vinput High, Vinput Low. Adapun rumus yang didapat dari grafik 2.12a adalah :
dimana H adalah hysteresis antara VinL dan VinH atau dapat disebut juga sebagai jarak antara tegangan input high dan tegangan input low.
15
2.2.4
IC Inverter L293D Inverter adalah komponen elektronik yang dipergunakan untuk membalikkan
polaritas dan pulsa keluaran sebesar Vss pada inverter tersebut. Dalam hal ini dibahas kegunaan serta karakteristik inverter L293D. Satu buah L293D bisa dipergunakan untuk mengontrol dua buah motor DC. Selain bisa dipergunakan untuk mengontrol arah putaran motor DC, L293D ini pun bisa dipergunakan sebagai driver motor stepper bipolar. Bentuk dan simbol L293D dapat dilihat pada gambar 2.13.
Gambar 2.13 Bentuk dan simbol L293D L293D mempunyai 16 kaki yang mempunyai fungsi berbeda-beda. Namanama kaki pada L293D dapat dilihat pada gambar 2.11. Kaki-kaki L293D yang dihubungkan ke motor DC adalah kaki 3, 6, 11, dan 14 (kaki output). Kaki 3 dan 6 dihubungkan pada kaki-kaki sebuah motor DC. Sedangkan kaki 11 dan 14 dihubungkan pada kaki-kaki motor DC yang lain. Cara mengontrol arah putaran motor DC adalah dengan cara memberi kondisi yang berbeda pada kaki-kaki yang berpasangan. Jika kaki 3 dikondisikan high (1) dan kaki 6 dikondisikan low (0) maka
16
motor DC akan berputar. Tetapi jika kondisi kaki 3 low (0) dan kondisi kaki 6 high (1) maka motor akan berputar berlawanan arah dengan arah putaran sebelumnya. Skematik pemakaian L293D untuk mengontrol dua buah motor DC dapat dilihat pada gambar 2.15.
Gambar 2.14 Nama-nama kaki pada L293D
Gambar 2.15 Skematik pengontrolan dua buah motor DC Kaki-kaki yang berhubungan dengan motor DC bisa berubah kondisinya jika kondisi pada kaki-kaki input (kaki 2, 7, 10, dan 15) berubah kondisinya. Kaki-kaki output akan memiliki impedansi yang rendah jika kaki inhibit-nya dikondisikan high (1).
2.3
Motor DC Motor DC (Direct Curent) adalah suatu alat yang dapat mengubah energi
listrik menjadi energi gerak. Motor DC dapat berputar searah dengan arah putaran jarum jam atau dapat juga berputar berlawanan arah putaran jarum jam. Agar motor DC dapat berputar maka jenis listrik yang dipergunakan adalah jenis listrik arus
17
searah atau biasa disebut dengan DC (Direct Curent). Bentuk motor DC dapat dilihat pada gambar 2.16.
Gambar 2.16 Bentuk motor DC Dalam aplikasinya seringkali sebuah motor DC diputar dalam dua arah putaran yaitu searah putaran jarum jam dan berlawanan arah putaran jarum jam. Arah putaran motor DC dapat berubah dengan cara mengubah arah arus listrik yang mengalir melewati motor DC tersebut. Mengubah arah arus listrik yang melewati motor DC dapat dilakukan dengan cara mengubah polaritas tegangan motornya. Dasar pengaturan arah putaran motor DC dapat dilihat pada gambar 2.17.
Gambar 2.17 Dasar pengaturan arah putaran motor DC
18
Mengubah arah arus listrik yang melewati motor DC dapat dilakukan secara manual atau secara otomatis. Mengubah arah arus listrik yang melewati motor DC secara manual dapat dilakukan dengan cara menggunakan dua buah saklar. Skematik pengubahan arah arus listrik dengan menggunakan dua buah saklar dapat dilihat pada gambar 2.18. Apabila S1 (Saklar 1) berada di posisi kiri (terhubung dengan kutub positif) dan S2 (Saklar 2) berada disebelah kanan (terhubung dengan kutub negative) maka motor DC akan berputar. Jika ingin mengubah arah arus listrik dan mengubah arah putaran motor DC maka tinggal mengubah posisi kedua saklar (S1 dan S2) secara serempak. S1 yang semula berada di posisi kiri diubah posisinya menjadi ke posisi sebelah kanan (terhubung dengan kutub negative) dan S2 yang semula berada di posisi kanan diubah posisinya menjadi ke posisi sebelah kiri (terhubung dengan kutub positif).
Gambar 2.18 Pengaturan arah putaran motor DC dengan menggunakan saklar
Selain dengan menggunakan saklar, pengaturan arah putaran motor DC pun dapat dilakukan secara otomatis. Pengaturan arah putaran motor DC secara otomatis
19
dapat dilakukan dengan menggunakan sebuah mikrokontroler ditambah komponen elektronik lainnya. Salah satu komponen elektronik yang dapat digunakan untuk mengubah arah putaran motor DC adalah L293D. L293D akan mengubah arah putaran motor DC sesuai dengan perintah yang diberikan oleh mikrokontroler. Mikrokontroler akan memberikan perintah kepada L293D sesuai dengan program yang dijalankan pada mikrokontroler tersebut. Prinsip kerja L293D telah dijelaskan pada sub bab 2.2.4 L293D. Skematik pengendalian motor DC dengan menggunakan mikrokontroler dan L293D dapat dilihat pada gambar 2.19.
Gambar 2.19 Skematik pengendalian putaran motor DC dengan menggunakan mikrokontroler dan L293D Selain arah putarannya dapat diubah, kecepatan putaran motor DC pun dapat diubah pula. Kecepatan putaran motor DC dapat ditambah ataupun dikurangi. Mengubah kecepatan motor DC dapat dilakukan dengan cara mekanik atau dapat pula dengan menggunakan program yang dijalankan pada mikrokontroler. Cara mengubah kecepatan putaran motor DC yang akan dijelaskan lebih lanjut adalah yang dilakukan
20
dengan cara mekanik, sedangkan yang dilakukan dengan menggunakan program tidak akan dijelaskan lebih lanjut. Mengubah kecepatan motor DC dengan cara mekanik dapat dilakukan dengan menambahkan komponen rodagigi. Pada umumnya motor DC digunakan untuk memutar roda atau benda-benda yang ingin diputar atau bisa disebut sebagai output. Poros output yang dihubungkan secara langsung dengan poros motor DC akan berputar dengan kecepatan yang sama dengan kecepatan putaran poros motor DC tersebut. Untuk mengubah kecepatan putaran poros output, poros output dihubungkan dengan poros motor DC dengan menggunakan rodagigi. Poros output dan poros motor DC masing-masing dipasangi rodagigi dengan diameter yang berbeda. Jika kecepatan putaran poros output yang diinginkan lebih cepat dari putaran poros motor DC maka pada poros output dipasangi roda gigi dengan diameter yang lebih kecil dibandingkan dengan roda gigi yang dipasang pada poros motor DC. Jika kecepatan putaran poros output ingin lebih lambat daripada kecepatan putaran poros motor DC maka berlaku hal sebaliknya pada prinsip pemasangan rodagigi. Mengubah kecepatan motor DC dengan menggunakan rodagigi akan menyebabkan kecepatan putaran output hanya akan berubah pada kecepatan tertentu saja. Kecepatan putaran motor DC tidak akan berubah tanpa ada penggantian rodagigi dengan diameter yang berbeda. Hal ini berbeda jika dibandingkan dengan cara mengubah putaran motor DC melalui program. Dengan pengaturan melalui program maka putaran motor DC dapat berubah-ubah tanpa harus melepas penghubung antara
21
poros output dan potos motor DC. Gambar motor DC yang telah dipasangi rodagigi dapat dilihat pada gambar 2.20.
Gambar 2.20 Motor DC yang telah dipasangi rodagigi
Gambar 2.21 Cara Kerja Motor DC
Dari gambar diatas maka didapat perhitungan sebagai berikut : F = il x B Untuk arah putaran kekiri didapat persamaan sbb : B = -ax B;
il = ay il
F = ay il x – ax B = az il B
22
Untuk arah putaran kekanan didapat persamaan sbb : B = -ax B;
il = -ay il
F = -ay il x – ax B = -az il B
Secara garis besar prinsip kerja motor DC adalah melewatkan arus listrik melalui kumparan yang diletakkan pada medan magnet. Kejadian ini akan menimbulkan gaya Lorenz pada kumparan. Gaya tersebut menghasilkan torsi yang digunakan untuk memutar rotor motor dc. Arah putaran motor dc, tergantung pada arah listrik yang dilewatkan pada kumparan. Bila arah arus listrik dibalik, maka arah putaran rotor juga akan berbalik. Besarnya torsi yang dihasilkan motor dc tergantung pada besarnya arus yang dilewatkan pada kumparan. Semakin besar arus mengalir akan mengakibatkan semakin besar gaya F yang dihasilkan.
2.4
Motor Servo
Motor servo adalah sebuah alat yang dapat mengubah energi listrik menjadi energi gerak. Motor servo sebenarnya digerakkan oleh sebuah motor DC. Selain terdapat komponen motor DC, di dalam motor servo pun terdapat rodagigi-rodagigi yang dipergunakan untuk mereduksi putaran dan untuk memperbesar torsi yang dihasilkan oleh motor DC tersebut. Karena motor servo digerakkan oleh motor DC maka jenis listrik yang dipergunakan adalah jenis listrik arus searah. Motor servo memiliki tiga kabel utama, yaitu kabel ground, kabel Vcc, dan kabel signal. Bentuk motor servo dapat dilihat pada gambar 2.22.
23
Gambar 2.22 Standard motor servo Berbeda dengan motor DC yang dapat dengan mudah berputar 360O secara kontinu, motor servo tidak dapat berputar tanpa adanya perintah tertentu. Motor servo dapat bergerak bila dialiri arus DC dan diberi isyarat signal atau pulsa berupa arus listrik. Dengan diberi pulsa tertentu maka motor servo akan berputar pada sudut tertentu. Salah satu contoh motor servo yang banyak digunakan adalah motor servo jenis standard servo. Motor servo jenis ini mempunyai kemampuan berputar sebesar 180O. Sama seperti motor servo pada umumnya, motor servo jenis standard servo ini akan mendeteksi signal yang dikirimkan melalui kabel signal-nya setiap selang waktu tertentu. Motor servo akan mendeteksi signal setiap 20.000 mikro detik. Jika dalam selang waktu lebih dari 20.000 mikro detik tidak ada signal maka motor servo akan mengalami slip. Bentuk signal pengontrolan motor servo dapat dilihat pada gambar 2.23.
24
P o s is i S u d u t p o ro s
2 0 . 0 0 0 M ik r o second
P o s is i S u d u t P o ro s
P o s is i s u d u t P o ro s
2 0 . 0 0 0 M ik r o second
Gambar 2.23 Bentuk signal pengontrolan motor servo Untuk mengetahui lamanya pemberian pulsa per siklus yang diperlukan untuk menggerakkan motor servo pada sudut tertentu maka perlu dilakukan beberapa tahapan. Tahapan yang pertama adalah mencari tahu berapa lama pemberian pulsa per siklus yang diperlukan untuk menggerakkan motor servo ke posisi 0O dan posisi 180O. Setelah lamanya pulsa per siklus untuk kedua sudut itu diketahui, langkah selanjutnya adalah mencari tahu lamanya pulsa per siklus yang dibutuhkan untuk menggerakkan motor servo ke posisi (sudut) lainnya. Untuk mendapatkan lamanya pulsa per siklus yang dibutuhkan untuk menggerakkan motor servo ke posisi tertentu maka diperlukan interpolasi dengan rumus sebagai berikut :
⎧⎛ t − t t = 350 + ⎨⎜ 180 0 ⎩⎝ 180
dimana :
t
⎫ ⎞ ⎟ ×α ⎬ ⎠ ⎭
= lamanya pulsa per siklus untuk sudut sebesar α (mikro detik)
25
t0 = lamanya
pulsa
per
siklus
yang
dibutuhkan
untuk
memposisikan motor servo ke sudut 0O motor servo tersebut (mikro detik) t180 = lamanya
pulsa
per
siklus
yang
dibutuhkan
untuk
memposisikan motor servo ke sudut 180O motor servo tersebut (mikro detik)
α = besarnya sudut pergerakan motor servo yang diinginkan (O)
Karena lamanya pulsa per siklus sangat singkat (dalam hitungan mikro detik) maka pemberian pulsa tidak mungkin dilakukan secara manual oleh manusia (misalnya dengan menutup dan membuka saklar). Selain lamanya pulsa per siklus sangat singkat, pulsa juga harus diberikan secara kontinu selama waktu yang diinginkan agar motor servo tersebut berada pada posisi tertentu. Oleh karena itu, untuk megontrol motor servo bisa digunakan mikrokontroler sebagai pemberi pulsanya. Kabel signal motor servo dapat dihubungkan ke kaki-kaki mikrokontroler. Oleh mikrokontroler pulsa diberikan selama selang waktu tertentu secara kontinu. Skematis pengiriman pulsa dari mikrokontroler ke motor servo dapat dilihat pada gambar 2.24.
26
Gambar 2.24 Skematis pengiriman pulsa dari mikrokontroler ke motor servo
2.5
Mikrokontroler Mikrokontroler merupakan sebuah komponen elektronika yang di dalamnya
terdapat rangkaian mikrokontroler, memori (RAM/ROM) dan I/O. Rangkaian tersebut terdapat dalam level chip atau biasa disebut single chip microcomputer. Sebagai perangkat kontrol penyesuaian mikrokontrol harus mampu melakukan hubungan switching sangat cepat dan dapat menunda satu proses ketika adanya respon eksekusi yang lain. Keunggulan dari mikrokontroler adalah adanya sistem interrupt. Sistem interrupt adalah sistem yang memungkinkan mikrokontroler untuk menerima suatu interupsi. Interupsi adalah permintaan khusus kepada mikrokontroler untuk melakukan sesuatu. Bila terjadi interupsi maka mikrokontroler akan menghentikan dahulu apa yang dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi. Salah
satu
jenis
mikrokontroler
adalah
mikrokontroler
AT89C51.
Mikrokontroler AT89C51 adalah salah satu mikrokontroler keluaran Atmel.
27
Mikrokontroler ini memiliki 40 kaki. Dari 40 kaki ini, 32 kakinya dipisah menjadi 4 buah parallel port. Port-port tersebut adalah P0, P1, P2, dan P3. Masing-masing port memiliki 8 kaki input-output (I/O) yang berfungsi sebagai input dan output program kontroler. Kondisi tegangan di kaki I/O dapat diatur melalui program. Bentuk AT89C51 dapat dilihat pada gambar 2.25.
Gambar 2.25 Bentuk AT89C51 Selain kaki-kaki I/O yang berjumlah 32 kaki, mikrokontroler AT89C51 juga memiliki kaki-kaki lainnya yaitu kaki RST, XTAL 1, XTAL 2, GND, ALE/PROG, EA/VPP, PSEN, dan kaki VCC. Fungsi dari kaki-kaki itu adalah : ¾ Kaki RST (kaki 9) merupakan masukan reset (aktif tinggi), pulsa transisi dari rendah ke tinggi akan me-reset mikrokontroler. ¾ Kaki XTAL1 (kaki 19) dan kaki XTAL 2 (kaki 18) diperlukan untuk menghubungkan
mikrokontroler
dengan
kristal.
Fungsi
kristal
adalah
mengendalikan frekuensi osilator atau dengan kata lain mempercepat eksekusi program ¾ Kaki GND (kaki 20) merupakan ground sumber tegangan.
28
¾ Kaki PSEN (Program Store Enable) (kaki 29) adalah kaki yang berfungsi memberikan sinyal pengontrol untuk mengakses program memori eksternal masuk ke dalam bus selama proses pemberian/pengambilan interuksi (fetching). ¾ Kaki ALE/PROG (kaki 30) adalah kaki yang mempunyai dua fungsi. Fungsi yang pertama adalah Address Latch Enable (ALE) yaitu penahan alamat memori eksternal. Fungsi kedua adalah sebagai pemberi sinyal/pulsa input pemograman (PROG) selama proses pemograman. ¾ Kaki EA/VPP (kaki 31) adalah kaki yang mempunyai dua fungsi. Fungsi pertama adalah sebagai kaki External Access Enable (EA), yaitu kaki yang memberi sinyal kontrol untuk pembacaan memori program. Fungsi kedua adalah sebagai VPP, yaitu
berfungsi
sebagai
tegangan
pemograman
(+12V)
selama
pemograman. ¾ Kaki VCC (kaki 40) merupakan positif sumber tegangan. Nama-nama kaki-kaki AT89C51 dapat dilihat pada gambar 2.26.
Gambar 2.26 Kaki-kaki AT89C51
29
proses
Mikrokontroler AT89C51 ini memiliki sistem pemograman kembali Flash memori. Melalui sistem ini mikrokontroler AT89C51 ini dapat menyimpan dan menghapus program beberapa kali. Daya tahan tulis dan hapus mikrokontroler AT89C51 adalah sebanyak 1000 kali tulis dan hapus. Mikrokontroler AT89C51 ini juga memiliki RAM internal dengan kapasitas 128 x 8 bit dengan frekuensi pengoperasian hingga 24 MHz. Agar
mikrokontroler
ini
bisa
bekerja,
maka
beberapa
kaki
pada
mikrokontroler AT89C51 harus dihubungkan dengan komponen elektronika. Komponen elektronika ini selanjutnya dihubungkan dengan Vcc (sumber tegangan) dan ground. Beberapa kaki mikrokontroler AT89C51 yang harus dihubungkan dengan komponen elektronika diilustrasikan pada gambar 2.27.
Gambar 2.27 Kaki-kaki mikrokontrol dan komponen-komponen elektronika yang dihubungkan
30
Gambar 2.28 Blok Diagaram AT 89C51 secara keseluruhan 2.6
Bahasa Assembly Bahasa pemograman dibagi menjadi tiga tingkat. Tingkat yang pertama
adalah bahasa tingkat tinggi, tingkat kedua adalah bahasa tingkat menengah, dan ketiga adalah bahasa tingkat rendah. Bahasa tingkat tinggi adalah bahasa pemograman yang hampir menyerupai bahasa manusia. Bahasa tingkat menengah
31
adalah bahasa pemograman yang merupakan bahasa dasar dari bahasa tingkat tinggi. Bahasa tingkat rendah adalah bahasa mesin yang tidak dimengerti manusia. Bahasa assembly memiliki keunggulan yang tidak akan mungkin ditandingi oleh bahasa tingkat apapun dalam hal kecepatan, ukuran file, serta kemudahan dalam manipulasi sistem komputer. Bahasa assembler yang digunakan dalam pemograman mikrokontroler adalah bahasa assembler V2.2. Program ditulis dengan menggunakan program pengolah kata. Program tersebut kemudian disimpan dengan ekstensi “asm” atau ekstensi lainnya dengan jumlah huruf tiga buah. Program dengan ekstensi “asm” atau lainnya kemudian dikompilasi dengan program “asm51.exe”. Dari proses kompilasi ini akan dihasilkan dua buah file, yaitu sebuah file dengan ektensi “obj” dan file lainnya dengan ekstensi “lst”. File dengan ekstensi “lst” dapat dipergunakan untuk memeriksa kesalahan sintaks program yang telah dibuat. Sedangkan file dengan ekstensi “obj” dikompilasi dengan program “oh.exe”. Dari proses kompilasi ini akan dihasilkan file dengan ekstensi “hex”. File dengan ekstensi “hex” ini kemudian ditulis (download) ke mikrokontrol dengan menggunakan downloader.
2.6.1
Perintah-perintah dalam Bahasa Assembly Perintah-perintah turbo assembly yang sering digunakan pada pembuatan
sebuah program adalah org, mov, acall, jb, jnb, djnz, cjne, sjmp, ljmp, setb, clr, ret, dan end.
32
Org (set origin) adalah perintah untuk permulaan penulisan program. Contoh penulisan
Org 0h Awal
Artinya
penulisan
program
pada
mikrokontroler dimulai dari alamat memori 0h
Mov adalah perintah untuk memindahkan data antar lokasi didalam RAM. Contoh penulisan Artinya
Mov P1,A Data akumulator A dipindahkan ke P1
Acall adalah perintah untuk memanggil suatu subroutine yang ditunjuk. Lompatan yang dapat dilakukan berada di area sebesar 2K byte.
Contoh penulisan Artinya
Acall delay Memanggil subroutine yang dmulai dengan label delay
Jb (Jump if Bit) adalah perintah untuk melakukan aksi lompat ke suatu alamat yang didefinisikan apabila bit dari register atau memori yang dapat dialamati secara bit (bit addressable) bernilai high. Apabila bit tersebut bernilai low maka program akan menjalankan instruksi selanjutnya.
33
Contoh penulisan
Jb P1.1,mulai Jika P1.1 bernilai high, program lompat ke baris yang dimulai dengan
Artinya
label mulai. Jika P1.1 bernilai low maka program akan menjalankan instruksi selanjutnya
Jnb (Jump if Not Bit) adalah perintah untuk melakukan aksi lompat ke suatu alamat yang didefinisikan apabila bit dari register atau memori yang dapat dialamati secara bit (bit addressable) bernilai low. Apabila bit tersebut bernilai high maka program akan menjalankan instruksi selanjutnya.
Contoh penulisan Jnb P1.1,mulai Artinya Jika P1.1 bernilai low, program lompat ke baris yang dimulai dengan label mulai. Jika P1.1 bernilai high maka program akan mejalankan program selanjutnya
Djnz (Decrement and Jump if Not Zero) adalah perintah untuk melakukan pengurangan pada data di alamat yang ditunjuk dengan 1. Bila hasil pengurangan belum nol, program lompat ke alamat yang ditentukan. Bila hasil pengurangan sama dengan nol, program akan melaksanakan instruksi selanjutnya.
34
Contoh penulisan
Djnz R0,mulai Kurangi R0 dengan 1, jika hasil pengurangan tidak sama dengan 0
Artinya
maka program lompat ke baris yang dimulai
dengan
label
mulai.
Program akan menjalankan instruksi selanjutnya bila R0 berharga 0
Cjne (Compare and Jump if Not Equal) adalah perintah untuk melakukan perbandingan antara data tujuan dan data sumber serta melakukan lompatan ke alamat yang ditentukan apabila hasil perbandingan tidak sama. Contoh penulisan
Cjne R1,#00h,mulai Program akan lompat ke baris yang
Artinya
dimulai dengan label mulai apabila data pada R1 tidak sama dengan data 00H
Sjmp (Short Jump) adalah perintah untuk melakukan lompatan ke alamat yang ditentukan dengan lompatan maksimum sebesar 128 byte. Contoh penulisan Sjmp mulai Artinya Lompat ke baris yang dimulai dengan label mulai
35
Ljmp (Long Jump) adalah perintah untuk melakukan lompatan ke alamat yang ditentukan dengan panjang lompatan bisa melebihi 128 byte. Contoh penulisan Artinya
Ljmp mulai Lompat ke baris yang dimulai dengan label mulai
Setb (Set Bit) adalah perintah untuk mengubah bit-bit pada RAM internal maupun register yang dapat dialamati secara bit (bit addressable) menjadi 1. Contoh penulisan Artinya
Setb A.7 Bit ke 7 dari akumulator A diubah menjadi 1
Clr (Clear) adalah perinta untuk mengubah bit-bit pada RAM internal maupun register yang dapat dialamati secara bit (bit addressable) menjadi 0.
Contoh penulisan Artinya
Clr A.7 Bit ke 7 dari akumulator A diubah menjadi 0
Ret (Return) adalah perintah untuk mengakhiri sub program dan kembali ke baris yang memanggil sub program tersebut. Pemanggilan subroutine biasanya dilakukan dengan perintah ACALL atau LCALL.
36
Contoh penulisan Artinya
Ret Kembali ke program utama
End adalah perintah untuk mengakhiri program. Contoh penulisan Artinya
2.6.2
End Program berakhir
Register-register dalam Bahasa Assembly Register-register yang biasa digunakan pada turbo assembler diantaranya
adalah Acumulator dan Register R0 sampai R7. Accumulator adalah register khusus pada mikrokontroler yang mempunyai keistimewaan yaitu mempunyai tempat penyimpanan sementara, mempunyai tempat penampungan semua register, dan dapat dioperasikan secara aritmatika. Register R0 sampai dengan R7 adalah blok memori kecil yang mempunyai kecepatan tinggi (small highspeed) dan digunakan untuk menyimpan data.
37
BAB III PEMBUATAN IN LINE FOLLOWER ROBOT BERLENGAN SATU
Pada bab ini dibahas sistem rangka robot lengan, rangkaian elektronika, dan program yang digunakan untuk menjalankan In Line Follower Robot Berlengan Satu. Berikut ini adalah skematis penggabungan rangkaian mikrokontroler, sensor, dan pembalik arah putaran motor DC : SENSOR1
2
P0.0
P1.0
2
3
P0.1
P1.1
7
6
P0.2
P1.2
10L293D 11
P1.3
15
14
2
3
P1.5
7
6
P1.6
10L293D 11
P1.7
15
M1
1
VR
3 7
SENSOR2
6 LM324
AT89C51
P1.4
8
VR SENSOR3 VR
M2
5 9 10
SERVO
14
P2.6
Gambar 3.1 Skematis pengabungan rangkaian mikrokontroler, sensor, dan pembalik arah putaran motor DC
38
M3
M4
VCC
5V
SERVO MOTOR Gambar 3.2 Diagram skematik penggabungan rangkaian Rangkaian dasar mikrokontroller dihubungkan dengan rangkaian sensor dan rangkaian pembalik arah putaran motor DC. Mikrokontroller AT89C51 akan mengambil input berupa sinyal digital dari rangkaian sensor dan memberikan output berupa sinyal digital ke rangkaian pembalik arah putaran motor DC dan motor servo. Sinyal digital input dari sensor bisa mempengaruhi mikrokontroller AT89C51 untuk memutarkan motor DC dan motor servo. Mikrokontroller AT89C51 bisa dipengaruhi
39
apabila
didalamnya
terdapat
program.
Skematis
penggabungan
rangkaian
mikrokontroller, sensor dan pembalik arah putaran motor DC dapat dilihat pada gambar 3.2. 3.1
Rangka Robot Rangka In Line Follower Robot Berlengan Satu secara garis besar dibagi
menjadi dua bagian besar. Bagian-bagian itu adalah badan robot dan lengan robot. Badan robot dibuat dari bahan acrylic dengan rangka plat alumunium sedangkan lengan robot dibuat dari bahan plat alumunium dengan tebal 3 mm. 3.1.1
Badan Robot Badan robot adalah bagian dari rangka robot yang berfungsi sebagai dudukan
roda-roda robot, dudukan rangka robot, dan dudukan rangkaian elektronika. Badan robot dibuat dengan bentuk persegi panjang. Roda-roda robot ditempelkan di bagian samping bawah badan robot, rangkaian elektronika diletakkan di atas badan robot bagian belakang, dan rangka lengan diletakkan di atas badan robot bagian depan. Roda-roda yang digunakan pada In Line Follower Robot Berlengan Satu ini berjumlah tiga buah. Roda-roda tersebut terdiri dari dua buah roda penggerak dan sebuah roda pengekor. Penempatan ketiga roda itu dibuat sedemikian rupa sehingga dapat menumpu badan robot tanpa adanya perbedaan ketinggian antara bagian depan dan bagian belakang badan robot. Bentuk badan robot dan posisi tiga buah roda yang digunakan untuk menumpunya dapat dilihat pada gambar 3.3.
40
Gambar 3.3 Badan robot dan roda-roda penumpu Roda penggerak adalah roda yang digunakan untuk menggerakkan badan robot maju dan mundur. Roda penggerak juga berfungsi untuk menentukan gerak belok badan robot. Roda-roda penggerak ditempelkan di bawah badan robot bagian depan. Roda-roda depan dapat berfungsi sebagai roda penggerak karena masingmasing roda diputar oleh sebuah motor DC yang telah direduksi putarannya. Motor DC direduksi putarannya agar torsinya cukup besar untuk dapat memutar roda
41
penggerak yang menggerakkan badan robot yang menumpu rangkaian elektronika dan rangka lengan. Badan robot dapat bergerak maju atau mundur jika kedua motor DC yang digunakan untuk memutar roda penggerak (roda depan) diputar berlawanan arah satu satu sama lain. Jika motor DC yang digunakan untuk menggerakan roda penggerak (roda depan) sebelah kanan diputar searah putaran jarum jam dan motor DC yang digunakan untuk memutar roda penggerak (roda depan) sebelah kiri diputar berlawanan arah putaran jarum jam maka badan robot akan bergerak bergerak maju. Jika kedua motor DC itu masing-masing diputar dalam arah sebaliknya maka badan robot akan bergerak mundur. Badan robot dapat berbelok ke arah kanan atau ke arah kiri jika kedua motor DC yang digunakan untuk memutar roda penggerak (roda depan) diputar dalam arah yang sama. Jika motor DC yang digunakan untuk menggerakkan roda penggerak (roda depan) sebelah kanan dan roda penggerak sebelah kiri diputar searah putaran jarum jam maka badan robot akan berbelok ke arah kiri. Sebaliknya, jika kedua motor DC tersebut diputar berlawanan arah putaran jarum jam maka badan robot akan berbelok ke arah kanan. Skematis putaran motor DC (putaran ban penggerak) yang mengakibatkan berbagai macam gerakan badan robot dapat dilihat pada gambar 3.4.
42
Gambar 3.4 Skematis putaran motor DC (putaran ban) untuk menggerakkan badan robot
3.1.2
Lengan Robot Lengan robot adalah rangka robot yang berfungsi untuk memindahkan benda
yang menghalangi gerakan maju robot. Ada atau tidaknya benda yang menghalangi gerakan maju robot akan dideteksi oleh sensor khusus yang dimiliki oleh robot. Benda yang menghalangi gerakan maju robot tersebut akan dipindahkan sehingga
43
tidak menghalangi gerakan maju robot. Jika tidak ada benda yang menghalangi gerakan maju robot maka robot akan melakukan gerakan maju kembali. Lengan robot diletakkan di atas badan robot bagian depan. Lengan robot terdiri atas 4 bagian lengan. Bagian-bagian lengan tersebut adalah dasar lengan, lengan bawah, lengan atas, dan sepasang penjepit. Bagian-bagian lengan robot tersebut digerakkan oleh servo dan motor DC. Bagian lengan bawah dan lengan penjepit digerakan oleh sebuah motor dc kecuali lengan atas yang tidak digerakkan oleh motor, namun hanya mengunakan poros yang disambungkan oleh tali strength ke bagian lengan bawah, dasar lengan digerakkan oleh sebuah motor servo. Bentuk lengan robot dapat dilihat pada gambar 3.5.
Gambar 3.5 Lengan robot
Poros tiap-tiap motor DC akan digerakkan pada sudut-sudut tertentu sehingga akan terbentuk formasi bagian-bagian lengan yang tertentu. Perubahan sudut-sudut
44
motor DC akan mengakibatkan perubahan formasi posisi bagian-bagian lengan. Dengan mengatur perubahan sudut-sudut poros motor DC maka akan terjadi mekanisme pemindahan benda oleh lengan robot. Mekanisme gerakan tiap-tiap bagian lengan robot dapat dilihat pada gambar 3.6.
Gambar 3.6 Arah gerak bagian-bagian lengan robot
45
3.2
Rangkaian Elektronika Rangkaian elektronika adalah gabungan beberapa komponen elektronika
sehingga mempunyai fungsi tertentu. Rangkaian elektronika yang digunakan pada tugas akhir ini adalah rangkaian sensor dan komparator, rangkaian pengendali, dan rangkaian pembalik arah putaran motor DC.
3.2.1
Rangkaian Sensor Sensor adalah bagian dari robot yang berinteraksi dengan lingkungan sekitar
robot. Sensor dapat mendeteksi kondisi tertentu pada lingkungan sekitar robot. Sensor akan memberikan sinyal tertentu atas kondisi lingkungan yang dideteksinya. Beberapa contoh kondisi yang dapat dideteksi oleh sensor misalnya adalah tingkat intensitas cahaya, tingkat temperatur ruangan, atau tingkat tekanan udara ruangan. Sensor yang digunakan pada tugas akhir ini adalah sensor pendeteksi intensitas cahaya. Sensor ini terdiri dari sebuah transmitter (pengirim) dan receiver (penerima). Komponen elektronika yang digunakan sebagai transmitter adalah IR LED. IR LED digunakan sebagai transmitter dengan alasan dapat memancarkan cahaya. Komponen elektronika yang digunakan sebagai receiver adalah photodioda. Photodioda digunakan sebagai receiver dengan alasan dapat memberikan reaksi (perubahan tegangan) bila terjadi perubahan intensitas cahaya. Rangkaian sensor secara lengkap dapat dilihat pada gambar 3.7. Konfigurasi IR LED terhadap photodioda dapat dilihat pada gambar 3.8.
46
Gambar 3.7 Rangkaian sensor
47
Gambar 3.8 Konfigurasi IR LED terhadap photodioda Bila di depan IR LED terdapat sebuah benda atau bidang yang berwarna terang maka cahaya dari IR LED akan dipantulkan dengan baik oleh benda atau bidang tersebut. Bila pemantulan cahaya baik maka cahaya yang diterima oleh photodiode cukup terang. Cahaya terang yang diterima photodioda akan membangkitkan arus dari kaki positif ke kaki negatif photodioda. Akibat adanya arus dari kaki positif ke kaki negatif maka kaki positif dan negatif akan terhubung. Bila benda atau bidang yang terdapat di depan IR LED berwarna gelap maka cahaya dari IR LED tidak akan dipantulkan dengan baik. Akibatnya cahaya yang diterima photodioda tidak akan cukup untuk membangkitkan arus dari kaki positif ke kaki negatif photodioda. Selain IR LED dan photodioda, pada rangkaian ini juga terdapat resistor, LED, variabel resistor, dan LM324 (Op Amp). Resistor berfungsi untuk menahan arus listrik yang akan melewati IR LED, photodioda dan LED. Kaki positif
48
photodioda dihubungkan ke kaki negatif Op Amp sehingga kondisi tegangan kaki negatif Op Amp akan tergantung pada tegangan kaki positif photodioda. Variabel resistor berfungsi sebagai penahan arus listrik yang akan memasuki kaki posistif Op Amp. Besar tahanan variable resistor bisa diubah-ubah sehingga tegangan pada kaki posistif Op Amp bisa diatur. LED berfungsi untuk menunjukkan kondisi kaki output Op Amp. Op Amp berfungsi sebagai pembanding tegangan pada kaki positif dan kaki negatifnya. Bila tegangan pada kaki positif lebih besar daripada tegangan pada kaki negatif maka kaki output Op Amp akan berharga high (1). Bila tegangan pada kaki positif lebih kecil daripada tegangan di kaki negative maka kaki output Op Amp akan berharga low (0). Sensor yang dipasang pada robot lengan ini ada tiga buah. Dua buah sensor diletakkan di bagian bawah badan robot, dan sebuah sensor diletakkan di bagian depan badan robot. Sensor-sensor tersebut memiliki jenis dan cara kerja yang sama, yaitu dengan cara memantulkan cahaya dari IR LED ke suatu bidang dan menerimanya melalui sebuah photodioda. Dua buah sensor yang diletakkan di bagian bawah badan robot berfungsi untuk mendeteksi jalur yang akan dilalui robot lengan. Jalur robot adalah lintasan berupa pita berwarna putih (berwarna terang) yang terletak di atas bidang berwarna gelap. Perpindahan posisi sensor yang asalnya berada di atas bidang yang berwarna terang ke atas bidang yang berwarna gelap akan mengakibatkan sensor mengirimkan sinyal yang berbeda ke Op Amp. Hal sebaliknya juga akan terjadi, bila sensor
49
berpindah posisi yang tadinya berada di atas bidang yang berwarna gelap ke atas bidang yang berwarna terang maka akan terjadi pengiriman sinyal yang berbeda ke Op Amp. Sebuah sensor yang diletakkan di bagian depan badan robot berfungsi untuk mendeteksi benda-benda berwarna terang yang mengahalangi robot. Jika benda yang mengahalangi robot berwarna gelap maka sensor akan menganggap tidak ada benda yang menghalangi robot. Hal ini dikarenakan benda-benda yang berwarna gelap kurang baik untuk memantulkan cahaya. Hal ini mengakibatkan intensitas cahaya IR LED yang dipantulkan tidak cukup untuk membangkitkan arus dari kaki basis ke kaki emitter photodioda.
3.2.2
Rangkaian Pembalik Arah Putaran Motor DC Rangkaian pembalik arah putaran motor DC hanya memerlukan sebuah
komponen yang bernama L293D. Dengan sebuah L293D dapat dikontrol dua buah motor DC. Untuk mengatur arah putaran motor DC maka perlu diatur kondisi kakikaki input L293D. Pembahasan yang lebih rinci mengenai L293D ini telah dijelaskan pada sub bab 2.2.4 IC Inverter L293D. Skematik rangkaian pengubah arah putaran motor DC dapat dilihat pada gambar 3.9.
50
Gambar 3.9 Skematis rangkaian pengubah arah putaran motor DC
3.2.3
Rangkaian Mikrokontroler Mikrokontroler AT89C51 akan dapat berfungsi bila dihubungkan dengan
komponen-komponen
elektronika
lainnya.
Komponen-komponen
elektronika
pedukung tersebut adalah resistor, kapasitor dan isolator. Rangkaian dasar mikrokontroler AT89C51 dapat dilihat pada gambar 3.10.
Gambar 3.10 Rangkaian dasar mikrokontroler AT89C51
51
Rangkaian dasar mikrokontroler AT89C51 selanjutnya digabungkan dengan rangkaian sensor dan rangkaian pembalik arah putaran motor DC. Mikrokontroler AT89C51 akan mengambil input berupa sinyal digital dari rangkaian sensor dan memberikan output berupa sinyal digital pula kepada rangkaian pembalik arah putaran motor DC dan motor servo. Sinyal dari rangkaian sensor berfungsi sebagai input atau sebagai kondisi acuan untuk menentukan jalannya program. Sinyal tertentu dari rangkaian sensor akan membuat mikrokontroler melakukan suatu tindakan eksekusi sesuai dengan program yang telah dimasukkan ke dalam mikrokontroler tersebut. Dua sensor di bagian bawah badan robot akan mempengaruhi variasi pengiriman sinyal ke rangakaian pembalik arah putaran motor DC. Variasi sinyal yang dikirimkan mikrokontroler kepada rangkaian pembalik arah putaran motor DC melalui kaki-kaki output mikrokontroler akan mengubah arah gerak robot. Akibatnya, robot bisa bergerak maju, mundur, berbelok ke arah kanan, atau berbelok ke arah kiri. Sebuah sensor di depan badan robot akan mempengaruhi perubahan variasi pengiriman sinyal ke motor servo dan motor DC yang menggerakkan rangka robot. Akibat adanya perubahan variasi pengiriman sinyal, lengan robot akan melakukan suatu mekanisme pemindahan benda yang menghalangi robot lengan. 3.3
Program Program adalah gabungan beberapa perintah yang disusun agar terjadi suatu
aksi tertentu. Program dapat mengambil kondisi lingkungan tertentu sebagai input atau kondisi acuan. Dengan adanya input tertentu program bisa melakukan aksi
52
tertentu pula sesuai dengan isi program. Input program biasanya berasal dari sensor. Program pada tugas akhir ini dibuat dengan menggunakan bahasa assembly. Program dibuat sesuai dengan keinginan pembuat program. Sebelum membuat program langkah-langkah program harus ditentukan. Hal ini dimaksudkan agar isi program tidak keluar dari apa yang direncanakan. Langkah-langkah program dapat dinyatakan dalam suatu diagram alir program. Diagram alir program pada tugas akhir ini dapat dilihat pada gambar 3.11. START
YA
DEPAN AKTIF
MUNDUR, AMBIL BARANG DST
NO
NO
KANAN ?
NO
KIRI ?
YA
YA
NO KIRI ?
BELOK KIRI KIRI ?
PUTAR KANAN
NO
YA
BELOK KANAN
YA NO YA
YA
KANA N ?
NO
LURUS
STOP
KIRI ?
Gambar 3.11 Diagram alir program In Line Follower Robot Berlengan Satu
53
Program In Line Follower Robot Berlengan Satu ini didasarkan pada kondisi input yang berasal dari tiga buah sensor yang dimiliki robot lengan. Kondisi output yang dihasilkan oleh program secara garis besar bergantung kepada empat buah pertanyaan mengenai kondisi tegangan sensor. Pertanyaan-pertanyaan mengenai kondisi tegangan sensor-sensor tersebut adalah pertanyaan mengenai kondisi ketiga sensor pada saat yang bersamaan, pertanyaan mengenai kondisi sensor 3, sensor 1, dan sensor 2.
3.3.1
Kondisi Tiga Buah Sensor Program dimulai dengan mengarahkan program agar dimulai dari alamat
memori 0h. R (register) diberi harga 0 yaitu suatu cara untuk memberi tanda bahwa perintah sebelumnya (terakhir) bukanlah perintah kepada robot untuk belok ke arah kanan atau ke arah kiri. Selanjutnya program akan membaca input dari ketiga sensor yang dimiliki oleh robot. Bila sensor 1 (sensor atas) berharga 0 (low), sensor 2 (sensor bawah sebelah kiri) berharga 0 (low), dan sensor 3 (sensor bawah sebelah kanan) berharga 1 (low) secara bersamaan maka robot diperintahkan untuk berputar dengan arah belokan ke sebelah kanan. Namun apabila sensor 2 dan 3 berharga high dan sensor 1 low maka robot maju sampai sensor 1 berharga high karena terdapat penghalang. Apabila semua sensor berharga low maka robot akan berputar ke kanan dan kembali ke jalur yang ditetapkan.
54
3.3.2
Kondisi Sensor 1 Apabila sensor 1 berharga high maka robot mundur selama 3 detik guna
mendapatkan presisi untuk menggerakkan tangan serta mengambil benda penghalang tersebut tanpa menggesernya terlebih dahulu, sehingga benda yang diambil tidak terjatuh sebelum dipindahkan.
3.3.3
Kondisi Sensor 2 Perintah selanjutnya adalah apabila sensor dua berharga low, berarti sensor 2
telah melewati batas garis putih sehingga robot akan mengarah kekanan dan kembali ke jalur yang telah dibuat. Namun apabila sensor 2 berharga high hal itu menunjukkan bahwa robot tersebut masih berada dilintasan dan masih bergerak lurus dengan syarat sensor 3 berharga high.
3.3.4
Kondisi Sensor 3 Apabila sensor 3 yang berharga low maka hal tersebut menunjukkan bahwa
sensor 3 telah melewati garis putih lalu robot secara otomatis akan bergerak ke kiri. Namun apabila sensor 3 berharga high maka robot akan terus bergerak maju dalam satu garis lurus dengan syarat sensor 2 high atau masih dalam lintasan garis.
55
BAB IV PENGUJIAN DAN ANALISA
Pada bab ini dibahas mengenai pengujian yang dilakukan terhadap rangkaian sensor, rangkaian pembalik arah putaran motor DC, dan rangkaian kontroler. Rangkaian-rangkaian yang telah diuji selanjutnya digabung menjadi satu rangkaian. Rangkaian elektronika hasil gabungan rangkain-rangkaian tersebut selanjutnya digunakan untuk mengontrol gerak robot. Dengan menggunakan rangkaian elektronika gerak robot dikontrol sesuai dengan kodisi lingkungan sekitarnya. Pengujian yang dilakukan terhadap masing-masing rangkaian dilakukan dengan tujuan mengetahui apakah masing-masing rangkaian tersebut dapat befungsi dengan baik secara individu atau tidak. Pengujian yang dilakukan terhadap gabungan rangkaian-rangkaian dilakukan dengan tujuan mengetahui apakah rangkaian tersebut dapat berfungsi mengontrol gerak robot atau tidak. Hasil dari pengujian yang telah dilakukan dianalisa untuk mengetahui fenomena-fenomena yang terjadi dan hal-hal yang menyebabkan fenomena-fenomena tersebut terjadi.
4.1
Pengujian Pengujian dilakukan terhadap masing-masing komponen dan juga terhadap
sistem robot keseluruhan. Pengujian dilakukan dengan berbagai macam metode. Metode pengujian disesuaikan dengan fungsi yang diinginkan dari masing-masing rangkaian atau dari fungsi robot keseluruhan.
56
4.1.1
Pengujian Rangkaian Sensor Pengujian rangkaian sensor dilakukan dengan tujuan untuk mengetahui
perubahan reaksi photodioda jika dikenai cahaya dari IR LED. Perubahan reaksi photodioda bisa dilihat dengan cara melihat perubahan reaksi LED yang terdapat pada rangkaian sensor. Perubahan reaksi photodioda dapat disamakan dengan perubahan reaksi LED dari nyala kepadam atau sebaliknya. Pengujian dilakukan di ruangan dengan kondisi intensitas cahaya yang sedikit. Hal ini dimaksudkan agar photodioda tidak terpengaruh oleh cahaya lain selain cahaya dari IR LED. Cahaya-cahaya yang bisa dianggap sama dengan cahaya IR LED misalnya cahaya yang berasal dari matahari, lampu, atau yang berasal dari api. Pengujian pertama dilakukan dengan cara memposisikan IR LED dan photodioda secara berhadap-hadapan. Dengan memposiskan IR LED dan photodioda berhadap-hadapan maka cahaya dari IR LED akan diterima oleh photodioda secara langsung. Jarak antara IR LED dan photodioda tidak terlalu jauh, yaitu sekitar 2 sampai 4 cm. Pemosisian IR LED dan photodioda pada pengujian pertama dapat dilihat pada gambar 4.1. IR
DIODAPHOTO
IR
DIODAPHOTO
Gambar 4.1 Pemosisian IR LED dan photodioda pada pengujian pertama
57
Pada saat IR LED dan photodioda dihadapkan tanpa penghalang, LED pada rangkaian sensor tidak menyala. LED yang tidak menyala mengindikasikan kondisi kaki ouput pada Op Amp berharga 1 (high). Pada saat di antara IR LED dan photodioda diberi penghalang, LED pada rangkaian sensor menyala. LED yang menyala mengindikasikan kondisi kaki ouput pada Op Amp berharga 0 (low). Pengujian kedua dilakukan dengan cara memposisikan IR LED dan photodioda sejajar. Jarak antara IR LED dan photodioda 0,5 sampai 1 cm. Dengan memposisikan IR LED dan photodioda sejajar maka cahaya dari IR LED tidak akan diterima photodioda secara langsung. Cahaya dari IR LED dapat diterima photodioda bila dipantulkan ke suatu bidang yang berwarna cerah. Bidang yang digunakan pada pengujian ini adalah selembar kertas berwarna putih. Pemosisian IR LED dan photodioda pada pengujian kedua dapat dilihat pada gambar 4.2. IR
PHOTODIODA
Gambar 4.2 Pemosisian IR LED dan photodioda pada pengujian kedua
Pada saat cahaya IR LED tidak dipantulkan ke bidang yang berwarna terang, LED pada rangkaian sensor menyala. LED yang menyala mengindikasikan kondisi kaki output pada opamp berharga 0 (low). Pada saat cahaya IR LED dipantulkan ke
58
kertas, LED pada rangkaian sensor tidak menyala. LED yang tidak menyala mengindikasikan kondisi kaki output pada Op Amp berharga 1 (high).
4.1.2
Pengujian Rangkaian Pembalik Arah Putaran Motor DC Pengujian rangkaian pembalik arah putaran motor DC dilakukan untuk
mengetahui apakah rangkaian dapat berfungsi dengan baik atau tidak. Pengujian rangkaian pembalik arah putaran motor DC menggunakan dua buah motor DC sebagai objek yang akan diatur oleh komponen L293D. Mikrokontroller AT89C51 digunakan untuk
memberikan kondisi tertentu (high atau low) pada kaki input
L293D. Skematik pengujian rangkaian pembalik arah putaran motor DC dapat dilihat pada gambar 4.3.
Gambar 4.3 Skematik pengujian rangkaian pembalik arah putaran motor DC Pengujian pertama adalah mengatur arah putaran motor DC ke-1. Mikrokontroller AT89C51 memberi sinyal digital berharga 1 (high) ke kaki input-1 L293D dan sinyal digital berharga 0 (low) ke kaki input-2 inverter L293D. Variasi
59
pemberian sinyal seperti ini menyebabkan motor DC ke-1 berputar. Selanjutnya mikrokontroller AT89C51 memberi sinyal digital berharga 0 (low) ke kaki input-1 L293D dan sinyal berharga 1 (high) ke kaki input-2 L293D. Variasi pemberian sinyal yang terbalik dari variasi pemberian sinyal yang pertama menyebabkan motor DC berputar dengan arah putaran yang berbeda dari arah putaran motor DC yang pertama. Pengujian
kedua
adalah
mengatur
arah
putaran
motor
DC
ke-2.
Mikrokontroller AT89C51 memberi sinyal digital berharga 1 (high) ke kaki input-3 L293D dan sinyal digital berharga 0 (low) ke kaki input-4 L293D. Variasi pemberian sinyal seperti ini menyebabkan motor DC ke-2 berputar. Selanjutnya mikrokontroller AT89C51 memberi sinyal digital berharga 0 (low) ke kaki input-3 L293D dan sinyal digital berharga 1 (high) ke kaki input-4 L293D. Variasi pemberian sinyal yang terbalik dari variasi pemberian sinyal yang pertama menyebabkan motor DC berputar dengan arah putaran yang berbeda dari arah putaran motor DC sebelumnya.
4.1.3
Pengujian Rangkaian Kontroler Pengujian rangkaian kontroler dilakukan untuk menguji fungsi input dan
output kaki-kaki mikrokontroler AT89C51. Pengujian fungsi input dan output memerlukan saklar dan LED sebagai komponen penguji. Skematik pengujian rangkaian kontroler dapat dilihat pada gambar 4.4.
60
Gambar 4.4 Skematik pengujian rangkaian kontroler Selain memerlukan saklar dan LED, pengujian juga memerlukan program untuk mengambil data kondisi kaki yang dipergunakan sebagai kaki input pada mikrokontroller (kaki P3.0). Program juga dipergunakan untuk mengkondisikan kakikaki yang dipergunakan sebagai kaki-kaki output pada mikrokontroller (kaki P1.0 s.d. P1.7). Diagram alir program dapat dilihat pada gambar 4.5
Gambar 4.5 Diagram alir program
61
Pengujian fungsi input mikrokontroller AT89C51 menggunakan saklar sebagai pemutus atau penghubung kaki mikrokontroller dengan ground sumber tegangan. Bila saklar dalam keadaan terbuka maka kaki P3.0 mikrokontroller AT89C51 akan berharga 1 (bit). Bila saklar dalam keadaan tertutup maka kaki P3.0 mikrokontroller AT89C51 akan berharga 0 (not bit). Pengujian fungsi output mikrokontroller AT89C51 menggunakan LED sebagai indikator kondisi kaki-kaki output mikrokontroller. Bila saklar dalam keadaan terbuka maka LED yang terhubung pada kaki P1.0 s.d. P1.3 harus menyala dan LED yang terhubung pada kaki P1.4 s.d. P1.7 harus padam. Bila saklar dalam keadaan tertutup maka LED yang terhubung pada kaki P1.0 s.d. P1.3 harus padam dan LED yang terhubung pada kaki P1.4 s.d. P1.7 harus menyala. Pengujian pertama adalah dengan membiarkan saklar pada kondisi terbuka (P3.0 berharga high). Akibat dari kondisi saklar yang terbuka adalah LED yang tehubung pada kaki P1.0 s.d. P1.3 menyala dan LED yang terhubung pada kaki P1.4 s.d. P1.7 padam. Pengujian kedua adalah dengan menekan saklar atau menkondisikan saklar dalam kondisi tertutup (P3.0 berharga low). Akibat dari kondisi saklar yang tertutup adalah LED yang tehubung pada kaki P1.0 s.d. P1.3 padam dan LED yang terhubung pada kaki P1.4 s.d. P1.7 menyala.
62
4.1.4
Pengujian In Line Follower Robot Berlengan Satu Pengujian In Line Follower Robot Berlengan Satu adalah pengujian yang
dilakukan terhadap gabungan seluruh rangkaian elektronik, sensor, motor-motor, dan rangka robot. Pengujian In Line Follower Robot Berlengan Satu dilakukan untuk menguji apakah robot ini dapat berfungsi sesuai dengan yang diharapkan atau tidak. Pengujian pertama dilakukan di ruangan yang mendapat sinar matahari yang cukup. Robot diletakkan pada suatu lintasan lurus berwarna putih. Lintasan dibuat di atas suatu bidang berwarna putih. Lintasan memiliki lebar 3,5 cm dan panjang 1 meter. Pengujian pertama dilakukan dengan tidak memberi penghalang pada robot. Setelah robot diberi arus listrik, robot langsung melakukan gerakan mundur dan lengan robot melakukan gerakan mengambil benda. Gerakan seperti itu adalah gerakan yang harus dilakukan robot bila ada benda yang menghalangi robot. Yang menjadi suatu permasalahan adalah pada saat pengujian pertama ini tidak ada benda yang menghalangi robot. Hal ini bisa disebabkan oleh terlalu besarnya intensitas cahaya matahari yang diterima oleh sensor depan robot. Akibat intensitas cahaya yang terlalu besar maka robot menganggap ada benda yang menghalangi robot. Pengujian kedua hampir sama dengan pengujian pertama. Yang membedakan antara pengujian pertama dan kedua adalah keadaan ruang percobaan dibuat tidak terlalu terang terutama akibat cahaya matahari. Bentuk jalur dan dimensi yang dipergunakan pada pengujian kedua adalah jalur yang sama yang digunakan pada pengujian pertama. Pada pengujian kedua ini pun tidak dipergunakan penghalang untuk menghadang robot.
63
Setelah robot diberi arus listrik, robot maju dan berbelok ke kanan dan ke kiri sesuai dengan sensor mana yang keluar jalur. Setelah robot mencapai ujung jalur robot berputar dengan mengambil tindakan berputar ke arah kanan. Robot tidak melakukan gerakan untuk mengambil benda karena tidak ada benda yang menghalangi robot. Pengujian ketiga adalah dengan menambahkan penghalang pada jalur yang dilalui oleh robot. Penghalang berwarna putih dengan tinggi 13 cm dan lebar 3 cm diletakkan dijalur yang akan dilalui robot. Jalur yang dipergunakan serta kondisi intensitas cahaya di ruangan sama seperti pada pengujian kedua. Setelah robot diberi arus listrik, robot bergerak maju dan berbelok ke kanan atau ke kiri sesuai dengan sensor bawah mana yang keluar jalur. Ketika ada benda yang menghalangi robot, sensor depan mendeteksinya dan mengirimkan pesan ke mikrokontroler. Karena ada benda yang menghalangi robot maka robot mundur dan memindahkan benda tersebut. Ketika lengan robot mulai mengangkat benda, motor servo tidak mampu menggerakkan lengan bawah pada lengan robot. Hal ini disebabkan motor tidak mampu melawan momen yang terlalu besar pada lengan robot. Untuk mengatasi hal ini maka digunakanlah motor DC dengan 3 pasang gear didalamnya guna meningkatkan torsi motor tersebut.
64
4.2
Analisa Setelah dilakukan pengujian terhadap rangkaian-rangkian elektronik dan In
Line Follower Robot Berlengan Satu secara keseluruhan dapat dianalisa kekurangan dan kelebihan In Line Follower Robot Berlengan Satu. Kekurangan pada In Line Follower Robot Berlengan Satu meliputi sensor dan motor DC gearbox. Sensor yang digunakan pada In Line Follower Robot Berlengan Satu adalah sensor cahaya. Sensor jenis ini mudah terpengaruh oleh cahaya yang berasal dari berbagai macam sumber cahaya. Salah satu cahaya yang dapat mempengaruhi sensor pada saat pengujian adalah cahaya matahari. Untuk mengatasi hal ini maka robot hanya digunakan pada ruangan yang memiliki intensitas cahaya yang rendah. Kekurangan pada motor gearbox adalah tidak mampu menggerakkan lengan bila momen yang harus dilawan motor DC gearbox terlalu besar, karena as yang digunakan terlalu panjang. Untuk mengatasi masalah ini maka dipergunakan 1 motor saja dengan bantuan tali strength yang disambungkan ke as pada masing – masing bagian lengan. Kelebihan In Line Follower Robot Berlengan Satu adalah harga sensor yang sangat murah. Selain harga sensor yang murah, harga komponen lain pada robot ini pun relatif murah. Beberapa komponen In Line Follower Robot Berlengan Satu merupakan barang-barang bekas yang dibeli dengan harga murah. Selain harga-harga beberapa komponen yang sangat murah, In Line Follower Robot Berlengan Satu pun mempunyai keunggulan lainnya. Keunggulan lainya adalah In Line Follower Robot Berlengan Satu dapat berputar bila jalur yang dilaluinya telah habis atau telah mencapai ujung lintasan.
65
BAB V KESIMPULAN DAN SARAN
5.1
Kesimpulan Dari pembahasan yang telah dilakukan pada bab-bab sebelumnya dapat
disimpulkan bahwa In Line follower Robot Berlengan Satu yang telah dibuat dapat berfungsi sesuai dengan tujuan pembuatan. Tujuan pembuatan In Line Follower robot berlengan Satu adalah membuat robot yang dapat melaju pada lintasan tertentu. Selain itu robot ini juga harus mampu bereaksi bila ada benda yang menghalangi robot. Reaksi yang harus dilakukan oleh robot ini adalah memindahkan benda tersebut sehingga tidak menghalanginya lagi. In Line Follower robot Berlengan Satu yang telah dibuat dapat melaju pada lintasan yang diberi warna terang (misalnya warna putih). Robot dapat berbelok ke kanan bila sensor sebelah kiri keluar jalur. Robot dapat berbelok ke kiri bila sensor sebelah kanan keluar lintasan. Selain dapat berbelok ke kanan dan ke kiri sesuai dengan lintasan yang dilalui, robot ini juga dapat berputar bila lintasan yang dilaluinya telah habis (putus). Apabila ada benda berwarna terang (misalnya warna putih) yang menghalangi robot maka robot akan memindahkan benda tersebut. Selain telah memenuhi tujuan dari pembuatan robot ini, robot juga masih memiliki kekurangan. Robot akan berfungsi dengan baik bila dioperasikan pada
66
ruangan dengan tingkat intensitas cahaya yang rendah. Robot hanya akan mendeteksi benda yang menghalanginya bila benda tersebut berwarna terang. 5.2
Saran In Line Follower Robot Berlengan Satu yang telah dibuat memiliki beberapa
kekurangan sehingga perlu beberapa penyempurnaan. Penyempurnaan tersebut meliputi:
1. Penyempurnaan pada sensor depan (sensor pendeteksi benda). Agar In Line Follower Robot Berlengan Satu tidak hanya dapat dioperasikan pada ruangan dengan tingkat intensitas cahaya yang rendah sebaiknya sensor depan tidak mengguankan sensor cahaya. Salah satu jenis sensor yang bisa dipergunakan untuk menggantikan sensor cahaya sebagai sensor depan (sensor pedeteksi benda) adalah sensor jarak. Dengan menggunakan sensor jarak maka tingkat intensitas cahaya yang berbeda tidak akan berpengaruh terhadap sensor. Dengan demikian maka robot dapat dioperasikan pada ruangan dengan tingkat intensitas cahaya yang berbeda-beda.
2. Penyempurnaan pada motor yang dipergunakan untuk menggerakkan lengan robot. Motor DC yang dipergunakan untuk menggerakkan lengan robot ini tidak memiliki torsi yang besar untuk menggerakkan lengan robot ini, karena as yang digunakan pada motor di lengan ini terlalu panjang. Karena motor DC tidak
67
cukup kuat untuk menggerakkan lengan robot maka hanya digunakan satu motor saja guna mengurangi beban pada lengan tersebut. Agar gerakan tangan robot selaras antara lengan bawah dan lengan atas, maka digunakan tali strengh dan bantuan 2 buah baut panjang sebagai penyangga tangan tersebut.
68
DAFTAR PUSTAKA 1. Eko Putra, Afgianto, Belajar Mikrokontroller AT 89C51/52/55 Teori Dan Aplikasi Edisi 2, Gava Media, Yogyakarta, 2004. 2. Efriadi, In Line Folower Robot, Laporan Tugas Akhir, Jurusan Teknik Mesin UNPAS Bandung, 2006. 3. Hendrik , Robot Laba-laba, Laporan Tugas Akhir, Jurusan Teknik Mesin UNPAS Bandung, 2006. 4. www.alldatasheet.com 5. www.parallax.com 6. www.atmel.com 7. www.batara.s5.com 8. www.delta-electronic.com 9. www.electronicLab.com 10. www.centrin.net.id 11. www.kmitl.ac.th 12. www.wikipedia.org
69
70
71
72
Listing Program In Line Follower Robot $MOD51 servo
EQU P2.7 ;500 & 2500, lihat pservo
pservo
EQU 20H.0 ;posisi servo 0 atau 1.
stopf
EQU 20H.1 ;stop flag
jepit1
EQU P1.7
jepit2
EQU P1.6 ;76 = 10 ---> lepas
;76 = 01 ---> jepit
;roda kiri roda1
EQU P1.3 ;1234=1010=maju
roda2
EQU P1.2 ;1234=1001=kanan
;roda kanan roda3
EQU P1.1 ;1234=0110=kiri
roda4
EQU P1.0 ;1234=0101=mundur
bahu1
EQU P1.5 ;12=10=turun
bahu2
EQU P1.4 ;12=01=naik
skanan
EQU P0.2 ;active HIGH
skiri
EQU P0.3
sdepan
EQU P0.0
;********************************************** DSEG ORG
30H
loop:
DS
1
73
loopD: DS
1
;untuk delay
fase:
DS
1
;********************************************** CSEG SJMP
start
ORG
0BH
LJMP
ISR_servo
;Timer0
;********************************************** ORG
30H
start: MOV
TMOD,#11H
MOV
IE,#10000010B
CLR
pservo
;posisi servo di depan
MOV
fase,#1
;dari 3 fase
SETB
TR0
CLR
stopf
CLR
pservo
CLR
jepit1 ;posisi penjepit menutup
CLR
jepit2
CLR
bahu1 ;posisi lengan di atas
CLR
bahu2
ACALL
stop
;servo ke depan
;roda berhenti
74
;********************************************** ;PROGRAM UTAMA ;********************************************** awal: ACALL
susuri
JNB
stopf,mundur_
SJMP
$
mundur_: ACALL
mundur
ACALL
delay4s
ACALL
stop
ACALL
buka_jepit
ACALL
lengan_turun
ACALL
jepit
ACALL
lengan_naik
SETB
pservo
ACALL
delay1s
ACALL
lengan_turun
ACALL
buka_jepit
ACALL
lengan_naik
ACALL
jepit
CLR
pservo
ACALL
delay1s
75
SJMP
AWAL
;********************************************** susuri: JNB
sdepan,cek_kanan
RET cek_kanan: JNB
skanan,cek_kiri
JNB
skiri,belok_kanan
ACALL
maju
SJMP
susuri
cek_kiri: JNB
skiri,putar_kanan
ACALL
kiri
JNB
skanan,$
ACALL
stop
SJMP
susuri
belok_kanan: ACALL
kanan
JNB
skiri,$
ACALL
stop
SJMP
susuri
76
putar_kanan: ACALL
kanan
JNB
skiri,$
SETB
stopf
ACALL
stop
RET ;********************************************** stop: CLR
roda1
CLR
roda2
CLR
roda3
CLR
roda4
RET ;********************************************** kanan: SETB
roda1
CLR
roda2
CLR
roda3
SETB
roda4
RET
77
kiri: CLR
roda1
SETB
roda2
SETB
roda3
CLR
roda4
RET ;********************************************** maju: SETB
roda1
CLR
roda2
SETB
roda3
CLR
roda4
RET mundur: CLR
roda1
SETB
roda2
CLR
roda3
SETB
roda4
RET ;********************************************** buka_jepit: SETB
jepit1
78
CLR
jepit2
ACALL
delay05s
CLR
jepit1
RET jepit: CLR
jepit1
SETB
jepit2
ACALL
delay05s
CLR
jepit2
RET ;********************************************** lengan_naik: SETB
bahu1
CLR
bahu2
ACALL
delay1s
CLR
bahu1
RET lengan_turun: CLR
bahu1
SETB
bahu2
ACALL
delay1s
CLR
bahu2
79
RET ;********************************************** delay1s: MOV
loopD,#20
d50ms: CLR
TR1
MOV
TH1,#HIGH -50000
MOV
TL1,#LOW -50000
CLR
TF1
SETB
TR1
JNB
TF1,$
DJNZ
loopD,d50ms
RET ;********************************************** delay4s: MOV
loopD,#80
CLR
TR1
MOV
TH1,#HIGH -50000
MOV
TL1,#LOW -50000
CLR
TF1
SETB
TR1
d50:
80
JNB
TF1,$
DJNZ
loopD,d50
RET ;********************************************** delay05s: MOV
loopD,#10
d50ams: CLR
TR1
MOV
TH1,#HIGH -50000
MOV
TL1,#LOW -50000
CLR
TF1
SETB
TR1
JNB
TF1,$
DJNZ
loopD,d50ams
RET ;********************************************** ISR_servo: PUSH
PSW
PUSH
ACC
MOV
A,fase
CJNE
A,#1,CEK2
CEK1:
81
FASE2: CLR
TR0
MOV
TH0,#HIGH -2000
MOV
TL0,#LOW -2000
CLR
TF0
SETB
TR0
MOV
C,pservo
MOV
servo,C
MOV
FASE,#2
AJMP
end_ISR
CJNE
A,#2,fase1
CEK2:
FASE3: CLR
TR0
MOV
TH0,#HIGH -17500
MOV
TL0,#LOW -17500
CLR
TF0
SETB
TR0
CLR
servo
MOV
FASE,#3
AJMP
end_ISR
82
fase1: CLR
TR0
MOV
TH0,#HIGH -500
MOV
TL0,#LOW -500
CLR
TF0
SETB
TR0
SETB
servo
MOV
FASE,#1
end_ISR: POP
ACC
POP
PSW
RETI END
83