TUGAS AKHIR KENDALI KECEPATAN ROBOT BERODA MENGGUNAKAN FUZZY LOGIC BERBASIS MIKROKONTROLER AVR ATMEGA8535 Diajukan Guna Melengkapi Salah Satu Persyaratan Untuk Memperoleh Gelar Sarjana ( S1 )
Disusun Oleh : Dani Rosad Hamdani 41406120069
PROGRAM STUDI TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA JAKARTA 2009
PROGRAM STUDY TEKNIK ELEKTRO FAKULTAS TEKNOLOGI INDUSTRI UNIVERSITAS MERCU BUANA LEMBAR PENGESAHAN TUGAS AKHIR Nama
: Dani Rosad Hamdani
NIM
: 41406120069
Fak/Jurusan : FTI/Teknik Elektro Peminatan
: Elektronika
Telah menyelesaikan Tugas Akhir dengan judul : “ KENDALI KECEPATAN ROBOT
BERODA
MENGGUNAKAN
FUZZY
LOGIC
BERBASIS
MIKROKONTROLER AVR ATMEGA8535”
Menyetujui dan Mensahkan,
Ketua Program Study Teknik Elektro /Koordinator Tugas Akhir
Pembimbing Tugas Akhir
( Ir. Yudhi Gunardi, MT )
( Dr. Ir. Andi Adriansyah, M.Eng)
LEMBAR PERNYATAAN
Yang bertanda tangan di bawah ini,
Nama N.I.M Jurusan Fakultas Judul Skripsi
: : : : :
Dani Rosad Hamdani 41406120069 Teknik Elektro Teknik Industri Kendali Kecepatan Robot Beroda Menggunakan Fuzzy Logic berbasis Mikrokontoler ATMEGA8535
Dengan ini menyatakan bahwa hasil penulisan Skripsi yang telah saya buat ini merupakan hasil karya sendiri dan benar keasliannya. Apabila ternyata di kemudian hari penulisan Skripsi ini merupakan hasil plagiat atau penjiplakan
terhadap
karya
orang
lain,
maka
saya
bersedia
mempertanggungjawabkan sekaligus bersedia menerima sanksi berdasarkan aturan tata tertib di Universitas Mercu Buana.
Demikian, pernyataan ini saya buat dalam keadaan sadar dan tidak dipaksakan.
Penulis,
Materai Rp.6000
[ Dani Rosad Hamdani]
ABSTRAK Perkembangan teknologi elektronika yang sangat cepat telah memberikan kemajuan di bidang kendali. Sehingga berkembang metoda-metoda kendali yang dapat digunakan untuk pengaturan sistem kendali, baik metoda konvensional maupun pengendalian modern. Fuzzy logic controller merupakan salah satu pengendali modern yang banyak diaplikasikan pada saat ini, misalnya kontrol proses, proses produksi, robotika, manajemen skala besar, teknik sipil, kimia, transportasi, kedokteran, maupun ekonomi. Fuzzy logic controller adalah alternatif sistem kendali yang mudah karena tidak perlu dicari model matematisnya namun mempunyai kestabilan yang baik. Untuk merealisasikan Fuzzy logic controller, maka pada tugas akhir ini akan dibuat robot beroda menggunakan motor DC sebagai pengerak dan sensor ultrasonik untuk mengukur jarak antara robot dengan pengahalang. Fuzzy logic yang dirancang mempunyai 2 masukan (Jarak,∆Jarak) dan 1 keluaran (output). Membership function masukan mempunyai 3 label linguistik dengan 9 if-then rule. Signal penggerak motor memanfaatkan fitur PWM yang terdapat pada mikrokontroler ATMEGA8535 sehingga kecepatan motor dapat dikendalikan tergantung dari nilai PWM yang diberikan. Pengujian terhadap rangkaian sensor, rangkaian driver motor DC, sistem minimum mikrokontroler ATMEGA8535 telah dilakukan. Seluruh pengujian dapat berjalan dengan baik. Penggabungan perangkat keras dan perangkat lunak menjadikan robot beroda ini berfungsi sesuai perancangan dimana kecepatan robot ini berubah tergantung dari jarak dan ∆Jarak antara robot dengan dinding penghalang.
KATA PENGANTAR
Alhamdulillahi rabbil ‘alamiin. Segala puji saya panjatkan kehadirat Allah SWT atas rahmat dan hidayahnya, sehingga tugas akhir ini dapat diselesaikan dengan baik. Tugas akhir in berjudul “Kendali Kecepatan Robot Beroda Menggunakan Fuzzy Logic Berbasis Mikrokontroler AVR ATMEGA8535”. Tugas akhir ini diajukan untuk memenuhi salah satu persayaratan dalam menyelesaikan pendidikan Sarjana (S1) Universitas Mercu Buana.. Dalam penyusunan Tugas Akhir ini, penulis mendapat banyak hambatan dan kesulitan, berkat bantuan dari berbagai pihak akhirnya dapat teratasi. Baik dalam pembuatan alat, penyajian isi, maupun teknis penulisannya. Dengan selesainya tugas akhir ini penulis mengucapkan terima kasih kepada semua pihak yang telah membantu baik secara materil maupun moril kepada penulis diantaranya: 1.
Bapak Ir. Yudhi Gunardi, MT, selaku Ketua Program Studi Teknik Elektro dan Koordinator Tugas Akhir Teknik Elektro, Universitas Mercu Buana.
2.
Bapak Dr. Ir. Andi Andriansyah, M.Eng, selaku Pembimbing Tugas Akhir yang telah bersedia meluangkan waktu, tenaga, dan pikirannya dalam memberikan bimbingan, pengarahan, dan dorongan semangat kepada penulis.
3.
Seluruh Staff pengajar Jurusan Teknik Elektro, Unversitas Mercu Buana yang telah mendidik dan membimbing penulis selama duduk di bangku perkuliahan.
4.
Yang tercinta Ibunda, kakak tercinta serta adik tercinta yang memberikan dorongan dan semangat serta Do’a sehingga Tugas Akhir ini selesai dengan secepatnya.
5.
Kepada Saudara Tiar Budi Hartaman, Gresi Gardini, Kukuh Setiadi, Firmansyah yang telah membantu secara moril maupun materil.
6.
Seluruh teman-teman Jurusan Teknik Elektro Heriyanto, Yoga, Baskoro, Casgianto dan semuanya yang tidak bisa disebutkan satu per satu.
Penulis menyadari sepenuhnya bahwa dalam penyusunan tugas akhir ini masih banyak kekurangannya, oleh karena itu sangat diharapkan kritik dan saran dari pembaca. Penulis berharap tulisan ini dapat bermanfaat bagi penulis khususnya dan pembaca pada umumnya.
Jakarta, Juli 2009 Penulis
Dani Rosad Hamdani
DAFTAR ISI
HALAMAN JUDUL ....................................................................................
i
HLAMAN PERNYATAAN .........................................................................
ii
LEMBAR PENGESAHAN ..........................................................................
iii
ABSTRAK ....................................................................................................
iii
KATA PENGANTAR ..................................................................................
iv
DAFTAR ISI .................................................................................................
vi
DAFTAR TABEL .........................................................................................
viii
DAFTAR GAMBAR .....................................................................................
ix
BAB I
PENDAHULUAN ...................................................................
1
1.1
Latar Belakang Masalah ................................................
1
1.2
Perumusan Masalah ......................................................
2
1.3
Tujuan ...........................................................................
2
1.4
Ruang Lingkup Tugas Akhir ........................................
2
1.5
Metodelogi Perancangan ...............................................
2
1.6
Sistematika Penulisan ...................................................
3
Landasan Teori .......................................................................
5
2.1
Robotika .........................................................................
5
2.2
Logika Fuzzy ..................................................................
9
2.3
Kontroler Logika Fuzzy .................................................
9
BAB II
2.3.1
Struktur Dasar Kontroler logika Fuzzy .............
10
2.3.2
Fuzzyfikasi .........................................................
12
2.3.3
Basis ...................................................................
13
2.3.4
Aturan Dasar ......................................................
15
2.3.5
Metode Defuzzyfikasi .........................................
20
Mikrokontroler ATMEL AT89C51 ...............................
21
2.4.1
Kofigurasi Pin ATMEGA835 ...........................
22
2.4.1
Arsitektur ATMEGA835 ..................................
23
2.5
Driver Motor DC ...........................................................
22
2.6
Sensor Ultrasonik ...........................................................
26
2.7
Motor DC .......................................................................
28
2.4
BAB III
Perancangan Dan Realisasi
...................................................
30
3.1
Blok Diagram Robot Beroda ........................................
30
3.2
Rangkaian Perangkat Keras ...........................................
31
3.2.1
Rangkaian Sistem Minimum ATMEGA8535 ...
31
3.2.2
Rangkaian Sensor Ultrasonik .............................
32
3.2.3
Rangkaian Driver Motor DC ...............................
33
Perancangan Perangkat Lunak ......................................
33
3.3
3.3.1
3.3.2
BAB IV
BAB V
Perancangan Program Mikrokontroler Dengan Code Vision AVR................................................
34
Perancangan Kontrol Fuzzy Logic .....................
35
3.3.2.1 Fuzzyfikasi...............................................
36
3.3.2.2 Basis Data Aturan ....................................
37
3.3.2.3 Mekanisme Reasoning.............................
37
3.3.2.4 Defuzzyfikasi ...........................................
37
Pengujian dan Analisa
...........................................................
39
4.1
Pengujian Power supply ..................................................
39
4.2
Pengujian Mikrokontroler ATMEGA8535......................
40
4.3
Pengujian Rangkain sensor Ultrasonik ............................
42
4.4
Pengujian Rangkain Driver Motor DC............................
43
4.4
Pengujian Robot Beroda ..................................................
44
PENUTUP
..........................................................................
46
5.1
Kesimpulan ...................................................................
46
5.2
Saran
47
DAFTAR PUSTAKA LAMPIRAN
..........................................................................
DAFTAR TABEL Tabel 2.1 Kuantitasi dan Pendefinisian Numerik Himpunan Fuzzy................
13
Tabel 2.2 Prototipe Aturan Kontrol Linguistik dengan 3 Nilai........................
17
Tabel 2.3 Kuantitasi dan Pendefinisian Numerik Himpunan Fuzzy.................
17
Tabel 2.4 Prototipe Aturan Kontrol dengan 7 Nilai..........................................
18
Tabel 2.5 Keputusan Aturan Kontrol Fuzzy MacVicar-Whelan ......................
19
Tabel 2.6 Tabel Kebenaran L293D untuk satu kanal .......................................
26
Tabel 3.1 Rule base............................................................................................
37
Tabel 4.1 Hasil Uji Power Supply .....................................................................
40
Tabel 4.2 Hasil Uji Port mikrokontroler ...........................................................
40
Tabel 4.3 Hasil Uji Sensor Ultrasonik...............................................................
42
Tabel 4.4 Hasil Gerak Motor DC setelah diberikan tegangan 5V ....................
44
DAFTAR GAMBAR Gambar 2.1 Contoh Robot Industri..................................................................
7
Gambar 2.2 Contoh Robot Bergerak ................................................................
8
Gambar 2.3 Konfigurasi Dasar Sistem Logika Fuzzy .......................................
10
Gambar 2.4 Struktur Dasar Kontroler Logika Fuzzy ........................................
11
Gambar 2.5 Bentuk Fungsi Keanggotaan Segitiga............................................
12
Gambar 2.6 Tanggapan Plant Loop Tertutup Terhadap Variabel Masukan Plant
16
Gambar 2.7 Proses Defuzzifikasi Metode COG...................................................
20
Gambar 2.8 Pin ATMEGA8535...........................................................................
22
Gambar 2.9 Blok Diagram ATMEGA8535..........................................................
24
Gambar 2.0 Blok Diagram L293D.......................................................................
25
Gambar 2.11 Skematik pengendalian dua buah motor DC....................................
26
Gambar 2.12 Prinsip Kerja Sensor Ultrasonik........................................................
26
Gambar 2.13 Rangkaian Transmitter Ultrasonik...................................................... 27 Gambar 2.14 Rangkaian Receiver Ultrasonik.......................................................... 27 Gambar 2.15 Cara kerja Motor DC..........................................................................
28
Gambar 2.16 Bentuk Motor DC dan Pemasangan terminal positif dan negatif ....... 29 Gambar 3.1 Diagram Blok Kendali kecepatan Robot Beroda.................................
30
Gambar 3.2 Sistem Minimum AT Mega 8535......................................................... 31 Gambar 3.3 Prinsip Echo Sounder............................................................................ 32 Gambar 3.4 Rangkaian Antaramuka Ultrasonik .....................................................
32
Gambar 3.5 Skematis rangkaian driver motor DC.................................................... 33 Gambar 3.6 Diagram Alir Robot Beroda.................................................................
34
Gambar 3.7 Pengendali Fuzzy Logic........................................................................ 35 Gambar 3.8 Fungsi Segi Tiga................................................................................... 36
Gambar 3.9 Membership Function........................................................................... 36 Gambar 3.10 COA PWM.......................................................................................... 38 Gambar 4.1 Pengujian Power Supply........................................................................ 39 Gambar 4.2 Listing Program Tes Port mikrokontroler.............................................. 41 Gambar 4.3 Blok diagram pengujian sensor ultrasonik............................................. 42 Gambar 4.4 Skematik Rangkaian Driver motor DC.................................................. 43 Gambar 4.5 Robot Beroda......................................................................................... 44
BAB I PENDAHULUAN
1.1 Latar Belakang Perkembangan teknologi elektronika yang sangat cepat telah memberikan kemajuan di bidang kendali. Sehingga berkembang metoda-metoda kendali yang dapat digunakan untuk pengaturan sistem kendali, baik metoda konvensional maupun pengendalian modern.
Fuzzy logic controller merupakan salah satu pengendali
modern yang banyak diaplikasikan dalam peralatan yang digunakan dalam kehidupan sehari-hari seperti pada mesin cuci, AC, robot dan lain-lain. Aplikasi fuzzy logic hampir tak terbatas, misalnya kontrol proses, proses produksi, robotika, manajemen skala besar, teknik sipil, kimia, transportasi, kedokteran, maupun ekonomi. Fuzzy logic controller adalah alternatif sistem kendali yang mudah karena tidak perlu dicari model matematisnya namun mempunyai kestabilan yang baik. Semakin banyaknya kebutuhan sistem kontrol pada sistem elektronik seperti pada mesin cuci, AC, robot dan lain-lain, maka perlu dibuat suatu sistem kendali yang dapat diimplementasikan pada sebuah device yang kecil seperti mikrokontroler. Fuzzy logic adalah alternatif yang paling mungkin untuk di implementasikan pada mikrokontroler
karena
kesederhanaan
algoritmanya
mengingat
memori
mikrokontroler yang terbatas. Untuk mengaplikasikan hal diatas maka akan dibuat robot beroda berbasis mikrokontroler ATMEGA8535 dengan menerapkan fuzzy logic controller untuk pengendalian kecepatan robot. Berdasarkan uraian diatas maka pada tugas akhir ini akan dirancang dan direalisasikan ”Kendali Kecepatan Robot Beroda Menggunakan Fuzzy Logic Berbasis Mikrokontroler AVR ATMEGA8535”.
1.2 Perumusan Masalah Permasalahan yang dihadapi pada pembuatan tugas akhir ini adalah : 1. Bagaimana membuat sistem mikrokontroler yang dapat diterapkan untuk mengendalikan kecepatan robot beroda. 2. Bagaimana sistem mikrokontroler dapat medeteksi jarak antara robot dengan dinding penghalang. 3. Bagaimana sistem mikrokontroler dapat menggerakan roda robot 4. Bagaimana membuat sistem pengendalian fuzzy logic supaya kecepatan robot dapat dikendalikan. 5. Bagaimana membuat program yang akan didownload ke mikrokontroler .
1.3 Tujuan Tujuan pembuatan tugas akhir adalah merancang dan merealisasikan pengendalian kecepatan robot beroda menggunakan fuzzy logic berbasis mikrokontroler ATMEGA8535.
1.4 Ruang Lingkup Tugas Akhir Dalam pembuatan tugas akhir ini permasalahan yang dikemukakan dibatasi pada: ·
Perancangan kontroller fuzzy.
·
Perancangan dan implementasi perangkat keras meliputi: rangkaian power suplly, sistem minimum ATMEGA8535, rangkaian sensor ultrasonik, rangkaian driver motor, dan konstruksi robot beroda.
·
Perancangan perangkat lunak meliputi: pembuatan program C mikrokontroler menggunakan Code Vision AVR.
·
Algoritma kontrol fuzzy dibuat dalam program Code Vision AVR.
1.5 Metodelogi Perancangan Metodelogi yang akan digunakan dalam pembuatan tugas akhir ini adalah : 1. Studi literatur Mempelajari teori-teori dasar yang berkaitan dengan lingkup pelaksanaan tugas akhir ini, sehingga diperoleh pengetahuan dasar untuk pengolahan data
dan pemecahan masalah. Studi literatur ini juga dilakukan untuk menentukan komponen-komponen yang digunakan dan program yang akan dibuat. 2. Perancangan dan realisasi perangkat keras Perancangan dan realisasi perangkat keras yang terdiri dari rangkaianrangkaian seperti : pengukur jarak menggunakan sensor ultrasonik, power supply, sistem minimum mikrokontroler ATMEGA8535, driver motor DC, pembuatan konstruksi robot. 3. Perancangan dan realisasi perangkat Lunak Perancangan dan realisasi perangkat lunak yang terdiri dari subrutin-subrutin program seperti : pembacaan data dari sensor ulrasonik dan penghitungan jarak, pengendalian arah roda robot, pengendalian PWM(pulse wide modulation) mengunakan puzzy logic. 4. Realisasi Robot Realisasi robot dengan cara penggabungan antara perangkat keras dan perangkat lunak. 5. Uji Coba Uji coba dilakukan untuk mengetahui kesesuaian antara perangkat keras dengan perangkat lunak yang digunakan. Dengan cara menganalisa reaksi robot apakah robot bekerja sesuai dengan yang diharapkan atau tidak.
1.6 Sistematika Penulisan Isi laporan tugas akhir ini tersusun dalam 5 bab yang saling berurutan, yaitu : BAB I Pendahuluan Pendahuluan berisikan tentang latar belakang maslah, perumusan masalah, jutuan, ruang lingkup tugas akhir, metodelogi perancangan dan sistematika penyusunan laporan tugas akhir. BAB II Landasan Teori Landasan teori berisikan tentang tinjauan pustaka yang terdiri dari teoi-teori yang berhubungan dengan rekayasa robot yang dibahas secara ringkas dan jelas, sehingga dapat digunakan sebagai penunjang pembuatan robot tersebut.
BAB III Perancangan dan Realisasi Pada bab ini akan dibahas tahap-tahap perancangan dan realisasi perangkat keras dan perangkat lunak sehingga dapat menjadi sebuah robot beroda. BAB IV Pengujian dan Analisa Pada bab ini akan diuraikan tentang mekanisme pangujian sistem, yang berpengaruh terhadap kinerja sistem. Selain itu dicantumkan pula hasil pengukuran dan analisanya. BAB V Penutup Bab ini berisikan kesimpulan dari perancangan robot yang telah direalisasikan berikut saran dalam pengembangan sistem dengan keuntungan dan kerugiannya.
BAB II LANDASAN TEORI
2.1. Robotika Perkembangan ilmu pengetahuan yang pesat di bidang Mekatronika menghasilkan aplikasi-aplikasi mekatronika yang sering ditemukan dalam kehidupan sehari-hari seperti mesin bubut, printer, robotika dan lain-lain. Robotika terdiri dari ilmu-ilmu dari bidang mekanik, elektronika, sistem kontrol dan sistem komputer. Robot terdiri dari sistem mekanika, sistem sensor, sistem pengkondisi signal, sistem interface, sistem pengendailan dan sistem display, sebagaimana yang terdapat pada sistem mekatronika. Kata robot berasal dari kata robota terdapat pada sebuah teater fiksi sains berjudul Rossum’s Universal Robots (RUR), karya Karel Capek dari Czech (1921) yang berarti bekerja atau pekerja. Kemudian, istilah robot berkembang dari waktu ke waktu sesuai dengan teknologi yang berkembang pada waktu tersebut. Robot adalah sebuah alat elektro-mekanik yang dapat melakukan tugas fisik yang biasa dilakukan manusia atau tugas lainnya sesuai kebutuhan yang dinginkan, yang pergerakannya menggunakan pengawasan dan kontrol manusia, ataupun menggunakan program yang telah didefinisikan terlebih dulu melalui kecerdasan buatan. Robot biasanya digunakan untuk tugas yang berat, berbahaya, pekerjaan yang berulang dan kotor. Biasanya kebanyakan robot industri digunakan dalam bidang produksi. Penggunaan robot lainnya termasuk untuk pembersihan limbah beracun, penjelajahan bawah air dan luar angkasa, pertambangan, pekerjaan "cari dan tolong" (search and rescue), dan untuk pencarian tambang. Belakangan ini robot mulai memasuki pasaran konsumen di bidang hiburan, dan alat pembantu rumah tangga, seperti penyedot debu, dan pemotong rumput. Sifat dan karakteristik robot masa kini, yaitu: ·
bergerak tanpa harus dikendalikan langsung oleh manusia
·
bergerak secara multi-aksis (rotasi dan translasi)
·
dapat diprogram ulang
·
dapat mengambil keputusan tertentu secara otomatis
·
dapat berinteraksi, mengambil informasi dan memanipulasi lingkungannya
·
memiliki sistem kecerdarasan buatan Untuk menghindari hal-hal yang dikhawatirkan oleh manusia akibat
‘perkembangan’ yang pesat dari robot, maka sejak awal telah dibuat Tiga Hukum Robot. Tiga Hukum Robot dalam genre cerita fiksi ilmiah adalah tiga buah peraturan yang ditulis oleh Isaac Asimov, yang harus dipatuhi oleh hampir semua robot-robot positroniknya, yang terdapat dalam karya-karya cerita fiksinya. Meskipun dalam berbagai cerita sebelumnya pernah disebutkan secara selintas, Tiga Hukum Robot pertama kali diperkenalkan secara lengkap pada tahun 1942 dalam cerita pendek "Runaround", yang menyatakan sebagai berikut: 1. Robot tidak boleh melukai manusia, atau dengan berdiam diri, membiarkan manusia menjadi celaka (A robot may not injure a human being or, through inaction, allow a human being to come to harm). 2. Robot harus mematuhi perintah yang diberikan oleh manusia kecuali bila perintah tersebut bertentangan dengan Hukum Pertama (A robot must obey orders given to it by human beings except where such orders would conflict with the First Law). 3. Robot harus melindungi keberadaan dirinya sendiri selama perlindungan tersebut tidak bertentangan dengan Hukum Pertama atau Hukum Kedua (A robot must protect its own existence as long as such protection does not conflict with the First or Second Law). Asimov menambahkan Hukum Ke-Nol:"Robot tidak boleh mencelakakan umat manusia, atau dengan berdiam diri, membiarkan umat manusia menjadi celaka" (A robot may not harm humanity, or, by inaction, allow humanity to come to harm); hukum-hukum
selanjutnya
dapat
disesuaikan
secara
berturut-turut,
untuk
mengakomodasi hukum ini. Pada umumnya, robot diklasifikasikan terdiri dari 2 (dua) jenis, yaitu: robot industri (industrial robot) dan robot bergerak (mobile robot). Klasifikasi ini dilihat dari sisi perkembangan dan struktur robot tersebut. Robot industri adalah robot yang awal-awal dibangun oleh para peneliti. Robot ini memiliki ciri khas sebagai berikut: ·
Banyak didominasi oleh sistem mekanikal
·
Konstruksi dasar (base) robot tetap (stationary) berbentuk tangan manusia
·
Menggunakan sensor yang jumlah dan variasi terbatas
·
Menggunakan sistem mikroprosesor dan dapat diprogram ulang
Robot industri dirancang untuk melakukan pekerjaan yang sebelumnya dilakukan manusia, sehingga kontruksi robot industri seperti tangan manusia atau sering disebut Arm robot.
(a)
(b)
(c)
(d)
Gambar 2.1 Contoh Robot Industri: (a) dan (b) Sperical Robot, (c) Articulated Arm Robot dan (d) Scara Robot
Robot bergerak adalah kelanjutan dari proses perkembangan pembuatan robot. Robot bergerak ini memiliki ciri khas sebagai berikut: ·
Banyak didominasi oleh sistem elektrik
·
Konstruksi dasar (base) robot yang bergerak dan beroda atau berkaki
·
Menggunakan sensor yang banyak jumlah dan variasinya
·
Menggunakan sistem mikroprosesor yang memiliki kecerdasan buatan Berdasarkan dari jenis aktuator yang digunakan, robot bergerak dikelompokan
sebagai berikut : 1. Robot beroda Robot Beroda atau Wheeled Mobile Robot adalah konstruksi robot yang ciri khasnya mempunyai aktuator berupa roda untuk menggerakkan keseluruhan badan robot tersebut, sehingga robot tersebut dapat melakukan perpindahan posisi dari satu titik ke titik yang lain. 2. Robot berkaki Robot berkaki dikenal dengan Legged robot yaitu robot yang berkaki kaki banyak menyerupai serangga.
3. Humanoid Robot ini memiliki dua kaki seperti manusia yang pergerakannya meniru gerkan manusia pasif-dinamik. 4. Robot Fungsi khusus Robot ini dirancang dengan tujuan khusus seperti yang diinginkan perancang, dengan tujuan tertentu. Kontruksi robot ini berbeda dengan jenis robot lainnya karena disesuaikan dengan fungsi robot, seperti tour guide robot, Robot laboratorium, robot militer dan robot Bio-Electro-Medis. .
(a)
(c)
(b)
(d)
Gambar 2.2 Contoh Robot Bergerak: (a) Robot beroda (b) Robot Berkaki, (c) Robot Humanoid dan (d) Robot militer
2.2. Logika Fuzzy Logika himpunan fuzzy pertama kali diperkenalkan oleh Lotfi.A Zadeh seorang professor di Universitas California di Barkley pada tahun 1965. Konsep ini kemudian berkembang menjadi teori himpunan fuzzy yang secara luas diterapkan berbagai bidang, antara lain: algoritma kontrol, diagnosa medis, sistem pendukung keputusan,
ekonomi,
teknik,
psikologi,
lingkunngan,
keamanan
dan
ilmu
pengetahuan. Logika fuzzy dikembangkan dalam bidang kontrol dimaksudkan untuk menutupi kekurangan dari metode-metode kontrol yang telah ada. Teori fuzzy dikembangkan untuk mengatasi kelemahan teori two valued logic atau logika Boolean. Teori ini membagi suatu keadaan hanya menjadi dua kemungkinan saja benar (dipresentasikan dengan nilai 1) atau salah(dipresentasikan dengan nilai 0). Dan tidak memperhitungkan beragam kondisi yang nyata sehingga tidak memberikan kemungkinan suatu nilai yang lain. Teori two valued logic yang kemudian diimplementasikan kedalam metode pemecahan masalah ternyata sangat efektif dan berhasil sebatas permasalahan dapat dideskripsikan secara tepat kualitasnya.
Dalam
kenyataannya,
suatu
permasalahan
sering
tidak
dapat
dideskripsikan secara jelas kualitasnya. Teori fuzzy membagi derajat keanggotaan dan derajat kebenaran, yaitu : sesuatu yang dapat menjadi sebagian benar dan sebagian salah pada waktu yang sama.
2.3. Kontroler Logika Fuzzy Perancangan
kontroller
logika
fuzzy merupakan
pengabungan
aspek
pendefinisian himpunan fuzzy dengan logika fuzzy, dimana kontroller logika fuzzy mampu mengakomodasi informasi numerik dengan sistem pengukuran dan informasi linguistik yang diperoleh dari diskripsi operator yang berpengalaman. Dengan kedua informasi ini memungkinkan efektifitas pendekatan secara engineering sense dengan menyelesaikan suatu masalah sistem kendali. Kontroller logika fuzzy dengan menggunakan basis pengetahuan dan ungkapan linguistik
mampu
merepresentasikan
cara
kerja
seorang
operator
yang
berpengalaman. Aturan pada kontroller logika fuzzy adalah himpunan aturan-aturan kontrol linguistik yang diturunkan secara heuristic berdasarkan karakteristik proses dan pengalaman operator. Dengan kata lain kontroller logika fuzzy merupakan suatu
kontroller yang pada prinsipnya mengubah strategi kontrol linguistik ke dalam strategi kontrol otomatis.
2.3.1. Struktur Dasar Kontroler Logika Fuzzy Konfigurasi dasar dari sistem logika fuzzy murni itu diperlihatkan pada Gambar 2.3 dimana basis aturan fuzzy terdiri atas suatu koleksi aturan IF-THEN untuk menentukan pemetaan dari himpunan fuzzy dalam semesta pembicaraan masukan kedalam himpunan fuzzy dalam semesta pembicaraan luaran. Di mana aturan IFTHEN mempunyai bentuk seperti berikut R 1 : IF x1 is X 11 and ...............and x n is X n1 THEN y is Y 1
Dimana X 11 dan Y 1 adalah himpunan fuzzy, x=(x1,x2,…xn)1 Î U dan Y Î V masing-masing adalah variabel linguistik untuk masukan dan keluaran dan
l =
1,2,....M . pratek telah membuktikan bahwa aturan IF-THEN ini memberikan kerangka yang sesuai untuk mengemas pengetahuan pakar. Setiap aturan fuzzy IFTHEN diatas menghasilkan himpunan fuzzy X 11 x X 21 x......x X n1 ® Y 1 dalam ruang U x V. Sistem logika fuzzy murni membentuk bagian paling esensi dari suatu sistem logika fuzzy. Sistem ini merupakan kerangka dasar yang umum dimana informasi dari pakar dikuantitasikan, dan prinsip-prinsip logika fuzzy diterapkan secara sistematik menggunakan informasi linguistik. Kelemahan dari sistem logika fuzzy ini adalah masukan dan keluaran berupa himpunan fuzzy, sementara dalam kebanyakan sistem rekayasa masukan dan kelurannya adalah variabel yang berharga bilangan riil.
Fuzzy Rule Base Himpunan Fuzzy Dalam U
Himpunan Fuzzy Dalam V
Fuzzy Infrence Engine
Gambar 2.3 Konfigurasi Dasar Sistem Logika Fuzzy
Secara umum kontroler logika fuzzy dapat dipandang sebagai sistem kontroler loop tertutup yang memiliki 4 bagian pokok seperti yang ditunjukan oleh Gambar 2.4 keempat bagian tersebut adalah: unit fuzzifikasi, unit basis pengetahuan yang terdiri dari basis data dan basis aturan, unit inferensi fuzzy dan unit defuzzifikasi
Gambar 2.4 Struktur Dasar Kontroler Logika Fuzzy
Keempat bagian tersebut mempunyai fungsi sebagai berikut: 1. Fuzzifikasi berfungsi untuk mentransformasikan sinyal masukan yang bersifat crisp (bukan fuzzy) kehimpunan fuzzy dengan menggunakan operator fuzzifier 2. Basis data dan basis aturan (basis pengetahuan) yang mendefinisikan himpunan fuzzy atas daerah-daerah masukan dan keluaran dan menyusunnya dalam perangkat aturan kontrol. 3. Mekanisme inferensi fuzzy merupakan inti dari kontroler logika fuzzy yang mempunyai kemampuan seperti manusia dalam mengambil keputusan. Unit ini akan mendefinisikan besar derajat keanggotaan dan variabel linguistik dari aksi kendali yang dilakukan untuk masing-masing aturan kontrol berdasarkan fungsi implikasi yang digunakan.
4. Defuzzifikasi berfungsi mentransformasikan kesimpulan yang bersifat fuzzy menjadi sinyal yang sebenarkan yang bersifat crisp dengan menggunakan operator defuzzifikasi
µ(x) 1
µ(x)
a
b
x
c
x
Gambar 2.5 Bentuk Fungsi Keanggotaan Segitiga
2.3.2. Fuzzifikasi Unit fuzzifikasi berfungsi untuk mengubah data crisp keluaran dari plant yang terukur oleh sensor menjadi data fuzzy yaitu berupa derajat keanggotaan dan variabel linguistik. Pada unit fuzzifikasi juga dikenal bentuk fuzzy keanggotaan yaitu fuzzy yang menyatakan tingkat keanggotaan data crisp tertentu terhadap data fuzzy tertentu. Ada berbagai macam bentuk fungsi keanggotaan seperti bentuk trapesiodal, triangular, gausian, segitiga dan lain-lain. Pada tugas akhir ini bentuk fungsi keanggotaan yang digunakan adalah bentuk triangular seperti gambar diatas. Dengan menggunakan persamaan garis lurus sederhana untuk masing-masing daerah maka dapat dihitung derajat keanggotaan (µ(x)) untuk masukan data crisp x pada variabel linguistik A yaitu sebagai berikut: ìx - a ü ïï b - a , untuk a £ x £ bïï vA( x, a, b, c) = í ý ï c - x , untuk b £ x £ c ï ïî c - b ïþ
(2.1)
Jika harga derajat keanggotaan masuk x akan berada pada nilai 0 sampai 1 misal µA(x) = 0,6 yang berarti bahwa data crisp x memiliki derajat keanggotaan sebesr 0,6 untuk variabel lingusitik.
2.3.3. Basis Data Basis data berfungsi untuk mendefinisikan himpunan-himpunan fuzzy dari sinyal masukan dan sinyal keluaran agar dapat digunakan oleh variabel linguistik dengan aturan dasar. Perancangan basis data meliputi tiga pokok yaitu : a. Kuantitasi dan normalisasi b. Pembagian ruang masukan c. Keluaran dan pemilihan fungsi keanggotaan
a. Kuantitasi dan normalisasi Kuantitasi berarti mendiskritkan semesta pembicaraan yang kontiniu kedalam sejumlah segmen-segmen tertentu yang disebut level kuantitasi. Pemberian nomor atau label level-level ini membentuk pendukung himpunan fuzzy secara berhingga atau semesta pembicaraan baru yang bersifat diskrit. Prosedur ini diperlukan bila pendefinisian fungsi keanggotaannya dinyatakan secara numerik. Pendefinisian ini biasanya dinyatakan dalam bentuk tabulasi, yang penerapannya berbentuk suatu tabel pandang (look-up table) Tabel 2.1 menunjukan contoh pendefinisian secara numerik dengan pembagian ruang sebanyak 7 variabel linguistik yaitu negatif besar (NB), negatif sedang(NS), negatif kecil (NK), nol (NL), positif kecil (PK), positif sedang (PS), positif besar (PB).
Tabel 2.1 Kuantitasi dan Pendefinisian Numerik Himpunan Fuzzy Level
Rentang
NB
NS
NK
NL
PK
PS
PB
-6
Xo≤ -3,2
1,0
0,3
0,0
0,0
0,0
0,0
0,0
-5
-3,2≤Xo≤-1,6
0,7
0,7
0,0
0,0
0,0
0,0
0,0
-4
-1,6≤Xo≤-0,8
0,3
1,0
0,3
0,0
0,0
0,0
0,0
-3
-0,8≤Xo≤-0,4
0,0
0,0
0,7
0,0
0,0
0,0
0,0
-2
-0,4≤Xo≤-0,2
0,0
0,0
1,0
0,3
0,0
0,0
0,0
-1
-0,2≤Xo≤-0,1
0,0
0,0
0,7
0,7
0,0
0,0
0,0
0
-0,1≤Xo≤0,1
0,0
0,0
0,3
1,0
0,3
0,0
0,0
1
0,1≤Xo≤0,2
0,0
0,0
0,0
0,7
0,7
0,0
0,0
2
0,2≤Xo≤0,4
0,0
0,0
0,0
0,3
1,0
0,3
0,0
3
0,4≤Xo≤0,8
0,0
0,0
0,0
0,0
0,7
0,7
0,0
4
0,8≤Xo≤1,6
0,0
0,0
0,0
0,0
0,3
1,0
0,3
5
1,6≤Xo≤3,2
0,0
0,0
0,0
0,0
0,0
0,7
0,7
6
3,2≤Xo
0,0
0,0
0,0
0,0
0,0
0,3
1,0
Pada Tabel 2.1 tersebut kuantitasi dilakukan atas daerah kontiniu dengan jumlah 13 level kuantitasi, sehingga diperoleh 13 pendukung yang membentuk semesta pembicaraan baru. Pemilihan jumlah level kuantitasi (pendukung) mempengaruhi kepekaan kontroler logika fuzzy terhadap masukan dan kehalusan aksi atur pada keluaran. Semakin banyak level kuantitasi yang diterapkan pada daerah masukan dan keluaran maka semakin peka kontroler logika fuzzy tersebut dan semakin halus aksi kontrolnya.
b. Pembagian ruang masukan dan keluaran Pendefinisian himpunan fuzzy atas daerah masukan dan keluaran berati pula membagi-bagi semesta pembicaraan atas nilai-nilai variabel linguistik himpunan fuzzy. Nilai-nilai ini dinyatakan dengan seperangkat istilah linguistik seperti NB,NS,NK,NL,PK,PS,PB dan sebagainya. Pembagian ruang masukan dan keluaran ini mentukan berapa banyak jumlah himpunan fuzzy dan aturan kontrolnya yang dapat disusun. Akibatnya secara langsung jumlah himpunan menentukan kehalusan keluaran kontroler logika fuzzy.
c. Pemilihan Fungsi Keanggotaan Pada pendefinisian secara numerik tingkat keanggotaan pendukung dalam himpunan fuzzy dinyatakan dalam bentuk tabulasi seperti yang dicontohkan pada Tabel 2.1. Pembagian ruang dilakukan dengan 7 nilai linguistik himpunan fuzzy yaitu : NB, NS, NK, Z, PK, PM, dan PB, sedangkan fungsi keanggotaan dinyatakan µ(x) ={ 0,3/0,7/ 1/ 0,7/ 0,3} Fungsi keanggotaan dapat dipilih secara bebas dengan menentukan secara sembarang nilai keanggotaanya. Tetapi pada dasarnya penentuan ini harus tetap dapat menggambarkan karakteristik masing-masing himpunan fuzzy. Pada pendefinisian secara fungsional tidak diperlukan pemberian nomor level kuantitasi karena dalam hal ini tidak diperlukan pendukung bersifat diskrit. Pembagian ruang biasanya cukup dengan menentukan titik sumbu simetri dan jangkauan fungsi yang digunakan. Fungsi ini mudah diadaptasi terhadap keadaan semesta pembicaraan dengan cara mengatur parameter rataan yang menentukan titik kerja dan parameter sembarang yang menentukan jangkauan kerja.
2.3.4. Aturan Dasar Sistem fuzzy dikarateristikan oleh istilah-istilah linguistik yang didasarkan pada pengetahuan pakar, dan biasanya berbentuk aturan-aturan jika-maka (IF-THEN), yang disebut aturan kontrol fuzzy. Hal ini mempermudah implementasi bentuk kontrol fuzzy. Seperangkat aturan kontrol fuzzy merupakan penjabaran dari bentuk-bentuk kondisi fuzzy dalam aturan dasar kontrol logika fuzzy. Perancangan perangkat aturan kontrol meliputi :
a.
Pemilihan Variabel Masukan dan Keluaran Pemilihan variabel masukan dan keluaran memberikan pengaruh kuat pada
karakteristik kontroler. Dalam hal ini pengetahuan dan pengalaman rekayasa memainkan peranan penting. Pemilihan variabel ini memerlukan pemahaman perilaku plant dan perilaku pengaturannya. Secara umum sebagaimana kontroler konvensional error dan perubahan error dari plant tetap menjadi acuan utama bagi aturan kontrol logika fuzzy untuk menghasilkan sinyal atur. Kontroler logika fuzzy biasanya menggunakan variabel masukan berupa error dan perubahan error, sedangkan keluaran atau aksi aturnya berupa sinyal atur atau perubahan sinyal atur.
b.
Penurunan Aturan Kontrol Fuzzy Salah
satu
cara
menurunkan
aturan
mengumpulkan aturan-aturan kontrol fuzzy
kontrol
fuzzy
adalah
yang dibentuk dari analisa
dengan perilaku
obyek atur secara heuristik. Aturan kontrol diturunkan dengan jalan mengoreksi simpangan keluaran plant dari keadaan yang diinginkan. Penurunan benar-benar dilakukan secara heuristik dengan mengandalkan pengetahuan kualitatif. Hasil yang diperoleh akan berupa prototipe aturan kontrol secara garis besar. Sehingga hasilnya masih perlu disempurnakan. Adapun beberapa metode yang dapat digunakan untuk menyempurnakan prototipe aturan kontrol itu. King dan mamdani (1977) mengusulkan metode penyempurnaan aturan kontrol dengan cara yang disebut pemetaan skala (scale Mappings). Prinsipnya adalah menentukan sinyal atur sedemikian rupa sehingga trayektori sistem loop tertutup berakhir di keadaan yang diinginkan. Dalam hal ini pengetahuan tentang perilaku peralihan plant, seperti lewatan (maximum overshoot),
Waktu naik (rise time), dan sebagainya, serta intuisi tentang perilaku sistem tertutup diperlukan. Gambar 2.6 menunjukan tanggapan plant loop tertutup terhadap variabel masukan plant. Dalam hal ini ada dua variabel masukan kontroler logika fuzzy yang dapat digunakan yaitu error (e) dan perubahan error (De). untuk memperjelas trayekori dapat digunakan grafik yang menyatakan hubugan antara error (e) dan perubahan error (De), sedangkan variabel keluaran kontroler logika fuzzy berupa sinyal atur dan perubahan sinyal atur.
Gambar 2.6 Tanggapan Plant Loop Tertutup Terhadap Variabel Masukan Plant
Pada penurunan prototipe ini pembagian ruang masukan adalah 3, yang berarti ada 3 nilai linguistik yaitu positif (P), negatif (N), dan NOL (NL). Peninjauan kualitatif pertitik pada grafik memberikan penalaran yang menghasilkan prototipe aturan kontrol pada Table 2.2.
Tabel 2.2 Prototipe Aturan Kontrol Linguistik dengan 3 Nilai Aturan
De
E
U
Titik
No
Referensi NL P
a,e,i
1
P
2
NL N
3
N
4
NL P
5
NL NL NL set point
N
b,f,j
NL N
c,g,k
P
d,h,l
Tabel 2.3. Penyempurnaan Aturan Kontrol dengan 3 Nilai Aturan e
De U
Titik referensi
No 6
P
N
P
1(rise time),5
7
N N
N
2(overshoot),6
8
N P
N
3,7
9
P
P
P
4,8
10
P
N
NL 9
11
N P
NL 10
Sedangkan peninjauan secara kualitatif perdaerah (bertanda angka) pada grafik tanggapan maupun pada bidang fasa menunjukkan bahwa daerah 1 mempunyai pengaruh pada pengurangan waktu naik (rise time), dan daerah 2 berhubungan dengan pengurangan lewatan (overshoot), secara heuristik penalaran ini memberikan penambahan atau penyempunaan aturan kontrol seperti pada Tabel 2.3.
Tabel 2.4 Prototipe Aturan Kontrol dengan 7 Nilai Aturan E
De
u
TitikReferensi
No 1
PB
NL PB
A
2
PS
NL PS
E
3
PK
NL PK
I
4
NL
NB NB B
5
NL
NS
6
NL
NK NK J
7
NB NL NB C
8
NS
9
NK NL NK K
10
NL
PB
PB
D
11
NL
PS
PS
H
12
NL
PK
PK
L
13
NL
NL NL
Set point
14
PB
NK PS
1
15
PK
NB NS
1
16
NB PS
NS
3
17
NS
PB
PS
3
18
PK
NK NL
9
19
NK PK
NS
NL NS
NL
F
G
11
Kinerja yang lebih baik dapat diperoleh dengan pembagian ruang yang lebih banyak, misalnya 7 nilai yaitu NB,NS,NK,NL,PK,PS dan PB. Pembagian ruang dengan 7 nilai sering digunakan pada perancangan kontrol logika fuzzy, karena
pembagian ruang tersebut sudah dapat mewakili ruang keseluruhan dan diperoleh hasil yang baik. Prototipe dan penyempurnaan berturut-turut ditunjukan pada Tabel 2.3 dan Tabel 2.4 secara langsung pembagian ruang masukan mempengaruhi jumlah aturan kontrol yang dihasilkan. Pada kasus sistim MISO (multi input single output), jumlah aturan kontrol yang dihasilkan adalah 7 x 7 aturan kontrol. Hasil yang diperoleh dari penyempurnaan aturan kontrol tersebut dapat dibuat aturan kontrol yang lengkap untuk sistem MISO maupun MIMO. Macvicar-whealan yang meneliti masalah penyempurnaan aturan kontrol ini menemukan pola umum hubungan antara e, De dan u Du.
Tabel 2.5 Keputusan Aturan Kontrol Fuzzy MacVicar-Whelan E
NB
NS
NK
NL
PK
PS
PB
NB
NB
NB
NB
NB
NS
NK
NL
BS
NB
NB
NB
NS
NK
NL
PK
BK
NB
NB
NS
NK
NL
PK
PS
NL
NB
NS
NK
NL
PK
PS
PB
PK
NS
NK
NL
PK
PS
PB
PB
PS
NK
NL
PK
PS
PB
PB
PB
PB
NL
PK
PS
PB
PB
PB
PB
De
Penurunan secara lengkap aturan kontrol ini memberikan tabel keputusan sinyal atur yang disebut tabel keputusan MacVicar-Healan. Tabel ini memberikan jumlah aturan kontrol secara maksimum. Pola ini berlaku bagi kontrol logika fuzzy yang menggunakan masukan error dan perubahan error. Modifikasi pada tabel ini untuk memperbaiki kinerja dapat dilakukan pada batasan-batasan tertentu. Tabel 2.5 menunjukan aturan kontrol fuzzy secara lengkap.
2.3.5. Metode Defuzifikasi Yang sering dipakai dalam kontroler fuzzy adalah metode center of area (COA) atau sering disebut center of gravity (COG), serta Metoda Mean of Maximum (MOM) yaitu solusi fuzzy dengan cara mengambil rata-rata nilai maximum daerah fuzzy. . Metode COG secara diskrit ini valid untuk bentuk fungsi keanggotaan yang simetris dimana dapat dilihat pada Gambar 2.7.
r
Zo =
åa
k
zk
k =1 r
åa
(2.2) k
k =1
αk
: adalah faktor pembobot
Zo
: aksi kontrol berupa data crisp yang diberikan ke proses
Zk
: nilai keluaran crisp tiap aturan
Gambar 2.7 Proses Defuzzifikasi Metode COG
dimana Zo adalah aksi kontrol berupa daerah crisp yang diberikan ke proses dan zk adalah nilai keluaran crisp tiap aturan. Dari hasil penelitian yang dilakukan braae dan rutherford (1979) menunjukan hasil strategi MOM mempunyai kinerja yang baik pada tanggapan peralihannya (respon transient), sedangkan hasil strategi COA mempunyai kinerja yang baik pada keadaan tunaknya (stedy state).
Dengan menggunakan keunggulan masing-masing, bila menggunakan hasil strategi MOM, kinerja KLF cocok untuk digunakan pada sistem relay multilevel (multilevel relay system), sedangkan hasil strategi COA cocok dengan kontroler konvensional PI. KLF yang didasari COA umumnya mempunyai mean square error lebih kecil dibanding dengan MOM.
2.4. Mikrokontroller ATMEGA8535 Dengan perkembangan teknologi dan ilmu pengetahuan yang maju pesat pada saat ini menghasilkan penemuan-penemuan baru di bidang mikroelektronika. Salah satu produk mikroelektronika yang sekarang banyak digunakan yaitu mikrokontroller, yang banyak kita temukan pemakaiannya di bidang otomasi industri, robotika, dan peralatan rumah tangga seperti televisi, mesin cuci, microwave dan lain-lain. Mikrokontroller yang sekarang banyak digunakan adalah generasi
AVR,
AVR adalah mikrokontroller RISC (Reduce Instruction Set Compute) 8 bit berdasarkan arsitektur Harvard, yang dibuat oleh Atmel pada tahun 1996. AVR mempunyai kepanjangan Advanced Versatile RISC atau Alf and Vegard’s Risc processor yang berasal dari nama dua mahasiswa Norwegian Institute of Technology (NTH), yaitu Alf-Egil Bogen dan Vegard Wollan. Mikrokontroler AVR memiliki asrsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16 bit ( 16 bits word) dan sebagian besar instruksi dieksekusi dalam satu siklus clock. Berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock, Hal ini bisa terjadi karena arsitektur kedua mikrokonroller berbeda, AVR berteknologi RISC sedangkan seri MCS51 berteknologi CISC(Complex Instruction Set Computing). Secara umum AVR dapat dikelompokan menjadi 4 golongan, yaitu: keluarga Attiny, AT90Sxx, ATMEGA dan AT86RFxx. Yang membedakan masingmasing golongan adalah
kapasitas memori, peripheral, dan fungsinya. Dari segi
arsitektur dan isntruksi yang digunakan hampir sama. ATMEGA8535 adalah AVR produk Atmel yang harganya relatif murah dan mudah didapatkan dipasaran dan memiliki fasilitas yang lengkap. Fitur yang terdapat dalam ATMEGA8535 : 1. Sistem mikroprocessor 8 bit berbasi RISC dengan kecepatan maksimal 16 MHz.
2. kapasitas memori flash 8KB, SRAM 512 byte dan EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte. 3. ADC internal dengan fidelitas 10 bit sebanyak 8 chanel. 4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2.5Mbps. 5. Enam pilihan mode sleep menghemat penggunaan daya listrik.
2.4.1. Konfigurasi Pin ATMEGA8535 Mikrokontroller ATMEGA8535 dengan kemasan DIP (Dual In-line Package) memiliki 40 pin, seperti pada Gambar 2.8 dibawah ini.
Gambar 2.8 Pin ATMEGA8535
Konfigurasi pin ATMEGA8535 seperti pada Gambar 2.8. Dari gambar tersebut dapat dijelaskan secara fungsional konfigurasi pin ATMEGA8535 sebagai berikut : 1. VCC merupakan pin yang berfungsi sebagai pin masukan catu daya. 2. GND merupakan pin ground. 3. Port.A(PA.0..PA.7) merupakan I/O(Input Output) dua arah dan pin masukan ADC( analog to digital converter). 4. Port.B(P.B0..P.B.7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu timer/counter, komparator analog, dan SPI(Serial Pheripheral Interface). 5. Port.C(P.C0..PC.7) merupakan pin I/O dua arah dan fungsi pin khusus, yaitu TWI(Two-Wire Serial Interface), komparator analog, dan timer oscilator.
6. Port.D(P.D0..PD.7) merupakan pin I/O dua arah dan pin fungsi khusus, yaitu komparator analog, interupsi eksternal, dan komunikasi serial. 7. RESET meupakan pin yang digunakan untuk me-reset mikrokontroller. 8. XTAL1 dan XTAL2 meupaka pin masukan clock eksternal. 9. AVCC merupakan pin masukan tegangan untuk ADC. 10. AREF merupakan pin masukan tegangan referensi ADC.
2.4.2. Arsitektur ATMEGA8535 Blok diagram mikrokontroler ATMEGA8535 digambarkan seperti pada gambar 2.9. Dari gambar 2.9 dapat dilihat bahwa ATMEGA855 memiliki bagian sebagai berikut : 1. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C, dan Port D. 2. ADC 10 bit sebanyak 8 saluran. 3. Tiga buah timer/counter dengan kemampuan pembandingan. 4. CPU(Central Processing Unit) yang terdiri dari 32 buah register. 5. Watchdog timer dengan osilator internal. 6. SRAM sebesar 512byte. 7. Memori flash sebesar 8 Kb dengan kemampuan Read While Write. 8. Unit interupsi internal dan eksternal. 9. port antarmuka SPI. 10. EEPROM sebesar 512 byte yang dapat diprogram saat operasi. 11. Antarmuka komparator analog. 12. Port USART (Universal Synchronous Asynchronous Receiver/Transmitter) untuk komuikasi serial.
Gambar 2.9 Blok Diagram ATMEGA8535
2.5. Driver Motor L293D L293D merupakan IC penguat motor yang praktis dan umum digunakan untuk motor DC berukuran kecil, arus maksimal yang diahsilkan sebesar 600mA. Selain itu L293D mampu menjalankan beban induktif seperti relay, selenoid, maupun motor stepper. Blok diagram L293D dapat dilihat pada gambar 2.10.
Gambar 2.10 Blok Diagram L293D
L293D mempunyai 16 kaki dengan fungsi yang berbeda-beda. Kaki-kaki output yang dihubungkan ke motor DC adalah kaki 3, 6, 11 dan 14. Kaki 3 dan kaki 6 dihubungkan ke sebuah motor DC, sedangkan kaki 11 dan kaki 14 dihubungkan ke sebuah motor DC yang lain. Arah putaran motor DC dapat diatur dengan cara memberikan kondisi berbeda pada kaki yang berpasangan. Satu buah L293D dapat mengontrol dua buah motor DC. Skematik pemakaian L293D yang digunakan untuk mengendalikan dua buah motor DC dapat dilihat pada gambar 2.11.
Gambar 2.11 Skematik pengendalian dua buah motor DC
Tabel 2.6 Tabel Kebenaran L293D untuk satu kanal
2.6. Sensor Ultrasonik Gelombang ultrasonik adalah gelombang dengan besar frekuensi diatas frekuensi gelombang suara yaitu lebih dari 20 KHz. Sensor ultrasonik terdiri dari rangkaian pemancar ultrasonik yang disebut transmitter dan rangkaian penerima ultrasonik yang disebut receiver.
Gambar 2.12 Prinsip Kerja Sensor Ultrasonik
Sinyal ultrasonik yang dibangkitkan akan dipancarkan dari transmitter ultrasonik dengan kecepatan 344,424m/detik. Ketika sinyal mengenai benda penghalang, maka sinyal ini dipantulkan, dan diterima oleh receiver ultrasonik. Lamanya waktu dari pengiriman dan penerimaan sinyal dijadikan variabel untuk menghitung panjangnya jarak antara sensor dengan dinding penghalang , yaitu dengan mengalikan kecepatan sinyal dengan lamanya waktu dari pengiriman dan penerimaan kemudian di bagi dua (344.42m/detik x t detik)/2.
Gambar 2.13 Rangkaian Transmitter Ultrasonik
Gambar 2.14 Rangkaian Receiver Ultrasonik
2.7. Motor DC Motor adalah suatu mesin listrik yang mengubah energi listrik menjadi energi mekanik. Pada umumnya motor arus searah terdiri dari tiga bagian utama yaitu: -
Bagian yang diam disebut dengan stator
-
Bagian yang berputar disebut dengan rotor
-
Komutator dan sikat arang Stator merupakan magnet permanen yang melekat pada lingkaran paling luar.
Sedangkan rotor yang berhimpit dengan stator. Komutator ikut berputar dengan rotor yang berfungsi sebagai pengatur polaritas tegangan yang masuk ke rotor agar motor tetap berputar. Prinsip kerja motor DC dapat dilihat pada gambar 2.15.
Gambar 2.15 Cara kerja Motor DC
Motor DC pada umumnya berputar searah jarum jam, tetapi dapat juga berputar berlawanan arah jarum jam. Pemasangan yang tidak sesuai antara terminal positif dan negatif dapat menyebabkan motor berputar berlawanan. Pemasangan terminal positif dan negatif dapat dilihat pada gambar 2.16. Motor DC yang digunakan pada mainan anak-anak umumnya mempunyai tegangan 5V, 12V, 24V dan 48V. Sedangkan motor DC yang digunakan untuk aplikasi industri umumnya mempunyai tegangan 90V, 180V dan 250V
Gambar 2.16 Bentuk Motor DC dan Pemasangan terminal positif dan negatif
Secara garis besar prinsip kerja motor dc adalah melewatkan arus listrik melalui kumparan yang diletakkan pada medan magnet. Kejadian ini akan menimbulkan gaya Lorenz pada kumparan. Gaya tersebut menghasilkan torsi yang digunakan untuk memutar rotor motor dc. Arah putaran motor dc, tergantung pada arah listrik yang dilewatkan pada kumparan. Bila arah arus listrik dibalik, maka arah putaran rotor juga akan berbalik. Besarnya torsi yang dihasilkan motor dc tergantung pada besarnya arus yang dilewatkan pada kumparan. Semakin besar arus mengalir akan mengakibatkan semakin besar gaya F yang dihasilkan.
BAB III PERANCANGAN DAN REALISASI
Dalam bab ini akan dibahas perancangan perangkat keras dan perangkat lunak dari sistem kendali kecepatan robot beroda menggunakan fuzzy logic. Serta latar belakang pemilihan konfigurasi sistem tersebut. Hal ini bertujuan agar robot beroda yang dibuat dapat bekerja dengan baik sesuai yg diharapkan. Oleh karena itu dalam perancangan sistem ini, dilakukan dengan memperhatikan aspek-aspek perancangan. Aspek-aspek tersebut adalah penentuan rangkaian dan perangkat lunak, pemilihan komponen, kemudahan pengoperasian serta kemungkinan-kemungkinan untuk pengembangannya. Dalam perealisasian sistem ini diperlukan pembuatan perangkat keras meliputi: Sistem minimum mikrokontroler ATMEGA8535, rangkaian driver motor DC, serta rangkaian sensor pendeteksi jarak. Pada bagian perancangan perangkat lunak
meliputi perencanaan algoritma kontroller, pembacaan data dari sensor,
pengolahan data untuk pengendalian dengan menggunakan metoda fuzzy logic serta pengiriman data pengendalian ke driver motor DC.
3.1 Blok Diagram Robot Beroda Blok diagram robot beroda digambarkan pada gambar 3.1 dibawah ini.
Gambar 3.1 Diagram Blok Kendali kecepatan Robot Beroda
Robot beroda yang dirancang menggunakan motor DC sebagai pengerak dan sensor ultrasonik untuk mengukur jarak antara robot dengan penghalang. Fuzzy logic yang dirancang mempunyai 2 masukan (Jarak,∆Jarak) dan 1 keluaran (output). Membership function masukan mempunyai 3 label linguistik dengan 9 if-then rule. Signal penggerak motor memanfaatkan fitur PWM (pulse wide modulation) yang terdapat pada mikrokontroler ATMEGA8535.
3.2 Rangkaian Perangkat Keras Perancangan perangkat keras meliputi: Sistem minimum mikrokontroler AT MEGA8535, rangkaian sensor ultrasonik serta rangkaian driver motor .
3.2.1 Rangkaian Sistem Minimum ATMEGA8535 Mikrokontroler berfungsi sebagai pengendali utama yang mengolah data dari sensor ultrasonik yg dihuhubungkan ke port A.7. Data dari sensor dijadikan parameter untuk melakukan pengendalian motor DC dengan fuzzy logic sehingga menghasilkan nilai PWM (Pulse Wide Modulation) yg diinginkan. Fitur PWM pada ATMEGA8535 terdapat pada port D.4 dan port D.5, port ini dihubungkan dengan pin 1 dan 9 IC L293D untuk mengatur kecepatan motor DC. Sedangkan untuk mengendalikan arah putaran motor DC digunakan port C.0, port C.1, port C.3 dan port C.4 yg dihubungkan ke pin 2,7,10 dan 15 IC L2936D.
Gambar 3.2 Sistem Minimum AT Mega 8535
3.2.2 Rangkaian Sensor Ultrasonik Sistem pendeteksi dinding pada robot ini menggunakan sensor ultrasonik. Prinsip kerja echo sounder untuk pengukuran jarak digambarkan dalam Pulsa Ultrasonik. Pulsa Ultrasonik merupakan sinyal ultrasonik dengan frekwensi ± 41 KHz sebanyak 12 periode, dikirimkan dari pemancar ultrasonik. Ketika pulsa mengenai benda penghalang, pulsa ini dipantulkan, dan diterima kembali oleh penerima ultrasonik. Dengan mengukur selang waktu antara saat pulsa dikirim dan pulsa pantul diterima, jarak antara alat pengukur dan benda penghalang bisa dihitung.
Gambar 3.3 Prinsip Echo Sounder
Gambar 3.4 Rangkaian Antaramuka Ultrasonik
3.2.3 Rangkaian Driver Motor DC IC L293D berisi empat buah push-pull, setiap dua buah push-pull dapat digunakan sebagai sebuah untai H-brige dan dapat diaktifkan dengan sebuah sinyal enable. IC L293D digunakan sebagai pembalik arah putaran motor DC dengan cara memberikan kondisi yang berbeda pada kaki-kaki input. Apabila kondisi di kaki-kaki input sama maka motor DC tidak dapat berputar. Untuk mengendalikan kecepatan motor DC setiap kaki enable diberikan sinyal PWM sehingga kecepatannya tergantung dari nilai PWM yang diberikan. Skematis rangkaian driver motor DC dapat dilihat pada gambar 3.8.
Gambar 3.5 Skematis rangkaian driver motor DC
Satu buah L293D dapat memutarkan dua buah motor DC. Kaki L293D yang dihubungkan ke motor DC adalah kaki output. Tegangan output rangkaian akan tetap stabil. Tegangan input rangkaian ini adalah 5 V.
3.3 Perancangan Perangkat Lunak Perancangan perangkat lunak pada robot beroda ini terdiri dari perancangan perangkat lunak untuk mikrokontroler yang menggunakan CAVR (Code Vision AVR) serta perancangan logika kontrol fuzzy logic.
3.3.1 Perancangan Program Mikrokontroler Dengan Code Vision AVR Perancangan program menggunakan CAVR ini mengikuti diagram alir pada gambar 3.6, sehingga robot beroda dapat befungsi seperti yang diinginkan yaitu dapat mengatur kecepatan tergantung dari jarak dan delta jarak yang dibaca oleh sesnor ultrasonik.
Gambar 3.6 Diagram Alir Robot Beroda
Mikokontroller akan membaca data yg dihasilkan sensor ultrasonik, kemudian data tersebut dijadikan input data untuk menghitung nilai jarak antara robot dengan dinding penghalang sehingga akan diketahui nilai perbandingan jarak hasil pengukuran sekarang dengan pengukuran sebelumnya. Nilai tersebut kemudian dihitung menggunakan metoda fuzzy logic sehingga kecepatan roda berbanding lurus dengan nilai jarak robot dengan dinding yaitu dengan cara mengatur nilai PWM yang diberikan ke driver motor DC.
3.3.2 Perancangan Kontrol Fuzzy Logic Struktur sederhana dari pengendali fuzzy logic secara umum terdiri dari: 1.
Unit fuzzyfikasi
2.
Basis data aturan
3.
Mekanisme reasoning
4.
Unit defuzzyfikasi
Gambar 3.7 Pengendali Fuzzy Logic
3.3.2.1 Fuzzyfikasi Fungsi yang digunakan adalah fungsi segitiga
Gambar 3.8 Fungsi Segi Tiga
u= 0
untuk x
u=
x- A B- A
untuk A≤ x ≤ B
u=
C-x C-B
untuk B≤ x ≤ C
u= 0
untuk x > C
Membership function mempunyai tiga label linguistik. Untuk jarak yaitu Dekat, Sedang dan Jauh sedangkan untuk delta jarak yaitu kecil sedang dan besar.
Gambar 3.9 Membership Function
Nilai untuk setiap label linguistik jarak yaitu: 1. Dekat : nilai input crisp 0-120 centimeter 2. Sedang : nilai input crisp 120-240 centimeter 3. Jauh : nilai input crisp lebih dari 240 centimeter
Nilai untuk setiap label linguistik delta jarak yaitu: 1. Kecil : nilai input crisp 0-15 centimeter 2. Sedang : nilai input crisp 15-35 centimeter 3. Jauh : nilai input crisp lebih dari 35 centimeter
3.3.2.2 Basis Data Aturan Aturan yang digunakan terdiri dari 9 aturan seperti pada tabel 3.1
Tabel 3.1 Rule base
3.3.2.3 Mekanisme Reasoning Untuk memperoleh nilai himpunan fuzzy logic digunakan fungsi implikasi dengan mengambil data nilai minimum dari aturan , yaitu metoda Min-Max atau metoda Mamdani.
3.3.2.4 Defuzzyfikasi Defuzzyfikasi yang dipakai menggunakan metoda Center of Area (COA) karena memilki mean square error yang kecil dan mempunyai kinerja yang baik pada keadaan steady state. Dengan fungsi singletons sebagai berikut:
Gambar 3.10 COA PWM
BAB IV PENGUJIAN DAN ANALISA
Pengujian yang dilakukan pada dasarnya untuk membandingkan hasil realisasi dengan spesifikasi yang diharapkan apakah tercapai atau tidak . Dengan adanya data hasil pengujian dapat dijadikan dasar untuk menganalisa serta menentukan kesalahan apabila pada waku tertentu terjadi kerusakan pada alat tersebut. Metoda pengujian yang digunakan adalah dengan cara mengukur tiap-tiap blok rangkaian robot beroda. Dengan demikian akan di peroleh kesesuaian input/output antara blok yang satu dengan blok yang lainnya. Sehingga sistem yang diinginkan dapat tercapai.
4.1 Pengujian Power Supply Supaya sistem minimum mikrokontroler ATMEGA8535 berjalan dengan baik maka dibutuhkan power suplly yang stabil dan nilainya sesuai dengan spesifikasi yang diperlukan. LM7805 akan mengatur nilai tegangan yang stabil ke mikrokontroler sebesar 5 volt. Pengujian power supply dilakukan dengan mengukur nilai tegangan output dari regulator tegangan LM7805.
Gambar 4.1 Pengujian Power supply
Tabel 4.1 Hasil Uji Power Supply
Dari hasil pengukuran tegangan output dari IC regulator LM7805 mempunyai persentase error sebesar 0.32, nilai ini sangat kecil masih dalam batas toleransi. Serta nilai tegangan yang dihasilkan sesuai dengan nilai tegangan VCC yang dibutuhkan mikrokontroler ATMEGA8535 yaitu antara 2,7 Volt sampai dengan 6 Volt.
4.2 Pengujian Mikrokontroler ATMEGA 8535 Pengujian dilakukan dengan membuat program untuk menyalakan LED (light Emiting Dioda). pada semua port mikrokontroler ATMEGA8535. Mikrokontroler ini menggunakan frekuensi kristal sebesar 11.0592 MHz. Listing program pada gambar 4.2 didownload ke sistem minimum mikrokontroler ATMEGA8535 menggunakan port pararel komputer. Setelah itu sistem mikrokontroler dihidupkan dan semua port yang ada di mikrkontroller menyalakan led yang terhubung kemasing-masing port, led menyala bergantian selama dua detik dari port A sampai port D.
Tabel 4.2 Hasil Uji Port mikrokontroler
Gambar 4.2 Listing Program Tes Port mikrokontroler
Dari hasil pengujian tersebut sistem minimum mikrokontroler ATMEGA8535 berjalan dengan baik, yaitu menyalakan LED dua detik secara bergantian pada masing-masing port mikrokontroler.
4.3
Pengujian Rangkaian Sensor Ultrasonik Untuk mengetahui apakah rangkain ultrasonik berfungsi dengan baik atau
tidak yaitu dengan melakukan pengujian terhadap perubahan reaksi pada sensor ultrasonik jika sensor tersebut terhalang suatu bidang datar. Pengujian ini dilakukan dengan cara membuat program sederhana pada mikrokontroler yg telah dihubungkan dengan sebuah LED. Apabila sensor tersebut terhalang bidang datar pada jarak tertentu maka LED yang dihubungkan ke mikrokontroler akan menyala. Jarak ketika LED menyala dibandingkan dengan nilai jarak yang ditentukan dalam program yang telah dibuat.
ULTRASONIK
MIKROKONTROLER
LED
Gambar 4.3 Blok diagram pengujian sensor ultrasonik
Tabel 4.3 Hasil Uji Sensor Ultrasonik
Dari hasil pengukuran ada perbedaan antara nilai jarak yang dibaca sensor dengan jarak aktual antara sensor dengan dinding penghalang, dengan nilai rata-rata perbedaan 0,53%. Hal tersebut disebabkan oleh pengaruh suhu udara yang ada, karena suhu udara mempengaruhi cepat rambat gelombang suara sensor ultrasonik.
4..4 Pengujian Rangkaian Driver Motor DC Pengujian rangkaian driver motor DC dilakukan pada dua buah motor DC yang dihubungkan ke IC L293D dan mikrokontroler. Mikrokontroler ATMEGA8535 digunakan untuk memberikan kondisi high atau low pada kaki input L293D.
Gambar 4.4 Skematik Rangkaian Driver motor DC
Pengujian pertama dilakukan untuk mengatur arah putaran yang sama antara dua buah motor DC. Mikrokontroler ATMEGA8535 memberi sinyal digital berharga 1 (high) dan sinyal digital berharga 0 (low) ke kaki input L293D. Sinyal digital berharga high diberikan ke kaki input-1 dan kaki input-4 L293D. Sinyal digital berharga low diberikan ke kaki input-2 dan kaki input-3 L293D. Variasi pemberian sinyal seperti ini menyebabkan ke dua buah motor DC berputar dengan arah putaran yang sama. Pengujian kedua dilakukan untuk mengatur arah putaran yang berlawanan antara dua buah motor DC. Sinyal digital berharga high diberikan pada kaki input-2 dan kaki input-3 L293D. Sinyal digital berharga low diberikan pada kaki input-1 dan kaki input-4. Variasi pemberian sinyal seperti ini menyebabkan ke dua buah motor DC berputar dengan arah putaran yang berlawanan. Hasil dari pengujian driver motor DC dapat dilihat pada tabel 4.4 dibawah ini.
Tabel 4.4 Hasil Gerak Motor DC Setelah Diberikan Tegangan Sebesar 5 V
4..5 Pengujian Robot Beroda Pengujian robot beroda ini dilakukan untuk mengetahui apakah robot ini berfungsi sesuai dengan kondisi yang diharapkan. Pengujian dilakukan dengan membuat ruangan berukuran 2X2 meter sebagai tempat robot bergerak. Pada saat start robot akan membaca jarak robot dengan dinding sehingga robot dapat mengatur kecepatan rodanya dengan mengatur nilai PWM. Dari hasil pengujian robot bergerak dengan kecepatan yang berubah, semakin dekat robot dengan dinding semakin lambat kecepatannya dan semakin cepat untuk kondisi sebaliknya.
(a)
(b)
(c)
Gambar 4.5 Gambar 4.5 Robot Beroda: (a) Tampak Depan (b) Tampak Samping, (c) Tampak Belakang
Ketika robot bergerak maju kondisi robot tidak lurus simetris hal ini dikarenakan spesifikasi kedua motor DC berbeda walaupun dengan merek sama, hal ini bisa disiasati dengan memberikan nilai PWM yang berbeda bagi kedua motor DC. Pada program yang dibuat, roda robot akan berhenti dan belok kanan pada jarak 20 cm tetapi pada kenyataanya robot berhenti pada jarak 10 cm, hal ini terjadi karena robot tidak menggunakan sistem pengereman sehingga roda motor akan tetap bergerak sampai gaya geraknya nol. Hal tersebut sesuai dengan hukum newton yaitu bahwa benda bergerak akan cenderung terus bergerak.
BAB V PENUTUP
5.1 Kesimpulan Setelah melakukan perancangan , realisasi, pengukuran, dan analisa sistem, dapa disimpulkan bahwa : 1. Penggunaan IC regulator LM7805 untuk menstabilkan tegangan yang masuk kerangakaian sistem mikrokontroller, sensor dan driver motor DC membuat setiap rangkaian dapat bekerja dengan baik karena supply tegangan yang diberikan stabil dan sesuai dengan spesifikasi tegangan yang dibutuhkan. 2. Sensor ultrasonik digunakan untuk mengukur jarak antara robot dengan dinding. Lebar jarak pulsa antara pengiriman dan penerimaan dijadikan indikator untuk menghitung jarak antara robot dengan dinding penghalang, dengan range jarak 2 cm- 300 cm. Suhu udara mempengaruhi kepresisian sensor, karena semakin panas udara sekitar mengakibatkan cepat rambat gelombang suara menurun. 3. IC L293D adalah driver motor yang dapat mengendalikan 2 buah motor DC karena berisi 4 buah push pull. Tetapi hanya dapat digunakan untuk mengendalikan motor DC yang berukuran kecil dengan arus maksimal yang diberikan 600mA. 4. Sistem Mikrokontroller ATMEGA8535 digunakan sebagai pengontrol utama . Sehingga robot dapat membaca sinyal dari sensor ultrasonik dan mengendalikan kecepatan rodanya dengan mengatur nilai PWM yang diberikan berdasarkan sistem kendali fuzzy logic. 5. Fuzzy logic yang dirancang mempunyai 2 masukan (Jarak,∆Jarak) dan 1 keluaran (output). Membership function masukan mempunyai 3 label linguistik dengan 9 if-then rule. Signal penggerak motor memanfaatkan fitur PWM yang terdapat pada mikrokontroler ATMEGA 8535. 6. Kecepatan torsi roda kanan dan roda kiri robot berbeda, hal ini terjadi karena spesifikasi motor DC berbeda walaupun masih satu jenis dan satu brand. Untuk mengatasi masalah ini dilakukan pengaturan nilai PWM yang berbeda untuk kedua motor DC. Secara keseluruhan robot beroda ini dapat bekerja dengan baik, kecepatan rodanya disesuaikan dengan jarak dinding dengan robot.
5.2 Saran Untuk lebih meningkatkan kinerja robot beroda yang dibuat pada tugas akhir ini, diperlukan penyempurnaan, dan pengembangan lebih lanjut. Sehingga penulis memberikan saran-saran berikut : 6. Supaya pengendalian fuzzy logic yang lebih halus maka diperlukan penambahan memory external untuk membuat program dengan jumlah label linguistik, jumlah basis data dan aturan dasar fuzzy yang lebih banyak. 7. Menambah jumlah sensor di setiap sisi robot, untuk mendeteksi jarak dinding samping robot. Sehingga selain kecepatannya rodanya bisa dikendalikan robot juga dapat bergerak mengikuti arah dinding. 8. Supaya pergerakan robot lurus simetris maka diperlukan penambahan titik acuan untuk mengatur nilai PWM yang lebih tepat. Seperti dengan menambah sensor untuk mengukur jarak dengan dinding yang dipasang disetiap sisi robot.
DAFTAR PUSTAKA
Lingga Wardhana, Belajar Sendiri mikrokontroler AVR Seri ATMEGA8535. Yogyakarta : Andi Offset, 2006.
Heri Andrianto. Pemograman Mikrokontroler ATMEGA16 Menggunakan Bahasa C(code Vision AVR). Bandung: Informatika, 2008.
Setiadji. Himpunan& Logika Samar serta Aplikasinya. Yogyakarta: Graha Ilmu, 2009.
Abdul Kadir. Pemograman Dasar Turbo C Untuk IBM PC. Yogyakarta: Andi Offset, 1997.
Andi Adriansyah. Modul Mata Kuliah Mekatronika : Jakarta: UMB.
Lampiran-Lampiran
Listing Program
/***************************************************** This program was produced by the CodeWizardAVR V1.24.8d Professional Automatic Program Generator © Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 07/02/2009 Author : F4CG Company : F4CG Comments:
Chip type : ATmega8535 Program type : Application Clock frequency : 11,059200 MHz Memory model : Small External SRAM size : 0 Data Stack size : 128 *****************************************************/ #include <mega8535.h> #include <motor.h> #include <delay.h> #include <math.h> // Timer 1 output compare A interrupt service routine interrupt [TIM1_COMPA] void timer1_compa_isr(void) { // Place your code here } // Timer 1 output compare B interrupt service routine interrupt [TIM1_COMPB] void timer1_compb_isr(void) { // Place your code here } // Declare your global variables here #define SigOut PORTA.7 #define SigIn PINA.7 #define DirSig DDRA.7 float jarak[1],delta_jarak[1],jarak0[1],pwm[1],DK[1],DS[1],DB[1],SK[1],SS[1],SB[1],JK[ 1],JS[1],JB[1],X1[1],X2[1],X3[1],Y1[1],Y2[1],Y3[1]; unsigned int buffer;
void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTA=0x00; DDRA=0xFF; // Port B initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTB=0x00; DDRB=0xFF; // Port C initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTC=0x00; DDRC=0xFF; // Port D initialization // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 PORTD=0x00; DDRD=0xFF; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 11059,200 kHz // Mode: Ph. correct PWM top=00FFh // OC1A output: Non-Inv. // OC1B output: Non-Inv. // Noise Canceler: Off // Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: On // Compare B Match Interrupt: On TCCR1A=0xA1; TCCR1B=0x01; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x18; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // Global enable interrupts #asm("sei") //buffer[0]=0; OCR1AL=0xD2; OCR1BL=0xD0; jarak0[0]=200; while (1) { // Place your code here
buffer=0; jarak[0]=0; baca(); delta_jarak[0]=jarak0[0]-jarak[0]; hitung(); bedajarak(); kecepatan(); if(jarak[0]<=20) { OCR1AL=220; OCR1BL=220; belok_kanan(); delay_ms(600); } else if (pwm[0]<=175) { OCR1AL=pwm[0]; OCR1BL=pwm[0]; } else if ((pwm[0]>175)&&(pwm[0]<=185)) { OCR1AL=pwm[0]*1.05; OCR1BL=pwm[0]; } else if ((pwm[0]>185)&&(pwm[0]<=195)) { OCR1AL=pwm[0]*1.22; OCR1BL=pwm[0]*0.9; } else { OCR1AL=pwm[0]*1.22; OCR1BL=pwm[0]*0.9; } maju(); delay_ms(50); jarak0[0]=jarak[0]; }; }
#define mot1_p PORTC.0 #define mot1_n PORTC.1 #define mot2_p PORTC.2 #define mot2_n PORTC.3 void belok_kanan()
{ mot1_p=0; mot1_n=1; mot2_p=0; mot2_n=0; } void belok_kiri() { mot1_p=0; mot1_n=0; mot2_p=1; mot2_n=0; } void stop() { mot1_p=0; mot1_n=0; mot2_p=0; mot2_n=0; } void mundur() { mot1_p=0; mot1_n=1; mot2_p=1; mot2_n=0; } void maju() { mot1_p=1; mot1_n=0; mot2_p=0; mot2_n=1; } void baca() { #define SigOut PORTA.7 #define SigIn PINA.7 #define DirSig DDRA.7 DirSig=1; SigOut=1; delay_us(5); SigOut=0; DirSig=0; SigOut=1;
while(SigIn==0) { } while(SigIn==1) { buffer++; } jarak[0]=(buffer*0.034442)/2; // in cm } void hitung() { if (jarak[0]<=120) { X1[0]=1; X2[0]=0; X3[0]=0; } else if ((jarak[0]>120)&&(jarak[0]<=180)) { X1[0]=(180-jarak[0])/60; X2[0]=(jarak[0]-120)/60; X3[0]=0; } else if ((jarak[0]>=180)&&(jarak[0]<240)) { X1[0]=0; X2[0]=(240-jarak[0])/60; X3[0]=(jarak[0]-180)/60; } else { X1[0]=0; X2[0]=0; X3[0]=1; } } void bedajarak() { if (delta_jarak[0]<=15) { Y1[0]=1; Y2[0]=0; Y3[0]=0; } else if ((delta_jarak[0]>15)&&(delta_jarak[0]<=25)) { Y1[0]=(25-delta_jarak[0])/10; Y2[0]=(delta_jarak[0]-15)/10;
Y3[0]=0; } else if ((delta_jarak[0]>=25)&&(delta_jarak[0]<35)) { Y1[0]=0; Y2[0]=(35-delta_jarak[0])/10; Y3[0]=(delta_jarak[0]-25)/10; } else { Y1[0]=0; Y2[0]=0; Y3[0]=1; } } void kecepatan() { DK[0]=min(X1[0],Y1[0]); DS[0]=min(X1[0],Y2[0]); DB[0]=min(X1[0],Y3[0]); SK[0]=min(X2[0],Y1[0]); SS[0]=min(X2[0],Y2[0]); SB[0]=min(X2[0],Y3[0]); JK[0]=min(X3[0],Y1[0]); JS[0]=min(X3[0],Y2[0]); JB[0]=min(X3[0],Y3[0]); pwm[0]=((DK[0]*170)+(DS[0]*170)+(DB[0]*170)+(SK[0]*170)+(SS[0]*185)+(SB[ 0]*185)+(JK[0]*185)+(JS[0]*200)+(JB[0]*200))/((DK[0]+DS[0]+DB[0]+SK[0]+SS[ 0]+SB[0]+JK[0]+JS[0]+JB[0])); }