revbab 4

49
BAB 4 HASIL DAN PEMBAHASAN 4.1 Kepustakaan Sebagai acuan dalam pengerjaan tugas akhir ini. Penulis menggunakan metode sugeno sebagai metode mengimplementasikan logika fuzzy pada robot, yang terdapat pada buku “aplikasi logika fuzzy untuk mendukung keputusan” edisi-1 dan edisi-2 karya Sri Kusumadewi, serta catatan kuliah yang telah didapat sesuai dengan materi yang berhubungan dengan masalah yang dibahas. 4.2 Perancangan dan Pembuatan Hardware Secara umum konfigurasi sistem dari implementasi logika fazzy pada robot beroda pemadam api terdiri dari input, brain (mikrokontroller) dan output. Dari ketiga bagian tersebut terdapat perangkat keras (hardware) dan lunak (sotfware). Sisi input terdiri dari beberapa sensor antara lain Sensor Ultrasonik, UVtron, Sound Aktifasi, Tombol Start dan Line Tracer.Untuk kontrol menggunakan mikrokontroller jenis AVR yaitu ATmega32 dan ATmega8535. Pada sisi output terdapat driver motor untuk pengendali motor DC, kipas dan Lcd. Software pemograman yang digunakan dalam penerapan logika fuzzy menggunakan bahasa C dengan editor CodeVisionAVR V2.05.0 versi trial. 25

Upload: jamaludin

Post on 11-Dec-2015

11 views

Category:

Documents


0 download

DESCRIPTION

Fuzzy Logic

TRANSCRIPT

Page 1: revBAB 4

BAB 4 HASIL DAN PEMBAHASAN

4.1 Kepustakaan

Sebagai acuan dalam pengerjaan tugas akhir ini. Penulis menggunakan

metode sugeno sebagai metode mengimplementasikan logika fuzzy pada robot, yang

terdapat pada buku “aplikasi logika fuzzy untuk mendukung keputusan” edisi-1 dan

edisi-2 karya Sri Kusumadewi, serta catatan kuliah yang telah didapat sesuai dengan

materi yang berhubungan dengan masalah yang dibahas.

4.2 Perancangan dan Pembuatan Hardware

Secara umum konfigurasi sistem dari implementasi logika fazzy pada robot

beroda pemadam api terdiri dari input, brain (mikrokontroller) dan output. Dari

ketiga bagian tersebut terdapat perangkat keras (hardware) dan lunak (sotfware). Sisi

input terdiri dari beberapa sensor antara lain Sensor Ultrasonik, UVtron, Sound

Aktifasi, Tombol Start dan Line Tracer.Untuk kontrol menggunakan mikrokontroller

jenis AVR yaitu ATmega32 dan ATmega8535. Pada sisi output terdapat driver motor

untuk pengendali motor DC, kipas dan Lcd. Software pemograman yang digunakan

dalam penerapan logika fuzzy menggunakan bahasa C dengan editor CodeVisionAVR

V2.05.0 versi trial.

Gambar 4.1 Block Diagram Sistem Kontrol Robot

25

Page 2: revBAB 4

26

Pada gambar 4.1 menunjukan blok diagram sistem control robot, dimana

terdapat 3 jenis sensor yang harus dikendalikan oleh mikrokontroller. Untuk

meringankan kerja dari mikrokontroller, maka mikrokontroller dibuat dua bagian

yaitu mikrokontroller induk dan mikrokontroller pembantu. Dimana mikrokontroller

pembantu yaitu ATMega8535 untuk mengendalikan kerja dari uvtron, kipas dan

sound aktifasi yang dihubungkan ke mikrokontroller induk menggunakan komunikasi

serial. Sedangkan mikrokontroller induk yaitu ATMega32 selain menerima data dari

ATMega8535, berfungsi sebagai kendali sensor proximity, tombol aktifasi dan

kendali aktuator dari robot.

ATMega32 juga sebagai brain program dari logika fuzzy dimana sensor

ultrasonik dijadikan sebagai ruang input crisp yang diubah ke dalam bentuk variabel

linguistik himpunan fuzzy. Sedang untuk keluarannya berupa nilai domain yang

didapat dari input himpunan anggota fuzzy ke dalam rule fuzzy dan menghasilkan

nilai domain dan diubah kedalam nilai crisp. Blok diagram ditunjukan oleh gambar

4.2.

Gambar 4.2 Blok diagram sistem kontrol fuzzy pada robot

4.2.1 Perancangan dan Pembuatan Perangkat input

Perangkat input menggunakan sensor ultrasonik sebagai input data untuk nilai

crisp.

1. Sensor Ultrasonik (Hardware)

Sensor ultrasonik mengunakan modul jadi dari PARALLAX dengan nama

PING))) Ultrasonic Range Finder Type #28015 seperti pada gambar 4.3 dimana

Brain (Mikrokontroller

ATMega32)

Input sensor ultrasonik

Motor DC

Fuzzifikasi Inferensi Defuzzifikasi

Fuzzy

Page 3: revBAB 4

27

terdapat 3 buah pin control. Antara lain sebuah pin signal data I/O, pin input

tegangan 5v dan pin untuk ground.

Gambar 4.3 Sensor Ultrasonik

Terdapat 5 sensor pada badan robot untuk scanning pada dinding. Jumlah sensor

disesuaikan dengan bentuk robot serta kebutuhan sudut yang akan menjadi arah

pergerakan dari robot. Scanning sensor dilakukan secara bergantian agar data yang

didapat valid. Output dari modul ini berupa data pulse I/O. Untuk mengaktifkan

ultrasonik, kontroler mengirimkan sinyal mulai kemudian PING))) memancarkan

sinyal brush pendek dan mengirim pulsa echo. Selanjutnya kontroler menghitung

