SISTEM PENGUKUR JARAK LINTASAN
PADA
MOBILE ROBOT
TUGAS AKHIR
Diajukan untuk memenuhi salah satu syarat Memperoleh gelar Sarjana Teknik
Program Studi Teknik elektro
Fakultas Teknik Universitas Sanata Dharma
Disusun oleh : Ig. Roni Arya Paningron
NIM : 995114037
JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA YOGYAKARTA
2007
TRAJECTORY DISTANCE MEASUREMENT SYSTEM
FOR MOBILE ROBOT
Final Project
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree
In Electrical Engineering
By
Ig. Roni Arya Paningron NIM : 995114037
ELECTRICAL ENGINEERING STUDY PROGRAM ELECTRICAL ENGINEERING DEPARTMENT
SANATA DHARMA UNIVERSITY YOGYAKARTA
2007
PERNYATAAN KEASLIAN KARYA
“
Ig. Roni Arya Paningron Saya menyatakan dengan sesungguhnya bahwa tugas akhir yang saya tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah“
Yogyakarta, 29 Januari 2007
HALAMAN PERSEMBAHAN
Skripsi ini dipersembahkan untuk:
¾ Tuhan Yesus Kristus yang telah memberikan jalan terang dan kedamaian..
¾ Kepada ibuku yang telah membiayaiku selama ini.
¾ Kakakku, adikku dan keponakanku yang selalu memberi semangat baru.
¾ Semua teman –teman yang menyertaiku sampai akhir.
¾ Bapak Djoko dan Bapak Martanto selaku pembimbing TA dan pembimbing angkatan
yang telah membantuku selama ini.
KATA PENGANTAR
P
P
uji syukur sebesar-besarnya penulis panjatkan kepadaTuhan Yesus Kristus,
atas jalan terang, damai dan cinta kasih-Nya yang dilimpahkan kepada penulis,
sehingga penulis bisa menyelesaikan skripsi ini dengan baik.
enulisan skripsi ini merupakan salah satu syarat untuk mengakhiri masa
studi penulis dan untuk memperoleh gelar sarjana teknik Jurusan Teknik Elektro
di Universitas Sanata Dharma. Penulisan skripsi ini didasarkan pada hasil-hasil
yang penulis peroleh mulai dari perancangan, pembuatan alat sampai pada
pengujian alat yang diajukan, juga kemungkinan pengembangannya.
Dengan selesainya Tugas Akhir yang merupakan salah satu syarat untuk
meraih gelar sarjana pada Program Studi Teknik Elektro Jurusan Teknik Elektro
Fakultas Teknik Universitas Sanata Dharma Yogyakarta, pada kesempatan ini
penulis mengucapkan terima kasih yang sebesar-besarnya kepada:
1. Bapak Ir.Greg.Heliarko, S.J.,S.S.,B.S.T.,M.A.,M.Sc. selaku Dekan, Bapak
Ir. Iswanjono, M.T selaku pembantu Dekan.
2. Bapak B. Djoko Untoro Suwarno, S.Si.,M.T. selaku dosen pembimbing
skripsi, dan Bapak Martanto, S.T., M.T. selaku dosen pembimbing
angkatan, yang telah banyak memberikan pengarahan, petunjuk serta
saran selama pengerjaan alat dan skripsi.
3. seluruh staff pengajar yang telah banyak memberikan bimbingan kepada
penulis selama menjadi mahasiswa.
4. Bapak Jito dan seluruh karyawan sekretariat Teknik Elektro Fakultas
Teknik Universitas Sanata Dharma.
5. Semua rekan – rekan angkatan 99.
Penulis menyadari bahwa dalam karya tulis ini masih terdapat banyak
kekurangan dan jauh dari sempurna. Oleh karena itu segala bentuk kritik dan
saran dan masukan yang membangun sangat penulis harapkan dari pembaca, demi
perbaikan dan kesempurnaan skripsi ini.
Terima kasih,
Yogyakarta, 29 Januari 2007
Penulis
SISTEM PENGUKUR JARAK LINTASAN
PADA
MOBILE ROBOT
IG.RONI ARYA PANINGRON 995114037
INTISARI
Semakin berkembangnya teknologi semakin memacu manusia untuk membuat segala sesuatu bekerja secara otomatis. Hampir disemua bidang kehidupan menggunakan otomatisasi, terutama dibidang perindustian atau sering disebut juga dengan otomatisasi industri. Pada alat ini ( sistem pengukur jarak lintasan pada mobile robot ) juga bertujuan untuk membuat suatu alat pengukur yang bergerak sendiri atau bergerak secara otomatis.
Sistem pengukuran alat ini berdasarkan pada masukan cacahan rotary
encoder, yang kemudian diproses oleh mikrokontroler untuk menentukan hasil
pengukurannya. Setelah itu baru ditampilkan melalui LCD. Proses otomatisasi alat ini adalah caranya bergerak untuk melalui suatu lintasan tanpa bantuan manusia sambil melakukan pengukuran. Penggerak robot ini adalah motor DC dengan pengendalinya adalah IC ULN2803, sebagai sensor dipakai fototransistor dan optokopler.
Robot ini belum bisa untuk mengukur dengan benar karena tidak tepatnya dalam penggunaan dan penempatan komponen
Kata kunci : Pengukur jarak, mobile robot
TRAJECTORY DISTANCE MEASUREMENT SYSTEM
FOR MOBILE ROBOT
IG. RONI ARYA PANINGRON 995114037
ABSTRACT
The development of technology progressively races the human being to make everything work automatically. Almost of all life area use automatization, especially in industry area or it is called industry automatization. In this appliance ( trajectory distance measurement system for mobile robot ) also aim to make a peripatetic grader it self or make move automatically.
Measurement system of this tool based on input counter of rotary encoder, later processed by microcontroller to determine result of its measurement. Afterward it is presented by LCD. This process of automatization is the way of move to trough an unassisted trajectory of human being at the same time do the measurement. This robot activator is DC motor with its controller, IC ULN2803, as censor of phototransistor and optocopler
This robot can not measure truly because it is not appropriate in using and component located yet.
Keyword : distance measurement, mobile robot.
DAFTAR ISI
HALAMAN JUDUL ... i
HALAMAN JUDUL ... ii
HALAMAN PERSETUJUAN ………. .... iii
HALAMAN PENGESAHAN. ……… .... iv
PERNYATAAN KEASLIAN ………. v
HALAMAN PERSEMBAHAN ……… . . vi
KATA PENGANTAR ……… .... . vii
INTISARI ……… ix
ABSTRACT ... x
DAFTAR ISI ... xi
DAFTAR GAMBAR ... xiv
DAFTAR TABEL ………xvi
BAB I PENDAHULUAN ... 1
1.1 Latar Belakang Masalah ... 1
1.2 Rumusan Masalah... 2
1.3 Batasan Masalah ... 2
1.4 Tujuan Penelitian ... 3
1.5 Manfaat Penelitian ... 3
BAB II DASAR TEORI ... 4
2.1 Mikrokontroler AT89S51 ……….………… 9
2.1.1 Memori ... 10
2.1.2 PortParalel ... 11
2.1.3 Port Serial1... 12
2.1.4 Timer dan Counter ... 13
2.1.5 Mode Pengalamatan ... 13
2.1.6 Sistem Interupsi ... 15
2.1.7 Karakteristik dari Osilator ... 16
2.1.8 Rangkaian reset ... 17
2.2 Modul LCD M1632 ... 18
2.3 IC ULN2803A ... 22
2.4 Diode Infra Merah ... 22
2.5 Fototransistor ... 23
2.6 Schmitt trigger ……… 24
2.7 Rotary Encoder ……… 24
2.8 Penggerak Robot ………. 25
BAB III PERANCANGAN ……….. 27
3.1 Perancangan Hardware ……….30
3.1.1 Rangkaian Sensor kurva dan belokan ……… 30
3.1.2 Rangkaian Penampil ………32
3.1.3 Rangkaian Penggerak Robot ……….. 33
3.1.4 Rangkaian Rotay Encoder ……… .. 33
3.2 Perancangan Software ... 36
BAB IV HASIL PENGAMATAN DAN PEMBAHASAN ... 46
4.1 Pengamatan dari percobaan ... 46
4.1.1. Percobaan dan pengamatan masukan dan keluaran schmit
Trigger... 46
4.1.2. percobaan dan pengamatan pada bagian pengukur jarak ( manual ) ... 47
4.1.3. Percobaan dan pengamatan pengukuran jarak dengan robot . 49 4.2. Pembahasn ... 52
4.2.1 Pembahasan pada schmit trigger... 52
4.2.2. Pembahasan pada pengukuran manual ... 52
4.2.3. Pembahasan hasil pengukuran robot... 53
4.3 Kesimpulan hasil pembahasan ... 53
BAB V KESIMPULAN dan SARAN ... 55
5.1. Kesimpulan ... 55
5.2 Saran ... 55
DAFTAR PUSTAKA ... 56
LAMPIRAN...56
DAFTAR GAMBAR
Gambar 2.1. Konstruksi robot ……….………..4
Gambar 2.2. Letak sensor kurva dan belokan ..……….5
Gambar 2.3. Cara pengukuran jarak yang ditempuh...7
Gambar 2.4. Kurva yang bisa dilalui …………. ….………..8
Gambar 2.5. Blok diagram dari mikrokontroler AT89S51 ………...9
Gambar 2.6. Struktur memori program ………...10
Gambar 2.7. Struktur memori data……….………..11
Gambar 2.8. Vektor interupsi………...15
Gambar 2.9. Rangkaian osilatot internal dan osilator external………16
Gambar 2.10. Rangkaian reset AT89S51………..….……….….17
Gambar 2.11. Diagram blok dari modul LCD……….…….19
Gambar 2.12. IC ULN2803A……….………. .22
Gambar 2.13. Rangkaian bias maju diode infra merah ...………23
Gambar 2.14. Rangkaian fototransistor sebagai saklar...……...……...23
Gambar 2.15. Karakteristik dan simbol schmit trigger……….24
Gambar 2.16. Bentuk rotary encoder dan piringan………..…………25
Gambar 2.17. Prinsip kerja motor DC………..26
Gambar 2.18. Bagian-bagian motor DC………..……….26
Gambar 3.1. Konstruksi Robot ………27
Gambar 3.2. letak sensor kurva dan belokan………29
Gambar 3.3. Arah gerakan roda depan dan roda belakang.…………..30
Gambar 3.4. Rangkaian sensor kurva,sensor belokan dan rotary encoder………..31
Gambar 3.5. Rangkaian antarmuka AT89S51 dengan modul M1632..………..32
Gambar 3.6. Rangkaian penggerak motor DC………..…...33
Gambar 3.7. Bentuk dari rotary encoder………...………....34
Gambar 3.8. Bentuk gelombang masukan schmit trigger ..…………...36
Gambar 3.9. Bentuk gelombang keluaran schmit trigger ……….36
Gambar 3.10. Diagram alir program utama……….………. 37
Gambar 3.11. Diagram alir subrutin tunda………..………..38
Gambar 3.12. Lebar gelombang keluaran terhadap waktu………39
Gambar 3.13. Memori yang digunakan untuk proses menghitung…... 40
Gambar 3.14. Diagram alir subrutin hitung……….. 42
Gambar 3.15. Isi memori internal dari hasil simulasi………... 42
Gambar 3.16. Data hasil perhitungan yang disimpam dialamat 41H-4AH………... 43
Gambar 3.17. Diagram alir subrutin tampil…..……… 44
Gambar 4.1 Pengukuran manual dengan bagian robot yang dibongkar………48
DAFTAR TABEL
Tabel 2.1. Fungsi alternatif port I/O ...……….….12
Tabel 2.2. Vektor interupsi ……….…..15
Table 2.3. Pin out dari modul LCD ………..19
Table 2.4. Perintah-perintah M1632 ……….…21
Table 3.1. Daftar penggunaan port I/O ……….…28
Table 3.2. Pengendalian motor DC ………...29
Table 3.3. Keterangan arah gerakan ……….37
Table 3.4. Data yang dikirim ke LCD ………..45
Tabel 4.1 Hasil pengukuran masukan dan keluaran schmit trigger………. 47
Tabel 4.2 Hasil pengukuran manual dengan didorong……….48
Table 4.3. Percobaan untuk lintasan lurus panjang 50 mm ………...50
Table 4.4. Percobaan untuk lintasan lurus panjang 100 mm ………....50
Table 4.5. Percobaan untuk lintasan lurus panjang 150 mm ……….…...51
Tabel 4.6. percobaan untuk lintasan melengkung panjang 165 mm ……….51
1.1. Latar Belakang
Semakin berkembangnya teknologi akan semakin mempermudah
kehidupan manusia dalam melakukan sesuatu hal. Untuk itu manusia dengan
berbagai cara terus berusaha agar teknologi bertambah maju. Hasil dari
perkembangan teknologi dapat dilihat dalam kehidupan sehari-hari, dengan
semakin banyaknya produk-produk yang dihasilkan.
Mikrokontroler merupakan salah satu bentuk nyata akan kemajuan
teknologi. Dengan mikrokontroler dapat dilakukan berbagai macam proses
pengendalian, antara lain pengendalian gerak.
Dalam kelompok mikrokontroler ada beberapa macam jenis. Kemampuan
masing-masing jenis mikrokontroler ini berbeda-beda, dilihat dari kecepatan,
kapasitas memori dan kemampuan yang lainnya. Dengan membandingkan
kemampuan masing-masing jenis mikrokontroler diharapkan pengaplikasiannya
dapat lebih tepat.
Kemudian untuk menerapkan teknologi dari mikrokontroler ini, dirancang
suatu alat sistem pengukur jarak lintasan pada mobile robot. Pembuatan robot ini
terinspirasi dari peralatan pengukur panjang jalan yang menggunakan roda yang
didorong, dimana peralatan ini membutuhkan bantuan pengguna (manusia) untuk
1.2 Perumusan Masalah
Sesuai dengan judulnya yaitu sistem pengukur jarak lintasan pada mobile
robot. Maka robot ini akan melakukan pengukuran panjang lintasan dari kurva
yang dilalui, pengukuran dianggap selesai bila kurva putus atau habis.
Pengukuran disini berdasarkan hasil dari cacahan rotary encoder, hasil
pengukuran dalam perancangan ini akan ditampilkan menggunakan LCD.
1.3 Batasan Masalah
Batasan masalah untuk robot pengukur panjanag kurva adalah sebagai
berikut:
1. Pengukuran dilakukan untuk kurva yang ujung-ujungnya tidak saling bertemu,
kurva yang tidak bercabang dan bukan kurva yang siku.
2. Alat hanya untuk kurva berwarna hitam di atas permukaan berwarna putih.
3. Lebar kurva 1 cm dengan sudut lengkungan 180º dan diameter lengkungan
30cm..
4. Pengukuran selesai bila kurva yang dilintasi putus atau habis.
5. Alat akan selalu menampilkan hasil pengukuran dari kurva yang ditempuh.
6. Hasil pengukuran ditampilkan dengan LCD sebanyak 10 digit.
7. Pengukuran maksimum adalah 1.000.000 mm.
1.4 Tujuan penelitian
Tujuan akhir dari penelitian ini adalah terbentuknya suatu robot yang
dapat melakukan proses pengukuran dan menampilkan hasil pengukuran panjang
lintasan dari suatu kurva.
1.5 Manfaat penelitian
1 Menguasai sistem pengendalian dengan menggunakan mikrokontroler.
2 Dapat mengaplikasikan LCD sebagai penampil.
3 Mempermudah pengukuran panjang lintasan bila diaplikasikan dalam
kehidupan sehari - hari di masyarakat dan industri.
4 Menambah pustaka bagi pengembangan ilmu pengetahuan.
BAB II DASAR TEORI
Pada bab ini akan dijelaskan dasar teori mengenai robot yaitu meliputi
konstruksi robot, cara kerja robot dan komponen-komponen dasar pendukung dari
robot.
Robot yang dimaksud mempunyai tiga roda sebagai tumpuan, terdiri dari
dua roda depan sebagai penggerak robot dan satu roda belakang. Roda belakang
berfungsi untuk tumpuan yang bisa bergerak terhadap poros sehingga bisa
mengikuti gerakan dari roda depan disamping itu juga sebagai penggerak untuk
rotary encoder. Untuk memperjelas lihat gambar 2.1
Dua roda depan robot digerakkan oleh dua buah motor DC yang
dikendalikan oleh sebuah mikrokontroler yaitu mikrokontroler AT89S51. Agar
dapat mengikuti kurva dipasang tiga buah sensor yaitu dua buah sensor untuk
mendeteksi belokan dan satu sensor untuk mendeteksi kurva seperti terlihat pada
gambar 2.2. ketiga sensor ini berada dibagian bawah diantara dua roda depan.
Masing-masing menggunakan fototransistor sebagai detektor dan diode infra
merah sebagai sumber.
Gambar 2.2 Letak sensor kurva dan belokan
Semua sensor ini termasuk rotary encoder akan memberikan masukan ke
mikrokontroler, untuk dapat melakukan proses pengendalian.
Cara kerja sensor kurva dan sensor belokan adalah:
Ketika ada kurva (warna hitam) maka cahaya yang dipancarkan diode
sebaliknya bila tidak ada kurva maka diode infra merah akan mengenai
permukaan berwarna putih sehingga cahaya akan dipantulkan dan akan mengenai
fototransistor ini menyebabkan fototransistor on.
Karena digunakan untuk mengukur panjang maka diperlukan suatu
penampil, penampil yang digunakan adalah modul LCD M1632. penampil ini
akan menampilkan data yang dikeluarkan oleh mikrokontroler. Penampil ini
nantinya akan ditempatkan dibagian atas sehingga mudah terlihat.
Pengukuran bermaksud membandingkan suatu besaran yang belum
diketahui dengan besaran lain yang besarnya sudah diketahui. Untuk keperluan ini
maka diperlukan suatu piranti (instrument) sebagai pembanding. Sebagai
pembanding digunakan sebuah rotary encoder yang sudah diketahui besar
kelilingnya.
Cara kerja pengukuran panjang kurva adalah saat robot bergerak maju
maka roda belakang sebagai pengikut akan berputar, ini menyebabkan rotary
encoder juga ikut berputar sehingga akan menghasilkan sejumlah cacahan seperti
terlihat pada gambar 2.3. Karena bersentuhan dengan kurva maka jarak lintasan
yang ditempuh sebagai berikut :
Keliling x jumlah cacah yang dihasilkan
Gambar 2.3 Cara pengukuran jarak yang ditempuh
Sebagai contoh diketahui rotary encoder mempunyai 36 cacah dengan diameter
18,95 mm, cacah yang dihasilkan adalah 100 cacah maka dapat dicari jarak yang
ditempuh sebagai berikut:
K = π x diameter
K = 3,14 x 18,95 mm
K = 59,50 mm
Karena hanya terdiri dari tiga roda yaitu dua roda depan sebagai
penggerak dan satu roda belakang sebagai pengikut maka robot ini tidak bisa
mundur dan melalui kurva yang siku maupun bercabang.
Gabar 2.4 Kurva yang bisa dilalui
Keliling x jumlah cacah yang dihasilkan
Jumlah cacah 1 putaran Jarak yang ditempuh =
59,50 mm x 100
36 Jarak yang ditempuh =
Selanjutnya akan dijelaskan mengenai komponen-komponen dasar
akan digunakan dalam pembuatan robot ini.
Kompo
.1 Mikrokontroler AT89S51
k ri mikrokontroler AT89S51 diperlihatkan pada gambar blok
Gambar 2.5 Blok diagram dari mikrokontroler AT89S51 pendukung dari robot yang
nen-komponen itu antara lain sebagai berikut :
2
Arsite tur da
2.1.1 Memori
Dalam mikrokontroler AT89S51 terdapat dua buah memori yaitu memori
kan untuk menyimpan program dan memori data
(RAM)
enggabungkan kedua memori program ini didapat konfigurasi penyimpanan
rogram yaitu semua program dapat disimpan di memori internal saja, di memori
ternal dan external, atau di memori external saja. Seperti terlihat digambar 2.6.
program (ROM) yang diguna
yang digunakan untuk menyimpan data. Memori program dan data ini
mempunyai struktur dan alamat yang berbeda.
1. Struktur memori program
Memori program terdiri dari memori internal dan memori external,
dimana semua memori ini dapat dipakai, tergantung dari penggunaan. Dengan
m
p
in
2. Struktur memori data
Di memori data terdapat dua memori yaitu memori internal dan memori
external. Dalam memori data internal dibagi menjadi memori 128 atas, memori
128 bawah dan register fungsi kusus (SFR) dimana SFR dan memori 128 atas ini
menempati tem at yang sama. Yang membedakan SFR dengan memori 128 atas
dalah cara pengaksesannya, untuk memori 128 atas dengan pengalamatan
ngsung sedang untuk SFR dengan pengalamatan tak langsung.
ralel yang p
a
la
Gambar 2.7 Struktur memori data
2.1.2 Port Paralel
Port paralel merupakan suatu akses untuk melakukan komunikasi dengan
peralatan luar baik dengan memberikan keluaran maupun dengan menerima
terbagi
Semua port pararel pada umumnya mempunyai fungsi yang sama yaitu
untuk input atau outp ai fungsi lain selain
sebagai I/ rt 1 dan 3. fungsi perlihatkan seperti tabel
2.1
Tabel 2.1 Fungsi alternatif port I/O
Pin
atas 4 port pararel yaitu port 0, port 1, port 2, dan port 3. Masing-masiang
port terdiri dari 8 bit sehingga untuk port 0 dapat dibagi menjadi P0.0, P0.1, P0.2,
P0.3, P0.4, P0.5, P0.6, P0.7 demikian juga untuk port 1, port 2, port 3.
ut, tetapi ada port yang mempuny
O yaitu po kusus yang lain di
Port Fungsi Alternatif
P1.5 MOSI (digunakan untuk In-System Programming) P1.6 MISO (digunakan untuk In-System Programming) P1.7 SCK (digunakan untuk In-System Programming)
t 0 dapat menyerap arus masuk sebesar 3,8 mA, sedangkan
untuk p
komunikasi secara serial, port serial ini
bersifat irim maupun menerima pada waktu Pin Port Fungsi Alternatif
P3.0 RXD (masukan port serial) P3.1 TXD (keluaran port serial) P3.2 INT0 (interupsi 0 eksternal) P3.3 INT1 (interupsi 1 eksternal) P3.4 T0 (input eksternal timer 0) P3.5 T1 (input eksternal timer 1)
P3.6 WR (memori data eksternal jalur tulis) P3.7 RD (memori data eksternal jalur baca) Untuk por
ort 1, port 2, port 3 dapat menyerap arus masuk sebesar 1,6 mA.
2.1.3 Port Serial
Port serial digunakan untuk
yang be
2.1.4 T
l detak dan hasil limpahan maka dapat digunakan untuk
mengat
f si sinyal detak dapat diketahui apakah pencacah bekerja
ounter. Jika pencacah bekerja dengan frekuensi tetap
maka p
r.
akses data atau operan ada beberapa macam cara rsamaan. Port serial digunakan dalam 4 mode kerja, untuk mengatur mode
kerjanya digunakan register kontrol.
imer dan Counter
Dasar dari timer dan counter adalah pencacah biner yang terhubung
langsung ke saluran data mikrokontroler, sehingga mikrokontroler dapat membaca
kondisi pencacah dan bisa merubah kondisi pencacah.
Seperti pada pencacah pada umumnya apabila sinyal detak (clock) yang
diberikan melebihi dari kapasitas pencacah, maka pencacah akan memberikan
limpahan (overflow). Limpahan ini kemudian disimpan dalam suatu register,
dengan mengatur sinya
ur timer dan counter. Sinyal detak yang diberikan ke pencacah dibedakan
menjadi dua yaitu sinyal detak dengan frekuensi tetap dan sinyal detak dengan
frekuensi yang dapat berubah. Sumber dari sinyal detak ini adalah dari frekuensi
kristal yang terpasang.
Dari rekuen
sebagai timer atau sebagai c
encacah bekerja sebagai timer, bila pencacah bekerja dengan frekuensi
yang berubah maka pencacah bekerja sebagai counte
2.1.5 Mode Pengalamatan Untuk meng
a. Mode pengalamatan segera (immediate addressing mode)
Cara pengalamatan ini dengan menggunakan suatu konstanta yang diawali
ara pengalamatan ini tidak menunjuk suatu alamat memori secara
egister untuk menunjukkan (menyimpan) suatu
t
pengalamatan ini menggunakan register serbaguna sebagai tempat
una
galamatan dari a sampai d digunakan untuk mengakses data dalam
emori data.
. Mode pengalamatan kode tidak langsung (code indirect addressing mode)
ta ini digunakan untuk mengakses data dalam memori
program
dengan tanda “ # “ .
b. Mode pengalamatan langsung (direct addressing mode)
Cara pengalamatan langsung adalah dengan menunjuk suatu alamat
memori dimana alamat memori ini berisi data yang dimaksud.
c. Mode pengalamatan tidak langsung (indirect addressing mode)
C
langsung, tetapi menggunakan r
alama memori, alamat memori inilah yang berisi data sebenarnya. Tanda “ @”
digunakan untuk menandai suatu alamat memori yang tersimpan dalam suatu
register.
d. Mode pengalamatan register
Mode
penyimpanan data sehingga kerjanya lebih cepat dan praktis, register serbag
adalah register R0 sampai R7.
Mode pen
m
e
Mode pengalama
2.1.6 Sistem Interupsi
Ada 5 sumber interupsi yaitu dua interupsi ekternal, dua interupsi timer
dan sebuah interupsi por mempunyai alamat RLI
(Rutin Layanan Interupsi) atau vektor interupsi. Vektor interupsi dapat dilihat
pada tabel 2.2
Tabel 2.2 Tabel vektor interupsi
Atau dapat juga digambarkan seperti gambar 2.8 berikut
S Vector ess
t serial, masing-masing interupsi
Interrupt ource Addr
External 0 IE0 0003H
Timer 0 TF0 000BH
External 1 IE1 0013H
Timer 1 TF1 001BH
Serial port R1 or T1 0023H
Seperti pada gambar 2.8 maka bila suatu program menggunakan suatu
interupsi disarankan untuk meloncati alamat interupsi sampai alamat 2Fh,
keprogram utama alamat 30h.
Untuk mengaktifkan interupsi-interupsi ini digunakan register IE
(Interrupt Enable) yang ada di SFR. Semua interupsi bisa diaktifkan secara
bersamaan dengan bit IE.7 (EA) atau sendiri-sendiri tergantung keperluan
Masing-masing interupsi dapat diatur tingkat prioritasnya dengan
mengatur bit-bit pada register IP (Interrupt Priority). Register IP hanya mengenal
h dan prioritas tinggi, prioritas tinggi dapat
diinteru
emb
rangkaian osilator yaitu internal osilator dan osilator. Rangkaian osilator
diperlihatkan seperti pada gambar 2.9.
Gambar 2.9 Rangkaian Osilator Internal dan osilator external
Catatan : C1,C2 = 30 pF ± 10 pF untuk penggunaan dengan Kristal
= 40 pF ± 10 pF untuk penggunaan dengan Keramik Resonator dua prioritas yaitu prioriotas renda
psi oleh prioritas yang lebih tinggi dan tidak sebaliknya.
2.1.7 Karakteristik Dari Osilator
Osilator dipakai untuk m erikan masukkan sinyal detak, ada dua
external
XTAL2
XTAL1
GND NC
EXTERNAL OSCILLATOR
SIGNAL C2
C1
XTAL2
XTAL1
2.1.8
89S51 reset terjadi saat adanya
logika 1 selam
ka
jadi reset.
esin adalah :
aktu1 siklus = 12 / fosc
minimal 2µdt (2 siklus mesin). tegangan masukan logika 1 memiliki batas bawah Rangkaian reset
Reset dapat dilakukan secara manual (dengan tombol S1) maupun otomatis
saat power diaktifkan. Menurut lembar data AT
a 2 siklus mesin pada pin 9 (RST).
Secara manual, penekanan saklar (push-on button) akan langsung
menghubungkan pin RST dengan Vcc (pin RST akan berlogika 1) dan ji
penekanan tersebut lamanya lebih dari 2 siklus mesin maka akan ter
Bila digunakan kristal 12MHz maka waktu 1 siklus m
w = 12 /12.000.000 = 1 μdt
VCC 5 V
Gambar 2.10 Rangkaian reset AT89C51
Cara kerja rangkaian power-on reset adalah saat sumber daya diaktifkan,
karena muatan kapasitor masih kosong (VC = 0), maka pin RST akan terhubung
langsung dengan Vcc (logika 1). Sejalan dengan pertambahan waktu, kapasitor
akan diisi muatannya yang mengakibatkan VC bertambah besar. Yang perlu
diperhatikan adalah nilai R0 dan C3 agar VR dianggap berlogika 1 selama
C 1 3 uF
100K Ohm S1
RST
R
9
0
VIH(min) = 0,7 Vcc. Dengan memasukkan rumus tegangan VR didapatkan
perhitungan :
VR = VCC– VC
VR ≥ 0,7 Vcc
VC≤ 0,3 Vcc
Vcc (1 – e –t / RC ) ≤ 0,3 Vcc
(1 – e – 2µ / RC ) ≤ 0,3
e – 2µ / RC ≥ 0,7
- 2 • 10-6 / RC ≥ ln (0,7)
RC ≥ 2 • 10-6 / 0,356
RC ≥ 5,618 • 10-6
Dengan demikian konstanta waktu RC haruslah lebih besar dari 5,618µdt.
Dengan menggunakan kapasitor C3 = 1 µF dan resistor R0 = 100 KΩ.didapat
konstanta waktu RC 0,1dt atau 100mdt.
Setelah power-on kapasitor akan terus terisi hingga tegangan VC sama
dengan Vcc dengan polaritas yang berlawanan, yang berarti pin RST akan
berlogika 0 (VR = 0) dan selesailah proses reset.
2.2 Modul LCD M1632
M1632 adalah modul LCD dengan tampilan 16 x 2 baris, modul ini
dilengkapi dengan mikrokontroler yang digunakan untuk mengendalikan LCD.
Memory), CGRAM (Character Generator Random Access Memory), dan
DDRAM (Display Data Random Access Memory). Lihat gambar 2.11
Gambar 2.11 Diagram blok dari modul LCD
Tabel 2.3 Pin out dari modul LCD
Nomer Pin Nama Pin Keterangan
1 Vcc + 5V
2 GND 0V
3 Vee Tegangan kontras LCD
4 RS Register select, 0 = register perintah , 1= register data 5 R/W 1 = read, 0 = write
6 E Enable clock LCD
7 DB0 Data bus 0
8 DB1 Data bus 1
9 DB2 Data bus 2
10 DB3 Data bus 3
11 DB4 Data bus 4
12 DB5 Data bus 5
13 DB6 Dsts bus 6
14 DB7 Data bus 7
15 Anoda Tegangan positif back light 16 Katoda Tegangan negatif back light
a. DDRAM
b. CGRAM
CGRAM merupakan memori untuk menggambarkan pola sebuah karakter,
dimana bentuk karakter dapat diubah-ubah sesuai keinginan. Karena bersifat
sementara data (pola karakter) akan hilang bila sumber tegangan dimatikan.
c. CGROM
CGROM merupakan memori untuk menggambarkan pola sebuah karakter
dimana pola karakter tersebut sudah ditentukan secara permanen sehingga tidak
bisa diubah. Karena bersifat permanen maka data tidak akan hilang bila sumber
tegangan dimatikan.
d. Register
Ada dua register yang aksesnya diatur dengan menggunakan kaki RS. Saat
RS berlogika 0 maka akan mengakses register perintah, kebalikannya saat RS
berlogika 1 maka akan mengakses register data.
1. Register perintah
Memori untuk menyimpan perintah-perintah dari mikrokontroler pada
saat penulisan data atau pembacaan data. Penulisan data ke register perintah
bertujuan untuk mengatur tampilan LCD. Penbacan data dari register perintah
bertujuan untuk melihat status busy dari LCD atau membaca address counter.
2. Register data
Memori untuk menyimpan data dari mikrokontroler pada saat penulisan
data atau pembacaan data. Penulisan data ke register data bertujuan untuk
mengirim data yang akan ditampilkan ke LCD. Pembacaan data dari register data
Untuk dapat membuat modul M1632 mengeluarkan tampilan maka harus
diberi masukan berupa perintah, perintah-perintah ini dikirimkan melalui bus data.
Perintah–perintah untuk mengeset modul M1632 dipelihatkan pada tabel 2.4
berikut:
Tabel 2.4 Perintah-perintah M1632
Perintah D7 D6 D5 D4 D3 D2 D1 D0 Keterangan
Hapus
display
0 0 0 0 0 0 0 1 Hapus display dan DDAM
Posisi awal 0 0 0 0 0 0 1 x Set alamat DDRAM di 0 Set mode 0 0 0 0 0 1 I/D s Atur arah pengeseran
cursor dan display Display
on/off
0 0 0 0 1 D C B Atur display (D) on/off,
cursor (C) on/off, blingking (B)
Geser cursor /display
0 0 0 1 S/C R/L X x Geser cursor atau disply
tanpa merubah alamat DDRAM
Set fungsi 0 0 1 DL N F X x Atur panjang data, jumlah baris yang tampil dan font karakter
Set alamat CGRAM
0 1 ACG ACG ACG ACG ACG ACG Data dapat dibaca atau ditulis setelah alamat diatur
Set alamat DDRAM
1 ADD ADD ADD ADD ADD ADD ADD Data dapat dibaca atau ditulis setelah alamat diatur
X = diabaikan
I/D 1 = increment, 0 = decrement
S 0 = diplay tidak geser
S/C 1 = display shift, 0 = geser cursor
R/L 1 = geser kiri, 0 = geser kanan
DL 1 = 8 bit, 0 = 4 bit
N 1 = 2 baris , 0 = 1 baris
F 1 = 5x10, 0 = 5x8
C 0 = cursor off, 1 = cursor on
B 0 = bliking off, 1 = blingking on
2.3 IC ULN2803A
IC ULN2803A merupakan array dari 8 transistor darlington. IC ini
mempunyai 8 input sebagai basisnya dan 8 output sebagai kolektornya seperti
terlihat pada gambar 2.12. kemampuan masing-masing outputnya 500mA.
Gambar 2.12 IC ULN2803A
2.4 Diode Infra Merah
Diode terbuat dari bahan semi konduktor, bahan semi konduktor dibagi
menjadi dua yaitu bahan tipe N bahan yang banyak mengandung elektron dan
bahan tipe P bahan yang banyak mengandung proton. Kedua tipe bahan ini
Diode infra merah merupakan diode yang dapat memancarkan cahaya
infra merah. Diode infra merah bekerja pada bias maju seperti diperlihatkan pada
gambar 2.13
Gambar 2.13 Rangkaian bias maju diode infra merah
Untuk membatasi arus pada diode digunakan resistor.
Vcc = Vf + ( If x R )
RD = Vcc - Vf
R =
If
2.5 Fototransistor
Fototransistor juga terbuat dari bahan semi penghantar. fototransistor
sebagai penghantar (on) bila terkena cahaya dan sebagai isolator (Off) bila tidak
terkena cahaya. Fototransistor disini digunakan sebagai saklar, sebagai saklar Vce
≈ 0 untuk keadaan saturasi dan Vce = Vcc untuk keadaan cutoff. Rangkaiannya
diperlihatkan seperti pada gambar 2.14
Q1 R
Vo VCC
Vcc = Vce + ( Ic x R )
Ic = ( Vcc – Vce ) / R Æ Vce ≈ 0 Ic = Vcc / R
2.6 Schmitt trigger
Cara kerja Schmitt trigger adalah ketika ada tegangan masukan yang
melebihi batas level tegangan tinggi maka keluarannya akan berlogika 0, dan bila
ada masukan yang lebih rendah dari batas level tegangan rendah maka keluaran
akan berlogika 1, sedangkan masukan diantara batas level tegangan tinggi dan
batas level tegangan rendah diabaikan.
-*
a. Karakteristik schmitt trigger b. Simbol schmitt trigger
Gambar 2.15 Karakteristik dan simbol schmitt trigger
3ccde2.7 Rotary Encoder
Rotary encoder adalah suatu alat yang mengubah gerakan menjadi kode
digital. Dalam penerapannya rotary encoder digunakan untuk mengetahui posisi
atau jarak suatu objek, penempatan dari rotary encoder selalu bersentuhan dengan
Rotary encoder merupakan suatu piringan (disk) dengan kode tertentu
yang dilengkapi dengan sumber dan detektor. Detektor dan sumber ditempatkan
dalam satu tempat yaitu optokopler. Cara kerjanya adalah saat piringan berputar
kode (cacah) di piringan akan meneruskan dan menghalangi sumber cahaya
sampai ke detektor ini menyebabkan optokopler menjadi on dan off.
Piringan berkode
sumber
detektor
Gambar 2.16 Bentuk rotary encoder danpiringan
2.9 Penggerak Robot
Penggerak robot digunakan motor DC, bagian-bagian motor DC terdiri
dari lilitan, magnet permanen, sikat dan cicin belah (komutator). Prinsip kerja
motor DC berdasarkan medan magnet yang ditimbulkan oleh lilitan saat dialiri
arus listrik. Ketika lilitan dialiri arus listrik dan ada garis gaya magnet B yang
tegak lurus I maka akan menghasilkan gaya F yang tegak lurus dengan I dan B.
a. Hubungan antara I, B dan F b. Arus listrik dalam garis gaya magnet
c. Gerakan yang dihasilkan oleh gaya F
Gambar 2.17 Prinsip kerja motor DC
Cara kerja motor DC
Ketika sikat terhubung ke sumber tegangan, lilitan akan menghasilkan
medan magnet yang akan saling tolak menolak dengan medan magnet pada
magnet permanen. Ini akan menyebabkan rotor berputar, karena komutator
merupakan bagian terpisah (cicin belah) yang ikut berputar, posisinya akan
membalik polaritas tegangan pada lilitan sehingga arah arus dan putaran tetap
sama.
BAB III PERANCANGAN
Perancangan ini dimaksudkan agar dapat diketahui secara lebih detail
mengenai konstruksi robot (hubungan dan fungsi letaknya), rangkaian dan nilai
komponen sampai pengendalian dengan program.
Gambar 3.1 konstruksi robot
Seperti yang telah dijelaskan sebelumnya, robot yang dimaksud
mempunyai tiga roda sebagai tumpuan, dua roda depan dan satu roda belakang.
Roda depan berfungsi untuk penggerak dan roda belakang sebagai pengikut
gerakan serta sebagai pencacah. Pencacah terpasang bersentuhan dengan garis
digerakkan oleh dua buah motor DC, pengendalian gerak motor DC berdasarkan
masukan dari sensor ke port I/O mikrokontroler. Penggunaan port I/O
mikrokontroler diperlihatkan seperti pada tabel 3.1
Tabel 3.1 Daftar penggunaan port I/O
No Nama
port
Fungsi No Nama port Fungsi
1 Port 1.1 Sensor 1 10 Port 0.0 D0 (LCD)
2 Port 1.2 Sensor 2 11 Port 0.1 D1 (LCD)
3 Port 1.3 Sensor 3 12 Port 0.2 D2 (LCD)
4 Port 1.4 Motor 1 13 Port 0.3 D3 (LCD)
5 Port 1.5 Motor 2 14 Port 0.4 D4 (LCD)
6 Port 3.2 Pencacah 15 Port 0.5 D5 (LCD)
7 Port 2.0 E (LCD) 16 Port 0.6 D6 (LCD)
8 Port 2.1 R/W (LCD) 17 Port 0.7 D7 (LCD)
9 Port 2.2 RS (LCD)
Sensor kurva dan belokan terletak dibagian bawah robot diantara dua roda
depan, sensor menggunakan diode infra merah dan fototransistor, posisi sensor
Gambar 3.2 Letak sensor kurva dan belokan
Sensor kurva ditempatkan di tengah agar pada waktu berbelok posisi
sensor tetap berada di kurva karena untuk mendeteksi keberadaan suatu kurva.
Sedang sensor belokan terletak dibagian samping sensor kurva, ini dimaksudkan
agar kurva selalu terdeteksi terlebih dulu sebelum sensor kurva.
Dengan melihat letak posisi sensor, maka dibuat pengendalian motor DC
seperti pada tabel 3.2
Tabel 3.2 Pengendalian motor DC
No Port 1.4 Port 1.5 Motor 1 Motor 2 Arah gerakan
1 0 0 off off Diam
2 1 0 on off Kanan
3 0 1 off on Kiri
Gerakan dari roda belakang terhadap poros selalu mengikuti gerakan dari
roda depan seperti terlihat pada gambar 3.3, sehingga tidak dimungkinkan robot
bergerak mundur.
Gambar 3.3 Arah gerakan roda depan dan roda belakang
3.1 Perancangan Hardware
Dengan mengetahui komponen-komponen yang digunakan maka dapat
dibuat perancangan rangkaiannya seperti berikut :
3.1.1 Rangkaian Sensor kurva dan belokan
Untuk sensor kurva dan belokan digunakan fototransistor dan diode infra
merah. Pada sensor kurva dan belokan ada tiga posisi yang harus dideteksi. maka
digunakan tiga buah fototransistor dan tiga buah diode infra merah. Gambar
74LS14
S.Rotery encoder
1
Gambar 3.4 Rangkaian sensor kurva, sensor belokan dan rotary encoder
Perhitungan nilai komponen
Bila diode infra merah ( IR1 – IR3) mempunyai Vf = 1,7 V dan If maksimum =
50mA agar aman dibuat If = 20mA sehingga nilai R untuk R1, R3, R5 adalah
R = (Vcc – Vf) / If
R = (4,8 – 1,7) / 20 •10 ֿ³
R = 155 Ω
Bila fototransistor off maka arus akan mengalir ke Schmitt trigger, jika arus
masuk IiH maksimum adalah 0.1 mA maka dapat dicari nilai resistor untuk R2,
R = Vcc / IiH
R = 4,8 / 0,1 •10 ֿ³
R = 48000 Ω
Bila fototransistor (Q1-Q3) terkena cahaya maka fototransistor akan on, karena
sebagai saklar Vce ≈ 0V, jika fototransistor mempunyai Ic(on) maksimum =
16mA dengan nilai R untuk R2, R4, R6 sama dengan 48kΩ maka arus Ic adalah
Ic = Vcc / R
Ic = 4,8 / 48000
Ic = 0,1mA
Icini tidak melebihi dari Icmaksimum fototransistor.
3.1.2 Rangkaian Penampil
Penampil menggunakan LCD yang tergabung dalam modul M1632, dalam
perancangan ini M1632 dioperasikan dalam mode antarmuka 8 bit, dengan
demikian semua bus data dari D0 sampai D7 dipakai semua. Gambar
rangkaiannya seperti gambar 3.5
3.1.3 Rangkaian Penggerak Robot
Penggerak yang digunakan adalah motor DC, untuk dapat menggerakkan
motor DC dibutuhkan arus yang cukup besar. Untuk memenuhi arus motor
digunakan IC ULN2803A. Gambar rangkaian penggerak motor DC diperlihatkan
seperti gambar 3.6
Gambar 3.6 Rangkaian penggerak motor DC
IC ULN2803A untuk dapat bekerja (on) memerlukan tegangan masukan Vi(on)
sebesar 2,4V, sedangkan mikrokontroler mempuyai tegangan keluaran minimum
VoH sebesar 2,4V, sehingga dengan mengirimkan logika 1 dari mikrokontroler IC
ULN2803A dapat bekerja.
3.1.4 Rangkaian Rotary Encoder
Untuk mendapatkan pengukuran yang baik maka digunakan rotary
encoder yang sudah ada dengan jumlah cacah 36 cacah dan memiliki diameter
18,95 mm.
keliling rotary encoder (K) adalah :
K = π x diameter
K = 3,14 x 18,95 mm
K = 59,50 mm
Dengan mengetahui keliling dari rotary encoder maka dapat dicari resolusi (R)
yaitu :
K
Jumlah cacah R =
59,50 mm
36 R =
R = 1,653 mm / cacah ( dengan ketelitian 3 angka dibelakang koma )
Gambar 3.7 Bentuk dari rotary encoder
Seperti terlihat pada gambar 3.4 karena optokopler sebagai sensor pada
rotary encoder, maka saat rotary encoder berputar bagian cacah akan
menghalangi dan meneruskan cahaya ke fototransistor sehingga menyebabkan
keluarannya hanya 0 dan Vcc maka keluaran dari fototransistor digunakan
sebagai masukan pada Schmitt trigger.
Rangkaian sensor rotary encoder digunakan optokopler dengan rangkaian
seperti gambar 3.4 maka perhitungan nilai komponen sebagai berikut:
Bila diode infra merah optokopler mempunyai If maksimum = 50mA, Vf = 1,7V
agar aman dibuat If = 20mA sehingga nilai R7 adalah
R = (Vcc – Vf) / If
R = (4,8 – 1,7) / 20 •10 ֿ³
R = 155 Ω
Bila fototransistor optokopler off maka arus akan mengalir ke Schmitt trigger jika
arus masuk IiH maksimum adalah 0.1 mA maka dapat dicari nilai R8 yaitu :
R = Vcc / IiH
R = 4,8 / 0,1 •10 ֿ³
R = 48000 Ω
Bila fototransistor optokopler terkena cahaya maka fototransistor akan on, karena
sebagai saklar Vce ≈ 0V, jika fototransistor optokopler mempunyai Ic(on)
maksimum = 20mA dengan nilai R8 sama dengan 48kΩ maka arus Ic adalah
Ic = Vcc / R
Ic = 4,8 / 48000
Ic = 0,1mA
Dengan menggantikan cacahan dengan suatu sinyal generator (seperti pada
lampiran) didapatkan bentuk gelombang masukan dan keluaran schmitt trigger
sebagai berikut :
Gambar 3.8 Bentuk gelombang masukan schmitt trigger
Gambar 3.9 Bentuk gelombang keluaran schmitt trigger
Keluaran dari schmitt trigger ini akan akan menjadi masukan
mikrokontroler sebagai cacah.
3.2 Perancangan Software
Program merupakan bagian paling penting dari robot karena pengendalian
robot tergantung dari program tersebut. Agar lebih mudah memahami jalannya
Gambar 3.10 Diagram alir program utama
Inisialisasi LCD Inisialisasi program
Ada garis
Ada belokan kiri
Ada belokan kanan
Belok kanan
Lurus
Belok kiri
Hitung
Tampil hasil Start
Y Y
Y
T
T
T
Keterangan diagram alir untuk kurva dibuat dalam tabel berikut:
Table 3. 3 Keterangan arah gerakan
Gerakan dari motor DC kekiri, kekanan dan lurus dibatasi oleh ton dan
toff, lebar waktu ton dan toff dibatasi oleh tunda. Subrutin dari tunda adalah
sebagai berikut :
R7 sama dengan 0 Kurangi R7 dengan 1
R6 sama dengan 0
RET
T
T R6 diisi 0AH
TUNDA
Kurangi R6 dengan 1
Kurangi R5 dengan 1
R5 sama dengan 0 R5 diisi 0AH
R7 diisi 64H
T Y
Y Y
Dengan nilai yang ada maka waktu tundanya adalah sebagai berikut :
... dikerjakan siklus
MOV R5,#10 1x 1
AKHIR : MOV R6,#10 10x 1 ULANG : MOV R7,#100 10x10 = 100x 1 DJNZ R7,$ 100x10x10 = 10000x 2 DJNZ R6,ULANG 10x10 = 100x 2
DJNZ R5,AKHIR 10x 2
...
Perulangan pertama = 10.000 x 2 = 20.000, perulangan kedua = 100 x 3 =
300 perulangan ketiga = 10 x 3 = 30, sehingga total siklus = 20.000 + 300 + 30 +
1 = 20.331. digunakan frekuensi kristal 12MHz sehingga waktu 1 siklus adalah
1μdt dan waktu tunda menjadi 20,331 μdt. dengan mengatur nilai dari R5, R6, R7
akan didapatkan waktu tunda yang berbeda, dengan waktu tunda yang berbeda
dapat diatur ton dan toff.
Gambar 3.12 Lebar gelombang keluaran terhadap waktu
Vrata-rata = (ton / ( ton + toff)) x V
Dengan mengatur ton dan toff dapat diatur kecepatan motor.
3.2.1 Subrutin untuk menghitung panjang lintasan
Seperti pada sebelumnya rotary encoder mempunyai resolusi 1,653
cacah. Sebagai contoh jika ada 100 cacah maka 1,653mm akan dijumlahkan
sebanyak 100 kali sehingga hasilnya adalah 165,300mm.
Karena tampilan 10 digit dalam mm, maka digunakan 10 buah
RAM serbaguna yaitu RAM pada alamat memori 41H sampai 4AH dan register A
dan B untuk menjumlahkan. Pertama digit 1(41H) dipindah ke A, B diisi 3 (dari
1,653) kemudian A dan B ditambahkan, bila hasil A>10 maka A-10 hasil A
disimpan ke digit 1(41H), jika A<10 hasil A langsung disimpan di Digit 1(41H).
Selanjutnya digit (alamat memori) dinaikkan dengan menambahkan R1 dengan
1(INC R1) kemudian digit berikutnya dipindah ke A (apabila hasil sebelumnya
A>10 maka A+1) dan B diisi 5 (dari 1,653), proses ini berlangsung terus sampai
digit 10(4AH) dan nilai B dari 1,653 terakhir adalah 1. isi data alamat memori
41H – 49H maksimum adalah 9H dan alamat memori 4AH adalah 1H, memori.
yang digunakan terlihat sebagai berikut :
9
DIGIT 10 8 7 6 5 4 3 2 1
ALAMAT 4AH 49H 48H 47H 46H 45H 44H 43H 42H 41H
A
B
Gambar 3.13 . Memori yang digunakan untuk proses menghitung
A = A - 10 DIGIT 8 = A A = DIGIT 9 A = A + 1
DIGIT 8 = A A > 9
Y
Y
T B
A > 9
A = A - 10 DIGIT 9 = A A = DIGIT 10 A = A + 1 DIGIT 10 = A
DIGIT 9 = A
CACAH = CACAH - 1
CACAH = 0
RET
A C T
T
Y X
X
Gambar 3.14 Diagram alir subrutin hitung
Seperti contoh sebelumnya bila disimulasikan dengan program TS Control
Emulator dengan jumlah cacah 100 cacah didapat hasil data yang disimpan dalam
alamat memori 41H – 4AH adalah sebagai berikut:
Gambar 3.16 Data hasil perhitungan yang disimpan di alamat 41H – 4AH
Hasilnya adalah 0000165300 (10 digit) dan bila ditampilkan dengan tiga
angka dibelakang koma dalam milimeter adalah 0.000.165,300mm hasil ini
sesuai dengan hasil perhitungan sebelumnya yaitu 165,3mm
3.2.2 Subrutin untuk menampilkan hasil
Program untuk menampilkan hasil berdasarkan data yang ada pada
alamat memori 41H sampai 4AH. Data pada alamat memori 41H – 4AH (digit 1 –
10) dibandingkan dengan suatu nilai dari 0 – 9 apabila hasilnya sama dengan nilai
tersebut maka akan dikirimkan data ke LCD yang sesuai dengan nilai.
Pembandingan dimulai dari alamat memori 41H (digit 1) setelah selesai
pembandingan maka alamat memori akan dinaikkan menjadi 42H(digit 2) dan
datanya dibandingkan, demikian seterusnya sampai alamat memori 4AH(digit 10).
Diagram alir dari program penampil diperlihatkan seperti pada gambar diagram
alir 3.17.
41H 42H
43H 44H
45H 46H
47H 48H
9
DIGIT 10 8 7 6 5 4 3 2 1
00H 00H 00H 00H 01H 06H 05H 03H 00H 00H
A = 0 Kirim tanda koma
Kirim tanda titik
Kirim tanda titik
T
R2 digunakan untuk membatasi jumlah digit dan untuk menentukan tanda
titik dan tanda koma. Dengan melihat tabel karakter pada LCD dibuat tabel data
untuk masukan LCD dengan tampilan LCD yang sesuai dengan nilai pembanding
sebagai berikut:
Tabel 3.4 Data yang dikirim ke LCD
Nilai Data Tampilan LCD
0 30H 0
1 31H 1
2 32H 2
3 33H 3
4 34H 4
5 35H 5
6 36H 6
7 37H 7
8 38H 8
BAB IV
HASIL PENGAMATAN DAN PEMBAHASAN
Robot ini berfungsi untuk mengukur panjang lintasan maka untuk
membuktikan apakah hasilnya sesuai atau tidak, diperlukan beberapa percobaan,
pengamatan dan pembahasan (analisa).
4.1. Pengamatan dari percobaan.
Setelah rangkaian robot selesai diadakan beberapa percobaan yang
kemudian hasil pengamatan dari percobaan dibuat menjadi tabel, percobaan dan
pengamatannya adalah sebagai berikut.
4.1.1. Percobaan dan pengamatan masukan dan keluaran schmit trigger. Pada pecobaan ini robot menggunakan empat buah baterai 1,2V dengan
harapan tegangannya bisa sama dengan pada waktu perancangan yaitu 4,8V.
Setelah diukur menggunakan multimeter didapat tegangan 4,5V. Dengan
memberikan alas pada sensor garis warna hitam dan putih, serta memberikan
penghalang pada sensor cacah., kemudian diakan pengukuran pada masukan dan
keluaran schmit trigger. Hasil pengamatan pada percobaan ini ditabelkan pada
Tabel 4.1 hasil pengukuran masukan dan keluran schmit trigger
Vcc Garis Schmit trigger Sensor 1 Sensor 2 Senor 3
Vin 0,2V 0,3V 0,3V
4,5V Putih
Vout 4,15V 4,15V 4,15V
Vin 1,95V 1,6V 1,5V
4,5V Hitam
Vout 0,2V 0,2V 0,2V
Vcc Penghalang Schmit trigger Sensor cacah
Vin 3,3V 4,5V Ada penghalang
Vout 0,2V
Vin 0,2V 4,5V Tidak ada penghalang
Vout 4,1V
4.1.2 Percobaan dan pengamatan pada bagian pengukuran jarak (manual). Percobaan dan pengamatan ini dimaksudkan untuk menguji apakah jarak
yang diukur sudah sesuai atau belum, maka bagian robot pada bagian pengukur
jarak dibongkar sehingga rotary encoder langsung menyentuh bagian yang
diukur. Dan rotary encodernya diberi tanda supaya pada waktu pengukuran
manual (rotary encoder didorong langsung kebagian yang ingin diukur) dapat
diketahui batas pengukurannya, serperti pada gambar 4.1. Pada percobaan dan
encoder) dan 119mm. Hasil pengamatan pada percobaan ini diperlihatkan pada
tabel 4.2. seperti barikut :
Gambar 4.1. Pengukuran manual dengan bagian robot yang dibongkar
Table 4.2 Hasil pengukuran manual dengan didorong
Panjang garis Pengukuran manual Selisih
59,5mm 59,508mm 0,008
59,5mm 59,508mm 0,008
59,5mm 59,508mm 0,008
59,5mm 59,508mm 0,008
59,5mm 59,508mm 0,008
59,5mm 59,508mm 0,008
59,5mm 57,855mm 1,645
Total selisih 1,701
Panjang garis Panjanng pengukuran Selisih
119mm 120,669mm 1,669
119mm 119,016mm 0,016
119mm 119,016mm 0,016
119mm 119,016mm 0,016
119mm 119,016mm 0,016
119mm 119,016mm 0,016
119mm 120,669mm 1,669
119mm 119,016mm 0,016
Total selisih 3,434
4.1.3 Percobaan dan pengamatan pengukuran jarak dengan robot.
Percobaan dan pengamatan ini dimaksudkan untuk mengetahui hasil dari
pengukuran robot (alat) sudah sesuai atau belum. Pada percobaan ini robot (alat)
digunakan untuk mengukur beberapa garis yaitu dengan panjang dan bentuik yang
berbeda sehingga dapat dianalisa hasil dari robot (alat) ini apakah sudah sesuai
atau masih ada kekurangan. Hasil pengamatan dari percobaan ini ditabelkan
Tabel 4.3. Percobaan untuk lintasan lurus panjang 50 mm
No Panjang hasil Selisih
1 50 mm 109,098 mm 59,098 mm
2 50 mm 115,710 mm 65,710 mm
3 50 mm 107,445 mm 57,445 mm
4 50 mm 123,975 mm 73,975 mm
5 50 mm 104,139 mm 54,139 mm
6 50 mm 97,527 mm 47,527 mm
7 50 mm 115,710 mm 65,710 mm
8 50 mm 125,628 mm 75,628 mm
Tabel 4.4. Percobaan untuk lintasan lurus panjang 100 mm
No Panjang hasil Selisih
1 100 mm 127,281 mm 27,281 mm
2 100 mm 186,789 mm 86,789 mm
3 100 mm 229,767 mm 129,767 mm
4 100 mm 239,685 mm 139,685 mm
5 100 mm 251,256 mm 151,256 mm
6 100 mm 234,726 mm 134,726 mm
7 100 mm 216,543 mm 116,543 mm
8 100 mm 208,278 mm 108,278 mm
Tabel 4.5. Percobaan 1 untuk lintasan lurus panjang 150 mm
No Panjang hasil Selish
1 150 mm 319,030 mm 169,030 mm
2 150 mm 770,298 mm 620,298 mm
3 150 mm 342,171 mm 192,171 mm
4 150 mm 347,130 mm 197,130 mm
5 150 mm 933,945 mm 783,945 mm
6 150 mm 314,070 mm 164,070 mm
7 150 mm 333,906 mm 183,906 mm
8 150 mm 305,805 mm 155,805 mm
Tabel 4.6. Percobaan untuk lintasan melengkung panjang 165 mm
No Panjang Hasil Selisih
1 165 mm 370,272 mm 205,272 mm
2 165 mm 378,537 mm 213,537 mm
3 165 mm 332,253 mm 167,253 mm
4 165 mm 662,853 mm 497,853 mm
5 165 mm 557,061 mm 392,061 mm
6 165 mm 325,641 mm 160,641 mm
7 165 mm 289,275 mm 124,275 mm
4.2. Pembahasan
Pembahasan dimaksudkan untuk menganalisa data – data yang sudah
didapat pada waktu pengamatan, pembahasan pada percobaan sebelumnya adalah
sebaga berikut :
4.2.1 Pembahasan pada schmit trigger
Seperti yang sudah terlihat pada tabel 4.1 semua sensor memberikan
respon terhadap lintasan (warna hitam dan putih) untuk sensor garis dan terhadap
halangan untuk sensor cacah. Keluaran dari schmit trigger yang menjadi masukan
ke mikrokontroler sudah sesuai dengan logika 1 dan 0 ( 0,2V untuk logika 0 dan
4,1V untuk logika 1 ). Sehingga mikrokontroler sudah bisa menggunakannya
untuk proses pengontrolan
4.2.2 Pembahasan pada pengukuran manual
Dari hasil pengukuran pada tabel 4.2 dapat dicari rata – rata selisih dan
prosentase selisihnya sebagai berikut :
untuk garis dengan panjang 59,5mm
total selisih
jumlah percobaan
1,701
8
Prosentase selisih = x 100% Rata –rata selisih Rata – rata selisih = = 0,212
Rata – rata selisih =
0,212
59,5
x 100% = 0,356% Prosentase selisih =
Unyuk garis dengan panjang 119mm
3,434
8
0,429
119
Rata – rata selisih = = 0,429
Prosentase selisih = x 100% = 0,36%
Dari hasil perhitungan prosentase selisih pengukuran pajang kedua garis
tersebut hasilnya dibawah 1% sangat mendekati hasil yang sebenarnya, ini
menandakan bahwa proses perhitungan pengukuran jarak dengan cara manual
sudah cukup baik.
4.2.3 Pembahasan hasil pengukuran robot
Dari hasil pengamatan pada tabel 4.3, 4.4, 4.5, 4.6, terlihat bahwa robot ini
sudah bisa melalui lintasan lurus maupun lintasan melengkung. Hanya saja masih
belum bisa melakukan pengukuran dengan benar karena hasilnya belum bisa
sesuai dengan nilai yang sebenarnya.
4.3 Kesimpulan hasil pembahasan
Dari hasil pengamatan percobaan dan pembahasan hasil percobaan dapat
disimpulkan bahwa :
1. Robot ini belum ber fungsi dengan benar karena masih mempunyai
2. Kesalahan pengukuran pada robot ini tidak bersumber dari masukan
sensor–sensornya, karena semua sensornya dapat bekerja.
3. kesalahan pengukuran ini juga tidak bersumber pada cara perhitungan
pengambilan cacah untuk menentukan hasil pengukuran, karena pada
percobaan pengukuran manual hasilnya hampir sesuai dengan hasil yang
sesungguhnya.
4. kesalahan ini disebabkan oleh konstruksi robot yang kurang baik sehingga
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan.
1. Robot ini belum bisa melakukan pengukuran dengan benar.
2. Selisih hasil pengukuran alat ini sangat besar sehingga ketepatannya tidak
bisa dipertanggungjawabkan.
3. Semakin panjang lintasan yang ditempuh maka selisihnya akan semakin
besar.
5.2 Saran.
Karena dalam perancangan asumsinya gerakan robot hanya maju dan
gerakannya bisa halus maka hanya digunakan satu buah sensor tetapi didapat hasil
yang kurang bagus. untuk lebih baiknya disarankan menggunakan dua buah
sensor, karena gerakkan robot yang on-off menyebabkan gerakkan maju mundur
( kurang stabil ) dan gerakan mundur ini bisa terhitung bila menggunakan satu
buah sensor. Sehingga bila menggunakan dua buah sensor diharapkan gerakan
mundurnya tidak terhitung dan hasilnyapun akan lebih baik.
Disamping memakai dua buah sensor juga disarankan memakai motor
steper dengan resolusi yang kecil, ini akan menghasilkan gerakan yang halus dan
Edisi 2”, penerbit Gava Media, 2004.
Warsito s, “ Teknik Ukur Dan Piranti Ukur Elektronik”, penerbit PT Alek Media
Komputindo Jakarta,1988.
Delta T. Horn, “Teknik Merancang Dengan IC”, alih bahasa oleh tim exercise UI,
penerbit PT Alex Media Komputindo Jakarta, 1989.
H.R Everett, “Sensor For Mobile Robot Theory And Application”, Peter, Ltd,
1995
Robert N. Bateson, “Introduction To Control System Technology, Fourth
Edition”.
Joseph L. Jones, Anita M. Flyn, Bruce A. Seiger, “Mobile Robots Inspiration To
Implementation, Second Edition”, AK Pete, Ltd, 1999.
1 (WR)P3.6 (RD) P3.7
XTAL2 XTAL1 GND GND (A8) P2.0 (A9) P2.1
(A10) P2.2 (A11) P2.3 (A12) P2.4 P1.4 P1.3 P1.2 P1.1 (T2 EX) P1.0 (T2) NC VCC P0.0 (AD0) P0.1 (AD1) P0.2 (AD2) P0.3 (AD3)
• Three-level Program Memory Lock
• 128 x 8-bit Internal RAM
• 32 Programmable I/O Lines
• Two 16-bit Timer/Counters
• Six Interrupt Sources
• Programmable Serial Channel
• Low-power Idle and Power-down Modes
Description
The AT89C51 is a low-power, high-performance CMOS 8-bit microcomputer with 4K bytes of Flash programmable and erasable read only memory (PEROM). The device is manufactured using Atmel’s high-density nonvolatile memory technology and is compatible with the industry-standard MCS-51 instruction set and pinout. The on-chip Flash allows the program memory to be reprogrammed in-system or by a conven-tional nonvolatile memory programmer. By combining a versatile 8-bit CPU with Flash on a monolithic chip, the Atmel AT89C51 is a powerful microcomputer which provides a highly-flexible and cost-effective solution to many embedded control applications.
PDIP (WR)P3.6 (RD) P3.7
XTAL2 XTAL1 GND
NC
AT89C51
2
PORT 2 DRIVERS
PORT 2
INTERRUPT, SERIAL PORT, AND TIMER BLOCKS
STACK
PORT 3 DRIVERS
P3.0 - P3.7 PORT 1
LATCH
PORT 1 DRIVERS
P1.0 - P1.7
3
bytes of Flash, 128 bytes of RAM, 32 I/O lines, two 16-bit timer/counters, a five vector two-level interrupt architecture, a full duplex serial port, on-chip oscillator and clock cir-cuitry. In addition, the AT89C51 is designed with static logic for operation down to zero frequency and supports two software selectable power saving modes. The Idle Mode stops the CPU while allowing the RAM, timer/counters, serial port and interrupt system to continue functioning. The Power-down Mode saves the RAM contents but freezes the oscillator disabling all other chip functions until the next hardware reset.
Port 0 is an 8-bit open-drain bi-directional I/O port. As an output port, each pin can sink eight TTL inputs. When 1s are written to port 0 pins, the pins can be used as high-impedance inputs.
Port 0 may also be configured to be the multiplexed low-order address/data bus during accesses to external pro-gram and data memory. In this mode P0 has internal pullups.
Port 0 also receives the code bytes during Flash program-ming, and outputs the code bytes during program verification. External pullups are required during program verification.
Port 1
Port 1 is an 8-bit bi-directional I/O port with internal pullups. The Port 1 output buffers can sink/source four TTL inputs. When 1s are written to Port 1 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 1 pins that are externally being pulled low will source current (IIL) because of the internal pullups.
Port 1 also receives the low-order address bytes during Flash programming and verification.
Port 2
Port 2 is an 8-bit bi-directional I/O port with internal pullups. The Port 2 output buffers can sink/source four TTL inputs. When 1s are written to Port 2 pins they are pulled high by the internal pullups and can be used as inputs. As inputs,
current (IIL) because of the internal pullups.
Port 2 emits the high-order address byte during fetches from external program memory and during accesses to external data memory that use 16-bit addresses (MOVX @ DPTR). In this application, it uses strong internal pullups when emitting 1s. During accesses to external data mem-ory that use 8-bit addresses (MOVX @ RI), Port 2 emits the contents of the P2 Special Function Register.
Port 2 also receives the high-order address bits and some control signals during Flash programming and verification.
Port 3
Port 3 is an 8-bit bi-directional I/O port with internal pullups. The Port 3 output buffers can sink/source four TTL inputs. When 1s are written to Port 3 pins they are pulled high by the internal pullups and can be used as inputs. As inputs, Port 3 pins that are externally being pulled low will source current (IIL) because of the pullups.
Port 3 also serves the functions of various special features of the AT89C51 as listed below:
Port 3 also receives some control signals for Flash pro-gramming and verification.
RST
Reset input. A high on this pin for two machine cycles while the oscillator is running resets the device.
ALE/PROG
Address Latch Enable output pulse for latching the low byte of the address during accesses to external memory. This pin is also the program pulse input (PROG) during Flash programming.
In normal operation ALE is emitted at a constant rate of 1/6 the oscillator frequency, and may be used for external tim-ing or clocktim-ing purposes. Note, however, that one ALE
Port Pin Alternate Functions
P3.0 RXD (serial input port)
P3.1 TXD (serial output port)
P3.2 INT0 (external interrupt 0)
P3.3 INT1 (external interrupt 1)
P3.4 T0 (timer 0 external input)
P3.5 T1 (timer 1 external input)
P3.6 WR (external data memory write strobe)
AT89C51
4
weakly pulled high. Setting the ALE-disable bit has no effect if the microcontroller is in external execution mode.
PSEN
Program Store Enable is the read strobe to external pro-gram memory.
When the AT89C51 is executing code from external pro-gram memory, PSEN is activated twice each machine cycle, except that two PSEN activations are skipped during each access to external data memory.
EA/VPP
External Access Enable. EA must be strapped to GND in order to enable the device to fetch code from external pro-gram memory locations starting at 0000H up to FFFFH. Note, however, that if lock bit 1 is programmed, EA will be internally latched on reset.
EA should be strapped to VC C for internal program executions.
This pin also receives the 12-volt programming enable volt-age (VPP) during Flash programming, for parts that require 12-volt VPP.
XTAL1
Input to the inverting oscillator amplifier and input to the internal clock operating circuit.
XTAL2
Output from the inverting oscillator amplifier.
Oscillator Characteristics
XTAL1 and XTAL2 are the input and output, respectively, of an inverting amplifier which can be configured for use as an on-chip oscillator, as shown in Figure 1. Either a quartz crystal or ceramic resonator may be used. To drive the device from an external clock source, XTAL2 should be left
observed.
Idle Mode
In idle mode, the CPU puts itself to sleep while all the on-chip peripherals remain active. The mode is invoked by software. The content of the on-chip RAM and all the spe-cial functions registers remain unchanged during this mode. The idle mode can be terminated by any enabled interrupt or by a hardware reset.
It should be noted that when idle is terminated by a hard ware reset, the device normally resumes program execu-tion, from where it left off, up to two machine cycles before the internal reset algorithm takes control. On-chip hardware inhibits access to internal RAM in this event, but access to the port pins is not inhibited. To eliminate the possibility of an unexpected write to a port pin when Idle is terminated by reset, the instruction following the one that invokes Idle should not be one that writes to a port pin or to external memory.
Figure 1. Oscillator Connections
Note: C1, C2 = 30 pF ± 10 pF for Crystals
Status of External Pins During Idle and Power-down Modes
Mode Program Memory ALE PSEN PORT0 PORT1 PORT2 PORT3
Idle Internal 1 1 Data Data Data Data
Idle External 1 1 Float Data Address Data
Power-down Internal 0 0 Data Data Data Data