SKRIPSI
Oleh :
FREGHA HARYANSYAH
0534010073
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
JAWA TIMUR
limpahan rahmat-Nya sehingga penulis bisa menyelesaikan pembuatan Tugas
Akhir ini dengan judul “ROBOT PENGHINDAR HALANGAN DENGAN MIKROKONTROLER AT89C51”.
Tujuan dari pembuatan Tugas Akhir ini adalah sebagai salah satu syarat
untuk menyelesaikan program studi Strata Satu (S1) pada jurusan Teknik
Informatika, Fakultas Teknologi Industri, UPN “VETERAN” Jawa Timur.
Dalam menyelesaikan Tugas Akhir ini penulis menyadari telah banyak
mendapatkan bantuan dari berbagai pihak, baik bantuan dari segi moril, materiil
maupun spiritual. Oleh karena itu pada kesempatan ini penulis ingin
mengucapkan terima kasih yang sebesar-besarnya kepada :
1. Allah SWT atas segala limpahan Karunia, Rahmat, dan Perlindungan – Nya
2. Kedua orang tua dan anggota keluarga kami tercinta, Terima kasih atas segala
doa dan kepercayaannya. Penulis telah membuktikan tanggung jawabnya
dengan penyelesaian tugas akhir ini
3. Bapak Ir. Sutiyono, MT selaku Dekan Fakultas Teknologi Industri Universitas
Pembangunan Nasional “Veteran” Jawa Timur Surabaya.
4. Bapak Basuki Rahmat, S.Si, MT selaku Ketua Jurusan Teknik Informatika
Universitas Pembangunan Nasional “Veteran” Jawa Timur Surabaya tahun
angkatan 2008 – 2009 . Beliau ini sekaligus menjadi dosen pembimbing I
penulis yang sangat penulis banggakan. Karena beliau, arahan dan motifasinya
saat membimbing akhirnya penulis dapat menyelesaikan Tugas Akhir ini
sehingga penulis dapat menyelesaikan Tugas Akhir ini.
6. Bapak Delta Ardy Prima, S.ST selaku dosen penguji sidang TA yang telah
memberi sanggahan atau masukan bersifat membangun bagi penulis sehingga
penulis dapat menyelesaikan Tugas Akhir ini.
7. Bapak I Geda Susrama Md, S.T, M.Kom selaku dosen penguji saat Sidang
LESAN yang telah memberi masukan kepada penulis sehingga penulis dapat
menyelesaikan Tugas Akhir ini.
8. Bapak Bapak Moh. Irwan Afandi, ST, Msc selaku dosen penguji saat Sidang
LESAN yang telah memberi masukan kepada penulis sehingga penulis dapat
menyelesaikan Tugas Akhir ini.
9. Teman – teman penulis dari Teknik Informatika, khususnya KELAS B
angkatan tahun 2005.Teman – teman penulis lainnya tanpa terkecuali yang
tidak mungkin penulis sebutkan namanya satu per satu, terima kasih telah
membantu dan memberikan do’anya kepada penulis untuk menyelesaikan
Tugas Akhir ini.
10.Adi pria yang telah banyak membantu dalam pembuatan tugas akhir ini
11.Teman – teman kemlaten, terima kasih atas segala masukannya.
iv
Penulis menyadari bahwa Penulisan Tugas Akhir ini masih memiliki
banyak kekurangan dan jauh dari kata sempurna. Hal ini tidak lain karena
keterbatasan materi dan pengetahuan yang dimiliki penulis. Oleh karena itu kritik
dan saran sangat kami harapkan demi kesempurnaan penyusunan laporan Tugas
Akhir ini.
Akhir kata, penyusun mengharapkan semoga yang apa yang tertuang dalam
laporan Tugas Akhir ini dapat bermanfaat bagi rekan-rekan mahasiswa khususnya
dan bagi seluruh pembaca pada umumnya.
Surabaya, 17 November 2010
DAFTARISI... iii 2.1. Mikrokontroler AT89C51 ...7
2.1.1. Pin – Pin Mikrokontroer AT89C51 ...7
2.1.2. Pemisahan Memori Program dan Memori Data ...10
3.3.1. Perancangan Kerangka Robot...28
3.3.2. Rangkaian Mikrokontroler AT89C51...30
3.3.3. Rangkaian AT89C51 Dengan Sensor Ultrasonik ...31
3.3.4. Driver Motor DC...32
3.3.5. Rangkaian Keseluruhan ...33
3.3.6. Perancangan Arena Robot...34
3.4. Perancangan Perangkat Lunak ...34
3.4.1. Perancangan SoftwareDriver Motor ...34
3.4.2 Perancangan Software Sensor Ultrasonik ...35
BAB IV IMPLEMENTASI...40
4.1. Implementasi Perangkat keras ...40
4.1.1. Kerangka Robot ...40
4.2. Implementasi Perangkat Lunak...46
5.2.2 Analisa Robot Berdasarkan Posisi Arena ...59
5.2.3 Analisa Robot Berdasarkan Sudurt Halangan...60
5.2.4 Analisa Pola Perbelokan Robot ...62
BAB VI KESIMPULAN DAN SARAN...65
6.1. Kesimpulan ...65
6.2. Saran ...66
DAFTAR PUSTAKA...67
LAMPIRAN...68
Gambar 2.3. Sensor Ultrasonik Ping Parallax ...21
Gambar 2.4. Prinsip Kerja Sensor Ultrasonik...22
Gambar 3.1. Perancangan Kerangka Robot Tampak Bawah...29
Gambar 3.2. Perancangan Kerangka Robot Tampak Samping...29
Gambar 3.3. Skema Rangkaian Mikrokontroler AT89C51 ...30
Gambar 3.4. Skema Rangkaian AT89C51 dengan Sensor Ultrasonik ...31
Gambar 3.5. Skema Rangkaian Driver motor DC ...32
Gambar 3.6. Rangkaian Keseluruhan Robot Penghindar Halangan ...33
Gambar 3.7. Perancangan Arena...34
Gambar 3.8. Digram Alir Perancangan Test Gerak Robot ...35
Gambar 3.9. Flowchart Sensor Depan...36
Gambar 3.10. Flowchart Sensor Kanan...36
Gambar 3.11. Flowchart Sensor Kiri...37
Gambar 4.1 . Kerangka Robot Tampak Depan...40
Gambar 4.2. Kerangka Robot Tampak Atas ...41
Gambar 4.3. Kerangka Robot Tampak Bawah ...41
Gambar 4.4. Penghubungan Motor Dc Ke Roda ...41
Gambar 4.5. Rangkaian Mikrokontroler ...42
Gambar 4.6. Rangkaian Driver Motor ...43
Gambar 4.7. Rangkaian Mikrokontroller Dengan Sensor Ultrasonik...44
Gambar 4.8. EDT Programmer hardware...45
Gambar 4.9. Arena Robot ...45
Gambar 4.10. Tampilan Keil C51...47
Gambar 4.11. EDT programmer software...48
Gambar 5.1. Pengujian driver motor ...54
Gambar 5.2. Pengujian Sensor Ultrasonik Manual...56
Gambar 5.3. Uji Coba Robot ...57
Gambar 5.4. Uji Coba Pada Marmer ...59
Gambar 5.9. Sudut Halangan 700...61
Gambar 5.10. Sudut Halangan 800...61
Gambar 5.11. Sudut Halangan 900...61
Gambar 5.12. Sudut Halangan 1000...62
Gambar 5.13. Sudut Halangan 1100...62
viii
Tabel 5.3. Uji Coba Robot Berdasarkan Kondisi Lantai ...58
Tabel 5.4. Uji Coba Robot Berdasarkan Kondisi Lantai ...60
Tabel 5.5. Uji Coba Robot Berdasarkan Sudut Halangan...61
pindah tempat dari tempat satu ke tempat yang lain. Hal ini menginspirasi pembuatan prototype robot penghindar halangan yang dapat berjalan terus menerus untuk menghindari halangan. Prototype robot penghindar halangan ini termasuk jenis mobile robot yang memiliki fungsi menyerupai makhluk hidup yang dapat berpindah tempat tanpa membentur halangan.
Prototype robot penghindar halangan ini dilengkapi motor DC gearbox
sebagai penggerak robot dan sensor ultrasonik yang berfungsi sebagai kemudi robot untuk menghindari halangan. Kontrol utama robot penghindar halangan adalah mikrokontroler yang berfungsi mengatur kinerja dari sensor ultrasonik dan motor DC, pada saat catu daya robot dihidupkan mikrokontroler akan memerintahkan sensor ultrasonik untuk memancarkan sinyal ultrasonik yang berfungsi mendeteksi halangan disekitar robot sehingga pada saat sensor ultrasonik mengirim data pada mikrokontroler, fungsi dari motor DC akan dieksekusi oleh mikrokontroler, agar robot dapat berjalan sesuai data yang dikirim oleh sensor ultrasonik ke mikrokontroler, sehingga robot penghindar halangan dapat berjalan secara terus-menerus tanpa menabrak halangan yang ada di sekitar robot.
Dari hasil pengujian, robot penghindar halangan dapat menjelajah arena dan dapat menghindari halangan dengan baik jika kondisi lantai tidak licin dan pantulan sinyal ultrasonik yang dipancarkan oleh sensor ultrasonik dapat diterima kembali oleh sensor ultrasonik dengan sudut halangan tertentu.
Kata Kunci : sensor ultrasonik, mikrokontroller, motor DC gearbox
1.1 Latar Belakang
Seiring dengan berkembangnya teknologi pada saat ini, kita dihadapkan
pada sesuatu yang dapat membuat daya kreaktivitas kita semakin meningkat.
Untuk mengembangkan kreaktivitas tersebut saya mencoba membuat suatu
rancangan prototype robot penghindar halangan.
Robot penghindar halangan adalah sejenis robot yang didesain untuk
mendeteksi adanya halangan di sekitar. Tugas robot berjalan secara terus menerus
tanpa membentur suatu halangan dan dapat mencari jalan keluar apabila robot
menemui jalan buntu. Sehingga Robot penghindar halangan dapat dikatakan
sebagai robot penjelajah. Robot penghindar halangan termasuk jenis mobile robot
yang menyerupai fungsi makhluk hidup yang dapat berpindah.
Konstruksi Robot penghindar halangan ini digerakkan oleh dua penggerak.
Penggerak menyebabkan gerakan maju atau mundur, sedangkan arah pergerakan
dipengaruhi oleh kombinasi arah putar kedua penggerak. Kedua penggerak motor
yang bekerja secara diferensial, tidak diperlukan suatu kemudi.
Sebagai kemudi robot penghindar halangan, saya menggunakan sensor
ultrasonik. Sedangkan kontrol robot atas sensor ultrasonik dan penggerak motor
dibutuhkan mikrokontroler yang berfungsi menerima data dari sensor ultrasonik
sehingga mikrokontroler dapat menggerakkan motor sesuai data yang diterima
dari sensor ultrasonik Dengan adanya sensor ultrasonik dan penggerak motor,
maka robot dapat berjalan tanpa membentur halangan. Agar fungsi robot untuk
menghindari halangan tercapai, maka dibuatlah sebuah arena sebagai simulasi
jalur robot untuk menghindari halangan.
1.2 Perumusan Permasalahan
Pada tugas akhir ini perumusan masalahnya membahas mengenai robot
penghindar halangan yang berada di depan, maupun di samping kiri dan kanan
robot. dibawah ini adalah beberapa perumusan masalah dari robot penghindar
halangan :
1. Membuat perangkat lunak yang mampu mengontrol pergerakan robot
untuk menghindari halangan secara otomatis.
2. Membuat komunikasi data serial sehingga dapat menyalurkan
informasi yang telah diolah oleh software dari komputer ke
mikrokontroller
3. Bagaimana robot dapat mengetahui halangan yang ada di depan,
samping kanan, maupun samping kiri sehingga robot dapat
menghindarinya.
4. Bagaimana robot dalam melakukan kinerja berupa gerakan : maju,
belok kanan, dan belok kiri setelah mendeteksi adanya halangan.
1.3 Batasan Permasalahan
Dalam menganalisa robot penghindar halangan ini, perlu diberikan
pemecahan serta pembahasannya. Adapun batasan – batasannya adalah sebagai
berikut :
1. Robot menggunakan motor DC gearbox.
2. Menggunakan IC L298 untuk driver motor.
3. Sensor ultrasonik yang digunakan adalah buatan Ping parallax.
4. Menggunakan bahasa pemrograman C ++.
5. Mikrokontroller yang digunakan adalah AT89C51
1.4 Tujuan
Adapun tujuan dilaksanakan perancangan tugas akhir ini adalah :
Membuat sistem yang dapat mengidentifikasi suatu halangan yang berada
di depan, samping kanan, maupun samping kiri robot sehingga didapatkan respon
untuk menghindarinya.
1.5 Manfaat
Manfaat dari penelitian :
1. Untuk pengembangan prototype robot pendeteksi titik api.
2. Untuk pengembangan prototype robot pemadam api.
1.6. Metodologi Penelitian
Metode penelitian yang digunakan dalam pembuatan sistem
mikrokontroler ini percobaan langsung jika gagal coba lagi atau trayer error
1. Study literatur, metode pengumpulan data yang diperoleh dari buku-buku
yang tersedia serta dari browsing melalui internet.
2. Perencanaan alat, metode dalam perencanaan alat yang akan dibuat.
3. Pembuatan kerangka robot.
4. Pembuataan rangkain elektronika robot.
5. Pembuatan software, metode pembuatan software yang akan ditanam
dalam sistem mikrokontroler.
6. Pengujian alat dan analisa alat, metode ini untuk menguji alat yang telah
dibuat serta hasil analisa terhadap data hasil pengujian.
7. Kesimpulan, metode dalam mengambil kesimpulan dari hasil pengujian
dan analisa data pada sistem.
8. Penyusunan buku laporan, metode dalam pengambilan laporan
berdasarkan serangkaian kegiatan yang telah dilakukan dalam
penyelesaian tugas akhir.
1.7. SISTEMATIKA PEMBAHASAN
Dalam penyusunan tugas akhir, sistematika pembahasan diatur dan
disusun dalam enam bab, dan tiap-tiap bab terdiri dari sub-sub bab. Untuk
memberikan gambaran yang lebih jelas, maka diuraikan secara singkat mengenai
BAB I : PENDAHULUAN
Bab ini menjelaskan tentang latar belakang, perumusan dan pembatasan
masalah, tujuan dan manfaat, serta metodologi dan sistematika penulisan.
BAB II : TINJAUAN PUSTAKA
Bab ini menjelaskan tentang mengenai teori – teori, yang digunakan
dalam perancangan dan pembuatan alat serta pendapat - pendapat tentang sistem
yang dibangun serta mengenai prinsip kerja dari komponen yang digunakan..
BAB III : PERANCANGAN
Pada bab ini membahas mengenai apa saja yang perlu dianalisa untuk
kebutuhan sistem meliputi : kebutuhan data, kebutuhan proses, perancanangan
sistem berbasis mikrokontroler AT89C51, komunikasi sensor ultrasonik ping
parallax, serta analisa dan desain sistem yang telah dibuat sebelumnya dan
kebutuhan hardware dan software
BAB IV : IMPLEMENTASI
Bab ini menjelaskan tentang implementasi dari pembuatan perancangan
robot penghindar halangan.
BAB V : UJI COBA
Bab ini berisi tentang pengujian driver motor, sensor ultrasonik serta uji
BAB VI : KESIMPULAN
Bab ini berisi tentang kesimpulan dan saran yang mungkin dapat
Dalam pembuatan robot penghindar halangan ini adalah memerlukan
mikrokontroler AT89C51 sebagai pengatur jalannya robot, motor dc sebagai
penggerak robot., sensor ultrasonik sebagai petunjuk halangan dan driver motor
pengatur kecepatan, serta akumulator sebagai sumber tegangan.
2.1 Mikrokontroler AT89C51
Mikrokontroler AT89C51 adalah sebuah mikrokontroler buatan ATMEL
[3]. Mikrokontroler ini mempunyai 40 pin 4 port dan masih termasuk dalam
keluarga mikrokontroler MCS-51 yaitu merupakan versi yang dilengkapi dengan
ROM (Internal) yaitu berupa EEPROM. Mikrokontroler AT89C51 adalah low
power high performance CMOS 8 bit, 4 Kbyte flash Programmable and Eresable
Read Only Memory (PEROM). IC mikrokontroler ini kompatible dengan standar
MCS-51 baik dari instruksi maupun pin-pinnya yang dapat diaplikasikan sebagai
Embedded Controller.
2.1.1 Pin-Pin Mikrokontroler AT89C51
Susunan pin-pin mikrokontroler AT89C51 seperti Gambar 2.1 dapat
dijelaskan sebagai berikut :
• Pin 1 sampai 8 adalah Port 1 : Merupakan Port paralel 8 bit data dua arah
(bidirectional) yang dapat digunakan untuk berbagai keperluan (general
purpose).
• Pin 9 (RESET) : Masukan reset aktif tinggi. Pulsa transisi dari rendah ke
tinggi akan mereset AT98C51. Pin ini dihubungkan dengan rangkaian
power on reset yang terdiri dari sebuah kapasitor dan sebuah resistor yang
berfungsi sebagai pembangkit frekuensi.
• Pin 10 sampai 17 adalah Port 3 : Port paralel 8 bit dua arah yang
memiliki fungsi pengganti. Fungsi pengganti meliputi TxD (Transmite
Data), RxD (Receiver Data), Int 0 (Interrupt 0), Int 1 (Interrupt 1), T0
(Timer 0), T1 (Timer 1), WR (Write), dan RD (Read). Bila fungsi
pengganti tidak dipakai, pin-pin ini dapat digunakan sebagai port paralel 8
bit serba guna.
• Pin 18 (XTAL 1) : Pin masukan ke rangkaian osilator internal. Sebuah
osilator kristal atau sumber osilator luar dapat digunakan.
• Pin 19 (XTAL 2) : Pin keluaran ke rangkaian osilator internal. Pin ini
dipakai bila menggunakan osilator kristal.
• Pin 20 (GROUND) : Dihubungkan ke Vss atau ground.
• Pin 21 sampai 28 adalah Port 2 : : Merupakan Port paralel 8 bit data dua
arah (bidirectional) yang dapat digunakan untuk berbagai keperluan
(general purpose).
• Port paralel 2 (P2) selebar 8 bit dua arah (bidirectional). Port 0 ini
• Pin 29 : Pin PSEN (Program Store Enable) yang merupakan sinyal
pengontrol yang membolehkan program memory eksternal masuk ke
dalam bus selama proses pemberian/pengambilan instruksi (Fetching).
• Pin 30 : Pin ALE (Address Latch Enable) yang digunakan untuk
menahan alamat memory eksternal selama pelaksanaan instruksi.
• Pin 31 (EA) : Bila pin ini diberi logika tinggi (H), mikrokontroler akan
melaksanakan instrusi dari ROM / EPROM ketika isi program counter
kurang dari 4096. Bila diberi logika rendah (L) maka mikrokontroler akan
melaksanakan seluruh instruksi dari memori program luar.
• Pin 32 sampai 39 adalah Port 0 : Merupakan port paralel 8 bit (open
drain) dua arah. Bila digunakan untuk mengakses program luar, port ini
akan memultipleks alamat memori dengan data.
• Pin 40 : Merupakan Vcc yang dihubungkan ke tegangan positif.
2.1.2 Pemisahan Memori Program dan Memori Data
Mikrokontroler AT89C51 memiliki ruang alamat memori data dan
program yang terpisah. Pemisahan memori program dan data tersebut
membolehkan memori data diakses dengan alamat 8-bit, sehingga dapat dengan
cepat dan mudah disimpan dan dimanipulasi oleh CPU 8-bit. Namun demikian,
alamat memori data 16-bit bisa juga dihasilkan melalui register DPTR. Memori
program hanya bisa dibaca saja. Terdapat memori program yang bisa di akses
langsung hingga 64 Kbyte. Sedangkan strobe untuk akses program memori
eksternal melalui sinyal PSEN atau Program Store Enable. Memori data
menempati suatu ruang alamat yang terpisah dari memori program. Memori
eksternal dapat di akses secara langsung hingga 64 Kbyte dalam ruang memori
data eksternal. CPU akan memberikan sinyal baca dan tulis, RD dan WR, selama
pengaksesan memori data eksternal. Memori data eksternal dan memori program
eksternal dapat dikombinasikan dengan cara menggabungkan sinyal RD dan
PSEN melalui gerbang AND dan keluarannya sebagai tanda baca ke memori
data/program eksternal.
a. Memori Program
Memori program atau ROM (Read Only Memory) adalah tempat
menyimpan data yang permanen. Memori bersifat non-volatile artinya tanpa
dicatu, data-data tidak akan hilang. Memori program hanya dapat dibaca
saja. Setelah direset maka eksekusi dimulai dari alamat 0000H. Setiap
CPU melompat kelokasi tersebut dimana pada lokasi tersebut terdapat
subrutin yang harus dikerjakan.
b. Memori Data
Memori data atau RAM (Random Acces Memory) adalah tempat
menyimpan data yang bersifat sementara. Maka memori bersifat volatile
yaitu data akan hilang bila catu daya ditiadakan. Pada memori data dapat
dilakukan pembacaan maupun penulisan data. Ruang memori terlihat dalam
3 blok, yang disebut sebagai lower 128, upper 128 ruang SFR (Special
Function Register). Internal memori data dialamati dengan lebar 1 byte.
Lower 128 (alamat 00H-7FH) terdapat pada semua anggota keluarga
MCS51.
2.1.3 Port Input / Output
Satu chip mikrokontroler ini memiliki 32 jalur port yang dibagi menjadi 4
buah port 8 bit. Masing-masing port ini bersifat bidirectional sehingga dapat
digunakan sebagai input atau output . Pada bok diagram AT89C51 dapat dilihat
latch tiap bit pada keempat port : port 0, port 1, port 2, port 3. Masing-masing
jalur port terdiri dari latch, output driver dan input buffer. Port 0 dan port 2 dapat
digunakan sebagai saluran data dan alamat. Port 0 sebagai saluran data, sedangkan
port 2 sebagai saluran data dan alamat sekaligus yang dimultipleks. Untuk
mengakses memory eksternal, port 0 akan mengeluarkan alamat bawah memori
2 mengeluarkan bagian atas memory eksternal sehingga total alamat semuanya 16
bit.
Khusus untuk port 3 mempunyai fungsi yang lain diluar sebagai port.
Fungsi ini akan berbeda untuk tiap-tiap kaki dengan urutan sebagi berikut :
- Port 3.0 : port input serial, RXD.
- Port 3.1 : port output serial, TXD.
- Port 3.2 : input interupsi eksternal, INT0.
- Port 3.3 : input interupsi internal, INT1.
- Port 3.4 : input eksternal untuk timer /counter 0, T0.
- Port 3.5 : input eksternal untuk timer /counter 1, T1.
- Port 3.6 : sinyal tulis memori eksternal, WR.
- Port 3.7 : sinyal baca memori eksternal, RD.
Penggunaan port 3 dapat dialamati langsung sebagai kontrol langsung pada suatu
tugas yang dilakukan oleh fungsi yang dimiliki oleh port ini.
2.1.4 Timer / Counter
Satu chip mikrokontroler ini memilik dua timer yang dapat
dikonfigurasikan beroperasi sebagai timer atau counter. Saat berfungsi sebagai
timer, isi register timer ditambah 1 untuk tiap siklus mesin, sedangkan untuk
fungsi counter isi register akan bertambah 1 setiap ada transisi sinyal pada pin
input eksternal. Pada pemanfaatan sebagai counter, sinyal input yang
dimaksudkan dapat berupa low level atau falling edge trigger. Counter akan
pada nilai hitungan untuk tiap sampling. Inisialisasi harga awal ini berupa nilai
preset negatif counter yang diatur sebelum counter dijalankan.
Demikian halnya dengan pemanfaatan timer yang memerlukan inisialisasi
awal berupa konstanta waktu yang menentukan sampai berapa lama akan terjadi
roll over. Penentuan harga preset ini berhubungan dengan penggunaan frekuensi
clock dari sistem penentu waktu sampling dari counter untuk mencacah suatu
pulsa masukan dari luar dengan memanfaatkan kontrol interupsi yang ada serta
pengaturan program. Sebagai tambahan pada pemilihan counter/timer, timer 0 dan
timer 1 mempunyai 4 buah modul yang dapat dipilih dengan menentukan
pasangan bit M0 dan M1 pada register TMOD. Untuk pemilihan timer/counter
dikontrol dengan bit C/T di TMOD.
• Mode 0 : Pada mode ini timer register dikonfigurasikan sebagai register 13
bit. Ke-13 bit register tersebut terdiri dari 8 bit TH1 dan 5 bit TL1. Selama
perhitungan roll over dari semua 1 ke semua 0, TF1 (Timer Interrupt Flag) di
set. Pada dasarnya operasi mode 0 sama untuk timer 0 dan timer 1.
• Mode 1 : Mode 1 adalah timer register 16 bit dan dapat generator boudrate.
Operasi mode 1 sama dengan mode 0.
• Mode 2 : Mode 2 adalah timer register dengan konfigurasi 8 bit counter
(TL1) auto reload. Overflow dari TL1 tidak hanya menset TF1 tapi juga
me-reload TL1 dengan isi TH1. Setelah me-reload isi TH1 tidak akan berubah.
• Mode 3 : Pada mode ini timer 1 tidak akan bekerja. Sedangkan timer 0
menjadi 2 counter yang terpisah. TL0 digunakan sebagai bit kontrol untuk
timer 0; C/T, GATE, TR0, INT0, dan TF0 seolah-olah mengontrol timer 1.
2.1.5 Sistem Interupsi
Mikrokontroler AT89C51 mempunyai 5 sumber interupsi. Dua sumber
merupakan sumber eksternal INT0 dan INT1. Kedua interupsi eksternal dapat
aktif level atau aktif transisi tergantung isi IT0 dan IT1 pada regiter TCON.
Interupsi timer dan imer 1 aktif pada saat timer yang sesuai mengalami roll over.
Interupsi serial dibangkitkan dengan melakukan operasi OR dan R1 dan T1.
Tiap-tiap sumber interupsi dapat enable atau disable secara software.
Tingkat prioritas semua sumber interupsi dapat diprogram sendiri-sendiri
dengan set atau clear bit pada SFRs IP (Special Function Register’s Interrupt
Priority). Interupsi tingkat rendah dapat diinterupsi oleh interupsi yang
mempunyai tingkat lebih tinggi, tetapi tidak sebaliknya. Walaupun demikian
interupsi yang mempunyai tingkat lebih tinggi tidak bisa menginterupsi sumber
interupsi yang lain.
2.1.6 Instruksi Dasar
Perangkat lunak adalah seperangkat instruksi yang disusun menjadi sebuah
program untuk memerintah komputer melakukan suatu pekerjaan. Sebuah
instruksi selalu berisi kode pengoperasian (Op-Code), kode pengoperasian inilah
Instruksi-instruksi yang digunakan dalam memprogram suatu program yang diisikan pada
IC AT89C51 adalah instruksi pemrograman bahasa assembler atau sama dengan
instruksi pemrograman pada IC mikrokontroler 8031 dalam MCS-51.
a. Instruksi Transfer Data (Perintah Pemindahan Data)
Instruksi transfer data terbagi menjadi dua kelas operasi sebagai berikut :
1. Transfer data utama (General Purpose Transfer), yaitu : MOV, PUSH,
dan POP.
2. Transfer spesifik akumulator (Akumulator Specifik Transfer), yaitu :
XCH, XCDH, dan MOVC.
Instruksi transfer data adalah instruksi pemindahan atau perukaran antara
operand sumber dengan operand tujuan. Operand-nya dapat berupa register,
memori atau lokasi suatu memori.
Deskripsi instruksi transfer data tersebut dijelaskan dibawah ini :
• MOV : Transfer byte dari operand sumber ke operand tujuan.
• PUSH : Transfer byte dari operand sumber ke suatu lokasi dalam stack
yang ditunjuk oleh register penunjuk (Stack Pointer).
• POP : Transfer byte dari dalam stack ke operand tujuan.
• XCH : Pertukaran data antara operand akumulator dengan operand
b. Instruksi Aritmatik (Instruksi Perhitungan)
Operasi dasar aritmatik seperti penjumlahan, pengurangan, perkalian, dan
pembagian dimiliki oleh AT89C51 dengan menemonic tersebut dijelaskan
sebagai berikut :
• INC : Menambah suatu isi sumber operand dan menyimpan hasilnya ke
operand tersebut.
• ADD : Penjumlahan antara akumulator dengan sumber operand dan
hasilnya disimpan di akumulator.
• ADD : Penjumlahan antara akumulator dengan sumber operand dan
hasilnya disimpan di akumulator.
• ADDC : Hasil dari instruksi ADD ditambah satu bila CY diset.
• SUBB : Pengurangan akumulator dengan sumber operand, lalu dikurangi
satu CY diset, hasilnya disimpan dalam operand tersebut.
• DEC : Mengurangi sumber operand dengan 1, dan hasilnya disimpan
pada operand tersebut.
• MUL : Perkalian antara akumulator dengan Register.
• DIV : Pembagian antara akumulator dengan Register B dan hasilnya
disimpan dalam akumulator, sisanya di register B.
c. Instruksi Logika
Mikrokontroler AT89C51 dapat melakukan operasi bit maupun operasi
a. Operasi logika operand tunggal, yang terdiri dari CLR, SETB, CPL, RL,
RLC, RR, RRC, dan SWAB.
b. Operasi logika dua operand seperti : ANI, ORL, dan XRL.
Operasi yang dilakukan oleh AT89S51 dengan pembacaan instruksi
logika tersebut dijelaskan di bawah ini :
• CLR : Menghapus byte atau bit menjadi satu .
• SETB : Mengeset bit atau byte menjadi satu.
• CPL : Mengkomplemenkan akumulator.
• RL : Rotasi akumulator 1 bit ke kiri dan bit 1 digeser melalui carry
flag.
• RR : Rotasi akumulator ke kanan.
• RLC : Rotasi akumulator 1 bit ke kanan dan bit 1 digeser melalui carry
flag.
• SWAB : Pertukaran nibble orde tinggi.
• ANL : Operasi logika AND dan hasilnya disimpan dalam operand
pertama.
• ORL : Operasi logika OR dan hasilnya disimpan dalam operand
pertama.
• XRL : Operasi logika XOR dan hasilnya disimpan dalam operand
d. Instruksi Transfer Kendali
Instruksi transfer kendali (control transfer) terdiri dari tiga kelas operasi
yaitu:
a. Lompatan tidak bersyarat (Unconditional Jump) seperti : ACALL,
AJMP, LJMP, JMP @ A+DPTR
b. Lompatan bersyarat (Conditional Jump) seperti : JZ, JNZ, JB, CJNE,
dan DJNZ.
c. Interupsi seperti : RET1 dan RET2.
Penjelasan dari instruksi diatas sebagai berikut :
• ACALL : Instruksi pemanggilan subroutine tidak lebih dari 2 Kbyte.
• LCALL : Pemangilan subroutine yang mempunyai alamat antara 2
Kbyte.
• AJMP : Lompatan untuk percabangan maksimum 2 Kbyte.
• LJMP : Lompatan untuk pencabangan maksimum 64 Kbyte.
• JMP @ A+DPTR : Instruksi percabangan ke suatu lokasi yang
ditunjukkan oleh DPTR + isi akumulator
• JNB : Percabangan bila bit tidak diset.
• JZ : Percabangan akan dilakukan jika akumulator adalah nol.
• JNZ : Percabangan akan dilakukan jika akumulator adalah tidak nol.
• JC : Percabangan terjadi jika CY diset “1”.
• CJNE : Operasi perbandingan operand pertama dengan operand kedua,
• DJNZ : Mengurangi isi operand sumber dan percabangan akan
dilakukan apabila isi operand tersebut tidak nol.
• RET : Kembali ke subroutine.
• RET1 : Kembali ke program interupsi utama.
Sebagai operand dari perlengkapan instruksi tersebut adalah sebagai
berikut :
Rn : Register R0-R7 yang terpilih dari tumpukan Register.
DATA : Lokasi alamat data internal 8 bit, yang dilokasikan pada data
RAM internal (0- 127) SFR pada 128 – 255 (I/O port, Register
pengontrol, Register status).
@R1 : Data RAM internal lokasi 0 – 255 delapan bit, yang dialamati
secara tidak langsung melalui R0 dan register R1.
# DATA8 : Yang diisikan kedalam instruksi adalah 8 bit.
# DATA16 : Yang diisikan kedalam instruksi adalah 16 bit.
Addr 16 : Untuk tujuan alamat 16 bit. Digunakan pada operasi LCAAL
dan LJMP yang dapat dilakukan dimana saja dalam 64 Kbyte daerah
alamat program memori.
2.2 Motor DC
Motor arus searah ( DC ) adalah suatu mesin yang berfungsi mengubah
tegangan listrik DC menjadi tenaga mekanis dimana tenaga gerak merupakan
putaran dari pada rotor [6]. Dalam kehidupan sehari-hari, motor DC terdapat pada
prinsipnya motor arus searah dapat dipakai sebagai generator arus searah,
sebaliknya generator arus searah dapat dipakai sebagai motor arus searah. Pada
prinsipnya, setiap jenis motor listrik dapat digunakan dalam perancangan
pengontrolan secara elektronik terhadap kecepatan dan daya yang disesuaikan
dengan beban yang akan digerakkan oleh motor tersebut. Pada perancangan dan
pembuatan alat ini, digunakan motor DC yang berfungsi untuk maju, mundur,
belok kanan, belok kiri robot penghindar halangan. Kecepatan motor DC dapat
dikendalikan dengan mengubah tegangan yang dikenakan pada motor, pada
dasarnya motor DC merupakan peralatan listrik yang mengubah energi listrik
menjadi energi mekanis. Motor terdiri dari 2 ( dua ) bagian utama yaitu stator dan
rotor, Stator atau bagian diam terdiri dari magnet permanen, dan rotor atau bagian
yang berputar terdiri dari kumparan-kumparan tembaga yang ditanam
dicelah-celah inti besi rotor. Kumparan-kumparan tembaga pada rotor sama prinsipnya
seperti konduktor, dimana setiap konduktor yang mengantar arus mempunyai
medan magnet disekelilingnya, kuat medan magnet tergantung dari kuat arus yang
mengalir. [(Depari,1992)].
2.2.1 Dasar – dasar Motor DC
Pada percobaan Maxwell, bilamana arus listrik yang mengalir dalam
kawat arahnya menjauhi kita (maju), maka medan-medan yang terbentuk disekitar
kawat searah dengan putaran jarum jam. Sebaliknya bila mana arus listrik yang
magnet yang terbentuk disekitar kawat arahnya berlawanan dengan arah putaran
jarum jam.
Besarnya gaya dapat dihitung :
Rumus 2.1. Penghitungan besar gaya F = B. I. L
Berdasarkan sumber arus penguat magnetnya, motor DC dibedakan atas:
1. Motor DC penguat terpisah: arus penguat magnetnya diperoleh dari
sumber DC diluar motor.
2. Motor DC dengan penguat sendiri: arus penguat magnetnya berasal dari
motor itu sendiri
Berdasarkan hubungan lilitan penguat magnet terhadap lilitan jangkar,
motor DC dengan penguat sendiri dibedakan atas:
1. Motor shunt: mempunyai kecepatan yang hampir konstan, perubahan
2. Motor seri: dapat memberikan moment yang besar pada saat mulai start
dengan arus start yang rendah, dapat memberikan perubahan kecepatan
dengan arus yang kecil. Penggunaan untuk pengangkat.
3. Motor kompon: Mempunyai sifat yang sama dengan seri dan
mempunyai moment start yang besar, perubahan kecepatan sekitar 25 %,
biasanya dipakai pada pemecah.
Untuk membalik arah putaran motor DC dapat dilakukan dengan dua cara:
1. Membalik arah arus jangkar, arah arus penguat tetap.
2. Membalik arah arus penguat, arah arus jangkar tetap.
Apabila arah arus jangkar dan arah arus penguat keduanya dibalik, arah
putaran motor tidak berubah.
Gambar 2.2 motor DC
2.3 Sensor Ultrasonik Ping Parallax
Ping ini adalah sebuah modul Ultra sonic, yang biasanya digunakan untuk
mendeteksian jarak [4]. Walaupun diapilkasikan untuk berbagai keperluan. Mulai
dari yang paling sederhana sampai sebagai mata sebuah robot. Modul ping ini
digunakan untuk memancarkan sinyal ultrasonik, dan yang satunya lagi digunakan
untuk menerima pantulan sinyal ultra sonic tersebut. Lama waktu antara
dikirimkannya sinyal dengan diterimanya sinyal itulah yang kemudian dapat
diasumsikan sebagai besaran jarak. Sensor ini memiliki 3 kaki yaitu ground, 5v
untuk sumber tegangan dan sig untuk signal
Gambar2.3 sensor ultrasonik ping parallax
Gelombang ultrasonik adalah gelombang dengan besar frekuensi diatas
frekuensi gelombang suara yaitu lebih dari 20 KHz. Gelombang ini dapat
merambat dalam medium padat, cair dan gas, hal disebabkan karena gelombang
ultrasonik merupakan rambatan energi dan momentum mekanik sehingga
merambat sebagai interaksi dengan molekul dan sifat enersia medium yang
dilaluinya.Sensor ultrasonik terdiri dari rangkaian pemancar ultrasonik yang
disebut transmitter dan rangkaian penerima ultrasonik yang disebut receiver.
Sinyal ultrasonik yang dibangkitkan akan dipancarkan dari transmitter ultrasonik.
Ketika sinyal mengenai benda penghalang, maka sinyal ini dipantulkan, dan
diterima oleh receiver ultrasonik. Sinyal yang diterima oleh rangkaian receiver
dikirimkan ke rangkaian mikrokontroler untuk selanjutnya memberikan perintah
algoritma program mikrokontroler yang dibuat, seperti terlihat pada gambar di
bawah ini.
Gambar2.4 prinsip kerja sensor ultrasonik
a. Pemancar Ultrasonik (Transmitter)
Pemancar Ultrasonik ini berupa rangkaian yang memancarkan sinyal
sinusoidal berfrekuensi di atas 20 KHz menggunakan sebuah transducer
transmitter ultrasonik dan sinyalnya difokuskan melalui sebuah corong / pipa.
Pada penggunaannya, akan digunakan 3 buah pemancar yang masing-masing
mengirimkan sinyal dengan frekuensi yang berbeda-beda.
b. Penerima Ultrasonik (Receiver)
Penerima Ultrasonik ini akan menerima sinyal ultrasonik yang
dipancarkan oleh pemancar ultrasonik dengan karakteristik frekuensi yang
sesuai. Sinyal yang diterima tersebut akan melalui proses filterisasi frekuensi
dengan menggunakan rangkaian band pass filter (penyaring pelewat pita),
keluarannya akan dikuatkan dan dilewatkan ke rangkaian komparator
(pembanding) dengan tegangan referensi ditentukan berdasarkan tegangan
keluaran penguat pada saat jarak antara sensor kendaraan mini dengan
sekat/dinding pembatas mencapai jarak minimum untuk berbelok arah. Dapat
dianggap keluaran komparator pada kondisi ini adalah high (logika ‘1’)
sedangkan jarak yang lebih jauh adalah low (logika’0’). Logika-logika biner ini
PERANCANGAN ROBOT
Pada bab ini menjelaskan mengenai perancangan robot penghindar
halangan baik perancangan hardware maupun software.
3.1. Kebutuhan Perangkat Keras
Untuk membuat robot ini diperlukan beberapa hardware diantaranya
sebagai berikut:
a. Aluminiium
Dalam pembuatan robot ini memerlukan aluminium yang berfungsi
sebagai bahan dasar untuk pembuatan kerangka robot.
b. EDT progammerhardware
Alat yang digunakan untuk mendownload / memasukkan software
yang telah di buat ke dalam mikrokontroller. EDT progammer
hardware ini terhubung ke komputer dengan kabel RS 232.
Dalam hal ini digunakan EDT progammaer untuk komunikasi
serial data program ke PC mikrokontroller.
c. Rangkaian mikrokontroler AT89C51
AT89C51 adalah mikrokontroler dari keluarga MCS-51 yang
dikeluarkan oleh perusahaan Atmel dengan 4Kbyte flash PEROM
(programmable and arasable read only memory). Mikrokontroler ini
memiliki teknologi memori nonvotile artinya isi memori dapat dihapus
dilepaskan.
d. Rangkaian driver motor DC
Untuk dapat menggerakkan robot diperlukan motor DC sebagai
alat yang berfungsi sebagai penggerak roda maju dan mundur. Motor
DC adalah alat yang mengubah pulsa listrik menjadi gerak,
mempunyai prinsip dasar yang sama dengan motor stepper namun
gerakannya bersifat kontinyu atau berkelanjutan. Adapun Motor DC
dipakai nantinya mengunakan tegangan 24V.
e. Sensor ultrasonik
Agar dapat menghindari halangan sensor ultrasonik digunakan
dikarenakan dapat mengeluarkan gelombang sinyal ultrasonik dan jika
ada halangan gelombang akan terpantul dan ditangkap kembali oleh
sensor ultrasonik.
f. Aki dan baterai
Dalam sistem nantinya digunakan aki dan baterai 36V yang
digunakan untuk mikrokontroler dan driver motor. 24V digunakan
untuk driver motor dan 12V unttuk mikrokontroler yang diturunkan
menjadi 5V oleh IC regulator.
3.2. Kebutuhan Perangkat Lunak
Software yang digunakan dalam robot penghindar halangan dengan
a. Bahasa pemrograman C ++
Sebuah software yang digunakan untuk merancang program atau
mengatur jalannya robot sesuai yang kita inginkan yang nantinya akan
digunakan untuk mengontrol driver motor dan sensor ultrasonik.
b. Keil C51
Sebuah software yang digunakan untuk merubah / mengkonvert bahasa
pemrograman C ++ yang telah kita buat ke dalam bentuk heksa maupun
biner yang nantinya akan dimasukkan / didownload kedalam
mikrokontroller AT89C51.
c. EDT programmersoftware.
EDT programmer software adalah sebuah software downloader yang
digunakan untuk menanamkan software yang telah dibuat dalam bahasa
pemograman C ++yang telah dirubah ke biner pada mikrokontroler
AT89C51.
3.3 Perancangan Perangkat Keras
Pada perancangan perangkat keras ini, akan ada penjelasan proses tentang
mikrokontroler AT89C51, EDT programmer hardware, driver motor dc, sensor
ultrasonik.
3.3.1. Perancangan kerangka robot
Pada perancangan kerangka robot ini, kami menggunakan bahan
Gambar3.1 perancangan kerangka robot tampak bawah
Gambar3.2 perancangan kerangka robot tampak samping
Proses selanjutnya setelah pembuatan kerangka robot adalah pemasangan
motor dc dan roda pada kerangka robot. Langkah awal yaitu motor dc dipasang
pada kerangka robot lalu buat baris untuk pemasangan roda. Supaya roda dapat
bergerak sendiri – sendiri antara yang kanan dengan yang kiri tidak berputar, kami
menggunakan bearing. Untuk dapat menggerakkan roda menggunakan motor dc,
Pada rancangan ini rangkaian yang ada pada mikrokontroler AT89C51
adalah rangkaian clock dan rangkaian reset. Rangkaian osilator clock
menggunakan kristal 11,0592 Mhz dengan dua kapasitor 33Pf seperti ditunjukkan
dalam gambar 3.3, nilai clock tersebut disesuaikan dengan kebutuhan dalam
penentuan timer pada sensor ultrasonik
Dan pada rangkaian reset digunakan untuk menghentikan kerja
mikrokontroler dengan kembali ke alamat 00h. Untuk mereset mikrokontroler
AT89C51 yaitu dengan memberikan logika tinggi pada pin reset (pin 9). Logika
tinggi ini dibuat minimal dua machine cycle (24 periode osilator). Jika
menggunakan clock 11,0592 Mhz. Maka logika tinggi minimal kurang lebih
selama 2 ms.
Perancangan ini menggunakan mikrokontroler AT89C51 dengan tiga
buah sensor ultrasonik ping parallax yang dimana terdapat tiga buah pin pada
sensor ultrasonik yaitu vcc, gnd ( ground ) dan sig. Untuk memfungsikan sensor
ultrasonik ini, pin sig perlu di seri dengan dioda 4148 yang diserikan kepada dua
pin pada mikrokontroler AT89C51.
3.3.4. Driver Motor DC
Pada driver motor DC ini saya menggunakan 8 buah dioda 1N 5819, 1
buah IC L 298, 1 buah IC regulator 7805, 2 buah resistor 47 k, 2 buah resistor 2,2
k, 2 buah LED warna merah dan 2 LED warna hijau. IC L298 dihubungkan
dengan 4 dioda untuk 1 motor dc sebagai penyearah arus yang akan diterima oleh
motor dc. Sedangkan resistor berfungsi sebagai hambatan agar arus listrik dari
bateray / akumulator tidak terlalu besar. Untuk LED yang dihubungkan ke motor
dc berguna untuk indikator motor dc apakah maju atau mundur. IC regulator
berfungsi untuk menurunkan tegangan yang diterima oleh L298
Pada rangkaian keseluruhan ini merupakan gabungan dari semua
rangkaian – rangkaian yang sebelumnya telah dirancang yaitu blok rangkaian
mikrokontroller AT89C51, rangkaian driver motor dc yang menggunakan IC L
298, dan rangkaian sensor ultrasonic ping parallax.
Gambar 3.6. Rangkaian keseluruhan robot penghindar halangan
Keterangan untuk gambar rangkaian diatas adalah untuk roda kanan robot
mendapatkan port P1.4 dan P1.5 sedangkan untuk roda kiri robot mendapatkan
port P1.2 dan P1.3. Untuk sensor ultrasonik mendapatkan port 0 yaitu ( P0.5,
3.3.6. Perancangan arena robot
Pada arena robot yang kami buat, kami menggunakan kayu triplek, engsel
dan juga sekrup. Alasan kami menggunakan engsel adalah agar arena dapat dilipat
sehingga mudah untuk dibawa kemana – mana.
Gambar 3.7. PerancanganArena
Pada gambar diatas menjelaskan bahwa kami menggunakan 20 potong
triplek dan setiap potongan triplek memiliki penjang 28 cm dan Lebar 15 cm.
Setiap potongan triplek disambungkan menggunakan engsel yang disekrup.
3.4 Perancangan Perangkat Lunak
Pada perancangan perangkat lunak ini, terdapat 2 bagian yang akan kami
buat yaitu driver motor dan sensor ultrasonik.
3.4.1 Perancangan Software Driver Motor
Pada bagian perangkat lunak driver motor ini saya memastikan bahwa
driver yang dibuat sudah benar dan sudah diuji dalam cara manual untuk dapat
Gambar 3.8 digram alir perancangan test gerak robot
Diatas adalah gambar diagram alir untuk uji coba sederhana untuk
menggerakkan motor dc atau menggerakkan robot dari driver motor, pada
perancangan perangkat lunak driver motor ini mula-mula robot akan kami
gerakkan maju, berbelok kanan lalu bergerak mundur dan terakhir berbelok kiri
ini adalah perancangan perangkat lunak untuk driver motor.
3.4.2 Perancangan Software Sensor Ultrasonik
Agar sistem dapat bekerja dengan baik maka diperlukan perangkat lunak
yang mengatur kerja dari keseluruhan rangkaian. Pertama-tama yang dibuat
adalah program alir (flowchart) dan kemudian dilakukan pembuatan program.
Pembuatan perangkat lunak harus melalui proses-proses uji coba secara
Gambar 3.9. Flowchart sensor depan
Dari gambar 3.9 menjelaskan bahwa ketika robot pertama kali berjalan,
robot akan memancancarkan sensor ultrasonik depan. Jika robot tidak menemukan
halangan atau jarak halangan halangan depan > 20 cm maka robot akan jalan lurus
terus ke depan dengan delay 3 detik.
membaca sensor depan ketika di depan robot menemukan halangan atau jarak
halangan <= 20 cm, maka langkah kedua robot akan melakukan cek sensor
halangan kanan. Jika di sebelah kanan robot tidak ada halangan atau halangan >20
cm, maka robot akan belok kanan dengan delay 2 detik.
Gambar 3.11. Flowchart sensor kiri
Dari gambar flowchart di atas dapat dijelaskan bahwa setelah langkah
ketiga setelah robot melakukan cek sensor kanan, maka robot akan melakukan cek
sensor kiri. Jika sensor kanan robot membaca adanya halangan atau halangan <=
20 cm maka robot akan melakukan cek sensor kiri. Jika di sebelah kiri robot tidak
ada halangan atau halangan > 20 cm, maka robot akan berbelok ke kiri dengan
Gambar 3.12. Flowchart semua sensor
Untuk penjelasan diagram alir diatas adalah pada saat robot hidup atau
catu daya dihidupkan pertamakali yang robot lakukan adalah pemancaran
gelombang ultrasonik pada semua sensor, pada saat sensor depan
mengeluarkan gelombang dan tidak ada halangan atau jarak halangan > 20
cm, maka robot akan berjalan maju dengan delay 3 detik. Jika pada saat robot
berjalan maju dan jarak halangan sudah <= 20 cm maka robot akan melakukan
pengecekan pada sensor sebelah kanan, jika disebelah kanan tidak terdapat
halangan atau jarak halangan > 20 cm maka robot akan berbelok kearah kanan
dengan delay 2 detik. Jika disebelah kanan robot terdapat halangan atau
halangan > 20 cm maka robot akan berbelok ke kiri. Namun apabila sebelah
kiri robot terdapat adanya halangan atau jarak halangan <= 20 cm maka robot
akan mundur sambil memancarkan sensor ultrasonik kanan dan kiri sampai
menemukan sisi kanan atau kiri yang kosong tanpa adanya halangan atau jarak
sebelumnya. Implementasi dalam membuat robot penghindar halangan yaitu
terdiri dari perangkat keras dan proses program dari perangkat lunak.
4.1. Implementasi Perangkat keras
Untuk gambaran sistem yang digunakan dalam implementasi robot
penghindar halangan ini adalah pertama user menghidupkan catudaya dari proses
ini maka mikrokontroler langsung mengeksekusi dan memerintahkan sensor
ultrasonik dan hasilnya dikembalikan ke mikrokontroler dan memerintahkan ke
driver motor, dan driver motor memerintahkan ke motor dc untuk bergerak.
4.1.1 Kerangka Robot
Dalam rangkaian mekanik robot terbuat dari aluminium dikarenakan
aluminium adalah benda yang ringan namun kuat. Dalam membuat rangkaian
mekanik robot diperlukan skrup untuk menghubungkan antar potongan dan bor
dengan ukuran 1,5 mm untuk membuat lubang skrup.
Gambar 4.1. Kerangka robot tampak depan
Gambar 4.2. Kerangka robot tampak atas
Gambar 4.3. Kerangka robot tampak bawah
menggunakan motor dc, kami menggunakan optibelt sebagai penghubungnya.
Untuk pemasangan roda robot kami menggunakan bearing untuk membantu
perputaran dan mengurangi gesekan pada saat roda digerakkan oleh motor dc.
4.1.2 Rangkaian MikrokontrolerAT89C51
Langkah penyusunan selanjutnya dari hardware robot penghindar halangan
ini adalah pengimplementasian dari perancangan dari mikrokontroler AT89C51
Gambar 4.5 Rangkaian mikrokontroler
Pada gambar rangkaian diatas terdapat satu komponen yang berfungsi
memberi tegangan sebesar 5Vdc yaitu komponen IC ( integrated circuit )
regulator atau IC 7805 komponen ini berfungis untuk menurunkan sumber
tegangan dc yang diterima oleh rangkaian menjadi 5Vdc ini dikarenakan
mikrokontroler AT89C51 bekerja pada sumber tegangan 5Vdc, sumber tegangan
Rangkaian driver motor ini berfungsi untuk menggerakkan roda untuk
dapat bergerak maju, mundur serta untuk mengatur kecepatan pergerakan roda
robot yang telah terhubung oleh motor dc.
Gambar 4.6 Rangkaian driver motor
Pada gambar driver motor diatas driver motor mempunyai 4 pin yang
masuk ke mikrokontroler, yaitu port P1.2, P1.3, P1.4, P1.5. Driver tersebut
menggunakan IC L298 dan tambahan 8 buah dioda 1n5819 dan IC regulator 7805,
motor dc dapat dijalankan secara langsung dengan menggunakan PWM. Resistor
berfungsi untuk menahan arus yang besar, LED warna hijau dan meah digunakan
untuk mengetahui arah perputaran motor dc atau roda robot, jika LED warna hijau
menyala jadi perputaran maju jika LED warna merah menyala maka perputaran
mundur.
4.1.4 Rangkaian sensor ultrasonik
Telah dibahas pada bab sebelumnya untuk perancangan perangkat keras
dari sensor ultrasonik dan penulis menerapkannya pada bab ini yaitu implementasi
Gambar 4.7. Rangkaian mikrokontroller dengan sensor ultrasonik
Pada gambar diatas adalah gambar untuk rangkaian ultrasonik yang
dihubungkan dengan rangkaian mikrokontroler, melaui 2 port yaitu port 0 ( P0.5,
P0.6, P0.7 ) dan port 2 ( P2.5, P2.6, P2.7 ),. Hal ini dikarenakan untuk
mikrokontroler keluarga MCS-51 seperti AT89C51 ini jenis mikrokontroler yang
tidak dapat mengeluarkan perintah trigger secara langasung, akan tetapi dengan
pemasangan yang benar dengan menggunakan 2 port untuk setiap sensor
ultrasonik buatan ping parallax ini perintah trigger yang diperintahkan dari
mikrokontroler keluarga MCS-51 atau AT89C51 ini dapat dilaksanakan oleh
sensor ultrasonik buatan ping parallax tersebut. Untuk sensor ultrasonik depan
mendapatkan port P0.7 dan P2.7 , sensor kiri mendapatkan port P0.6 dan P2.6
sedangkan sensor kanan mendapatkan port P0.5 dan P2.5.
4.1.5 Hardware EDT Programmer
EDT Programmer hardware adalah alat yang digunakan untuk
atau binner.
Gambar 4.8. EDT Programmer hardware 4.1.6 Arena robot
Arena robot ini terbuat dari potongan triplek yang disambung
menggunakan engsel agar bisa dilipat dan mudah dibawa. Arena ini membantu
untuk uji coba penerapan jalannya robot apakah jalannya robot sudah sesuai
dengan yang kita inginkan
Pada implementasi perangkat lunak penulis mengimplementaskan
perancangan perangkat lunak yang telah dibahas pada bab sebelumnya seperti
software yang digunakan penulis untuk menanamkan program robot kedalam
mikrokontroler, driver motor, sensor ultrasonik, sensor api.
4.2.1 Mikrokontroler AT89C51
Untuk implementasi dari perancangan perangkat lunak mikrokontroler
AT89C51 penulis menggunakan hardware dan software yaitu KEIL C51 v8.16
software untuk merubah bahasa C++ yang penulis buat ke bentuk biner atau
heksa dan EDT programmer hardware yaitu alat untuk tempat mikrokontroler
pada saat ditanamkan program untuk robot yang penulis buat dan EDT
programmer software untuk menanamkan program C++ yang telah dirubah ke
biner atau heksa untuk ditanamkan ke mikrokontroler.
4.2.1.1 KEIL C51
Program C++ merupakan program yang ditulis oleh penulis yaitu
program yang berupa kumpulan baris-baris perintah dan disimpan dalam file
yang berextensi .Uv2 ( uvision project ). program ini ditulis menggunakan
software Keil c51.
Keil C51 adalah software untuk menulis program C++ dari keluarga
MCS-51 sehingga Keil c51 ini cocok digunakan untuk mikrokontroler
biner atau heksa file yang akan ditanam ke mikrokontroler AT89C51.
Gambar 4.10 tampilan Keil C51
Pada Keil C51 ini mengkonvert program yang telah dibuat dalam
bentuk .bin atau biner dan juga .hex atau heksa ini bertujuan untuk program
yang akan ditanam ke mikrokontroler. Langkah pertama yang harus
dilakukan adalah buka Keil C51 jika telah terinstal buka open dan pilih
program dan letak program anda yang akan dikonvert menjadi biner atau
EDT programmer adalah software yang digunakan penulis untuk
menanam / mendownload program C++ yang telah kita konvert ke dalam
bentuk heksa untuk robot ke mikrokontroler, dengan fasilitas pendukung
hardware dari EDT programmer .
Gambar 4.11 EDT programmer software
Setelah penulis membuat program robot dengan bahasa C++ maka
penulis mengkonvert program C++ tersebut menjadi program biner atau
heksa dan tahap terakhir yaitu menanam program biner atau heksa tersebut
ke mikrokontroler dengan menggunakan sofware dan hardware EDT
4.2.1.3 Pemrograman driver motor
Untuk implementasi perangkat lunak driver motor ini penulis
mengimplementasikan dari perancangan perangkat lunak dari driver motor
dimana penulis akan mengimplementasikan program yang akan digunakan
atau ditanamkan ke mikrokontroler AT89C51 untuk menggerakkan motor dc
yang berfungsi untuk menarik roda robot sehingga robot dapat bergerak
sesuai dengan program yang diisikan atau ditanamkan ke mikrokontroler
AT89C51.
Telah dibahas pada bab sebelumnya tentang perancangan perangkat
lunak dari driver motor tentang diagram alir yang penulis buat pada gambar
3.8 yaitu untuk menggerakkan robot bergerak maju, belok kanan, mundur
dan belok kiri. Penulis mengimplementasikan diagram alir tersebut kepada
robot untuk langkah pertama yaitu seperti yang dijelaskan pada bab
mikrokontroler AT89C51 yaitu membuat programC++ pada Keil C51
dikonvert ke biner atau heksa lalu ditanam ke mikrokontroler dengan
menggunakan EDT programmer hardware dan software. Program yang
ditanamkan penulis untuk mengimplementasikan diagram alir dari bab
sebelumnya tentang driver motor adalah sebagai berikut :
R2 = 0;
P0_0 = 1;
spd = 1;
idelay(delay); }
Keterangan dari perangkat lunak driver motor diatas adalah L untuk
roda sebelah kiri R untuk roda sebelah kanan, sedangkan 0 adalah
pemberian nilai pada motor yaitu negatif atau 0, 1 adalah pemberian nilai
positif atau 1 dalam assembly 1 adalah set bit sedangkan 0 adalah clear, void
disini adalah sub rrutin pemanggilan, spd adalah PWM atau kecepatan dari
motor dan delay adalah penundaan.
4.2.1.4 PemrogramanSensor ultrasonik
Pada implementasi sensor ultrasonik ini penulis mencoba
menerapkan atau mengimplementasikan diagram alir pada gambar3.12 dari
perancangan perangkat lunak sensor ultrasonik dari bab yang telah dibahas
sebelumnya.
Bahasa yang digunakan C++ dengan menggunakan Keil C51
sebagai softwarenya.
while(1) {
while (jarak(0) > 90) {
spd = 90;
if (j > 200) spd = 50;
if (jarak(1) <= 40 && jarak(2) > 55) kanan2(2000); else
if (jarak(2) <= 45 && jarak(1) > 50) kiri2(2000);
while (jarak (0) <= 50) {
Berikut ini adalah penjelasan dari program diatas. Jika didepan robot
tidak terdapat halangan maka robot berjalan maju, sambil memancarkan
sensor ultrasonik yang ada di samping kanan dan kiri. Apabila di depan
terdapat halangan maka langkah selanjutnya adalah pengecekan sensor
ultrasonik kanan. Jika di sebelah kanan tidak ada halangan, maka robot akan
berbelok ke kanan. Namun apabila di samping kanan robot juga terdapat
halangan, maka robot akan melakukan pengecekan sensor ultrasonik kiri.
Apabila di samping kiri robot tidak ada halangan, maka robot akan berbelok
ke kiri. Namun apabila di samping kiri robot juga terdapat halangan, maka
sesuai dengan diagram alir yang penulis buat.
Keterangannya jika sensor aktif maka pin dari sensor akan diberikan
nilai 1 jika tidak maka nilainya 0, nop adalah penunda waktu sebanyak 1us
perangkat lunak usai maka selanjutnya adalah pengujian dari implentasi yang
telah saya buat.
5.1. Ujicoba
Setelah robot selesai dibuat, langkah selanjutnya adalah melakukan
ujicoba untuk mengetahui tingkat keberhasilan pembuatan robot.
5.1.1 Ujicoba Driver Motor
Untuk melakukan pengujian terhadap driver motor ini saya
menyiapkan dua buah baterai dengan tegangan 12V yang disusun seri sehingga
tegangan total mencapai 24V ini dikarenakan driver motor yang dibuat oleh
saya maksimal 24Volt jika tegangan kurang dari 15Volt maka motor dc tidak
akan bergerak karena supply tegangan yang kurang.
Isi program dan tanam pada mikrokontroler hubungkan pada driver
motor dan motor dc.
Gambar 5.1 Pengujian driver motor
P1.2 P1.3 P1.4 P1.5 Gerak Robot Nyala LED
P1.2 dan P1.3 adalah roda kiri dan P1.4 dan P1.5 adalah roda kanan, dari
hasil diatas dapat ditarik kesimpulan jika P1.2 bernilai 1 dan P1.3 bernilai 0 maka
gerak roda maju. P1.4 bernilai 1 dan P1.5 bernilai 0 maka gerak roda juga maju
dari kesimpulan ini jika nilai dari pin masing – masing roda dibalik maka putaran
roda juga terbalik. Seebaga indikatornya kita berikan masing – masing 2 LED
untuk setiap roda, yaitu 1 LED warna hijau dan 1 LED warna merah baik roda
kanan maupun kiri. Jika roda gerak maju maka LED warna hijau yang menyala
sedangkan apabila gerak roda mundur, maka LED waran merah yang menyala
5.1.2 Ujicoba sensor Ultrasonik
Sebelum sensor ultrasonik diuji pada robot maka sebaiknya sensor
ultrasonik diuji secara manual dengan cara sebagai berikut.
Sensor ultrasonik dapat dilakukan ujicoba secara manual dengan
menggunakan sebuah alat ukur dan benda sebagai penghalang ini berguna
Gambar 5.2 pengujian sensor ultrasonik manual
Pada gambar diatas saya uji sensor ultrasonik dengan menggunakan
penggaris dan suatu benda di depan sensor sebagai penghalang dan didapat
20cm jarak yang dihasilkan oleh pantulan dari sensor ultrasonik.
Tabel 5.2 pengujian sensor ultrasonik
Halangan ( Cm ) 0V – 5V Getar Jarum per menit
50 5V -
40 5V -
30 5V -
20 4V – 5V 100
Keterangan untuk tabel diatas adalah bahwa sensor ultrasonik dapat
membaca adanya halangan dengan memasangkan avo meter analog / jarum,
pada sensor didekatkan pada suatu halangan maka jarum dari avo meter
sensor mendeteksi halangan pada jarak halangan 20 cm. Tetapi jika sensor tidak
mendeteksi adanya halangan, maka jarum tetap berada pada angka 5v pada avo
meter.
5.1.3 Ujicoba Robot Penghindar Halangan
Setelah sensor ultrasonik telah diuji secara manual maka selanjutnya
sensor ultrasonik saya uji dengan menggunakn robot dan arena sehingga ini
adalah ujicoba robot penghindar halangan yang saya buat. Dengan
menggunakan arena yang saya buat maka robot terlihat dengan jelas bagaimana
robot yang saya buat menghindari halangan dari arena yang saya buat dari
triplek. Ini tampak seperti pada gambar dibawah ini.
Gambar 5.3 uji coba robot
Pada ujicoba robot ini robot yang saya buat dapat menghindari halangan
dari arena yang saya buat. Pada awal ketika robot dinyalakan, robot akan
melakukan cek sensor ultrasonik depan. Jika jarak halangan depan robot > 20 cm
maka robot akan maju dengan delay 3 detik. Apabila dalam berjalan maju dan
halangan >= 20 cm, maka robot akan berbelok ke kanan dengan delay 2 detik.
Tetapi jka halangan kanan robot <= 20 cm, maka robot akan melakukan cek
sensor kiri. Apabila sisi kiri robot tidak mendeteksi halangan atau jarak halangan
>= 20 cm, maka robot akan berbelok ke kiri dengan delay 2 detik. Tetapi jika
jarak halangan kiri robot juga <= 20 cm, maka robot akan mundur sambil
melakukan cek sensor ultrasonik kanan dan kiri hingga dia mendeteksi sisi
sebelah kanan atau sisi sebelah kiri adanya ruang atau jarak halangan > 20 cm
untuk berbelok.
5.2 Analisa Robot
Dalam pembuatan robot ini tentunya ada kelebihan dan kekurangan dalam
beberapa kondisi. Kekurangan tersebut membuat robot tidak bisa bekerja dengan
baik pada beberapa kondisi tertentu, dan berikut adalah beberapa analisanya :
5.2.1 Analisa Robot Berdasarkan Kondisi Lantai
Untuk uji coba robot berdasarkan lantai dapat dilihat dalam tabel di
bawah ini
Tabel 5.3 uji coba robot berdasarkan kondisi lantai
Nomorpengujian Kondisilantai Gerak robot Alasan
1 keramik kurang lancar roda selip / licin
2 keramik kurang lancar roda selip / licin
3 marmer lancar roda tidak selip / kesat
Gambar 5.4 Uji coba pada marmer Gambar 5.5 Uji coba pada keramik
Pada empat kali uji coba robot ini yaitu dua kali uji coba pada lantai
keramik ( gambar 5.4 ) dan dua kali uji coba pada lantai marmer ( gambar 5.5 ).
Dari semua hasil uji coba didapatkan hasil bahwa kondisi lantai keramik membuat
gerak roda robot selip terutama saat robot berbelok, hal ini dikarenakan lantai
keramik licin sehimgga gerak roda robot kurang maksimal. Selain itu nat atau
celah pada lantai keramik juga berpengaruh pada gerak roda robot terutama roda
depan. Nat atau celah pada lantai tersebut membuat roda depan robot tersangkut
dan membuat gerak robot terhambat sehingga gerak robot kurang maksimal.
Sedangkan pada lantai marmer gerak robot lebih lancar, hal ini dikarenakan lantai
marmer lebih kesat dibandingkan dengan lantai keramik dan lantai marmer juga
tidak memiliki celah atau nat sehingga gerak robot menjadi lancar.
5.2.2 Analisa Robot Berdasarkan Posisi Arena
Untuk uji coba ini, kita buat dalam kondisi dua buah arena. Dan uji
Tabel 5.4 uji coba robot berdasarkan kondisi lantai
Tabel 5.4 uji coba robot berdasarkan kondisi lantai
NomorNomorpengujian pengujian Arena Arena Hasil Hasil
1 ke – 1 lancar
Pada uji coba kali robot berdasarkan posisi arena ini, kami hanya
menggunakan lantai marmer dengan alasan agar gerak robot lancar. Pada dua
kali percobaan dengan kondisi arena 1 ( gambar 5.6 ) dan dua kali uji coba pada
kondisi arena 2 ( gambar 5.7 ) didapatkan hasil bahwa gerak robot lancar
dengan catatan arena robot harus benar – benar lurus agar pantulan sensor
ultrasonik benar – benar diterima dengan baik.
Pada uji coba kali robot berdasarkan posisi arena ini, kami hanya
menggunakan lantai marmer dengan alasan agar gerak robot lancar. Pada dua
kali percobaan dengan kondisi arena 1 ( gambar 5.6 ) dan dua kali uji coba pada
kondisi arena 2 ( gambar 5.7 ) didapatkan hasil bahwa gerak robot lancar
dengan catatan arena robot harus benar – benar lurus agar pantulan sensor
ultrasonik benar – benar diterima dengan baik.
5.2.3 Analisa Robot Berdasarkan Sudut Halangan 5.2.3 Analisa Robot Berdasarkan Sudut Halangan
Untuk uji coba ini kita buat dalam beberapa kondisi sudut halangan,
dan dapat kita lihat dalam tabel di bawah ini
Untuk uji coba ini kita buat dalam beberapa kondisi sudut halangan,
Nouji Suduthalangan Hasil / gerakrobot Alasan
1 sudut < = 600 menabrak pantulan sinyal tidak bisa diterima
2 sudut 700 lancar pantulan sinyal bisa diterima
3 sudut 800 lancar pantulan sinyal bisa diterima
4 sudut 900 lancar pantulan sinyal bisa diterima
5 sudut 1000 lancar pantulan sinyal bisa diterima
6 sudut 1100 lancar pantulan sinyal bisa diterima
7 Sudut >1200 menabrak pantulan sinyal tidak bisa diterima
Gambar5.8 sudut halangan 600 Gambar5.9 sudut halangan 700
Gambar5.12 sudut halangan 1000 Gambar5.13 sudut halangan 1100
Untuk keterangan dari tabel dan gambar di atas adalah saat halangan
robot bersudut 700 hingga sudut 1200 gerak robot bisa berjalan dengan lancar,
hal ini dikarena pantulan sinyal sensor ultrasonik dapat diterima dengan baik,
sedangkan pada kondisi sudut halangan <= 600 atau sudut > 1200 robot akan
menabrak karena pantulan sinyal sensor ultrasonik tidak bisa diterima dengan
baik sehingga robot tidak bisa membaca adanya halangan.
5.2.4 Analisa Pola Perbelokan Robot
Untuk pola penentuan perbelokan robot dapat dilihat dalam tabel di
Halangan depan Halangan kanan Halangan kiri Gerak robot
> 20 cm - -
20 cm > 20 cm <= 20 cm
20 cm <= 20 cm > 20 cm
20 cm > 20 cm > 20 cm
20 cm <= 20 cm <= 20 cm
Keterangan untuk tabel di atas adalah ketika robot dinyalakan, robot
akan maju dan sensor yang pertama kali membaca adalah sensor depan. Jika
halangan di depan masih > 20 cm maka robot akan masih maju. Ketika halangan
depan robot sudah mencapai 20 cm, maka robot akan membaca sensor sebelah
kanan. Apabila halangan sebelah kanan robot > 20 cm, maka robot akan
berbelok ke kanan. Apabila halangan sebelah kiri robot > 20 cm, maka robot
akan berbelok ke kiri. Jika jarak halangan kanan dan kiri robot sama – sama
lebih dari 20 cm maka robot akan memilih berbelok ke kanan. Hal ini
dikarenakan urutan pembacaan sensor robot yaitu depan, kanan, kemudian kiri
karena ketiga sensor tidak bisa bekerja secara bersamaan Sedangkan apabila
menemukan ruang yang kosong untuk berbelok.
Dari hasil ujicoba dan analisa pada robot yang telah kami buat,
ternyata robot ini mempunyai beberapa kekurangan, yaitu antara lain :
1. Robot dapat bekerja maksimal pada kondisi lantai marmer
dibandingkan keramik. Hal ini dikarenakan lantai keramik lebih licin jika
dibandingkan lantai marmer yang menyebabkan roda tidak dapat berputar
secara maksimal atau selip.
2. Robot juga tidak bisa bekerja maksimal pada kondisi lantai yang
memiliki celah atau nat, hal ini dikarenakan roda robot terutama roda depan
robot tersangkut pada celah atau nat tersebut sehingga gerak robot terhambat
agak terhambat atau kurang lancar.
3. Robot tidak dapat bekerja pada halangan yang bersudut <= 600 dan juga bersudut > 1200 atau tikungan. Hal ini dikarenakan sinyal yang
dipancarkan oleh transmitter tidak dapat diterima kembali oleh receiver