DENGAN PENENTUAN POSISI MEJ A MENGGUNAKAN
ROTARY ENCODER
TUGAS AKHIR
Oleh :
RURY ASPR IANTO
0834010167
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
J AWA TIMUR
DENGAN PENENTUAN POSISI MEJ A MENGGUNAK AN LINE
TRACER
TUGAS AKHIR
Diajukan Untuk Memenuhi Sebagai Persyaratan Dalam Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Oleh :
TRI R AHMAWANTO
0834010187
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
ROBOT PENGANTAR MAKANAN
DENGAN PENENTUAN POSISI MEJ A MENGGUNAKAN
ROTARY ENCODER
Disusun oleh :
RURY ASPR IANTO
0834010167
Telah disetujui mengikuti Ujian Negar a Lisan Per iode VI Tahun Akademik 2011/2012
Pembimbing I
Basuk i Rahmat, S.Si, MT. NPT. 3 6907 06 0209 1
Pembimbing II
Syur fah Ayu Ithr iah, S.Kom. NPT. 3 8501 10 0294 1
Mengetahui,
Ketua Pr ogr am Studi Tek nik Infor matika Fakultas Teknologi Industr i
Univer sitas Pembangunan Nasional ”Veter an” J awa Timur
ROBOT PENGANTAR MAKANAN
DENGAN PENENTUAN POSISI MEJ A MENGGUNAKAN
ROTARY ENCODER
Disusun Oleh :
RURY ASPR IANTO
0834010167
Telah diper tahankan dan diter ima oleh Tim Penguji Sk ripsi Pr ogram Studi Teknik Infor matika Fakultas Teknologi Industr i
Univer sitas Pembangunan Nasional ”Veter an” J awa Timur Pada Tanggal 15 J uni 2012
Pembimbing :
Ir. R. Purnomo Edi Sasongko, MP. NIP. 19640714 198803 1 001 2.
Syur fah Ayu Ithr iah, S.Kom. NPT. 3 8501 10 0294 1
Univer sita s Pembangunan Nasional ”Veter an” J awa Timur
Syukur Alhamdulillaahi rabbil ‘alamin terucap ke hadirat Allah SWT
atas segala limpahan Kekuatan-Nya sehingga dengan segala keterbatasan waktu,
tenaga, pikiran dan keberuntungan yang dimiliki penyusun, akhirnya penyusun
dapat menyelesaikan Skripsi yang berjudul “ Robot Pengantar Makanan
Dengan Penentuan Posisi Meja Menggunakan Rotary Encoder” tepat waktu.
Skripsi dengan beban 4 SKS ini disusun guna diajukan sebagai salah satu
syarat untuk menyelesaikan program Strata Satu (S1) pada jurusan Teknik
Informatika, Fakultas Teknologi Industri, UPN ”VETERAN” Jawa Timur.
Melalui Skripsi ini penyusun merasa mendapatkan kesempatan emas
untuk memperdalam ilmu pengetahuan yang diperoleh selama di bangku
perkuliahan, terutama berkenaan tentang penerapan teknologi perangkat bergerak.
Namun, penyusun menyadari bahwa Skripsi ini masih jauh dari sempurna. Oleh
karena itu penyusun sangat mengharapkan saran dan kritik dari para pembaca
untuk pengembangan aplikasi lebih lanjut.
Surabaya, Juni 2012
Ucapan terima kasih ini saya persembahkan sebagai perwujudan rasa syukur atas
terselesaikannya Laporan Skripsi. Ucapan terima kasih ini saya tujukan kepada :
1. Allah SWT., karena berkat Rahmat dan berkahNya kami dapat menyusun dan
menyelesaikan Laporan Skripsi ini hingga selesai.
2. Bapak Prof. Dr. Ir. Teguh Soedarto, MP selaku Rektor Universitas
Pembangunan Nasional “Veteran” Jawa Timur.
3. Bapak Sutiyono, MT selaku Dekan Fakultas Teknologi Industri UPN
“Veteran” Jawa Timur.
4. Ibu Dr. Ir. Ni Ketut Sari, MT. selaku Ketua Jurusan Teknik Informatika UPN
“Veteran” Jawa Timur yang telah dengan sabar membimbing dengan segala
kerendahan hati dan selalu memberikan kemudahan dan kesempatan bagi saya
untuk berkreasi.
5. Bapak Firza Prima Aditiawan, S.Kom., Selaku PIA Tugas Akhir Teknik
Informatika UPN “Veteran” Jawa Timur.
6. Bapak Basuki Rahmat Ssi, MT, selaku dosen pembimbing utama pada Proyek
Skripsi ini di UPN “Veteran” Jawa Timur yang telah banyak memberikan
petunjuk, masukan, bimbingan, dorongan serta kritik yang bermanfaat sejak
awal hingga terselesainya Skripsi ini.
7. Ibu syurfah Ayu Ithriah, S.Kom, selaku dosen pembimbing Pendamping
(Pembimbing II) yang telah memberikan banyak kritik dan saran yang
bermanfaat dalam menyelesaikan skripsi ini.
Skripsi dan laporan ini. Yang penulis minta hanya doa restunya, sehingga
penulis bisa membuat sesuatu yang lebih baik dari laporan ini.
9. Terimakasih buat teman seperjuangan sekaligus partner yang baik, Tri
Rahmawanto dan Syamsul Arif, yang telah berjuang bersama sampai akhir.
Serta teman-temanku Mimin, Syem, Jalal, Qiqi, Jul, dan teman-teman
D'Force yang telah memberi semangat.
10.Kawan-kawan yang telah membantu dalam penyelesaian Laporan Skripsi ini.
Yang telah memberikan dorongan dan doa, yang tak bisa penulis sebutkan
satu persatu. Terima Kasih yang tak terhingga untuk kalian semua. Semoga
MENGGUNAKAN ROTARY ENCODER
DOSEN PEMBIMBING I : BASUKI RAHMAT , Ssi. M.T. DOSEN PEMBIMBING II : SYURFA AYU ITHRIAH, S.Kom. PENYUSUN : RURY ASPRIANTO
ABSTRAK
Seiring perkembangan teknologi pekerjaan manusia saat ini mulai dapat digantikan oleh robot. Akan tetapi Robot diciptakan bukannya untuk menggantikan manusia sepenuhnya karena walau bagaimanapun ada pekerjaan-pekerjaan tertentu yang tak dapat digantikan dan diselesaikan oleh robot tanpa bantuan manusia dan begitu pula sebaliknya. Robot diciptakan untuk memudahkan manusia dalam menyelesaikan masalah, contohnya dalam mengantarkan makanan,karna keterbasan seorang pelayan dalam membawa makanan, untuk itu diciptakanlah Robot Pengantar makanan untuk membantu manusia dalam pekerjaan ini. Pada tugas akhir ini penulis mengambil contoh seorang pelayan di sebuah restoran untuk disimulasikan. Robot disini berfungsi sebagai pengantar makanan dan kemudian kembali ke tempat awal. Proses mengantar makanan dengan cara menghitung putaran roda yang di butuh kan untuk menuju meja yang di tuju. Proses pembacaan pulsa yang di dapat di hasilkan dari piringan rotary encoder dan sensor optocoupler.
2.3.2 Arsitektur ATmega16 ... 12
2.3.3 Deskripsi Mikrokonroler ATmega16 ... 13
2.3.4 Peta Memori ATmega16 ... 15
BAB III PERANCANGAN DAN ANALISI SISTEM ... 29
3.1 Analisis Sistem ... 29
3.2 Perancangan Perangkat Keras ... 30
BAB IV IMPLEMENTASI ... 47
4.1 Kebutuhan Sistem ... 47
4.1.1 Perangkat Sistem ... 47
4.2 Prosedur Pembuatan Program ... 48
4.3 Implementasi Coding ... 55
BAB V UJI COBA DAN EVALUASI ... 63
5.1 Analisa Pengujian Hardware ... 63
5.2 Pengujian Alat ... 63
5.2.1 Pengujian Sensor Optocoupler ... 63
5.2.2 Pengujian Driver Motor ... 64
5.2.3 Pengujian Limit Switch ... 65
5.2.4 Pengujian Sensor Line Tracer ... 65
5.2.5 Pengujian Kapasitas Berat ... 66
5.3 Pengujian Robot Pengantar Makanan ... 67
BAB VI PENUTUP ... 72
6.1 Kesimpulan ... 72
6.2 Saran ... 72
BAB I
PENDAHULUAN
1.1. Latar Belakang
Seiring dengan berkembangnya teknologi mikrokontroller yang sangat
pesat yang pada akhirnya mengantarkan kita pada suatu era teknologi robotika,
telah membuat kualitas kehidupan manusia semakin tinggi. Berbagai robot
canggih, sistem keamanan rumah, telekomunikasi, dan sistem komputer banyak
menggunakan mikrokontroller sebagai unit pengontrol utama. Tentunya hal ini
dimaksudkan untuk lebih mempermudah manusia untuk melakukan pekerjaan
atau activitasnya sehari-hari.
Saat ini perkembangan teknologi robotika telah mampu meningkatkan
kualitas maupun kuantitas produksi berbagai pabrik. Teknologi robotika juga telah
menjangkau sisi hiburan dan pendidikan bagi manusia. Salah satu jenis robot yang
paling banyak diminati adalah jenis mobil robot. Mobil robot yang dibuat
menggunakan mikrokontroler . Selain dapat berjalan ke obyek yang di tuju dan
juga diciptakan untuk bisa mendeteksi halangan didepannya. Menggunakan lampu
LED sebagai pemancar sinar dan photodioda sebagai penerimaan sinar yang mana
sensor inilah yang sebagai tarnsmiter serta reciver dan sensor inframerah sebagai
pendeteksi halangan, sehingga jika terdapat suatu halangan didepan robot, robot
1.2. Per umusan Masalah
Berdasarkan latar belakang yang dipaparkan di atas, maka robot
pengantar makanan dapat dirumuskan permasalahan sebagai berikut :
a. Bagaimana merangkai robot pengantar makanan dengan mikrokontroler
ATmega16.
b. Bagaimana robot pengantar makanan dapat berjalan menuju meja dan jalur
yang sudah ditentukan untuk mengantar makanan yang dibawa dengan
menggunakan Rotary Encoder.
1.3. Batasan Masalah
Agar nantinya di dalam pembahasan Laporan Akhir ini tidak keluar dari
pokok permasalahan, maka ruang lingkup permasalahannya akan dibatasi pada:
a. Robot pengantar makanan yang dibuat hanya akan berjalan di area yang telah
dibuat oleh penulis.
b. Letak posisi meja sudah ditentukan oleh penulis.
c. Bahasa pemrograman yang akan digunakan adalah bahasa C.
d. Robot hanya mengantarkan makanan.
e. Kapasitas beban yang di bawa maksimum 3kg.
1.4. Tujua n
Tujuan yang hendak dicapai dalam penyusunan Tugas Akhir ini adalah :
a. Merancang robot yang bisa bergerak dengan fungsi mengantar makanan sesuai
lintasan yang sudah ditentukan.
c. Mengimplementasikan robot dalam bentuk prototype.
1.5. Manfaat
Adapun manfaat yang dapat diambil dari pembuatan robot pengantar
makanan menggunakan Rotary Encoder dengan menggunakan ATmega16 .
a. Mengetahui membuat robot pengantar makanan yang menggunakan Rotary
Encoder.
b. Mengetahui cara kerja mikrokontroler pada pembuatan robot pengantar
makanan dengan jarak posisi meja yang telah ditentukan.
1.6. Metodologi Penelitian
Metodologi yang akan digunakan dalam perancangan robot pengantar
makanan ini terdiri dari langkah - langkah sebagai berikut :
a. Perancangan rangkaian sensor yang di pakai pada pembuatan robot pengantar
makanan.
b. Perancangan perangkat lunak menggunakan bahasa C.
c. Menguji dan mengambil data dari hasil perancangan. Pengujian untuk kerja
robot dilakukan di arena yang telah ditentukan oleh penulis.
d. Menganalisa hasil dan membuat kesimpulan.
1.7. Sistematika Penulisan
Sistematika penulisan yang dibuat dalam Tugas Akhir ini disusun dalam
Bab ini menjelaskan tentang latar belakang, rumusan masalah,
batasan masalah, tujuan masalah, metodologi penelitian dan
sistematika penulisan.
BAB II TINJAUAN PUSTAKA
Pada bab ini dijelaskan tentang teori - teori serta penjelasan-
penjelasan yang dibutuhkan dalam pembuatan robot pengantar
makanan menggunakan Rotary Encoder dan pendeteksi rintangan
dengan menggunakan ATmega16.
BAB III PERANCANGAN
Bab ini berisi tentang analisa dan perancangan sistem dalam
pembuatan Tugas Akhir Robot Pengantar Makanan dengan
Penentuan Posisi Meja Menggunakan Rotary Encoder pada
ATmega16.
BAB IV HASIL DAN PEMBAHASAN
Bab ini berisi penjelasan hasil Tugas Akhir serta pembahasannya
tentang robot pengantar makanan dengan ATmega16.
BAB V UJI COBA DAN EVALUASI
Bab ini berisi pengujian program Tugas Akhir.
BAB VI PENUTUP
Pada bab ini berisi kesimpulan dan saran untuk pengembangan
robot lebih lanjut dalam upaya memperbaiki kelemahan pada robot
pengantar makanan yang telah dibuat guna untuk mendapatkan
hasil robot yang lebih baik.
BAB II
TINJ AUAN PUSTAKA
2.1. Robot
Robot Mobil atau Mobile Robot adalah konstruksi robot yang ciri
khasnya adalah mempunyai aktuator berupa roda untuk menggerakkan
keseluruhan badan robot tersebut, sehingga robot tersebut dapat melakukan
perpindahan posisi dari satu titik ke titik yang lain. Robot mobil ini sangat disukai
bagi orang yang mulai mempelajari robot. Hal ini karena membuat robot mobil
tidak memerlukan kerja fisik yang berat. Untuk dapat membuat sebuah robot
mobile minimal diperlukan pengetahuan tentang mikrokontroler dan sensor-sensor
elektronik. Base robot mobil dapat dengan mudah dibuat dengan menggunakan
plywood /triplek, akrilik sampai menggunakan logam ( aluminium ). Robot mobil
dapat dibuat sebagai pengikut garis ( Line Follower ) atau pengikut dinding ( Wall
Follower ) ataupun pengikut cahaya.
2.1.1. Seja rah Dan Penger tian robot
Kata robot pertama kali diperkenalakan oleh seorang penulis dari Czech
yang bernama Karel pada tahun 1921. Kata Robot berasal dari kata ‘robota’ yang
berarti: pekerja sendiri. Sejarah robot bermula ketika sistem otomatis dibuat oleh
Jacques de Vaucanson pada tahun 1938, yang membuat bebek mekanik yang
dapat memakan dan mencincang biiji bijian, membuka dan menutup sayapnya.
mekanik yang dapat mnghidangkan the dan menulis huruf kanji. Lalu 1926,
Nikola Tesla mendemintrasikan perahu bot yang dapat dikontrol dengan radio.
Tahun 1928, Makoto Nishimura membuat robot pertama di Jepang.
Sejalan dengan perkembangan teknologi Elektronika, maka
perkembangan robot ini melaju pesat, seprti tahun 1948, William Grey Walter
membuat robot elektronik otomatis pertama dimana robot ini dapat merespon
cahaya dan dapat melakukan kontak dengan objek dari luar. Pada tahun 1954, saat
dimulainya zaman digital, sebuah robot digital yang dapat deprogram ditemukan
oleh George Devol. Pada abad modern ini sudah bermacam-macam robot yang
dicipta dan digunakan seperti dalam industri, rumah sakit, transportasi, pendidikan
dan kehidupan sehari-hari. Seperti robot yang digunakan untuk mengecat mobil,
robot yang digunakan untuk merakit komponen elektronik dan juga humanoid
robot yaiitu robot yang memiliki muka, yang mampu berjalan dan bertindak
seperti manusia.
2.1.2. Teor i Kinematika Robot
Terdapat dua metode analisa untuk menganalisa pergerakan robot, yaitu
analisa kinematika dan analisa dinamik. Pada bab ini penulisan hanya akan
membahas mengenai analisa kinematika. Analisa kinematika adalah analisa yang
berkaitan dengan pergerakan robot tanpa memandang efek kinersia/kelembaman
2.1.2.1. Konsep Kinematika
Konsep kinematika didasarkan pada diagram system control robotik yang
dijelaskan pada gambar 2.1.
Gambar 2.1 Diagram Sistem Kontrol Robotik
Pada Gambar 2.1 diatas, Jadi kinematika dalam robot adalah suatu bentuk
pernyataan yang berisi tentang deskripsi matematik geomatri suatu struktur robot.
dari persamaan kinetika dapat diperoleh hubungan antara konsep geometri ruang
sendi pada robot dengan konsep koordinat yang biasa dipakai untuk menentukan
kedudukan dari suatu objek. dengan kinetika programmer dapat menentukan
konfigurasi referensi input yang harus di umpankan ke setiap actuator agar robot
dapat melakukan gerakan dimultan (seluruh sendi) untuk mencapi posisi yang
akan di kehendaki.
2.2. Mikrokontr oller AVR
Mikrokontroller AVR (Alf and Vegard's Risc prosesor) standar memiliki 8
bit, dimana semua instruksi dikemas dalam kode 16-bit, dan sebagian besar
instruksi dieksekusi dalam 1 (satu) siklus clock. AVR berteknologi RISC
(Reduced Instruction Set Computing) dimana set instruksinya dikurangi dari segi
dan kompleksitas mode pengalamatannya, sedangkan seri MCS-51 berteknologi
CISC (Complex Instruction Set Computing). Konsep arsitektur AVR sendiri
awalnya dibuat oleh 2 orang mahasiswa di Norwegia dan AVR dapat
dikelompokkan menjadi empat kelas, yaitu ATtiny, keluarga ATSOSxx, keluarga
ATmega, dan AT86RFxx. Pada dasarnya yang membedakan masing-masing kelas
adalah memori, peripheral, dan fungsinya.
2.2.1. Memor i Progr am
Memori program adalah memori dimana program mikrokontroler
disimpan. Tidak hanya program, tapi juga konstanta-konstanta program. Untuk
mengakses memori program AVR digunakan instruksi LPM (Load Program
Memory). Instruksi LPM berfungsi membaca satu byte data pada memori program
dengan alamat yang ditunjuk oleh Register Z dan meng-copy-nya ke suatu register
(R0-R31). Perlu diketahui bahwa tidak semua tipe mikrokontroler AVR
mendukung instruksi LPM, salah satu contohnya adalah AT90S1200. Memori
program AVR diatur dalam satuan word (16-bit), sementara Register Z menunjuk
alamat memori program dalam satuan byte. 1 word kan tersusun dari 2 byte yakni
high-byte (8-bit MSB) dan low-byte (8-bit LSB). Digunakan bit terendah (Least
Significant Bit) dari Register Z (ZLSB). Jika ZLSB=0, maka instruksi LPM akan
membaca byte bawah pada alamat memori program yang ditunjuk oleh Register Z.
2.2.2. EEPROM
Beberapa mikrokontroler AVR telah memiliki EEPROM (Electrically
Erasable Programmable Read Only Memory) internal sebagai tempat penyimpanan
data semi-permanen. Jadi seperti halnya flash memory, EEPROM tetap dapat
menyimpan data meskipun catu daya dimatikan, dengan kata lain data tidak akan
hilang walaupun catu daya dimatikan. EEPROM internal ini tidak dipetakan
bersama dengan register utama, register I/O dan SRAM. EEPROM hanya dapat
diakses melalui register spesial dan operasi read/write sehingga waktu aksesnya
lebih lamban dari pada mengakses register ataupun SRAM. Mikrokontroler
Atmega16 memiliki alamat memory EEPROM internal sebesar 512 bit dengan
lebar data memory 8 bit. Sehingga mampu menampung data sebesar 512 byte.
Untuk melakukan intruksi write/read ke memory EEPROM dilakukan melalui
beberapa register yaitu register EEARH, EEARL, EEDR dan EECR.
2.3. Mikrokontr oler ATMega16
Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu serpih
(chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah
terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory),
beberapa bandar masukan maupun keluaran, dan beberapa peripheral seperti
pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to Analog
converter) dan serial komunikasi.Salah satu mikrokontroler yang banyak di
(Reduce Instuction SetCompute) 8 bit berdasarkan arsitektur Harvard. Secara
umum mikrokontrolerAVR dapat dapat dikelompokkan menjadi 3 kelompok, yait
u keluarga AT90Sxx,ATMega dan ATtiny. Pada dasarnya yang membedakan m
asing-masing kelas adalah memori, peripheral, dan fiturnya
Seperti mikroprosesor pada umumnya, secara internal mikrokontroler
ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit
(ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu
beserta komponen kendali lainnya. Berbeda dengan mikroprosesor
mikrokontroler menyediakan memori dalam serpih yang sama dengan
prosesornya (in chip).
2.3.1. Konfigurasi Pin ATMega16
Konfigurasi pena (pin) mikrokontroler Atmega16 dengan kemasan 40-
pena dapat dilihat pada Gambar 2.2. Dari gambar tersebut dapat terlihat
ATMega16 memiliki 8 pena untuk masing-masing bandar A (Port A), bandar B
(Port B), bandar C (Port C), dan bandar D (Port D).fungsi dari masing-masing pin
ATMEGA16 sebagai berikut :
1) Vcc merupakan pin yang berfungsi sebagai masukan catu daya
2) Gnd merupakan pin ground
3) Port A (PA0 s/d PA7) merupakan pin input/output dua arah dan pin masukan
ADC
4) Port B (PB0 s/d PB7) merupakan pin input/output dua arah dan pin fungsi
Gambar 2.2 Pena-Pena Atmega16
2.3.2. Asitektur ATMega16
Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan
memori program dari memori data, baik bus alamat maupun bus data, sehingga
pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent).
Secara garis besar mikrokontroler ATMega16 terdiri dari :
1) Arsitektur RISC dengan throughput mencapai 16 MIPS pada frek.16Mhz
2) Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512Byte,SRAM 1Kb
3) Saluran I/O 32 buah, yaitu Bandar A, Bandar B, Bandar C, dan Bandar D.
4) CPU yang terdiri dari 32 buah register.
5) User interupsi internal dan eksternal
6) Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial
Gambar 2.3 Blok Diagram ATMega16
2.3.3. Deskr ipsi Mikrokontroler ATmega16
· VCC (Power Supply) dan GND(Ground)
· Bandar A (PA7..PA0)
Bandar A berfungsi sebagai input analog pada konverter A/D. Bandar A
juga sebagai suatu bandar I/O 8-bit dua arah, jika A/D konverter tidak digunakan.
untuk masing-masing bit). Bandar A output buffer mempunyai karakteristik
gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Ketika
pena PA0 ke PA7 digunakan sebagai input dan secara eksternal ditarik rendah,
pena–pena akan memungkinkan arus sumber jika resistor internal pull-up
diaktifkan. Pena Bandar A adalah tri-stated manakala suatu kondisi reset menjadi
aktif, sekalipun waktu habis.
· Bandar B (PB7..PB0)
Bandar B adalah suatu bandar I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Bandar B output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan
sumber. Sebagai input, pena Bandar B yang secara eksternal ditarik rendah akan
arus sumber jika resistor pull-up diaktifkan. Pena Bandar B adalah tri-stated
manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
· Bandar C (PC7..PC0)
Bandar C adalah suatu bandar I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Bandar C output buffer mempunyai
karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan
sumber. Sebagai input, pena bandar C yang secara eksternal ditarik rendah akan
arus sumber jika resistor pull-up diaktifkan. Pena bandar C adalah tri-stated
manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
· Bandar D (PD7..PD0)
Bandar D adalah suatu bandar I/O 8-bit dua arah dengan resistor internal
pull-up (yang dipilih untuk beberapa bit). Bandar D output buffer mempunyai
sumber. Sebagai input, pena bandar D yang secara eksternal ditarik rendah akan
arus sumber jika resistor pull-up diaktifkan. Pena Bandar D adalah tri-stated
manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
· RESET (Reset input)
· XTAL1 (Input Oscillator)
· XTAL2 (Output Oscillator)
·AVCC adalah pena penyedia tegangan untuk bandar A dan Konverter A/D.
· AREF adalah pena referensi analog untuk konverter A/D.
2.3.4. Peta Memor i ATMega16
Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data
dan memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk
Menyimpan data. ATMega16 memiliki 16K byte On-chip System
Reprogrammable Flash Memory untuk menyimpan program. Instruksi ATMega16
semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x
16 bit. Memori flash dibagi kedalam dua bagian, yaitu bagian program boot dan
aplikasi seperti terlihat pada Gambar 2.4. Bootloader adalah program kecil yang
bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program
Gambar 2.4 Peta Memori ATMega16
2.3.4.1. Memor i Data (SRAM)
Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register
umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General purpose
register menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan
memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori
I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap
berbagai fitur mikrokontroler seperti kontrol register, timer/counter, fungsi-fungsi
I/O, dan sebagainya. 1024 alamat berikutnya mulai dari $60 hingga $45F
digunakan untuk SRAM internal.
2.3.4.2. Memor i Data EEPROM
ATMega16 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat
ditulis/dibaca dari memori ini, ketika catu daya dimatikan, data terakhir yan
kata lain memori EEPROM bersifat nonvolatile.
2.3.5. Analog To Digital Conver ter
AVR ATMega16 merupakan tipe AVR yang telah dilengkapi dengan
8saluran ADC internal dengan resolusi 10 bit. Dalam mode operasinya, ADC dapa
t ikonfigurasi, baik single ended input maupun differential input. Selain itu, ADC
ATMega16 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi,
dan kemampuan filter derau (noise) yang amat fleksibel sehingga dapat dengan
mudah disesuaikan dengan kebutuhan dari ADC itu sendiri. ADC pada ATMega16
memiliki fitur-fitur antara lain :
· Resolusi mencapai 10-bit
· Akurasi mencapai ± 2 LSB
· aktu konversi 13-260µs
· 8 saluran ADC dapat digunakan secara bergantian
· Jangkauan tegangan input ADC bernilai dari 0 hingga VCC
· Disediakan 2,56V tegangan referensi internal ADC
· Mode konversi kontinyu atau mode konversi tunggal
· Interupsi ADC complete
· Sleep Mode Noise canceler
Proses inisialisasi ADC meliputi proses penentuan clock, tegangan
referensi, formal data keluaran, dan modus pembacaan. Register-register yan
ADC Control and Status Register A – ADCSRA
Gambar 2.5 ADC Control and Status Register A – ADCSRA
ADEN : 1 = adc enable, 0 = adc disable
ADCS : 1 = mulai konversi, 0 = konversi belum terjadi
ADATE : 1 = auto trigger diaktifkan, trigger berasal dari sinyal yang dipilih
(set pada trigger SFIOR bit ADTS). ADC akan start konversi pada
edge positif sinyal trigger.
ADIF : diset ke 1, jika konversi ADC selesai dan data register ter-update.
Namun ADC Conversion Complete Interrupt dieksekusi jika bit
ADIE dan bit-I dalam register SREG diset.
ADIE : diset 1, jika bit-I dalam register SREG di-set.
ADPS[0..2] : Bit pengatur clock ADC, faktor pembagi 0 … 7 = 2, 4, 8, 16, 32,
64, 128.
ADC Multiplexer-ADMUX
Gambar 2.6 ADC Multiplexer
REFS 0, 1 : Pemilihan tegangan referensi ADC
00 : Vref = Aref
01 : vref = AVCC dengan eksternal capasitor pada AREF
10 : vref = internal 2.56 volt dengan eksternal kapasitor pada AREF
ADLAR : Untuk setting format data hasil konversi ADC, default = 0
· Special Function IO Register-SFIOR
SFIOR merupakan register 8 bit pengatur sumber picu konversi ADC,
apakah dari picu eksternal atau dari picu internal, susunannya seperti yang terlihat
pada Gambar 2.7 berikut :
Gambar 2.7 Register SFIOR
ADTS[0...2] : Pemilihan trigger (pengatur picu) untuk konversi ADC, bit-bit ini
ADTS[0...2] dapat dilihat pada Tabel 2.2.
Tabel 2.2 Pemilihan Sumber Picu ADC
ADHSM : 1. ADC high speed mode enabled. Untuk operasi ADC,
bit
ACME, PUD, PSR2 dan PSR10 tidak diaktifkan.
2.4. PCB
PCB adalah singkatan dari Printed Circuit Board, sebuah papan yang
digunakan untuk mendukung semua komponen-komponen elektronika yang
berada diatasnya, papan PCB juga memiliki jalur-jalur konduktor yang terbuat
dari tembaga dan berfungsi untuk menghubungkan antara satu komponen dengan
komponen lainnya. adalah Bahan yang digunakan untuk membuat PCB adalah
sejenis fiber sebagai media isolasinya yang dilapisi cat berwarna hijau, sedangkan
untuk jalur konduktor menggunakan tembaga. Ada beberapa macam jenis PCB
elektronika seperti radio, TV, dll) PCB double side (maksudnya kedua sisi PCB
digunakan untuk menghubungkan komponen) dan PCB multi side ( bagian PCB
luar maupun dalam digunakan sebagai media penghantar, misalnya pada
rangkaian-rangkaian PC).
Gambar 2.8 PCB
Papan PCB dapat digolongkan atas beberapa jenis berdasarkan:
* susunan lapis
o lapis tunggal
o lapis ganda
o multi lapis (4, 6, 8 lapis)
* bentuk
o keras
o lunak (fleksibel)
o gabungan keras dan lunak
o penghubung kepadatan tinggi (High Density Interconnect)
2.5. Photodioda
Sifat dari photodioda adalah jika semakin banyak cahaya yang diterima,
maka nilai resistensi diodanya semakin kecil. Dengan melakukan sedikit
modifikasi, maka besaran resistensi tersebut dapat diubah menjadi tegangan.
Sehingga jika sensor berada diatas garis hitam, maka tegangan keluaran sensor
akan kecil, demikian pula sebaliknya.
2.6. Optocoupler
Optocoupler merupakan piranti elektronika yang berfungsi sebagai pemisah
antara rangkaian power dengan rangkaian control. Optocoupler juga merupakan
salah satu jenis komponen yang memanfaatkan sinar sebagai pemicu on/off-nya.
Opto berarti optic dan coupler berarti pemicu. Sehingga bisa diartikan bahwa
optocoupler merupakan suatu komponen yang bekerja berdasarkan picu cahaya
optic opto-coupler termasuk dalam sensor, dimana terdiri dari dua bagian yaitu
transmitter dan receiver. Dasar rangkaian dapat ditunjukkan seperti pada gambar
dibawah ini:
2.7. Kapasitor
Kapasitor ialah komponen elektronik yang mempunyai kemampuan
menyimpan electron - electron selama waktu yang tidak tertentu. Kapasitor
berbeda dengan akumulator dalam menyimpan muatan listrik terutama tidak
terjadi perubahan kimia pada bahan kapasitor, besarnya kapasitensi dari sebuah
kapasitor dinyatakan dalam farad. Pengertian lain kapasitor adalah komponen
elektronik yang dapat menyimpan dan melepaskan muatan listrik. Struktur sebuah
kapasitor terbuat dari 2 buah plat metal yang dipisahkan oleh suatu bahan
dielektrik. Bahan - bahan dielektrik yang umum dikenal miaslnya udara vakum,
keramik, gelas dan lain-lain. Jika kedua ujung plat metal diberi tegangan listrik,
maka muatan - muatan positif akan mengumpul pada salah satu kaki ( elektroda )
metalnya dan pada saat yang sama muatan - muatan negatif terkumpul pada ujung
metal yang satu lagi. Muatan positif tidak dapat mengalir menuju ujung kutup
negatif dan sebaliknya muatan negatif tidak bisa menuju ke ujung kutup positif,
karena terpisah oleh bahan dielektrik yang non-konduktif. Muatan elektrik ini
"tersimpan" selama tidak ada konduksi pada ujung- ujung kakinya.
2.8. DC Motor
DC Motor merupakan pengontrol motor DC yang menggunakan 12C-bus
sebagai jalur penyampaian data sehingga dapat lebih menghemat dan
mempermudah pengkabelan. DC motor ini dilengkapi dengan prosedur input
sehingga dapat mengetahui kecepatan motor pada saat tertentu, juga dilengkapi
dengan prosedur brake yang dapat menghentikan motor secara cepat. Selain itu
robot dan simber gerak lainnya. Untuk menggerakkan dua buah motor DC,
digunakan IC H-Bridge Motor Driver L298, yang mampu memberikan arus
maksimum sebesar 1A ke tiap motor. Input L298 ada 6 jalur, terdiri dari input data
arah pergerakan motor dan input untuk PWM inilah akan diberikan lebar pulsa
yang bervariasi dari mikrokontroler.
2.9. Rotar y Encoder
Rotary encoder adalah divais elektromekanik yang dapat memonitor
gerakan dan posisi. Rotary encoder umumnya menggunakan sensor optik untuk
menghasilkan serial pulsa yang dapat diartikan menjadi gerakan, posisi, dan arah.
Sehingga posisi sudut suatu poros benda berputar dapat diolah menjadi informasi
berupa kode digital oleh rotary encoder untuk diteruskan oleh rangkaian kendali.
Rotary encoder umumnya digunakan pada pengendalian robot, motor drive.
Rotary encoder tersusun dari suatu piringan tipis yang memiliki
lubang-lubang padabagian lingkaran piringan. LED ditempatkan pada salah satu
sisi piringan sehingga cahaya akan menuju ke piringan. Di sisi yang lain suatu
photo-transistor diletakkan sehingga photo-transistor ini dapat mendeteksi cahaya
dari LED yang berseberangan. Piringan tipis tadi dikopel dengan poros motor,
atau divais berputar lainnya yang ingin kita ketahui posisinya, sehingga ketika
motor berputar piringan juga akan ikut berputar. Apabila posisi piringan
mengakibatkan cahaya dari LED dapat mencapai photo-transistor melalui
lubang-lubang yang ada, maka photo-transistor akan mengalami saturasi dan akan
menghasilkan suatu pulsa gelombang persegi. Gambar menunjukkan bagan
dihasilkan pada satu putaran menentukan akurasi rotary encoder tersebut,
akibatnya semakin banyak jumlah lubang yang dapat dibuat pada piringan
menentukan akurasi rotary encoder tersebut. Rangkaian penghasil pulsa yang
digunakan umumnya memiliki output yang berubah dari +5V menjadi 0.5V ketika
cahaya diblok oleh piringan dan ketika diteruskan ke photo-transistor. Karena
divais ini umumnya bekerja dekat dengan motor DC maka banyak noise yang
timbul sehingga biasanya output akan dimasukkan ke low-pass filter dahulu.
Apabila low-pass filter digunakan, frekuensi cut-off yang dipakai umumnya
ditentukan oleh jumlah slot yang ada pada piringan dan seberapa cepat piringan
tersebut berputar, dinyatakan dengan:
2.9.1. Absolute Rotar y Encoder
Absolute encoder menggunakan piringan dan sinyal optik yang diatur
sedemikian sehingga dapat menghasilkan kode digital untuk menyatakan sejumlah
posisi tertentu dari poros yang dihubungkan padanya. Piringan yang digunakan
untuk absolut encoder tersusun dari segmen-segmen cincin konsentris yang
dimulai dari bagian tengah piringan ke arah tepi luar piringan yang jumlah
segmennya selalu dua kali jumlah segmen cincin sebelumnya. Cincin pertama di
bagian paling dalam memiliki satu segmen transparan dan satu segmen gelap,
cincin kedua memiliki dua segmen transparan dan dua segmen gelap, dan
seterusnya hingga cincin terluar. Sebagai contoh apabila absolut encoder memiliki
16 cincin konsentris maka cincin terluarnya akan memiliki 32767 segmen.
Karena setiap cincin pada piringan absolute encoder memiliki jumlah
segmen kelipatan dua dari cincin sebelumnya, maka susunan ini akan membentuk
suatu sistem biner. Untuk menghasilkan sistem biner pada susunan cincin maka
diperlukan pasangan LED dan photo-transistor sebanyak jumlah cincin yang ada
pada absolut encoder tersebut.
Gambar 2.10 Absolute Rotary Encoder
Sistem biner yang untuk menginterpretasi posisi yang diberikan oleh
absolute encoder dapat menggunakan kode gray atau kode biner biasa, tergantung
dari pola cincin yang digunakan. Untuk lebih jelas, kita lihat contoh absolut
encoder yang hanya tersusun dari 4 buah cincin untuk membentuk kode 4 bit.
Apabila encoder ini dihubungkan pada poros, maka photo-transistor akan
mengeluarkan sinyal persegi sesuai dengan susunan cincin yang digunakan.
contoh perbedaan diagram keluaran untuk absolute encoder tipe gray code dan
tipe binary code. Dengan absolute encoder 4-bit ini maka kita akan mendapatkan
16 informasi posisi yang berbeda yang masing-masing dinyatakan dengan kode
bersesuaian untuk absolut encoder 4-bit. Dengan membaca output biner yang
dihasilkan maka posisi dari poros yang kita ukur dapat kita ketahui untuk
diteruskan ke rangkaian pengendali. Semakin banyak bit yang kita pakai maka
posisi yang dapat kita peroleh akan semakin banyak.
2.9.2. Incremental Rotar y Encoder
Incremental encoder terdiri dari dua track atau single track dan dua
sensor yang disebut channel A dan B . Ketika poros berputar, deretan pulsa akan
muncul di masing-masing channel pada frekuensi yang proporsional dengan
kecepatan putar sedangkan hubungan fasa antara channel A dan B menghasilkan
arah putaran. Dengan menghitung jumlah pulsa yang terjadi terhadap resolusi
piringan maka putaran dapat diukur. Untuk mengetahui arah putaran, dengan
mengetahui channel mana yang leading terhadap channel satunya dapat kita
tentukan arah putaran yang terjadi karena kedua channel tersebut akan selalu
berbeda fasa seperempat putaran (quadrature signal). Seringkali terdapat output
channel ketiga, disebut INDEX, yang menghasilkan satu pulsa per putaran
berguna untuk menghitung jumlah putaran yang terjadi.
Resolusi keluaran dari sinyal quadrature A dan B dapat dibuat beberapa
macam, yaitu 1X, 2X dan 4X. Resolusi 1X hanya memberikan pulsa tunggal
untuk setiap siklus salah satu sinya A atau B, sedangkan resolusi 4X memberikan
pulsa setiap transisi pada kedua sinyal A dan B menjadi empat kali resolusi 1X.
Arah putaran dapat ditentukan melalui level salah satu sinyal selama transisi
terhadap sinyal yang kedua. Pada contoh resolusi 1X, A = arah bawah dengan B =
1 menunjukkan arah putaran searah jarum jam, sebaliknya B = arah bawah dengan
A = 1 menunjukkan arah berlawanan jarum jam.
2.10. CodeVisionAVR
CodeVisionAVR adalah salah satu Software yang digunakan untuk
memprogram AVR. CodeVisionAVR sangat mudah untuk digunakan, tinggal
download kedalam IC yang akan diberi program. Kenapa sangat mudah
digunakan karena CodeVision AVR ini sendiri sudah memiliki User Interface
yang lumayan bagus sehingga memudahkan penggunanya, selain itu sendiri
CodeVision AVR juga mempunyai banyak sekali fitur-fitur yang memang
dikhususkan untuk pemrograman AVR. Kelemahannya adalah CodeVision AVR
BAB III
PERANCANGAN DAN ANALISIS SISTEM
3.1. Analisis Sistem
Dalam pembuatan robot ini penulis memperhatikan beberapa aspek yang
dibutuhkan, yaitu :
a) Robot ini dirancang berjalan dengan menggunakan sensor rotary encoder
dan photodiode sebagai pengarah laju jalan agar tidak keluar lintasan.
b) Robot ini dirancang dengan menggunakan Mikrokontroler ATMega16
sebagai otak atau pengendali utama pada robot.
c) Robot ini menggunakan bahasa C sebagai bahasa pemrograman.
d) Robot ini dirancang untuk dapat berjalan secara otomatis pada rute yang
sudah disediakan dengan kemampuan program yang telah diinputkan di
dalam robot tersebut.
e) Robot ini dirancang untuk mengantar makanan ke tempat yang sudah
ditentukan dengan menggunakan piringan rotary encoder. Jika sudah
sampai tujuan dan barang sudah diambil, maka secara otomatis robot akan
kembali secara otomatis ke tempat semula atau start dengan melalui rute yang
ada.
f) Robot ini dirancang untuk membaca halangan pada saat dalam perjalanan
dan akan berhenti apa bila benar terdapat halangan hingga halangan
3.2. Per ancangan Per a ngkat Ker as
Pada perancangan perangkat keras ini terdiri dari sebuah PC, Usb
downloader, Optocoupler , rotary encoder serta driver motor.
3.2.1. Diagr am Blok System
Bab ini membahas tentang perancangan mengenai komponen-komponen
yang digunakan pada Robot pengantar makanan dengan penentuan posisi meja
menggunakan rotary encoder. Sebelum masuk di perancangan hardware dan
software maka akan di buat terlebih dahulu diagram blok sistem robot yang akan
di buat.
Gambar 3.1. Blok Sistem
1) PC
PC berfungsi untuk mengirimkan data yang digunakan untuk mengendalikan jalannya mobile robot. PC ini akan mengontrol mobile robot dengan memberikan data ke mikrokontroler melalui USB Downloder.
2) Mikrokontroler ATMega16
Blok ini merupakan rangkaian sistem minimum dari ATMega16 yang berfungsi untuk mengendalikan mobile robot.
3) EEPROM
Blok ini merupakan rangkaian memori eksternal yang berfungsi untuk menyimpan data yang dikirimkan dari PC. Tujuan dari penggunaan EEPROM ini adalah agar data yang dikirimkan dari pc dapat disimpan dengan kapasitas penyimpanan yang cukup besar sampai dengan 16 Kbyte untuk proses penyimpanan data pada EEPROM (write).
4) Optocoupler
Blok ini merupakan rangkaian encoder yang berfungsi untuk mengendalikan banyaknya jumlah putaran motor DC.
5). Driver motor
Blok ini merupakan rangkaian driver motor DC yang berfungsi untuk mengendalikan motor DC.
3.2.2. Rangkaian Mik rokontr oler ATMega16
Rangkaian Mikrokontroler berfungsi untuk mengolah sinyal yang
dikirimkan oleh beberapa sensor kemudian di olah. pemeriksaan sensor serta
pengaturan pergerakan motor yang diinginkan sehingga robot dapat bergerak
sesuai dengan pembacaan sensor agar robot tidak keluar jalur yang telah
ditentukan Gambar rangkaian mikrokontroler ATMega16 ditunjukkan pada
Gambar 3.2. Rangkaian Mikrokontroler ATMega16
Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan
memori program dari memori data, baik bus alamat maupun bus data, sehingga
pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent).
Secara garis besar mikrokontroler ATMega16 terdiri dari :
1) Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi
16Mhz.Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte,
dan SRAM 1Kbyte
2) Saluran I/O 32 buah, yaitu Bandar A, Bandar B, Bandar C, dan Bandar D.
3) CPU yang terdiri dari 32 buah register.
4) User interupsi internal dan eksternal
5) Bandar antarmuka SPI dan Bandar USART sebagai komunikasi serial
6) Fitur Peripheral
· Satu buah 16-bit timer/counter dengan prescaler terpisah
· Real time counter dengan osilator tersendiri
· 8 kanal, 10 bit ADC
· Byte-oriented Two-wire Serial Interface
· Watchdog timer dengan osilator internal
a) Ger ak Maju
Gerakan maju dilakukan dengan menggerakkan roda kiri dan roda kanan ke arah depan secara bersama-sama. Untuk dapat menggerakkan robot dengan arah maju, pada mikrokontroler diberikan instruksi sebagai berikut :
Mki2=1; /*putaran motor kiri arah maju Mka1=1; /*putaram moor kanan arah maju
Data di atas merupakan bilangan heksadesimal jika dikoversikan ke bilangan biner adalah 0010 1101b. Bilangan biner ini merupakan bit-bit yang dikeluarkan dari port 0 di mikrokontroler. Bit 1 artinya bit tersebut aktif dan mengeluarkan sinyal sedangkan bit 0 adalah bit tersebut tidak aktif dan tidak mengeluarkan sinyal. Untuk menggerakkan motor diberikan konfigurasi bit-bit yang harus dikeluarkan dari mikrokontroler dan masuk ke driver motor, konfigurasi pin-pin driver motor dapat dilihat pada tabel 3.1 dan tabel kebenarannya dapat dilihat pada tabel 3.2.
b) Belok Kir i dan Belok Kanan
Gerakan belok kiri dan belok kanan dilakukan dengan menggerakkan roda kiri dan kanan dengan arah yang berlawanan. Jika ingin melakukan gerakan belok kiri, maka motor kiri digerakkan dengan arah mundur dan motor kanan digerakkan dengan arah maju, dan begitu pula sebaliknya untuk belok kanan yakni menggerakkan motor kanan dengan arah mundur dan motor kiri dengan arah maju. Untuk membuat gerakan belok kiri dan belok kanan ini, pada mikrokontroler diberikan instruksi sebagai berikut :
Mki2 =1 ; putar an motor belok kanan Mka2 =1
Mki1 =1
3.2.3. Dr iver Motor DC
Untuk mengendalikan perputaran motor dibutuhkan sebuah driver. Driver
ini berfungsi untuk memutar motor searah/berlawanan arah dengan arah jarum
jam.Mikrokontroler tidak dapat langsung mengendalikan putaran dari
motor,karenaitu dibutuhkan driver sebagai perantara antara mikrokontroler dan
motor, sehingga perputaran dari motor dapat dikendalikan oleh mikrokontroler.
Rangkaian jembatan H ditunjukan pada gambar berikut ini :
Gambar 3.3 Rangkaian Driver Motor Dc
Gambar 3.3 merupakan rangkaian tegangan sebelum masuk kedalam
driver motor, rangkaian tersebut terdiri dari resistor dan kapasitor, jika suatu
rangkaian RC diberi tegangan dc maka muatan listrik pada kapasitor tidak akan
langsung terisi penuh, akan tetapi membutuhkan waktu untuk mencapai muatan
listrik pada kapasitor tersebut penuh. Setelah muatan listrik penuh dan sumber
tegangan dilepas maka muatan listrik pada kapasitor tidak akan langsung kosong
kosong. Tujuan dari penggunaan rangkaian resistor kapasitor ini adalah agar
tegangan yang masuk ke driver motor cenderung stabil, karena tegangan akan
ditampung terlebih dahulu di dalam kapasitor sebelum masuk ke driver motor
sehingga mobile robot dapat dikendalikan dengan baik.
Tabel 3.1 Konfigurasi Inputan Untuk Menjalankan Motor Penggerak
Nama Inputan Keter a ngan Fungsi
Mka1 Input 1 Motor kanan bergerak maju Input 0 Motor kanan tidak berputar Mka2 Input 1 Motor kanan bergerak mundur
Input 0 Motor kanan tidak berputar Mki1 Input 1 Motor kiri bergerak mundur
Input 0 Motor kiri tidak berputar Mki2 Input 1 Motor kiri bergerak maju
Input 0 Motor kiri tidak berputar
enka Input 1 Untuk meng-aktifkan motor kanan Input 0 Untuk menon-aktifkan motor kanan enki Input 1 Untuk meng-aktifkan motor kiri
Input 0 Untuk menon-aktifkan motor kiri
3.2.4. Motor DC
Motor DC sebagai penggerak robot yang dapat bergerak maju mundur
atau bergerak kiri kanan, pada line follower ini menggunakan dua penggerak
motor DC yang terpasang pada ke dua sisi bagian robot yaitu pada bagian kiri,
kanan, belakang robot. Dimana motor DC pada roda kiri dan kanan bertujuan
bergerak maju dan mundur, sedangkan Motor DC terhubung pada piringan rotary
encoder yang terdapat 20 lubang / pulsa yang berfungsi untuk mengatur berapa
banyak putaran yang di inginkan.
Gambar 3.4. Rangkaian Motor DC
3.2.5. Rangkaian Optocoupler
Sebagai penentu jumlah putaran pada motor dc penulis menggunakan
optocoupler yang merupakan bagian dari photo detector yaitu rangkaian
elektronika yang dapat mengubah besaran cahaya menjadi besaran listrik.
V C C 5 V
4 7 0 O h m
R 1 0 K o h m dengan NPN silicon photo transistor.
Gambar 3.5 Rangkaian Optocoupler
Sensor optocoupler terdiri dari transceiver (pemancar) dan receiver
(penerima), dimana ada infrared sebagai transceivernya yang terhubung ke VCC
dan fhoto transistor sebagai receiver. Pada saat optocoupler mengenai piringan
yang berwarna putih atau warna selain hitam maka optocoupler akan bernilai low
‘0’, tapi jika optocoupler mengenai piringan yang berwarna hitam maka output
bernilai high ‘1’. Data tersebut didapat dengan mem-pull up data keluaran dari
optocoupler dengan transistor jenis PNP. Berikut adalah rangkaian dari
optocoupler seperti yang terlihat pada gambar 3.6
Rotary / Shaft Encoder pada gambar 3.6 memiliki 20 sub berwarna hitam
dan 20 sub berwarna putih. Tujuan penggunaan rotary / shaft encoder adalah agar
kepresisian putaran pada mobile robot dapat diperoleh dengan hasil yang akurat.
Pada saat optocoupler mengenai rotary / shaft encoder yang berwarna hitam,
maka optocoupler akan mengirimkan data high ke mikrokontroler, sedangkan
apabila optocoupler mengenai rotary / shaft encoder yang berwarna putih, maka
optocoupler akan mengirimkan data low ke mikrokontroler. Pada perancangan ini,
digunakan dua buah rotary / shaft encoder dengan data keluaran dari optocoupler
dihubungkan ke mikrokontroler.
3.2.6. Rangkaian Rotar y Encoder
Untuk menggerakkan robot baik maju atau mundur dengan jarak tertentu
biasanya dilakukan dengan menghitung waktu. Dengan kecepatan dan durasi
tertentu maka akan dapat ditentukan bahwa robot telah bergerak dengan jarak
tertentu melalui persamaan s = v x t. Namun kecepatan motor pada robot tidaklah
selalu stabil seiring dengan perubahan kapasitas battery sebagai sumber daya.
Pada saat kapasitas baterai menurun maka kecepatan putar motor akan berkurang
sehingga perhitungan jarak dengan menghitung nilai t (durasi) tidaklah
akurat.Untuk perhitungan jarak yang lebih presisi dapat dilakukan dengan
menghitung gerakan roda yaitu dengan menghitung seberapa jauh roda robot
berputar.Proses ini dapat dilakukan dengan menggunakan piringan encoder yang
Gambar 3.7 Rangkaian Rotary Encoder
Prinsip kerja dari sensor ini adalah sumber cahaya diberikan VCC 5 volt
dan menghasilkan, cahaya masuk pada photodioda tidak terhalangi maka akan
menghasilkan tegangan sekitar 0 V. Dimana tegangan menjadi inputan untuk
mikrokontroler
3.2.7. Rangka dan body
Pada robot pengantar makanan ini berbentuk persegi yang nantinya akan
digunakan untuk mengantar makanan yang diletakkan dibagian atas sendiri, dan
pada bawah robot terdapat dua roda dan motor DC yang berada dibagian
belakang , dan bagian bawah depan robot terdapat 1 roda bebas untuk mengontrol
robot berjalan kesemua arah. Semua komponen seperti mikrokontroler,
komparator, driver motor terletak dibagian atas robot. Sedangkan sensor, motor
DC, roda bebas terletak dibawah robot.
Implementasi mekanik Robot Pengantar Makanan Dengan Penentuan
bawah.Bahan rangka robot terbuat dari aliminium yang digunakan untuk casis
robot adalah bahan aclyric setebal 5 mm.Pada mekanik yang dirancang digunakan
transmisi roda gigi cacing untuk bagian kemudi depan robot agar dihasilkan
reduksi kecepatan yang besar dan kemampuan mengunci pergerakan kemudi.
Gambar 3.8 Rangka dari Robot
Robot didesain berbentuk kotak dengan dua motor dibelakang dan satu
roda bebas di depan.Robot dibuat bertingkat dua,hal ini dikarenakan robot
nantinya akan membawa sebuah piring di atas sedangkan yang di bawah sebagai
tempat komponen elektrik, sedangkan rangkaian pendukung robot yang cukup
banyak serta baterai yang cukup besar. Pada tingkat dasar terdiri dari motor kanan
dan kiri, roda kanan dan kiri dengan rotary encoder, serta baterai 12 volt.Pada
tingkat kedua berupa PCB rangkaian elektronika yang menyatu dengan driver
motor serta komparator dan sensor infra merah. Hal ini dimaksudkan demi
pencapaian desain yang sebaik mungkin supaya robot mempunyai keseimbangan
beban yang baik dan mempunyai kapasitas yang memadai untuk membawa benda
3.3. Per ancangan Per a ngkat Lunak
Setelah dalam pembuatan perangkat keras selesai, bagian yang paling
penting dalam pembuatan tugas akhir ini yaitu dalam merancang suatu perangkat
lunak. Dalam tugas akhir ini, perancangan perangkat lunak dibagi menjadi 2
bagian yaitu:
1) Perancangan perangkat lunak untuk PC.
2) Perancangan perangkat lunak untuk mikrokontroler.
3.3.1. Per ancangan Per a ngkat Lunak untuk PC
Pada bagian ini menjelaskan tentang perancangan perangkat lunak untuk
PC, yang berfungsi untuk mengirim data ke mikrokontroler. Untuk perangkat
lunak disini menggunakan program CodeVision AVR, dan menggunakan bahasa C
untuk pemrogramanya.
Pada perancangan ini gerak maju dari robot telah ditentukan sesuai jarak
meja. Gerak maju dapat berubah-ubah jaraknya, hal ini dapat dilakukan dengan
mengatur berapa kali optocoupler seharusnya mengenai rotary/shaft encoder
untuk mendapatkan jarak pada gerak maju yang sesuai dengan apa yang
diinginkan. Begitu pula yang terjadi pada gerak belok pada robot, besar sudut
pada gerak belok robot dapat diatur dengan cara yang sama dengan gerak maju
pada robot, yaitu dengan mengatur berapa kali optocoupler mengenai rotary/shaft
1) Penjelasan diagram alir pemrograman
2) Awal alur program
3) Inisialisasi port A untuk ADC,Motor Dc kemudian inisialisasi port B untuk
LCD selanjutnya untuk inisisalisasi port C untuk line tracer dan yang terakhir
inisisalisasi port D untuk limit switch,rotary encoder serta keypad.
4) Pengaturan interupt [TIM0_0VF] void timer0_ovf_isr(void) untuk pengaturan
pada kecepatan motor dc.
5) Setelah dilakukan inisialisasi semua port dan pengaturan motor dc maka
selanjutnya inputan pilihan meja,dimana terdapat dua meja yaitu meja satu
dan meja dua.
6) Jika pilih meja satu (pilih==1) maka akan menjalankan perintah program
meja satu jika tidak maka akan memilih meja dua dan akan melakukan
perintah program meja dua. Jika tidak memilih baik meja satu atau meja dua
bisa kembali ke menu atau selesai
7) Jika pilihan meja satu maka maju dengan kondisi motor kanan bergerak maju
dan motor kiri bergerak maju (Mka1=1&&Mki2=1) serta dilakukan
perhitungan putaran yang di hasilkan oleh rotary encoder dimana pulsa selalu
tidak bergerak agar robot berhenti, kemudian melakukan proses ke program
selanjutnya.
9) Jika tombol limit switch pertama mendapat nilai 1 atau tombol1 di tekan oleh
piring (tombol1==1) maka masih terdapat piring karna piring masih menekan
tombol dan belum diambil, jika piring sudah di ambil (tombol1==0) maka
akan mengecek apakah tombol2 sudah di tekan,jika tombol2 ditekan
(tombol2==1) maka robot akan berbelok kemudian ke program selanjutnya.
10) Setelah piring di ambil dan tombol2 ditekan makan robot akan berbelok ke
kiri dengan kondisi motor kanan maju dan motor kiri mundur (Mki1=1 &&
Mka1=1) kemudian jika sensor line tracer led pertama membaca garis hitam
(sensor1==1)maka akan bergerak maju dan ke program selanjutnya jikatidak
(sensor1==0)maka akan berbelok hingga sensor1 membaca garis hitam
(sensor1==1).
11) Setelah robot telah berbelok maka robot akan maju sesuai putaran yang
pertama dimana putaran rotary encoder yang menghasilkan pulsa melakukan
perulangan hingga putaran sama dengan inputan.
12) Selesai dan kembali ke pemanggilan program utama.
3.4. Mar ket lapangan
Lapangan berupa garis-garis hitam yang berada di atas lantai berwarna
putih. Garis hitam disusun seperti pada gambar diatas. Ketebalan garis hitam
adalah 3cm. Garis hitam ini bisa dibuat menggunakan isolasi hitam kemudian
Gambar 3.10 Pergerakan Robot Dilapangan
Dalam aplikasi ini, robot akan bergerak mengikuti panjang lintasan yang
sudah ditentukan dan akan menuju meja yang di inginkan, seperti gambar 3.10 di
BAB IV
IMPLEMENTASI
4.1. Kebutuhan Sistem
Ada beberapa hal dalam pengembangan sistem yang harus di perhatikan
sebelum akhirnya sampai paada lngkah menjalankan program sistem yang harus
di perhatikan sebelum akhirnya sampai pada langkah menjalankan program,
antara lain penrangkat keras (hardware),perangkat lunak (software) serta
bagaimana akhirnya sistem dapat berjalan sesuai dengan program yang telah di
buat.
4.1.1. Per angkat Sistem
Perangkat yang di butuhkan dalam pembuatan robot pengantar makana
dengan penentuan posisi meja menggunakan rotary encoder ini termasuk dalam
pembuatan laporan adalah perangkat keras (hardware) dan perang kat lunak
(software).
Adapun perangkat keras yang di butuhkan dalam pengembangan sistem ini:
1) Komputer core 2 duo intel 2.1 Ghz
2) RAM 2Mb
3) Hard Disk 150 Gb
Seadngkan perangkat lunak yang di gunakan adalah CodeVision AVR
4.2. Pr osedur Pembuatan Pr ogr am
Ada beberapa cara yang harus di lakukan sebelum program di buat dan di
masukkan kedalam chip robot,yaitu:
1) Instal terlebih dahulu aplikasi CodeVision AVR V.2.05.0 pada komputer.
2) Setelah selesai menginstall pilih create new file untuk membuat project
baru untuk, kemudian pilih project. Untuk implementasi seperti pada gambar
4.1.
Gambar 4.1 Membuat Project Baru
Kemudian pilih jenis chip yang di gunakan dalam pembuatan robot
pengantar mkanan,dalam project program ini menggunkan mikrokontroler
ATmega 16 seperti pada gambar 4.2.
Setelah itu kita pilih tab chip untuk mengatur jenis chip yang di gunakan
yaitu ATmega16 dengan clock secara default yaitu 11.059200 MHz seperti pada
gambar 4.3.
Gambar 4.3 Memilih Jenis Chip Yang Di Pakai
3) Setelah selesai maka tahap selanjutnya adalah inisialisasi port agar waktu
pembuatan program dan waktu compilasi robot bisa berjalan.disini terdapat 4 port
yang dimana pada port A di gunakan untuk :
-ADC bit ke-0 dan bit-1
-Motor DC kanan bit ke-2 sampai bit ke-4
-Motor DC kiri bit ke-5 sampai bit ke-7
- Pullup dini adalah nilai dimana ketika kondisi pada saat mikro di
nyalakan maka sensor mendapat nilai 1
- Trase hold adalah perintah untuk menunggu logika 0/1 yang masuk
dalam pin input atau port out
Port B di pakai untuk inisialaisasi LCD dimana data direction dari bit ke
0 sampai bit ke 7 adalah in (input) dengan output value adalah T (trase hold)
Gambar 4.5 Bagian port B
Port C di pakai untuk inisialisasi sensor LED dimanan sensor disini di
gunakan 7 LED dimana data direction dari bit ke 0 sampai bit ke 6 adalah in
(input) dengan output value adalah T (trase hold) dan bit ke-7 digunakan untuk
Limit Switch1
Port D di gunakan untuk inisialaisasi untuk:
- Limit Switch pada bit ke-0 dengan output value adalah P (Pullup)
- Rotary encoder pada bit ke-1 sampai bit ke-3 dengan output value adalah
P (Pullup)
- Keypad (increment,decrement,select,ok )
Gambar 4.7 Bagian port D
Kemudian pilih tab External IRQ untuk mengatur interupt pada Rotary
encoder dengan mode falling Edge (pembacan pulsa dari 0 ke 1) lihat pada
gambar 4.8.
Setelah pengaturan pada External IRQ kemudian pilih tab Timer0 dimana
disini berfungsi sebagi waktu dalam pembacaan interupt pada motor DC.
Berikut implementasi nya
Gambar 4.9 Interupt timer0
- Overflow disini menjadkan T0 timer nol aktif dengan sendirinya/otomatis
pada waktu mikro kontroler di nyalakan.
- Clock value digunakan untuk kecepatan putaran motor dc atau pwm
Setelah itu pilih tab LCD dimana untuk mengatur LCD pada posisi Port
B dengan mencentang Enebale Alpanumeric agar di dalam input LCD juga bisa
menggunkan karakter angka dan huruf dengan karakter sebanyak 16 baris,untuk
Gambar 4.10 Pengaturan LCD Pada port B
Setelah itu pilih tab pada ADC untuk mengatur ADC yang akan di
gunakan pada sensor infrared,untuk pengaturan lihat pada gambar 4.11.
Gambar 4.11 Interupt Pada ADC
Setelah selesai pilih save project sebanyak 3 kali dengan nama yang sama.
4) Setelah inisialisasi port selanjutnya adalah pembuatan program yang
Gambar 4.12 Program Utama
5) Setelah program di buat terlebih dahulu kita compile agar kita dapat
mengetahui adakah program yang eror, untuk penjelasan bisa di lihat pada
gambar 4.13.
6) Setelah melakukan pengecekan maka, kita dapat mengetahui apakah
program yang kita buat terdapat eror atau tidak, apabila dalam program
terdapat kesalahan maka akan muncul tampilan eror.
7) Jika dalam program tidak terdapat kesalahan atau eror maka kita dapat
memilih menu Build all the project file yang telah ada dan kemudian
kitacompile dan di download ke mikrokontroler. Untuk penjelasan bisa lihat
pada gambar 4.14.
Gambar 4.14 Download Program ke Chip
4.2. Implementa si Coding
Pada tahap ini akan di bahas mengenai program yang telah di buat
untuk,berikut penjelasan beserta program yang telah di buat.Langkah pertama
yang harus di lakukan adalah pembuatan adalah mendeklarasi semua fungsi,delay
perintah ke perintah yang lain, dan semua port pada mikrokontroler yang telah
adalah potongan program yang merukan penentuan port pada mikrokontroler
dalam pembacaaan perintah sebelum masuk ke perintah utama. #include <mega16.h>
register dan port mikrokontroler untuk menjalankan dan meneruskan perintah
kepada piranti pendukungnya. Berikut adalah potongan program rotary encoder di
mana di buat fungsi agar mempermudah dalam pengerjaanya. interrupt [EXT_INT0] void ext_int0_isr(void)
mki1=0;
beberapa sub rutin atau fungsi yaitu:
- Sub rutin agar robot bergerak maju void maju()
void belok_kiri()
while(putaran==x)
sprintf(buffer,"%d %d %d ",putaran,count,adc_data[0]);
lcd_puts(buffer);
if(count==1||count==3||count==5||count==7)
{
- Membuat Sub rutin menu dimana di dalam fungsi ini terdapat 3 pilihan yaitu
UJ I COBA DAN EVALUASI
5.1. Analisa Pengujian Har dwar e
Pada bagian ini akan dibahas mengenai pengujian pada hardware yang
telah dirancang. Tujuan dari pengujian ini adalah untuk mengetahui apakah
hardware tersebut telah berfungsi dengan benar dan sesuai rencana atau tidak.
Pengujian ini ditujukan pada pengujian komponen yang terdapat pada robot serta
pengujian robot pengantar makanan dengan penentuan posisi meja menggunkanan
rotary encoder.
5.2. Pengujian Alat
Berikut ini adalah pengujian alat atau komponen yang terdapat pada robot
pengantar makanan.
5.2.1. Pengujian Sensor Optocoupler
Pengujian dilakukan dengan cara mengukur tegangan pada rangkaian
sensor optocoupler dalam kondisi high dan low dengan sumber catu daya sebesar
± 12volt. Tujuan dari pengujian ini adalah sama untuk memastikan kondisi high
atau low. Pada pengujian optocoupler sudah bisa terlihat begitu optocoupler
terhalang warna hitam maka kondisinya akan high dan saat terhalang warna putih
Tabel 5.1 Hasil Pengujian Pin Optocoupler
Kondisi Keterangan
High Diukur pada saat sensor terkena warna hitam
Low Diukur pada saat sensor terkena warna putih
5.2.2. Pengujian Dr iver Motor
Pada uji coba terhadap blok motor driver penulis menggunakan dua
sumber catu daya, yaitu dengan menggunakan sebuah adaptor dan 8 buah baterai
1,5 volt.
Pada saat penulis menggunakan adaptor sebagai sumber catu daya penulis
mendapati kecepatan putar dari motor cukup tinggi,walaupun pada pengatur
putaranya penulis atur pada posisi rendah, sehingga mempengaruhi pergerakan
robot ketika berbelok dan terkadang membuat robot ini keluar dari lintasan pada
saat berbelok. Namun pada saat penulis menggunakan baterai sebagai suumber
catu daya,kecepatan robot menjadi rendah dan baterai tidak bertahan lama.
Tabel 5.2. Analisis Rangkaian Driver Motor
Enable Mka1 Mka2 Mki1 Mki2 Keadaan motor Hasil uji
0 - - - - Tidak berputar Sesuai
1
0 0 0 0 Tidak berputar Sesuai
1 - - 1 Bergerak maju Sesuai
0 1 1 0 Bergerak mundur Sesuai
- 1 - 1 Belok kanan sesuai