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
3. Dasar Teori [Kembali]
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:
Individu terdiri dari 10 kromosom yang direpresentasikan oleh r1, r2, r3, r4, r5, r6, r7, r8, r9, dan r10.
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
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.
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
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
0 komentar:
Posting Komentar