Konsep Sensor Warna (Bagian 1)

1 101

Di KRCI 2010 khususnya pada Divisi Senior Battle Expert dipertandingkan robot pemain bola, dimana terdapat 4 robot dalam satu lapangan dengan 2 robot tiap timnya. Robot tersebut harus mengambil 2 bola tenis dan beberapa bola ping – pong dan kemudian memasukkannya kedalam gawang. Dibandingkan dengan divisi lainnya dalam KRCI , divisi ini paling sedikit peminatnya – mungkin karena baru diperkenalkan dalam KRCI 2010 ini, sehingga banyak perguruan tinggi yang tidak mengambil divisi ini.

image008

Ada banyak strategi yang diterapkan untuk mengambil bola, mulai dari menggunakan kamera yang cenderung sangat sulit (karena harus melibatkan algoritma pengolahan citra) atau yang paling gampang dengan menghampiri posisi bola dengan menggunakan kompas digital – yang sudah pasti akan gagal jika kemudian bola tersenggol dan bergerak.

Cara menengah yang digunakan adalah menggunakan sensor warna. Nah,  kali ini yang saya bahas adalah tentang sensor warna. Sebelum mengetahui tentang sensor warna. mungkin ada baiknya dulu memahami apa itu warna? jangan memandang heran, atau kagum kepada saya. :mrgreen: . Mungkin ada celotehan sinis  “masak warna aja ngga tau” . Ya ya.. memang saya yakin anda paham, tetapi ngga ada salahnya untuk sedikit mengingat bukan? Saya berharap jawaban anda bukanlah: ” bukan “

sensors_color_mixed

Pada kenyataanya warna itu tidak benar – benar ada, warna hanyalah khayalan dari imajinasi kita. Heh.. mungkin anda mengira saya sedang ngawur atau mengigau. Namun jujur kali ini saya benar – benar serius 😎

Jadi saya tegaskan lagi bahwa warna tidak benar – benar ada.

Jadi bagaimana dengan biru, hijau, dan oranye?  Jawaban saya : itu semua adalah hasil dari imajinasi anda 😎

Baiklah, jika anda  tambah bingung, saya akan jelaskan hal yang paling dasar. Cahaya sebenarnya adalah sebuah gelombang elektromagnetik yang datang dengan panjang gelombang yang berbeda – beda. Panjang gelombang ini memasuki mata anda dan energinya diserap oleh sel sel pada bagian belakang mata anda. Energi cahaya ini kemudian dirubah menjadi energi kimia yang kemudian diproses oleh beberapa ratus juta neuron khusus dan setelah satu per beberapa detik ajaib, otak kita mengatakan kepada kita bahwa panjang gelombang 450nm adalah biru dan panjang gelombang 520 adalah hijau .

2owrM

Dan pada tingkat sadar kita tidak pernah benar – benar melihat panjang gelombang tersebut, namun hanya hasil dari apa yang otak kita proses yang kita tahu. Melalui proses ini juga, banyak panjang gelombang lain yang ditolak oleh otak, seperti halnya inframerah dan ultraviolet. Panjang gelombang ini juga ada namun kita tidak dapat melihatnya.

Jadi apa intinya dari ocehan ini :mrgreen:. Intinya adalah berhentilah berpikir bahwa cahaya adalah sesuatu yang dapat dilihat dan mulailah berpikir bahwa cahaya sebagai warna yang bisa ataupun tidak bisa anda liht. Hijau adalah warna, inframerah juga merupakan warna. Hanya kita menyadari warna hijau tidak berbeda dengan gelombang elektromagentik yang digunakan pada ponsel, maka kita akan memulai untuk mengerti bagaimana robot benar – benar bisa “melihat”. Sebagai contoh apa yang akan kelihatannya nampak jika kita bisa melihat inframerah tapi tidak melihat biru, hijau dan kuning? Tepat sekali

sekarang  saya akan menegaskan lagi bahwa benda tidak benar – benar memiliki warna . warna hanyalah hasil dari imajinasi kita saja. 😎

Sebagai contoh ketika kita melihat apel merah, apel tersebut sebenarnya tidaklah berwarna merah. Namun permukaan molekuler dari apel memantulkan panjang gelombang yang dilihat sebagai merah oleh otak kita dan menyerap panjang gelombang molekuler lain sehingga kita tidak melihatnya.

Sekarang jika robot dalam KRCI tersebut ingin melihat apel merah, bagaimana dia dapat melakukan ini?   Saya berani bertaruh bahwa  anda akan  mengatakan “ saya memerlukan sensor yang bisa melihat warna merah” . Padahal itujawaban salah. Karena sebenarnya, yang kita butuhkan adalah sensor yang bisa membedakan antara merah dan warna lain. Sebagai contoh andaikan sensor anda tidak bisa melihat merah namun bisa melihat warna yang lain, maka jika sensor tersebut mengatakan tidak ada apa – apa maka sensor tersebut sebenarnya  sedang melihat merah. Bukankah begitu?

Sensor warna dasar

Bayangkan kita memiliki sebuah sensor yang bisa melihat banyak warna yang berbeda, seperti photoresistor. Bagaimana kita menggunakan sensor ini untuk mendeteksi apel merah dan apel hijau? Benar dengan meninjau perbedaan keduanya

Apel merah akan memantulkan cahaya merah tetapi menyerap cahaya hijau. Begitupula apel hijau akan memantulkan cahaya hijau dan menyerap cahaya merah.