lebar pulsa echo. Dimana rangkaian skematik pada sensor ultrasonik ditunjukan oleh

gambar 4.4.

Page 4: revBAB 4

28

gambar 4.4 skematik sensor utrasonik

Pada gambar 4.4 menunjukan ada 5 buah sensor ultrasonik yang dipakai pada robot.

Catudaya yang digunakan sebesar 5 volt. Serta tiap sensor menuju ke port-port mikro

dimana port yang digunakan pada mikrokontroler untuk mengendalikan sensor

adalah:

a.Sensor pertama (us1) menuju ke port A.0 pada mikrokontroller

b. Sensor kedua (us2) menuju ke port A.1 pada mikrokontroller

c.Sensor ketiga (us3) menuju ke port A.2 pada mikrokontroller

d. Sensor keempat (us4) menuju ke port A.3 pada mikrokontroller

e.Sensor kelima (us5) menuju ke port A.4 pada mikrokontroller

2. Sensor Ultrasonik (software)

Mikrokontroller memberikan sinyal pulsa high pada pin trigger pulsa input

dari sensor untuk mengaktifkan sensor ultrasonik. Untuk menghitung lebar pulsa

digunakanlah counter.Counter aktif ketika trigger diberikan pada sensor. Pin echo

pulse output terhubung dengan pin-pin pada mikrokontroler. Ketika pin echo pulse

output high maka counter aktif dan ketika pin echo kembali bernilai low maka

counter dimatikan dan jumlah counter diambil sebagai data jarak. Seperti ditunjukan

oleh flowchart dibawah.

Port ke mikrokontroler

Page 5: revBAB 4

29

Gambar 4.5 Flowchart kontrol sensor ultrasonik

Keterangan inisialisasi flowchart:

a. Us : merupakan inisialisasi untuk nilai jarak pada sensor ultrasonik. Nilai

Us didapat dari perhitungan Us=(Counter*0.034442)/2. Nilai 0.034442

didapat berdasarkan nilai default kecepatan sensor ultrasonik dalam sekali

mengirimkan dan menerima pulsa.

Perhitungan Pengukuran:

1) Jarak = (Lebar Pulsa / 29.034uS)/2 (dalam cm),

2) Dimana : 1/29.034 = 0.34442, sehingga :

3) Jarak = (Lebar Pulsa x 0.034442)/2 (dalam cm)

Page 6: revBAB 4

30

b. Dir : setting direction pada port mikrokontroller

c. Out : setting output pada port mikrokontroler

d. Inp : setting input pada port mikrokontroller

Proses pen-trigger dilakukan tidak secara urut dari sensor us1-us5, tetapi secara

melompat-lompat. Hal ini dilakukan karena sensor yang bedekatan akan saling

interferensi satu sama lain sepetri ditunjukan oleh gambar 4.6. Urutan scaning sensor

ultrasonik adalah us1, us4, us5, us2, us3.

Gambar 4.6 peletakan Sensor ultrasonik

Untuk mengaktifkan sensor ultrasonik dibutuhkan program sehingga sensor dapat

dikontrol dengan baik. Berikut psoude code untuk sensor ultrasonik:

Nilai counter pertama = 0Direksi DDRA.0 mikro diaktifkan = 1Ouput PORTA.0 mikro dimatikan = 0Delay = 5 µsOuput PORTA.0 mikro diaktifkan = 1Delay = 5 µsDireksi DDRA.0 mikro dimatikan = 0Delay = 10 µs IF PINA.0 mikro mendapat Inputan (Input=1) THEN counter=counter+1Jarak = counter x kecepatan signal / 2

Penggunaan sensor ultrasonik tipe #28015 membutuhkan pengaturan langsung pada

mikrontroller dengan dengan menggunakan registrasi pada setiap satu port-nya:

a. DDRA.0 : pengaturan direksi yang mengatur trigger untuk

mengaktifkan setiap sensor.

b. PORTA.0 : pengaturan keluraan pada port sehingga signal dapat

dikeluarkan dari sensor.

Us1 Us2Us3

Us4Us5

Page 7: revBAB 4

31

c. PINA.0 : pengaturan input pada port sehingga signal dapat masuk pada

sensor.

d. Delay : berfungsi untuk mengatur waktu yang dibutuhkan untuk

sekali mengeluarkan signal dan sekali menangkap signal.

Jadi setiap satu port mengaktifkan semua registernya yaitu input, ouput dan

direction. Tanpa pengaturan pada mikro, sensor ini tidak dapat didiaktifkan. Setelah

nilai signal didapat yaitu berupa lebar pulsa maka dibuatlah kalibrasi. Kalibrasi

digunakan untuk mendapatkan nilai jarak yang sesuai dengan jarak yang sebenarnya

dilapangan.

4.2.2 Perancangan dan Pembuatan Minimum Sistem Mikrokontroller

Perancangan mikrokontroller menggunakan ATMega32 sebagai

microprocessor IC untuk menyimpan program logika fuzzy. Penggunaan

mikrokontroller meggunakan pengaturan input, ouput dan direction pada register tiap

portnya dalam ATMega32.

Page 8: revBAB 4

32

Gambar 4.9 Perancangan mikrokontroller ATMega32

Dalam gambar 4.9 mikrokontroller Atmega32 mempunyai empat kelompok port

dengan masing-masing delapan pin setiap portnya yang dimulai dari 0-7. pin yang

digunakan dalam logika fuzzy adalah sebagai berikut:

a. PORTA.0 –A.4 digunakan untuk mendapatkan data dari PING))) sensor

ultrasonik. Pengaturannya menggunakan semua register pada tiap port-nya.

Seperti yang ditunjukan oleh gambar 4.7.

b. Port C.2 – C.7 digunakan untuk mengontrol driver motor pada robot.

1) PORTC.2 : rem motor kiri

2) PORTC.3 : direksi motor kiri

3) PORTC.4 : enabel motor kiri

Ke sensor ultrasonik

Ke Driver Motor

Page 9: revBAB 4

33

4) PORTC.5 : enabel motor kanan

5) PORTC.6 : direksi motor kanan

6) PORTC.7 : rem motor kanan

c. Port D.0 – D.1 digunakan untuk komunikasi serial.

4.2.3 Perancangan danPembuatan Driver Motor

Perancangan driver motor menggunakan rangkaian yang terdiri dari rangkaian

transistor IRF9540N, IRF540, auto copler TLP521 serta IC lm74hc139,resistor 330

ohm,resistor 10 kilo ohm.

Gambar 4.10 skematik driver motor

Pada gambar 4.10 skematk menunjukan driver motor menggunakan IC 74hc139

sebagai penerima kontrol dari mikrokontroller yaitu dengan pengalamatan :

output dari mikro menjadi input pada driver motor

output dari mikro menjadi input pada driver motor

Page 10: revBAB 4

34

a. PORTC.2 mikro menuju kaki IC 74hc139 no. 3

b. PORTC.3 mikro menuju kaki IC 74hc139 no. 2

c. PORTC.4 mikro menuju kaki IC 74hc139 no. 1

d. PORTC.5 mikro menuju kaki IC 74hc139 no. 15

e. PORTC.6 mikro menuju kaki IC 74hc139 no. 14

f. PORTC.7 mikro menuju kaki IC 74hc139 no. 13

g. Penjelasan tiap kaki pada IC 74hc139 dapat dilihat pada datasheet 74hc139 di

lampiran

Komponen pada skematik:

a. IRF540 4 buah

b. IRF9540N 4 buah

c. TLP 512 6 buah

d. Dioda 4148 4 buah

e. Resistor 330 ohm 8 buah

f. Resistor 10 kilo ohm 8 buah

g. IC 74HC139 1 buah

h. Motor DC 24 Volt 2 buah

i. Catudaya 5 dan 24 Volt

Driver mendapat input dari mikrokontroller untuk menggerakan motor dengan pwm

serta arah motor yang ditentukan oleh program.

Gambar 4.11 Pseudo code menggerakan motor

Page 11: revBAB 4

35

Pada gambar 4.11 hanya dibutuhkan 2 port mikro untuk mengatur perputaran

motor dimana satu menjadi rem dan satunya menjadi direksi. Karena IC 74hc139

merupakan IC gerbang logika NOTAND dan juga logika Multiplexer dimana 0

berarti aktif sedangkan 1 berarti mati.

Skematik lengkap untuk semua hardware yang dipakai untuk logika fuzzy

terlihat pada gambar 4.11

Gambar 4.12 Skematik lengkap pada hardware fuzzy

4.3 Pembuatan Program Metode Fuzzy Logic

Program fuzzy logic yang diterapkan pada robot beroda pemadam api adalah program

untuk menghindari dinding yang ada didepan robot sehingga dapat mengambil jalan

yang aman. Pada gambar 4.13 menunjukan struktur yang digunakan untuk membentuk

kendali logika fuzzy. Dimana digolongkan menjadi 3 macam, yaitu fuzzifikasi, rule

fuzzy (inferensi), dan defuzzifikasi.

PING))) PROSES OUTPUT (DRIVER MOTOR)

Page 12: revBAB 4

36

Gambar 4.13 blok diagram struktur dasar pengendali logika fuzzy

Setelah logika fuzzy diberikan pada robot diharapkan logika fuzzy dapat mengendalikan

navigasi dari robot dengan otomatis. Pada gambar 4.14 ditunjukan pergerakan yang akan

diambil oleh robot, yang dimulai dari pendeteksian dinding. Data hasil pendeteksian

dimasukan dalam fuzzifikasi, kemudian dilanjutkan ke inferensi (aturan). Jika inferensi

dinyatakan memenuhi maka bisa diambil defuzzifikasinya dan robot mendapatkan perintah

yang harus dilakukan.

Gambar 4.14 Blok diagram navigasi robot menggunakan fuzzy logic

4.3.1 Program Fuzzifikasi

Program fuzzifikasi didapat berdasarkan input data yang diperoleh dari sensor

ultrasonik dengan mengubahnya kedalam variable linguistik himpunan fuzzy.

START fuzzifikasi inferensiDETEKSI DINDING

ACTION defuzzifikasi

Belok kanan

maju

Belok kiri

END

YA

TIDAK

Page 13: revBAB 4

37

Gambar 4.15 Flowchart pembobotan laju bebas

Keterangan inisialisasi:

1. j : jarak depan pada robot

2. h_ki : jarak samping kiri pada robot

3. h_ka : jarak samping kira pada robot

Dari pembagian tersebut maka dibentuklah pembobotan dengan flowchart

pada gambar 4.15 menunjukan cara pembagian sensor dan pembobotan. Sensor yang

terdiri dari 5 buah dikelompokan menjadi 3 bagian dalam himpunan fuzzy yaitu:

1. Depan : us1,us2 dan us3

2. Samping kanan: us2 dan us4

Page 14: revBAB 4

38

3. Samping kiri : us3 dan us5

Gambar 4.16 Pseudo code pembobotan input fuzzy

Gambar 4.16 menunjukan pembobotan yang bertujuan untuk menitik beratkan nilai

yang akan masuk menjadi anggota himpunan fuzzy.

Sensor kelompok depan dijadikan acuan input anggota himpunan fuzzy

sebagai nilai untuk variabel jarak robot terhadap dinding yang ada didepan. Dimana

