Perancangan dan implementasi logika Fuzzy pada Mikrokontroler ATMega16 untuk robot penghindar halangan

(1)

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


(2)

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


(3)

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 compilerand 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.


(4)

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. Hasan Mayditia, S.Si.

NIP. 19820501 200912 1 004 NIP. 19840502 200604 1 8

Mengetahui:

Ketua Departemen Ilmu Komputer,

Dr. Ir. Sri Nurdiati, M.Sc. NIP. 19601126 198601 2 001


(5)

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.


(6)

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


(7)

DAFTAR ISI

Halaman

DAFTAR GAMBAR ... . vi

DAFTAR LAMPIRAN ... vi

PENDAHULUAN Latar Belakang ... 1

Tujuan ... 1

Ruang Lingkup ... 1

Manfaat Penelitian ... 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


(8)

DAFTAR PUSTAKA ... 15 LAMPIRAN ... 16


(9)

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


(10)

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


(11)

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. Serial In-System Programming (Serial ISP) 2. Reprogrramming capability

3. 32 x 8 General Purpose Working Register 4. 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.

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

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 Bentuk fisik dari sensor PING dapat dilihat pada Gambar 3.

Gambar 3 Ping))) Paralax Ultrasonic Range Finder


(12)

Robot

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).

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.

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.

c. Power supply (daya)

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).

Penghasil detak (Clock Generator)

[Atmel 2004] Penghasil detak atau Clock Generator tergantung pada mode data transfer, yaitu terdapat empat mode penghasil detak, yaitu:

1. Normal asynchronous 2. Double Speed asynchronous 3. Master synchronous 4. 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.

Gambar 4 Diagram blok logika penghasil detak untuk komunikasi serial Deskripsi sinyal pada Gambar 4 adalah sebagai berikut:

txclk : Transmitter clock (internal signal) rxclk : Receiver base clock (internal signal) xckl : Input from xck pin (slave operation) xcko : Clock output to xck (master operation) fosc : 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


(13)

down-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)

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:

= / (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

Suatu model variabel fuzzy seringkali dideskripsikan dalam syarat-syarat ruang fuzzy-nya. 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

pembicaraan merupakan himpunan bilangan real yang senantiasa naik secara monoton dari kiri ke kanan atau bilangan positif maupun negatif. Contoh :

- 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.

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:


(14)

Fungsi keanggotaan untuk representasi kurva trapesium adalah sebagai berikut:

Sistem Inferensi Fuzzy

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).

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).

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) : 1. Fuzzifikasi variabel masukan. Pada tahap ini

masukan yang bersifat crisp dihitung derajat

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

Fuzzifikasi adalah proses pemetaan dari input menjadi sekumpulan data samar dalam berbagai semesta pembicaraan output (Sri Kusumadewi 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.

Defuzzifikasi

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


(15)

Tidak

Ya Perancangan

Implementasi Pengujian

Percobaan

Analisis Hasil Percobaan Perancangan Percobaan

Berhasil ?

Mulai Analisis Permasalahan

Selesai keterangan:

m : gradien persamaan garis lurus n : banyaknya data

x : data x (pengukuran) y : data y (valid)

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).

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% (8)

keterangan:

: galat relatif mutlak a : nilai sejati a’ : nilai hampiran

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%− (9)

keterangan:

: galat relatif mutlak

METODE PENELITIAN

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.

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.


(16)

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

untuk menambah keputusan, perbaikan aturan

apabila sistem belum cukup memenuhi

keputusan dari human expert.

Perancangan Percobaan

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

EVALUASI ATURAN DEFUZZIFIKASI FUZZIFIKASI Masukan Crisp Masukan Fuzzy Keluaran Fuzzy Fungsi Keanggotan Masukan Basis Aturan Fungsi Keanggotan Keluaran


(17)

y = 0.950x - 0.982 0 5 10 15 20 25

0 5 10 15 20 25

Ja ra k ( c m )

Data pengukuran (cm)

Grafik hubungan antara Jarak (cm) terhadap Data pengukuran (cm) 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

Analisis Sistem Fuzzy

Sistem fuzzy pada gerak robot meliputi kecepatan dan sudut belok. Sistem pengendali

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.


(18)

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.

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.

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 12−

6 ; 6 12 0 ; 12

=

0 ; 6 −6

6 ; 6 12 18−

6 ; 12 18

=

0 ; 12 −12

6 ; 12 18 1 ; 18

Fungsi keanggotaan masukan secara

lengkap dapat dilihat pada Lampiran 1.

Berikut diberikan contoh kasus. Misalkan nilai jarak terhadap objek yang dihasilkan oleh


(19)

sensor_kiri sebesar 4 cm, sensor_tengah sebesar 12 cm, dan sensor_kanan sebesar 10 cm.

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:

 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.

R

u

le

Masukan (antecedent) Keluaran (consequent) Sensor Sensor Sensor

Kecepatan Sudut_ beok Kiri (L) Tengah (F) Kanan (R)

1 Dekat Dekat Dekat Berhenti Tetap 2 Dekat Dekat Sedang Berhenti Kanan0 3 Dekat Dekat Jauh Sangat_pelan Kanan0 4 Dekat Sedang Dekat Sangat_pelan Tetap 5 Dekat Sedang Sedang Pelan Kanan1 6 Dekat Sedang Jauh Pelan Kanan1 7 Dekat Jauh Dekat Normal Tetap 8 Dekat Jauh Sedang Normal Tetap 9 Dekat Jauh Jauh Normal Tetap 10 Sedang Dekat Dekat Berhenti Kiri0 11 Sedang Dekat Sedang Berhenti Kiri0 12 Sedang Dekat Jauh Sangat_pelan Kanan0 13 Sedang Sedang Dekat Pelan Kiri1 14 Sedang Sedang Sedang Pelan Tetap 15 Sedang Sedang Jauh Pelan Kanan1 16 Sedang Jauh Dekat Normal Tetap 17 Sedang Jauh Sedang Normal Tetap 18 Sedang Jauh Jauh Normal Tetap 19 Jauh Dekat Dekat Berhenti Kiri1 20 Jauh Dekat Sedang Berhenti Kiri1 21 Jauh Dekat Jauh Berhenti Kiri1 22 Jauh Sedang Dekat Pelan Kiri1 23 Jauh Sedang Sedang Pelan Tetap 24 Jauh Sedang Jauh Pelan Kiri1 25 Jauh Jauh Dekat Normal Tetap 26 Jauh Jauh Sedang Cepat Tetap 27 Jauh Jauh Jauh Cepat 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] = min(1;1;0,33) = 0,33

Perhitungan secara lengkap dapat dilihat pada Lampiran 7.

4. Operasi Implikasi dari masukan (antecedent) ke keluaran (consequent).

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

15 ; 0 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.


(20)

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

30 ;−90 −60 − −30

30 ;−60 −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 :

Pada saat _ [x] = 0,33, nilai x dapat ditentukan sebagai berikut:

= 0,33; x = 4,95; atau = 0,33; x = 25,05

Dengan demikian, fungsi himpunan

sangat_pelan yang baru adalah:

_ =

0 ; 0 −0

15 ; 0 4,95 0,33 ; 4,95 25,05 30

15 ; 25,05 30  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

Sehingga fungsi himpunan tetap yang baru adalah:

=

0 ; −15 + 15

15 ;−15 −10,05 0,33;−10,05 4,95

15 ; 4,95 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

Sehingga: =

; 15 4,95

0,33 ; 4,95 19,95

; 19,95 25,05

0,67 ; 25,05 38,25

; 38,25 55

Selanjutnya dihitung titik pusat dari semua komposisi semua keluaran yang didapat dengan menggunakan Persamaan 6.

Hasil defuzzifikasi untuk keluaran kecepatan:

= 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 21,12 = 31,01

Proses perhitungan defuzifikasi secara lengkap dapat dilihat pada Lampiran 7.


(21)

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.

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).

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.

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

I


(22)

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.

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 Input Output Ket.

SenKi SenTeng SenKa Kec. Drj

1 6 cm 6 cm 6 cm 0 0 OK

2 6 cm 12 cm 6 cm 15 0 OK

3 6 cm 18 cm 6 cm 56.7 0 OK

4 6 cm 6 cm 18 cm 0 -60 OK

5 6 cm 12 cm 18 cm 33.3 30 OK

6 6 cm 18 cm 18 cm 56.7 0 OK

7 12 cm 6 cm 6 cm 0 -60 OK

8 12 cm 12 cm 6 cm 33.3 30 OK

9 12 cm 18 cm 6 cm 56.7 0 OK

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

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

embedded system diperoleh dari data hasil pengujian sistem fuzzy Matlab dari semua kemungkinan kasus percobaan yang diberikan. Bentuk perancangan percobaan ditunjukkan pada Gambar 17.

Gambar 17 Bentuk perancangan percobaan

Percobaan

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.

Gambar 18 Grafik akurasi kecepatan dari error hasil percobaan


(23)

0 0.1 0.2 0.3 0.4 0.5 0.6

1 3 5 7 9 11 13 15 17 19 21 23 25 27

w a k tu ( m s) Rule

ke-Grafik Rata-rata w aktu proses fuzzy pada

embedded system

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.

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, rata-rata 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

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.

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 Gambar 20 Rata-rata waktu proses fuzzy pada


(24)

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).

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. 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).

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.

Kusumadewi, S. 2002. Analisis dan Desain

Sistem Fuzzy Menggunakan Toolbox

matlab. Yogyakarta: Graha Ilmu.

Marimin. 2002. Teori dan Aplikasi Sistem

Pakar dalam Teknologi Manajerial.

Bogor: IPB Press

[MathWorks] MathWorks, Inc. 2008. Help

MATLAB 7.7.0. Natick, USA:

MathWorks.

Munir, R. 2003. Metode Numerik. Bandung: Informatika.

Negnevitsky, Michael. 2002. Artificial

Intelligence: A Guide to Intelligence System. India: Pearson Education.

[Parallax] Parallax, Inc. 2009. PING)))

Ultrasonic Distance Sensor. USA:

Parallax.

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.


(25)

(26)

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 ; 6 12 18−

6 ; 12 18

=

0 ; 12

−12

6 ; 12 18 1 ; 18

 Sensor tengah

=

1 ; 6 12−

6 ; 6 12 0 ; 12

=

0 ; 6

−6

6 ; 6 12 18−

6 ; 12 18

=

0 ; 12

−12

6 ; 12 18 1 ; 18

 Sensor kanan

=

1 ; 6 12−

6 ; 6 12 0 ; 12

=

0 ; 6

−6

6 ; 6 12 18−

6 ; 12 18

=

0 ; 12

−12

6 ; 12 18 1 ; 18


(27)

Lampiran 2 Fungsi keanggotaan keluaran kecepatan dan sudut belok

 kecepatan

= {0 ; = 0}

_ =

0 ; 0

−0

15 ; 0 15 30−

15 ; 15 30

=

0 ; 15

−15

15 ; 15 30 55−

25 ; 30 55

=

0 ; 30

−30

25 ; 30 55 85−

30 ; 55 85

=

0 ; 55

−55

30 ; 55 85 110−

25 ; 85 110 1; 110

 sudut belok

=

0 ; −90 + 90

30 ;−90 −60

− −30

30 ;−60 −30 =

0 ; −60 + 60

30 ;−60 −30 0−

30 ;−30 0 =

0 ; −15 + 15

15 ;−15 0 15 ; 0 15

=

0 ; 0

30 ; 0 30 60−

30 ; 30 60

=

0 ; 30

−30

30 ; 30 60 90−


(28)

(29)

Lampiran 4 Hasil implementasi fungsi keanggotaan sensor kiri, sensor tengah, dan sensor kanan

 sensor kiri

 sensor tengah


(30)

Lampiran 5 Hasil implementasi fungsi keanggotaan keluaran kecepatan dan sudut belok

 kecepatan


(31)

(32)

Lampiran 7 Proses perhitungan fuzzy 1. Fuzzifikasi

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

Jika jarak objek dari sensor tengah sebesar 12 cm, maka nilai keanggotaan fuzzy pada tiap-tiap himpunan adalah:

 Himpunan fuzzy dekat, [12] = 0

 Himpunan fuzzy sedang, [12] =1

diperoleh dari: f(12) = (12-6)/6

= 1

 Himpunan fuzzy jauh, [12] = 0

Jika jarak objek dari sensor kanan sebesar 10 cm, maka nilai keanggotaan fuzzy pada tiap-tiap himpunan adalah:

 Himpunan fuzzy dekat, [10] = 0,33

diperoleh dari:

f(12) = (12-10)/6 = 0,33

 Himpunan fuzzy sedang, [10] =0,67

diperoleh dari: f(12) = (10-6)/6

= 0,67

Himpunan fuzzy jauh, [10] = 0

1. Evaluasi aturan

 Aturan ke-1

[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 digunakan adalah AND,

sehingga:

= min ( [4], [12],

[10] = min(1;1;0,33) = 0,33

 Aturan ke-2

[R.5] If (SenKi is Dekat) and (SenTeng is Sedang) and (Senka is Sedang) then (Kecepatan is Pelan) and (Sudut_belok is Kanan1)

Operator yang digunakan adalah AND,

sehingga:

= min ( [4], [12],

[10] = min(1;1;0,67) = 0,67

2. Operasi Implikasi dari masukan

(antecedent) ke keluaran (consequent).

 Aturan ke-1 (Aturan 4) a.Untuk keluaran Kecepatan :

Pada saat _ [x] = 0,33, nilai x dapat ditentukan sebagai berikut:

−0 15 = 0,33

x = 4,95 atau

30−

15 = 0,33

30 – x= 4,95 x = 25,05

Sehingga fungsi himpunan sangat_pelan yang baru adalah:

_ =

0 ; 0

−0

15 ; 0 4,95

0,33 ; 4,95 25,05

30−

15 ; 25,05 30

b.Untuk keluaran Sudut_belok

Pada saat [x] = 0,33, nilai x dapat ditentukan sebagai berikut:

+ 15

15 = 0,33

x +15 = 4,95 x = -10,05 atau

15= 0,33 x = 4,95


(33)

Sehingga fungsi himpunan tetap yang baru adalah:

=

0 ; −15

+ 15

15 ;−15 −10,05

0,33;−10,05 4,95

15 ; 4,95 15

 Aturan ke-2 (Aturan 5) a.Untuk keluaran Kecepatan

Pada saat [x] = 0,67, nilai x dapat ditentukan sebagai berikut:

−15

15 = 0,67

x – 15 = 10,05 x = 25,05 atau

55−

25 = 0,67

55 – x = 16,75 x = 38,25

Sehingga fungsi himpunan pelan yang baru adalah:

=

0 ; 15

−15

15 ; 15 25,05

0,67 ; 25,05 38,25

55−

25 ; 38,25 55

b.Untuk keluaran Sudut_belok

Pada saat [x] = 0,67, nilai x dapat ditentukan sebagai berikut:

30= 0,67 x = 20,1 atau

60−

30 = 0,67

60 – x= 20,1 x = 39,9

Sehingga fungsi himpunan kanan1 yang baru adalah:

=

0 ; 0

30 ; 0 20,1

0,67 ; 20,1 39,9

60−

30 ; 39,9 60

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 :

=

15 ; 15 4,95

0,33 ; 4,95 19,95

−15

15 ; 19,95 25,05

0,67 ; 25,05 38,25 55−

25 ; 38,25 55

Defuzzifikasi (Persamaan 4):

Menghitung Centroid

= 15 ,

= 0,67

= 4,95−0

2 ( 4,95) + ( 0)

= 2,33 ( 0,67.4.95.4.95) + ( 0) = 38,17

= 0,33

,

,

= 19,95−4,95

2 ( 19,95) + ( 4,95)

= 7,5 ( 6,58) + ( 1,63) = 61,63

= 0, 67 −

,

,

= 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

,

,


(34)

(35)

(36)

Lampiran 9 Hasil pengujian sensor ultrasonik

No. Jarak

(cm)

Data (cm)

1 1 2.48

2 1.5 2.89

3 2 3.36

4 2.5 3.91

5 3 4.37

6 3.5 4.48

7 4 4.99

8 4.5 5.51

9 5 6.06

10 5.5 6.53

11 6 7.16

12 6.5 7.59

13 7 8.16

14 7.5 8.68

15 8 9.25

16 8.5 9.75

17 9 10.8

18 9.5 11.28

19 10 11.99

20 10.5 12.36

21 11 12.47

22 11.5 13.19

23 12 13.59

24 12.5 14.57

25 13 15.14

26 13.5 15.71

27 14 16.2

28 14.5 16.27

29 15 16.81

30 15.5 16.88

31 16 17.44

32 16.5 17.98

33 17 18.53

34 17.5 19.49

35 18 20.11

36 18.5 20.61

37 19 20.72

38 19.5 21.68

39 20 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


(37)

Lampiran 10 Error dan akurasi hasil percobaan untuk kecepatan

No.

Input Output sistem Kecepatan

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 8 16 23.52 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 5 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%


(38)

Lampiran 11 Error dan akurasi hasil percobaan untuk sudut belok

No. Input Output sistem Sudut belok

L F R Matlab Embedded Error Akurasi

1 4 3 6 0 0 0.00% 100.00%

2 5 6 12 60 60 0.00% 100.00%

3 5 5 16 60 60 0.00% 100.00%

4 6 12 5 0 0 0.00% 100.00%

5 4 10 12 41 41 0.00% 100.00%

6 5 8 16 49 49 0.00% 100.00%

7 4 18 5 0 0 0.00% 100.00%

8 5 14 10 24 24 0.00% 100.00%

9 5 14 18 24 24 0.00% 100.00%

10 8 5 6 -33 -33 0.00% 100.00%

11 10 3 11 -13 -12 0.00% 100.00%

12 11 6 14 -14 -14 0.00% 100.00%

13 8 11 6 -26 -26 0.00% 100.00%

14 10 10 10 0 0 0.00% 100.00%

15 12 10 16 8 8 0.00% 100.00%

16 8 16 6 -17 -17 0.00% 100.00%

17 8 18 9 0 0 0.00% 100.00%

18 8 14 16 24 24 0.00% 100.00%

19 16 6 6 -41 -41 0.00% 100.00%

20 14 5 12 -49 -49 0.00% 100.00%

21 18 5 18 -30 -30 0.00% 100.00%

22 16 10 3 -41 -41 0.00% 100.00%

23 15 10 9 -33 -31 6.06% 93.94%

24 18 8 16 -24 -24 0.00% 100.00%

25 17 18 5 0 0 0.00% 100.00%

26 18 18 10 0 0 0.00% 100.00%

27 18 18 18 0 0 0.00% 100.00%


(39)

Lampiran 12 Hasil percobaan untuk waktu proses fuzzy pada mikrokontroler

No.

Input Rata-rata

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


(40)

Lampiran 13 Rangkaian embedded system PB0/T0/XCK 1 PB1/T1 2 PB2/AIN0/INT2 3 PB3/AIN1/OC0 4 PB4/SS 5 PB5/MOSI 6 PB6/MISO 7 PB7/SCK 8 RESET 9 XTAL2 13 XTAL1 12 PD0/RXD 14 PD1/TXD 15 PD2/INT0 16 PD3/INT1 17 PD4/OC1B 18 PD5/OC1A 19 PD6/ICP1 20 PD7/OC2 21 PC0/SCL 22 PC1/SDA 23 PC2/TCK 24 PC3/TMS 25 PC4/TDO 26 PC5/TDI 27 PC6/TOSC1 28 PC7/TOSC2 29 PA7/ADC7 33 PA6/ADC6 34 PA5/ADC5 35 PA4/ADC4 36 PA3/ADC3 37 PA2/ADC2 38 PA1/ADC1 39 PA0/ADC0 40 AREF 32 AVCC 30 ATMEGA16 10uF/16V 1 2 3 4 5 6 DOWNLOADER AVR CONN-H6 + 5 V

+5V FREQ=11.059200MHz 33p 33p MISO RST MOSI CLK GND VCC LED-RED +5v 10k +5V +5V +5V 5V 5V BUZ1 BUZZER PNP A 733 47 2k2 D 7 1 4 D 6 1 3 D 5 1 2 D 4 1 1 D 3 1 0 D 2 9 D 1 8 D 0 7 E 6 R W 5 R S 4 V S S 1 V D D 2 V E E 3 LM016L 1 2 3 PING2 1 2 3 PING3 1 2 3 PING1 VI

1 VO 3

G N D 2 7805 1 2 DC 12V 100uF/16V ON/OFF RESET


(41)

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 compilerand 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.


(42)

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


(1)

26

Lampiran 8

Datasheet

ATMega16 [Atmel 2004] page 168


(2)

27

Lampiran 9 Hasil pengujian sensor ultrasonik

No. Jarak (cm)

Data (cm)

1 1 2.48

2 1.5 2.89

3 2 3.36

4 2.5 3.91

5 3 4.37

6 3.5 4.48

7 4 4.99

8 4.5 5.51

9 5 6.06

10 5.5 6.53

11 6 7.16

12 6.5 7.59

13 7 8.16

14 7.5 8.68

15 8 9.25

16 8.5 9.75

17 9 10.8

18 9.5 11.28

19 10 11.99

20 10.5 12.36

21 11 12.47

22 11.5 13.19

23 12 13.59

24 12.5 14.57

25 13 15.14

26 13.5 15.71

27 14 16.2

28 14.5 16.27

29 15 16.81

30 15.5 16.88

31 16 17.44

32 16.5 17.98

33 17 18.53

34 17.5 19.49

35 18 20.11

36 18.5 20.61

37 19 20.72

38 19.5 21.68

39 20 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


(3)

28

Lampiran 10

Error

dan akurasi hasil percobaan untuk kecepatan

No.

Input Output sistem Kecepatan

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 8 16 23.52 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 5 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%


(4)

29

Lampiran 11

Error

dan akurasi hasil percobaan untuk sudut belok

No. Input Output sistem Sudut belok L F R Matlab Embedded Error Akurasi

1 4 3 6 0 0 0.00% 100.00%

2 5 6 12 60 60 0.00% 100.00%

3 5 5 16 60 60 0.00% 100.00%

4 6 12 5 0 0 0.00% 100.00%

5 4 10 12 41 41 0.00% 100.00%

6 5 8 16 49 49 0.00% 100.00%

7 4 18 5 0 0 0.00% 100.00%

8 5 14 10 24 24 0.00% 100.00%

9 5 14 18 24 24 0.00% 100.00%

10 8 5 6 -33 -33 0.00% 100.00%

11 10 3 11 -13 -12 0.00% 100.00% 12 11 6 14 -14 -14 0.00% 100.00% 13 8 11 6 -26 -26 0.00% 100.00%

14 10 10 10 0 0 0.00% 100.00%

15 12 10 16 8 8 0.00% 100.00%

16 8 16 6 -17 -17 0.00% 100.00%

17 8 18 9 0 0 0.00% 100.00%

18 8 14 16 24 24 0.00% 100.00%

19 16 6 6 -41 -41 0.00% 100.00% 20 14 5 12 -49 -49 0.00% 100.00% 21 18 5 18 -30 -30 0.00% 100.00% 22 16 10 3 -41 -41 0.00% 100.00% 23 15 10 9 -33 -31 6.06% 93.94% 24 18 8 16 -24 -24 0.00% 100.00%

25 17 18 5 0 0 0.00% 100.00%

26 18 18 10 0 0 0.00% 100.00%

27 18 18 18 0 0 0.00% 100.00%


(5)

30

Lampiran 12 Hasil percobaan untuk waktu proses

fuzzy

pada mikrokontroler

No.

Input Rata-rata

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


(6)

31

Lampiran 13 Rangkaian

embedded system

PB0/T0/XCK 1 PB1/T1 2 PB2/AIN0/INT2 3 PB3/AIN1/OC0 4 PB4/SS 5 PB5/MOSI 6 PB6/MISO 7 PB7/SCK 8 RESET 9 XTAL2 13 XTAL1 12 PD0/RXD 14 PD1/TXD 15 PD2/INT0 16 PD3/INT1 17 PD4/OC1B 18 PD5/OC1A 19 PD6/ICP1 20 PD7/OC2 21 PC0/SCL 22 PC1/SDA 23 PC2/TCK 24 PC3/TMS 25 PC4/TDO 26 PC5/TDI 27 PC6/TOSC1 28 PC7/TOSC2 29 PA7/ADC7 33 PA6/ADC6 34 PA5/ADC5 35 PA4/ADC4 36 PA3/ADC3 37 PA2/ADC2 38 PA1/ADC1 39 PA0/ADC0 40 AREF 32 AVCC 30 ATMEGA16 10uF/16V 1 2 3 4 5 6

DOWNLOADER AVR

CONN-H6 + 5 V

+5V FREQ=11.059200MHz 33p 33p MISO RST MOSI CLK GND VCC LED-RED +5v 10k +5V +5V +5V 5V 5V

BUZ1

BUZZER PNP A 733 47 2k2 D 7 1 4 D 6 1 3 D 5 1 2 D 4 1 1 D 3 1 0 D 2 9 D 1 8 D 0 7 E 6 R W 5 R S 4 V S S 1 V D D 2 V E E 3 LM016L 1 2 3 PING2 1 2 3 PING3 1 2 3 PING1 VI

1 VO 3

G N D 2 7805 1 2 DC 12V 100uF/16V ON/OFF RESET