i
TUGAS AKHIR
SISTEM NAVIGASI PADA ROBOT PEMADAM API
Diajukan Untuk Memenuhi Syarat Memperoleh Gelar Sarjana Teknik Pada
Program Studi Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
Disusun oleh: WAHYU EDIFIKAR
NIM : 065114022
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA
ii
FINAL PROJECT
NAVIGATION SYSTEM ON THE FIRE FIGHTING
ROBOT
Presented as a Partial Fulfillment of the Requirements for S1 Degree in Electrical Engineering Department, School of Science and Technology,
Sanata Dharma University
by:
WAHYU EDIFIKAR Student Number : 065114022
ELECTRICAL ENGINEERING DEPARTMENT SCHOOL OF SCIENCE and TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
v
PERNYATAAN KEASLIAN KARYA
Saya menyatakan dengan sesungguhnya bahwa tugas akhir ini tidak memuat karya atau bagian dari orang lain, kecuali yang telah disebutkan dalam kutipan dan daftar pustaka sebagaimana layaknya karya ilmiah.
Yogyakarta, 19 Januari 2012
vi
PERSEMBAHAN DAN MOTTO HIDUP
Untuk Rabb – ku…Penguasa Segala Kerajaan, Allah SWT
Semoga Engkau Memberkahi Segala Apa Yang Ku Lakukan
Untuk Teladanku…Rasulullah Muhammad SAW
Kunanti Syafa’atmu Di Yaumul Akhir Kelak
Untuk Mamak dan Papa yang telah Mengorbankan Segalanya
Doamu Selalu Ananda Pinta dalam Mengarungi Hidup Ini
Adik – adik Kecilku Nita, Nini, dan Nina
Yang Menjadi Penguatku Disaat Lemah
Sahabat – sahabatku Tempat Tumpahnya Rasa dan Asa
Berbagi cerita, diskusi, dan bertukar pikiran
Untuk almamaterku…
“ Perjuangkan apa yang kau tuju…karena seorang Pemenang pantang meninggalkan
medan Juang “
vii
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN
AKADEMIS
Yang bertanda tangan dibawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Wahyu Edifikar
Nomor Mahasiswa : 065114022
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan Universitas Sanata Dharma karya ilmiah saya yang berjudul :
SISTEM NAVIGASI PADA ROBOT PEMADAM API
Beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, mengalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan daya, mendistribusikan secara terbatas, dan mempublikasikannya di internet atau media lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun memberikan royalty kepada saya selama tetap mencantumkan nama saya sebagai penulis.
Demikian pernyataan ini saya buat dengan sebenarnya.
Yogyakarta, 24 Januari 2012
viii
INTISARI
Pada penelitian ini, penulis membahas tentang sistem navigasi robot dengan menggunakan sensor ultrasonik PING yang melacak dinding dalam menjelajah denah ruangan dalam aplikasi robot pemadam kebakaran. Robot dirancang menggunakan 8 buah sensor PING dibantu dengan sensor kompas. Dengan pengujian sensor melalui variasi dari jarak, sudut dan pemberian halangan akan menghasilkan kemampuan jelajah robot.
Pengambilan dan pengolahan data menggunakan mikrokontroller ATmega32, dan data ditampilkan menggunakan LCD 16×2. Data yang diolah adalah hasil pembacaan sensor – sensor pada robot sehingga robot dapat menjelajah seluruh arena.
Sensor Ultrasonik sebagai sensor utama robot berhasil dalam mengatasi halangan – halangan pada arena. Sensor kompas belum dapat bekerja sebagaimana mestinya dan butuh pengembangan lebih lanjut. Mekanik dan rangka robot menjadi perhatian pada penelitian ini untuk menghasilkan karya yang lebih baik.
ix
ABSTRACT
In this research, writer discuss about navigation system on robot with PING ultrasonic sensor to follow the wall around room model on firefighter robot application. Robot design with 8 pieces PING sensor helped with compass sensor. Sensor scanning test through a variation distance, angle, and obstacle will produce a robot with good explore ability.
Taking and processing data using Atmega32 controller and data shown using LCD 16x2. Data proceed from scanning of sensors help robot explore area.
Ultrasonic sensor as main robot sensor success made out pass obstacles in the arena. Compass sensor did not work yet and need more development next time. Mechanic and robot body be concern this research for produce better work next time.
x
KATA PENGANTAR
Bismillahirabbil’alamien… Alhamdulillahirabbal’alamien…
Segala puji bagi Allah Azza Wa Jalla, Dzat yang telah melimpahkan nikmat iman, islam dan ikhsan, sehingga penulis dapat menyelesaikan skripsi berjudul “Sistem Navigasi Pada Robot Pemadam Api”.
Tersusunnya tugas akhir ini tidak lepas dari dukungan dan bantuan berbagai pihak. Untuk itu penulis mengucapkan terima kasih yang tidak terhingga kepada :
1. Kedua orang tua dan adik – adikku yang tercinta atas dukungan semangat, doa dan kepercayaannya.
2. Bapak Martanto, selaku pembimbing tugas akhir atas bimbingan, dukungan, saran dan kesabaran bagi penulis dalam menyelesaikan tugas akhir ini.
3. Seluruh dosen dan laboran teknik elektro atas ilmu yang telah diberikan selama penulis menimba ilmu di Universitas Sanata Dharma.
4. Bapak – bapak dan mas – mas security sanata dharma paingan yang selalu menemani ketika penulis bermalam di kampus.
5. Seluruh karyawan sanata dharma yang terlibat langsung maupun tidak pada penulisan penelitian ini.
6. Saudara – saudari ku di FKM BUDI UTAMA dan KAMUS BABEL, penulis mencintai kalian semua karena Allah SWT.
7. Seluruh pihak yang tidak mungkin penulis sebutkan satu per satu yang telah membantu dalam bentuk apapun selama proses penulisan tugas akhir ini.
Dengan rendah hati penulis menyadari bahwa tugas akhir ini masih jauh dari sempurna, oleh karena itu berbagai kritik dan saran untuk perbaikan tugas akhir ini sangat diharapkan. Akhir kata, semoga tugas akhir ini dapat bermanfaat bagi semua pihak. Terima Kasih
Yogyakarta, 19 Januari 2012
xi
PERNYATAAN KEASLIAN KARYA ... v
HALAMAN PERSEMBAHAN DAN MOTTO HIDUP ... vi
LEMBAR PERNYATAAN PERSETUJUAN PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS ... vii
INTISARI ... viii
BAB I. PENDAHULUAN ... 1
1.1. Latar Belakang ... 1
1.2. Tujuan dan Manfaat ... 2
1.3. Batasan Masalah ... 2
1.4. Metodologi Penelitian ... 3
BAB II. DASAR TEORI ... 4
2.1. MicrocontrollerAVR ATMega32[4] ... 4
2.1.1. Port I/O ... 5
2.1.2. Interupsi ... 6
2.1.3. Timer/Counter ... 9
2.1.4. PWM(Pulse Width Modulation)... 10
2.1.5. I2C(Inter-Integerated Circuit) ... 11
2.2. SensorUltrasonicPING[6] ... 14
2.3. Sensor Kompas Magnetik CMPS-03[7] ... 16
2.3.1. PWMInterface ... 17
2.3.2. I2CInterface ... 17
2.4. Piranti Penampil LCD 16*2 [8] ... 19
2.4.1. Proses Penampilan Karakter di LCD ... 20
2.5. Driver Motor L298 [9] ... 20
BAB III. RANCANGAN PENELITIAN ... 22
3.1. Proses Kerja Sistem ... 22
3.2. Perancangan SensorUltrasonic ... 23
3.2.1. HardwareSensorUltrasonic... 23
xii
3.3. Perancangan Sensor Kompas ... 25
3.3.1. Hardware Sensor Kompas ... 25
3.3.2. Software Sensor Kompas ... 25
3.4. Perancangan LCD ... 27
3.5. PerancanganDriverMotor DC ... 27
3.6. Perancangan Minimum Sistem ... 28
3.7. Perancangan Robot ... 29
3.7.1. BodydanchassisRobot ... 29
3.7.2. Pergerakan Robot ... 30
3.8. Spesifikasi Arena ... 34
BAB IV. HASIL DAN PEMBAHASAN ... 36
4.1. Pengujian Robot dan Sensor PING... 36
4.2. Pengujian Driver Motor DC ... 45
4.3. Pengujian Sensor Kompas ... 46
4.4. Kinerja Robot... 46
BAB V. KESIMPULAN DAN SARAN ... 47
DAFTAR PUSTAKA ... 48
xiii
DAFTAR GAMBAR
Halaman
Gambar 1.1. Blok Diagram Lengkap Robot Pemadam Api ... 3
Gambar 2.1. Konfigurasi Pin ATMega32 ... 5
Gambar 2.2. Komponen Register MCUCR ... 7
Gambar 2.3. Komponen Register MCUCSR ... 8
Gambar 2.4. Komponen Register GICR ... 8
Gambar 2.5. Komponen Register TCCRn ... 9
Gambar 2.6. Diagram Pewaktuan Fast PWM... 10
Gambar 2.7. Contoh Implementasi Jalur 12C ... 11
Gambar 2.8. Sinyal Start dan Stop pada jalur 12C ... 12
Gambar 2.9. Transfer Bit pada Jalur 12C ... 12
Gambar 2.10. Data (byte) Transfer pada Jalur 12C ... 13
Gambar 2.11. Sinyal Alamat dan data ... 14
Gambar 2.12. sensor Ultrasonik PING ... 14
Gambar 2.13. prinsip Baca Sensor Ultrasonik PING ... 15
Gambar 2.14. Pulsa PING ... 16
Gambar 2.15. Fisik san Konfigurasi Pin CMPS03 ... 16
Gambar 2.16. 12C Communication Protocol ... 17
Gambar 2.17. Konfigurasi Pin LCD HD44780 ... 19
Gambar 2.18. Konfigurasi Pin IC L298 ... 21
Gambar 2.19. Gambar Internal L298... 21
Gambar 3.1. Blok Diagram Sistem Navigasi Robot ... 22
Gambar 3.2. Gambar PING ... 23
Gambar 3.3. Flow Chart Sensor Ultrasonik ... 24
Gambar 3.4. Gambar Koneksi Sensor Kompas ... 25
Gambar 3.5. Program 12C Pembacaan data Kompas ... 26
Gambar 3.6. Proses Kerja Sensor Kompas ... 26
Gambar 3.7. Diagram Blok ... 27
Gambar 3.8. Rangkaian Driver L298 ... 27
Gambar 3.9. Rangkaian Reset ... 28
Gambar 3.10. Rangkaian Minimum System ... 28
Gambar 3.11. Model Robot ... 29
Gambar 3.12. Posisi Peletakan PING ... 30
Gambar 3.13. Pergerakan Robot Keseluruhan ... 31
Gambar 3.14. Subrotine Menuju Ruangan ... 32
Gambar 3.15. Subrotine Pengecekan Ruangan ... 33
Gambar 3.16. Subrotine Atur Posisi Start... 34
Gambar 3.17. Arena ... 35
Gambar 3.18. Perlengkapan Arena ... 35
Gambar 4.1. Bentuk Robot yang Digunakan ... 36
xiv
Gambar 4.3. Gambar DataFurniture ... 41
Gambar 4.4.Furnitureterbaca baik terhadap PING ... 42
Gambar 4.5. Gambar Data Gangguan Halangan Cermin ... 43
Gambar 4.6. Data Gangguan HalanganSound damper... 44
xv
DAFTAR TABEL
Halaman
Tabel 2.1. Vektor Reset dan Interupsi ... 7
Tabel 2.2. Pengaturan Kondisi Interupsi ... 8
Tabel 2.3. Konfigurasi Bit WGMn ... 9
Tabel 2.4. Register CMPS03 dan Fungsinya ... 18
Tabel 4.1. Data Ping dalam Menjelajah Arena ... 38
Tabel 4.2. Garis Besar Aksi Robot Terhadap Arena ... 40
1
BAB I
PENDAHULUAN
1.1 Latar Belakang Masalah
Kelalaian manusia seringkali berakibat fatal pada keselamatan jiwa manusia itu
sendiri. Kebakaran banyak terjadi disebabkan kurangnya kepedulian manusia terhadap
lingkungan di sekitarnya. Titik api yang kecil bisa menjadi pemicu terjadinya
kebakaran hebat, misalnya hubungan arus pendek pada instalasi rumah atau kantor[1].
Hal kecil seperti ini tidak disadari oleh manusia. Untuk mengurangi resiko yang
disebabkan hal tersebut, manusia dapat dibantu oleh robot yang dapat mencari titik api.
Perkembangan bidang robotika yang sangat cepat sudah merambah berbagai
sisi kehidupan manusia. Perkembangan tersebut didukung oleh tersedianya perangkat
keras (hardware) maupun perangkat lunak (software) yang semakin canggih dan
meningkat kemampuannya. Perpaduan antara hardware dan software bisa membuat
suatu sistem yang canggih yang tentunya lebih hemat dari segi biaya pembuatan
maupun pemeliharaan. Kerusakan yang terjadi pada sistem dapat dicari dilacak dan
diperbaiki melalui software dengan cara menghapus dan mengganti dengan software
yang baru tanpa mengeluarkan biaya lagi.
Munculnya berbagai macam sensor yang semakin canggih di dunia elektronika
saat ini dapat menunjang manusia untuk mengembangkan software dan hardware
dalam bidang robotika. Hal tersebut diharapkan bahwa dimasa yang akan datang dapat
dibangun sebuah sistem yang sangat canggih dan tentunya akan sangat berguna dalam
memudahkan pekerjaan manusia.
Penelitian tentang robot pemadam api saat ini sangat gencar dilakukan, sebagai
buktinya banyak diadakannya lomba – lomba robot untuk tingkat daerah, nasional,
hingga tingkat internasional. Salah satunya adalah Kontes Robot Cerdas Indonesia
(KRCI) yang salah satu divisi atau sub lombanya mengenai robot pemadam api[2]. Hal
itu juga yang menjadi pemacu penulis untuk lebih mengembangkan tentang robot
Robot pemadam api memiliki dua bagian sub-sistem vital, yaitu sub-sistem
navigasi serta gerak robot dan sub-sistem pencari serta pengeksekusi pemadaman
api[3]. Pada penelitian ini penulis hanya melakukan penelitian untuk sebuah sistem
navigasi pada robot pemadam api agar dapat bergerak dan menjelajah seluruh lapangan
secara otomatis tanpa remote dan kembali ketempat semula tanpa memadamkan titik
api. Robot ini dilengkapi dengan dua buah sensor utama, yaitu sensor ultrasonik
sebagai penjejak dinding atau objek penghalang dan sensor kompas sebagai penentu
arah gerak robot.
1.2 Tujuan dan Manfaat
Tujuan penelitian ini adalah menghasilkan suatu sistem navigasi pada robot
pemadam api otomatis yang memiliki kemampuan jelajah pada sebuah medan.
Manfaat dari penelitian ini adalah didapat sebuah sistem jelajah pada robot dengan
menggunakan sensor ultrasonik PING dan sensor kompas CMPS-03, dapat
dikembangkan lagi untuk sistem yang lebih kompleks, serta dapat menjadi salah satu
bahan referensi dalam pengembangan kreatifitas mahasiswa dalam bidang robotika.
1.3 Batasan Masalah
Penelitian ini hanya membahas tentang sistem navigasi robot otomatis
menjelajah dalam satu mode jelajah dengan simulasi banyak halangan pada suatu area
tanpa proses pemadaman api.
Spesifikasi dalam penelitian ini adalah :
a. Microcontrollerkeluarga AVR ATMega32 sebagai pusat operasi
b. Sensor Ultrasonik PING sebagai pendeteksi objek sekitar robot
c. Sensor kompas CMPS-03 sebagai pendeteksi arah gerak robot
d. Robot bergerak dengan 2 motor dengan roda tank
e. Kondisi lapangan disimulasikan dengan sebuah labirin berukuran 248cm x
248cm x 30cm dengan tambahan halangan berupa sound damper, cermin, dan
1.4 Metodologi Penelitian
Metode yang digunakan dalam penelitian ini adalah mengumpulkan sejumlah
referensi atau literatur dari perpustakaan, buku, internet dan sebagainya, kemudian
menyusun perancangan hardwaredansoftware lalu melakukan serangkaian percobaan
dalam proses merealisasikan perancangan.
Gambar 1.1 Blok Diagram Lengkap Robot Pemadam Api
Penelitian ini hanya terfokus pada sistem navigasi robot pemadam api dengan input
berupa sensor ultrasonik dan sensor kompas yang akan diproses pada microcontroller
denganoutputberupa penggerak robot berupa motor dc.
Sensor diuji secara terpisah terlebih dahulu kelayakannya sebelum dipasangkan
pada tubuh robot. Pengujian kemampuan jelajah robot disimulasikan pada sebuah
labirin.
Hasil yang ingin dicapai dari penelitian ini adalah menghasilkan suatu sistem
navigasi pada robot pemadam api yang mempunyai kemampuan menjelajah sebuah
4
BAB II
DASAR TEORI
Sistem navigasi robot pemadam api adalah perangkat navigasi yang digunakan
untuk memandu robot pemadam api menjelajah sebuah area.
Sebagai dasar penelitian ini, maka pada bab ini akan membahas :
1. Microcontroller
2. Sensor ultrasonik PING
3. Sensor kompas CMPS-03
4. Piranti penampil
5. Drivermotor
2.1 MicrocontrollerAVR ATMega32[4]
Microcontroller adalah suatu komponen semikonduktor yang di dalamnya sudah
terdapat suatu sistem mikroprosesor seperti : ALU, ROM, RAM, dan Port I/O.
Microcontroller AVR memiliki arsitektur RISC (Reduced Instruction Set Computing)
8 bit. Chip AVR yang digunakan pada penelitian ini adalah ATMega32. Semua
instruksi dikemas dalam kode 16 bit dan sebagian besar instruksi di eksekusi dalam
satu siklus clock. Avr ATMega32 memiliki 32 register serbaguna dinamakan R0 –
R31, 64 I/O register dan 2 kilo byte RAM, dengan susunan 32 register menempati
alamat 0x0000 – 0x001F, kemudian dilanjutkan dengan 64 I/O yang dapat diakses
langsung atau sebagai lokasi Data Space dengan alamat 0x0020-0x005F. Sedangkan
pada 32 register serbaguna terdapat tiga pasang alamat berukuran 16 bit yang
dinamakan X (R26-R27), Y(R28-R29) dan Z (R30-R31), register ini biasanya
digunakan sebagaipointer(penunjuk) alamat.
Fitur yang tersedia padamicrocontrollerini sebagai berikut :
a) Saluran IO sebanyak 32 buah, yaituPortA,PortB,PortC danPortD.
b) ADC 10bitsebanyak 8 saluran.
c) Tiga buah Timer/Counter dengan kemampuan pembandingan yaitu
Timer0,Timer1,Timer2.
e) CPU (Central Processing Unit) yang terdiri atas 32 buahregister.
f) SRAM sebesar 2kilobyte.
g) Flash memory32kilobyte.
h) EEPROM (Electrically Erasable Programmable Read Only Memory)
sebesar 1kilobyte.
i) Comparatoranalog.
j) Unit interupsi internal dan eksternal.
k) Port USART (Universal Syncronous and Asyncronous serial Receiver
and Transmiter).
l) PortSPI(Serial Periperal Interface).
2.1.1 PortI/O
Microcontroller AVR ATMega32 dalam kemasan 40 pin-DIP (dual in-line
package)dapat dilihat pada gambar 2.1. AVR memiliki memori dan bus terpisah untuk
program dan data (arsitektur Harvard) untuk mendapatkan kinerja yang maksimal dan
bersifat paralel. Maksud bersifat paralel adalah sebuah instruksi sedang dikerjakan
maka instruksi berikutnya diambil dari memori program.
PortA,PortB, PortC,PortD adalah suatuPortI/O 8-bitdua arah.
Pada pin RESET, dibutuhkan sebuah rangkaian reset dimana diperlukan kapasitor.
Waktu pengosongan kapasitor yang dapat dihitung dengan persamaan sebagai berikut :
= × (2.1)
Keterangan : T = waktu pengosongan
R = nilairesistor
C = nilai kapasitor
2.1.2 Interupsi
Interupsi adalah kondisi yang membuat CPU berhenti dari rutinitas yang
sedang dikerjakan (program utama) untuk mengerjakan program lain (program
interupsi). Microcontroller ini memiliki 21 sumber interupsi yang ditunjukkan pada
tabel 2.1.
Untuk inisialisasi awal interupsi, perlu dituliskan terlebih dahulu vektor
interupsi dari interupsi yang terdapat pada sistem. Vektor interupsi adalah nilai yang
disimpan ke program counter pada saat terjadi interupsi sehingga program akan
menuju ke alamat yang ditunjuk oleh program counter. Alamat dari tiap interupsi
dapat dilihat pada tabel 2.1. Masing-masing alamat vektor memiliki alamat yang
berdekatan, sehingga akan timbul masalah jika sebuah layanan interupsi yang panjang.
Untuk menghindari hal ini maka ketika suatu interupsi aktif dan menunjuk pada vektor
tertentu maka dari alamat vektor tersebut digunakan perintah agar memanggil fungsi
yang terletak pada alamat yang lain. Setelah interupsi telah diinisialisasi, selanjutnya
mengaktifkan bit I pada STATUS register (SREG) yang berarti mengaktifkan Global
Interupsi.
Microcontrollerini memiliki tiga buah interupsi eksternal (INT0, INT1, INT2).
Pengaturan keadaan untuk INT0 dan INT1 yang menyebabkan terjadinya interupsi
terdapat pada register MCUCR (MCU Control Register). Sedangkan untuk INT2
terdapat pada MCUCSR (MCU Control and Status Register).
Fungsi tiap bit register MCUCR terdapat pada gambar 2.2 yaitu, ISC01 dan
ISC00 merupakan bit untuk mengatur kondisi terjadi interupsi pada INT0, sedangkan
ISC10 dan ISC11 untuk mengatur interupsi INT1. Tabel 2.2 memperlihatkan
Tabel 2.1.Vektor Resetdan Interupsi
Gambar 2.2. KomponenregisterMCUCR Tabel 2.1.Vektor Resetdan Interupsi
Gambar 2.2. KomponenregisterMCUCR Tabel 2.1.Vektor Resetdan Interupsi
Tabel 2.2. Pengaturan Kondisi Interupsi
Gambar 2.3 memperlihatkan konfigurasi bit register MCUCSR, jika ISC2
berlogika 0, maka transisi dari 1 ke 0 (falling edge) pada INT2 menyebabkan interupsi.
Sebaliknya jika berlogika 1, maka transisi yang terjadi dari 0 ke 1 (rising edge).
Selanjutnya interupsi diaktifkan dengan memberi logika 1 pada register GICR
(Global Interrupt Control Register) untuk interupsi yang diinginkan, dengan susunan
registerseperti pada gambar 2.4.
Gambar 2.3. KomponenregisterMCUCSR
2.1.3 Timer/Counter
Microcontroller ini menyediakan fasilitas pewaktuan yang diberi nama
Timer/Counter sebanyak tiga buah, yaituTimer/Counter 0 dan 2 yang terdiri dari 8 bit
danTimer/Counter1 yang terdiri dari 16 bit.
Register yang digunakan oleh Timer/Counter adalah TCNTn sebagai register
penyimpan nilai dari Timer/Counter. Register OCRn (Output Compare Register)
merupakan register pembanding, jika nilai OCRn sama dengan TCNTn maka terjadi
Compare Match. Peristiwa ini dapat menyebabkan keluaran pulsa yang berulang-ulang
pada pin OCn (Output Compare). Pengaturan Timer/Counter 0, Timer/Counter 1 dan
Timer/Counter2 dilakukan melalui registerTCCRn (Timer/Counter Control Register).
Konfigurasi dariregisterTCCRn dapat dilihat pada gambar 2.5.
Gambar 2.5. KomponenRegisterTCCRn
FOCn (Force Output Compare) hanya aktif padamodenon-PWM, jika 1 maka
akan memaksakan operasi compare match. FOCn tidak akan memicu terjadinya
interupsi atau menolkan timer pada mode CTC. WGMn(1:0) (Waveform Generation
Mode) berfungsi untuk mengendalikan kenaikan dari pencacah pada register TCNTn,
menentukan sumber dari nilai maksimal (top) dari pencacah dan tipe timer yang akan
digunakan. Konfigurasi dari bit WGMn(1:0) dapat di lihat pada tabel 2.3.
COMn (1:0) (Compare Match Output Mode) berfungsi mengendalikan pin
OCn. Jika kedua bit tersebut bernilai 0, maka OCn berfungsi sebagai pin biasa, apabila
salah satu bit bernilai 1, maka fungsi dari OCn bergantung pada pengaturan bit
WGMn.
Pada mode CTC (WGMn1=1 WGMn0= 0) cacahan selalu meningkat, ketika
mencapai nilai maksimum akan kembali ke nol lagi. Dalam operasai normal flag
timer/counter overflow(TVOn) akan aktif ketika terjadioverflow. Karena selalu 12
mencacah naik, maka dapat digunakan sebagai pewaktu presisi. Cara kerja dari mode
ini yaitu akan membandingkan antara OCRn sama dengan TCNTn, jika sama maka
pencacahantimerdimulai dari awal lagi, persamaan perhitungan waktu tunda:
= (2.2)
Keterangan : fcpu= Kristal yang digunakan (Hz)
Prescaler = Pembagi waktu presisi
OCRn =Registerpembanding pada OCRn
2.1.4 PWM(Pulse Width Modulation)
Pulsa PWM adalah sederetan pulsa yang lebar pulsanya dapat diatur, karena
lebar pulsa yang dihasilkan dapat diubah-ubah maka dapat difungsikan sebagai DAC
(Digital Analog Conversion) dengan cara melewatkan keluaran tersebut pada sebuah
rangkaian Shift and Hold. Fasilitas Timer/Counter dapat digunakan sebagai penghasil
pulsa PWM.
Pengaturan Timer/Counter 8 bit sebagai penghasil pulsa PWM dengan mode
Fast PWM dengan mengubah bit WGMn (1:0) padamode 3. Diagram pewaktuan dari
mode ini dapat dilihat pada gambar 2.6.Modeini mengacu pada satu kemiringan yang
terjadi pada pewaktuan, pencacah akan mencacah dari nilai nol sampai 0xFF kemudian
kembali dari awal lagi.
Padamode Non-Invertingkeluaran pembanding Pin OCn akan menjadi 0 jika
nilai TCNTn sama dengan OCRn dan pin OCn akan menjadi 1 lagi setelah register
TCNTn terjadioverflow.
Flag timer/counter overflow(TOVn) akan aktif saat cacahan mencapai nilai
maksimal, jika interupsioverflowdiaktifkan, maka rutin penanganan interupsi dapat
digunakan untuk mengubah nilai pembanding.
Keluaran frekuensi PWM pada mode Fast PWM dihitung menggunakan
persamaan :
= /
. 256 (2.3)
Keterangan : = frekuensi PWM
/ = frekuensi CPU
N = prescaler sumberclock
2.1.5 I2C(Inter-Integrated Circuit)[5]
I2C (Inter-Integrated Circuit) merupakan jalur komunikasi serial multi-master.
I2C tidak memerlukanaddress decoderdalam implementasi. I2C hanya membutuhkan
dua jalur untuk berkomunikasi antar perangkat, yaitu SDA (Serial Data)dan SCL
(Serial Clock). SCL merupakan jalur yang digunakan untuk mensinkronisasi transfer
data pada jalur I2C dan SDA merupakan jalur untuk data. Beberapa perangkat dapat
terhubung ke dalam jalur I2C yang sama dimana SCL dan SDA terhubung ke semua
perangkat tersebut, hanya ada satu perangkat yang mengontrol SCL yaitu perangkat
master. Jalur dari SCL dan SDA ini terhubung dengan resistor pull-up yang besar
resistansinya tidak menjadi masalah (1K, 1.8K, 4.7K, 10K, 47K atau nilai diantara
jangkauan tersebut).
Resistor pull-up membuat jalur SCL dan SDA menjadiopen drain, yaitu kondisi
perangkat hanya perlu memberikanoutput0 (low)untuk membuat jalur menjadiLOW,
dan dengan membiarkannyapull-up resistorsudah membuatnyaHIGH.
Umumnya hanya ada satu perangkat master pada jalur I2C dan satu atau
beberapa perangkat slave. Perangkat master yang hanya dapat mengontrol jalur SCL
yang berarti transfer data harus diinisialisasi terlebih dahulu oleh perangkat master
melalui serangkaian pulsa clock (slave tidak bisa, tapi ada satu kasus yang disebut
clock streching). Tugas perangkat slave hanya merespon apa yang diminta master.
Slave dapat memberi data ke master dan menerima data dari master setelah server
melakukan inisialisasi. Inisialisasi diawali dengan sinyal START (transisi high ke low
pada jalur SDA dan kondisi high pada jalur SCL, lambang S pada gambar 2.8), lalu
transfer data dan sinyal STOP (transisi low ke high pada jalur SDA dan kondisi high
pada jalur SCL, lambang P pada gambar 2.8) untuk menandakan akhir transfer data.
Gambar 2.8. SinyalSTARTdanSTOPpada Jalur I2C
Banyaknya byte yang dapat dikirimkan dalam satu transfer data itu tidak ada
aturannya. Jika transfer data yang ingin dilakukan sebesar 2 byte, maka pengiriman
pertama adalah 1 bytedan setelah itu 1 byte. Setiapbyte yang di transfer harus diikuti
dengan bit Acknowledge (ACK) dari penerima, menandakan data berhasil diterima.
Byte yang dikirim dari pengirim diawali dari bit MSB. Saat bit dikirim, SCL di set ke
HIGHlalu keLOW. Bit yang dikirim pada jalur SDA tersebut harus stabil saat periode
clock (SCL) HIGH. Kondisi HIGH atau LOW dari jalur data (SDA) hanya dapat
berubah saat kondisi sinyal SCL ituLOW.
Setiap pulsa clock itu dihasilkan (di jalur SCL) untuk setiap bit (di jalur SDA)
yang ditransfer. Jadi untuk pengiriman 8 bit akan ada 9 pulsa clock yang harus
dihasilkan (1 lagi untuk bit ACK). Kronologi sebelum perangkat penerima
memberikan sinyal ACK adalah sebagai berikut: saat pengirim selesai mengirimkan bit
ke-8, pengirim melepaskan jalur SDA kepull-upsehingga menjadi HIGH. Saat kondisi
tersebut terjadi, penerima harus memberikan kondisiLOWke SDA saat pulsaclock
ke-9 berada dalam kondisiHIGH.
Gambar 2.10. Data (byte) Transfer pada Jalur I2C
Jika SDA tetap dalam kondisi HIGH saat pulsa clock ke-9, maka ini
didefinisikan sebagai sinyal Not Acknowledge (NACK). Master dapat menghasilkan
sinyal STOPuntuk menyudahi transfer, atau mengulang sinyal START untuk memulai
transfer data yang baru. Ada 5 kondisi yang menyebabkan NACK:
1. Tidak adanya penerima dengan alamat yang diminta pada jalur, sehingga tidak
ada perangkat yang merespon ACK.
2. Penerima tidak dapat menerima atau mengirim karena sedang mengeksekusi
fungsi lain dan tidak siap untuk memulai komunikasi dengan master.
3. Pada saat transfer data, penerima mendapatkan data atau perintah yang tidak
dimengerti oleh penerima.
4. Pada saat transfer data, penerima tidak dapat menerima lagi byte data yang
dikirimkan.
5. Penerima-masterperlu memberi sinyal pengakhiran transfer data ke penerima.
Semua perangkat (uC dan modul-modul) yang terhubung ke dalam jalur I2C
pengalamatan 7 bit dapat menampung 128 perangkat. Data 1 byte (8 bit) yang akan
tetap dikirim saat mengirimkan data alamat. Satu bit lagi digunakan untuk
menginformasikan perangkat slave apakah master menulis (write) data ke slave atau
membaca (read) data dari slave. Jika bit tersebut 0, makamastermenulis data keslave.
Jika bit tersebut 1, maka master membaca data dari slave. Bit ini (untuk infomasi
tulis/baca) merupakan LSB, sedangkan sisanya adalah data alamat 7 bit.
Gambar 2.11. Sinyal Alamat dan Data
2.2 Sensor Ultrasonik PING[6]
Sensor ultrasonik PING adalah sensor jarak dengan suara ultrasonik yang
mempunyai prisip kerja (gambar 2.8) mengirim atau melepaskan suara ultrasonik dan
kemudian diterima kembali.
Gambar 2.12. Sensor Ultrasonik PING[6]
PING dapat membaca jarak antara 3cm hingga 300cm. Pulsa suara keluaran
mempunyai variasi lebar 115 uS sampai 18,5 mS yang merepresentasikan jarak. Pada pengalamatan 7 bit dapat menampung 128 perangkat. Data 1 byte (8 bit) yang akan
tetap dikirim saat mengirimkan data alamat. Satu bit lagi digunakan untuk
menginformasikan perangkat slave apakah master menulis (write) data ke slave atau
membaca (read) data dari slave. Jika bit tersebut 0, makamastermenulis data keslave.
Jika bit tersebut 1, maka master membaca data dari slave. Bit ini (untuk infomasi
tulis/baca) merupakan LSB, sedangkan sisanya adalah data alamat 7 bit.
Gambar 2.11. Sinyal Alamat dan Data
2.2 Sensor Ultrasonik PING[6]
Sensor ultrasonik PING adalah sensor jarak dengan suara ultrasonik yang
mempunyai prisip kerja (gambar 2.8) mengirim atau melepaskan suara ultrasonik dan
kemudian diterima kembali.
Gambar 2.12. Sensor Ultrasonik PING[6]
PING dapat membaca jarak antara 3cm hingga 300cm. Pulsa suara keluaran
mempunyai variasi lebar 115 uS sampai 18,5 mS yang merepresentasikan jarak. Pada pengalamatan 7 bit dapat menampung 128 perangkat. Data 1 byte (8 bit) yang akan
tetap dikirim saat mengirimkan data alamat. Satu bit lagi digunakan untuk
menginformasikan perangkat slave apakah master menulis (write) data ke slave atau
membaca (read) data darislave. Jika bit tersebut 0, makamastermenulis data keslave.
Jika bit tersebut 1, maka master membaca data dari slave. Bit ini (untuk infomasi
tulis/baca) merupakan LSB, sedangkan sisanya adalah data alamat 7 bit.
Gambar 2.11. Sinyal Alamat dan Data
2.2 Sensor Ultrasonik PING[6]
Sensor ultrasonik PING adalah sensor jarak dengan suara ultrasonik yang
mempunyai prisip kerja (gambar 2.8) mengirim atau melepaskan suara ultrasonik dan
kemudian diterima kembali.
Gambar 2.12. Sensor Ultrasonik PING[6]
PING dapat membaca jarak antara 3cm hingga 300cm. Pulsa suara keluaran
dasarnya, PING terdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker
ultrasonik dan sebuah penerima ultrasonik. Speaker ultrasonik mengubah sinyal 40
KHz menjadi suara sementara penerima ultrasonik berfungsi untuk mendeteksi
pantulan suaranya. Terdapat 3 pin yang digunakan untuk jalur power supply (+5V),
ground, dan signal. Pin signal dapat langsung dihubungkan dengan microcontroller
tanpa tambahan komponen apapun.
Suara ultrasonik hanya akan dikirim jika ada pulsa triggerdarimicrocontroller
(Pulsa high selama 5uS). Suara ultrasonik dengan frekuensi sebesar 40KHz akan
dipancarkan selama 200uS. Suara ini akan merambat di udara dengan kecepatan
344.424m/detik (atau 1cm setiap 29.034uS), mengenai objek untuk kemudian terpantul
kembali. PING tidak dapat mendeteksi dengan baik objek yang permukaannya dapat
menyerap suara, seperti busa atau sound damperlainnya. Pengukuran jarak juga akan
terganggu jika permukaan objek tidak rata atau bergerigi dengan sudut tajam.
Gambar 2.13. Prinsip Baca Sensor Ultrasonik PING
PING akan menghasilkan sebuah pulsa (gambar 2.9) high selama menunggu
pantulan, dan kemudian akan low ketika suara pantulan terdeteksi. Selanjutnya
microcontroller cukup mengukur lebar pulsa tersebut dan mengkonversinya dalam
bentuk jarak dengan perhitungan sebagai berikut :
( ) =( /29.034)
Gambar 2.14. Pulsa PING
2.3 Sensor Kompas Magnetik CMPS03[7]
CMPS03 yang berukuran 4 x 4 cm ini menggunakan sensor medan magnet
Philips KMZ51 yang cukup sensitif untuk mendeteksi medan magnet bumi. Bentuk
fisik dan konfigurasi pin CMPS03 dapat dilihat pada gambar 2.15.
Gambar 2.15. Fisik dan Konfigurasi Pin CMPS03 Gambar 2.14. Pulsa PING
2.3 Sensor Kompas Magnetik CMPS03[7]
CMPS03 yang berukuran 4 x 4 cm ini menggunakan sensor medan magnet
Philips KMZ51 yang cukup sensitif untuk mendeteksi medan magnet bumi. Bentuk
fisik dan konfigurasi pin CMPS03 dapat dilihat pada gambar 2.15.
Gambar 2.15. Fisik dan Konfigurasi Pin CMPS03 Gambar 2.14. Pulsa PING
2.3 Sensor Kompas Magnetik CMPS03[7]
CMPS03 yang berukuran 4 x 4 cm ini menggunakan sensor medan magnet
Philips KMZ51 yang cukup sensitif untuk mendeteksi medan magnet bumi. Bentuk
fisik dan konfigurasi pin CMPS03 dapat dilihat pada gambar 2.15.
Kompas digital ini memerlukan supply tegangan sebesar 5 Vdc dengan
konsumsi arus 15mA. Pada CMPS03, arah mata angin dibagi dalam bentuk derajat
yaitu, utara (0o), timur (90o), selatan (180o) dan barat (270o). Ada dua cara untuk mendapatkan informasi arah dari modul kompas digital ini, yaitu dengan membaca
sinyal PWM (Pulse Width Modulation)pada pin 4 atau dengan membaca datainterface
I2C pada pin 2 dan 3.
2.3.1 PWMInterface
Pada CMPS03, lebar pulsa positif merepresentasikan sudut arah. Lebar pulsa
bervariasi antara 1mS (0o) sampai 36.99mS (359.9o). Dengan kata lain lebar pulsa berubah sebesar 100uS setiap derajatnya. Sinyal akanlowselama 65mS diantara pulsa,
sehingga total periodanya adalah 65mS + lebar pulsa positif (antara 66mS sampai
102mS). Pulsa tersebut dihasilkan oleh timer 16 bit di dalam processor, yang
memberikan resolusi 1uS.
2.3.2 I2CInterface[5]
Interface I2C yang dapat digunakan untuk membaca data arah dalam bentuk
data serial. Pin 2 dan 3 adalah jalur komunikasi I2C dan dapat digunakan untuk
membaca data arah (bearing). Jika jalur I2C tidak digunakan, maka pin ini harus
di-pull upke +5V melaluiresistoryang nilainya sekitar 47K, nilairesistortidak kritikal.
Protocol komunikasi I2C dimulai dengan mengirimkan start bit, address
kompas digital dengan read/write low (0xC0), kemudian nomor register yang akan
dibaca. Selanjutnya diikuti dengan start bit lagi, address kompas digital dengan
read/write high (0xC1). Kemudian tersedia satu atau dua register (8 bit atau 16 bit)
yang dapat dibaca. Pada mode 8 bit, arah utara ditunjukkan dengan data 255 dengan
resolusi 1,40625 derajat/bit. Pada mode 16 bit, arah utara ditunjukkan dengan data
65535 sehingga resolusinya menjadi 0,0055 derajat/bit. Untuk register 16 bit, yang
pertama kali dibaca adalah high byte. Enam belas bit tersebut dapat dilihat pada tabel
2.4.
Tabel 2.4.RegisterCMPS03 dan Fungsinya
NoRegister Fungsi
0 Nomor revisi software dari CMPS03.
1 Pembacaan data kompas (compass bearing) dalam 1 byte. Nilainya memiliki range 0-255 untuk 360 derajat.
2, 3 Pembacaan data kompas dalam 1 word. Rangenya 0-3599 untuk 360 derajat. Register 2 untuk data 8 bit teratas. Dan register 3 untuk 8 bit terendah hingga LSB.
4, 5 Internal test - Beda sinyal sensor 1 sebanyak 16 bit (bertipe signed word) 6, 7 Internal test - Beda sinyal sensor 1 sebanyak 16 bit (bertipe signed word) 8, 9 Internal test - Nilai kalibrasi 1 sebanyak 16 bit (bertipe signed word) 10, 11 Internal test - Nilai kalibrasi 2 sebanyak 16 bit (bertipe signed word)
12 Tidak digunakan. Akan memberikan nilai 0 13 Tidak digunakan. Akan memberikan nilai 0
14 Tanda untuk selesainya kalibrasi. Nilainya 0 saatmodekalibrasi dan tidak terkalibrasi, selain itu nilainya 255.
15 Perintah untuk kalibrasi. Tulis 255 untuk memasukimode kalibrasi. Tulis 0 untuk keluar.
Register 0 adalah Software revision number. Register 1 adalah data arah yang
diubah dalam nilai 0-255. Dalam aplikasinya ini lebih mudah dibandingkan nilai 0-360
karena memerlukan dua byte. Untuk resolusi yang lebih tinggi pada Register 2 dan 3
akan menyimpan data arah 16 bit dengan nilai 0-3599. Ini menunjukkan arah 0-359.9°.
Register 4 sampai 11 adalah internal test register. Register 12, 13 dan 14 tidak
digunakan. Register 15 digunakan untuk melakukan kalibrasi kompas. Pin 7 adalah
input untuk memilihmodeoperasi 50Hz (low) atau 60Hz (high). Pilihan ini diperlukan
menggunakan power supply yang terhubung ke jala-jala PLN. Hal ini dapat
menurunkan deviasi pembacaan data arah. Proses konversi didalam sensor, selesai
dalam waktu 40mS (50Hz) atau 33.3mS (60Hz). Pin ini memiliki resistor pull up on
board dan dapat dibiarkan tidak terhubung (unconnected) untuk operasi 60Hz. Pin 6
digunakan untuk kalibrasi kompas digital. Pin ini memiliki resistor pull up on board
dan dapat dibiarkan tidak terhubung setelah proses kalibrasi.
Modul kompas digital harus tetap dalam posisi horizontal terhadap permukaan
bumi dengan sisi komponen berada dibagian atas. Jauhkan modul dari metal, terlebih
lagi dari objek yang mengandung magnet.
2.4 Piranti Penampil LCD HD44780[8]
HD44780 merupakan matriks LCD dengan konfigurasi 16 karakter dan 2 baris.
Setiap karakter dibentuk oleh 8x5 atau 10x5 pixel. Gambar 2.17 menunjukkan
konfigurasi kaki pada LCD HD44780.
Gambar 2.17. Konfigurasi Pin dan Rangakaian LCD HD44780
Pin–pin pada LCD HD44780 adalah sebagai berikut:
• Pin 1 (VCC): tegangan +5Volt untuk catu LCD.
• Pin 2 (GND): tegangan 0Volt (ground) modul LCD.
• Pin 3 (VEE/VLCD): tegangan pengatur kontras LCD, maksimum pada 0Volt. menggunakan power supply yang terhubung ke jala-jala PLN. Hal ini dapat
menurunkan deviasi pembacaan data arah. Proses konversi didalam sensor, selesai
dalam waktu 40mS (50Hz) atau 33.3mS (60Hz). Pin ini memiliki resistor pull up on
board dan dapat dibiarkan tidak terhubung (unconnected) untuk operasi 60Hz. Pin 6
digunakan untuk kalibrasi kompas digital. Pin ini memiliki resistor pull up on board
dan dapat dibiarkan tidak terhubung setelah proses kalibrasi.
Modul kompas digital harus tetap dalam posisi horizontal terhadap permukaan
bumi dengan sisi komponen berada dibagian atas. Jauhkan modul dari metal, terlebih
lagi dari objek yang mengandung magnet.
2.4 Piranti Penampil LCD HD44780[8]
HD44780 merupakan matriks LCD dengan konfigurasi 16 karakter dan 2 baris.
Setiap karakter dibentuk oleh 8x5 atau 10x5 pixel. Gambar 2.17 menunjukkan
konfigurasi kaki pada LCD HD44780.
Gambar 2.17. Konfigurasi Pin dan Rangakaian LCD HD44780
Pin–pin pada LCD HD44780 adalah sebagai berikut:
• Pin 1 (VCC): tegangan +5Volt untuk catu LCD.
• Pin 2 (GND): tegangan 0Volt (ground) modul LCD.
• Pin 3 (VEE/VLCD): tegangan pengatur kontras LCD, maksimum pada 0Volt. menggunakan power supply yang terhubung ke jala-jala PLN. Hal ini dapat
menurunkan deviasi pembacaan data arah. Proses konversi didalam sensor, selesai
dalam waktu 40mS (50Hz) atau 33.3mS (60Hz). Pin ini memiliki resistor pull up on
board dan dapat dibiarkan tidak terhubung (unconnected) untuk operasi 60Hz. Pin 6
digunakan untuk kalibrasi kompas digital. Pin ini memiliki resistor pull up on board
dan dapat dibiarkan tidak terhubung setelah proses kalibrasi.
Modul kompas digital harus tetap dalam posisi horizontal terhadap permukaan
bumi dengan sisi komponen berada dibagian atas. Jauhkan modul dari metal, terlebih
lagi dari objek yang mengandung magnet.
2.4 Piranti Penampil LCD HD44780[8]
HD44780 merupakan matriks LCD dengan konfigurasi 16 karakter dan 2 baris.
Setiap karakter dibentuk oleh 8x5 atau 10x5 pixel. Gambar 2.17 menunjukkan
konfigurasi kaki pada LCD HD44780.
Gambar 2.17. Konfigurasi Pin dan Rangakaian LCD HD44780
Pin–pin pada LCD HD44780 adalah sebagai berikut:
• Pin 1 (VCC): tegangan +5Volt untuk catu LCD.
• Pin 2 (GND): tegangan 0Volt (ground) modul LCD.
• Pin 4 (RS):Register Select, pin pemilihregisteryang akan diakses.
1 = akses keregisterdata
0 = akses keregisterperintah
• Pin 5 (R/W):modebaca atau tulis LCD
1 =modepembacaan
0 =modepenulisan.
• Pin 6 (E): pin untuk mengaktifkanclockLCD.
• Pin 7-14 (D0-D7): jalur bus data.
• Pin 15 (Anoda): tegangan positifbacklightmodul LCD sekitar 4,5Volt.
• Pin 16 (Katoda): tegangan negatifbacklightmodul LCD sebesar 0Volt.
2.4.1 Proses Menampilkan Karakter di LCD[8]
Untuk menampilkan karakter di LCD dilakukan dengan mengirimkan kode
ASCII melalui jalur bus data. Jalur bus data dapat menggunakan 8bit atau hanya 4 bit
saja. Jika menggunakan jalur bus data 4bit maka jalur bus data yang digunakan hanya
D7…D4 saja dan dilakukan 2 kali dengan mengirimkan data nibble high dan nibble
low. Proses diawali terlebih dahulu dengan memberikan logika 1 pada pin RS untuk
masuk ke register data dilanjutkan dengan megirimkan data nibble high dan diikuti
dengan memberikan logika 1 dan 0 pada pin E sebagai clock dan kemudian diikuti
dengan mengirimkan data nibble lowdan diulangi kembali dengan memberikan logika
1 dan 0 pada pin E. Sedangkan untuk memberikan perintah pada LCD dilakukan
proses yang sama dengan proses untuk menampilkan karakter di LCD hanya saja pin
RS harus diberi logika 0 untuk masuk keregisterperintah.
2.5 DriverMotor L298[9]
ICDrivermotor DC L298 memiliki dua buah rangkaian H-Bridgedi dalamnya.
H-Bridge driver motor DC L298 dapat mengantarkan arus hingga 3 ampere dengan
tegangan operasi hingga 46 volt. Konfigurasi pin untuk IC driver L298 dapat dilihat
Gambar 2.18. Konfigurasi Pin IC L298
Sebagai penggerak robot, menggunakan 2 buah motor DC. Karena kebutuhan
arus untuk menggerakkan motor DC melebihi kapasitas kemampuan dari port
mikrokontroler, maka diperlukan driver untuk meneruskan perintah dari kontroler.
Untuk driver motor tersebut menggunakan IC driver L298 Dual Full-Bridge Driver.
IC ini memiliki kemampuan sebagai driver tegangan tinggi dan arus yang tinggi
yang didesain untuk menerima level logika standar TTL dan mengendalikan beban
induktif seperti : relay, solenoid, motor DC dan motor stepper. Dua buah input
enable disediakan untuk meng-enable atau men-disable perangkat secara
independen dari input sinyal. Dalam pengoperasian standar maka setiap output dapat
mensuplai arus sampai dengan 2 ampere.Untuk kebutuhan arus dari beban yang lebih
besar dari 2 ampere, maka port output dapat diparalel. Konfigurasi ini dapat mensuplai
beban sampai dengan 3 ampere pada operasi DC.
Gambar 2.19 Gambar Internal L298 Gambar 2.18. Konfigurasi Pin IC L298
Sebagai penggerak robot, menggunakan 2 buah motor DC. Karena kebutuhan
arus untuk menggerakkan motor DC melebihi kapasitas kemampuan dari port
mikrokontroler, maka diperlukan driver untuk meneruskan perintah dari kontroler.
Untuk driver motor tersebut menggunakan IC driver L298 Dual Full-Bridge Driver.
IC ini memiliki kemampuan sebagai driver tegangan tinggi dan arus yang tinggi
yang didesain untuk menerima level logika standar TTL dan mengendalikan beban
induktif seperti : relay, solenoid, motor DC dan motor stepper. Dua buah input
enable disediakan untuk meng-enable atau men-disable perangkat secara
independen dari input sinyal. Dalam pengoperasian standar maka setiap output dapat
mensuplai arus sampai dengan 2 ampere.Untuk kebutuhan arus dari beban yang lebih
besar dari 2 ampere, maka port output dapat diparalel. Konfigurasi ini dapat mensuplai
beban sampai dengan 3 ampere pada operasi DC.
Gambar 2.19 Gambar Internal L298 Gambar 2.18. Konfigurasi Pin IC L298
Sebagai penggerak robot, menggunakan 2 buah motor DC. Karena kebutuhan
arus untuk menggerakkan motor DC melebihi kapasitas kemampuan dari port
mikrokontroler, maka diperlukan driver untuk meneruskan perintah dari kontroler.
Untuk driver motor tersebut menggunakan IC driver L298 Dual Full-Bridge Driver.
IC ini memiliki kemampuan sebagai driver tegangan tinggi dan arus yang tinggi
yang didesain untuk menerima level logika standar TTL dan mengendalikan beban
induktif seperti : relay, solenoid, motor DC dan motor stepper. Dua buah input
enable disediakan untuk meng-enable atau men-disable perangkat secara
independen dari input sinyal. Dalam pengoperasian standar maka setiap output dapat
mensuplai arus sampai dengan 2 ampere.Untuk kebutuhan arus dari beban yang lebih
besar dari 2 ampere, maka port output dapat diparalel. Konfigurasi ini dapat mensuplai
beban sampai dengan 3 ampere pada operasi DC.
22
BAB III
RANCANGAN PENELITIAN
Secara umum sistem navigasi pada robot ini memiliki dua bagian dasar, yaitu bagian perangkat keras (Hardware) dan perangkat lunak (Software). Sensor yang digunakan pada sistem ini adalah sensor ultrasonik PING dan sensor kompas CMPS-03. Perangkat pengolah yang digunakan sebagai sistem kendali adalah sistem mikrokontroler berbasis AVR ATMega32.
Piranti pendukung yang digunakan pada sistem navigasi robot adalah driver sensor ultrasonik dan sensor kompas yang sudah terintegerasi menjadi sebuah modul dan driver untuk menggerakkan motor dc. Selain itu, digunakan juga modul LCD sebagai penampil kondisi sensor. Blok diagram sistem navigasi dapat dilihat pada gambar 3.1.
Gambar 3.1 Blok Diagram Sistem Navigasi Robot
3.1 Proses Kerja Sistem
Secara sederhana, proses kerja sistem ini telah digambarkan pada blok diagram 3.1. Masukan sistem berupa keluaran dari sensor ultrasonik dan sensor kompas yang akan diolah menggunakan fasilitas timerdan I2C pada sistem kendali ATMega32 yang kemudian keadaan sensor ditampilkan pada LCD dan akan mengaktifkan driveruntuk menggerakkan motor dc pada roda robot. Fungsi utama dari sensor ultrasonik adalah sebagai pendeteksi benda yang ada disekitar robot agar robot dapat menghindar dari
SISTEM KENDALI ATMega32
Sensor
Ultrasonik
Kompas
DRIVER
MOTOR
DC
LCD
penghalang dan mencari jalan yang tidak terdapat penghalang. Sensor kompas sebagai sensor pendukung untuk menentukan arah gerak robot.
Robot bergerak dengan dua buah roda tank untuk menjelajah seluruh arena yang akan diberi beberapa halangan yang harus dilewati oleh robot, antara lain penghalang jalan berupa polisi tidur, pengacau sinyal ultrasonik yang disebut sound damper, dan juga benda penghalang yang disebutfurniture.
3.2 Perancangan Sensor Ultrasonik PING
Sistem sensor ultrasonik digunakan sebagai masukan dari proses pengontrolan robot terbagi atas dua bagian, yaitu untuk perangkat keras dan lunak (kontroler).
3.2.1 HardwareSensor Ultrasonik
Sensor ultrasonik menggunakan modul jadi dari Parallax. Prinsip kerja modul ini adalah kontroler mengirimkan sinyal start, PING memancarkan sinyal burst pendek selama 200 us, PING mengirimkan pulsa echo dan kontroler mengukur lebar pulsa echo dari PING.
Gambar 3.2. Gambar PING
Pin kaki catu daya berupa Vdd = 5V dan Vss = GND. Keluaran pada pin kaki SIG.
3.2.2 SoftwareSensor Ultrasonik
Timer digunakan untuk menghitung lebar pulsa PWM. Data lebar pulsa ini yang akan dihitung menjadi data jarak.
Gambar 3.3.Flow ChartSensor Ultrasonik
Scanning sensor dilakukan secara bergantian dan berseberangan. Hal ini dilakukan karena jika berurutan dan berdekatan sinyal pulsa ultrasonik akan saling mengganggu antara PING tersebut. Lebih jelasnya dapat dilihat pada gambar 3.12. pada bagian perancangan robot.
3.3 Perancangan Sensor Kompas CMPS-03
3.3.1 Hardware Sensor Kompas
Kompas elektronik yang digunakan adalah modul cmps03 produksi Devantech. Kompas elektronik digunakan untuk mengetahui arah hadap robot ketika bergerak.
Gambar 3.4. Gambar Koneksi Sensor Kompas
Koneksi kompas elektronik menggunakan I2C pin SCL (serial clock) terhubung dengan pin mikrokontroller yang berfungsi sebagai serial clock dan pin SDA (serial data) terhubung dengan mikrokontroller yang berfungsi sebagai serial data. Dipakai resistorpull-uppada SCL dan SDA.
3.3.2 Software Sensor Kompas
Pertama mengirimkan suatu start bit. Kondisi start bit adalah ketika SCL high dan SDA transisi dari high ke low. Start bit berfungsi untuk menentukan awal data. Selanjutnya mikrokontroller mengirimkan data 0xC0, data 0xC0 adalah alamat fix dari kompas. Salanjutnya mengirimkan data 0x01 untuk membaca isi register 1 dari modul kompas. Isi dari register 1 dalah data sudut kompas yang telah dikonversi 0-255. Berikut ini adalah
3.3 Perancangan Sensor Kompas CMPS-03
3.3.1 Hardware Sensor Kompas
Kompas elektronik yang digunakan adalah modul cmps03 produksi Devantech. Kompas elektronik digunakan untuk mengetahui arah hadap robot ketika bergerak.
Gambar 3.4. Gambar Koneksi Sensor Kompas
Koneksi kompas elektronik menggunakan I2C pin SCL (serial clock) terhubung dengan pin mikrokontroller yang berfungsi sebagai serial clock dan pin SDA (serial data) terhubung dengan mikrokontroller yang berfungsi sebagai serial data. Dipakai resistorpull-uppada SCL dan SDA.
3.3.2 Software Sensor Kompas
Pertama mengirimkan suatu start bit. Kondisi start bit adalah ketika SCL high dan SDA transisi dari high ke low. Start bit berfungsi untuk menentukan awal data. Selanjutnya mikrokontroller mengirimkan data 0xC0, data 0xC0 adalah alamat fix dari kompas. Salanjutnya mengirimkan data 0x01 untuk membaca isi register 1 dari modul kompas. Isi dari register 1 dalah data sudut kompas yang telah dikonversi 0-255. Berikut ini adalah
3.3 Perancangan Sensor Kompas CMPS-03
3.3.1 Hardware Sensor Kompas
Kompas elektronik yang digunakan adalah modul cmps03 produksi Devantech. Kompas elektronik digunakan untuk mengetahui arah hadap robot ketika bergerak.
Gambar 3.4. Gambar Koneksi Sensor Kompas
Koneksi kompas elektronik menggunakan I2C pin SCL (serial clock) terhubung dengan pin mikrokontroller yang berfungsi sebagai serial clock dan pin SDA (serial data) terhubung dengan mikrokontroller yang berfungsi sebagai serial data. Dipakai resistorpull-uppada SCL dan SDA.
3.3.2 Software Sensor Kompas
potongan program pembacaan kompas elektronik dengan menggunakan protokol I2C. Berikut ini adalah potongan program pembacaan kompas elektronik dengan menggunakan protokol I2C.
Gambar 3.5. Program I2C Pembacaan Data Kompas
Setelah inisialisasi dan pembacaan kompas pada gambar 3.5, lalu dapat melanjutkan ke proses berikutnya, yaitu kalibrasi.
START
Inisialisasi Kompas
Kalibrasi
SELESAI
Gambar 3.6. Proses Kerja Kalibrasi Sensor Kompas
Kalibrasi metode PIN membutuhkan switch dari luar seperti yang terlihat pada gambar 3.4.
2. Pastikan kompas pada posisi rata, hadapkan kearah Timur, tekan switch dan lepaskan.
potongan program pembacaan kompas elektronik dengan menggunakan protokol I2C. Berikut ini adalah potongan program pembacaan kompas elektronik dengan menggunakan protokol I2C.
Gambar 3.5. Program I2C Pembacaan Data Kompas
Setelah inisialisasi dan pembacaan kompas pada gambar 3.5, lalu dapat melanjutkan ke proses berikutnya, yaitu kalibrasi.
START
Inisialisasi Kompas
Kalibrasi
SELESAI
Gambar 3.6. Proses Kerja Kalibrasi Sensor Kompas
Kalibrasi metode PIN membutuhkan switch dari luar seperti yang terlihat pada gambar 3.4.
2. Pastikan kompas pada posisi rata, hadapkan kearah Timur, tekan switch dan lepaskan.
potongan program pembacaan kompas elektronik dengan menggunakan protokol I2C. Berikut ini adalah potongan program pembacaan kompas elektronik dengan menggunakan protokol I2C.
Gambar 3.5. Program I2C Pembacaan Data Kompas
Setelah inisialisasi dan pembacaan kompas pada gambar 3.5, lalu dapat melanjutkan ke proses berikutnya, yaitu kalibrasi.
START
Inisialisasi Kompas
Kalibrasi
SELESAI
Gambar 3.6. Proses Kerja Kalibrasi Sensor Kompas
Kalibrasi metode PIN membutuhkan switch dari luar seperti yang terlihat pada gambar 3.4.
3. Pastikan kompas pada posisi rata, hadapkan kearah Selatan, tekan switch dan lepaskan.
4. Pastikan kompas pada posisi rata, hadapkan kearah Barat, tekan switch dan lepaskan.
3.4 Perancangan LCD
LCD digunakan sebagai penampil nilai yang dibaca sensor ultrasonik dan sensor kompas. Konfigurasi kaki – kaki modul LCD ini dapat dilihat pada dasar teori. Pada perancangan ini modul LCD dihubungkan padaportCpada mikro.
Diagram blok LCD pada gambar 3.7.
Gambar 3.7. Diagram Blok LCD
3.5 Perancangan Driver Motor DC
Driver motor digunakan sebagai penghubung mikrokontroler dengan motor DC karena arus yang keluar dari mikrokontroler tidak mampu
mencukupi kebutuhan arus pada motor. Driver motor yang digunakan adalah L298.
Gambar 3.8. Rangkaian driver L298 SISTEM
KENDALI ATMega32
Sensor
Ultrasonik
Kompas
3.6 Perancangan Minimum Sistem Mikrokontroler
Mikrokontroler membutuhkan sebuah minimum system (minsis) dalam penggunaannya pada sebuah sistem yang lebih kompleks. Microcontroller
memerlukan supplytegangan, tegangan refrensi untuk ADC (Analog to Digital Converter), juga diperlukan sumber clock. Oleh karena itu digunakan sebuah perangkat sistem sederhana yg berfungsi sebagai penghubung microcontroller
dengan sumber tegangan dan sumber clock. Sistem mikrokontroler diberi fasilitas reset yang bertujuan untuk memaksa agar proses diulang dari awal.
Gambar 3.9. Rangkaian Reset
Rangkaian lengkap minsis:
Gambar 3.10. RangkaianMinimum System 3.6 Perancangan Minimum Sistem Mikrokontroler
Mikrokontroler membutuhkan sebuah minimum system (minsis) dalam penggunaannya pada sebuah sistem yang lebih kompleks. Microcontroller
memerlukan supplytegangan, tegangan refrensi untuk ADC (Analog to Digital Converter), juga diperlukan sumber clock. Oleh karena itu digunakan sebuah perangkat sistem sederhana yg berfungsi sebagai penghubung microcontroller
dengan sumber tegangan dan sumber clock. Sistem mikrokontroler diberi fasilitas reset yang bertujuan untuk memaksa agar proses diulang dari awal.
Gambar 3.9. Rangkaian Reset
Rangkaian lengkap minsis:
Gambar 3.10. RangkaianMinimum System 3.6 Perancangan Minimum Sistem Mikrokontroler
Mikrokontroler membutuhkan sebuah minimum system (minsis) dalam penggunaannya pada sebuah sistem yang lebih kompleks. Microcontroller
memerlukansupplytegangan, tegangan refrensi untuk ADC (Analog to Digital Converter), juga diperlukan sumberclock. Oleh karena itu digunakan sebuah perangkat sistem sederhana yg berfungsi sebagai penghubung microcontroller
dengan sumber tegangan dan sumber clock. Sistem mikrokontroler diberi fasilitas reset yang bertujuan untuk memaksa agar proses diulang dari awal.
Gambar 3.9. Rangkaian Reset
Rangkaian lengkap minsis:
Perangkat input pada sistem ini adalah sensor – sensor. Perangkat output pada sistem ini adalah driver, yaitu driver motor penggerak robot dan driver motor penyemprot air dan LCD sebagai perangkat penampil.
Minimum sistem menggunakan catu daya 5v. Untuk tiap port diberi pin deret untuk memudahkan menghubungkan ke perangkat sensor dan perangkat pendukung lainnya. Perancangan minimum sistem ini banyak mengacu pada ketentuan datasheet. Port xtal 1 dan xtal 2 dihubungkan dengan crystal oscillator dan diberi 2 buah capasitor. Crystal oscillator menggunakan nilai 12Mhz dan nilai C1 dan C2 mengacu pada datasheet. Port AREV sebagai refrensi untuk ADC dihubungkan langsung ke sumber 5v. Port AVCC tetap dihubungkan dengan sumber 5v walau ADC tidak digunakan, dan apabila ADC digunakan harus dihubungkan ke sumber 5V melalui sebuah low-pass filter.
Untuk fasilitas downloader diberikan sebuah pin sendiri yang dihubungkan dengan port MISO, MOSI, SCK, RESET, GND dan 5v.
3.7 Perancangan Robot
3.7.1 Bodydan Sasis Robot
Gambar 3.11. Model Robot
Kerangka utama robot adalah alumunium dan beberapa bagian yang menggunakan akrilik bening dan putih. Dimensi robot yang dirancang adalah Perangkat input pada sistem ini adalah sensor – sensor. Perangkat output pada sistem ini adalah driver, yaitu driver motor penggerak robot dan driver motor penyemprot air dan LCD sebagai perangkat penampil.
Minimum sistem menggunakan catu daya 5v. Untuk tiap port diberi pin deret untuk memudahkan menghubungkan ke perangkat sensor dan perangkat pendukung lainnya. Perancangan minimum sistem ini banyak mengacu pada ketentuan datasheet. Port xtal 1 dan xtal 2 dihubungkan dengan crystal oscillator dan diberi 2 buah capasitor. Crystal oscillator menggunakan nilai 12Mhz dan nilai C1 dan C2 mengacu pada datasheet. Port AREV sebagai refrensi untuk ADC dihubungkan langsung ke sumber 5v. Port AVCC tetap dihubungkan dengan sumber 5v walau ADC tidak digunakan, dan apabila ADC digunakan harus dihubungkan ke sumber 5V melalui sebuah low-pass filter.
Untuk fasilitas downloader diberikan sebuah pin sendiri yang dihubungkan dengan port MISO, MOSI, SCK, RESET, GND dan 5v.
3.7 Perancangan Robot
3.7.1 Bodydan Sasis Robot
Gambar 3.11. Model Robot
Kerangka utama robot adalah alumunium dan beberapa bagian yang menggunakan akrilik bening dan putih. Dimensi robot yang dirancang adalah Perangkat input pada sistem ini adalah sensor – sensor. Perangkat output pada sistem ini adalah driver, yaitu driver motor penggerak robot dan driver motor penyemprot air dan LCD sebagai perangkat penampil.
Minimum sistem menggunakan catu daya 5v. Untuk tiap port diberi pin deret untuk memudahkan menghubungkan ke perangkat sensor dan perangkat pendukung lainnya. Perancangan minimum sistem ini banyak mengacu pada ketentuan datasheet. Port xtal 1 dan xtal 2 dihubungkan dengan crystal oscillator dan diberi 2 buah capasitor. Crystal oscillator menggunakan nilai 12Mhz dan nilai C1 dan C2 mengacu pada datasheet. Port AREV sebagai refrensi untuk ADC dihubungkan langsung ke sumber 5v. Port AVCC tetap dihubungkan dengan sumber 5v walau ADC tidak digunakan, dan apabila ADC digunakan harus dihubungkan ke sumber 5V melalui sebuah low-pass filter.
Untuk fasilitas downloader diberikan sebuah pin sendiri yang dihubungkan dengan port MISO, MOSI, SCK, RESET, GND dan 5v.
3.7 Perancangan Robot
3.7.1 Bodydan Sasis Robot
Gambar 3.11. Model Robot
panjang x lebar x tinggi = 19cm x 15,8cm x 19 cm. Penggerak robot adalah motor DC dengan rodatanksebagai alasnya. Peletakan 8 buah sensor ultrasonik adalah sebagai berikut; 1 di bagian depan, 1 di bagian belakang, 2 di bagian kanan, 2 di bagian kiri, 2 di sudut 45okiri dan kanan. Sensor kompas diletakkan di tengah badan robot.
Gambar 3.12. Posisi Peletakan PING
Sensor PING disusun posisinya seperti yang tampak pada gambar 3.12. Posisi ini membuat daya jangkau pembacaan PING menjadi sangat luas, hampir mencapai 360o. Dengan posisi ini scanning PING harus bergantian dan berseberangan agar tidak terjadi interferensi antar PING. Misalnya depan, ka1, ki1, ka3, ki3, ka2, ki2, lalu belakang.
3.7.2 Pergerakan Robot
Robot dirancang untuk menjelajah seluruh arena. Pergerakan robot secara umum dapat digambarkan seperti pada gambar 3.13. Proses inisialisasi adalah penyesuaian sensor – sensor dengan mikrokontroler pada robot.
Penjelas: Dp = PING depan, Blk = PING belakang, Ka = PING kanan, Ki = PING kiri. Kondisi putar adalah dimana salah satu motor maju, dan motor lainnya mundur baik ke kiri maupun kanan, kondisi maju adalah kedua motor berputar maju, kondisi belok adalah salah satu motor maju, dan kondisi mundur adalah kedua motor mundur.
Pada subroutine menuju ruangan robot membaca kondisi dinding yang ada disekitarnya untuk menentukan tindakan berikutnya.
Gambar 3.15.SubroutinePengecekan Ruangan
Penjelas: Dp = PING depan, Blk = PING belakang, Ka = PING kanan, Ki = PING kiri. Kondisi putar adalah dimana salah satu motor maju, dan motor lainnya mundur baik ke kiri maupun kanan, kondisi maju adalah kedua motor berputar maju, kondisi belok adalah salah satu motor maju, dan kondisi mundur adalah kedua motor mundur.
Pada subroutine menuju ruangan robot membaca kondisi dinding yang ada disekitarnya untuk menentukan tindakan berikutnya.
Gambar 3.15.SubroutinePengecekan Ruangan
Penjelas: Dp = PING depan, Blk = PING belakang, Ka = PING kanan, Ki = PING kiri. Kondisi putar adalah dimana salah satu motor maju, dan motor lainnya mundur baik ke kiri maupun kanan, kondisi maju adalah kedua motor berputar maju, kondisi belok adalah salah satu motor maju, dan kondisi mundur adalah kedua motor mundur.
Pada subroutine menuju ruangan robot membaca kondisi dinding yang ada disekitarnya untuk menentukan tindakan berikutnya.
Keadaan robot saat pengecekan ruangan adalah saat robot masuk ke pintu ruangan. Robot akan men-scan apakah ada api atau tidak dalam ruangan tersebut.
Gambar 3.16.SubroutineAtur Posisi Start
Keadaan start ini membuat robot untuk mencari posisi yang baik untuk memulai melaju. Robot akan berputar untuk mencari posisi itu.
3.8 Spesifikasi Arena
Gambar 3.17. Arena [2]
Gambar 3.18. Perlengkapan Arena [2] Gambar 3.17. Arena [2]
Gambar 3.18. Perlengkapan Arena [2] Gambar 3.17. Arena [2]