jarak dibagi menjadi 5 anggota himpunan fuzzy yaitu dengan domain:

1. dekat = [0-80 cm]

2. agak dekat = [50-100 cm]

3. sedang = [80-150 cm]

4. agak jauh = [100-250 cm]

5. jauh = [150< cm].

Page 15: revBAB 4

39

Gambar 4.17 Flowchart menentukan anggota himpunan variabel jarak

Page 16: revBAB 4

40

Keterangan inisialisasi pada flowchart:

1. Inp_j : input untuk jarak pada anggota himpunan

2. dkt : kelompok derajat himpunan jarak dekat

3. adkt : kelompok derajat himpunan jarak agak dekat

4. nml : kelompok derajat himpunan jarak normal

5. ajh : kelompok derajat himpunan jarak agak jauh

6. jh : kelompok derajat himpunan jarak jauh

7. j1 : batas domain ke-1 nilai 50

8. j2 : batas domain ke-2 nilai 80

9. j3 : batas domain ke-3 nilai 100

10. j4 : batas domain ke-4 nilai 150

11. j5 : batas domain ke-5 nilai 250

Gambar 4.17 memberikan gambaran flowchart dalam menentukan keanggotaan

himpunan variabel jarak dengan meggunakan fungsi keanggotaan representasi linier

dan kurva segitiga. penjelasan menggunakan Algoritma sebagai berikut:

1. Inp_j didapat dari hasil pembobotan jarak.

2. Jika Inp_j kurang dari j1=50 maka dekat (dkt) = 10

3. Jika Inp_j lebih besar dari j1=50 dan Inp_j kurang dari j2=80 maka

dekat (dkt) = 10 x (j2-Inp_j) / (j2-j1)

4. Jika Inp_j lebih dari j2=80 maka dkt(dekat) = 0

5. Jika Inp_j kurang dari j1=50 atau Inp_j lebih dari j3=100 maka

agak dekat (adkt) = 0

6. Jika Inp_j lebih besar dari j1=50 dan Inp_j kurang dari j2=80 maka

agak dekat (adkt) = 10 x (Inp_j-j1) / (j2-j1)

7. Jika Inp_j lebih besar dari j2=80 dan Inp_j kurang dari j3=100 maka

agak dekat (adkt) = 10 x (j2-Inp_j) / (j3-j2)

8. Jika Inp_j kurang dari j2=80 atau Inp_j lebih dari j4=150 maka

sedang(nml) = 0

Page 17: revBAB 4

41

9. Jika Inp_j lebih besar dari j2=80 dan Inp_j kurang dari j3=100 maka

sedang (nml) = 10 x (Inp_j-j2) / (j3-j2)

10. Jika Inp_j lebih besar dari j3=100 dan Inp_j kurang dari j4=150 maka

sedang (nml) = 10 x (j4-Inp_j) / (j4-j3)

11. Jika Inp_j kurang dari j3=100 atau Inp_j lebih dari j5=250 maka

agak jauh (ajh) = 0

12. Jika Inp_j lebih besar dari j3=100 dan Inp_j kurang dari j4=150 maka

agak jauh (ajh) = 10 x (Inp_j-j3) / (j4-j3)

13. Jika Inp_j lebih besar dari j4=150 dan Inp_j kurang dari j5=250 maka

agak jauh (ajh) = 10 x (j5-Inp_j) / (j5-j4)

14. Jika Inp_j kurang dari j4=150 maka jauh (jh) = 0

15. Jika Inp_j lebih besar dari j4=150 dan Inp_j kurang dari j5=250 maka

jauh (jh) = 10 x (Inp_j-j4) / (j5-j4)

16. Jika Inp_j lebih besar dari j5=250 maka jauh (jh) = 10

Untuk memudahkan dalam perhitungan, dengan menggunakan skala 1:10. Maka

setiap perhitungan dikalikan 10.

Gambar 4.18 Himpunan fuzzy pada Variabel Jarak

Page 18: revBAB 4

42

Gambar 4.18 menunjukan kurva pengelompokan himpunan fuzzy pada variabel jarak.

Pengelompokan dengan bentuk kurva bertujuan untuk memudahkan dalam

pembacaan dan penempatan nilai input dalam himpunan fuzzy.

Sedangkan untuk data yang dihasilkan dari sensor ultrasonik bagian samping

kanan dan kiri dijadikan sebagai anggota himpunan untuk menentukan nilai haluan

dari robot. Nilai haluan diambil dari nilai error atau selisih dari nilai sensor sampinng

kiri dikurangi nilai sensor samping kanan.

haluan = nilai samping kiri – nilai samping kanan

h=h_ki-h_ka;

Jika terdapat hasil error sesuai dengan indek yang ada dalam anggota himpunan fuzzy

maka dapat diambil nilai tersebut sebagai nilai haluan dari robot. Nilai indek tersebut

diambil berdasarkan nilai pengukuran robot dilapangan. Robot akan bergerak sesuai

dengan nilai haluan yang didapatnya. Robot akan menggerakan motor kanan jika nilai

menunjukan angka positif dan menggerakan motor kiri jika angka negatif. Kondisi ini

akan dibahas pada rule fuzzy. Anggota himpunan fuzzy untuk haluan dibagi kedalam 5

kelompok yaitu:

1. kiri = [<-3 ]

2. agak kiri = [ -6 - 0]

3. tengah = [-3 – 3 ]

4. agak kanan = [0 – 6 ]

5. kanan = [3< ]

Page 19: revBAB 4

43

Gambar 4.19 Flowchart menentukan anggota himpunan variabel haluan

Page 20: revBAB 4

44

Keterangan inisialisasi pada flowchart:

