Jumat, 13 September 2019

Senin, 24 Juni 2019

Tugas UTS

Obstacle Avoidance Robot dengan Kontroler Fuzzy


1. Tujuan [Kembali]

Pada Kontes Robot Pemadam Api Indonesia, Robot harus menelusuri sekat-sekat yang dibuat menyerupai rumah yang memiliki ruangan-ruangan. Untuk itu Robot memerlukan sensor untuk mendeteksi keberadaan sekat. Sementara, agar Robot dapat melakukan navigasi dengan baik maka sensor harus ditempatkan di beberapa tempat. Data dari sensor tersebut harus diproses sehingga dapat menghasilkan pergerakan Robot yang baik. Untuk itu Kontroler Fuzzy digunakan untuk mendapatkan pergerakan Robot yang responsive dengan input jarak dari sensor-sensor. Adapun tujuan percobaan kali ini adalah:
  1. Memahami perancangan kontroler Fuzzy
  2. Merancang kontroler Fuzzy untuk mobilisasi Robot Mobile
a. Motor DC  

b. Driver Motor L298N

c. Sensor Jarak HC-SR04
d. Kabel Jumper

e. Arduino Nano
Arduino Nano adalah development board Mikrokontroler ATmega328 yang berukuran kecil. Board ini akan dihubungkan dengan Sensor Jarak dan juga kontroler dari Robot Hexapod.

3. Dasar Teori [Kembali]

a. Gambaran Umum
Gambar di atas adalah Konfigurasi sensor jarak yang dipakai pada percobaan kali ini. Setiap sensor mewakili beberapa sektor. Sensor 1 berfungsi mengukur jarak dengan objek yang berada di kiri. Sensor 2 berfungsi mengukur jarak dengan objek yang berada di depan. Dan Sensor 3 berfungsi mengukur jarak dengan objek yang berada di kanan. 

a. Parameter-parameter
- Input
Pada percobaan kali ini, input yang digunakan adalah jarak yang berasal dari sensor jarak.
Beberapa variabel yang digunakan sebagai berikut.
  • Dekat : 0 cm sampai 40 cm
  • Sedang : 20 cm sampai 60 cm  
  • Jauh :  40 cm sampai 80 cm
- Output
Output akan digunakan untuk mengontrol motor driver melalui PWM (pada Arduino Nano 10 bit - 0 sampai 255).  Berikut ini nilai yang akan digunakan  untuk percobaan kali ini.
  • Lambat : 150 - 200 
  • Sedang : 175 - 225
  • Cepat : 200 - 250
b. Perancangan Fuzzy
Langkah 1:
Buka Aplikasi Matlab
Langkah 2:
Buka toolbox fuzzy
> Ketikkan "fuzzy" pada Commad Window Matlab untuk membuka tool Fuzzy Logic Designer.
Langkah 3:
Tambahkan 3 input pada FIS
> Klik Edit - Add Variable - Input

Berikut ini hasilnya
Langkah 4:
Tambahkan 2 Output pada FIS
> Klik Edit - Add Variable - Output
Berikut ini hasilnya
Langkah 5:
Masukkan parameter Input
Ubah nama input menjadi:
  • SKiri
  • SDepan
  • SKanan
Hasilnya seperti berikut ini

Parameter untuk input SKiri, SDepan, dan SKana dibuat sama. Berikut ini cara mengatur parameter pada input SKiri
> Klik Blok SKiri
Berikut tampilan untuk pengaturan parameter input

Parameter yang diatur adalah sebagai berikut.

Berikut Parameter-parameter yang akan digunakan:
Range : [0 80]
Untuk mf1:
  • Name : Dekat
  • Params : [0 20 40]
Untuk mf2:

  • Name : Sedang
  • Params : [20 40 60]
Untuk mf3:
  • Name : Jauh
  • Params : [40 60 80]
Hasilnya adalah sebagai berikut.
Langkah 6:
Masukkan parameter Output
Ubah nama output menjadi: 
  • MKanan
  • MKiri
Hasilnya seperti berikut ini

Parameter untuk output MKanan dan MKiri dibuat sama. Berikut ini cara mengatur parameter pada output MKanan
> Klik Blok MKanan

Berikut tampilan untuk pengaturan parameter input
Parameter yang diatur adalah sebagai berikut.
Berikut Parameter-parameter yang akan digunakan:
Range : [150 250]
Untuk mf1:
  • Name : Lambat
  • Params : [150 175 200]
Untuk mf2:

  • Name : Sedang
  • Params : [175 200 225]
Untuk mf3:
  • Name : Cepat
  • Params : [200 225 250]
