Wall Follower Robot dengan Fuzzy Logic (Level 2)

Pada level 2 ini kita akan mencoba untuk membuat sedikit cara gimana caranya buat  kodingan fuzzy logic di arduino, bagi yang belum baca Wall Follower Robot dengan Fuzzy Logic (Level 1) sebaiknya baca itu dulu, karena ini celotehan postingan lanjutan si doi (level 1).

sebenernya di arduino ada library khususon buat kontrol fuzzy,
tinggal panggil library nya, terus masuk masukin selesai deh
katanya sih gitu,.

tapi disini kita coba secara manual, biar ngerti dikit lah ngoding fuzzy ke gimana
dari psotingan sebelum nya yang level 1 langkah pertama kan membuat fuzzyfikasi
disini juga sama langkah pertama yaitu membuat fuzzyfikasi
langsung aja ga usah banyak cat cit cut

=========================== Langkah 1 fuzzyfikasi ============================
Untuk mengingatkan kembali fuzzyfikasi pada postingan sebelumnya yaitu seperti gambar di bawah ini


untuk kodingannya seperti ini




Note Langkah 1: pada langkah ini dari fuzzyfikasi akan menghasilkan miu sensor depan dan miu sensor kanan



=========================== Langkah ke 2 Inferensi ===========================


untuk programnya kita akan mengikuti inferensi yang telah kita buat,
kurang lebih kaya gini ya


disitu kenapa pakai min,
yaa,,karena kita menggunakan sugeno dengan metode average so,
aturan sugeno yaitu min max kan, jadi pada rule ini kita harus mendapatkan nilai min dari setiap miu miu yang dibandingkan

Note Langkah 2: Langkah ke 2 ini input nya miu miu miu an, nanti hasilnya juga tetap menjadi miu miu an, tapi miu nya dimasukan kedalam aksi motor, dan miu miu ini kita gunakan miu yang terkecil dari setiap perbandingan di tiap rule nya



========================= Langkah ke 3 Mencari Z ============================

dilangkah ini kita akan mencari Z (misal aja ya namanya Z, kalau mau yang lain juga boleh)
Z ini didapatkan dari perbandingan antara miu miu yang didapatkan pada langkah ke 2, setelah miu miu ini didapatkan, maka dibandingkan si miu miu nya dan di ambil nilai yang paling besar
seperti pada gambar di bawah ini



nah untuk program nya kurang lebih sama kaya gambar di atas




========================= Langkah ke 4 Defuzzyfisi ============================

Langkah terakhir nih
defuzzyfikasi
katanya sih ini menggunakan metode average (ambil rata rata)
untuk contoh kasus pada level 1, defuzzyfikasinya seperti dibawah ini



itu kan misal ya, dengan contoh kasus jarak depan 50 cm, jarak kanan 2 cm
menghasilkan lah pwm kiri 35, dan pwm kanan 115
secara otomatis si robot akan cenderung melaju ke kiri, atau belok kiri


programnya kurang lebih seperti ini


nah seperti itulah programnya
untuk FULL CODE nya nanti di share ya
ckckckcckckck

jadi kurang lebih ya kaya gitu cara membuat program fuzzy logic di arduino
bila kurang mengerti silahkan bertanya
semoga bermanfaat



Terima Kasih

19 komentar:

Wall Follower Robot dengan Fuzzy Logic (Level 1)

Kali ini kita akan membahas bagaimana cara mengontrol robot wall follower dengan menggunakan metode fuzzy logic

bagi yang belum tau metode fuzzy logic seperti apa bisa di gugel dulu sebentar, bagi yang sudah tau bisa langsung mengikuti tahap tahap berikut ini

Langkah demi langkah untuk membuat fuzzy logic yaitu
1. Fuzzyfikasi
2. Inferensi
3. Defuzzyfikasi

udah aja gitu selesai...


Nah buat wall follower cara membuat fuzzyfikasi, inferensi dan defuzzyfikasinya seperti apa,
seperti di bawah ini

Spesifikasi Robot
- Arduino Mega
- Sensor Jarak HCSR 04 (2 buah)
- Driver Motor H-Bridge Mosfet
- LCD16x2
- Gearbox + Motor + Ban
- Frame

misal kita punya robot kaya gambar di bawah ini


GAMBAR ROBOT

dimana kira hanya menggunakan 2 buah sensor jarak untuk mendeteksi jarak kanan dan depan saja


#Tahap pertama Fuzzyfikasi
Fuzzyfikasi merupakan proses untuk mengubah input sistem yang mempunyai nilai menjadi variabel linguistik menggunakan fungsi keanggotaan yang disimpan dalam informasi fuzzy

Pertama kita harus membuat fuzzyfikasi dari setiap sensor,
pada kasus ini sensor yang digunakan hanya 2 buah saja
dibawah ini merupakan fuzzyfikasi sensor depan dan sensor kanan



#Langkah ke dua Inferensi
inferensi atau rule merupakan aturan aturan yang ditetapkan sebagai basis pengetahuan fuzzy
disini juga merupakan proses untuk mengubah input fuzzy menjadi output fuzzy


Cara baca gambar di atas yaitu
misal rule 1, Jika Depan Dekat dan Kanan Dekat Maka Motor Kiri Pelan dan Motor Kanan Cepat
dan seterusnya

#Langkah ke tiga Defuzzyfikasi
defuzzyfikasi adalah teknik dimana mengubah output fuzzy yang diperoleh dari inferensi menjadi nilai menggunakan fungsi keanggotaan yang sesuai dengan saat dilakukan fuzzyfikasi.,
pasti pada bingung kan




CUs aja ke contoh soal
misal gini
nah tuh contoh kasusnya

lantas apa yang harus dilakukan
Langkah pertama yaitu fuzzyfikasi
Step 1 Fuzzyfikasi
nih fuzzyfikasi sensor depan sama sensor kanan (kaya gambar diatas sebenernya)
penjelasanya udah di atas
kemudian

#Step 2 INFERENSI (sama kaya yang di atas juga)
lah sama juga, terus yang beda dimana dong


disini niiih
 |
V

#Step 3 Mencari Alfa Predikat dan
kan udah tuh bikin inferensinya
buat cara nyari alfa predikatnya kaya gini

oia disini kita menggunakan fungsi AND atau ambil yang terkecil (kalau ga ngerti baca baca lagi tentang teori fuzzy nya)
nih liat coretan dibawah ini

laaah itu apaan
jadi gini ceritanya kan kita lagi nyari alfa predikat, nah si alfa predikat ini di dapet nya dari setiap rule kan
jadi karena kita punya 6 rule maka otomatis ada 6 alfa predikat

misal buat nyari alfa predikat ke 4, liat di rule 4, 
RULE 1
IF     Depan JAUH dan Kanan DEKAT     MAKA     Motor Kiri PELAN dan Motor Kanan CEPAT

karena sensor depan kebaca 50 dan kanan 2 maka:
miu untuk sensor depan menghasilkan 1
miu untuk sensor kanan menghasilkan 0.8

sekarang bandingkan miu sensor depan sama sensor kanan, dan ambil yang terkecil
maka hasilnya 0.8


#Step 4





#Step 5
Defuzzyfikasi

menggunakan metore Rata-Rata (average)

nah itu ada nilai 25,  75, sama 125, dari mana tuh
karena ini menggunakan teori SUGENO dengan menggunakan metode RATA-RATA (AVERAGE)
nilai 25, 75, 125 adalah nilai tegas yang merepresentasikan bahwa
kecepatan motor:    Pelan = 25, Sedang = 75, Cepat = 125

3 komentar: