PERANCANGAN DAN IMPLEMENTASI LOGIKA FUZZY PADA MIKROKONTROLER ATMEGA16 UNTUK ROBOT PENGHINDAR HALANGAN
FAUZI FATHURAHMAN
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2011
PERANCANGAN DAN IMPLEMENTASI LOGIKA FUZZY PADA MIKROKONTROLER ATMEGA16 UNTUK ROBOT PENGHINDAR HALANGAN
FAUZI FATHURAHMAN
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2011
ABSTRACT Fauzi Fathurahman. Design and Implementation of Fuzzy Logic in Microcontroller ATMega16 for Obstacle Avoidance Robot. Supervised by HENDRA RAHMAWAN and HASAN MAYDITIA. Robot was created to relieve human tasks. One of them is an obstacle avoidance robot. This robot has an ability to avoid obstacles and to move around autonomously in accordance with the rules embedded in it. In this study, fuzzy logic is implemented on the microcontroller ATMega16 in obstacle avoidance robot system design for easing in defining the object's position and accelerating the speed based on distance objects. This robot system is capable of handling three inputs and two outputs. Input is accepted as the value of the distance through the three ultrasonic sensors and the outputs are the speed and the angle of the robot turns. The output of fuzzy system is displayed on the LCD character 16x2. In the decision taking, Mamdani fuzzy modeling was used because it is intuitive. This system consists of ATMega16 microcontroller as hardware and CodeVision AVR as the compiler and downloader of the program into ATMega16 microcontroller and Matlab as the fuzzy simulation program. In the test, the results of fuzzy in Matlab are compared to the human expert opinion. The result of the fuzzy in Matlab can be accepted by the human expert. In the experiment, the results of fuzzy in Matlab are compared to the embedded systems. For the speed test, it produces 0.44% of average error with 99.56% accuracy rate. For the steering angle, it produces 0.22% of average error with 99.56% accuracy rate. The average fuzzy execution time of each rule in the microcontroller is 0.184441 ms. The fastest execution time is in rule 1, that is when three input sensors are in the close range. The longest time is in rule 27, that is when three input sensors are the far range.
Keyword: Obstacle Avoidance Robot, Sensor Ultrasonics, Fuzzy Logic
Judul : Perancangan dan Implementasi Logika Fuzzy pada Mikrokontroler ATMega16 untuk Robot Penghindar Halangan Nama : Fauzi Fathurahman NIM : G64062957
Menyetujui: Pembimbing I,
Pembimbing II,
Hendra Rahmawan, S.Kom., M.T. NIP. 19820501 200912 1 004
Hasan Mayditia, S.Si. NIP. 19840502 200604 1 8
Mengetahui: Ketua Departemen Ilmu Komputer,
Dr. Ir. Sri Nurdiati, M.Sc. NIP. 19601126 198601 2 001
Tanggal Lulus:
RIWAYAT HIDUP Penulis dilahirkan di Bogor 23 Oktober 1987. Penulis merupakan anak keempat dari pasangan Dayat Hidayat dan Choeroniah. Penulis menempuh pendidikan menengah atas di SMAN 7 Bogor program IPA dan lulus pada tahun 2006 dengan pengalaman organisasi sebagai pengurus Himpunan Remaja Islam Negeri 7 (HIRISMAN 7) dan aktif sebagai anggota Merpati Putih. Penulis pernah menjadi penyusun dan Penatar Rencana Anggaran Belanja Sekolah (RABS) SD se-Kecamatan Dramaga dari dana Bantuan Operasional Sekolah (BOS). Pada tahun 2006, penulis melanjutkan pendidikan sarjana strata satu melaui jalur Undangan Seleksi Masuk IPB (USMI) di Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor. Selama di Departemen Ilmu Komputer FMIPA IPB, penulis aktif di Himpunan Mahasiswa Ilmu Komputer (HIMALKOM) divisi Trouble Shooting, Networking, dan i-Robotics serta kepanitiaan lainnya. Pada tahun 2009, penulis melakukan Praktik Kerja Lapang (PKL) di Lembaga Penerbangan dan Antariksa Nasional (LAPAN) Rancabungur sebagai Web Develover.
PRAKATA
Alhamdulillah, Puji syukur penulis panjatkan ke hadirat Allah SWT, Gusti yang Maha Suci karena atas segala keridoan-Nya, penulis dapat menyelesaikan skripsi dengan judul “Perancangan dan Implementasi Logika Fuzzy pada Mikrokontroler ATMega16 untuk Robot Penghindar Halangan”. Shalawat dan salam semoga selalu tercurah kepada Nabi Muhammad SAW beserta para sahabatnya hingga akhir zaman. Penulis mengucapkan terima kasih kepada pihak-pihak yang telah membantu dalam penyusunan skripsi ini, yaitu kepada : 1.
Bapak Syeikh H. Darmadipraja sebagai guru dzikir yang senantiasa memberikan berkah dan bimbingannya baik lahir maupun bathin, sehingga penulis selalu terarah dijalan-Nya.
2.
Bapak Hendra Rahmawan, S.Kom, M.T selaku dosen pembimbing I yang telah memberikan bimbingan serta arahan kepada penulis, Bapak Hasan Mayditia, S.Si selaku dosen pembimbing II yang juga telah memberikan bimbingan, saran kepada penulis, serta Ibu Ir. Sri Wahjuni, M.T yang telah menguji dan memberi masukan untuk tugas akhir ini.
3.
Bapak dan Ibu tercinta yang telah memberikan do’a, semangat, nasihat dan keridhoannya kepada penulis untuk segera menyelesaikan tugas akhir ini.
4.
Wirdatul Jannah yang selalu memberikan semangat dan do’a serta membantu dalam penyelesaian skripsi ini.
5.
Baqi dan Erik Kerah yang selalu membantu dalam penyelesaian skripsi.
6.
Teman- teman ilkomerz angkatan 43 yang telah banyak membantu penulis.
Semoga skripsi ini dapat bermanfaat bagi masyarakat dan menjadi terobosan dalam peningkatan teknologi pada masa depan kelak.
Bogor, Maret 2011
Fauzi Fathurahman
DAFTAR ISI Halaman DAFTAR GAMBAR ..................................................................................................................... . vi DAFTAR LAMPIRAN ................................................................................................................... vi PENDAHULUAN Latar Belakang .......................................................................................................................... Tujuan ....................................................................................................................................... Ruang Lingkup ........................................................................................................................... Manfaat Penelitian .....................................................................................................................
1 1 1 1
TINJAUAN PUSTAKA Mikrokontroler AVR ATMega16 ............................................................................................... 1 Sensor Ultrasonik ...................................................................................................................... 2 Robot ......................................................................................................................................... 3 Manipulator ........................................................................................................................... 3 Kontroler ............................................................................................................................... 3 Power supply (daya) ............................................................................................................... 3 Penghasil detak (Clock Generator) .............................................................................................. 3 Logika Fuzzy .............................................................................................................................. 4 Himpunan Fuzzy ......................................................................................................................... 4 Semesta Pembicaraan ................................................................................................................ 4 Sistem Inferensi Fuzzy ................................................................................................................ 5 Model Fuzzy Mamdani ............................................................................................................... 5 Fuzzifikasi ................................................................................................................................. 5 Defuzzifikasi ............................................................................................................................. 5 Metode Kuadrat Terkecil ........................................................................................................... 5 Galat Relatif dan Akurasi ............................................................................................................ 6 METODE PENELITIAN Analisis Permasalahan ............................................................................................................... 6 Perancangan .............................................................................................................................. 6 Implementasi ............................................................................................................................ 7 Pengujian .................................................................................................................................. 7 Perancangan Percobaan .............................................................................................................. 7 Percobaan .................................................................................................................................. 7 Analisis Hasil Percobaan ............................................................................................................ 8 Lingkungan Pengembangan Sistem ............................................................................................ 8 HASIL DAN PEMBAHASAN Analisis Permasalahan ............................................................................................................... 8 Analisis Sistem Fuzzy ........................................................................................................... 8 Analisis Sensor Ultrasonik .................................................................................................... 8 Analisis Perangkat Lunak ....................................................................................................... 9 Perancangan ............................................................................................................................. 9 Perancangan Sistem Fuzzy .................................................................................................... 9 Perancangan Program Simulasi ........................................................................................... 12 Perancangan hardware ........................................................................................................ 12 Implementasi ............................................................................................................................ 12 Pengujian ................................................................................................................................. 13 Perancangan Percobaan ............................................................................................................ 13 Percobaan ................................................................................................................................ 13 Analisis Hasil Percobaan ........................................................................................................... 14 KESIMPULAN DAN SARAN Kesimpulan ............................................................................................................................. 14 Saran ....................................................................................................................................... 15
iv
DAFTAR PUSTAKA ................................................................................................................... 15 LAMPIRAN ................................................................................................................................. 16
v
DAFTAR GAMBAR Halaman 1 Konfigurasi pin ATMega16 . ....................................................................................................... 2 2 Ilustrasi cara kerja sensor PING ................................................................................................... 2 3 Ping))) Parallax Ultrasonic Range Finder ..................................................................................... 2 4 Diagram blok logika penghasil detak untuk komunikasi serial ....................................................... 3 5 Bentuk fungsi keanggotaan fuzzy ................................................................................................. 4 6 Metode penelitian ........................................................................................................................ 6 7 Tahapan proses sistem fuzzy ........................................................................................................ 7 8 Perancangan hardware pada robot penghindar halangan ............................................................... 7 9 Grafik fungsi persamaan gradien ................................................................................................. 7 10 Sudut elevasi sensor ultrasonik ................................................................................................... 9 11Fungsi keanggotaan masukan dari sensor kiri ................................................................................ 9 12 Fungsi keanggotaan keluaran kecepatan ...................................................................................... 10 13 Fungsi keanggotaan keluaran sudut belok .................................................................................. 11 14 Tampilan antarmuka sistem fuzzy ............................................................................................... 12 15 Bentuk fisik perancangan hardware ........................................................................................... 12 16 Alur pemrograman pada mikrokontroler .................................................................................... 12 17 Bentuk perancangan percobaan .................................................................................................. 13 18 Grafik akurasi kecepatan dari delta error percobaan .................................................................... 13 19 Grafik akurasi sudut belok dari delta error percobaan ................................................................. 14 20 Rata-rata waktu proses fuzzy pada embedded system .................................................................. 14
DAFTAR LAMPIRAN Halaman 1 Fungsi keanggotaan masukan sensor kiri, sensor tengah, dan sensor kanan ................................. 17 2 Fungsi keanggotaan keluaran kecepatan dan sudut belok ............................................................ 18 3 Hasil implementasi modul FIS logika fuzzy ................................................................................ 19 4 Hasil implementasi fungsi keanggotaan masukan sensor kiri, sensor tengah, dan sensor kanan..... 20 5 Hasil implementasi fungsi keanggotaan keluaran kecepatan dan sudut belok ............................... 21 6 Tampilan layar GUI simulasi Matlab ......................................................................................... 22 7 Proses perhitungan fuzzy ............................................................................................................. 23 8 Datasheet ATMega16 [Atmel 2004] page 168 ............................................................................ 26 9 Hasil pengujian sensor ultrasonik ............................................................................................... 27 10 Error dan akurasi hasil percobaan untuk kecepatan ..................................................................... 28 11 Error dan akurasi hasil percobaan untuk sudut belok .................................................................. 29 12 Hasil percobaan untuk waktu proses fuzzy pada mikrokontroler .................................................. 30 13 Rangkaian embedded system ...................................................................................................... 31
vi
PENDAHULUAN Latar Belakang Perkembangan teknologi di bidang robotika saat ini menjadi perhatian yang sangat serius, terutama pada peran robot. Robot mampu menggantikan pekerjaan manusia terutama pada lingkungan yang sangat berbahaya seperti: penjelajahan ruang angkasa, penjinak bom, dan lain-lain. Salah satu jenis robot yang banyak digunakan adalah robot penghindar halangan yang mampu bergerak secara otonom, yang dirancang khusus untuk mengidentifikasi rintangan dan menentukan gerakan robot. Rintangan dengan beberapa buah objek tertentu, tidak cukup ditangani dengan aturan biasa seperti aturan nilai kebenaran. Nilai kebenaran hanya mendeteksi ada atau tidak adanya objek, tidak mendefinisikan dekat atau jauhnya posisi objek yang dideteksi. Sebagai contoh, robot penghindar halangan yang menggunakan aturan nilai kebenaran, akan sulit mengakselerasikan gerakan dengan posisi rintangan di sekitarnya, karena gerakan dibatasi dengan gerak maju, mundur atau berhenti. Dengan demikian, diperlukan aturan yang dapat meningkatkan kinerja robot. Salah satu solusi yang dapat digunakan adalah dengan menggunakan logika fuzzy yang bersifat samar terhadap objek yang dapat digunakan untuk mendefinisikan nilai jarak seperti: dekat, sedang dan jauh. Logika fuzzy merupakan bagian sekaligus perluasan dari logika Boolean. Perbedaannya terletak pada derajat kebenaran, Boolean 0 atau 1 sedangkan logika fuzzy 0 sampai dengan 1. Logika fuzzy sering menggunakan informasi linguistik dan verbal (Marimin 2002). Dengan menggunakan konsep logika fuzzy, dimungkinkan pembuatan sistem kendali yang cerdas. Hal ini dikarenakan perumusan matematika yang cukup sederhana pada pendekatan sistem pengendalian fuzzy, sehingga rumusan matematis yang kompleks tidak perlu dilibatkan dan tidak terlalu dititikberatkan pada ketepatan angka karena logika fuzzy bersifat nonlinear. Selain itu, logika fuzzy dapat dengan mudah disusun dan dikembangkan dengan berdasarkan representasi dari pengetahuan manusia. Penelitian tentang sistem kendali fuzzy telah dilakukan sebelumnya oleh Rizki Baihaqi (2010) dengan memodelkan sistem driver assistent pada gerak mobil. Baihaqi memanfaatkan logika fuzzy pada gerak
mobilnya untuk tetap pada jalur sesuai dengan jalan yang akan ditempuh. Namun, nilai masukan masih terbatas pada nilai 0 atau 1. Pada penelitian ini diimplementasikan logika fuzzy pada pengendali Robot Penghindar Halangan. Tujuan Tujuan penelitian ini adalah untuk merancang dan mengimplementasikan pengendali sistem berbasiskan logika fuzzy dengan nilai parameter yang dapat diubah-ubah pada robot penghindar halangan berdasarkan human expert. Ruang Lingkup Ruang lingkup penelitian ini difokuskan pada : 1. Masukan diterima melalui tiga buah sensor ultrasonik sebagai pengukur jarak. 2. Jarak sebuah objek atau halangan yang dapat dideteksi dalam rentang 2 cm sampai dengan 18 cm. 3. Keluaran kecepatan dan sudut belok robot diproses di dalam sistem mikrokontroler ATMega16. 4. Pengujian dilakukan pada lingkungan sebenarnya dengan menggunakan rintangan pada samping kiri, depan, dan samping kanan pada jarak tertentu. Manfaat Penelitian Logika fuzzy yang dirancang dan diimplementasikan pada Mikrokontroler ATMega16 diharapkan dapat memberikan informasi yang dapat digunakan oleh robot penghindar untuk melewati rintangan yang ada di sekitarnya, sehingga robot dapat menghindari halangan dengan lebih akurat.
TINJAUAN PUSTAKA Mikrokontroler AVR ATMega16 AVR merupakan bagian dari keluarga mikrokontroler CMOS 8-bit buatan Atmel. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving. Beberapa dari mikrokontroller Atmel AVR mempunyai ADC internal dan PWM internal. AVR juga mempunyai In-Sistem Programmable Flash on-chip yang
1
mengizinkan memori program untuk diprogram berulang-ulang dalam sistem menggunakan hubungan serial SPI (Wiyono 2007). Mikrokontroller AVR yang digunakan pada penelitian ini adalah ATMega16. Mikrokontroler terdiri atas pin input dan output yang berbeda. Adapun konfigurasinya dapat dilihat pada Gambar 1.
Gambar 1 Konfigurasi pin ATMega16 [Atmel 2004] Fitur dari Gambar 1 antara lain: 1. 2. 3. 4.
Serial In-System Programming (Serial ISP) Reprogrramming capability 32 x 8 General Purpose Working Register Two 8 bit Timer/Counter with Compare Modes 5. One bit Timer/Counter with Compare Modes compare dan capture 6. Real Time Counter with Separate Occillator 7. Four Pulse Widht Modulation (PWM) Cha 8. 8 channel, 10 bit Analog Digital Converter (ADC) 9. Master/Slave interface 10. Interface serial Two-Wire (TWI) 11. On-chip Analog Comparator 12. Programmable Watchdog Timer Separate On-chip Occillator 13. External and internal Interrupt Sources 14. External and internal Clock 15. Port USART 16. 16 KB Flash, 512 Byte EEPEROM, and 1 KB SRAM internal.
Paralax Inc. yang didesain khusus untuk teknologi robotika. Dengan ukurannya yang cukup kecil (2,1cm x 4,5cm), sensor dapat mengukur jarak antara 3 cm sampai 300 cm. Keluaran dari Ping))) berupa pulsa yang lebarnya merepresentasikan jarak. Lebar pulsanya bervariasi dari 115 uS sampai 18500 uS. Ping))) mendeteksi objek dengan cara mengirimkan suara ultrasonik dan kemudian “mendengarkan” pantulan suara tersebut. Ping))) hanya akan mengirimkan suara ultrasonik ketika ada pulsa trigger dari mikrokontroler (Pulsa high selama 5uS). Suara ultrasonik dengan frekuensi sebesar 40KHz akan dipancarkan selama 200uS. Suara ini akan merambat di udara dengan kecepatan 344.424m/detik (atau 1cm setiap 29.034uS), mengenai objek untuk kemudian terpantul kembali ke Ping))). Selama menunggu pantulan, Ping))) akan menghasilkan sebuah pulsa. Pulsa ini akan berhenti (low) ketika suara pantulan terdeteksi oleh Ping))). Oleh karena itulah lebar pulsa tersebut dapat merepresentasikan jarak antara Ping))) dengan objek. Selanjutnya mikrokontroler cukup mengukur lebar pulsa tersebut dan mengkonversinya dalam bentuk jarak. (Parallax 2009). Ilustrasi cara kerja sensor PING dapat dilihat pada Gambar 2 dan untuk perhitungannya dapat dilihat pada Persamaan 1. Perhitungan untuk mendapatkan jarak adalah sebagai berikut: L = ½ . TOF . v (1) keterangan: L = jarak ke objek (m) TOF = lebar pulsa waktu pengukuran yang diperoleh (s) v = cepat rambat suara di udara (m/s)
Gambar 2 Ilustrasi cara kerja sensor PING Sensor Ultrasonik Sensor ultrasonik merupakan sensor yang bekerja berdasarkan prinsip pantulan gelombang suara, di mana sensor menghasilkan gelombang suara yang kemudian menangkapnya kembali dengan perbedaan waktu sebagai dasar pengindraannya. Ping))) Ultrasonic Range Finder, adalah modul pengukur jarak dengan ultrasonik buatan
Bentuk fisik dari sensor PING dapat dilihat pada Gambar 3.
Gambar 3 Ping))) Paralax Ultrasonic Range Finder
2
Robot
c. Power supply (daya)
Istilah robot berasal dari Rusia, yaitu dari kata robota yang berarti tenaga kerja/buruh. Kemudian di awal abad ke 20 ilmuwan Cekoslowakia, Karel Capek (1890-1938) memperkenalkan istilah robot dengan membuat seperangkat mesin yang diberi nama Rosum’s Universal Robots (RUR). Menurut National Bureau of Standard, robot adalah bentuk aplikasi yang sebagian besar pada bidang industri bertujuan untuk meningkatkan produktivitas produksi. Robot dapat digunakan secara rutin terus menerus tanpa merasakan kebosanan atau digunakan pada lingkungan yang sangat berbahaya. Sebagai contoh dalam industri nuklir, robot harus digunakan karena radiasi nuklir sangat berbahaya bagi manusia. Robot digunakan pada industri perakitan, pengelasan, peleburan, pengecatan dan telah digunakan pada bidang militer sebagai peralatan penjinak bom, dan pada bidang kedokteran sebagai peralatan operasi otomatis. Pada bidang sosial robot banyak membantu sebagai pengganti bagian tubuh yang mengalami kecacatan (Shircliff 2002).
Power supply adalah sebuah unit yang menyediakan tenaga pada pengendali dan manipulator sehingga dapat bekerja. Power supply dalam suatu sistem robot dibagi menjadi dua bagian, yaitu bagian untuk kontroler dan bagian untuk manipulator. Bagian kontroler menggunakan elektrik sedangkan bagian manipulator bisa menggunakan elektrik, pneumatik, hidrolik ataupun ketiganya (Shircliff 2002).
Menurut David R. Shircliff (2002), sistem robot memiliki tiga komponen dasar, yaitu : manipulator, kontroler, dan power (daya). Efektor sering ditemukan pada bebrapa sistem robot, tetapi sifatnya tidak harus ada.
Penghasil detak (Clock Generator) [Atmel 2004] Penghasil detak atau Clock Generator tergantung pada mode data transfer, yaitu terdapat empat mode penghasil detak, yaitu: 1. 2. 3. 4.
Normal asynchronous Double Speed asynchronous Master synchronous Slave synchronous
Pada Gambar 4 ditunjukkan diagram blok logika penghasil detak yang terkait dengan beberapa register seperti USART Baud Rate Register (UBRR) (16-bit: UBRRL dan UBRRH) dan lain-lain.
a. Manipulator Manipuator digerakkan oleh aktuator atau disebut sistem drive. Aktuator atau sistem drive menyebabkan gerakan yang bervariasi dari manipulator. Aktuator bisa menggunakan elektrik, hidrolik ataupun pneumatik (Shircliff 2002). Aktuator pada robot penghindar halangan berupa roda yang digerakan oleh sebuah motor DC. Namun, pada penelitian hanya menggunakan display LCD sebagai aktuator elektrik. b. Pengendali Pengendali merupakan jantung dari sistem robot sehingga keberadaannya sangat penting. Pengendali menyimpan informasi yang berkaitan dengan data data robot, dalam hal ini data gerakan robot yang telah diprogram sebelumnya (Shircliff 2002). Pada penelitian ini digunakan mikrokontroler sebagai pengendali yang telah diprogram dengan rancangan logika fuzzy.
Gambar 4
Diagram blok logika penghasil detak untuk komunikasi serial
Deskripsi sinyal pada Gambar 4 adalah sebagai berikut: txclk rxclk xckl xcko fosc
: Transmitter clock (internal signal) : Receiver base clock (internal signal) : Input from xck pin (slave operation) : Clock output to xck (master operation) : XTAL pin frequency
Umumnya Clock Generator yang digunakan digunakan adalah Asynchronous Internal Clock Generator. Register penentuan baudrate atau kecepatan komunikasi serial atau UBRR digunakan dimana nilai yang diberikan adalah untuk down-counter. Setiap kali nilai down-
3
counter mendekati nol, maka sebuah clock dibangkitkan. Nilai UBRR yang sesuai dengan baudrate yang diinginkan mengacu pada osilator atau kristal yang digunakan oleh mikrokontroler. Perhitungan Asynchronous Internal Clock Generator adalah sebagai berikut: BAUD = fclk/(16(UBRR+1))
(2)
-
Semesta pembicaraan untuk variabel umur : [0 +~] Semesta pembicaraan unutk variabel temperatur : [0 40] [2].
Pada semesta pembicaraan terdapat fungsi keanggotaan himpunan fuzzy. Fungsi keanggotaan bervariasi, yaitu gaussian segitiga, dan trapesium.
keterangan: BAUD : Baudrate fclk : frekuensi clock UBRR : USART Baud Rate Register Untuk waktu eksekusi setiap instruksi pada program pada mikrokontroler dihitung dengan fungsi sebagai berikut: = /
pembicaraan merupakan himpunan bilangan real yang senantiasa naik secara monoton dari kiri ke kanan atau bilangan positif maupun negatif. Contoh :
(3)
keterangan: T : waktu proses fuzzy pada embedded system mikrokontroler (ms) fclk : frekuensi osilator (clock) Logika Fuzzy Logika fuzzy merupakan bagian dari logika boolean, yang digunakan untuk menangani konsep derajat kebenaran, yaitu nilai kebenaran benar dan salah. Logika fuzzy sering menggunakan informasi linguistik dan verbal. Dalam logika fuzzy terdapat beberapa proses, yaitu penentuan gugus fuzzy, penerapan aturan if-then, serta proses inferensi fuzzy (Marimin 2002). Himpunan Fuzzy Himpunan fuzzy didasarkan pada gagasan untuk memperluas jangkauan fungsi karakteristik sedemikian hingga fungsi tersebut akan mencakup bilangan real pada interval [0,1]. Nilai keanggotaannya menunjukkan bahwa suatu item dalam semesta pembicaraan tidak hanya berada pada 0 atau 1 (Kusumadewi 2002). Semesta Pembicaraan
Gaussian terdiri atas dua buah parameter, yaitu dan c. Kurva gaussian berbentuk sigmoid yang berhubungan dengan kenaikan dan penurunan permukaan secara tak linear, sehingga perubahnnya sangat halus dengan perumusan matematika yang cukup sulit. Kurva segitiga terdiri atas tiga buah parameter yaitu a, b, dan c, sedangkan trapesium terdiri dari empat buah parameter yaitu a, b, c, dan d. Keduanya merupakan fungsi keanggotaan yang paling sederhana, karena hanya tersusun dari beberapa garis lurus yang berhubungan dengan kenaikan dan penurunan permukaan secara linear sehingga perubahannya kasar dengan perumusan matematika yang sederhana. Pada penelitian ini digunakan dua fungsi keanggotaan, yaitu bentuk kurva segitiga dan trapesium karena perumusan matematika yang sederhana. Bentuk dari kurva tersebut dapat dilihat pada Gambar 5.
segitiga
trapesium
Gambar 5 Bentuk fungsi keanggotaan fuzzy Fungsi keanggotaan untuk representasi kurva segitiga adalah sebagai berikut:
Suatu model variabel fuzzy seringkali dideskripsikan dalam syarat-syarat ruang fuzzynya. Ruang ini biasanya tersusun atas beberapa himpunan fuzzy, himpunan-himpunan fuzzy mendeskripsikan suatu arti tertentu dari variabel-variabel yang diizinkan dalam permasalahan (Kusumadewi 2002). Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy. Semesta
4
Fungsi keanggotaan untuk representasi kurva trapesium adalah sebagai berikut:
keanggotaanya terhadap setiap himpunan fuzzy input. 2. Evaluasi aturan-aturan (rules) 3. Agregasi pada masing-masing aturan untuk menghasilkan suatu kesimpulan. 4. Defuzzifikasi himpunan fuzzy output menjadi nilai tunggal (crisp). Fuzzifikasi
Sistem Inferensi Fuzzy
Fuzzifikasi adalah proses pemetaan dari input menjadi sekumpulan data samar dalam berbagai semesta pembicaraan output (Sri Kusumadewi 2002).
Sistem inferensi fuzzy (FIS) merupakan penduga numerik yang terstruktur dan dinamik. Sistem ini mempunyai kemampuan untuk mengembangkan sistem intelijen dalam lingkungan yang tidak pasti dan tidak tepat. Sistem ini menduga suatu fungsi dengan logika fuzzy (Marimin 2002).
Nilai input merupakan besaran analog yang diubah menjadi fuzzy input. Besaran analog atau crisp input dipetakan pada domain membership function yang sesuai dengan nilainya. Crisp input yang masuk ke domain label (Linguistic Value) akan menjadi fuzzy input.
Sistem inferensi fuzzy telah berhasil diaplikasikan dalam berbagai bidang, seperti kontrol otomatis, klasifikasi data, analisis keputusan, dan sistem pakar. Karena itu, sistem inferensi fuzzy biasa dikenal dengan nama fuzzy-rule-based system, fuzzy expert system, fuzzy modelling, fuzzy assosiative memory, dan fuzzy logic controllers ([MathWorks] 2008).
Defuzzifikasi
Inferensi merupakan bagian penentuan aturan dari sistem logika fuzzy. Sejumlah aturan dapat dibuat untuk pengendali logika fuzzy yang menghubungkan aksi keluaran pengendali terhadap kondisi masukannya. Sejumlah aturan dapat dibuat untuk pengendali logika samar. Contoh berikut ini, merupakan perlakuan pada pengendali sistem yang akan dibahas: If (SensorKiri is dekat) and (SensorTengah is dekat) and (SensorKanan is dekat) then (kecepatan is berhenti) and (sudut_belok is lurus). Model Fuzzy Mamdani Model fuzzy Mamdani telah diperkenalkan oleh Ebrahim Mamdani pada tahun 1975. Metode ini memiliki beberapa kelebihan yang berdasarkan penalaran manusia, yaitu: intuitif, diterima oleh banyak pihak, dan masukan berasal dari manusia (Kusumadewi 2002). Proses perhitungan fuzzy Mamdani dibagi ke dalam empat tahap (Negnevitsky 2002) :
Defuzzifikasi merupakan suatu proses pengubahan fuzzy output ke output yang bernilai tunggal (crisp). Terdapat beberapa metode defuzzifikasi, namun yang sering digunakan adalah metode centroid dan maksimum. Perhitungan untuk mendapatkan nilai titik pusat adalah sebagai berikut (Marimin 2002):
keterangan: z = domain himpunan fuzzy = derajat keanggotaan Metode Kuadrat Terkecil Metode kuadrat terkecil adalah salah satu metode pendekatan yang paling penting dalam dunia keteknikan untuk regresi ataupun pembentukan persamaan dari titik-titik data diskretnya (dalam pemodelan), dan analisis sesatan pengukuran (dalam validasi model). Persamaan yang dihasilkan berupa persamaan pada garis lurus yang terdiri atas kelandaian (slove) kurva garis lurus dan perpotongan (intercept) kurva dengan ordinat. Perhitungan untuk mendapatkan nilai kelandaian (slove) atau gradien adalah sebagai berikut ([MathWorks 2008]):
1. Fuzzifikasi variabel masukan. Pada tahap ini masukan yang bersifat crisp dihitung derajat
5
keterangan: m : gradien persamaan garis lurus n : banyaknya data x : data x (pengukuran) y : data y (valid)
METODE PENELITIAN
Galat Relatif Hampiran dan Akurasi Galat suatu hampiran disebabkan oleh kekurangtelitian model matematika dan oleh galat bawaan dari data masukan bersifat warisan/bawaan (inherent). Galat ini mungkin tetap ada sekalipun penyelesaiannya diperoleh dengan menggunakan metode eksak (Sahid 2005).
Penelitian ini dilaksanakan dengan beberapa tahapan, yaitu: analisis permasalahan, perancangan, implementasi, pengujian, perancangan percobaan, percobaan, dan analisis hasil percobaan. Bagan dari metode penelitian dapat dilihat pada Gambar 6. Mulai Analisis Permasalahan Perancangan
Galat berasosiasi dengan seberapa dekat solusi hampiran terhadap solusi sejatinya. Semakin kecil nilai galatnya, semakin kecil solusi numerik yang didapatkan. Perhitungan untuk mendapatkan galat adalah sebagai berikut (Munir 2003): =
100%
Pengujian
(8) Berhasil ?
keterangan: : galat relatif mutlak a : nilai sejati a’ : nilai hampiran
Tidak
Ya Perancangan Percobaan
Akurasi mengacu pada seberapa dekat angka pendekatan/pengukuran terhadap harga sebenarnya. Akurasi merupakan kebalikan dari error. Perhitungan untuk mendapatkan akurasi adalah sebagai berikut ([MathWorks]): = 100% −
Implementasi
Percobaan Analisis Hasil Percobaan
(9)
keterangan: : galat relatif mutlak
Selesai Gambar 6 Metode penelitian Analisis Permasalahan Pada tahap ini dilakukan analisis yang mencakup segala kebutuhan dalam membangun perancangan dan implementasi logika fuzzy dalam hal identifikasi masalah. Identifikasi tersebut meliputi identifikasi sistem fuzzy pada gerakan robot, sensor ultrasonik untuk mengukur jarak, dan aplikasi simulasi Matlab sebagai data acuan keluaran fuzzy untuk embedded system mikrokontroler. Perancangan Perancangan Sistem Fuzzy Pada tahap ini akan dirancang sebuah aplikasi program simulasi yang terdiri atas tiga input dan dua output Blok diagram perancangan sistem fuzzy dapat dilihat pada Gambar 7.
6
Masukan Crisp Fungsi Keanggotan Masukan
FUZZIFIKASI
untuk menambah keputusan, perbaikan aturan apabila sistem belum cukup memenuhi keputusan dari human expert. Perancangan Percobaan
Masukan Fuzzy Basis Aturan
EVALUASI ATURAN
Keluaran Fuzzy Fungsi Keanggotan Keluaran
DEFUZZIFIKASI Keluaran Crisp
Gambar 7 Tahapan proses sistem fuzzy Perancangan program simulasi Pada tahap ini dilakukan penyesuaian program simulasi untuk melakukan serangkaian pengujian sistem fuzzy. Perancangan hardware Perancangan hardware terdiri atas sensor ultrasonik, perakitan modul ATMega16, dan LCD karakter 2x16 sebagai tampilan untuk keluaran sistem. Pada perancangan keluaran, bagian yang diarsir merupakan bagian untuk pengembangan selanjutnya. Perancangan hardware pada sistem fuzzy dapat dilihat pada Gambar 8.
Gambar 8 Perancangan hardware pada robot penghindar halangan Implementasi Pada tahap ini dilakukan penggabungan perancangan software dan hardware menjadi sistem robot fuzzy, kemudian sistem diprogram dan ditanamkan ke dalam mikrokontroler ATMega16. Pengujian Pengujian dilaksanakan dengan melakukan uji sistem, bertujuan untuk mengetahui kesesuaian sistem dengan perencanaan sekaligus mewakili human expert. Tahapan pengujian dapat diulangi pada proses fuzzifikasi
Perancangan percobaan dilakukan pada setiap aturan logika fuzzy yang telah dibuat pada embedded system. Perancangan ini terdiri atas tiga buah masukan berupa jarak (dalam cm) pada setiap pembacaan sensor terhadap objek dan keluaran berupa kecepatan dan sudut belok. Perancangan disusun menggunakan tiga buah buku sebagai objek yang dihadapkan langsung pada setiap sensor. Jarak dari objek divariasikan (maksimum adalah 20 cm) dan harus mewakili setiap aturan yang telah dibuat. Hasil dari pembacaan sensor nantinya akan diproses oleh sistem fuzzy. Percobaan Percobaan dilakukan berdasarkan urutan aturan pada Tabel 1. Adapun setiap aturan diwakili oleh satu data dengan pengulangan sebanyak tiga kali pada setiap percobaan. Kemudian dilakukan perhitungan galat (error) dan akurasi pada sistem fuzzy dengan membandingkan keluaran yang dihasilkan dari embedded system dengan program simulasi Matlab. Besar galat (error) dihitung berdasarkan Persaman 8 dengan nilai sejati didefinisikan sebagai nilai keluaran simulasi Matlab dan nilai hampiran didefinisikan sebagai nilai keluaran embedded system, sedangkan akurasi dihitung berdasarkan Persamaan 9. Waktu proses fuzzy dihitung berdasarkan waktu eksekusi setiap instruksi program pada mikrokontroler. Waktu eksekusi dihitung berdasarkan Persamaan 3. Frekuensi osilator yang digunakan sebesar 11.059,200 MHz. Nilai ini didasarkan pada penggunan register pada protokol komunikasi serial dengan memanfaakan fasilitas Universal Syncronous and Asyncronous Receiver Transmitter (USART) yang sangat handal dan berguna dalam berbagai aplikasi yang berhubungan antarmuka serial dengan komputer atau sesama mikrokontroler AVR. Misalkan, digunakan frekuensi osilator untuk mikrokontroler sebesar 8.000.000 Hz (8 MHz) dan baudrate yang diinginkan adalah 9600, setelah dihitung menggunakan Persamaan 2 diperoleh nilai UBRR sebesar 51,083333333, dibulatkan menjadi 51. Nilai UBRR=51, maka nilai sesungguhnya dari baudrate adalah 9615 (bukan 9600), jika dibagi dengan 9600 diperoleh 1.0016 dan error sebesar 0.16%, dengan besar error tersebut USART masih
7
dapat bekerja tetapi tidak sempurna. Oleh karena itu, agar USART bekerja dengan baik dan sempurna, maka error harus diperkecil sekaligus dihilangkan. Cara menghilangkan error tersebut digunakan frekuensi osilator sebesar 11059200 Hz (11,059200 MHz). Pada perhitungan yang sama dihasilkan error 0,00%. Beberapa nilai frekuensi osilator beserta error yang dihasilkan dapat dilihat pada Lampiran 8. Analisis Hasil Percobaan Pengujian selalu disertai dengan analisis. Analisi meliputi baik tidaknya sensor sebagai masukan, serta faktor-faktor apa saja yang memengaruhinya. Hal ini dilakukan karena dapat memengaruhi keputusan dari logika fuzzy yang telah dibuat. Selain itu, analisis dari rangkaian hardware pada setiap komponen yang rentan terhadap panas yang menyebabkan dapat mengurangi kinerja dari rangkaian komponen pengendali sistem. Lingkungan Pengembangan Sistem Spesifikasi perangkat keras dan perangkat lunak komputer yang digunakan dalam penelitian ini adalah sebagai berikut: Perangkat lunak : Microsoft Windows XP Professional, Matlab 7.7.0 R2008b, CodeVisionAVR C Compiler Version 1.25.9 Profesional, Notepad ++, AVRDude Gui. Perangkat keras : Prosesor Intel Core 2 Duo CPU 2.0 GHz, Memori 2 GB DDR3, hardrive 320 GB, Mikrokontroler ATMega16, LCD karakter 16x2.
HASIL DAN PEMBAHASAN Analisis Permasalahan
kecepatan berfungsi mengatur kecepatan robot Di sisi lain, sistem pengendali sudut belok berfungsi untuk mengatur arah belok robot sesuai dengan kesesuaian jarak yang dideteksi oleh ketiga buah sensor. Analisis Sensor Ultrasonik Dalam perancangan dan implementasi logika fuzzy untuk robot penghindar halangan, hal pertama yang harus dilakukan adalah menentukan jarak objek terhadap sensor. Jarak ini dihasilkan dari suatu rancangan kalibrasi pada sensor. Kalibrasi dilakukan untuk menyesuaikan jarak yang diukur manual dengan keluran dari bacaan sensor. Kemudian dilakukan proses pemograman untuk mengukur jarak melalui compiler CodeVison AVR ke mikrokontroler. Perancangan kalibrasi sensor Port yang digunakan adalah Port A untuk LCD, Port C.0 untuk sensor, dan Port D.0 untuk buzzer. Objek yang digunakan adalah satu buah buku sebagai halangan. Kemudian dilakukan pengukuran pada jarak minimal sampai dengan jarak maksimal yang dapat dibaca oleh sensor. Jarak sensor ke objek diukur kembali menggunakan penggaris, sehingga hasilnya dapat langsung dibandingkan dengan hasil pengukuran sensor. Data hasil pengukuran, terdapat adanya ketidaksamaan nilai jarak sensor terhadap objek dengan jarak pada penggaris, sehingga perhitungan sensor harus dikalikan dengan persamaan gradien hasil pengukuran. Nilai gradien yang dihasilkan dari data hasil pengukuran sebesar 0.950 yang ditunjukkan pada Gambar 9. Perhitungan untuk mendapatkan nilai gradien dapat dilihat pada Lampiran 9.
Analisis Sistem Fuzzy Sistem fuzzy pada gerak robot meliputi kecepatan dan sudut belok. Sistem pengendali
Jarak (cm)
Grafik hubungan antara Jarak (cm) terhadap Data pengukuran (cm) 25 20 15 10 5 0
y = 0.950x - 0.982
0
5
10
15
20
25
Data pengukuran (cm) Gambar 9 Grafik fungsi persamaan gradien 8
Berdasarkan Gambar 9, keseluruhan data mengalami ketidaksesuaian dengan jarak sensor terhadap objek. Hal ini dikarenakan modul dari sensor sensitif terhadap suhu di sekitarnya, sehingga nilai cepat rambat suara berubah dan memengaruhi hasil pembacaan sensor. Objek kedua yang digunakan adalah dua buah buku sebagai halangan, dan komponen Buzzer sebagai tanda peringatan. Tujuannya adalah untuk menentukan jangkauan objek dalam derajat. Jangkauan objek terhadap sensor disebut juga sudut elevasi sensor, besarnya adalah 450. Sensor yang digunakan sebanyak satu buah dan digunakan seutas tali serta sebuah busur derajat untuk mengukur besar sudut. Kemudian dilakukan pengukuran objek pada jarak tidak lebih dari 120 cm dengan sudut dari 00 sampai dengan 900. Untuk mengetahui seberapa besar sudut elevasi sensor, Buzzer akan menyala jika objek masih terdeteksi dan sebaliknya jika tidak terdeteksi maka Buzzer akan mati. Hasil pengujian sudut elevasi dapat dilihat pada Gambar 10.
Gambar 10 Sudut elevasi sensor ultrasonik Dari hasil pengukuran, kemampuan sudut elevasi sensor dalam mendeteksi objek sebesar 40o. Nilai ini sudah cukup mendekati dengan karakteristik dari sensor yang mampu mendeteksi objek kurang dari 450.
Perancangan Perancangan sistem fuzzy 1. Masukan crisp Masukan yang berupa jarak dari sensor ultrasonik meliputi jarak dekat (Near), jarak sedang (Medium,) dan jarak jauh (Far) yang didefinisikan sebagai berikut (Zarkasih 2007): Dekat : 0 cm < jarak_objek ≤ 6 cm Sedang : 6 cm < jarak_objek ≤ 12 cm Jauh : 12 cm < jarak_objek ≤ 18 cm 2. Fuzzifikasi Setelah mendapatkan nilai masukan dari sensor, kemudian dilakukan proses fuzzifikasi untuk mendapatkan nilai derajat keanggotaan. Untuk itu, diperlukan fungsi keanggotaan masukan. Fungsi keanggotaan masukan dibagi menjadi tiga buah variabel, yaitu sensor kiri, tengah, dan kanan. Setiap variabel masukan terdiri atas tiga fungsi himpunan, yaitu dekat, sedang, dan jauh. Fungsi keanggotaan untuk sensor kiri, tengah dan kanan adalah sama. Ketiga fungsi keanggotaan sensor diwakili oleh sensor kiri seperti ditunjukan pada Gambar 11.
Gambar 11 Fungsi keanggotaan masukan dari sensor kiri. Fungsi keanggotaan untuk representasi pada Gambar 11 berdasarkan Persamaan 4 dan 5 adalah: 1; ≤6
Analisis Perangkat Lunak Sebelum program fuzzy ditanamkan dalam mikrokontroler, pemilihan komponen hardware sangat mempengaruhi keluaran data seperti internal memory untuk kecepatan proses. Hal ini dilakukan untuk mengurangi error yang besar. Selain itu, untuk mencapai keakuratan dan ketepatan data, proses pemograman pada kompilator CodeVision AVR selalu disertai dengan perhitungan secara manual.
( )=
12 − 6
;6 ≤ 0;
≤ 12
≥ 12
0; ≤6 ⎫ −6 ; 6 ≤ ≤ 12 ⎪ = 6 ⎨18 − ⎬ ⎪ ; 12 ≤ ≤ 18⎪ ⎩ 6 ⎭ ⎧ ⎪
=
0 ; ≤ 12 − 12 ; 12 ≤ ≤ 18 6 1 ; ≥ 18
Fungsi keanggotaan masukan lengkap dapat dilihat pada Lampiran 1.
secara
Berikut diberikan contoh kasus. Misalkan nilai jarak terhadap objek yang dihasilkan oleh
9
sensor_kiri sebesar 4 cm, sensor_tengah sebesar 12 cm, dan sensor_kanan sebesar 10 cm.
Perhitungan secara lengkap dapat dilihat pada Lampiran 7.
Untuk proses perhitungan fuzzy, diberikan contoh pada sensor kiri sebesar 4 cm. Nilai tersebut dimasukkan ke dalam fungsi keanggotaan fuzzy pada tiap-tiap himpunan, antara lain:
4. Operasi Implikasi dari masukan (antecedent) ke keluaran (consequent).
Himpunan fuzzy dekat, [4] = 1 diperoleh dari: f(4) = 1 ; 4<6 Himpunan fuzzy sedang, [4] = 0 Himpunan fuzzy jauh, [4] = 0 3. Evaluasi aturan Aturan fuzzy pada robot penghindar halangan sebanyak 27 aturan. Aturan tersebut dapat dilihat pada Tabel 1. Tabel 1 Aturan fuzzy. Rule
Masukan (antecedent)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Sensor
Sensor
Sensor
Kiri (L) Dekat Dekat Dekat Dekat Dekat Dekat Dekat Dekat Dekat Sedang Sedang Sedang Sedang Sedang Sedang Sedang Sedang Sedang Jauh Jauh Jauh Jauh Jauh Jauh Jauh Jauh Jauh
Tengah (F) Dekat Dekat Dekat Sedang Sedang Sedang Jauh Jauh Jauh Dekat Dekat Dekat Sedang Sedang Sedang Jauh Jauh Jauh Dekat Dekat Dekat Sedang Sedang Sedang Jauh Jauh Jauh
Kanan (R) Dekat Sedang Jauh Dekat Sedang Jauh Dekat Sedang Jauh Dekat Sedang Jauh Dekat Sedang Jauh Dekat Sedang Jauh Dekat Sedang Jauh Dekat Sedang Jauh Dekat Sedang Jauh
Keluaran (consequent) Kecepatan
Sudut_ beok
Berhenti Berhenti Sangat_pelan Sangat_pelan Pelan Pelan Normal Normal Normal Berhenti Berhenti Sangat_pelan Pelan Pelan Pelan Normal Normal Normal Berhenti Berhenti Berhenti Pelan Pelan Pelan Normal Cepat Cepat
Tetap Kanan0 Kanan0 Tetap Kanan1 Kanan1 Tetap Tetap Tetap Kiri0 Kiri0 Kanan0 Kiri1 Tetap Kanan1 Tetap Tetap Tetap Kiri1 Kiri1 Kiri1 Kiri1 Tetap Kiri1 Tetap Tetap Tetap
Kembali pada contoh kasus yang diberikan, berdasarkan nilai masukan (antecedent), terdapat dua aturan yang berkaitan dengan nilai masukan yaitu: aturan ke4 dan ke-5. Berikut contoh perhitungan pada aturan ke-4: Operator yang digunakan adalah AND, berdasarkan Persamaan 4 diperoleh: = min ( [4], [12], [10]
Setelah didapatkan nilai derajat kebenaran dari antecedent, kemudian dilakukan implikasi untuk mendapatkan nilai keluaran (consequent). Untuk mendapatkan nilai keluaran, terlebih dahulu ditentukan fungsi himpunan keanggotaan dari setiap fungsi keanggotaan keluaran. Fungsi keanggotaan untuk keluaran kecepatan terdiri atas lima fungsi, yaitu: berhenti, sangat_pelan, pelan, normal, dan cepat. Kecepatan menggunakan rentang mulai dari 0 hingga 110. Rentang ini digunakan berdasarkan persentase dari kecepatan motor. Kecepatan minimum dari putaran motor sebesar 0% dan maksimum adalah 100%. Nilai 10 merupakan tambahan nilai ketika motor berputar lebih dari kemampuan motor untuk berputar. Fungsi keanggotaan keluaran kecepatan dapat dilihat pada Gambar 12.
Gambar 12 Fungsi keanggotaan keluaran kecepatan Fungsi keanggotaan untuk representasi pada Gambar 12 berdasarkan Persamaan 4 dan 5 adalah: 0; ≤0 ⎫ −0 ; 0 ≤ ≤ 15 ⎪ = 15 ⎨30 − ⎬ ⎪ ⎪ ⎩ 15 ; 15 ≤ ≤ 30⎭ ⎧ ⎪
_
Fungsi keanggotaan keluaran untuk kecepatan secara lengkap dapat dilihat pada Lampiran 2. Fungsi kenggotaan sudut belok terdiri dari lima fungsi, yaitu kiri0, kiri1, lurus, kanan1, dan kanan0. Fungsi keanggotaan keluaran sudut belok dapat dilihat pada Gambar 13.
= min(1;1;0,33) = 0,33
10
Sehingga fungsi himpunan tetap yang baru adalah:
Gambar 13 Fungsi keanggotaan keluaran sudut belok Sudut belok menggunakan rentang mulai dari -90 hingga 90. Rentang ini digunakan karena minimum dari putaran roda pada robot adalah 0 dan maksimum adalah 180 berdasarkan nilai derajat. Nilai derajat dibagi menjadi dua, rentang 0 hingga 90 diubah menjadi -90 hingga 0 dan 90 hingga 180 menjadi 0 hingga 90. Fungsi keanggotaan untuk representasi pada Gambar 13 adalah: 0 ; ≤ −90 ⎫ + 90 ; −90 ≤ ≤ −60 ⎪ = 30 ⎨− − 30 ⎬ ⎪ ; −60 ≤ ≤ −30⎪ ⎩ 30 ⎭ ⎧ ⎪
Fungsi keanggotaan keluaran untuk sudut_belok secara lengkap dapat dilihat pada Lampiran 2. Berikut diberikan contoh proses perhitungan untuk mendapatkan nilai keluaran (consequent) pada aturan ke-4 adalah sebagai berikut: Untuk keluaran Kecepatan :
0 ; ≤ −15 ⎧ + 15 ⎫ ⎪ ; −15 ≤ ≤ −10,05⎪ 15 = ⎨ 0,33; −10,05 ≤ ≤ 4,95 ⎬ ⎪ ⎪ ; 4,95 ≤ ≤ 15 ⎩ ⎭ 15
Proses perhitungan untuk mendapatkan nilai keluaran secara lengkap dapat dilihat pada Lampiran 7. 5. Defuzzifikasi Setelah dilakukan evaluasi atas masukan dan ditetapkan basis aturannya, pengendali logika fuzzy menghasilkan keluaran untuk diberikan kepada sistem yang dikendalikan. Pengendali logika fuzzy harus mengubah variabel keluaran samar menjadi nilai-nilai tegas yang dapat digunakan untuk mengatur sistem. Proses ini disebut sebagai defuzzifikasi. Komposisi aturan menggunakan metode Mamdani, maka defuzzifikasi dilakukan dengan cara mencari nilai rata-rata. Sebelum dilakukan defuzzifikasi, terlebih dahulu ditentukan komposisi semua keluaran yang dihasilkan dari proses implikasi dengan menggunakan metode Max. Titik potong antara aturan ke-4 dan aturan ke-5 terjadi pada saat [x] = _ [x] = 0,33. (x-15)/15 = 0,33; x = 19,95
Pada saat [x] = 0,33, nilai x dapat _ ditentukan sebagai berikut: = 0,33; x = 4,95; atau Sehingga:
= 0,33; x = 25,05 Dengan demikian, fungsi sangat_pelan yang baru adalah: ⎧ ⎪
_
0;
himpunan
≤0
⎫ −0 ; 0 ≤ ≤ 4,95 ⎪ 15 = ⎨ 0,33 ; 4,95 ≤ ≤ 25,05 ⎬ ⎪30 − ⎪ ⎩ 15 ; 25,05 ≤ ≤ 30⎭
Selanjutnya dihitung titik pusat dari semua komposisi semua keluaran yang didapat dengan menggunakan Persamaan 6. Hasil defuzzifikasi untuk keluaran kecepatan: =
Untuk keluaran Sudut_belok Pada saat [x] = 0,33, nilai x dapat ditentukan sebagai berikut: = 0,33; x = -10,05, atau = 0,33; x = 4,95
; 15 ≤ ≤ 4,95 ⎫ ⎧ ⎪ 0,33 ; 4,95 ≤ ≤ 19,95 ⎪ ⎪ ⎪ ; 19,95 ≤ ≤ 25,05 = ⎨ ⎬ ⎪0,67 ; 25,05 ≤ ≤ 38,25⎪ ⎪ ⎪ ; 38,25 ≤ ≤ 55 ⎭ ⎩
1+ 2+ 3+ 4+ 5 1+ 2+ 3+ 4+ 5
=
38,17 + 61,63 + 60,46 + 279,91 + 214,78 0,82 + 4,95 + 0,87 + 8,84 + 5,61
=
654,95 = 31,01 21,12
Proses perhitungan defuzifikasi lengkap dapat dilihat pada Lampiran 7.
secara
11
Perancangan Program Simulasi Tampilan program simulasi logika fuzzy dapat dilihat pada Gambar 14.
Gambar 14 Tampilan simulasi sistem fuzzy Pada tampilan simulasi, terdapat panel input dan output serta dua tombol. Pada panel input, pengguna memasukkan nilai-nilai numerik untuk jarak sensor kiri, tengah, dan kanan. Panel output berfungsi untuk menampilkan hasil dari proses fuzzy. Tombol Fuzzy Mamdani berfungsi untuk memproses data dengan metode Mamdani, dan tombol reset berfungsi untuk membersihkan data dari semua panel input dan output. Perancangan hardware Perancangan hardware pada sistem fuzzy dapat dibagi menjadi tiga blok, yaitu Blok I sebagai rangkaian input, Blok II sebagai rangkaian pengendali sistem, dan Blok III sebagai rangkaian output. Bentuk fisik dari rangkaian sistem fuzzy robot yang telah selesai dibangun ditunjukkan oleh Gambar 15.
Blok II terdapat komponen Mikrokontroler ATMega16 yang berfungsi sebagai pengolah keseluruhan data input analog pada sensor ultrasonik untuk mendapatkan nilai jarak objek terhadap sensor. Data yang diperoleh sebagai masukan fuzzy kemudian diolah oleh mikrokontroler, sehingga dihasilkan keluran fuzzy. Terdapat beberapa rangkaian pada Blok II, antara lain rangkaian power supply, pengendali sistem, dan buzzer (digunakan pada analisis sensor). Blok III adalah rangkaian Driver Motor L298, yang berfungsi pengendali motor DC untuk kecepatan robot (motor belakang) dan motor servo untuk derajat belok (motor depan). Nilai yang dikeluarkan bergantung pada hasil fuzzifikasi. Penelitian ini dibatasi sampai dengan tampilan pada LCD karakter. Port yang digunakan Port A untuk LCD. LCD 16x2, artinya terdapat 16 kolom dan 2 baris ruang karakter. Ruang karakter dibagi menjadi dua bagian, yaitu: 1. Baris ke-1 untuk hasil pembacaan sensor (masukan fuzzy) 2. Baris ke-2 untuk keluran fuzzy (keluaran fuzzy) dan waktu proses fuzzy Implementasi Pada tahap ini dilakukan pemrograman sistem fuzzy ke dalam mikrokontroler ATMega16 dengan kompilator CodeVision AVR dalam bahasa pemrograman C. Alur pemrograman ini terdiri atas desain program C, proses compile, download program, dan tes. Alur dari pemograman dapat dilihat pada Gambar 16.
I II
III
Gambar 15 Bentuk fisik perancangan hardware Blok I terdiri atas tiga buah sensor ultrasonik, yang digunakan untuk mendeteksi objek pada jarak 2 cm sampai dengan 20 cm. Port yang digunakan adalah Port C.0 untuk sensor kiri (L), Port C.1 untuk sensor tengah (F), dan Port C.2 untuk sensor kanan (R).
Gambar 16 Alur pemrogramam pada mikrokontroler Pada kompilator CodeVision AVR perlu dilakukan konfigurasi awal pemrograman. Seperti penentuan chip sesuai kebutuhan sistem dan port-port berdasarkan fungsinya, sebagai input atau output. Setelah dilakukan konfigurasi, kemudian program ditulis menggunakan bahasa C, setelah
12
itu di-download pada mikrokontroler setelah dilakukan proses compile untuk mengetahui apakah ada error atau tidak. Jika tidak ada error maka program siap ditanamkan pada mikrokontroler. Program yang di-download pada mikrokontroler berupa file dengan format .hex, file ini disimpan di memori flash mikrokontroler ATMega16.
embedded system diperoleh dari data hasil pengujian sistem fuzzy Matlab dari semua kemungkinan kasus percobaan yang diberikan. Bentuk perancangan percobaan ditunjukkan pada Gambar 17.
Pengujian Pengujian dilakukan dengan memasukkan data jarak pada setiap sensor. Kemudian dilakukan pengulangan dengan kombinasi data yang berbeda. Sebagai contoh dilakukan pengujian sebanyak 9 kali. Pemilihan data dilihat pada jarak dekat, sedang, dan jauh terhadap objek. Hasil pengujian dapat dilihat pada Tabel 2. Tabel 2 Contoh kasus pada pengujian sistem No 1 2 3 4 5 6 7 8 9
SenKi 6 cm 6 cm 6 cm 6 cm 6 cm 6 cm 12 cm 12 cm 12 cm
Input SenTeng 6 cm 12 cm 18 cm 6 cm 12 cm 18 cm 6 cm 12 cm 18 cm
SenKa 6 cm 6 cm 6 cm 18 cm 18 cm 18 cm 6 cm 6 cm 6 cm
Output Kec. Drj 0 0 15 0 56.7 0 0 -60 33.3 30 56.7 0 0 -60 33.3 30 56.7 0
Gambar 17 Bentuk perancangan percobaan Ket.
Percobaan
OK OK OK OK OK OK OK OK OK
Pada tahapan ini dilakukan percobaan sebanyak 27 kali untuk mendapatkan akurasi dari error dan waktu proses fuzzy pada keluaran kedua sistem. Percobaan dilakukan pada data yang mewakili setiap aturan fuzzy. Hal ini bertujuan untuk mengetahui kesesuaian keluaran pada sistem fuzzy Matlab dengan embedded system. Apabila terdapat perbedaan yang cukup besar, maka dilakukan perbaikan pada pengelompokan data pada perancangan percobaan. Hasil percobaan dapat dilihat pada Gambar 18 dan 19.
Pada pengujian ini yang diutamakan adalah kesesuain akhir keputusan fuzzy yang akan diberlakukan pada perancangan robot dengan human expert. Berdasarkan kasus pengujian pada Tabel 2, untuk semua kasus telah berhasil didapatkan keputusan yang sesuai dengan human expert. Seperti pada kasus 1, human expert mengatakan jika ketiga sensor jaraknya adalah dekat, maka robot akan berhenti atau berkecepatan 0 dan diam pada posisinya dengan sudut belok tetap. Kasus lain yaitu kasus 9, robot akan bergerak cepat dan tetap pada posisinya. Hal ini dikarenakan robot mendeteksi penghalang yang berada di depannya adalah jauh dan lebih diprioritaskan jarak penghalang dari depan dibandingkan pada penghalang samping kiri atau kanan. Perancangan Percobaan
Gambar 18 Grafik akurasi kecepatan dari error hasil percobaan
Perancangan percobaan tidak jauh berbeda dengan proses perancangan. Perbedaannya terletak pada pengujian sistem. Proses perancangan dilakukan pada pengujian sistem fuzzy, sedangkan perancangan percobaan dilakukan perbandingan pada data hasil keluran sistem fuzzy dengan embedded system mikrokontroler. Rancangan fuzzy untuk
13
Gambar 19 Grafik akurasi sudut belok dari error hasil percobaan Percobaan selanjutnya adalah menghitung waktu proses fuzzy pada embedded system. Percobaan dilakukan sebanyak tiga kali pengulangan dengan kombinasi jarak yang berbeda dan mewakili setiap aturan sebanyak 27. Waktu proses fuzzy dihitung pada saat proses fuzzy dalam mikrokontroler. Hasil dari perhitungan waktu proses dapat dilihat pada Gambar 20. Grafik Rata-rata waktu proses fuzzy pada embedded system
0.6
waktu (ms)
0.5 0.4 0.3 0.2 0.1 0 1
3
5
7
9 11 13 15 17 19 21 23 25 27 Rule ke-
Gambar 20 Rata-rata waktu proses fuzzy pada embedded sysem
fuzzy pada masing-masing sistem terdapat perbedaan seperti proses pembulatan angka. Pembulatan untuk kecepatan dilakukan hanya di embedded system karena kecepatan motor pada robot hanya mendefinisikan angka dengan rentang 0-255. Selain itu, keterbatasan memori pada mikrokontroler menyebabkan proses perhitungan fuzzy dibatasi dengan dua angka desimal. Pembulatan untuk sudut belok dilakukan pada hasil dari kedua sistem, yakni Matlab dan embedded system. Hasil dari pembulatan sudut belok menghasilkan satu kesalahan yaitu pada kasus ke-23. Hal ini dikarenakan pada aturan ke-23 diprioritaskan sudut belok adalah tetap sehingga terjadi ketidaksamaan keputusan fuzzy pada kedua sistem. Berdasarkan pada Gambar 20, rata-rata waktu proses fuzzy pada setiap aturan bervariasi. Waktu proses pada aturan ke-1 adalah cepat. Sesuai dengan aturan ke-1, yaitu ketiga jarak sensor adalah dekat, maka waktu untuk mendapatkan nilai jarak bisa dengan cepat dibaca oleh ketiga sensor, sehingga proses fuzzy tidak terlalu lama untuk menerima masukan jarak dari sensor. Begitu juga pada aturan ke-27, yaitu jarak ketiga sensor adalah jauh, sehingga waktu untuk mendapatkan jaraknya pun lebih lama dibandingkan dengan aturan ke-1. Namun demikian, terdapat aturan ke-10 dan aturan ke-19 dengan waktu proses fuzzy sama dengan aturan ke-1. Hal ini dikarenakan pada aturan ke-10 dan 19 terdapat komponen jarak yang bernilai dekat, sehingga proses fuzzy nya pun bisa cepat. Untuk waktu proses fuzzy pada setiap aturan dengan tiga pengulangan adalah sama. Hal ini menunjukkan bahwa mikrokontroler merupakan hardware yang bersifat dedicated dan melakukan looping yang sama, sehingga dengan kondisi apapun hasilnya akan bersifat sama sejauh tidak ada kesalahan pada aliran arus listrik.
Analisis Hasil Percobaan Pada percobaan ini yang diutamakan adalah kesesuaian akhir keputusan fuzzy yang diberlakukan pada perancangan robot berdasarkan tingkat akurasi sistem. Berdasarkan kasus pengujian pada Gambar 18 dan 19, ratarata error untuk kecepatan sebesar 0,44% dan sudut belok sebesar 0,22%, sehingga memiliki tingkat akurasi yang besar hampir pada setiap kasusnya. Contoh pada kasus ketiga pada Gambar 18, error yang dihasilkan cukup besar dibandingkan dengan kasus-kasus yang lain. Hal ini dikarenakan pada proses perhitungan
KESIMPULAN DAN SARAN Kesimpulan Berdasarkan hasil penelitian, dapat disimpulkan bahwa penelitian berhasil mengimplementasikan logika fuzzy dalam rancang bangun dengan menggunakan Pengendali Sistem mikrokontroler ATMega16. Beberapa hal yang dapat disimpulkan antara lain: 1. Pada pengukuran sensor ultrasonik, jarak terdekat yang dapat diukur 2 cm dan terjauh
14
sebesar 348 cm. Jarak yang digunakan dalam perancangan antara 2–20 cm dengan nilai sudut elevasi sensor sebesar 40o. Hal ini sudah dapat mendeteksi objek dari setiap arah dengan baik. Selain itu kemampuan sensor ultrasonik mampu membaca hingga satuan milimeter (mm).
Kusumadewi, S. 2002. Analisis dan Desain Sistem Fuzzy Menggunakan Toolbox matlab. Yogyakarta: Graha Ilmu.
2. Sistem yang dirancang dengan menggunakan mikrokontroler ATMega16 sudah mampu menangani tiga buah input dan dua output dengan baik dan waktu respon yang singkat sehingga dapat memenuhi tujuan akhir dari penelitian.
[MathWorks] MathWorks, Inc. 2008. Help MATLAB 7.7.0. Natick, USA: MathWorks.
3. Persentase rata-rata error yang dihasilkan untuk kecepatan sebesar 0,44% dan sudut belok sebesar 0,22%. Dengan demikian, tingkat keberhasilan kecepatan sebesar 99,56% dan sudut belok 99,78%. Persentase ini menunjukkan bahwa embedded system mikrokontroler bekerja dengan baik dan benar dengan tingkat akurasi yang cukup besar. 4. Rata-rata waktu eksekusi fuzzy di dalam mikrokontroler sebesar 0.184441 ms. Waktu tercepat terjadi pada aturan ke-1 yaitu ketika ketiga sensor mendeteksi objek pada jarak dekat dan waktu paling lama terjadi pada pada aturan ke-27 yaitu ketika ketiga sensor mendeteksi objek pada jarak jauh Saran Sebagai bahan acuan untuk pengembangan berikutnya, terdapat beberapa hal yang harus diperhatikan, antara lain : 1. Untuk memaksimalkan pengambilan data pada ketiga sensor ultrasonik, maka dibutuhkan mikrokontroler yang memiliki kapasitas memori yang besar, sehingga dapat membaca masukan fuzzy hingga dalam satuan milimeter (mm).
Marimin. 2002. Teori dan Aplikasi Sistem Pakar dalam Teknologi Manajerial. Bogor: IPB Press
Munir, R. 2003. Metode Numerik. Bandung: Informatika. Negnevitsky, Michael. 2002. Artificial Intelligence: A Guide to Intelligence System. India: Pearson Education. [Parallax] Parallax, Inc. Ultrasonic Distance Parallax.
2009. PING))) Sensor. USA:
Sahid. 2005. Pengantar Komputasi Numerik dengan Matlba. Yogyakarta: Andi. Shircliff, DR. 2002. Build A Remote Controlled Robot. New York, USA: McGraw-Hill Company. Wiyono, 2007. Panduan Praktis Mikrokontroler Keluarga AVR Menggunakan DT-Combo AVR-51 Starter Kit dan DT-Combo AVR Excercise Kit. Surabaya: Innovative Electronics. Zarkasih, A. 2007. Robot Avoider dengan Sistem Fuzzy Logic menggunakan dua sensor ultrasonik dengan kendali MCU AT89C51 dan PIC16F84. http://electroniclab.com. [20 Juni 2010].
2. Penambahan hardware dan mekanik, yaitu rangkaian driver motor.
DAFTAR PUSTAKA [Atmel] Atmel, Corp. 2004. 8-bit AVR Microcontroller with 16K Bytes In-System Programmeble Flash (Atmega16). San Jose, USA: Atmel Corporation. Baihaqi, R. 2010. Pengendalian Gerak Mobil dengan penerapan Fuzzy Inference System [skripsi]. Bogor: Departemen Ilmu Komputer IPB.
15
LAMPIRAN
Lampiran 1 Fungsi keanggotaan masukan sensor kiri, sensor tengah, dan sensor kanan Sensor kiri 1; ≤6 =
12 − 6
;6 ≤
≤ 12
0 ; ≥ 12 0; ≤6 ⎫ −6 ; 6 ≤ ≤ 12 ⎪ = 6 ⎨18 − ⎬ ⎪ ; 12 ≤ ≤ 18⎪ ⎩ 6 ⎭ ⎧ ⎪
=
0 ; ≤ 12 − 12 ; 12 ≤ ≤ 18 6 1 ; ≥ 18
Sensor tengah 1; ≤6 12 − = 6
;6 ≤
≤ 12
0 ; ≥ 12
0; ≤6 ⎫ −6 ; 6 ≤ ≤ 12 ⎪ = 6 ⎨18 − ⎬ ⎪ ; 12 ≤ ≤ 18⎪ ⎩ 6 ⎭ ⎧ ⎪
=
0 ; ≤ 12 − 12 ; 12 ≤ ≤ 18 6 1 ; ≥ 18
Sensor kanan 1; ≤6 12 − = 6
;6 ≤
≤ 12
0 ; ≥ 12 0; ≤6 ⎫ −6 ; 6 ≤ ≤ 12 ⎪ = 6 ⎨18 − ⎬ ⎪ ; 12 ≤ ≤ 18⎪ ⎩ 6 ⎭ ⎧ ⎪
=
0 ; ≤ 12 − 12 ; 12 ≤ ≤ 18 6 1 ; ≥ 18
17
Lampiran 2 Fungsi keanggotaan keluaran kecepatan dan sudut belok kecepatan = {0 ; = 0} 0; ≤0 ⎫ −0 ; 0 ≤ ≤ 15 ⎪ = 15 ⎨30 − ⎬ ⎪ ; 15 ≤ ≤ 30⎪ ⎩ 15 ⎭ ⎧ ⎪
_
0 ; ≤ 15 ⎧ − 15 ⎫ ⎪ ; 15 ≤ ≤ 30⎪ = 15 ⎨55 − ⎬ ⎪ ; 30 ≤ ≤ 55⎪ ⎩ 25 ⎭ 0 ; ≤ 30 ⎧ − 30 ⎫ ⎪ ; 30 ≤ ≤ 55⎪ = 25 ⎨85 − ⎬ ⎪ ⎪ ⎩ 30 ; 55 ≤ ≤ 85⎭ 0 ; ≤ 55 ⎫ − 55 ; 55 ≤ ≤ 85 ⎪ 30 = ⎨110 − ; 85 ≤ ≤ 110 ⎬ ⎪ 25 ⎪ ⎩ ⎭ 1; ≥ 110 ⎧ ⎪
sudut belok 0 ; ≤ −90 ⎫ + 90 ; −90 ≤ ≤ −60 ⎪ = 30 ⎨− − 30 ⎬ ⎪ ; −60 ≤ ≤ −30⎪ ⎩ 30 ⎭ ⎧ ⎪
0 ; ≤ −60 ⎧ + 60 ⎫ ⎪ ; −60 ≤ ≤ −30⎪ = 30 ⎨ 0− ⎬ ⎪ ; −30 ≤ ≤ 0 ⎪ ⎩ ⎭ 30 0 ; ≤ −15 ⎧ + 15 ⎫ ⎪ ; −15 ≤ ≤ 0⎪ = 15 ⎨ ⎬ ⎪ ; 0 ≤ ≤ 15 ⎪ ⎩ 15 ⎭
=
⎧ ⎪
0; ≤0
⎫ ; 0 ≤ ≤ 30 ⎪ 30 ⎨60 − ⎬ ⎪ ; 30 ≤ ≤ 60⎪ ⎩ 30 ⎭
0 ; ≤ 30 ⎧ − 30 ⎫ ⎪ ; 30 ≤ ≤ 60⎪ = 30 ⎨90 − ⎬ ⎪ ; 60 ≤ ≤ 90⎪ ⎩ 30 ⎭
18
Lampiran 3 Hasil implementasi modul FIS logika fuzzy
19
Lampiran 4 Hasil implementasi fungsi keanggotaan sensor kiri, sensor tengah, dan sensor kanan sensor kiri
sensor tengah
sensor kanan
20
Lampiran 5 Hasil implementasi fungsi keanggotaan keluaran kecepatan dan sudut belok kecepatan
sudut belok
21
Lampiran 6 Tampilan layar simulasi matlab
22
Lampiran 7 Proses perhitungan fuzzy
Aturan ke-2
1. Fuzzifikasi
[R.5] If (SenKi is Dekat) and (SenTeng is Sedang) and (Senka is Sedang) then (Kecepatan is Pelan) and (Sudut_belok is Kanan1)
Sensor_kiri : 4 cm Sensor_tengah : 12 cm Sensor_kanan : 10 cm Jika jarak objek dari sensor kiri sebesar 4 cm, maka nilai keanggotaan fuzzy pada tiap-tiap himpunan adalah: Himpunan fuzzy dekat, [4] = 1 diperoleh dari: f(4) = 1 ; 4<6 Himpunan fuzzy sedang, [4] = 0 Himpunan fuzzy jauh, [4] = 0
Operator yang sehingga:
digunakan
= min (
adalah
[4], [10]
AND, [12],
= min(1;1;0,67) = 0,67 2. Operasi Implikasi dari masukan (antecedent) ke keluaran (consequent). Aturan ke-1 (Aturan 4)
Jika jarak objek dari sensor tengah sebesar 12 cm, maka nilai keanggotaan fuzzy pada tiaptiap himpunan adalah: Himpunan fuzzy dekat, Himpunan fuzzy sedang, diperoleh dari: f(12) = (12-6)/6 =1 Himpunan fuzzy jauh,
[12] = 0 [12] =1
a. Untuk keluaran Kecepatan : Pada saat [x] = 0,33, nilai x dapat _ ditentukan sebagai berikut: −0 = 0,33 15 x = 4,95 atau
[12] = 0
30 − = 0,33 15 30 – x= 4,95 x = 25,05
Jika jarak objek dari sensor kanan sebesar 10 cm, maka nilai keanggotaan fuzzy pada tiaptiap himpunan adalah: Himpunan fuzzy dekat, diperoleh dari: f(12) = (12-10)/6 = 0,33 Himpunan fuzzy sedang, diperoleh dari: f(12) = (10-6)/6 = 0,67 Himpunan fuzzy jauh,
[10] = 0,33
Sehingga fungsi himpunan sangat_pelan yang baru adalah:
[10] =0,67 _
[10] = 0
b. Untuk keluaran Sudut_belok Pada saat [x] = 0,33, nilai x dapat ditentukan sebagai berikut:
1. Evaluasi aturan Aturan ke-1
+ 15 = 0,33 15 x +15 = 4,95 x = -10,05
[R.4] If (SenKi is Dekat) and (SenTeng is Sedang) and (Senka is Dekat) then (Kecepatan is Sangat_Pelan) and (Sudut_belok is Tetap) Operator yang sehingga:
digunakan
= min (
adalah
[4], [10]
0; ≤0 ⎫ −0 ; 0 ≤ ≤ 4,95 ⎪ 15 = ⎨ 0,33 ; 4,95 ≤ ≤ 25,05 ⎬ ⎪30 − ⎪ ⎩ 15 ; 25,05 ≤ ≤ 30⎭ ⎧ ⎪
AND, [12],
atau = 0,33 15 x = 4,95
= min(1;1;0,33) = 0,33
23
Sehingga fungsi himpunan tetap yang baru adalah: 0 ; ≤ −15
⎧ + 15 ⎫ ⎪ ; −15 ≤ ≤ −10,05⎪ 15 = ⎨ 0,33; −10,05 ≤ ≤ 4,95 ⎬ ⎪ ⎪ ; 4,95 ≤ ≤ 15 ⎩ ⎭ 15
3. Defuzzifikasi Titik potong antara aturan ke-4 dan aturan ke-5 terjadi pada saat [x] = _ [x] = 0,33. (x-15)/15 = 0,33 x = 19,95 Sehingga :
Aturan ke-2 (Aturan 5) a. Untuk keluaran Kecepatan
; 15 ≤ ≤ 4,95 ⎧ ⎫ 15 ⎪ 0,33 ; 4,95 ≤ ≤ 19,95 ⎪ ⎪ ⎪ − 15 = ; 19,95 ≤ ≤ 25,05 ⎨ 15 ⎬ ⎪ 0,67 ; 25,05 ≤ ≤ 38,25 ⎪ ⎪ 55 − ⎪ ⎩ 25 ; 38,25 ≤ ≤ 55 ⎭
Pada saat [x] = 0,67, nilai x dapat ditentukan sebagai berikut: − 15 = 0,67 15 x – 15 = 10,05 x = 25,05
Defuzzifikasi (Persamaan 4):
atau 55 − = 0,67 25 55 – x = 16,75 x = 38,25
Menghitung Centroid
Sehingga fungsi himpunan pelan yang baru adalah:
,
=
⎧ − 15 ⎫ ⎪ ; 15 ≤ ≤ 25,05 ⎪ 15 = ⎨0,67 ; 25,05 ≤ ≤ 38,25⎬ ⎪ 55 − ⎪ ⎩ 25 ; 38,25 ≤ ≤ 55 ⎭
=
= 0,67
15
0 ; ≤ 15
4,95 − 0 2
(4,95) +
(0)
= 2,33 (0,67.4.95.4.95) + (0) = 38,17 ,
b. Untuk keluaran Sudut_belok
=
Pada saat [x] = 0,67, nilai x dapat ditentukan sebagai berikut: = 0,67 30 x = 20,1
0,33 ,
=
19,95 − 4,95 2
(19,95) +
(4,95)
= 7,5 (6,58) + (1,63) = 61,63 ,
atau 60 − = 0,67 30 60 – x= 20,1 x = 39,9
=
=
Sehingga fungsi himpunan kanan1 yang baru adalah: ⎧ ⎪ =
0; ≤0
0, 67
−
,
⎫ ⎪
; 0 ≤ ≤ 20,1 30 ⎨ 0,67 ; 20,1 ≤ ≤ 39,9 ⎬ ⎪60 − ⎪ ⎩ 30 ; 39,9 ≤ ≤ 60⎭
25,05 − 19,95 2
(25,05) +
(19,95)
= 2,55 (42,04 − 25,05) + (26,67 − 19,95) = 2,55(16,99 + 6,72) = 60,46 ,
=
0,67 ,
24
Alur dari proses fuzzy
25
Lampiran 8 Datasheet ATMega16 [Atmel 2004] page 168
26
Lampiran 9 Hasil pengujian sensor ultrasonik No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
Jarak (cm) 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 10.5 11 11.5 12 12.5 13 13.5 14 14.5 15 15.5 16 16.5 17 17.5 18 18.5 19 19.5 20
Data (cm) 2.48 2.89 3.36 3.91 4.37 4.48 4.99 5.51 6.06 6.53 7.16 7.59 8.16 8.68 9.25 9.75 10.8 11.28 11.99 12.36 12.47 13.19 13.59 14.57 15.14 15.71 16.2 16.27 16.81 16.88 17.44 17.98 18.53 19.49 20.11 20.61 20.72 21.68 22.27
Perhitungan nilai gradien (Persamaan 5): =
∑( ) − ∑ ∑ ∑( ) − (∑ )
Nilai yang diperoleh dari tabel data: = 39
-
- ∑ = 471,26 -∑ - ∑(
= 409,5 ) = 6244,87
- (∑ ) = 222086 - ∑(
) = 7058,98
=
39 ∗ 6244,87 − 471,26 ∗ 409,5 39 ∗ 7058,98 − 222086
=
243549,93 − 192980,97 275300,1 − 222086
=
50568,96 53214,22
= 0,950
27
Lampiran 10 Error dan akurasi hasil percobaan untuk kecepatan Input
Output sistem
Kecepatan
No. L F R Matlab Embedded
Error
Akurasi
1
4
3
6
0
0
0.00%
100.00%
2
5
6 12
0
0
0.00%
100.00%
3
5
5 16 14.61
15
2.67%
97.33%
4
6 12 5
15.01
15
0.05%
99.95%
5
4 10 12 32.93
33
0.23%
99.77%
6
5
24
2.04%
97.96%
7
4 18 5
56.67
57
0.00%
100.00%
8
5 14 10 39.42
40
1.47%
98.53%
9
5 14 18 44.87
45
0.29%
99.71%
10
8
6
0
0
0.00%
100.00%
11
10 3 11
0
0
0.00%
100.00%
12
11 6 14 13.80
14
1.44%
98.56%
13
8 11 6
23.72
24
1.16%
98.84%
14
10 10 10 27.99
28
0.05%
99.95%
15
12 10 16 27.99
28
0.05%
99.95%
16
8 16 6
45.24
45
0.52%
99.48%
17
8 18 9
56.95
57
0.10%
99.90%
18
8 14 16 44.87
45
0.29%
99.71%
19
16 6
6
0
0
0.00%
100.00%
20
14 5 12
0
0
0.00%
100.00%
21
18 5 18
0
0
0.00%
100.00%
22
16 10 3
32.93
33
0.23%
99.73%
23
15 10 9
33.07
33
0.21%
99.79%
24
18 8 16 32.09
32
0.28%
99.72%
25
17 18 5
56.71
57
0.52%
99.48%
26
18 18 10 77.91
78
0.12%
99.88%
27
18 18 18 88.78
89
0.25%
99.75%
0.44%
99,56%
8 16 23.52
5
Rata-rata
28
Lampiran 11 Error dan akurasi hasil percobaan untuk sudut belok No. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Input
Output sistem
Sudut belok
L F R Matlab Embedded
Error
4 5 5 6 4 5 4 5 5 8 10 11 8 10 12 8 8 8 16 14 18 16 15 18 17 18 18
0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 0.00% 6.06% 0.00% 0.00% 0.00% 0.00%
Akurasi 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 100.00% 93.94% 100.00% 100.00% 100.00% 100.00%
0.22%
99,78%
3 6 5 12 10 8 18 14 14 5 3 6 11 10 10 16 18 14 6 5 5 10 10 8 18 18 18
6 12 16 5 12 16 5 10 18 6 11 14 6 10 16 6 9 16 6 12 18 3 9 16 5 10 18
Rata-rata
0 60 60 0 41 49 0 24 24 -33 -13 -14 -26 0 8 -17 0 24 -41 -49 -30 -41 -33 -24 0 0 0
0 60 60 0 41 49 0 24 24 -33 -12 -14 -26 0 8 -17 0 24 -41 -49 -30 -41 -31 -24 0 0 0
29
Lampiran 12 Hasil percobaan untuk waktu proses fuzzy pada mikrokontroler Input
Rata-rata
No. L
F
R
Waktu (ms)
1
4
3
6
0.004937
2
5
6
9
0.03201
3
5
5
16
0.080295
4
6
12
5
0.067636
5
4
10
12
0.206434
6
5
8
16
0.080386
7
4
18
5
0.3125
8
5
15
10
0.255715
9
5
14
18
0.278049
10
8
5
6
0.016276
11
10
3
11
0.022967
12
11
6
14
0.050365
13
8
11
6
0.072402
14
10
10
10
0.146936
15
12
10
16
0.147117
16
8
16
6
0.292878
17
8
18
9
0.354818
18
8
15
16
0.32317
19
16
6
6
0.018446
20
14
5
12
0.028212
21
18
5
18
0.03201
22
16
10
3
0.281756
23
15
9
9
0.264124
24
18
8
16
0.194137
25
17
18
5
0.454554
26
18
18
11
0.4755532
27
18
18
18
0.486202
Rata-rata
0.184440193
30
Lampiran 13 Rangkaian embedded system
FREQ=11.059200MHz
+5V
LM016L
40 39 38 37 36 35 34 33
5V
RESET 10uF/16V
5V +5V
7805
VI
VO
3
10k
GND
1
2
ON/OFF
2 1 DC 12V
+5v
100uF/16V LED-RED
DOWNLOADER AVR MISO RST MOSI CLK GND VCC
1 2 3 4 5 6 CONN-H6
1 2 3 4 5 6 7 8
XTAL1 XTAL2 PA0/ADC0 PA1/ADC1 PA2/ADC2 PA3/ADC3 PA4/ADC4 PA5/ADC5 PA6/ADC6 PA7/ADC7 PB0/T0/XCK PB1/T1 PB2/AIN0/INT2 PB3/AIN1/OC0 PB4/SS PB5/MOSI PB6/MISO PB7/SCK
PC0/SCL PC1/SDA PC2/TCK PC3/TMS PC4/TDO PC5/TDI PC6/TOSC1 PC7/TOSC2 PD0/RXD PD1/TXD PD2/INT0 PD3/INT1 PD4/OC1B PD5/OC1A PD6/ICP1 PD7/OC2
22 23 24 25 26 27 28 29 14 15 16 17 18 19 20 21
3 2 1
7 8 9 10 11 12 13 14
4 5 6
1 2 3
33p
RESET
3 2 1
D0 D1 D2 D3 D4 D5 D6 D7
RS RW E
VSS VDD VEE
9 12 13
3 2 1
33p
PING3
PING2
PING1
BUZ1 2k2 BUZZER
AREF AVCC
32 30
PNP A 733
ATMEGA16 47 +5V +5V
+ 5V
31