Hasilnya adalah sebagai berikut.
Langkah 7:
Masukkan Aturan-aturan
> Klik blok Rule maka akan muncul Rule Editor seperti berikut

Berikut ini hasil mapping dari Kontroler Fuzzy yang telah dibuat

 


Selasa, 21 Mei 2019

Tugas UAS


Perancangan Sensor Warna dengan Algoritma Genetika



1. Tujuan [Kembali]

Pada Kontes Robot Pemadam Api Indonesia, terdapat sebuah misi untuk memadamkan api yang terdapat di dalam sebuah model rumah. Robot diharuskan melakukan navigasi sendiri tanpa bantuan operator. Salah satu alat bantu navigasi robot pada arena adalah warna lantai yang bervariasi yaitu hitam, abu-abu, dan putih. Untuk dapat membedakan ketika warna tersebut robot memerlukan sensor yang berfungsi mengkoleksi data yang merepresentasikan warna pada lantai. Salah satu cara yang sederhana adalah dengan inframerah dan phototransistor.
a. Photo-transistor

b. LED Infra-merah
c. Resistor

3. Dasar Teori [Kembali]

a. Gambaran Umum

Sensor inframerah-phototransistor yang dibuat harus bisa memaksimalkan kapasitas Analog-to-Digital Converter (ADC) pada mikrokontroler yang digunakan. Diasumsikan mikrokontroler yang digunakan adalah Arduino Nano (ATmega328p) yang memiliki spesifikasi ADC 10bit dengan tegangan kerja 5V. Ini berarti ADC memiliki ketelitian hingga ~5mV.

b. Skema Rangkaian
Rangkaian di atas adalah model sederhana dari Rangkaian inframerah-phototransistor yang akan digunakan. Untuk analisa kali ini LED Inframerah dapat kita hilangkan.
Vout adalah tengangan yang akan diberikan ke ADC yang kemudian akan diproses oleh mikrokontroler. Vout harus bervariasi dari 0-5V agar mikrokontroler dapat dengan mudah mengelompokkan warna hitam, warna abu-abu, serta warna putih. 

Vout dapat diperoleh dari persamaan berikut. 


dengan tegangan kerja 5V, Vout menjadi:
Nilai R2 diperoleh dari komponen phototransistor. Sedangkan R1 adalah Resistor tetap yang harus diatur agar Vout memiliki rentang sebesar mungkin. Diasumsikan nilai minimal R1 adalah 8KOhm dan nilai maksimal R1 adalah 20KOhm, sehingga: 


Dari persamaan di atas sangat mudah untuk memperoleh nilai R2 yang sesuai agar delta Vout maksimal jika R2 yang dipakai adalah sebuah resistor yang nilainya dapat ditentukan. Dalam kasus ini diasumsikan R2 adalah 10 buah Resistor yang diserikan, sehingga:
Nilai r1 hingga r10 dapat bernilai 100 ohm hingga 56k ohm. Nilai resistor-resistor r1 hingga r10 sangat sulit sulit dicari secara manual. Banyak sekali iterasi yang harus dilakukan dan ada kemungkinan iterasi terjebak dengan nilai maksimum lokal.

4. Pembahasan [Kembali]

a. Algoritma Genetika

Dari pemabahasan di atas maka dapat ditentukan
  • Fungsi Obyektif

  • Jumlah Populasi = 100
  • Individu


Individu terdiri dari 10 kromosom yang direpresentasikan oleh r1, r2, r3, r4, r5, r6, r7, r8, r9, dan r10.

b. Program

Buat fungsi fitness sebagai berikut menggunakan Matlab dengan mengklik New>Function lalu simpan dengan nama delta_v.m.

Funsgsi Fitness:

function tegangan = delta_v(r)
    total_r = r(1)+r(2)+r(3)+r(4)+r(5)+r(6)+r(7)+r(8)+r(9)+r(10);
    tegangan = (5 * total_r) / (8000 + total_r);
    tegangan = tegangan - ((5 * total_r) / (20000 + total_r));
    tegangan = 5 - tegangan;
 
end

Pada Command Window ketikkan optimtool ga


Isi bagian yang kosong dengan nilai berikut.

    fitness function = @delta_v
    number of variables = 10

    lower = [100,100,100,100,100,100,100,100,100,100]
    upper = [5600,5600,5600,5600,5600,5600,5600,5600,5600,5600]



    population size = 100



    centang best fitness dan best individual untuk menampilkan hasil dalam bentuk grafik.


Terakhir klik start


Berikut ini adalah hasilnya.



5. Link Download [Kembali]

Fungsi fit download

Referensi