Jika kita menyinari cahaya merah ( seperti dari LED) pada kedua apel, apel merah akan memantulkan lebih banyak cahaya daripada apel hijau . Sehingga apel hijau akan kelihatan lebih cerah dibandingkan dengan apel hijau. Begitupula ketika kita menyinari cahaya cahaya hijau dari LED  hijau pada kedua apel, maka apel hijau akan kelihatan lebih cerah

Bayangkan saja kita memiliki beberapa permen coklat M&M dan kita ingin robot kita mengetahui perbedaan antara permen biru, hijau, kuning dan oranye. Bagaimana cara yang akan kita gunakan? Benar!!! Yakni dengan menggunakan LED biru, LED hijau dan juga LED merah. Kemudian sinari permen – permen tersebut dengan masing – masing secara bergantian dan catat nilai kecerahannya.

sensors_color_mm

Tampak sekali bahwa permen M&M biru akan membaca nilai hijau yang lebih cerah ketika LED biru dinyalakan tetapi didapatkan nilai yang sangat rendah untuk LED lain. Hijau dan kuning bisa dideteksi dengan cara yang serupa. Lalu timbul pertanyaan, bagaimana caranya membedakan kuning dan oranye pada M&M? gampang! Orange akan lebih dekat ke merah dalam spektrum cahaya dan akan memantulkan lebih banyak cahaya merah daripada cahaya kuning.

Tetapi hal ini akan agak sedikit lebih sulit, pertama photoresistor memiliki perbedaan tingkat sensitivitas untuk warna – warna yang berbeda. Biasanya photoresistor optimal dan memiliki puncak pada daerah sekitar 520nm. Pada nilai ini photoresistor sangat sensitif pada jarak yang jauh dari target. Dan seperti yang dilihat pada grafik, sensor tertentu bisa mendeteksi sebagian besar cahaya dan memberikan pembacaan yang terbaik pada jarak 12 inchi. Informasi ini didapatkan dari datasheet

sensors_color_distance

Jika kita memindah benda pada jarak yang berbeda atau merubah sudut benda, maka pembacaan juga akan berubah

Dan ini masih lebih rumit, yakni cahaya latar ( sebagai contoh cahaya matahari yang datang dari jendela ) bisa merubah keseluruhan pembacaan. Jadi kita memerlukan semacam shielding untuk sensor dari cahaya latar tersebut.

Dan yang masih tak kalah lebih rumit lagi perbedaan warna cahaya LED pada panjang gelombang dan kecerahan yang berbeda dapat menyebar sehingga sering terjadi pembauran beberapa panjang gelombang ( didapatkan dari datasheet)

Pencocokan Kemiripan dan Thresholding

Pada kenyataannya kita harus mengkalibrasi  sebelum sensor tersebut bekerja. Ini berarti kita harus menggunakan sensor tersebut untuk mengindera benda dan mencatat pembacaanya dan kemudian membuat grafik dari data ini. Sehingga ketika robot kita melakukan  hal ini dan mengindera benda yang sama, dapat dibandingkan kemiripan antara pembacaan baru dengan pembacaan yang dikalibrasi

Sebagai contoh bayangkan robot kita harus mengikuti garis putih pada lantai berwarna abu – abu. Robot dapat menggunakan mikrokontroler untuk mengindera nilai analog dari sensor. Berdasarkan pada fase kalibrasi, robot tersebut diukur pada nilai pada nilai analog 95 untuk lantai abu – abu, 112 untuk garis putih dan kemudian menyimpan nilai ini pada memori. Sekarang ketika robot  berada pada garis putih dan kemudian  sensor membaca 108. Lalu apa maksudnya? Apakah berada pada garis atau tidak?

Menggunakan metode thresholding, kita bisa menambahkan nilai terkalibrasi dan dibagi dengan dua untuk mencari nilai tengah. Sebagai contoh (95+112)/2 = threshold. Apapun yang berada diatas threshold adalah putih dan apapun dibawahnya adalah lantai abu – abu

Tetapi bagaimana jika kita memiliki tiga atau empat warna? Bagaimana cara memberikan nilai ambang? Daripada memberikan nilai ambang, kita bisa menggunakan pencocokan kemiripan alias bahasa sononya similarity matching. Apa yang anda lakukan untuk menentukan seberapa mirip tiap warna benda dikalibrasi nilainya. Sebagai contoh ketika robot berada pada garis putih menggunakan similarity matching, kita akan menggunakan sedikit rumus matematika sebagai berikut

Persamaan :

abs(new_reading – calibrating_reading)/calibrated_reading * 100 = similarity

sekarang mengguanakan bilangan tersebut:
lantai abu – abu = (108 – 95)/95 * 100 = 13.7% different
garis putih = (108 – 112)/112 * 100= 3.6% different

perbandingan: white line < grey floor
sehingga sensor melihat garis putih

kita dapat menggunakan metode ini untuk pembacaan warna apapun dan sejumlah warna yang ditentukan dengan pengkalibrasian terlebih dahulu. Dengan ini kita telah meninjau kalibrasi sebagai jalan untuk mengajari robot kita membedakan diantara warna – warna

jika anda sudah paham, maka dalam tulisan berikutnya akan dibahas mengenai bagaimana kita merakit dan memprogram sensor warna sederhana untuk robot kita J. Jika anda belum paham, silahkan ambil air wudhu dan kemudian baca lagi pelan – pelan

Dari Societyofrobots.com

1 Komen
  1. ajiyakin berkata

    Mantap nih artikelnya bang, berkarya terus….ditunggu…hehe…..

%d blogger menyukai ini: