Dosen Pembimbing II : Fetty Tr i Anggr aeny, S.Kom
Abstraksi
Robot becak beberbasis mikrokontroler ATMega8535 dengan logika fuzzy merupakan suatu gabungan dari hasil karya seni dengan teknologi modern, sehingga terbentuk robot bergerak yang sudah terprogram dan dapat bergerak secara otomatis. Robot becak ini selain bergerak otomatis. Juga memiliki kelebihan untuk menentukan jarak aman terhadap obstacle, sehingga robot tetap berada di tengah-tengah jalur.
Robot becak ini menggunakan logika fuzzy sebagai program pengendalinya dan tiga sensor ultrasonic RRF 04 yang berfungsi sebagai pendeteksi rintangan yang ada pada koordinat y positif dengan cara memancarkan gelombang ultrasonic dari rangakaian transmiter-nya dan menangkapnya dengan menggunakan rangkaian receiver-nya. Gelombang pantul yang diterima akan diolah oleh bagian control circuit kemudian dikirim ke mikrokontroler untuk diubah dari tegangan analog menjadi tegangan digital melalui port ADC. Hasil konversi akan dikirm ke blok fuzzifikasi untuk menentukan derajat keanggotaan, hasil dari proses fuzzifikasi akan diolah pada blok inferen untuk mengevaluasi rule yang sesuai. Hasil inferen akan di teruskan ke blok defuzzifikasi untuk menghasilkan nilai crisp. Dimana nilai tersebut akan menentukan arah kemudi becak dan kecepatan putaran motor. Sehingga robot becak dapat melakukan tracking dengan aman tanpa harus menyentuh rintangan disekitarnya.
Hasil dari percobaan yang dilakukan, robot becak dapat berjalan sesuai dengan rancangan sistem yang telah dibuat. Antar lain robot dapat mendeteksi bermacam-macam jenis halangan dan dapat menghindari halangan secara baik.
ii
hidayahnya yang diberikan sehingga dapat menyelesaikan Tugas Akhir ini dengan baik dan tepat waktu dimana hasilnya disusun dengan bentuk laporan yang berjudul Robot Becak Berbasis Mokrokontroler ATmega 8535 Dengan Logika
Fuzzy.
Adapun laporan ini disusun yaitu untuk memenuhi syarat mengikuti seminar TA serta untuk memenuhi syarat kelulusan salah satu mata kuliah “Tugas Akhir” di Universitas Pembangunan Nasioanal “Veteran” Jawa Timur.
Penulis menyadari bahwa manusia yang serba kurang sempurna, maka di dalam upaya menyusun Tugas Akhir ini penulis telah banyak memperoleh bantuan dan bimbingan dari berbagai pihak, mengingat keterbatasan pengalaman yang dimiliki oleh penulis, sehingga penulis sangat mengharapkan segala kritik dan saran yang konstruktif dan membangun demi kebaikan maupun sistematika penulisan akan selalu penulis terima dengan senang hati guna kesempurnaan Tugas Akhir ini. Harapan penulis mudah – mudahan apa yang penulis lakukan ini dapat menjadi sumbangan pemikiran dan berguna bagi semuanya, terutama Universitas Pembangunan Nasional “Veteran” Jawa Timur.
Surabaya, 15 November 2011
oleh karena itu pada kesempatan kali ini penulis ingin menyampaikan ucapan terima kasih kepada:
1. Bapak Prof. Dr. Ir Teguh Soedarto, MP. Selaku Rektor Universitas Pembangunan Nasional “Veteran” Jawa Timur Surabaya.
2. Bapak Ir. Sutiyono, MT selaku Dekan Fakultas Teknologi Industri. 3. Ibu Dr. Ir. Ni Ketut Sari, MT, selaku Kepala Jurusan Teknik
Informatika Universitas Pembangunan Nasional ”Veteran” Jawa Timur.
4. Bapak Basuki Rahmat, Ssi, MT dan Ibu Fetty Tri Anggraeny, S.Kom, sebagai Dosen Pembimbing yang telah meluangkan waktu dan memberikan bimbingan serta petunjuk selama menyusun Tugas Akhir ini.
5. Para Dosen Penguji Seminar : Dr. Ir. Ni Ketut Sari, MT, Basuki Rahmat, S.Si, MT yang telah membuka wawasan baru bagi penulis. 6. Para Dosen Penguji Lisan : Basuki Rahmat, S.Si, MT, Waldy
Permana Agastya, S.Kom, MM, Fetty Tri Anggareny, S.Kom yang telah memberikan masukan positif kepada penulis.
iv
9. My special girl thank’s a lot for your love and support. I love you till here after.
10. Untuk Bang Hisyam terima kasih masukan dan sumbangsih pemikirannya dalam merakit robot becak.
Abstraksi ……… i
Kata Pengantar ……… ii
Ucapan Terima Kasih ………... iii
Daftar Isi ……… Daftar Gambar ……… Daftar Tabel ……… v viii x BAB I PENDAHULUAN ……… 1
1.1 Latar Belakang ……… 1
1.2 Rumusan Masalah ……… 2
1.3 Batasan Masalah ……… 3
1.4 Tujuan ……… 3
1.5 Manfaat ……… 1.6 Metodologi Penelitian ……… 4 4 1.7 Sistematika Penulisan ……… 5
BAB II TINJ AUAN PUSTAKA ……… 7
2.1 Sejarah dan Perkembangan Robot ……… 7
2.2 Mikrokontroler ATMega 8535 ……… 9
2.2.1 Konfigurasi Pin ATMega 8535 ……… 12
2.2.2 Peta Memori Mikrokontroler ATMega 8535 ……… 16
2.3 Sistem Minimum (Minimum System) ……… 18
2.4 Ultrasonik Sebagai Sensor Halangan ……… 20
2.5 Motor DC Sebagai Aktuator Roda ……… 21
2.6 Motor Servo Standart Sebagai Aktuator Kemudi ……… 23
2.7 Roda Gigi (Gear) ………
2.8 Logika Fuzzy (Fuzzy Logic) ………
2.8.1 Pendahuluan Fuzzy ………
2.8.2 Metode Sugeno ………
2.8.3 Komponen Dasar Fuzzy ……… 2.8.4 Fungsi Keanggotaan ………
2.9 Pemrograman Bahasa C ………
2.9.1 Alasan Menggunakan Bahasa C ………
3.2 Perancangan Perangkat Keras ………
3.2.1 Desain Mekanik ………
3.3 Perancangan Perangkat Lunak ………
3.3.1 Blok Diagram Fuzzy ……… 3.3.2 Fungsi Keanggotaan ………
3.3.3 Fuzzifikasi ………
3.3.4 Inferen Engine ……… 43 44 48 49 50 54 55
3.3.5 Defuzzifikasi ……… 56
BAB VI IMPLEMENTASI SISTEM ……… 58
4.1 Perakitan Robot Becak ……… 58
4.1.1 Perakitan Minim Sistem ……… 58
4.2 Implementasi Logika Fuzzy ……… 62
4.2.1 Proses Fuzzifikasi ……… 62
4.2.2 Proses Inferen Rule Base ………. 4.2.1 Proses Defuzzifikasi ……… 4.3 Pemrograman C dengan Code Vision AVR ………… 4.4 Implementasi Hardware ……… 63 64 66 69 BAB V UJ I COBA DAN EVALUASI ……… 72
5.1 Respon Sensor Ultrasonik Terhadap Jenis Halangan …… 72
5.1.1 Peralatan ………... 72
5.1.2 Parameter ………... 73
5.1.3 Prosedur ………... 73
5.1.4 Hasil Dan Evaluasi ………... 74
5.1.4.1 Pengujian Pada Halangan Styrofoam ……. 74
5.1.4.2 Pengujian Pada Halangan Balok Kardus ….. 74
5.1.4.3 Pengujian Pada Halangan Botol Air Mineral 75 5.1.4.4 Evaluasi Percobaan ……….. 76
5.2 Respon Robot Terhadap Kondisi Jalur ……… 77
5.2.1 Peralatan ………... 77
5.2.2 Parameter ………... 78
5.2.3 Prosedur ………... 78
5.2.4 Hasil Dan Evaluasi ………... 78
5.2.4.1 Pengujian Pada Lebar Jalur Lebih Dari 40 cm . 79 5.2.4.2 Pengujian Pada Lebar Jalur Kurang Dari 40 cm 80 5.2.4.3 Evaluasi Percobaan ……… 82
5.3 Respon Robot Terhadap Halangan Secara Acak …….... 82
5.3.4.2 Evaluasi Percobaan ... 84
BAB VI PENUTUP ……… 86
6.1 Kesimpulan ……… 86
6.2 Saran ………
DAFTAR PUSTAKA ………
87
1.1 Latar Belakang
Perkembangan Ilmu Pengetahuan dan Teknologi robotika telah membuat
kualitas kehidupan manusia semakin tinggi, hampir dalam setiap aspek kehidupan
masyarakat selalu menggunakan teknologi robotika untuk dapat memanfaatkan waktu
se-efisien mungkin.
Salah satu pengaplikasian teknologi robotika yang berkembang cepat adalah
pada bidang transportasi. Kerena masalah transportasi banyak dibahas baik di Negara
berkembang atau Negara maju, salah satu masalah tersebut adalah kemacetan yang
dikarenakan bertambahnya populasi kendaraan dimana hal ini dipicu oleh
bertambahnya pengguna dalam setiap tahunnya. Sehingga memerlukan terobosan
inovasi serta pengaplikasian teknologi terbaru yang sesuai dengan kondisi saat ini.
Untuk mengupayakan terciptanya kendaraan yang sesuai dengan kondisi saat
ini, maka perusahaan otomotif Honda mengembangkan robot becak Hi-Tech. Dimana
robot ini diharapkan dapat melintasi di jalan yang macet dan sempit serta ramah
terhadap lingkungan [7].
Oleh sebab itu pada tugas akhir kali ini, membahas tentang pengembangan
robot becak berbasis mikrokontroller dengan logika fuzzy sebagai pengendalinya,
dengan konsep kebenaran sebagian, dimana logika klasik menyatakan bahwa segala
hal dapat di eksperimenkan dalam binary 0 atau 1. Logika fuzzy memungkinkan nilai
keanggotaan atara 0 dan 1. Dengan logika fuzzy kita dapat menentukan rule-rule
sebagai acuan langkah robot yang akan dibuat. Keuntungan dari logika fuzzy antara
lain mudah dimengerti, pemodelan matematik sederhana, toleransi data-data yang
tidak tepat, dapat memodelkan fungsi-fungsi non liner yang kompleks,
mengaplikasikan pengalaman tanpa proses pelatihan dan didasarkan pada bahasa
alami. Dengan memanfaatkan logika ini maka robot tidak harus berbelok 90° ke
kanan atau ke kiri. Sehingga setiap perubahan gerakan dari robot dapat terlihat lebih
halus dan dinamis.
1.2 Rumusan Masalah
Adapun permasalahan yang akan dibahas adalah sebagai berikut :
1. Bagaimana membuat rangkaian minimal sistem yang setabil dengan
memanfaatkan mikrokontroler ATMega 8535.
2. Bagaimana mengimplementasikan logika fuzzy pada pemrograman
mikrokontroller.
3. Bagaimana menjadikan hasil karya seni menjadi lebih memiliki
1.3 Batasan Masalah
Adapun batasan-batasan masalah yang dibuat agar dalam pengerjaan tugus
akhir ini dapat berjalan degan baik adalah sebagai berikut :
1. Pengujian robot ini pada sebuah bidang datar.
2. Sensor hanya mampu mendeteksi halangan di depan dengan sudut
jangkauan 180° dan mempunyai tinggi tidak kurang dari tinggi sensor
terhadap lapangan.
3. Halangan bersifat rigid dan tidak memancarkan gelombang ultrasonic.
4. Halangan tidak bergerak (diam) dan berada di depan robot (halangan
berada pada range koordinat y positif) .
5. Bahasa pemrograman yang digunakan adalah Bahasa C.
1.4 Tujuan
Tujuan utama dari tugas akhir ini adalah merencanakan dan merealisasikan
sebuah robot dari hasil karya seni dengan kemampuan menghindari halangan baik
berupa obstacle maupun robot lain dengan tetap mencapai target diam. Mengacu pada
tujuan utama pada tugas akhir ini maka terdapat beberapa tujuan khusus antara lain :
1. Membuat rangkaian minimal sistem yang setabil dengan
memanfaatkan mikrokontroler ATMega 8535.
2. Mengimplementasikan logika fuzzy pada pemrograman
3. Bagaimana menjadikan hasil karya seni menjadi lebih memiliki
sentuhan teknologi.
1.5 Manfaat
Adapun manfaat yang dapat diambil dari pembuatan Robot Becak dengan
menggunakan ATmega 8535 ini adalah :
1. Digunakan sebagai bahan media pembelajaran di Laboratorium
Robotika UPN Veteran Jawa Timur.
2. Sebagai bahan motivator mahasiswa UPN Veteran khusunya dan para
pelaku pendidikan untuk lebih mengembangkan robot yang lebih
canggih.
1.6 Metodologi Penelitian
Metodologi yang digunakan pada penelitian ini adalah sebagai berikut :
1. Studi literature mengenai pengendalian motor DC menggunakan
ATmega 8535 serta pendalaman tentang logika fuzzy
2. Merancang serta menguji rangkaian penggerak motor DC yang
merupakan aktuator robot.
3. Merancang serta menguji sistem minimal Mikrokontroler ATMega
4. Merancang perangkat lunak yang berfungsi untuk membangkitkan dan
mengendalikan gerakan robot secara keseluruhan.
5. Menguji kinerja sistem secara keseluruhan serta mengambil data dari
hasil perancangan.
6. Menganalisa hasil dan membuat kesimpulan.
1.7 Sistematik Penulisan
Adapun Sistematika Tugas Akhir ini adalah:
BAB I : PENDAHULUAN
Bab ini menjelaskan tentang latar belakang, rumusan
masalah, batasan masalah, tujuan, manfaat, metodologi
penelitian dan sistematika penulisan.
BAB II : TINJ AUAN PUSTAKA
Pada bab ini dijelaskan tentang teori-teori serta
penjelasan-penjelasan yang dibutuhkan dalam pembuatan robot becak
dengan menggunakan Atmega 8535.
BAB III : ANALISIS DAN PERANCANGAN SISTEM
Bab ini berisi tentang analisis dan perancangan sistem
dalam pembuatan Tugas Akhir robot becak dengan
BAB IV : IMPLEMENTASI SISTEM
Bab ini berisi penjelasan hasil Tugas Akhir serta
pembahasannya tentang robot becak dengan menggunakan
ATmega 8535.
BAB V : UJ I COBA DAN EVALUASI
Bab ini berisi pengujian program Tugas Akhir.
BAB VI : PENUTUP
Bab ini berisi kesimpulan dan saran-saran penulis.
DAFTAR PUSTAKA
7
2.1 Sejar ah dan Per kembangan Robot
Istilah ’Robot’ dan ’Robotics’ adalah istilah yang baru pada abad ke-20, tetapi
idenya didasarkan pada sejarah yang sama. Kata robot pertama kali digunakan oleh
suatu grup drama ’Czechoslovakia Dramatist, Karel Capek pada tahun 1921 sewaktu
bermain Rossum’s Universal Robots’. Rancangan robot ini sepenuhnya digerakkan
secara manual. Istilah robotics oleh Isaac Asimov diartikan sebagai ilmu pengetahuan
tentang robot, mulai dari desainnya, manufaktur hingga penggunaannya [1].
Istilah robot sekarang secara populer diartikan sebagai apa saja yang dapat
membentuk mesin–mesin robot yang diletakkan bersamaan dan bekerja secara
mandiri. Pada umumnya bagian–bagian yang menunjang pembentukan suatu robot
adalah :
• Central Computer atau Control Circuitry, bagian ini sebagai otak yang
mengolah dan mengatur segala sesuatu yang menyebabkan robot itu dapat
kelihatan hidup. Dia mengolah apa yang diberikan oleh bagian input dan
• Obstacle Detectors, Vision System : ini sebenarnya bagian dari input yang
memberikan masukan–masukan variabel guna diolah untuk menentukan
apa yang dilakukan oleh bagian outputnya.
• Driver Motor, Arm, Gripper : tidak seluruhnya harus terpasang lengkap,
namun driver motor adalah yang paling dominan banyak dijumpai pada
robot, dan ini adalah bagian dari output sistemnya. Pada umumnya bagian
ini ditunjang oleh seperangkat alat–alat mekanis.
• Central Power System : bagian ini amat vital karena merupakan nyawa
bagi robot. Ketiga bagian di atas selalu membutuhkan daya untuk dapat
bekerja, maka bagian ini sangat penting.
Berikut gambar Blok Diagram Robot secara umum yang menggambarkan deskripsi di
atas :
Dari gambar 2.1 dapat terlihat bahwa sebuah robot sebagian besar terdiri dari
rangkaian mekanik yang saling terintegrasi satu dengan yang lainya.
2.2 Mikrokontroler ATMega 8535
Mikrokontroller adalah suatu keping IC dimana terdapat mikroprosesor dan
memori program ROM (Read Only Memory) serta memori serbaguna RAM (Random
Access Memory), bahkan ada beberapa jenis mikrokontroller yang memiliki fasilitas
ADC, PLL, EEPROM dalam satu kemasan. Penggunaan mikrokontroller dalam
bidang kontrol sangat luas dan populer.
Ada beberapa vendor yang membuat mikrokontroller diantaranya Intel,
Microchip, Winbond, Atmel, Philips, Xemics dan lain-lain. Dari beberapa vendor
tersebut, yang paling populer digunakan adalah mikrokontroller buatan Atmel.
Mikrokontroller AVR (Alf and Vegard’s Risc Prosesor) memiliki arsitektur RISC 8
bit, dimana semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian
besar intruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MSC
51 yang membutuhkan 12 siklus clock. Tentu saja itu terjadi karena kedua jenis
mikrokontroller tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC
(Reduced Instruction Set Computing), sedangkan seri MCS 51 berteknologi CISC
(Complex Instruction Set Computing). Secara umum AVR dapat dikelompokkan
menjadi 4 kelas, yaitu keluarga AtTiny, keluarga AT90Sxx, keluarga ATMega dan
peripheral dan fungsinya. Dari segi arsitektur dan instruksi yanng digunakan, mereka
bisa dikatakan hampir sama. Oleh karena itu dipergunakan salah satu AVR produk
Atmel yaitu ATMega 8535. Selain mudah didapatkan dan lebih murah ATMega 8535
juga memiliki fasilitas yang lengkap. Untuk tipe AVR ada 3 jenis yaitu AT Tiny,
AVR klasik dan AT Mega. Perbedaanya haya pada fasilitas dan I/O yang tersedia
serta fasilitas lain seperti ADC, EEPROM dan lain sebagainya. Salah satu contohnya
adalah ATMega 8535. Memiliki teknologi RISC dengan kecepatan maksimal 16
Mhz membuat ATMega 8535 lebih cepat bila dibandingkan dengan ukuran MCS 51.
Dengan fasilitas yang lengkap tersebut menjadikan ATMega 8535 sebagai
mikrokontroler yang handal [4]. Adapun blok diagramnya adalah sebagai berikut.
Dari gambar 2.2 dapat dilihat bahwa ATMega 8535 memiliki kontruksi bagian
sebagai berikut :
1. ADC 10 bit sebanyak 8 saluran.
2. Tiga buah timer/counter dengan kemampuan pembandingan
3. CPU yang terdiri atas 32 buah register.
4. Watchdog timer dengan osilator internal.
5. SRAM saluran I/O sebanyak 32 buah yaitu Port A, Port B, Port C dan Port
D sebesar 512 byte.
6. Memory flash sebesar 8 KB dengan kemampuan Read While Write.
7. Unit interupsi internal dan eksternal.
8. Port antar muka SPI.
9. EEPROM sebesar 512 byte yang dapat di program saat operasi
10.Antarmuka komparator analog.
11.Port USART untuk komunikasi serial fitur ATMega 8535.
Kapabilitas detail dari ATMega 8535 adalah sebagai berikut :
1. Sistem mikroprosesor 8 bit berbasis RISC dan memiliki kecepatan
maksimal 16 Mhz.
2. Kapasitas memori flash 8 KB, SRAM sebesar 512 byte dan EEPROM
(Electrically Eraseble Programable Read Only Memory) sebesar 512
byte.
4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2.5 Mbps.
5. Enam pilihan mode sleep menghemat penggunaan daya listrik.
2.2.1 Konfigurasi Pin ATMega 8535 [9]
Konfigurasi pin ATMega 8535 bisa dilihat pada gambar di bawah ini.
Gambar 2.4 Konfigurasi Pin ATMega 8535
Dari gambar tersebut dapat dijelaskan secara fungsional konfigurasi pin pada
ATMega 8535 sebagai berikut :
1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya.
2. GND merupakn pin ground.
3. Port A (PA0...PA7) merupakan pin I/O dua arah dan pin masukan ADC.
4. Port B (PA0...PB7) merupakan pin I/O dua arah dan pin fungsi khusus
5. Port C (PC0...PC7) merupakan pin I/O dua arah dan pin khusus yaitu
TWI, Komperator Analog dan Timer Oscillator.
6. Port D (PD0...PD7) merupakan pin I/O dua arah dan pin fungsi khusus
yaitu komperator analog, interupsi eksternal dan komunikasi serial.
7. RESET merupakan pin yang digunakan untuk mereset mikrokontroller.
8. XTL1 dan XTAL2 merupakan pin masukan clock eksternal.
9. AVCC merupakan masukan untuk tegangan ADC.
10.AREF merupakan pin masukan tegangan refrensi ADC.
Berikut adalah penjelasan fungsi tiap kaki.
1. PORT A
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan
internal pull-up resistor (dapat diatur per bit). Output buffer port A dapat
memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register Port A (DDRA) harus disetting terlebih
dahulusebelum port A digunakan. Bit-bit DDRA diisi 0 jika ingin
memfungsikan pin-pin port A yang bersesuaian sebagai input atau diisi 1
jika sebagai output. Selain itu kedelapan pin port A juga digunakan untuk
memasukan sinyal analog bagi A/D coverter.
2. PORT B
Merupakan 8 bit directional port I/O. Setiap pinnya dapat menyediakan
memberi arus 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register Port B (DDRB) diisi 0 jika ingin
memfungsikan pin-pin port B yang bersesuaian sebagai input, atau diisi 1
jika sebagai output. Port B juga memiliki untuk fungsi alternatif seperti
yang terlihat pada tabel berikut :
Tabel 2.1 Fungsi Alternatif Port B
Port Pin Fungsi Khusus
PB0 T0 = timer/counter 0 external counter input
PB1 T1 = timer/counter 0 external counter input
PB2 AIN0 = analog comparator positive input
PB3 AIN1 = analog comparator negative input
PB4 SS = SPI slave select input
PB5 MOSI = SPI bus master output/slave input
PB6 MISO = SPI bus master input/slave output
PB7 SCK = SPI bus serial clock
3. PORT C
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan
internal pull-up resistor (dapat diatur per bit). Output buffer port C dapat
memberi arus sebesar 20 mA dan dapat mengendalikan display LED
secara langsung. Daya Direction Register Port C (DDRC) harus disetting
terlebih dahulu sebelum port C digunakan. Bit-bit DDRC diisi 0 jika ingin
memfungsikan pin-pin port C yang sesuai sebagai input atau diisi 1 jika
sebagai output. Selain itu dua pin port C (PC6 dan PC7) juga memiliki
4. PORT D
Merupakan 8-bit directional port I/O. Setiap pinnya dapat menyediakan
internal pull-up resistor (dapat diatur per bit). Output buffer port D dapat
diberi arus sebesar 20 mA dan dapat mengendalikan display LED secara
langsung. Data Direction Register port D (DDRD) harus disetting terlebih
dahulu sebelum port D digunakan. Bit-bit DDRD diisi 0 jika ingin
memfungsikan pin-pin port D yang bersesuaian sebagai input atau diisi 1
jika sebagai output. Selain itu pin-pin port D juga memiliki fungsi untuk
alternatif khusus seperti yang dapat dilihat dalam tabel berikut :
Tabel 2.2 Fungsi Alternatif Port D
Port Pin Fungsi Khusus
PD0 RDX ( UART input line )
PD1 TDX ( UART output line )
PD2 INT0 ( external interrupt 0 input )
PD3 INT1 ( external interrupt 1 input )
PD4 OC1B ( timer/counter 1 output compare B match
output )
PD5 OC1A ( timer/counter 1 output compare A match
output )
PD6 ICP ( timer/counter 1 input capture pin )
PD7 OC2 (timer/counter 2 output compare match output
)
5. RESET
RST pada pin 9 merupakan reset dari AVR. Jika pada pin ini diberi
masukan low selama minimal 2 mechine cycle maka sistem akan di-reset.
6. XTAL1
XTAL1 adalah masukan ke inverting oscilator amplifier dan input ke
internal clock operating circuit.
7. XTAL2
XTAL2 adalah output dari inverting oscilator amplifier.
8. Avcc
Avcc adalah kaki masukan tegangan bagi A/D converter. Kaki ini harus
secara eksternal terhubung ke Vcc melalui lowpass filter.
9. AREF
AREF adalah kaki masukan referensi bagi A/D Converter. Untuk
operasional ADC, suatu level tegangan antara AGND dan Avcc harus
diberikan kaki ini.
10.AGND
AGND adalah kaki untuk analog ground. Hubungkan kaki ini ke GND,
kecuali jika board memiliki analog ground yang terpisah.
2.2.2 Peta Memori Mikr okontroler ATMega 8535
AVR ATMega 8535 memiliki ruang pengalamatan memori data dan memori
program yang terpisah. Memori data terbagi menjadi 3 bagian yaitu 32 buah register
Register keperluan umum menempati space data pada alamat terbawah yaitu
$00 sampai $1F. Sementara itu register khusus untuk menangani I/O dan control
terhadap mikrokontroler menempati 64 alamat berikutnya yaitu mulai dari $20 hingga
$5F. Register tersebut merupakan register yang khusus digunakan mengatur fungsi
terhadap berbagai peripheral mikrokontroler, seperti contoh register, timer/counter,
fungsi-fungsi I/O dan sebagainya.
Alamat memori berikutnya digunakan untuk SRAM 512 byte yaitu pada
lokasi $60 sampai $25F. Konfigurasi memori data pada ATMega 8535 ditunjukkan
pada gambar dibawah ini.
Gambar 2.5 Memori Data ATMega 8535
Memori program yang terletak dalam flash Perom tersusun dalam word atau
2 byte karena setiap interuksi memiliki lebar 16-bit atau 32-bit, AVR ATMega 8535
Selain itu AVR ATMega 8535 juga memiliki memori data berupa EEPROM 8-bit
sebanyak 512 byte. Alamat EEPROM dimulai $000 sampai $1FF [8].
2.3 Sistem Minimum ( Minimum System) [2]
Sistem minimum (sismin) mikrokontroller adalah rangkaian elektronika
minimum yang diperlukan untuk beroperasinya IC mikrokontroler. Sismin ini
kemudian bisa dihubungkan dengan rangkaian lain untuk menjalanankan fungsi
tertentu. Di keluarga mikrokontroller AVR seri 8535 adalah salah satu seri yang
banyak digunakan.
Untuk membuat rangkaian sismin ATMega 8535 diperlukan beberapa komponen
antara lain :
1. IC mikrokontroler ATMega 8535.
2. 1 XTAL 4 Mhz atau 8 Mhz (XTAL1).
3. 3 kapasitor kertas yaitu dua 22 pF (C2 dan C3) serta 100 nF (C4).
4. 1 kapasitor elektrolit 4,7 uF (C12) 2 resistor yaitu 100 Ω (R1) dan 10 KΩ
(R3).
5. 1 tombol reset push button (PB1).
selain itu tentunya diperlukan sumber tegangan yang bisa memberikan tegangan 5V
DC. Rangkaian sistem minimum ini sudah siap untuk menerima sinyal analog
(fasilitas ADC) di port A. Di bawah ini adalah sistem minimum ATMega 8535.
Dari gambar 2.7 dapat dilihat bahwa suatu system minimum memiliki 4 port 8 pin
yang masing-masing portnya memiliki fungsi khusus dimana pembagiannya telah
dijelaskan pada sub bab 2.2.1.
2.4 Ultrasonic Sebagai Sensor Halangan
RRF 04 adalah merupakan modul yang berisi transmiter dan reciever
ultrasonic. RRF 04 menghitung selisih waktu antara saat pemancaran sinyal dan saat
penerimaan sinyal pantul. Seperti diketahui, kecepatan rambat suara di udara adalah
34399,22 cm/detik, berarti untuk merambat sejauh 1 cm suara membutuhkan waktu
29 mikro detik. Misalkan waktu antara pengiriman dan penerimaan sinyal ultrasonic
adalah 5800 mikro detik, maka jarak antara sensor dan benda (penghalang) adalah
100 cm (2 x 100 cm x 29 mikro detik/cm = 5800 mikro detik).
RRF 04 hanya menggunakan 2 port I/O untuk berhubungan dengan
mikrokontroler, sehingga sangat ideal untuk aplikasi-aplikasi robotika. RRF 04 dapat
mengukur jarak mulai 3 cm sampai 400 cm, dan dapat mengukur benda dengan
diameter 3 cm pada jarak kurang dari 2 meter.
Pulsa Ultrasonic yang dikirim oleh RRF 04 adalah sinyal ultrasonic dengan
frekuensi 40 Khz sebanyak 8 periode setiap kali pengiriman. Ketika pulsa mengenai
benda penghalang, maka pulsa ini akan dipantulkan kembali dan diterima kembali
oleh penerima Ultrasonic. Dengan mengukur selang waktu antara saat pulsa dikirim
dan pulsa pantul diterima, maka jarak benda penghalang bias dihitung.
Apabila PI (trigger pulse input) diberi logika 1 (high) selama minimal 10 uS
maka RRF 04 akan memancarkan sinyal ultrasonic, setelah itu pin PO (echo pulse
output) akan berlogika high selama 100 uS – 18 mS (tergantung jarak sensor dan
penghalang) dan apabila tidak ada penghalang maka PO akan berlogika 1 selama
kurang lebih 38 mS.
Misalkan lama Echo Pulse adalah T, maka untuk mengetahui jarakya dapat
diketahui dengan cara membagi T dengan 58 (T/58) untuk 1 cm dan dibagi dengan
148 (T/148) untuk satuan inch. Misalkan panjang Echo Pulse adalah 5800 mikro
detik maka jarak benda adalah 1 meter (5800/58 = 100 cm = 1 meter) [8].
2.5 Motor DC Sebagai Aktuator Roda
Struktur robot sebagian besar dibangun berdasarkan konstruksi mekanik.
Sebagian besar kontruksinya memiliki aktuator yang bermacam-macam. Salah satu
aktuator yang sering digunakan ialah motor DC magnet permanen.
Motor DC ialah salah satu peralatan elektronika dasar yang berfungsi untuk
merupakan motor DC yang dirancang agar bekerja dalam tegangan sumber DC.
Umumnya motor DC bekerja antara 6-12 Volt. Diluar itu motor DC bekerja antara 24
Volt hingga lebih.
Motor DC menggunakan prinsip magnetic untuk dapat berputar. Motor DC
pada umumnya memiliki 2 buah magnet yang mengelilingi kawat kumparanya. Bila
ada suatu arus mengalir melalui kawat kumparan, maka arus tersebut akan
menciptakan medan magnet yang arahnya berlawanan di sekitar magnet. Jadi motor
dapat berputar.
Ketika kumparan diberi tegangan, medan magnet akan timbul di sekeliling
armature. Sisi kiri armature akan terdorong dari magnet sebelah kiri menuju ke
sebelah kanan sehingga tercipta putaran. Ketika armature menjadi sejajar dengan
magnet, commutator akan mengembalikan arah arus di dalam kumparan, sehingga
membalikkan medan magnet. Hal tersebut akan membuat armature kembali berputar
dari sebelah kiri ke sebelah kanan magnet [8]. Di bawah ini gambar dari motor DC
yang digunakan sebagai aktuator.
Gambar 2.9 Bagian Motor DC Magnet Permanent
Motor DC yang digunakan pada robot lengan ada 3 buah yaitu 2 buah motor
2.6 Motor Servo Standar t Sebagai Aktuator Kemudi
Penggunaan motor servo standart difungsikan untuk pengaturan arah kemudi,
sehingga saat terdapat halangan robot dapat menghindar. Servo adalah sebuauh motor
dengan system umpan balik tertutup dimana posisi dari motor akan diinformasikan
kembali ke rangkaian control yang ada di dalam motor servo. Motor ini terdiri dari
sebuah motor DC, serangkaian gear, potensiometer dan rangkaian control.
Potensiometer berfungsi untuk menentukan batas sudut dari putaran servo.
Sedangakan sudut dari sumbu motor servo diatur berdasarkan lebar pulsa yang
[image:30.612.243.401.349.505.2]dikirim melalui kaki sinyal dari kabel motor.
Gambar 2.10 Motor Servo Standart
Pengendalian gerakan batang motor servo dapat dilakukan dengan menggunakan
metode PWM (Pulse Width Modulation). Teknik ini dari sumbu motor servo diatur
berdasarkan lebar pulsa yang dikirim melalui kaki sinyal dari kabel motor. Tampak
pada gambar dengan pulsa 1,5 ms pada periode selebar 2 ms maka sudut dari sumbu
motor akan berada pada posisi tengah. Semakin lebar pulsa OFF maka akan semakin
semakin besra sumbu ke arah jarum jam dan semakin kecil pulsa OFF maka akan
semakin besar gerakan sumbu ke arah yang berlawanan dengan jarum jam [8].
Untuk menggerakkan motor servo ke kanan atau ke kiri, tergantung dari nilai
delay yang akan diberikan. Untuk membuat servo pada posisi center, berikan pulsa
1,5 ms. Untuk memutarkan servo ke kanan, berikan pulsa ≤ 1,3 ms dan pulsa ≥ 1,7
ms untuk berputar ke kiri dengan delay 20 ms, seperti ilustrasi berikut.
Gambar 2.11 Ilustrasi Merubah Arah Putaran Servo
2.7 Roda Gigi ( Gear )
Hal mendasar yang perlu diperhatikan dalam desain mekanik robot ialah
perhitungan kebutuhhan torsi untuk menggerakkan sendi atau roda motor, sebagai
penggerak utama (prime-mover) yang paling sering dipakai umumnya akan bekerja
optimal (torsi dan kecepatan putaran yang ideal) pada putaran yang relative tinggi
yang hal ini tidak sesuai bila porosnya dihubungkan langsung ke sendi gerak atau
roda. Sebab kebanyakan gerakan yang diperlukan pada sisi anggota badan robot
adalah relative pelan namun bertenaga. Untuk mencapa hal itu maka sangat
diperlukan sistem roda gigi (gear) yang sesuai, dan pada tugas akhir ini
2.8 Logika Fuzzy (Fuzzy Logic)
2.8.1 Pendahuluan Fuzzy
Logika fuzzy merupakan salah satu komponen pembentukan soft computing.
Logika fuzzy pertama kali diperkenalkan oleh Prof. Lotfi A Zadeh pada tahun 1965.
Dasar logika fuzzy adalah teori himpunan fuzyy. Pada teori himpunan fuzzy, peranan
derajat keanggotaan sebagai penentu keberadaan element dalam suatu himpunan
sangatlah penting. Nilai keanggotaan atau derajat keanggotaan atau mempership
function menjadi ciri utama dari penalaran dengan logika fuzzy tersebut. Logika
fuzzy dapat dianggap sebagai kotak hitam (blackbox) yang menghubungkan antara
[image:32.612.136.493.390.483.2]ruang input menuju ke ruang output, seperti yang diilustrasikan gambar berikut [5].
Gambar 2.12 Contoh Pemetaan Input-Output
Dimana Logika fuzzy memiliki tujuh alasan kuat untuk dipakai, yakni karena
konsep logika fuzzy mudah dimengerti dengan menggunakan dasar teori himpunan,
logika fuzzy sangat fleksibel, memiliki toleransi teradap data yang tidak tepat,
mampu memodelkan fungsi–fungsi nonlinier yang sangat kompleks, dapat
membangun dan mengaplikasikan pengalaman-pengalaman para pakar secara
langsung tanpa melalui proses pelatihan, dapat bekerjasama dengan teknik–teknik
kendali secara konvensional, dan yang terpenting adalah logika fuzzy didasarkan
KOTAK
HITAM
Persediaan barang akhir
Produksi barang esok hari
pada bahasa alami, sehingga mudah dimengerti karena menggunakan bahasa sehari –
hari (Cox, 1994)
Metode Fuzzy yang terkenal ada dua, yakni SUGENO dan MAMDANI.
Dimana keduanya sebenarnya memiliki proses yang sama dari fuzifikasi hingga
inferen rule, bedanya ketika memasuki proses defuzifikasi, dimana keluaran
MAMDANI berupa himpunan fuzzy, sedangkan SUGENO menggunakan keluaran
beruap konstanta atau persamaan. Sehingga, MAMDANI memiliki keuntungan
proses keluaran yang lebih intuitif namun membutuhkan proses yang lama,
sedangkan SUGENO memiliki keuntungan proses yang cepat namun sedikit
kehilangan intuitifnya [5].
2.8.2 Metode Sugeno
Penalaran dengan metode sugeno hampir sama dengan penalaran mamdani,
hanya saja output (konsekuen) sistem tidak berupa himpunan fuzzy, melainkan
berupa konstanta atau persamaan linier. Sugeno mengusulkan penggunaan singleton
sebagai fungsi keanggotaan dari konsekuen. Singleton adalah sebuah himpunan fuzzy
dengan fungsi keanggotaan pada titik tertentu mempunyai sebuah nilai 0 di luar titik
tersebut. Metode ini diperkenalkan oleh Takagi Sugeno Kang pada tahun 1985 [6].
a. Model Fuzzy Sugeno Orde-Nol
Secara umum bentuk model fuzzy Sugeno orde-nol adalah ;
Dengan A1 adalah himpunan fuzzy ke-i sebagai anteseden, dan k adalah suatu
konstanta (tegas) sebagai konsekuen.
b. Model Fuzzy Sugeno Orde-Satu
Secara umum bentuk model fuzzy Sugeno ordo-satu adalah :
IF (x1 is A1) • ... • (xN is AN) THEN z = p1*x1 + … + pN*xN + q (2.2)
Dengan A1 adalah himpunan fuzzy ke-i sebagai anteseden, dan p1 adalah
suatu konstanta (tegas) ke-i dan q juga merupakan konstanta dalam
konsekuen.
Apabila komposisi aturan menggunakan metode sugeno, maka deffuzifikasi
dilakukan dengan cara mencari nilai rata-ratanya.
Pada metode sugeno cara pengevaluasian rule hampir sama dengan metode yang
[image:34.612.120.522.442.649.2]lainya.
Gambar 2.13 Evaluasi Rule Metode Sugeno A 3 1 0 X 1 y 1 0 Y 0 .0
x 1 0
0 .1 1
Z
1
0 X
0 . 2
0 0 .2 1 Z A 2 x 1
IF x is A 1 ( 0 .5 ) z is k 3 (0 .5 )
R u l e 3 : A 1 1
0 X 0
1
Z x 1
T H E N
1 y 1 B 2 0 Y 0 .7 B 1
0 . 1
0 .5 0 .5
O R (m a x )
A N D (m in )
O R y is B 1 ( 0 .1 ) T H E N z i s k 1 ( 0 .1 ) R u le 1 :
IF x is A 2 ( 0 .2 ) A N D y i s B 2 ( 0 .7 ) T H E N z is k 2 (0 .2 )
R u l e 2 :
k 1
k 2
k 3
Gambar 2.14 Defuzzifikasi Metode Sugeno
Dari gambar 2.13 dan 2.14 untuk aturan penggunaan operator logika sama dengan
metode yang lainya, namun pada bagian keluaran dan hasil dari defuzzifikasi metode
sugeno berupa singleton, dimana dengan keluaran ini sangat cocok untuk
diaplikasikan pada mikrokontroler dikarenakan keterbatasan kecepatan eksekusi dan
memori [6].
2.8.3 Komponen Dasar Fuzzy [6]
Dalam pemanfaatannya, fuzzy logic memerlukan tiga proses dasar, yakni
fuzzyfikasi, inferen rule, dan defuzzyfikasi.
Gambar 2.15 Konsep Dasar Logika Fuzzy
[image:35.612.204.459.523.677.2]Dimana :
1. Derajat Keanggotaan adalah derajat dimana nilai crisp compatible
dengan fungsi keanggotaan ( dari 0 sampai 1 ), juga mengacu sebagai
tingkat keanggotaan, nilai kebenaran, atau masukan fuzzy.
2. Label adalah nama deskriptif yang digunakan untuk mengidentifikasikan
sebuah fungsi keanggotaan.
3. Fungsi Keanggotaan adalah mendefinisikan fuzzy set dengan
memetakkan masukan crisp dari domainnya ke derajat keanggotaan.
4. Masukan Crisp adalah masukan yang tegas dan tertentu.
5. Lingkup / Domain adalah lebar fungsi keanggotaan. Jangkauan konsep,
biasanya bilangan, tempat dimana fungsi keanggotaan dipetakkan.
6. Daerah Batasan Crisp adalah jangkauan seluruh nilai yang mungkin
dapat diaplikasikan pada variabel sistem.
2.8.4 Fungsi Keanggotaan [5]
Fungsi keanggotaan (membership function) adalah suatu kurva yang
menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotaannya (sering
juga disebut dengan derajat keanggotan) yang memiliki interval antara 0 sampai 1.
Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah
dengan melalui pendekatan fungsi. Pada logika fuzzy terdapat macam-macam fungsi
1. Representasi Linear
Pada representasi linear, pemetaan input ke derajat keanggotaannya
digambarkan sebagai suatu garis lurus. Bentuk ini paling sederhana dan menjadi
pilihan yang baik untuk mendekati suatu konsep yang kurang jelas. Ada dua keadaan
himpunan fuzzy yang linear. Pertama, kenaikan himpunan dimulai pada nilai
dominan yang memiliki derajat keanggotaan nol (0) bergerak ke kanan menuju ke
nilai domain yang memiliki derajat keanggotaan lebih tinggi (gambar 2.16).
Gambar 2.16 Representasi Linear Naik Gambar 2.17 Representasi Linear Turun
Fungsi keanggotaan :
(2.3)
Ke dua, merupakan kebalikan yang pertama. Garis lurus dimulai dari nilai domain
dengan derajat keanggotaan tertinggi pada sisi kiri, kemudian bergerak menurun ke
nilai domain yang meimiliki derajat keanggotaan lebih rendah (gambar 2.17).
Fungsi keanggotaan :
(2.4) 0
1
a Domain b
derajat keanggot aan µ(x)
0 1
a domain b
2. Representasi Kur va Segitiga
Kurva segitiga pada dasarnya merupakan gabungan antara dua garis (linear)
[image:38.612.193.457.191.329.2]seperti terlihat pada (gambar 2.18)
Gambar 2.18 Kurva Segitiga
Fungsi keanggotaan :
(2.5)
3. Representasi Kur va Trapesium
Kurva trapesium pada dasarnya seperti bentuk segitiga, hanya saja ada
beberapa titik yang memiliki nilai keanggotaan 1 (gambar 2.19).
Gambar 2.19 Kurva Trapesium 0
1
a b
domain d e ra ja t k e a n g g o ta a n µ (x ) c c 0 1
a b
[image:38.612.206.468.513.647.2]Fungsi keanggotaan :
(2.6)
4. Representasi Kur va Bentuk Bahu
Daerah yang terletak di tengah-tengah suatu variabel yang direpresentasikan
dalam bentuk segitiga, pada sisi kanan dan kirinya akan naik dan turun (misalkan :
DINGIN bergerak ke SEJUK dan HANGAT bergerak ke PANAS). Tetapi terkadang
salah satu sisi dari variable tersebut tidak mengalami perubahan. Sebagai contoh,
apabila telah mencapai kondisi PANAS, kenaikan temperatur akan tetap berada pada
kondisi PANAS.
Himpunan fuzzy ’bahu’, bukan segitiga digunakan untuk mengakhiri variabel
suatu daerah fuzzy, bahu kiri bergerak dari benar ke salah, demikian juga bahu kanan
bergerak dari salah ke benar. Gambar 2.19 menunjukkan variabel TEMPERATUR
dengan daerah bahunya.
Gambar 2.20 Daerah ’bahu’ Pada Variabel TEMPERATUR
40 28 Temp (°C) d e ra ja t k e a n g g o ta a n µ (x )
Setelah proses fuzzyfikasi selesai, dilakukan evaluasi rule, rule yang akan
dibuat ini, bergantung dari pengalaman dari perancang sistem, semakin banyak
[image:40.612.253.409.191.357.2]pengalaman, maka semakin baik pula hasil yang didapat.
Gambar 2.21 Prosedur Evaluasi Rule
Tahap terakhir adalah defuzzyfikasi, yang mengambil keluaran fuzzy dari
setiap label, untuk dijadikan output crisp. Menggunakan metode defuzzyfikasi COG,
keluaran nilai single tone dikombinasikan menggunakan bobot rata-rata. Rumus
COG, untuk perhitungan reduksi single tone adalah
(2.7)
2.9 Pemr ograman Bahasa C
Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin
Richard pada tahun 1967. Bahasa ini memberkan ide kepada ken thompson yang
kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970.
tahun 1970-an di Bell Telephone Laboratories Inc. ( sekarang adalah AT&T Bell
Laboratories).
Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat
untuk komputer mikro. Untuk membuat versi-versi tersebut standar, ANSI (American
National Standards Institute) kemudian menetapkan standar ANSI untuk bahasa C.
Standar ANSI ini didasarkan dari standar UNIX yang diperluas. Standar ANSI
menetapkan sebanyak 32 buah kata-kata kunci (keyword) standar [3]. Ke 32 kata
kunci ini adalah :
Table 2.3 Kata Kunci (Keyword) Pada Bahasa C
auto br eak case char const continue default do
double else enum extern float for goto if
int long register return short signed sizeof static
struct switch typedef union unsigned void volatile while
2.9.1 Alasan Menggunakan Bahasa C [3]
Beberapa alasan dapat dicatat mengapa bahasa C banyak digunakan,
diantaranya adalah sebagai berikut :
1. Bahasa C tersedia hampir disemua jenis computer.
2. Kode bahasa C sifatnya adalah portable. Aplikasi yang ditulis dengan
bahasa C untuk suatu computer tertentu dapat digunakan di computer lain
hanya dengan sedikit modifikasi.
3. Bahasa C hanya menyediakan sedikit kata-kata kunci.
5. Dukungan pustaka yang banyak, kehandalan bahasa C dicapai dengan
adanya fungsi-fungsi pustaka.
6. C adalah bahasa terstruktur.
7. Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat
menengah.
8. Bahasa C adalah compiler, karena C sifatnya adalah compiler, maka akan
menghasilkan executable program yang banyak dibutuhkan oleh
program-program komersial.
2.9.2 Struktur Penulisan Bahasa C
Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari
program harus dimengerti terlebih dahulu, atau sebagai pedoman penulis program.
Struktur dari program C dapat diihat sebagai kumpulan dari sebuah atau lebih
fungsi-fungsi. Fungsi pertama yang harus ada di di program C yang sudah ditentukan
namanya, yaitu fungsi main(). Artinya program C minimal memiliki satu fungsi
(fungsi main()) [3]. Berikut ini adalah struktur dari program C.
main() {
statemen_1; statemen_2; …….. statemen_n; }
Fungsi Utama
fungsi_lain() {
statemen_statemen; }
Fungsi-fungsi lain
yang ditulis oleh pemrogram komputer
Keterangan :
1. Dimulai dari tanda { hingga tanda } disebut tubuh fungsi/blok.
2. Tanda () digunakan untuk menggapit argument fungsi, yaitu nilai yang
dilewatkan ke fungsi. Pada fungsi main() tidak ada argument yang
diberikan, maka tidak ada entri di dalam ().
3. Kata void menyatakan bahwa fungsi ini tidak memiliki nilai balik.
4. Tanda { menyatakan awal eksekusi program dan tanda } menyatakan
akhir eksekusi program.
5. Di dalam tanda { } bias tergantung sejumlah unit yang disebut pernyataan
(statment). Umumnya pernyataan berupa instruksi untuk :
• Memerintah computer melakukan proses menampilkan string ke
layar.
• Menghitung operasi matematik.
Bab ini menjelaskan tentang tahapan-tahapan pembuatan tugas akhir yang
berjudul “Robot Becak Berbasis Mikrokontroler ATmega 8535 Dengan Logika
Fuzzy” diantaranya terkait tentang perencanaan sistem, pernagkat keras (meliputi
mekanik dan perangkat elektronika) dan perangkat lunak (meliputi algoritma sistem
dan perencanaan fuzzy).
Tugas akhir ini juga membuat alat, berupa module robot sebagai obyek
implementasi dari metode yang dibuat. Namun sesuai dengan dengan judulnya, maka
pada bab ini lebih difokuskan pada pembahasan perangkat lunak yang menjadi pokok
dalam tugas akhir ini berupa implementasi metode fuzzy logic.
3.1 Blok Diagram Sistem
Perancangan sistem dadri tugas akhir ini mempunyai konfigurasi blok
diagram sistem seperti gambar 3.1 dengan alur kerja sistem sebagai berikut.
a. Servo digunakan sebagai penggerak kemudi, apabila robot mendeteksi
keberadaan benda di depan, samping kanan dan kiri.
b. Motor DC digunakan sebagai penggerak robot, dimana sebagai pengendalian
c. Ultrasonik RRF 04 diguanakn sebagai detector halangan, diolah oleh ATmega
8535 untuk mendapatkan path menghindari halangan.
d. Path menghindari halangn dijadikan sebagai masukan yang diolah oleh
ATmega 8535 menggunakan fuzzy decision untuk menjadikan keputusan aksi
motor servo dan motor dc sebagai penggerak utama.
Gambar 3.1 Blok Diagram Sistem
Dari sistem tersebut diketahui bahwa sistem terintegrasi antara mekanik,
actuator, sensor dan kontroler. Sehingga setiap adanya hambatan atau kesalahan pada
salah satu bagian tersebut membuat sistem tidak dapat berjalan dengan semestinya.
Untuk lebih detailnya maka dibuat sub-sub sistem, antara lain sub sistem
avoids obstacle dan sub sistem fuzzy decision maker. Dan titik berat pengerjaan tugas
akhir ini terletak pada sub sistem fuzzy decision maker yang digunakan untuk
menentukan pergerakan mobile robot.
3.1.1 Sub Sistem Obstacle Avoidance
Sub sistem ini bertugas untuk mengolah data dari sensor, berupa tiga buah
sensor ultrasonic RRF 04 menggunakan mikrokontroler ATmega 8535 dan data
keluaran informasi berupa data path obstacle avoidance, yakni posisi halangan dan Ult rasonic Obst acle Avoidance Fuzzy Decision M aker M ot or Servo
jarak halangan. Informasi tersebut nantinya akan digunakan pula sebagai masukan
data kedua dalam proses fuzzy.
Gambar 3.2 Blok Diagram Sistem Obstacle Avoidance
Dengan adanya ultrasonic, sub sistem ini dapat mendeteksi adanya benda atau
obyek sebagai halangan di depan, samping kanan dan kiri dengan jangkauan 180°
pada sumbu y positif, berdasarkan pantulan ultrasonic yang dipancarkan oleh
transmitter dan diterima oleh receiver, kemudian diolah oleh RRF 04 sehingga dapat
diambil datanya dalam satuan waktu (nilai TCNT). Sehingga mikrokontroler dapat
mengkalkulasi data-data respon hindar dari jarak bebas yang nantinya digunakan
sebagai data masukan di mikrokontroler utama. Setelah data diolah maka
mikrokontroler akan menginstruksikan pada bagian aktuator untuk melakukan aksi.
Pada sub bab sistem obstacle avoidance ini data drai sensor akan diupdate
serta diulang dan datanya dikirim ke mikro utama sub sistem fuzzy decision maker
sebagai data matang dari halanganan, sehingga akan meringankan dan mempercepat
3.1.2 Sub Sistem Fuzzy Decision Maker
Sub sistem ini akan menjadi titik fokus pengerjaan dalam tugas akhir ini,
dimana tugasnya mengolah data masukan dari path obstacle avoidance agar dapat di
proses menjadi keluaran aksi gerakan mobile robot.
Gambar 3.3 Blok Diagram Sistem Fuzzy Decision Maker
Karena kenyataanya dalam kehidupan sehari-hari manusia jarang
menggunakan hitungan numeric, tetapi lebih sering menggunakan hitungan kira-kira.
Semisal seorang sopir sedang mengemudi, ketika ada belokan dia harus memutar setir
mobilnya, namun dia hanya berusaha menjaga agar mobil tidak keluar jalur atau
menabrak, dengan cara memutar setir secukupnya.
Selain itu, pengguna logika fuzzy dalam sistem tidak memerlukan tingkat
kepastian yang tinnggi, karena selalu bergerak atau berubah (dinamis), tetapi yang
dibutuhkan adalah kecepatan respon proses dan kemudahan user untuk memprogram
robot menjadi cerdas yang memiliki kemampuan untuk memutuskan aksi gerak
kebanyakan sistem yang sudah ada, seperti pada tinjauan pustaka, menggunakan
behavior base, priority base maupun heuristic base.
Dengan menggunakan fuzzy, data masukan asli (crisp input) dari path
menghindari halangan, dijadikan masukan fuzzy (fuzzy input) terlebih dahulu
berdasarkan membership function yang dirancang, kemudian masukan fuzzy tersebut,
diproses dengan fuzzy inferen system (FIS) yang disesuaikan dengan aturan (rule)
yang dibuat untuk menghasilkan keluaran fuzzy (fuzzy output), setelah didapat
keluaran fuzzy, maka dilakukan defuzzifikasi menggunakan single tone agar
didapatkan keluaran asli (crisp output) yang bias digunakan sebagai data uuntuk
mengontrol servo sehingga menjadikan aksi gerakan robot.
Semakin banyak fungsi keanggotaannya, seharusnya semakin halus dan baik
pula pergerakanya karena jangkauan toleransinya kecil, jika pembuatan aturanya
sesuai. Namun untuk tahapan pembuatan sistem ini, dilakukan melalui pengujian
dengan membership function yang minim terlebih dahulu, karena mudah dalam
membuat implementasi program dan eksekusi nantinya, baik merubah banyak
membership function, merubah bentuk membership function atau jangkauan untuk
tiap membership function.
Begitu juga untuk pembuatan aturan (rule base) yang bias ditabelkan juga
akan dikaji lebih lanjut dengan menanmbahkan kondisi-kondisi tertentu ataupun
eksekusinya lebih cepat dan ringan serta lebih baik. Karena masukan fuzzy berjumlah
tiga masukan yaitu :
1. Masukan jarak bebas halangan dari ultrasonic satu
2. Masukan jarak bebas halangan dari ultrasonic dua
3. Masukan jarak bebas halangan dari ultrasonic tiga
Maka diperlukan tabel bertingkat untuk pembuatan rule base dalam bentuk tabel
standart, namun tidak terbatas sampai disini, karena dapat dilakukan pengembangan
(baik berupa penambahan, pengurangan atau perubahan beberapa kondisi, jika
diperlukan) agar perfoma lebih maksimal dan respon lebih cepat dan ringan.
Digunakanya metode single tone dalam tahap defuzifikasi dikarenakan
metode tersebut tidak terlalu rumit, selain itu juga single tone lebih mudah
implementasi programnya dan lebih cepat dalam proses eksekusinya serta
memerlukan memori yang tidak terlalu banyak dalam aplikasi di mikrokontroler yang
terbatas dengan memori dan kecepatan proses setiap intruksi yang ada. Nantinya
membership output juga akan disesuaikan agar sistem berjalan lebih optimal,
perancangan sistem dengan membership output yang lebih banyak, seharusnya
menghasilkan keluaran yang lebih baik dan halus. Karena semakin halus langkah
robot bergerak semakin baik dan semakin banyak pula kombinasi aturan yang dibuat.
Untuk lebihh detail mengenai perancangan fuzzy itu sendiri akan dibahas tersendiri,
dalam pokok bahasan perangkat lunak khususnya dibagian perencanaan sistem logika
3.2 Perancangan Perangkat Keras
Sistem pada tugas akhir ini membutuhkan perangkat keras sebagai wujud
implementasi sekaligus obyek dalam visualisasi aktual logika fuzzy yang akan
digunakan sebagai pembuatan keputusan (decision maker) aksi gerak berdasarkan
data masukan yang diolah bersamaan. Agar lebih mudah menganalisis keberhasilan
dan kebenaran sistem yang dirancang, karena sistem ini terkait implemntasi fuzzy
yang tentunya membutuhkan waktu proses dan menghabiskan memori untuk
menyimpan rule base, dan diimplementasi dalam mikrokontroler yang memiliki
keterbatasan dalam memori dan waktu eksekusi. Sehingga sangat diperlukan
perangkat keras untuk pembuktian sistemnya berjalan dengan baik dan sesuai harapan
atau tidak.
Karena jika hanya menggunakan simulasi, tidak akan diketahui faktor-faktor
lain yang berlaku di kasus sesungguhnya, seperti pengaruh desain mekanik,
lingkungan (permukaan lapangan uji) dan sebagainya. Selain itu, simulasi tidak bisa
menunjukkan apakah sistem yang dibuat relevan untuk diimplementasikan ke
mikrokontroler.
Selanjutnya pembahasan mengenai perancangan perangkat keras akan dibagi
dalam dua bagian yaitu mengenai desain mekanik dan pengaturan antarmuka
(interface) perangkat elektronik, baik mengenai sensor, actuator dan minimum sistem
3.2.1 Desain Mekanik
Perancangan mekanik pada sistem ini, didasarkan pada bentuk becak yang
sudah ada, sehingga untuk pemasangan minimal sistem, sensor, peletakan motor
servo dan motor DC harus disesuaikan dengan kontruksi becak.
Dudukan motor servo dan minimal sistem menggunakan bahan acrilyc.
Karena bahan-bahan tersebut cocok untuk digunakan dalam mendesain robot, karena
ringan tapi kuat dan mudah dibentuk. Penggunaan bahan-bahan tersebut dikarenakan
mudah didapat dan dengan harga yang terjangkau.
Untuk penyangga ketiga sensor menggunakan plat denggan lebar 2 cm dan
panjang 20 cm. digunakan bahan ini dikarenakan kuat dan tidak mudah bengkok bila
terkena getaran. Di bawah ini skema kontriksi robot becak.
a. Tampak Samping b. Tampak Atas
Gambar 3.4 Skema Konstruksi Robot Becak
Dari gambar 3.4 dapat dijelaskan struktur konstruksi dari robot becak antara lain :
1. Kode “A” adalah jarak sumbu roda, pemasangan as roda harus sempurna
2. Kode “B” adalah jarak roda depan dan belakang, jarak ini berpengaruh pada
panjangnya kabel instalasi dari sensor dan servo.
3. Kode “C” adalah panjang penampang dudukan minimal sistem. Panjang
penampang ini disesuaikan dengan panjang dari board minimal sistem.
4. Kode “D” adalah lebar penampang dudukan minimal sistem. Lebar
penampang ini disesuaikan dengan lebar penampang board minimal sistem.
Sehingga nilai estetika dari becak sendiri tidak terlalu banyak berubah.
5. Kode “E” adalah diameter masing-masing roda. Dimana hal ini berpengaruh
pada pemasangan motor DC sebagai penggerak utama dan as roda. Agar roda
dapat bergerak dengan lancer maka dipasang bearing pada ke dua sisi
dudukan.
6. Kode “F” adalah jarak ketinggian sensor ultrasonic. Dimana hal ini
berpengaruh pada kemampuan baca sensor dari sisi ketinggian rintangan.
Disini menggunkan tiga sensor untuk menghindari halangan di depan,
samping kanan dan samping kiri.
7. Kode “G” adalah ajrak servo ke tuas kemudi. Dimana hal ini berpengaruh
pada kesetabilan kerja kemudi saat berputar ke kiri dank e kanan.
Dengan memperhatikan setiap detail dari kontruksi becak, maka diharapkan
akan menghasilkan robot yang dapat bergerak secara setabil dan dinamis. Karena
kesetabilan kinerja robot tidak dapat dititik beratkan pada satu bagian saja, seperti
Untuk lebih memperjelas dari mekanik robot becak di bawah ini adalah gambar
mekanik utama robot yang diambil dari tiga arah.
servo
Se
nsor ultraso
ni
[image:53.612.155.477.161.379.2]k
Gambar 3.5 Mekanik Robot Tampak Atas
Dari gambar 3.5 minimal sistem dapat terpasang dengan tepat pada
dudukannya, hal ini dilakukan agar nilai seni dari kontruksi becak tidak banyak
berubah. Untuk penempatan ketiga sensor ultrasonic dipasang dengan sudut 30°.
Sedangkan untuk pin ISP dipasang pada bagian belakang agar saat loader program
tidak perlu membongkar tempat duduk becak.
Desain motor servo diletakkan antara tempat duduk pengemudi dengan
kemudi becak, hal ini bertujuan agar saat ada halangan disamping, sisi kanan dan sisi
kiri robot dapat langsung belok tanpa ada halangan.
Pada tugas akhir ini menggunakan motor servo yang relative lebih mudah
Perinintah berupa nilai PWM yang diberikan akan berbanding lurus dengan
pergerakanya.
Motor servo dapat diatur baik kecepatan maupun arah putaran dengan
mengatur duty cycle. Jika motor servo berhenti pada Ton = 1.5 ms maka motor dapat
berputar pada Ton < 1.5 ms untuk arah CW (Clock Wise) atau Ton > 1.5 ms untuk arah
[image:54.612.149.487.275.470.2]CCW (Counter Clock Wise).
Gambar 3.6 Posisi Switch dan Battery
Pada gambar 3.6 dapat dilihat mekanik robot dari sisi kiri, angka 1 adalah
selector switch yang terdiri dari 3 jalan yaitu pada posisi tengah off, posisi kanan
fuzzy dan posisi kiri pemrograman mikrokontroler biasa dengan satu sensor
ultrasonic.
Pada angka 2 menunjukkan dudukan penumpang, dimana di dalam dudukan
terdapat baterai RC 7.4 V 1100 mAH dengan factor pengali 20 C. baterai ntersebut
akan mensupplay tegangan ke seluruh komponen yang terpasang pada robot. 1
S e r v o M o t o R D C dri ver Senso r ul tr a soni k
Gambar 3.7 Mekanik Robot Tampak Bawah
Dari bawah dapat terlihat motor DC yang telah terpasang dengan roda gila
(gear box), dimana roda gila ini akan membantu meningkatkan torsi dari motor DC,
sehingga dapat menggerakkan robot.
Digunakanya motor DC dikarenakan motor ini harganya relatif murah dan
torsinya cukup tinggi, untuk mengatasi hal ini pada tugas akhir ini untuk
mengendalikan putarannya dapat diatur dengan menggunakan rangkaian motor driver
dengan memanfaatkan IC L293D.
3.3 Perancangan Perangkat Lunak
Perangkat lunak (software) yang dibutuhkan untuk mengintegrasikan menjadi
Penggunaan bahasa C dimaksudkan untuk mempermudah pemrograman.
Dibanding assembler, bahasa C lebih mudah dibaca dan dimengerti. Salah satu IDE
(Intregated Development Environment) yang cukup membantu dalam mempelajari
mikrokontroler AVR RISC 8 bit dengan bahasa C adalah CodeVisionAVR.
Kelebihan CodeVisionAVR hanya ada di kemudahan manajemen berkas dan proyek
dalam sebuah IDE serta fitur code wizard yang membantu menghasilkan rentetan
baris kode untuk keperluan yang umum.
Kebutuhan perangkat lunak meliputi masing-masing tugas kontroler yang
mengambil data sensor ultrasonic dan pengambilan keputusan. Untuk mempermudah
perencanaan fuzzy, digunakan software yang ada, yakni MATLAB Fuzzy Logic
Toolbox. Dengan menggunakan software ini, maka dengan mudah divisualisasikan
mulai dari grafik membership function input dan membership function output,
sehingga didapatkan hasil evaluasi rule juga dapat melihat output crisp.
3.3.1 Blok Diagram Fuzzy
Bagian ini akan membahas mengenai blok diagram fuzzy yang akan
menggunakan metode SUGENO. Sistem ini menggunakan masukan dari data yang
didapatkan dari mikro ATmega 8535 berupa arah dan jarak bebas halangan.
Kemudian masukan tersebut dirubah menjadi fuzzy melalui proses fuzzifikasi
hasil proses fuzzifikasi tersebut diproses menggunakan inferen engine berupa if-else
rule sehingga didapatkan keluaran fuzzy.
Untuk mendapatkan keluaran sebenarnya, maka keluaran fuzzy harus diproses
lebih lanjut menggunakan defuzzifikasi. Pemilihan defuzzifikasi yang tepat pada
implementasi metode fuzzy logic di mikrokontroler, menggunakan single tone,
karena perhitungannya tidak terlalu rumit, cepat dan ringan untuk dieksekusi dalam
skala mikroprosesor.
Gambar 3.8 Blok Diagram Fuzzy
3.3.2 Fungsi Keanggotaan
Untuk proses fuzzifikasi ini, memiliki tiga buah inputan crisp dari ketiga
sensor, yakni jarak bebas halangan. Yang memiliki membership function dekat,
sedang dan jauh.
Untuk jarak bebas dari ketiga inputan sensor menggunakan jenis membership
function trapezoidal karena menginginkan nilai yang konstan bernilai “1” pada range
Untuk penentuan nilai jangkauan, didasarkan intuisi, seberapa nilai sistem ini
akan dikatakan dekat, sedang dan jauh sekali. Begitu juga untuk penentuan posisi
atau arah didasarkan pada intuisi juga, seberapa nilai sistem ini menganggap benda
berada di sebelah kanan sekali, depan, agak kiri maupun kiri sekali.
Untuk mempermudah pembahasan di atas maka dengan menggunakan
MATLAB dapat terlihat hubungan antara masukan dari masing-masing sensor dan
keluaran dari hasil logika fuzzy.
Gambar 3.9 Membership Function Untuk US1 dan US3
Dari rancangan membership function untuk US1 dan US3 didapatkan perumusan
masing-masing member dengan formula sebagai berikut:
1,3 ( ) =
0, 25 < ≤ 100
1, 0 < < 15
1− , 15 ≤ ≤ 25
(3.1)
1,3 ( ) =
0, ≤ 15 ≥ 60
1, ≥ 25 ≤ 50
, 15 < ≤ 50
1− , 50 ≤ ≤ 60
1,3 ( ) =
0, 0 < < 50
1, 60 < ≤ 100
, 50 ≤ ≤ 60
(3.3)
Sedangkan untuk sensor ultrasonic 2 (US2) jarak minimum baca terhadap halangan
20 cm, ini dilakukan untuk memberi ruang gerak saat belok.
Gambar 3.10 Membership Function Untuk US2
Dari rancangan membership function untuk US2 didapat perumusan masing-masing
member dengan formula sebagai berikut.
2 ( ) =
0, 30 < ≤ 100
1, 0 < < 20
1− , 20 ≤ ≤ 30
(3.4)
2 ( ) =
0, ≤ 20 ≥ 70
1, ≥ 30 ≤ 60
, 20 < ≤ 30
1− , 60 ≤ ≤ 70
(3.5)
2 ( ) =
0, 0 < < 60
1, 70 < ≤ 100
, 60 ≤ ≤ 70
Kemudian untuk membership output, sistem ini menggunakan metode single
tone karena proses eksekusi yang cepat dan ringan, dikarenakan sistem ini berbasis
mikroprosesor yang memiliki kecepatan tidak terlalu tinggi dan kapasitas memori
yang terbatas. Untuk perancangan output motor DC digunakan empat anggota antara
lain Stop, Slow, Fast dan Turbo. Sedangkan untuk motor servo menggunakan lima
anggota Center, Right, BigR, Left dan BigLeft. Berikut ini rancangan membership
function untuk masing-masing output.
[image:60.612.175.467.330.462.2]Gambar 3.11 Membership Function Output Motor DC
Gambar 3.12 Membership Function Output Motor Servo St op Slow Fast Turbo
10000 7500
6000 3000
BigR
BigL Left Cent er Right
150 75
-75
Nilai dari crisp di atas digunakan sebagai acuan saat melakukan pemrograman,
dimana nilai crisp tersebut mempengaruhi kecepatan putaran motor DC dan arah
putar motor servo yang terhubung dengan kemudi robot becak.
3.3.3 Fuzzifikasi
Untuk proses fuzzifikasi, masukan crisp dari sensor ultrasonic berupa data
jarak bebas halangan akan dirubah menjadi masukan fuzzy arah hindar halangan.
Semakin banyak membership function keanggotaan yang dipakai, maka semakin
smooth pula perubahan data masukannya, namun banyaknya membership function
juga harus dikompensasi dengan perumusan rule yang lebih kompleks pula. Semisal
digunakan tiga anggota untuk tiap masukan crisp, maka hanya dibutuhkan 81 rule
untuk empat masukan crisp. Berikut ini merupakan ilustrasi proses fuzzifikasi untuk
masukan crisp dari data jarak benda menggunakan membership function trapeziodal.
Gambar 3.13 Ilustrasi Proses Fuzzifikasi
Dari grafik tersebut didapatkan proses fuzzifikasi masukan crisp menjadi
masukan fuzzy dengan komposisi: 0.8
( 17) = 1− = 1− 0.2 = 0.8
( 17) = = 0.2
Proses fuzzifikasi ini juga dilakukan untuk masing-masing masukan crisp, dimana
masukan crisp jarak benda menjadi masukan fuzzy.
3.3.4 Inferen Engine
Dari membership function yang sudah dibuat, maka dapat dirumuskan rule
fuzzifikasinya sesuai kondisi yang ada. Karena membership function masukannya
masing-masing memiliki tiga buah jarak, sehingga memiliki 27 kondisi seperti pada
tabel 3.1. Dengan mentabelkan rule maka akan mudah untuk menentukan rule-rule
mana saja yang memiliki kondisi dan konklusi yang sama.
Tabel 3.1 Kombinasi Rule dari Tiga Sensor
US2 Near M id Far
US3| US1 Near M id Far Nea