ROBOT BERKAKI KAWAT PENDETEKSI HALANGAN
TUGAS AKHIR
Diajukan untuk memenuhi salah satu syarat
memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Teknik Universitas Sanata Dharma
Disusun oleh :
Oskar Ika Adi Nugroho
995114001
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
OBJECT DETECTING ROBOT WITH WIRE LEG
FINAL PROJECT
Presented as Partial Fulfillment of the Requirements
To Obtain the Sarjana Teknik Degree
In Electrical Engineering
By :
Oskar Ika Adi Nugroho
995114001
ELECTRICAL ENGINEERING STUDY PROGRAM
ELECTRICAL ENGINEERING DEPARTMENT
HALAMAN MOTTO DAN PERSEMBAHAN
!
Dengan segala kerendahan hati dan kejujuran, secara khusus Tugas Akhir ini kupersembahkan kepada ;
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa 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,19 Desember 2006
Penulis
INTISARI
Akhir akhir ini robot telah menarik perhatian banyak orang. Di dunia industri
hiburan, robot telah berkembang dalam berbagai bentuk. Salah satu diantaranya adalah
yang memiliki bentuk dan tingkah laku seperti serangga. Robot jenis ini biasanya
mempunyai desain yang kreatif dan imajinatif. Tentu saja ditunjang dengan kemampuan
yang sesuai. Berdasarkan hal ini penulis ingin membuat sebuah robot yang memiliki
bentuk yang unik. Robot jenis ini juga memiliki kemampuan untuk mengetahui jarak dan
menghindari halangan yang diperlukan oleh sebuah robot yang bekerja pada lintasan
yang sering terganggu.
Robot berkaki kawat pendeteksi jarak berbasis AT89S51 dilengkapi dengan
detektor infra merah sebagai pendeteksi jarak dan halangan. Sebagai penerima pantulan
sinar infra merah digunakan sebuah modul infra merah GP1U52X . Jarak halangan dapat
diketahui dengan mengukur kekuatan cahaya infra merah yang dipantulkan oleh
halangan. Hasil pengukuran jarak halangan digunakan oleh mikrokontroler untuk
menentukan arah gerakan yang dikerjakan oleh robot. Motor DC digunakan untuk
menggerakkan robot, untuk penggerak beban motor DC digunakan IC L293D.
Hasil penelitian menunjukkan robot berkaki kawat mampu untuk mendeteksi
jarak obyek yang ada di depannya berdasarkan kekuatan cahaya infra merah (jarak dekat ,
menengah dan jauh). Dari hasil deteksi tersebut robot berkaki kawat mampu melakukan
gerakan untuk menghindari obyek. Benda yang digunakan untuk acuan pendeteksian
jarak tidak boleh memiliki permukaan yang licin / datar.
ABSTRACT
In recent years, robots have captured the interest of more and more people. In the
entertainment industry , robot has been developed in various style. One of it is robot that
have shape and behavior like insect. Based on that reason, writer wants to make a robot
that has a unique form. This kind of robot have a creative and imaginative design , of
course it is supported by appropriate capability. This robot also have ability to calculate
distance and avoid an obstacle that required by robot which works in frequently
disturbed path.
Range Detector Wire Leg Robot Base on AT89S51 use infrared detector as
distance and obstacle detector. As infrared receiver used an infrared module GP1U52X .
The range between the obstacle and robot is gotten by measuring the strength of the
reflected burst of infrared light. The result of distance measurement is used by
microcontroller to decide direction of robot movement. DC motor used to move the robot
for DC motor driver used L293D IC’s.
The research shows that wire leg robot can detect obstacle distance in front of it
based on strength of the infrared reflected burst (near , medium and far distance) . From
that detection result, wire leg robot can make movement to avoid the obstacle. Object
used as an distance detector reference must not have slippery surface / flat.
KATA PENGANTAR
Puji dan syukur pada Tuhan Yesus Kristus atas segala curahan berkat kasih dan
pemeliharaanNya kepada penulis, sehingga penulis dapat menyelesaikan tugas akhir ini.
Banyak rintangan yang menjadi pergumulan bagi penulis selama proses penyusunan
tugas akhir ini, tetapi kasih setia Tuhan Yesus Kristus selalu ada untuk menopang
keteguhan hati penulis setiap kali penulis merasa jenuh dan hampir putus asa, sehingga
penulis selalu memperoleh semangat yang baru untuk terus berusaha menyelesaikan
tugas akhir ini.
Tugas akhir ini disusun untuk memenuhi salah satu syarat untuk meraih gelar
sarjana pada Program Studi Teknik Elektro Jurusan Teknik Elektro Fakultas Teknik
Universitas Sanata Dharma Yogyakarta, dengan judul ROBOT BERKAKI KAWAT
PENDETEKSI HALANGAN (OBJECT DETECTING ROBOT WITH WIRE LEG).
Penulis menyadari bahwa penyusunan skripsi ini tidak lepas dari bantuan, dan
dukungan dari berbagai pihak. Untuk itu penulis mengucapkan terima kasih kepada :
1.
Allah Bapa ,Allah Putera dan Allah Roh Kudus, terima kasih atas kesempatan
terindah yang telah Kau berikan sehingga penulis bisa mengenal dan memilikiMu
dalam hidup ini, semuanya itu menjadikan hidup menjadi sangat berarti karena
iman yang Kau taruh dalamku.
3.
Seluruh dosen Teknik Elektro Universitas Sanata Dharma yang telah membagikan
ilmunya selama penulis menuntut ilmu di Teknik Elektro Universitas Sanata
Dharma ini.
4.
Buat Pak Jito, Mas Broto dan Mas Muji. Makasih buat bantuan yang telah kalian
berikan.
5.
Bapak, Ibu dan adikku yang telah banyak mendukung dalam penyelesaian tugas
ini baik dukungan moril maupun dukungan materil yang tidak dapat penulis balas.
6.
Mas Amir dan Mbak Wahyuni yang telah menampung saya untuk menyelesaikan
TA ini.
7.
Rekan-rekanku : Frans Hendri Semuel, A. Heri Cahyo Nugroho, Lukas, Yohanes
Dwi Dian, I Nyoman Sumierawan Sengkubowono, Cuaca Arifin Samudra, Folim,
Lip Kian, Ingnatius Rahmat, Ragil , Giri , P2PA dan dan teman-teman TE 99
yang segudang, yang tidak bisa disebut kan satu persatu. Makasih semuanya
kalian telah banyak memberikan kesan yang mendalam selama kita berada di kota
yogya.
8.
Rekan rekan kerja di MASDHA FM ( Gepenk , Yoga , Norman , Bowo , Alex ,
Eli , Sastro , Susi , Ninuk , Michael , Ella , Emi dll. )
9.
Rekan rekan kerja di INDIRA MULTIMEDIA ( Jaynudin , Cendy , Marwin ,
Koko , Dany , PG , Karjo , Simbah , Eric , Vicki , Ninot ).
Akhirnya penulis mengharapkan agar tugas akhir ini dapat bermanfaat Bagi
semua pihak yang berkepentingan. Penulis menyadari bahwa skripsi ini masih jauh dari
sempurna, namun penulis berharap sekiranya ada sedikit manfaat dari skripsi ini yang
bisa diambil bagi pihak-pihak yang memerlukannya.
Terima kasih,
Yogyakarta, 19 Desember 2006
DAFTAR ISI
HALAMAN JUDUL ...i
LEMBAR PERSETUJUAN PEMBIMBING……….iii
HALAMAN PENGESAHAN ... iv
HALAMAN MOTTO DAN PERSEMBAHAN ... v
HALAMAN PERNYATAAN KEASLIAN KARYA... vi
INTISARI...vii
ABSTRACT ...viii
KATA PENGANTAR ...ix
DAFTAR ISI ...xii
DAFTAR GAMBAR ... xv
DAFTAR TABEL ... xvii
BAB I Pendahuluan ... 1
1.1 Judul... 1
1.2 Latar Belakang Masalah ... 1
1.3 Tujuan ... 2
1.4 Manfaat ... 2
1.5 Batasan Masalah... 2
BAB II Dasar Teori... 5
2.1Sejarah singkat robot ... 5
2.2Diagram kotak robot berkaki kawat ... 6
2.3Sinar Infra Merah ... 7
2.4Sensor ... 8
2.4.1 Receiver IrD ... 8
2.4.2 LED IR ... 10
2.4.3 Pensaklaran... 13
2.5Driver Motor DC ... 13
2.6Motor DC ... 14
2.7Mikrokontroller AT89S51 ... 15
2.7.1 Organisasi Memori AT89S51... 16
2.7.2 Port Masukan / Keluaran... 17
2.7.3 Pemrograman Mikrokontroler ... 19
2.7.4 Sistem Interupsi ... 21
2.7.5 Osilator On-Chip... 22
BAB III Perancangan Perangkat Keras dan Perangkat Lunak ... 23
3.1Perangkat Keras Robot ... 23
3.1.1 Mekanik Robot ... 25
3.1.2 Bagian Elektronis Robot ... 25
3.1.2.1 Pemancar infra merah... 26
3.1.2.2 Unit mikrokontroler AT89S51 , Saklar dan L293D... 27
3.1.2.3 Tombol Reset... 29
3.2.1 Gerakan Robot ... 30
3.2.1.1 Bergerak maju... 32
3.2.1.2 Bergerak belok kiri... 34
3.2.1.3 Bergerak belok kanan... 37
3.2.1.4 Bergerak mundur kanan ... 40
3.2.1.5 Bergerak mundur kiri... 42
3.2.2 Pendeteksian Halangan ... 45
BAB IV Hasil pengamatan dan pembahasan ... 54
4.1Konstruksi robot jadi ... 54
4.2Analisa Gerak... 54
4.2.1 Percobaan 1 ... 55
4.2.2 Percobaan 2 ... 56
4.2.3 Percobaan 3 ... 58
4.2.4 Percobaan 4 ... 59
4.2.5 Percobaan 5 ... 61
4.3Hasil pengamatan terhadap pemancar infra merah ... 62
4.4Permasalahan yang muncul... 65
BAB V Kesimpulan dan saran ... 68
5.1Kesimpulan ... 68
DAFTAR GAMBAR
Gambar 2.1 Cuplikan adegan R.U.R. (Rossum's Universal Robots) karya Karel
Capek ... 5
Gambar 2.2 Diagram Kotak Robot... 6
Gambar 2.3 Hukum pemantulan gelombang... 8
Gambar 2.4 Pemantulan baur ... 8
Gambar 2.5 Schematic dari Receiver IrD ... 9
Gambar 2.6 Pengaruh frekuensi dan relative sensitivity terhadap jarak... 10
Gambar 2.7 Rangkaian LED Inframerah ... 12
Gambar 2.8 Pensaklaran... 13
Gambar 2.9 Gaya yang Timbul Akibat Arus yang Mengalir pada Konduktor Tegak Lurus dengan MedanMagnet...14
Gambar 2.10 Osilator On-Chip ...22
Gambar 3.1 Mekanik robot dilihat dari prespektif ... 23
Gambar 3.2 Mekanik robot dilihat dari samping... 24
Gambar 3.3 Mekanik robot dilihat dari atas... 24
Gambar 3.4 Rangkaian penggerak LED infra merah ... 26
Gambar 3.5 Rangkaian Mikrokontroler, saklar dan L293D ... 28
Gambar 3.6 Konfigurasi tombol reset... 29
Gambar 3.7 Gambar flowchart gerak maju... 35
Gambar 3.8 Gambar flowchart gerak belok kiri... 38
Gambar 3.10 Gambar flowchart gerak mundur kanan ... 44
Gambar 3.11 Gambar flowchart gerak mudur kiri ... 46
Gambar 3.12 Flowchart Program Penghasil Gelombang kotak 25 KHz ... 47
Gambar 3.13 Flowchart Program Penghasil Gelombang Kotak 32 KHz... 48
Gambar 3.14 Gambar flowchart subrutin deteksi jarak dekat... 51
Gambar 3.15 Gambar flowchart subrutin deteksi jarak menengah ... 52
Gambar 3.16 Gambar flowchart subrutin pengambilan keputusan ... 53
Gambar 4.1 Gambar konstruksi robot dari atas... 54
Gambar 4.2 Gambar konstruksi robot dari samping... 54
Gambar 4.3 Kondisi robot jika kotak diletakkan ±50cm ... 55
Gambar 4.4 Kondisi jika kotak diletakkan di sebelah kanan depan robot pada jarak >> 30cm... 56
Gambar 4.5 Kondisi jika kotak diletakkan di sebelah kiri depan robot pada jarak >> 30cm ... 58
Gambar 4.6 Kondisi jika kotak diletakkan di sebelah kanan depan robot pada jarak << 5cm... 60
Gambar 4.7 Kondisi jika kotak diletakkan di sebelah kiri depan robot pada jarak << 5cm ... 61
Gambar 4.8 Bentuk sinyal infra merah 25KHz ... 62
DAFTAR TABEL
Tabel 2.1 Fungsi alternative port 1. ... 9
Tabel 2.2 Fungsi alternative port 3... 18
Tabel 3.1 Hubungan port 2 dengan M1 ... 26
Tabel 3.2 Hubungan port 2 dengan M2 ... 27
Tabel 3.3 Hubungan port 2 dengan M3 ... 28
BAB I
PENDAHULUAN
1.1Judul
ROBOT BERKAKI KAWAT PENDETEKSI HALANGAN (OBJECT DETECTING ROBOT WITH WIRE LEG )
1.2Latar Belakang Masalah
Saat ini perkembangan teknologi robotika semakin pesat. Aneka macam bentuk dan fungsi robot semakin berkembang sesuai tututan dan kebutuhan jaman. Salah satu bentuk robot yang menarik untuk diamati adalah mobile robot.
Saat ini bentuk mobile robot masih banyak yang menggunakan roda sebagai penggerak. Robot - robot yang menggunakan kaki kawat untuk bergerak jarang ditemui, karena kemampuannya yang terbatas untuk menghadapi aneka macam permukaan medan, misalnya tangga.
Alasan seperti tersebut mungkin menyebabkan kebanyakan robot menggunakan roda. Tetapi bagaimanapun juga manusia memiliki keinginan alami untuk mengapresiasi robot yang menggunakan kaki kawat, robot jenis ini lebih menyerupai mahluk hidup seperti serangga.
1.3. Tujuan
Tujuan dari pembuatan robot berkaki kawat pendeteksi jarak berbasis AT89S51 ini adalah dapat membuat robot kaki kawat yang bergerak mendeteksi jarak dan bereaksi menghindari halangan, dengan gerakan maju, belok kanan, belok kiri, mundur kanan dan mundur kiri.
1.4. Manfaat
Manfaat yang dapat diperoleh dalam perancangan robot berkaki kawat ini adalah :
1. Menambah pustaka tentang robotika.
2. Sistem pendeteksian jarak ini dapat diterapkan lebih lanjut sebagai sistem keamanan pada alat transportasi, yaitu mobil. Pada mobil dapat digunakan untuk mendeteksi penghalang , sehingga resiko terjadinya kecelakaan dapat dikurangi.
3. Robot ini bisa menjadi semacam alat permainan pendidikan elektronika.
1.5. Batasan Masalah
Adapun batasan masalahnya adalah :
1. Robot dapat melakukan gerakan maju, belok kanan, belok kiri, mundur kanan dan mundur kiri.
dari 10 cm sampai 35 cm). Adapun jarak jauh didefinisikan lebih dari 35 cm.
3. Benda yang digunakan untuk acuan pendeteksian jarak tidak boleh memiliki permukaan yang licin atau datar.
1.6. HIPOTESIS
Robot diharapkan mampu mendeteksi halangan yang ada di hadapannya. Sensor infra merah dipilih karena keakuratannya untuk mendeteksi benda pada jarak yang dekat, dibandingkan gelombang
ultrasonic atau gelombang radio.
Dari hasil pendeteksian jarak tersebut robot dapat melakukan gerakan maju, belok kanan, belok kiri, mundur kanan dan mundur kiri. Mengunakan frekuensi 25Khz untuk menditeksi jarak dekat (0 cm sampai 10 cm), dan 32Khz untuk menditeksi jarak menengah (lebih dari 10 cm sampai 35 cm). Frekuensi ini didapatkan dari hasil percobaan.
1.7. Metodologi Penelitian
1. Menentukan metode yang akan digunakan di dalam perancangan. 2. Mengumpulkan dan mempelajari referensi yang digunakan di dalam
perancangan.
3. Membuat rancangan mobile robot berdasarkan data yang telah diperoleh. 4. Membuat robot.
5. Pengambilan data.
6. Menganalisa data yang diperoleh.
1.8. Sistematika penulisan
BAB 1 Membahas tentang latar belakang, tujuan, manfaat penelitian, batasan masalah dan metodologi penelitian.
BAB II Membahas dasar teori. untuk memberikan gambaran mengenai fungsi, cara kerja dan karakteristik dari komponen – komponen yang digunakan.
BAB III Membahas mengenai perancangan hardware, software dan mekanik.
BAB ΙΙ DASAR TEORI
2.1 Sejarah singkat robot
Kata robot berasal dari bahasa Czech; Robota, yang berarti buruh kasar atau pelayan. Kata ini pertama kali dperkenalkan oleh Karel Capek lewat teaternya R.U.R. (Rossum's Universal Robots). Karel Capek pertama kali menulis R.U.R di tahun 1920 dan ditayangkan pertama kali di Praha di tahun 1921. Cuplikan adegan teater tersebut bisa dilihat di gambar 2.1.
Gambar 2.1 Cuplikan adegan R.U.R. (Rossum's Universal
Robots) karya Karel Capek
Dunia robot mengalami perkembangan yang pesat akhir akhir ini, adapun perkembangan robot sudah dimulai dari dulu :
1. 270 SM – Ctesibus, seorang insinyur Yunani membuat organ
dan jam air dengan komponen yang dapat dipindahkan.
5. 1940 – Robot bicara dari Westinghouse's Electro and Sparko
menghibur ribuan orang di World's Fair New York. Ini menandai pertama kalinya motor motor listrik digunakan untuk menggerakkan robot.
6. 1956 - John McCarthy pertama kali mengenalkan istilah
Artificial Intelligence.
7. 1973 - Universitas Waseda Tokyo, dibawah pimpinan Ichiro
Kato, mengembangkan WABOT-1, Humanoid berjalan pertama.
8. 1976 – Viking 1 diperlengkapi dengan lengan robot yang
dikembangkan Universitas Stanford.
9. 1979 - The Stanford Cart dibuat oleh Hans Moravec. Diklaim
sebagai kendaraan otonom pertama yang dikontrol computer. 10. 1994 – Robot enam kaki CMU (Carnegie-Mellon University)
berhasil mendaki gunung Spurr di Alaska.
11. 1997 - Mars Pathfinder mendarat di planet Mars membawa
robot Sojourner Rover.
12. 1997 – Honda mengembangkan P3 humanoid robot.
2.2 Diagram Kotak Robot Berkaki Kawat
Diagram kotak robot diperlihatkan pada Gambar 2.2. Di dalam perancangan robot dibagi dalam 4 bagian utama yaitu sensor (pemancar infra merah dan penerima infra merah), driver motor dc, actuator, dan kontroler.
Mikrokontroler (AT89S51) merupakan otak dari sistem secara keseluruhan. Terdapat 4 tugas utama dari mikrokontroler:
1. Sebagai osilator, fungsi dari osilator adalah untuk menghasilkan frekuensi dari hasil percobaan, yaitu 25Khz untuk menditeksi jarak dekat, dan 32Khz untuk menditeksi jarak menengah. Kedua frekuensi ini digunakan untuk mendeteksi jarak dengan cara memancarkannya secara bergantian. Penjelasan lebih lanjut mengenai sistem pendeteksian jarak akan dijelaskan pada sub bab selanjutnya.
2. Memberikan perintah kepada transmitter untuk mengirim sinyal-sinyal yang dihasilkan kontroler.
3. Mengambil informasi dari receiver dan mengolahnya.
4. Mengambil keputusan dan memberikan perintah ke pada actuator (motor dc).
2.3Sinar infra merah
Sinar infra merah meliputi daerah frekuensi 0.003−4*1014Hz
mengatakan bahwa sudut pantul (Qr) sama dengan sudut datang (Qa) untuk
semua panjang gelombang (gambar 2.3).
a r Q
Q = ... (2.1)
gambar 2.3Hukum pemantulan gelombang
2.4 Sensor
2.4.1. Receiver IrD
Sinar infra merah yang dipancarkan jika mengenai benda yang ada didepannya akan dipantulkan kembali kearah Receiver IrD. Agar sinar dapat kembali kearah modul infra merah maka benda tersebut haruslah benda yang memiliki bidang yang tidak datar. Hal ini dilakukan agar diperoleh sebuah pemantulan baur, yaitu pemantulan yang terjadi jika berkas cahaya yang dipantulkan pada benda akan dipantulkan dengan arah yang tidak menentu, seperti yang diperlihatkan pada gambar 2.4.
Receiver IrD akan menerima sinyal yang termodulasi dan
mengeluarkan aliran bit pada pin out. Receiver IrD ini merupakan sebuah rangkaian yang terdiri dari phototransistor, ampliflier, limitter, Band Pass
Filter, demodulator, integrator dan comparator. Gambar 2.5
memperlihatkan schematic dari modul infra merah. Kaki collector dari
phototransistor merupakan output dari modul ini. Jika phototransistor cut
off , maka tidak terjadi aliran arus dari collector menuju emitter sehingga
output akan high. Apabila phototransistor aktif , maka arus akan mengalir
dari collector ke emitter maka output akan low.
Gambar 2.5 Schematic dari Receiver IrD
Gambar 2.6 pengaruh frekuensi dan relative sensitivity
terhadap jarak
Receiver IrD dapat mendeteksi jarak terjauh dari suatu objek pada frekuensi 40KHz. Untuk dapat mendeteksi jarak, lebar bidang kerja dibagi berdasarkan relative sensitivity. Karena grafik tanggapan frekuensinya berbentuk bukit , maka frekuensi yang digunakan didapatkan dari hasil percobaan.
2.4.2 LED IR
LED infra merah adalah LED yang didesain untuk memancarkan cahaya infra merah.
berupa energi panas dan energi cahaya. LED dibuat agar lebih efisien jika mengeluarkan cahaya. Untuk mendapatkan emisi cahaya pada semikonduktor, doping yang dipakai adalah gallium, arsenic, dan fosfor.
LED Inframerah digunakan sebagai keluaran sinyal osilasi.
Untuk dapat membangkitkan sinyal osilasi dengan frekuensi tertentu yang dihasilkan dari LED Inframerah diperlukan sebuah rangkaian penggerak LED Inframerah seperti yang ditunjukkan pada gambar dibawah (gambar 2.7). Rangkaian penggerak LED Inframerah tersebut menggunakan transistor yang pada dasarnya menghubungkan dengan tegangan VCC. Karena adanya transistor, maka LED Inframerah
mendapat arus atau tidaknya tergantung dari kondisi transistor saat itu. Jika transistor on (karena adanya arus low pada basis, dilakukan dengan pemberian logika ’0’ pada port masukkan transistor), maka LED Inframerah mendapat tegangan VCC sehingga menjadi on. Namun
sebaliknya jika transistor off maka LED Inframerah juga menjadi off. Jika
on dan off pemberian arus ini dilakukan secara periodik maka akan timbul
LED Rc Vcc Rb Input 3 2 1
Gambar 2.7 Rangkaian LED Inframerah
Besar frekuensi sinyal keluaran berbanding terbalik dengan periode sinyal masukkannya seperti yang terlihat pada persamaan berikut ini:
Fled =
input
T
1
...(2.2)
Persamaan untuk menentukan nilai Re adalah:
Vled Vce Ie
Vcc= .Re+ + ... (2.3)
Vled Vce Vcc
Ie.Re= − − ... (2.4)
Ie Vled Vce
Vcc− −
=
Re ... (2.5)
Besar arus IB dapat dicari dengan:
fe C B
h I
I = ... (2.6)
maka nilai dari hambatan RB adalah: Vinput
Vbe Rb Ib
Ve= . + + ... (2.7)
Vinput Vbe
Ve Rb
Ib
Vinput Vbe
Ve
Rb= − − ... (2.9)
2.4.3. Pensaklaran
Pensaklaran terdiri dari beberapa saklar/tombol tekan yang diaktifkan oleh tekanan, untuk menemukan tombol yang ditekan maka diperlukan rangkaian pada perangkat keras dan perangkat lunak.
Bentuk fisik dan simbol dari komponen saklar bisa dilihat di gambar 2.8.
Gambar 2.8 Pensaklaran
Saklar disini berfungsi sebagai sensor batas akhir putaran motor.
2.5 Driver motor dc
2.6 Motor Dc
Motor arus searah memiliki dua bagian dasar yaitu rotor dan stator,
rotor adalah bagian yang berputar, sedangkan bagian yang statis disebut
stator. Motor DC bekerja berdasarkan medan magnet yang dihasilkan oleh
kumparan. Semakin besar arus yang melewati kumparan motor, makin cepat putaran motor.
Gambar 2.9. Gaya yang Timbul Akibat Arus yang Mengalir pada
Konduktor Tegak Lurus dengan Medan Magnet
Dalam penggunaan motor dc ada beberapa hal yang perlu diperhatikan yaitu torsi, kecepatan, daya dan energi. Torsi adalah kemampuan motor untuk memutar atau disebut juga dengan gaya puntir diberi satuan Newton-meter (Nm). Torsi merupakan gaya dikalikan jarak. Jika pada sebuah roda diameter semakin besar, maka torsipun semakin besar disisi lain jarak tempu satu putaran roda akan menempuh jarak yang lebih besar. Hal ini akan menyebabkan kondisi dimana torsi menjadi tinggi dengan kecepatan rendah atau sebaliknya torsi rendah dengan kecepatan tinggi. Dalam kaitannya dengan motor listrik, kita perlu membedakan antara daya listrik dengan daya mekanik. Daya listrik adalah satuan listrik yang digunakan oleh motor sedangkan daya mekanik adalah daya yang dihasilkan oleh motor, unit satuan dari daya listrik dan daya mekanik adalah watt tapi satuan horsepower (hp) masih sering digunakan untuk mengukur daya mekanik.
2.7 Mikrokontroler AT89S51
Mikrokontroler AT89S51 adalah sebuah chip mikrokontroler CMOS 8-bit yang berkemampuan tinggi dengan 4K bytes in-system programmable
Flash Memory. AT89S51 ini dibuat dengan teknologi Atmel memori
Timer, 2 data pointer, 5 vektor dua level interupsi, serial port full duplex,
osilator on-chip dan clock circuitry.
Pada mikrokontroler AT89S51 memiliki kemampuan untuk menyimpan program yang disimpan dalam flash memory sebesar 4 kB, program yang telah dirancang dengan menggunakan bahasa assembler kemudian didownload kedalam flash memory menggunakan alat downloader. Pada pemograman AT89S51 ini file yang akan disimpan dalam flash memory dalam bentuk HEX, flash memory dalam mikrokontroler ini dapat dihapus
(eraseable) sehingga program dapat diubah-ubah sampai program yang
diinginkan telah jadi dan siap dipakai.
Penulis memakai IC mikrokontroler jenis ini karena AT89S51 ini lebih mudah diprogram daripada menggunakan IC mikrokontroler jenis yang lain, serta IC jenis ini memiliki kemampuan yang lebih banyak daripada pendahulunya.
2.7.1 Organisasi memori AT89S51
Memori merupakan rangkaian elektronis yang digunakan untuk menyimpan informasi secara temporer atau permanen. Memori biasanya digunakan untuk menyimpan data yang diperoleh dari saluran masukan-keluaran atau untuk menyimpan program dari sebuah sistem.
A. Memori program
Memori program atau sering disebut dengan flash memory pada mikrokontroler AT89S51 memiliki kapasitas sebesar 4KB yang hanya bisa dibaca saja. Bila pin EA dihubungkan pada ground program memori dapat diakses secara eksternal, bila pin EAdihubungkan pada VCC program
memori 4KB dapat diakses langsung pada alamat 0000H-FFFH secara internal.
B. Memori data
Memori data menggunakan memori jenis RAM. RAM merupakan memori yang dapat dibaca dan ditulis. RAM dipakai sebagai penyimpan data pada saat program bekerja. Isi RAM akan hilang bila catu daya mati (Volatile
Memory).
Mikrokontroler AT89S51 memiliki memori data 256 bytes dan dapat diakses secara pengalamatan langsung dan pengalamatan tidak langsung. Pengoperasian stack adalah contoh dari pengalamatan tidak langsung, jadi 128 bytes RAM data tersedia sebagai ruang stack.
2.7.2 Port masukan/keluaran (I/O port)
Port 0 merupakan port keluaran/masukan (I/O) bertipe open drain
bidirectional. Port 0 juga dapat dikonfigurasikan sebagai bus alamat/ data
bagian rendah selama proses pengaksesan memori data dan program eksternal. Port ini berada di alamat 80H pada SFR.
Port 1 merupakan port I/O dwiarah yang dilengkapi dengan pull-up
internal. Jika ‘1’ dituliskan ke kaki-kaki port 1, maing-masing kaki akan di
pull high dengan pull up internal sehingga dapat digunakan sebagai
masukan. Port 1 berada di alamat 90H juga menerima alamat bagian rendah (low bit) selama pemrograman dan verifikasi flash. Selain sebagai piranti I/O, port 1 juga mempunyai fungsi yang lain seperti terlihat pada Tabel 2.1.
Tabel 2.1 Fungsi alternative port 1.
Pin 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)
Port 2 berada di alamat A0H dan memiliki karakteristik yang mirip
Port 3 terletak di alamat B0H. Selain berfungsi untuk menerima
sinyal-sinyal kontrol untuk pemrograman dan verifikasi flash, dapat juga digunakan untuk fungsi-fungsi yang lain seperti terlihat pada Tabel 2.2.
Tabel 2.2 fungsi alternative port 3
Pin Port Fungsi Alternatif
P3.0 RXD (masukan port serial)
P3.1 TXD (keluaran port serial)
P3.2 INT (interupsi 0 eksternal) 0
P3.3 INT (interupsi 1 eksternal) 1
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)
2.7.3 Pemrograman mikrokontroler.
menjadi perintah untuk pemindahan data, aritmatika, operasi logika dan pengatur alir program.
A. Pengalamatan langsung (Direct Addressing Mode)
Instruksi ini untuk menunjuk data yang berada didalam memori dengan cara mengambil alamat memori tempat data tersebut berada. Contoh: MOV A,15h
B . Pengalamatan tak langsung (Indirect Addressing Mode)
Instruksi ini untuk menunjuk data yang berada dalam memori, kalau memori menyimpan data ini letaknya berubah-ubah sehingga memori tidak disebut secara langsung tapi dititipkan ke register lain. Contoh: MOV A, @R0
C. Pengalamatan segera (Immediate Addressing Mode)
Instruksi ini untuk menunjuk data konstan yang menyatu dengan instruksi. Contoh MOV A,#20h.
D . Pengalamatan register (Register Addressing Mode)
Instruksi ini digunakan untuk menunjuk data yang berada dalam register. Contoh MOV A,R2.
Secara keseluruhan mikrokontroler AT89C51 mempunyai 255 macam instruksi
1. Kelompok transfer data
Instruksi dasar kelompok ini adalah MOV, yang artinya memindahkan, yang maksudnya adalah menyalin data. Contoh lain perintah transfer data: MOVX, MOVC. XCH.
2. Kelompok instruksi aritmatika
Operasi aritmatika biasa disebut sebagai operasi perhitungan yang biasa dipakai dalam matematika. Perintah yang ada terdiri dari penjumlahan, penjumlahan satu, pengurangan, pengurangan satu, perkalian, dan pembagian yaitu:.ADD, SUB, INC, DEC, DIV, MUL.
3. Kelompok instruksi logika
Kelompok instruksi ini dipakai untuk melakukan operasi logika, yaitu operasi AND (instruksi ANL), operasi OR (instruksi ORL), dan operasi Exclusive-OR (instruksi XRL).
4. Kelompok Operasi Bit.
Kelompok ini menangani instruksi yang banyaknya 1 bit. Register yang dipakai adalah register carry. Contoh instruksi operasi bit: CLR, SETB, CPL, JC, JBC, JNB.
2.7.4 Sistem interupsi
processor. Program yang dijalankan dengan cara tersebut dinamakan
sebagai program pelayanan interupsi (ISR - Interrupt Service Routine). Saat prosesor menjalankan ISR, pekerjaan yang sedang dilakukan dalam program utama ditinggalkan sementara, selesai menjalankan ISR program utama kembali dijalankan. AT89S51 memiliki 5 sumber interupsi.
2.7.5 Osilator On-Chip
Osilator on-chip digunakan sebagai sumber detak (clock) ke CPU. Untuk menggunakannya, hubungkan sebuah resonator kristal atau keramik di antara kaki-kaki XTAL1 dan XTAL2 pada mikrokontroler dan hubungkan kapasitornya ke ground. Osilator On-chip dapat dilihat pada Gambar 2.10.
BAB
ІІІ
PERANCANGAN PERANGKAT KERAS
DAN PERANGKAT LUNAK
3.1. Perangkat Keras Robot
Robot memiliki dua bagian utama yaitu perangkat keras dan perangkat lunak. Perangkat keras meliputi mekanik, rangkaian elektronik dan motor penggerak. Sedangkan perangkat lunak berupa program pengendali yang akan mengatur gerakan dari Robot.
3.1.1. Mekanik Robot
Gambar 3.2 Mekanik robot dilihat dari samping
Gambar 3.1, 3.2, dan 3.3 menggambarkan mekanik robot dengan keterangan sebagai berikut
1 = receiver IrD 2 = power supply
3 = motor DC (M1 = motor depan , M3 = motor tengah , M2 = motor belakang).
4 = roda gigi
5 = kaki depan dan kaki belakang 6 = infra red
7 = PCB
8 = Limit Switch 1dan 2 9 = Limit Switch 3 dan 4 10 = Limit Switch 5 dan 6
Robot memiliki tiga motor, motor 1 (M1) terletak di depan badan robot , motor 2 (M2)terletak di belakang badan robot, motor 3 (M3) terletak di tengah badan robot. Kaki robot dibuat dari kawat yang dibengkokkan.
3.1.2. Bagian Elektronis Robot
Kemudian mikrokontroller menghidupkan motor melalui IC L293D yang men drive motor M1,M2 dan M3 , gerakan motor menentukan robot bergerak maju, mundur , kanan dan kiri tergantung letak penghalang.
Motor yang digunakan adalah motor DC mekanik cd rom , untuk
power supply menggunakan baterai untuk wireless telepon dengan
spesifikasi sebagai berikut : 3,6 volt 300mA dalam tiap kemasannya. Pada robot digunakan tiga kemasan baterai yang disusun seri, tegangannya menjadi 10,8 volt. Baterai ini dapat diisi ulang.
3.1.2.1. Pemancar Infra Merah
led inf ra merah
Vcc
A733
3
2
1
input
2k2 ohm
47 ohm
Gambar 3.4 Rangkaian penggerak LED infra merah
Pada perancangan ini ditentukan IC = 50 mA, VCC = 5V dan VCE =
2,5V. Arus pada led infra merah adalah Ic = Ie– Ib, karena Ib sangat kecil maka Ic≅Ie, maka nilai resitansi Re dapat dihitung dengan menggunakan persamaan:
Ie Vled Vce
Vcc− −
=
Karena tegangan pada led infra merah sangat kecil maka dapat diabaikan dalam perhitungan (Vled ≅0), sehingga persamaannya menjadi:
Ω = − = − = 50 05 , 0 5 , 2 5 Re Ie Vce Vcc ...(3.2)
nilai Re yang digunakan sebesar 47
Berdasarkan data sheet transistor A733 ditentukankan nilai hfe =
60, maka dapat diperhitungkan nilai Ib dengan menggunakan persamaan:
mA h Ic Ib fe 83 , 0 60 05 , 0 = = = ...(3.3)
Dengan menggunakan nilai tegangan Vbe = 0,7V, maka dapat dihitung nilai resitansi pada kaki basis yaitu:
Ib Vinput Vb
Rb= − ...(3.4)
Karena Vinput = 0 dan Vb = Ve – Vbe, maka persamaannya menjadi: Ω ≅ = − = −
= 2168,67 2 2
83 , 0 7 , 0 5 , 2 k mA Ib Vbe Ve Rb ...(3.5)
jadi nilai Rb yang digunakan adalah 2k2 .
3.1.2.2. Unit mikrokontroler AT89S51 , Saklar dan L293D
Fungsi dari saklar adalah sebagai sensor pembatas gerakan motor. saklar akan mengirimkan sinyal ke mikrokontroler untuk menandakan bahwa gerakan motor (CW atau CCW ) sudah mencapai batas dan tanda untuk melakukan gerakan selanjutnya.
Jumlah saklar ada 6 buah :
1. 2 buah saklar di kaki depan robot, berfungsi sebagai penggerak kaki depan.
2. 2 buah saklar ada di tengah badan robot, berfungsi memberikan keseimbangan pada robot.
3. 2 buah saklar ada di kaki belakang robot, berfungsi sebagai penggerak kaki belakang.
L293D merupakan driver motor. Rangkaian selengkapnya bisa dilihat pada gambar 3.7.
p2.4 30 pF S2 riset p2.1 10k 100uF p2.5 p2.2 SW3 p2.5 5 v 10.8 v p2.4 5 v 30 pF p2.6 SW7 led kiri SW6 SW1 p2.3 SW2 U4 AT89C51 9 18 19 29 30 31 1 2 3 4 5 6 7 8 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 39 38 37 36 35 34 33 32 RST XTAL2 XTAL1 PSEN ALE/PROG EA/VPP P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 5 v 20 p2.2 M1 10.8 v SW5 M3 5 v 40 12 MHz U5 L293D 2 7 10 15 1 9 3 6 11 14 16 8 1A 2A 3A 4A 1/2EN 3/4EN 1Y 2Y 3Y 4Y VCC1 VCC2 A led kanan U5 L293D 2 7 10 15 1 9 3 6 11 14 16 8 1A 2A 3A 4A 1/2EN 3/4EN 1Y 2Y 3Y 4Y VCC1 VCC2 p2.1 5 v p2.3 M2 p2.6
3.1.2.3. Tombol Reset
Berdasarkan data sheet dari AT89S51 kondisi reset terjadi jika pada pin ke 9 ( pin reset) memperoleh logika “1” selama dua siklus mesin.
Gambar 3.6 konfigurasi tombol reset
Di dalam perancangan, digunakan 12 MHz, maka satu siklus mesin akan dikerjakan selama :
Tcycle =
OSC
f
12 =
MHz
12 12
= 1 µd.
Dengan demikian, maka untuk keperluan reset dibutuhkan logika 1 pada pin RST selama 2 × 1 µd = 2 µd.
Cara kerja rangkaian power-on reset sebenarnya hanya merupakan pengisian muatan kapasitor (seperti yang ditunjukkan pada gambar 3.8). Pada 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 (tegangan antara Vcc dengan pin RST) bertambah besar.
Yang perlu diperhatikan disini untuk power-on reset adalah nilai R dan C, agar VC selama minimal 2 µd masih dianggap berlogika 0. Dari data sheet
diketahui bahwa tegangan masukan logika 0 memiliki batas atas VIL(max) =
0,2 Vcc.
3.2 Perancangan perangkat lunak
3.2.1 Gerakan Robot
Robot dapat bergerak dengan memanipulasi arah putaran motor DC.
Untuk gerakannnya, robot dibatasi untuk bergerak maju, belok kiri, belok kanan, mundur kiri, mundur kanan.
Untuk dapat bergerak seperti yang disebutkan diatas maka diperlukan gerakan dasar motor DC tersebut , yaitu gerakan searah jarum jam (CW)dan gerakan berlawanan arah jarum jam (CCW).
Tabel 3.1 Hubungan port 2 dengan M1
P2.3 P2.4 Gerakan Motor Gambar gerakan
high low CW
low high CCW
Apabila P2.3 = high dan P2.4 = low , motor 1 (M1) bergerak searah jarum jam (CW). Apabila P2.3 = low dan P2.4 = high , motor 1 (M1) bergerak berlawanan arah jarum jam (CCW).
Tabel 3.2 Hubungan port 2 dengan M2
P2.1 P2.2 Gerakan Motor Gambar gerakan
high low CCW
Apabila P2.1 = high dan P2.2 = low , motor 2 (M2) bergerak berlawanan arah jarum jam (CCW). Apabila P2.1 = low dan P2.2 = high , motor 2 (M2) bergerak bergerak searah jarum jam (CW).
Tabel 3.3 Hubungan port 2 dengan M3
P2.5 P2.6 Gerakan Motor Gambar gerakan
high low CW
low high CCW
Apabila P2.5 = high dan P2.6 = low , motor 3 (M3) bergerak bergerak searah jarum jam (CW). Apabila P2.5 = low dan P2.6 = high , motor 3 (M3) bergerak berlawanan arah jarum jam (CCW).
3.2.1.1. Bergerak maju
Untuk dapat bergerak maju dapat dilakukan dengan :
1. Masukkan logika high pada semua port 2. Untuk mematikan semua motor. 2. M3 dihidupkan dengan mengirim logika pada p2.5=low dan p2.6=high, hal
3. M1 dihidupkan dengan mengirim logika pada p2.3=low dan p2.4=high, hal ini menyebabkan M1 berputar berlawanan arah jarum jam (CCW).
4. M2 dihidupkan dengan mengirim logika pada p2.1=low dan p2.2=high, hal ini menyebabkan M2 berputar searah jarum jam (CW).
5. Dilakukan deteksi pada p1.1 (limit switch pada M3) untuk mengetahui apakah sudah sampai putaran maksimal ?
6. Dilakukan deteksi pada p1.6 (limit switch pada M1) untuk mengetahui apakah sudah sampai putaran maksimal ?
7. Dilakukan deteksi pada p1.5 (limit switch pada M2) untuk mengetahui apakah sudah sampai putaran maksimal ?
8. Matikan M3 dengan mengirim logika high pada p2.5. 9. Matikan M1 dengan mengirim logika high pada p2.3. 10.Matikan M2 dengan mengirim logika high pada p2.1.
11.M3 dihidupkan dengan mengirim logika pada p2.5 = high dan p2.6 = low, hal ini menyebabkan M3 berputar searah jarum jam (CW).
12.M1 dihidupkan dengan mengirim logika pada p2.3 = high dan p2.4 = low, hal ini menyebabkan M3 berputar searah jarum jam (CW).
16.Dilakukan deteksi pada p1.7 (limit switch pada M2) untuk mengetahui apakah sudah sampai putaran maksimal ?
17.Matikan M3 dengan mengirim logika high pada p2.6. 18.Matikan M1 dengan mengirim logika high pada p2.4 19.Matikan M2 dengan mengirim logika high pada p2.2. 20.Matikan semua motor.
Flowchart bergerak maju bisa dilihat di gambar 3.9.
3.2.1.2. Bergerak belok kiri
Untuk dapat bergerak belok kiri dapat dilakukan dengan:
1. Masukkan logika high pada semua port 2. Untuk mematikan semua motor. 2. M3 dihidupkan dengan mengirim logika pada p2.5=low dan p2.6=high, hal
ini menyebabkan M3 berputar berlawanan arah jarum jam (CCW).
3. M1 dihidupkan dengan mengirim logika pada p2.3=low dan p2.4=high, hal ini menyebabkan M1 berputar berlawanan arah jarum jam (CCW).
4. M2 dihidupkan dengan mengirim logika pada p2.1=low dan p2.2=high, hal ini menyebabkan M2 berputar searah jarum jam (CW).
5. Dilakukan deteksi pada p1.1 (limit switch pada M3) untuk mengetahui apakah sudah sampai putaran maksimal ?
!
! "
!
! #
! #
! $ #
%
! &
! '
! (
! " #
! ' #
! #
) )
*
*
*
*
* * + + $ %, -, . //0
+ + %, -, . //0
+ + %, -, . /0
+ + $ %, -, . /0
+ + %, -, . /0
+ + %, -, . //0 1
1
1
1
1
7. Dilakukan deteksi pada p1.5 (limit switch pada M2) untuk mengetahui apakah sudah sampai putaran maksimal ?
8. Masukkan logika high pada semua port 2. Untuk mematikan semua motor. 9. Panggil subrutin tunda.
10.Masukkan logika high pada semua port 2. Untuk mematikan semua motor. 11.M2 dihidupkan dengan mengirim logika pada p2.1 = high dan p2.2 = low,
hal ini menyebabkan M2 berputar berlawanan arah jarum jam (CCW). 12.Dilakukan deteksi pada p1.7 (limit switch pada M2) untuk mengetahui
apakah sudah sampai putaran maksimal ?
13.Masukkan logika high pada p2.2 untuk mematikan M2.
14.M1 dihidupkan dengan mengirim logika pada p2.3 = high dan p2.4 = low, hal ini menyebabkan M1 berputar searah jarum jam (CW).
15.Dilakukan deteksi pada p1.4 (limit switch pada M1) untuk mengetahui apakah sudah sampai putaran maksimal ?
16.Masukkan logika high pada p2.4 untuk mematikan M1.
17.M3 dihidupkan dengan mengirim logika pada p2.5=low dan p2.6=high, hal ini menyebabkan M3 berputar berlawanan arah jarum jam (CCW).
18.M2 dihidupkan dengan mengirim logika pada p2.1=low dan p2.2=high, hal ini menyebabkan M2 berputar searah jarum jam (CW).
19.Dilakukan deteksi pada p1.1 (limit switch pada M3) untuk mengetahui apakah sudah sampai putaran maksimal ?
21.Masukkan logika high pada p2.5 untuk mematikan M3. 22.Masukkan logika high pada p2.1 untuk mematikan M2. 23.Panggil subrutin tunda.
24.M2 dihidupkan dengan mengirim logika pada p2.1 = high dan p2.2 = low, hal ini menyebabkan M2 berputar berlawanan arah jarum jam (CCW). 25.Dilakukan deteksi pada p1.7 (limit switch pada M2) untuk mengetahui
apakah sudah sampai putaran maksimal ?
26.Masukkan logika high pada p2.2 untuk mematikan M2. 27.Matikan semua motor.
Flowchart bergerak belok kiri bisa dilihat di gambar 3.10.
3.2.1.3. Bergerak belok kanan
Untuk dapat bergerak belok kanan dapat dilakukan dengan:
1. Masukkan logika high pada semua port 2. Untuk mematikan semua motor. 2. M3 dihidupkan dengan mengirim logika pada p2.5=low dan p2.6=high, hal
ini menyebabkan M3 berputar berlawanan arah jarum jam (CCW).
3. M1 dihidupkan dengan mengirim logika pada p2.3 = high dan p2.4 = low, hal ini menyebabkan M1 berputar searah jarum jam (CW).
! ! " ! % * * * ! ( ! ' ! ! $ % * * * * / / ! ( ) ) * + + $ %, -, . //0
+ + %, -, . //0
+ + %, -, . /0 1
1
1
+ + %, -, . //0 1
+ + %, -, . /0 1
+ + $ %, -, . //0
+ + %, -, . /0 1
1
+ + %, -, . //0 1
7. Dilakukan deteksi pada p1.7 (limit switch pada M2) untuk mengetahui apakah sudah sampai putaran maksimal ?
8. Masukkan logika high pada semua port 2. Untuk mematikan semua motor. 9. Panggil subrutin tunda.
10.Masukkan logika high pada semua port 2. Untuk mematikan semua motor. 11.M2 dihidupkan dengan mengirim logika pada p2.1=low dan p2.2=high, hal
ini menyebabkan M2 berputar searah jarum jam (CW).
12.Dilakukan deteksi pada p1.5 (limit switch pada M2) untuk mengetahui apakah sudah sampai putaran maksimal ?
13.Masukkan logika high pada p2.1 untuk mematikan M2.
14.M1 dihidupkan dengan mengirim logika pada p2.3=low dan p2.4=high, hal ini menyebabkan M1 berputar berlawanan arah jarum jam (CCW).
15.Dilakukan deteksi pada p1.6 (limit switch pada M1) untuk mengetahui apakah sudah sampai putaran maksimal ?
16.Masukkan logika high pada p2.3 untuk mematikan M1.
17.M3 dihidupkan dengan mengirim logika pada p2.5=low dan p2.6=high, hal ini menyebabkan M3 berputar berlawanan arah jarum jam (CCW).
21.Masukkan logika high pada p2.6 untuk mematikan M3. 22.Masukkan logika high pada p2.2 untuk mematikan M2. 23.Panggil subrutin tunda.
24.M2 dihidupkan dengan mengirim logika pada p2.1=low dan p2.2=high, hal ini menyebabkan M2 berputar searah jarum jam (CW).
25.Dilakukan deteksi pada p1.5 (limit switch pada M2) untuk mengetahui apakah sudah sampai putaran maksimal ?
26.Masukkan logika high pada p2.1 untuk mematikan M2. 27.Matikan semua motor.
Flowchart bergerak belok kanan bisa dilihat di gambar 3.11.
3.2.1.4. Gerak mundur kanan
Untuk dapat bergerak mundur kanan dapat dilakukan dengan:
1. Masukkan logika high pada semua port 2. Untuk mematikan semua motor. 2. M2 dihidupkan dengan mengirim logika pada p2.1 = high dan p2.2 = low,
hal ini menyebabkan M2 berputar berlawanan arah jarum jam (CCW). 3. Dilakukan deteksi pada p1.7 (limit switch pada M2) untuk mengetahui
apakah sudah sampai putaran maksimal ?
4. Masukkan logika high pada p2.2 untuk mematikan M2.
5. M1 dihidupkan dengan mengirim logika pada p2.3 = high dan p2.4 = low, hal ini menyebabkan M1 berputar searah jarum jam (CW).
! &
! '
! ( *
*
*
!
! "
! &
! (
$ %
*
*
*
*
/
/
!
* + + $ %, -, . //0
+ + %, -, . /0
+ + %, -, . //0 1
1
+ + %, -, . /0
+ + %, -, . //0
1
+ + $ %, -, . //0
+ + %, -, . //0 1
1
1 1
7. Masukkan logika high pada p2.4 untuk mematikan M1.
8. M3 dihidupkan dengan mengirim logika pada p2.5=low dan p2.6=high, hal ini menyebabkan M3 berputar berlawanan arah jarum jam (CCW).
9. M2 dihidupkan dengan mengirim logika pada p2.1=low dan p2.2=high, hal ini menyebabkan M2 berputar searah jarum jam (CW).
10.Dilakukan deteksi pada p1.0 (limit switch pada M3) untuk mengetahui apakah sudah sampai putaran maksimal ?
11.Dilakukan deteksi pada p1.5 (limit switch pada M2) untuk mengetahui apakah sudah sampai putaran maksimal ?
12.Masukkan logika high pada p2.6 untuk mematikan M3. 13.Masukkan logika high pada p2.1 untuk mematikan M2.
14.M1 dihidupkan dengan mengirim logika pada p2.3=low dan p2.4=high, hal ini menyebabkan M1 berputar berlawanan arah jarum jam (CCW).
15.Dilakukan deteksi pada p1.6 (limit switch pada M1) untuk mengetahui apakah sudah sampai putaran maksimal ?
16.Masukkan logika high pada p2.3 untuk mematikan M1. 17.Matikan semua motor.
18.Panggil subrutin tunda.
Flowchart gerak mundur kanan bisa dilihat di gambar 3.12.
3.2.1.5. Gerak mundur kiri
1. Masukkan logika high pada semua port 2. Untuk mematikan semua motor.
2. M2 dihidupkan dengan mengirim logika pada p2.1=low dan p2.2=high, hal ini menyebabkan M2 berputar searah jarum jam (CW).
3. Dilakukan deteksi pada p1.5 (limit switch pada M2) untuk mengetahui apakah sudah sampai putaran maksimal ?
4. Masukkan logika high pada p2.1 untuk mematikan M2.
5. M1 dihidupkan dengan mengirim logika pada p2.3=low dan p2.4=high, hal ini menyebabkan M1 berputar berlawanan arah jarum jam (CCW). 6. Dilakukan deteksi pada p1.6 (limit switch pada M1) untuk mengetahui
apakah sudah sampai putaran maksimal ?
7. Masukkan logika high pada p2.3 untuk mematikan M1.
8. M3 dihidupkan dengan mengirim logika pada p2.5=low dan p2.6=high, hal ini menyebabkan M3 berputar berlawanan arah jarum jam (CCW). 9. M2 dihidupkan dengan mengirim logika pada p2.1 = high dan p2.2 =
low, hal ini menyebabkan M2 berputar berlawanan arah jarum jam
(CCW).
10.Dilakukan deteksi pada p1.1 (limit switch pada M3) untuk mengetahui apakah sudah sampai putaran maksimal ?
! (
! '
%
%
! &
!
$
! "
) )
*
*
*
*
* + + %, -, . //0
+ + %, -, . /0
+ + $ %, -, . /0
+ + %, -, . /0
+ + %, -, . /0 1
1
1
1
1
13.Masukkan logika high pada p2.2 untuk mematikan M2.
14.M1 dihidupkan dengan mengirim logika pada p2.3 = high dan p2.4 =
low, hal ini menyebabkan M1 berputar searah jarum jam (CW).
15.Dilakukan deteksi pada p1.4 (limit switch pada M1) untuk mengetahui apakah sudah sampai putaran maksimal ?
16.Masukkan logika high pada p2.4 untuk mematikan M1. 17.Matikan semua motor.
18.Panggil subrutin tunda.
Flowchart gerak mundur kiri bisa dilihat di gambar 3.13.
3.2.2 Pendeteksian halangan
Untuk dapat mendeteksi halangan, dari LED infra merah akan memancarkan frekuensi yang sudah ditentukan dari sample hasil percobaan yaitu 25 KHz untuk jarak dekat (0 cm sampai 10 cm) dan 32 KHz (lebih dari 10 cm sampai 35 cm) untuk jarak menengah.
Gambar 3.12. Flowchart Program Penghasil Gelombang kotak
25 KHz
Untuk menghasilkan gelombang kotak dengan frekuensi 32 KHz ( jarak mengah) pad port 0.0 untuk LED infra merah kanan dan port 0.1 untuk LED infra merah kiri, selama 2 perioda, caranya dengan
mengeluarkan logika nol selama 18 µdtk dan logika satu selama 13 µdtk, sehingga total waktu atau perioadanya adalah 31 µdtk , dari perioda tersebut dapt dicari besarnya frekuensi
31 1
Gambar 3.13 Flowchart Program Penghasil Gelombang Kotak
32 KHz
Setelah gelombang kotak terkirim melalui port 0.0 untuk LED infra merah kanan atau port 0.1 untuk infra merah kiri sebanyak dua perioda.
Gelombang kotak yang ditembakkan LED infra merah ada 4 jenis : 1. Gelombang kotak untuk menditeksi jarak dekat pada LED
infra merah sebelah kanan (25 KHZ).
2. Gelombang kotak untuk menditeksi jarak dekat pada LED infra merah sebelah kiri (25 KHZ).
3. Gelombang kotak untuk menditeksi jarak menengah pada LED infra merah sebelah kanan (32 KHZ).
Receiver akan menditeksi ada tidaknya pantulan dan pada port 3.2,
ditunggu apakah berlogika low (logika awal = high apabila mendapat logika low berarti ada pantulan). Dari hasil deteksi pantulan tersebut akan ditentukan arah gerakan robot.
Data dari hasil deteksi pantulan akan dibuat tanda :
1. Apabila ada tanda pantulan dari LED kiri jarak menengah , R1 akan diberi tanda 1.
2. Apabila ada tanda pantulan dari LED kanan jarak menengah , R3 akan diberi tanda 2.
3. Apabila ada tanda pantulan dari LED kiri jarak dekat, R5 akan diberi tanda 1.
4. Apabila ada tanda pantulan dari LED kanan jarak dekat, R6 akan diberi tanda 2.
Dari tanda tersebutlah arah gerakan robot ditentukan, tabel 3.5. memperlihatkan hubungan hasil pantulan dan gerakan robot.
Untuk dapat menghindari penghalang yang berada tepat didepan, robot perlu bergerak kanan atau kiri berulang ulang. Karena itu diperlukan tanda untuk mengetahui arah belokan sebelumnya. Pada kasus dimana
receiver mendeteksi hasil pantulan IR kanan dan IR kiri, robot akan
kiri R4 diisi dengan 2. Hal ini perlu untuk mengetahui arah gerakan motor sebelumnya.
Tabel 3.5 Hubungan rancangan deteksi receiver dengan gerakan
robot
Gelombang kotak 25 KHz (dekat)
Gelombang kotak 32 KHz (menengah) IR kanan IR kiri IR kanan IR kiri
Gerakan Robot
Ada pantulan (R6 = 2)
Ada pantulan (R5 = 1)
- - Mundur mengikuti
sebelumnya Ada pantulan
(R6 = 2)
- - - Mundur Kiri
- Ada pantulan (R5 = 1)
- - Mundur Kanan
- - Ada pantulan
(R3 = 2)
Ada pantulan (R1 = 1)
Belok mengikuti sebelumnya
- - Ada pantulan
(R3 = 2)
- Belok Kiri
- - - Ada pantulan
(R1 = 1)
Belok Kanan
, % .. 1 21* 3 ,. !
2 .2 2 212 2 32 2
2 2 # $
! . 4 ! 1 53 1 6
, % .. 1 21* 3 ,. !
2 . 1 1 1
2 2 # '
! . 4
! 1 53 1 6 *
1 # " # " # 1 * # 1 ( # *
* 51 .
( # 1
51 .
* 51 5 .2 2
51 5 . 1 1 51 5 . 1 1
51 5 .2 2 *
*
4 2 4
2 2 ( #
, % .. 1 21* 3 ,1,1- 4 ! 2 .2 2
2 2 #
! . 4
! 1 53 1 6 *
, % .. 1 21* 3 ,1,1- 4 ! 2
. 1 1 1
2 2 #
! . 4
! 1 53 1 6 *
1 # $ # $ # 1 * # 1 ' # *
* 51 .
' # 1
51 .
* 51 5 .2 2
51 5 . 1 1 %,3+. .2 2
%,3+. . 1 1 * * -. 1 1 . 8 85
2 2 ' #
2 2 ' # /
%
%
4
BAB IV
HASIL PENGAMATAN DAN PEMBAHASAN
4.1. Konstruksi robot jadi
Gambar 4.1 dan gambar 4.2 memperlihatkan bentuk jadi robot. Terlihat robot memiliki 2 pasang kaki (1), sepasang LED infra merah (2), sebuah sensor penerima infra merah(3) , dan 3 buah motor (4).
Gambar 4.1. Gambar konstruksi robot dari atas
Gambar 4.2. Gambar konstruksi robot dari samping
4.2. Analisa Gerak
Pada percobaan analisa gerak ini terlihat berat robot amat
Untuk mengamati reaksi robot jika ada penghalang di depannya dilakukan percobaan sebagai berikut:
4.2.1 Percobaan 1:
Sebuah kotak diletakkan di depan robot pada jarak ±50cm. Robot melakukan gerakan maju (gambar 4.3) , hingga kira kira jarak ± 35cm robot mulai berbelok.
Gambar 4.3 Kondisi robot jika kotak diletakkan ±50cm
Hal ini disebabkan karena kotak tidak memantulkan sinyal 25 KHz ( pendeteksi jarak dekat ) dan sinyal 32 KHz ( pendeteksi jarak menengah ), menyebabkan robot bergerak maju :
Robot bergerak maju melakukan langkah langkah sebagai berikut :
robot sehingga terjadi tekanan pada kaki kiri depan dan kaki kanan belakang.
2. Setelah saklar saklar yang terhubung p1.1 , p1.6 dan p1.5 tertekan robot akan melakukan gerakan selanjutnya.
3. M3 akan melakukan gerakan CW, M1 akan melakukan gerakan CW, M2 akan melakukan gerakan CCW.
4. Setelah saklar saklar yang terhubung p1.0 , p1.4 dan p1.7 tertekan robot akan melakukan gerakan selanjutnya.
4.2.2 Percobaan 2:
Sebuah kotak diletakkan di sebelah kanan depan robot pada jarak >> 30cm, robot melakukan gerakkan belok kiri (gambar 4.4)
Gambar 4.4 Kondisi jika kotak diletakkan di sebelah kanan
Hal ini disebabkan karena kotak memantulkan sinyal 32 KHz ( pendeteksi jarak menengah ) dari LED infra merah sebelah kanan, menyebabkan robot bergerak belok kiri.
Robot bergerak belok kiri melakukan langkah langkah sebagai berikut : 1. Motor yang terletak di tengah badan robot (M3)melakukan gerakan
CCW, motor yang terletak di depan badan robot (M1) akan melakukan gerakan CCW, motor yang terletak di belakang badan robot (M2) akan melakukan gerakan CW. Hal ini menyebabkan M3 mengangkat badan robot sehingga terjadi tekanan pada kaki kiri depan dan kaki kanan belakang.
2. Robot terdiam kira kira selama1 detik.
3. M2 akan melakukan gerakan CCW hingga saklar yang terhubung p1.7 tertekan.
4. M1 akan melakukan gerakan CW hingga saklar yang terhubung p1.4 tertekan.
5. M3 akan melakukan gerakan CCW. 6. M2 akan melakukan gerakan CW.
7. M3 dan M2 berhenti bergerak setelah saklar yang terhubung p1.1 dan p1.5 tertekan.
4.2.3 Percobaan 3:
Sebuah kotak diletakkan di sebelah kiri depan robot pada jarak >> 30cm, robot melakukan gerakkan belok kanan (gambar 4.5).
Gambar 4.5 Kondisi jika kotak diletakkan di sebelah kiri
depan robot pada jarak >> 30cm
Hal ini disebabkan karena kotak memantulkan sinyal 32 KHz (pendeteksi jarak menengah) dari LED infra merah sebelah kiri, menyebabkan robot bergerak belok kanan.
Robot bergerak belok kanan melakukan langkah langkah sebagai berikut : 1. Motor yang terletak di tengah badan robot (M3)melakukan gerakan
2. Robot terdiam kira kira selama1 detik.
3. M2 akan melakukan gerakan CW hingga saklar yang terhubung p1.5 tertekan.
4. M1 akan melakukan gerakan CCW hingga saklar yang terhubung p1.6 tertekan.
5. M3 akan melakukan gerakan CCW. 6. M2 akan melakukan gerakan CCW.
7. M3 dan M2 berhenti bergerak setelah saklar yang terhubung p1.0 dan p1.7 tertekan.
8. Robot terdiam kira kira selama1 detik. 9. M2 akan melakukan gerakan CW.
10.M2 berhenti bergerak setelah saklar yang terhubung p1.5 tertekan.
4.2.4 Percobaan 4:
Sebuah kotak diletakkan di sebelah kanan depan robot pada jarak << 5cm, robot melakukan gerakkan mundur kiri (gambar 4.6).
Gambar 4.6 Kondisi jika kotak diletakkan di sebelah kanan
depan robot pada jarak << 5cm
Robot bergerak mundur kiri melakukan langkah langkah sebagai berikut : 1. M2 akan melakukan gerakan CW.
2. M2 berhenti bergerak setelah saklar yang terhubung p1.5 tertekan. 3. M1 akan melakukan gerakan CCW.
4. M1 berhenti bergerak setelah saklar yang terhubung p1.6 tertekan. 5. M3 akan melakukan gerakan CW.
6. M2 akan melakukan gerakan CCW.
7. M3 dan M2 berhenti bergerak setelah saklar yang terhubung p1.1 dan p1.7 tertekan.
8. M1 akan melakukan gerakan CW.
4.2.5 Percobaan 5:
Sebuah kotak diletakkan di sebelah kiri depan robot pada jarak << 5cm, robot melakukan gerakkan mundur kanan (gambar 4.7).
Hal ini disebabkan karena kotak memantulkan sinyal 25 KHz (pendeteksi jarak dekat) dari LED infra merah sebelah kiri, menyebabkan robot bergerak mundur kanan.
Gambar 4.7 Kondisi jika kotak diletakkan di sebelah kiri
depan robot pada jarak << 5cm
Robot bergerak mundur kiri melakukan langkah langkah sebagai berikut : 1. M2 akan melakukan gerakan CCW.
7. M3 dan M2 berhenti bergerak setelah saklar yang terhubung p1.0 dan p1.5 tertekan.
8. M1 akan melakukan gerakan CCW.
9. M1 berhenti bergerak setelah saklar yang terhubung p1.6 tertekan. 10.Robot terdiam kira kira selama1 detik.
4.3. Hasil pengamatan terhadap pemancar infra merah
Dalam perancangan awal frekuensi-frekuensi yang digunakan ditentukan berdasarkan karakteristik dari modul infra merah yaitu 25 kHz untuk jarak dekat (0 cm sampai 10 cm) dan 32 kHz untuk jarak menengah (lebih dari 10 cm sampai 35 cm).
Dari hasil percobaan menggunakan osiloskop digital, didapatkan bentuk sinyal infra merah 25 KHz seperti gambar 4.6.
Gambar 4.8 Bentuk sinyal infra merah 25KHz
s KHz
f
T 40µ
25 1 1 = = =
Dari hasil yang didapat osiloskop digital , terlihat bentuk sinyalnya setengah untuk kondisi high dan setengah untuk kondisi low, caranya
dengan mengeluarkan logika nol selama 22 sµ dan logika satu selama 18 sµ .
Hal ini sesuai dengan listing program :
kiri_41u:
mov r0,#2 mov r2,#3 kulang:
clr p0.1
nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop
setb p0.1 nop
nop nop nop nop
djnz r0,kulang ret
Dari hasil percobaan menggunakan osiloskop digital, didapatkan juga bentuk sinyal infra merah 32 KHz seperti gambar 4.7.
Gambar 4.9 Bentuk sinyal infra merah 32KHz
Untuk f = 32 KHz periodenya
s KHz
f
T 31µ
32 1 1
= =
=
Dari hasil yang didapat osiloskop digital , terlihat bentuk sinyalnya setengah untuk kondisi high dan setengah untuk kondisi low, caranya
dengan mengeluarkan logika nol selama 18 sµ dan logika satu selama 13 sµ .
mata_kir: mov r0,#2
mov r2,#1 ;mata kiri
ulang:
clr p0.1
nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop
setb p0.1 nop nop nop nop nop nop nop nop nop nop
djnz r0,ulang ret
4.4. Permasalahan yang muncul
1. Bagian kanan belakang robot kurang bisa bergerak leluasa. 2. Akibat kurang leluasanya pergerakkan bagian kanan belakang
robot , menyebabkan titik berat robot condong ke bagian kanan jika kaki belakang digerakan kebelakang.
3. Dari sebab yang disebabkan di nomor 1 dan 2 diatas. Robot bergerak sedikit membelok kekanan jika bergerak maju ke depan.
Illustrasi dari permasalah tersebut bisa dilihat pada gambar 4.10 dibawah ini.
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
1. Secara umum robot berkaki kawat yang dibuat dapat berfungsi sesuai dengan yang diharapkan, yaitu dapat mendeteksi halangan benda yang ada didepannya, walaupun pada kondisi tertentu dimana benda yang memantulkan sinyal infra merah terlalu kecil atau terlalu rendah sistem tidak dapat mendeteksi.
2. Sistem pendeteksian halangan dapat berfungsi dengan baik, dengan mampu mendeteksi tiga jarak yang berbeda ( dekat ,menengah dan jauh).
5.2 Saran
DAFTAR PUSTAKA
Malvino. Albert. Paul. PhD,Gunawan, Hanapi. “Prinsip-Prinsip Elektronik”, Edisi kedua,
Penerbit Erlangga. Jakarta. 1986.
Boylestad, R.L, 1996, Electronic Devices and Circuit Theory, 6
thed, by Prentice Hall Inc,
A Simon & Schuster Company, New Jersey, USA.
Jones, Joseph L, “ Mobile robots : inspiration to implementation “, 2
nded, AK
Peters,Ltd. 1999
Paulus Andi Nalwan, “Panduan praktis teknik antarmuka dan pemrograman
Mikrokontroler AT89C51”, Penerbit PT Elex Media Komputindo, 2003.
Eko Putra,A. 2002, “Belajar Mikrokontroler AT89C51/52/55”, Penerbit Gava Media,
Yogyakarta
;@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$ ;---
;ROBOT BERKAKI KAWAT PENDETEKSI JARAK ; BERBASIS AT89S51
;OSKAR IKA ADI NUGROHO ;995114001
;---
;@@@@@@@@@@@@@@@@@@@@@@@@@@@$$$$$$$$$$$$$$$
;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^YYYY ;@ kondisi saklar
;@ Tangan kanan kebelakang (cw) = p1.4 = low ;@ kaki kanan kebelakang (cw) = p1.5 = low ;@ tangan kiri kebelakang (ccw) = p1.6 = low ;@ kaki kiri kebelakang (ccw) = p1.7 = low ;@ tekanan dikiri = p1.1 = low
;@ takanan dikanan = p1.0 = low ;^ kendali untuk motor
0000 ORG 0h 0000 80 05 =0007 SJMP ok 0003 ORG 03h
0003 C2 A8 CLR IE.0 ;matikan interap untuk menghilangkan ;efek bouncing
0005 21 49 =0149 AJMP keputusan
0007 ok:
0007 D2 AF SETB IE.7
0009 75 89 01 MOV TMOD,#01h ;timer 0 mode 16 bit
000C 7C 00 MOV r4,#0 ;keterangan sebelumnya belok ke ? ; dinolkan
000E 7F 00 MOV r7,#0 ;keterangan sebelumnya mundur ke ? ;dinolkan