Dalam proyek ini kita akan Mendeteksi Warna menggunakan Modul Sensor Warna TCS3200 dengan Raspberry Pi. Disini kami menggunakan kode Python untuk Raspberry Pi untuk mendeteksi warna menggunakan sensor TCS3200. Untuk mendemonstrasikan pendeteksian warna kita telah menggunakan LED RGB, LED RGB ini akan menyala dalam warna yang sama, dimana objek ditampilkan di dekat sensor. Saat ini kami telah memprogram Raspberry Pi untuk mendeteksi hanya warna Merah, Hijau dan biru. Tetapi Anda dapat memprogramnya untuk mendeteksi warna apa pun setelah mendapatkan nilai RGB, karena setiap warna terdiri dari komponen RGB ini. Periksa Video demo di bagian akhir.
Kami sebelumnya telah membaca dan menampilkan nilai RGB dari warna menggunakan TCS3200 yang sama dengan Arduino. Sebelum melangkah lebih jauh, beri tahu tentang TCS3200 Color Sensor.
Sensor Warna TCS3200:
TCS3200 adalah Sensor Warna yang dapat mendeteksi sejumlah warna dengan pemrograman yang tepat. TCS3200 berisi array RGB (Red Green Blue). Seperti yang ditunjukkan pada gambar pada level mikroskopis, orang dapat melihat kotak persegi di dalam mata pada sensor. Kotak persegi ini adalah array matriks RGB. Masing-masing kotak ini berisi tiga sensor untuk merasakan intensitas cahaya Merah, Hijau, dan Biru.
Jadi kami memiliki array Merah, Biru dan Hijau pada lapisan yang sama. Jadi saat mendeteksi warna kita tidak bisa mendeteksi ketiga elemen secara bersamaan. Masing-masing larik sensor ini harus dipilih secara terpisah satu demi satu untuk mendeteksi warna. Modul dapat diprogram untuk merasakan warna tertentu dan meninggalkan yang lain. Ini berisi pin untuk tujuan pemilihan itu, yang akan dijelaskan nanti. Ada empat mode yang tidak ada mode filter; tanpa mode filter, sensor mendeteksi cahaya putih.
Kami akan menghubungkan sensor ini ke Raspberry Pi dan akan memprogram Raspberry Pi untuk memberikan respons yang sesuai tergantung pada warna.
Komponen yang Dibutuhkan:
Di sini kami menggunakan Raspberry Pi 2 Model B dengan Raspbian Jessie OS. Semua persyaratan Perangkat Keras dan Perangkat Lunak dasar telah dibahas sebelumnya, Anda dapat mencarinya di Pengenalan Raspberry Pi dan LED Berkedip Raspberry PI untuk memulai, selain yang kami butuhkan:
- Raspberry Pi dengan OS yang sudah diinstal sebelumnya
- Sensor warna TCS3200
- Chip penghitung CD4040
- LED RGB
- 1KΩ resistor (3 buah)
- Kapasitor 1000uF
Diagram Sirkuit dan Koneksi:
Koneksi yang dilakukan untuk menghubungkan Sensor Warna dengan Raspberry Pi diberikan pada tabel di bawah ini:
Pin Sensor |
Pin Raspberry Pi |
Vcc |
+ 3.3v |
GND |
tanah |
S0 |
+ 3.3v |
S1 |
+ 3.3v |
S2 |
GPIO6 dari PI |
S3 |
GPIO5 dari PI |
OE |
GPIO22 dari PI |
DI LUAR |
CLK dari CD4040 |
Koneksi untuk penghitung CD4040 dengan Raspberry Pi diberikan dalam tabel di bawah ini:
CD4040 Pin |
Pin Raspberry Pi |
Vcc16 |
+ 3.3v |
Gnd8 |
gnd |
Clk10 |
KELUAR dari sensor |
Atur ulang 11 |
GPIO26 dari PI |
Q0 |
GPIO21 dari PI |
P1 |
GPIO20 dari PI |
P2 |
GPIO16 dari PI |
P3 |
GPIO12 dari PI |
P4 |
GPIO25 dari PI |
P5 |
GPIO24 dari PI |
P6 |
GPIO23 dari PI |
P7 |
GPIO18 dari PI |
P8 |
Tidak ada koneksi |
P9 |
Tidak ada koneksi |
P10 |
Tidak ada koneksi |
P11 |
Tidak ada koneksi |
Di bawah ini adalah diagram rangkaian lengkap Interfacing Color Sensor dengan Raspberry Pi:
Penjelasan Kerja:
Setiap warna terdiri dari tiga warna: Merah, Hijau dan Biru (RGB). Dan jika kita mengetahui intensitas RGB dalam warna apapun, maka kita dapat mendeteksi warna itu. Kami sebelumnya telah membaca nilai RGB ini menggunakan Arduino.
Dengan menggunakan TCS3200 Color Sensor, kami tidak dapat mendeteksi cahaya Merah, Hijau dan Biru secara bersamaan sehingga kami perlu memeriksanya satu per satu. Warna yang perlu dideteksi oleh Sensor Warna dipilih dengan dua pin S2 dan S3. Dengan dua pin ini, kita dapat memberi tahu sensor intensitas cahaya warna mana yang akan diukur.
Katakanlah jika kita perlu merasakan intensitas warna Merah maka kita perlu mengatur kedua pin ke LOW. Setelah mengukur lampu MERAH, kita akan mengatur S2 LOW dan S3 HIGH untuk mengukur cahaya biru. Dengan mengubah secara berurutan logika S2 dan S3 kita dapat mengukur intensitas cahaya Merah, Biru dan Hijau, sesuai dengan tabel yang diberikan di bawah ini:
S2 |
S3 |
Jenis Fotodioda |
Rendah |
Rendah |
Merah |
Rendah |
Tinggi |
Biru |
Tinggi |
Rendah |
Tanpa filter (putih) |
Tinggi |
Tinggi |
hijau |
Setelah sensor mendeteksi intensitas komponen RGB, nilai tersebut dikirim ke sistem kontrol di dalam modul seperti yang ditunjukkan pada gambar di bawah. Intensitas cahaya yang diukur dengan larik dikirim ke konverter Arus ke Frekuensi di dalam modul. Konverter frekuensi menghasilkan gelombang persegi yang frekuensinya berbanding lurus dengan nilai yang dikirim oleh array. Dengan nilai yang lebih tinggi dari ARRAY, Konverter Arus ke Frekuensi menghasilkan gelombang persegi frekuensi yang lebih tinggi.
Frekuensi sinyal keluaran oleh modul sensor warna dapat diatur ke empat tingkat. Level-level ini dipilih dengan menggunakan modul sensor S0 dan S1 seperti yang ditunjukkan pada gambar di bawah ini.
S0 |
S1 |
Skala Frekuensi Keluaran (f0) |
L |
L |
Power Down |
L |
H. |
2% |
H. |
L |
20% |
H. |
H. |
100% |
Fitur ini berguna saat kita menghubungkan modul ini ke sistem dengan clock rendah. Dengan Raspberry Pi kami akan memilih 100%. Ingat di sini, di bawah naungan Modul Sensor Warna menghasilkan keluaran gelombang persegi yang frekuensi maksimumnya adalah 2500Hz (penskalaan 100%) untuk setiap warna.
Meskipun modul menyediakan gelombang persegi keluaran yang frekuensinya berbanding lurus dengan intensitas cahaya yang jatuh pada permukaannya, tidak ada cara mudah untuk menghitung intensitas cahaya setiap warna dengan modul ini. Bagaimanapun kita dapat mengetahui apakah intensitas cahaya meningkat atau menurun untuk setiap warna. Kita juga dapat menghitung dan membandingkan nilai Merah, Hijau, Biru untuk mendeteksi warna cahaya atau warna preset objek pada permukaan modul. Jadi ini lebih merupakan modul Color Sensor daripada modul Light Intensity Sensor.
Sekarang kita akan memberi makan output gelombang Persegi ini ke Raspberry Pi tetapi kita tidak dapat memberikannya langsung ke PI, karena Raspberry Pi tidak memiliki penghitung internal. Jadi pertama-tama kami akan memberikan output ini ke Penghitung Biner CD4040 dan kami akan memprogram Raspberry Pi untuk mengambil nilai frekuensi dari penghitung pada interval periodik 100msec.
Jadi PI membaca nilai 2500/10 = 250 max untuk setiap warna MERAH, HIJAU dan BIRU. Kami juga telah memprogram Raspberry Pi untuk mencetak nilai-nilai ini yang mewakili intensitas cahaya di layar seperti yang ditunjukkan di bawah ini. Nilai dikurangi dari nilai default untuk mencapai nol. Ini berguna saat menentukan warna.
Di sini nilai default adalah nilai RGB yang diambil tanpa meletakkan objek apapun di depan sensor. Itu tergantung pada kondisi cahaya di sekitarnya dan nilai-nilai ini dapat berbeda menurut lingkungannya. Pada dasarnya kami mengkalibrasi sensor untuk pembacaan standar. Jadi pertama-tama jalankan program tanpa menempatkan objek apapun dan perhatikan bacaannya. Nilai ini tidak akan mendekati nol karena akan selalu ada sedikit cahaya yang jatuh pada sensor di mana pun Anda meletakkannya. Kemudian kurangi bacaan tersebut dengan bacaan yang akan kita dapatkan setelah menempatkan objek untuk diuji. Dengan cara ini kita bisa mendapatkan pembacaan standar.
Raspberry Pi juga diprogram untuk membandingkan nilai R, G dan B untuk menentukan warna benda yang diletakkan di dekat sensor. Hasil ini ditunjukkan dengan LED RGB menyala yang terhubung ke Raspberry Pi.
Singkatnya,
1. Modul mendeteksi cahaya yang dipantulkan oleh benda yang diletakkan di dekat permukaan.
2. Modul Sensor Warna menyediakan gelombang keluaran untuk R atau G atau B, dipilih secara berurutan oleh Raspberry Pi melalui Pin S2 dan S3.
3. Penghitung CD4040 mengambil gelombang dan mengukur nilai frekuensi.
4. PI mengambil nilai frekuensi dari penghitung untuk setiap warna untuk setiap 100ms. Setelah mengambil nilai setiap kali PI menyetel ulang penghitung untuk mendeteksi nilai berikutnya.
5. Raspberry Pi mencetak nilai-nilai ini di layar dan membandingkan nilai-nilai ini untuk mendeteksi warna objek dan akhirnya menyalakan LED RGB dalam warna yang sesuai tergantung pada warna objek.
Kami telah mengikuti urutan di atas dalam Kode Python kami. Program lengkap diberikan di bawah ini dengan Video Demonstrasi.
Di sini Raspberry Pi diprogram untuk mendeteksi hanya tiga warna, Anda dapat mencocokkan nilai R, G dan B yang sesuai untuk mendeteksi lebih banyak warna yang Anda sukai.