revBAB 4
description
Transcript of 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
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
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.
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
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)
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
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.
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
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
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
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)
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
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
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].
39
Gambar 4.17 Flowchart menentukan anggota himpunan variabel jarak
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
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
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< ]
43
Gambar 4.19 Flowchart menentukan anggota himpunan variabel haluan
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
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.
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
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
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.
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.
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.
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
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:
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.
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;
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.
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)
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:
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.
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.
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:
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.