1. inp_h : input untuk nilai haluan.

2. b_ ki : kelompok derajat keanggotaan himpunan kiri

3. ki : kelompok derajat keanggotaan himpunan agak kiri

4. zero : kelompok derajat keanggotaan himpunan tengah

5. ka : kelompok derajat keanggotaan himpunan agak kanan

6. b_ka : kelompok derajat keanggotaan himpunan kanan

7. h1 : batas domain ke-1 nilai -6

8. h2 : batas domain ke-2 nilai -3

9. h3 : batas domain ke-3 nilai -0

10. h4 : batas domain ke-4 nilai 3

11. h5 : batas domain ke-5 nilai 6

Pada gambar 4.19 menunjukan pengelompokan keanggotaan himpunan variabel haluan, jika

dibentuk dalam algoritma dapat diartikan sebagai berikut:

1. Inp_h didapat dari hasil pembobotan haluan.

2. Jika Inp_h kurang dari h1= -6 maka kiri (b_ka) = 10

3. Jika Inp_h lebih besar dari h1= -6 dan Inp_h kurang dari h2= -3 maka

kiri (b_ki) = 10 x (h2-Inp_h) / (h2-h1)

4. Jika Inp_h lebih dari h2= -3 maka kiri (b_ka) = 0

5. Jika Inp_h kurang dari h1= -6 atau Inp_h lebih dari h3= 0 maka

agak kiri (ki) = 0

6. Jika Inp_h lebih besar dari h1= -6 dan Inp_h kurang dari h2= -3 maka

agak kiri (ki) = 10 x (Inp_h-h1) / (h2-h1)

7. Jika Inp_h lebih besar dari h2= -3 dan Inp_h kurang dari h3=0 maka

agak kiri (ki) = 10 x (h2-Inp_h) / (h3-h2)

8. Jika Inp_h kurang dari h2= -3 atau Inp_h lebih dari h4= 3 maka

tengah (zero) = 0

Page 21: revBAB 4

45

9. Jika Inp_h lebih besar dari h2= -3 dan Inp_h kurang dari h3= 0 maka

tengah (zero) = 10 x (Inp_h-h2) / (h3-h2)

10. Jika Inp_h lebih besar dari h3= 0 dan Inp_h kurang dari h4= 3 maka

tengah (zero) = 10 x (h4-Inp_h) / (h4-h3)

11. Jika Inp_h kurang dari h3= 0 atau Inp_h lebih dari h5= 0 maka

agak kanan (ka) = 0

12. Jika Inp_h lebih besar dari h3= 0 dan Inp_h kurang dari h4= 3 maka

agak kanan (ka) = 10 x (Inp_h-h3) / (h4-h3)

13. Jika Inp_h lebih besar dari h4= 3 dan Inp_h kurang dari h5=6 maka

agak kanan (ka) = 10 x (h5-Inp_h) / (h5-h4)

14. Jika Inp_h kurang dari h4= 3 maka kanan (b_ka) = 0

15. Jika Inp_h lebih besar dari h4= 3 dan Inp_h kurang dari h5= 6 maka

kanan (b_ka) = 10 x (Inp_h-h4) / (h5-h4)

16. Jika Inp_h lebih besar dari h5= 6 maka kanan (b_ka) = 10

Gambar 4.20 pseudo code menentukan keanggotaan himpunan variabel haluan

Gambar 4.20 merupakan potongan pseudo code untuk menentukan keanggotaan

himpunan variabel haluan. Untuk memudahkan dalam membaca dan pengelompokan

anggota himpunan variabel haluan maka buatlah kurva pada gambar 4.21 dengan

memiliki 5 buah puncak dengan masing-masing batas domain.

Page 22: revBAB 4

46

Gambar 4.21 Anggota himpunan fuzzy untuk variabel haluan robot

Dalam fuzzifikasi juga ditentukan inisialisasi dari kecepatan motor yang akan

digunakan dalam pengambilan keputusan nanti. Nilai dari kecepatan motor diambil

berdasarkan pengalaman dilapangan, pada gambar 4.22 merupakan potongan pseudo

code menentukan nilai kecepatan perputaran motor.

Gambar 4.22 pseudo code penentuan nilai pwm pada motor

Dari gambar 4.22 ditunjukan adanya perbedaan nilai dari pwm motor kiri(p(i)) dan

kanan(b(i)). Perbedaan tersebut karena perputaran dari roda robot yang tidak sama

dengan pasangannya yang berasal dari perbedaan torsi motor.

4.3.2 Program Rule fuzzy (Inference)

Program pada rule fuzzy menjadikan setiap anggota himpunan fuzzy bisa

menjadi faktor penentu pengambilan keputusan. Rule fuzzy memberikan nilai

Page 23: revBAB 4

47

keputusan yang akan diambil oleh robot sebelum masuk ketahap defuzzifikasi.

Sehingga robot dapat mengambil gerakan atau laju yang sesuai dengan keadaan

medan disekitar robot. Pada pergerakan robot beroda pemadam api yang dijadikan

rule adalah kecepatan yang harus diambil pada perbedaan jarak tempuh disekitar.

Dimana ada kondisi kapan motor kiri atau kanan robot harus mengambil laju cepat,

sedang, atau pelan. Dari hal tersebut robot dapat mengatur haluan yang akan diambil,

dimana robot harus mengambil jalur kiri, kanan atau lurus.Variabel yang digunakan

adalah variabel jarak dan variabel haluan dimana metode yang digunakan adalah

metode minimum.

Start proses rule_fuzzy

IF haluan=kiri < jarak=dekat THEN

nilai derajat keanggotaan aa[i] = kiri

zka[i] = aa[i] x b1 zka[i] =aa[i] x p1

ELSE IF haluan=kiri > jarak=dekat THEN

nilai derajat keanggotaan aa[i] = kiri

zka[i] = aa[i] x b1 zka[i] = aa[i] x p1

End proses

Gambar 4.23 pseude code motede min pada implikasi rule fuzzy

Penjelasan pseudo code pada gambar 4.23:

1. Dalam rule menggunakan metode min setelah nilai keanggotaan dari jarak

dan haluan didapat.

2. Menggunakan metode Sugeno orde-satu jika metode min telah terpenuhi.

zka[i]=aa[i]*b[i] dan zki[i]=aa[i]*p[i]

dengan :

zka[i] : nilai hasil implikasi metode sugeno untuk motor kanan ke-i

zki[i] : nilai hasil implikasi metode sugeno untuk motor kiri ke-i

aa[i] : nilai hasi implikasi metode min ke-i

p[i] : nilai antesenden kecepatan untuk motor kiri ke-i

b[i] : nilai antesenden kecepatan untuk motor kanan ke-i

Page 24: revBAB 4

48

Dari program tersebut terdapat 25 rule yang diberikan kepada robot untuk mengatur

laju dari robot. Berikut rulenya:

1. Jika jarak = dekat dan haluan = kiri, maka motor kiri = maju cepat, motor

kanan = diam.

2. Jika jarak = dekat dan haluan = agak kiri, maka motor kiri = maju cepat,

motor kanan = maju pelan.

3. Jika jarak = dekat dan haluan = tengah, maka motor kiri = maju, motor kanan

= maju.

4. Jika jarak = dekat dan haluan = agak kanan, maka motor kiri = maju pelan,

motor kanan = maju cepat.

5. Jika jarak = dekat dan haluan = kanan, maka motor kiri = diam, motor kanan

= maju cepat.

6. Jika jarak = agak dekat dan haluan = kiri, maka motor kiri = maju cepat,

motor kanan = diam.

7. Jika jarak = agak dekat dan haluan = agak kiri, maka motor kiri = maju,

motor kanan = maju pelan.

8. Jika jarak = agak dekat dan haluan = tengah, maka motor kiri = maju, motor

kanan = maju.

9. Jika jarak = agak dekat dan haluan = agak kanan, maka motor kiri = maju

pelan, motor kanan = maju.

10. Jika jarak = agak dekat dan haluan = kanan, maka motor kiri = diam, motor

kanan = maju cepat.

11. Jika jarak = sedang dan haluan = kiri, maka motor kiri = maju cepat, motor

kanan = maju pelan.

12. Jika jarak = sedang dan haluan = agak kiri, maka motor kiri = maju, motor

kanan = maju pelan.

13. Jika jarak = sedang dan haluan = tengah, maka motor kiri = maju, motor

kanan = maju.

Page 25: revBAB 4

49

14. Jika jarak = sedang dan haluan = agak kanan, maka motor kiri = maju pelan,

motor kanan = maju.

15. Jika jarak = sedang dan haluan = kanan, maka motor kiri = maju pelan, motor

kanan = maju cepat.

16. Jika jarak = agak jauh dan haluan = kiri, maka motor kiri = maju cepat, motor

kanan = maju pelan.

17. Jika jarak = agak jauh dan haluan = agak kiri, maka motor kiri = maju, motor

kanan = maju pelan.

18. Jika jarak = agak jauh dan haluan = tengah, maka motor kiri = maju cepat,

motor kanan = maju cepat.

19. Jika jarak = agak jauh dan haluan = agak kanan, maka motor kiri = maju

pelan, motor kanan = maju.

20. Jika jarak = agak jauh dan haluan = kanan, maka motor kiri = maju pelan,

motor kanan = maju cepat.

21. Jika jarak = jauh dan haluan = kiri, maka motor kiri = maju cepat, motor

kanan = maju pelan.

22. Jika jarak = jauh dan haluan = agak kiri, maka motor kiri = maju, motor

kanan = maju pelan.

23. Jika jarak = jauh dan haluan = tengah, maka motor kiri = maju cepat, motor

kanan = maju cepat.

24. Jika jarak = jauh dan haluan = agak kanan, maka motor kiri = maju pelan,

motor kanan = maju.

25. Jika jarak = jauh dan haluan = kanan, maka motor kiri = maju pelan, motor

kanan = maju cepat.

Pada tabel 4.1 dan tabel 4.2 menunjukan rule fuzzy sebagai ringkasan pada

penjabaran di atas rule diatas.

Page 26: revBAB 4

50

Tabel4.1 rule fuzzy untuk motor kiri

HALUANJARAK

Dekat Agak dekat Sedang Agak jauh Jauh

Kiri Maju cepat Maju cepat Maju cepat Maju cepat Maju cepat

Agak kiri Maju cepat Maju Maju Maju Maju

Tengah Maju Maju Maju Maju cepat Maju cepat

Agak kanan Maju pelan Maju pelan Maju pelan Maju pelan Maju pelan

Kanan Diam Diam Maju pelan Maju pelan Maju pelan

Tabel 4.2 rule fuzzy untuk motor kanan

HALUANJARAK

Dekat Agak dekat Sedang Agak jauh Jauh

Kiri Diam Diam Maju pelan Maju pelan Maju pelan

Agak kiri Maju pelan Maju pelan Maju pelan Maju pelan Maju pelan

Tengah Maju Maju Maju Maju cepat Maju cepat

Agak kanan Maju cepat Maju Maju Maju Maju

Kanan Maju cepat Maju cepat Maju cepat Maju cepat Maju cepat

4.3.3 Defuzzifikasi

Pada metode SUGENO defuzzifikasi dilakukan dengan cara mencari nilai

rata-ratanya.

Page 27: revBAB 4

