Senin, 05 Oktober 2009

Robot Mobile Penjejak Arah Cahaya Dengan Kendali Logika Fuzzy


Isi tulisan ini ialah membuat suatu perangkat keras beserta perangkat lunaknya untuk pengendalian robot mobil dalam menjejak/mencari sasaran berupa sumber cahaya, berbasis pada mikrokontroler M68HC11.

Robot mobil adalah alat yang dapat bergerak secara otomatis untuk melakukan pekerjaan tertentu, diantaranya bergerak menuju lokasi atau daerah yang telah ditetapkan atau menuju sasaran tertentu. Kondisi lingkungan yang tidak bisa diprediksi menimbulkan kompleksnya pemrograman dengan menggunakan pengendali konvensional. Logika Fuzzy adalah salah satu pengendali modern yang mampu bekerja baik pada sistem-sistem non-linier dengan menawarkan kemudahan dalam perancangan program karena tidak memerlukan model matematis dari proses. Bentuk dari robot mobil yang berdimensi relatif kecil dan simple memungkinkan penggunaan teknologi mikrokontroler untuk otomatisasi sistem dan memudahkan dalam pengendalian. Dalam tugas akhir ini digunakan mikrokontroler Motorola 68HC11 sebagai kontroler, dan logika Fuzzy sebagai metode pengendali. Logika Fuzzy digunakan untuk menentukan kecepatan dua motor DC sebagai penggerak robot mobil dengan mengatur besarnya duty cycle sinyal PWM pada masing-masing motor, sedangkan sasaran/target berupa sumber cahaya.


1. Perancangan Hardware

Secara umum perancangan sistem yang akan dibuat dapat dilihat pada Gambar dibawah ini :


Sensor Cahaya

Sebagai sensor cahaya adalah LDR (Light Dependent Resistor yang dikondisikan memiliki tanggapan linier pada jangkauan ±100 ohm hingga ±25 Kohm, yaitu dengan menempatkan resistor 100 Kohm seri dengan LDR yang bertindak sebagai pembagi tegangan. Keluaran dari pembagi tegangan ini kemudian dikondisikan dengan penguat non-inverting untuk mendapatkan level tegangan ADC.

Analog to Digital Converter (ADC)

ADC yang digunakan dalam perancangan ini adalah ADC 8 bit yang telah terintegrasi di dalam mikrokontroler M68HC11. ADC internal ini dirancang bekerja pada mode 4 konversi dan stop, yaitu ADC akan mengkonversi 4 input analog dan berhenti. Untuk 1 kali proses konversi ADC internal memerlukan 128 siklus E clock (clock sistem), artinya bila digunakan clock system dengan frekuensi 2 MHz, maka proses konversinya akan berlangsung sekitar 64 μs. Sedangkan untuk tegangan referensinya, Vrh = 5 volt dan Vrl = 0 volt (ground), sehingga dengan resolusi 8 bit (256 level) akan terjadi perubahan 1 bit pada keluaran ADC untuk setiap perubahan input analog sebesar 19,531 mV.

Pembanding

Dalam perancangan pembanding akan mendeteksi tingkat kedekatan robot mobil dengan sumber cahaya.

Pada rangkaian pembanding keluaran pembagi tegangan akan dibandingkan dengan tegangan referensi (V+) untuk menentukan kondisi high atau low pada keluarannya. Pada kondisi robot mobil jauh dengan sumber cahaya maka resistansi LDR sangat besar sehingga tegangan masukan (V-) lebih positif daripada tegangan referensi, hal ini mengakibatkan keluaran dari pembanding mendekati atau sama dengan 0 volt. Untuk kondisi sebaliknya yaitu saat robot mobil dekat dengan sumber cahaya maka resistansi LDR sangat kecil sehingga tegangan masukan (V-) lebih negatif daripada tegangan referensi, hal ini mengakibatkan keluaran dari pembanding mendekati atau sama dengan +5 volt.

Driver

Rangkaian driver untuk menggerakkan motor dc diperlihatkan pada Gambar dibawah ini :

 

Masukan dari rangkaian driver ini adalah sinyal PWM yang dibangkitkan pada port A pin PA.6 dan pin PA.5 mikrokontroler M68HC11A1. Sinyal PWM akan mengatur tegangan masukan ke motor dengan mengatur lebar pulsanya.


2. Perancangan Software

Program Utama

Program utama meliputi inisialisasi sistem, pengambilan data oleh ADC, dan pengolahan data dengan menggunakan kendali fuzzy. Setelah diperoleh keluaran kendali fuzzy, program menunggu adanya interupsi IC1 (start/stop) dan IC3 (pembanding) untuk menghasilkan sinyal PWM sebagai kendali pada kedua motor DC.

Pemrograman ADC

Keluaran analog dari rangkaian sensor cahaya masuk ke port E mikrokontroler M68HC11 yang berfungsi sebagai ADC

Pada pemrograman ADC digunakan 4 input dengan mode 4 conversion dan stop. Setelah seluruh proses konversi selesai maka bit CCF akan set dan register-register ADR telah berisi data digital hasil proses konversi. Penulisan pada register ADCTL akan mereset kondisi CCF sebelumnya yang menandakan proses konversi baru.

Pemrograman Kendali Logika Fuzzy

Pengendali logika fuzzy akan mengevaluasi setiap input crisp dari ADC M68HC11 kedalam 3 tahapan, yaitu

  1. Fuzzifikasi, dalam pemrograman fuzzifikasi ini digunakan parameter fungsi keanggotaan yang sama untuk ke 4 himpunan fuzzy masukan (4 input)
  2. Evaluasi Rule, Evalusai aturan adalah inferensi dari basis-basis aturan yang telah ditetapkan. Dalam perancangan kendali logika fuzzy pada robot penjejak arah cahaya digunakan basis aturan sebanyak 560 aturan  
  3. Defuzzifikasi (perhitungan COG), metode yang digunakan dalam proses ini adalah COG (Center of Gravity), yaitu nilai tegas keluarannya diperoleh berdasarkan titik berat dari kurva hasil proses pengambilan keputusan (inference). Dalam perancangan kendali logika fuzzy ini menggunakan 2 himpunan fuzzy keluaran dengan fungsi keanggotaannya berupa singleton.

Pemrograman Pembangkit PWM

Port yang digunakan untuk pemrograman pembangkitan sinyal PWM adalah port A pin PA6/OC2/OC1 dan PA5/OC3/OC1 mikrokontroler M68HC11A1. Pemrograman pembangkitan sinyal PWM berhubungan dengan E-clock yang digunakan sistem minimum mikrokontroler M68HC11, Eclock pada perancangan sistem minimum mikrokontroler M68HC11 sebesar 2 MHz

Pemrograman Start/Stop

Saklar on-off difungsikan sebagai pemicu terjadinya interupsi IC3. Interupsi IC3 merupakan pengkondisi start/stop yang utama, selain untuk menjalankan/menghentikan robot mobil, interupsi ini juga akan mengaktifkan/menon aktifkan interupsi start/stop yang dihasilkan oleh IC1 (komparator). Untuk mengetahui terjadinya interupsi IC3, digunakan indicator LED pada pin PA4. Dalam perancangan perangkat keras jika LED menyala berarti mengindikasikan sinyal PWM aktif (kondisi start) dan interupsi IC1 enable. Jika LED mati berarti sinyal PWM tidak dihasilkan (kondisi stop) dan interupsi IC1 disable.


Sumber : http://www.elektro.undip.ac.id/wp-content/uploads/2009/06/sep08_t08_fuzzy_adian.pdf







Tidak ada komentar:

Posting Komentar