51

Gambar 4.24 flowchart defuzzifikasi robot

Keterangan:

1. zka[i] : nilai hasil implikasi metode sugeno untuk motor kanan ke-i

2. zki[i] : nilai hasil implikasi metode sugeno untuk motor kiri ke-i

3. aa[i] : nilai hasil implikasi metode min ke-i

4. totaa : total jumlah aa[i]

5. totzki : total jumlah zki[i]

6. totzka : total jumlah zka[i]

7. r : rata-rata untuk pwm motor kanan

8. l : rata-rata untuk pwm motor kiri

Pada gambar 4.19 menunjukan urutan mencari rata-rata untuk defaszzifikasi dengan

metode sugeno dimana:

1. jumlahkan semua hasil dari implikasi metode min yaitu

Page 28: revBAB 4

52

total implikasi min (totaa) = ∑ aa[i]

2. jumlahkan juga semua hasil implikasi pada metode sugeno yaitu

a. total implikasi metode sugeno motor kanan (totzka) =∑ zka[i]

b. total implikasi metode sugeno motor kiri (totzka) =∑ zki[i]

3. Cari rata-rata untuk mencari nilai defuzzifikasi:

a. r = totzka / totaa

b. l = totzki / totaa

4. r sebagai nilai crisp untuk pwm kanan dan l sebagai nilai crisp untuk pwm

motor kiri.

Maka didapatlah keluaran crisp dimana pseudo code sebagai berikut:

Start proses defuzzifikasi

Input aa[i]

Input zka[i]

Input zki[i]

Total aa = ∑ aa[i]

Total zka = ∑ zka[i]

Total zki = ∑ zki[i]

Pwm_motor_kanan = total zka / total aa

Pwm_motor_kiri = total zki / total aa

End proses

Gambar 4.25 pseudo code defuzzifikasi dalam menentukan pwm

Dengan cara tersebut maka didapatlah besar pwm untuk menjalankan masing-masing

motor untuk memutar roda.

4.3.4 Perancangan pergerakan robot dengan program fuzzy

Perancangan pergerakan robot yang diinginkan setelah diberikan program

adalah robot dapat melaju dengan baik sampai pada ruang sumber api berada dengan

menggunakan tiga metode yaitu:

Page 29: revBAB 4

53

1. Logika fuzzy robot bergerak bebas

Robot akan bebas bergerak ke samping atau pun ke kanan dengan cara

mencari titik terjauh dari ruangan. Robot bergerak mencari titik tengah antara dinding

kiri dan kanan.Semua sensor digunakan pada metode ini.

Gambar 4.26 Robot bergerak mengikuti jarak terjauh

Pada gambar 4.26 menunjukan pergerakan dari robot yang selalu mencari titik tengah

agar robot dapat melaju lurus.

2. Logika fuzzy robot bergerak mengikuti dinding kanan

Robot diharapkan akan mengikuti dinding bagian kanan robot. Metode ini

dapat membatasi pergerakan robot dengan cara menentukan nilai acuan pada robot.

Sehingga robot melaju dengan tetap mengacu pada nilai yang ditentukan. Pada

gambar 4.27 menunjukan nilai acuan ditentukan dari jarak sensor bagian kanan

terhadap dinding kanan.

Gambar 4.27 penggunaan sensor ultrasonik pada telusur dinding kanan

Sejauh robot tidak menempel pada dinding bagian kanan dan tidak terlalu menjauh

dari dinding bagian kanan. Robot diberikan nilai untuk menjadi nilai acuan jarak

robot pada dinding kanan sebagai haluan robot.

Page 30: revBAB 4

54

Haluan= nilai setting – nilai samping kanan

h=10-h_ka;

Nilai acuan didapat berdasarkan pengukuran nilai rata-rata haluan robot terhadap

dinding kanan robot.

Gambar 4.28 Robot menelusuri dinding kanan

Pada gambar 4.28 menunjukan pergerakan yang dilakukan robot jika menggunkan

telusur dinding kanan.

3. Logika fuzzy robot menelususi dinding kiri

Robot bergerak menelusuri dinding kiri. Ini merupakan kebalikan dari telusur

dinding kanan. Sensor yang digunakan merupakan bagian kiri robot.

Gambar 4.29 penggunaan sensor ultrasonik pada telusur dinding kiri

Sama halnya dengan telusur dinding kanan. Gambar 4.29 menunjukan telusur dinding

kiri memakai nilai acuan yang didapat berdasarkan jarak robot terhadap dinding kiri

robot.nilai ini dijadikan acuan untuk menentukan haluan.

Haluan=nilai samping kiri – nilai setting

h=h_ki-12;

Page 31: revBAB 4

55

Gambar 4.30 Robot menelusuri dinding kiri

Pada gambar 4.30 menunjukan pergerakan robot menelusuri dinding samping kiri

robot.

4.4 Pengujian Implementasil Logika Fuzzy

Tempat pengujian program pada robot dilakukan pada arena Robot Kontes

Cerdas Indonesia 2011.

Gambar 4.31 Arena Kontes Robot Cerdas Indonesia

Pengujian didasarkan pada sejauh mana robot dapat sampai pada ruangan

yang menjadi sumber api.

Page 32: revBAB 4

56

4.4.1 Pengujian Program pada Perangkat Input Fuzzy

Perangkat input untuk input puzzy menggunakan PING))) ultrasonik sebagai

hardware-nya. Pengujian menggunkan mikrokontroller untuk mengaktifkan sensor.

Maka didapatlah lebar pulsa yang dikeluarkan dan diperoleh oleh sensor ultrasonik

yang dapat diukur pada osiloskop dimana pulsa yang dikeluarkan sama dengan pulsa

pantul yang didapat. Serta semakin jauh objek yang diukur maka semakin lebar pulsa

yang didapat.

Gambar 4.32 Pulsa yang dihasilkan pada pengukuran dari 3 cm pada penggaris

Gambar 4.33 Pulsa yang dihasilkan pada pengukuran tanpa penghalang(maksimal)

Page 33: revBAB 4

57

Berdasarkan dari hasil pengukuran yang ditunjukan oleh gambar 4.32 dan

gambar 4.33 dapat dihitung periode, frekuensi dan voltase puncak kepuncaknya,

dimana pengaturan menggunakan:

Time/Div = 0,2 ms Volt/Div = 2 Volt

Dari hasil pengukuran pada gambar 4.32 Menunjukan bahwa pulsa yang dihasilkan

pada objek yang berada pada jarak 3 cm. sedangkan pada gambar 4.33 menunjukan

pulsa maksimal. Sehingga dapat dihitung menggunakan rumus:

1. Menghitung periode

T= Div H x Time/Div

T = 2 x 0,2 ms = 0,4 ms

2. Menghitung Frekuensi

F= 1/T

F= 1/0,4x10-3 = 2,5 KHz

3. Menghitung tegangan puncak ke puncak

Vpp = Div V x Volt/Div

Vpp = 1 x 2 Volt = 2 Volt

Hasil pengukuran sensor ultrasonik pada objek dimana sensor telah dikalibrasi pada

program, dapat dilihat pada tampilan Lcd16*2 sebagai monitor nilai keanggotaan

fuzzy.

Gambar 4.34 nilai masing-masing sensor ultrasonik dari us1-us5

4.4.2 Pengujian Logika Fuzzy

Hasil pengacakan pada lapangan sebanyak 30 kali, pada lapangan yang seperti

berikut:

Page 34: revBAB 4

58

Gambar 4.35 Denah arena Kontes Robot Cerdas Indonesia 2011

Tabel 4.3 Pengujian implementasi logika fuzzy pada Robot

Metode pada

Robot

Pengujian Ke-

1 2 3 4 5 6 7 8 9 10

Maju bebas √ √ √ x √ √ x √ √ x

Telusur kanan √ √ x √ x x √ √ x √

Telusur kiri x √ √ √ √ x √ √ √ √

Keterangan:

√ : robot dapat menelusuri ruangan dan kembali ke titik home.

x : robot tidak dapat meneruskan pergerakan, dikarenakan menabrak

penghalang berupa dinding, sound damper dan furniture.

Page 35: revBAB 4

59

4.5 Analisis Logika Fuzzy

Berdasarkan hasil pengujian sebanyak 30 kali maka didapat:

Berhasil maju bebas= 7 Berhasil telusur kanan = 6

Berhasil telusur kiri = 8 Banyak percobaan = 30

= 70%

1. Logika fuzzy robot laju bebas

Penggunaan metode ini memiliki kelebihan dan juga kekurangan. Berikut

kelebihan dan kekurangan program ini:

a. Kelebihan

Kelebihan metode ini adalah robot dapat bergerak bebas hanya dengan

membandingkan sisi kiri dan kanan robot. Perbandingan ini memberikan

kelebihan robot dapat bergerak ke tengah area. Serta robot dapat memilih

jalan terjauh.

b. Kekurangan

Pada gambar 4.36 menunjukan kelemahan penggunaan pergerakan ini. jika

robot masuk kedalam ruang yang mengerucut. Akibatnya robot akan terjepit

dan tidak dapat maju ke depan. Sehingga robot harus mundur. Ini disebabkan

karena nilai input pada semua sensor sama.

Page 36: revBAB 4

60

Gambar 4.36 Input fuzzy berada pada nilai yang hampir sama

2. Logika fuzzy robot menelusuri dinding kanan

Pada pergerakan robot menggunakan metode telusur dinding kanan

mempunyai kelebihan dan kelemahan yaitu:

a. Kelebihan

Pergerakan robot dapat menelusuri dinding bagian kanan sehingga robot akan

fokus terhadap objek yang berada pada sisi kanan dan tidak terpengaruh oleh

dinding yang ada pada sisi kiri robot. Serta jika posisi lilin berada pada kamar

yang dapat di jangkau oleh telusur dinding kanan dengan cepat.

b. Kelemahan

Menggunakan program menelusuri dinding kanan seperti ini, juga

memberikan kelemahan pada robot. Pada gambar 4.37 menunjukan robot

tidak dapat mendeteksi dinding bagian kiri robot.

Gambar 4.37 Sensor kiri robot tidak mendeteksi halangan

Jika robot tidak dapat mendeteksi bagian kiri robot maka robot dapat

diberikan program kondisi pada sensor kiri untuk menghindari dinding di sisi

kiri robot.

3. Logika fuzzy robot menelusuri dinding kiri

Menggunakan metode telusur dinding kiri pun juga mempunyai kelebihan dan

kelemahan, yaitu:

Page 37: revBAB 4

61

a. Kelebihan

Robot dapat bergerak fokus terhadap satu sisi dinding yaitu sisi dinding kiri

robot. Dalam penggunaan metode ini, robot dapat menguntungkan jika posisi

lilin berada pada sisi dinding kamar.

b. Kelemahan

Sama halnya dengan metode robot telusr diding kanan. Namun sebaliknya

pada metode ini robot tidak dapat mendeteksi dinding sebelah kanan. Seperti

yang ditunjukan oleh gambar 4.38.

Gambar 4.38 Sensor kanan robot tidak mendeteksi halangan

Jika robot tidak dapat mendeteksi bagian kanan robot maka robot dapat

diberikan program kondisi pada sensor kanan untuk menghindari dinding di

sisi kanan robot.