Dalam projek ini kita akan Mengesan Warna menggunakan Modul Sensor Warna TCS3200 dengan Raspberry Pi. Di sini kami menggunakan kod Python untuk Raspberry Pi untuk mengesan warna menggunakan sensor TCS3200. Untuk menunjukkan pengesanan warna kami telah menggunakan LED RGB, LED RGB ini akan bersinar dengan warna yang sama, di mana objek tersebut disajikan di dekat sensor. Pada masa ini kami telah memprogramkan Raspberry Pi untuk mengesan hanya warna Merah, Hijau dan biru. Tetapi anda dapat memprogramnya untuk mengesan warna apa pun setelah mendapatkan nilai RGB, kerana setiap warna terdiri dari komponen RGB ini. Lihat Video demo di akhir.
Kami sebelumnya telah membaca dan memaparkan nilai RGB warna menggunakan TCS3200 yang sama dengan Arduino. Sebelum melangkah lebih jauh, beritahu TCS3200 Color Sensor.
Sensor Warna TCS3200:
TCS3200 adalah Sensor Warna yang dapat mengesan sejumlah warna dengan pengaturcaraan yang tepat. TCS3200 mengandungi tatasusunan RGB (Merah Hijau Biru). Seperti yang ditunjukkan pada gambar pada tingkat mikroskopik, seseorang dapat melihat kotak kotak di dalam mata pada sensor. Kotak persegi ini adalah tatasusunan matriks RGB. Setiap kotak ini mengandungi tiga sensor untuk merasakan intensiti cahaya Merah, Hijau dan Biru.
Oleh itu, kita mempunyai susunan Merah, Biru dan Hijau pada lapisan yang sama. Oleh itu, semasa mengesan warna, kita tidak dapat mengesan ketiga-tiga elemen secara serentak. Setiap susunan sensor ini harus dipilih secara berasingan satu demi satu untuk mengesan warnanya. Modul boleh diprogramkan untuk merasakan warna tertentu dan meninggalkan yang lain. Ini berisi pin untuk tujuan pemilihan itu, yang telah dijelaskan kemudian. Terdapat mod keempat yang bukan mod penapis; tanpa mod penapis sensor mengesan cahaya putih.
Kami akan menyambungkan sensor ini ke Raspberry Pi dan akan memprogramkan Raspberry Pi untuk memberikan respons yang sesuai bergantung pada warna.
Komponen yang Diperlukan:
Di sini kita menggunakan Raspberry Pi 2 Model B dengan OS Raspbian Jessie. Semua keperluan asas Perkakasan dan Perisian dibincangkan sebelumnya, anda boleh mencarinya dalam Pengenalan Raspberry Pi dan LED Berkedip Raspberry PI untuk memulakan, selain daripada yang kita perlukan:
- Raspberry Pi dengan OS yang dipasang sebelumnya
- Sensor warna TCS3200
- Cip kaunter CD4040
- LED RGB
- Perintang 1KΩ (3 keping)
- Kapasitor 1000uF
Diagram dan Sambungan Litar:
Sambungan yang dilakukan untuk menghubungkan Sensor Warna dengan Raspberry Pi diberikan dalam jadual di bawah:
Pin Sensor |
Pin Raspberry Pi |
Vcc |
+ 3.3v |
GND |
tanah |
S0 |
+ 3.3v |
S1 |
+ 3.3v |
S2 |
GPIO6 PI |
S3 |
GPIO5 PI |
OE |
GPIO22 PI |
KELUAR |
CLK CD4040 |
Sambungan untuk kaunter CD4040 dengan Raspberry Pi diberikan dalam jadual di bawah:
Pin CD4040 |
Pin Raspberry Pi |
Vcc16 |
+ 3.3v |
Gnd8 |
gnd |
Clk10 |
KELUAR sensor |
Tetapkan semula11 |
GPIO26 PI |
S0 |
GPIO21 PI |
S1 |
GPIO20 PI |
S2 |
GPIO16 PI |
S3 |
GPIO12 PI |
S4 |
GPIO25 PI |
S5 |
GPIO24 PI |
S6 |
GPIO23 dari PI |
S7 |
GPIO18 PI |
S8 |
Tiada sambungan |
S9 |
Tiada sambungan |
S10 |
Tiada sambungan |
S11 |
Tiada sambungan |
Berikut adalah gambarajah litar penuh Interfacing Color Sensor dengan Raspberry Pi:
Penjelasan Kerja:
Setiap warna terdiri daripada tiga warna: Merah, Hijau dan Biru (RGB). Dan jika kita mengetahui intensiti RGB dalam warna apa pun, maka kita dapat mengesan warnanya. Kami sebelumnya telah membaca nilai RGB ini menggunakan Arduino.
Dengan menggunakan Sensor Warna TCS3200, kita tidak dapat mengesan cahaya Merah, Hijau dan Biru pada waktu yang sama sehingga kita perlu memeriksanya satu persatu. Warna yang perlu dirasakan oleh Color Sensor dipilih oleh dua pin S2 dan S3. Dengan dua pin ini, kita dapat mengetahui sensor yang mana intensiti cahaya warna yang akan diukur.
Katakan jika kita perlu merasakan intensiti warna Merah maka kita perlu menetapkan kedua pin ke RENDAH. Setelah mengukur cahaya MERAH, kami akan menetapkan S2 RENDAH dan S3 TINGGI untuk mengukur cahaya biru. Dengan mengubah logik S2 dan S3 secara berurutan kita dapat mengukur intensiti cahaya Merah, Biru dan Hijau, mengikut jadual yang diberikan di bawah:
S2 |
S3 |
Jenis Fotodiod |
Rendah |
Rendah |
Merah |
Rendah |
Tinggi |
Biru |
Tinggi |
Rendah |
Tiada penapis (putih) |
Tinggi |
Tinggi |
Hijau |
Setelah sensor mengesan intensiti komponen RGB, nilainya dihantar ke sistem kawalan di dalam modul seperti yang ditunjukkan pada gambar di bawah. Intensiti cahaya yang diukur oleh array dihantar ke penukar Arus ke Frekuensi di dalam modul. Penukar frekuensi menghasilkan gelombang persegi yang frekuensinya berkadar terus dengan nilai yang dihantar oleh array. Dengan nilai yang lebih tinggi dari ARRAY, penukar Arus ke Frekuensi menghasilkan gelombang persegi frekuensi yang lebih tinggi.
Kekerapan isyarat output oleh modul sensor warna dapat disesuaikan menjadi empat tahap. Tahap ini dipilih dengan menggunakan modul sensor S0 dan S1 seperti yang ditunjukkan pada gambar di bawah.
S0 |
S1 |
Penskalaan Kekerapan Keluaran (f0) |
L |
L |
Kuasa Turun |
L |
H |
2% |
H |
L |
20% |
H |
H |
100% |
Ciri ini sangat berguna ketika kita menghubungkan modul ini ke sistem dengan jam rendah. Dengan Raspberry Pi kami akan memilih 100%. Ingat di sini, di bawah naungan Modul Sensor Warna menghasilkan output gelombang persegi yang frekuensi maksimumnya adalah 2500Hz (penskalaan 100%) untuk setiap warna.
Walaupun modul menyediakan gelombang kuasa dua keluaran yang frekuensinya berkadar langsung dengan intensiti cahaya yang jatuh di permukaannya, tidak ada cara mudah untuk mengira intensiti cahaya setiap warna oleh modul ini. Namun kita dapat mengetahui sama ada intensiti cahaya meningkat atau menurun untuk setiap warna. Kita juga boleh mengira dan membandingkan nilai Merah, Hijau, Biru untuk mengesan warna cahaya atau warna objek yang telah ditetapkan pada permukaan modul. Jadi ini lebih kepada modul Sensor Warna dan bukannya modul Sensor Intensiti Cahaya.
Sekarang kita akan memberi output gelombang Square ini ke Raspberry Pi tetapi kita tidak dapat memberikannya secara langsung kepada PI, kerana Raspberry Pi tidak mempunyai kaunter dalaman. Oleh itu, pertama kami akan memberikan output ini ke Kaunter Binari CD4040 dan kami akan memprogramkan Raspberry Pi untuk mengambil nilai frekuensi dari kaunter pada selang berkala 100msec.
Oleh itu, PI membaca nilai 2500/10 = 250 maksimum untuk setiap warna MERAH, HIJAU dan BIRU. Kami juga telah memprogram Raspberry Pi untuk mencetak nilai-nilai ini mewakili intensitas cahaya di layar seperti yang ditunjukkan di bawah. Nilai dikurangkan dari nilai lalai hingga mencapai sifar. Ini sangat berguna semasa menentukan warna.
Di sini nilai lalai adalah nilai RGB, yang telah diambil tanpa meletakkan objek di depan sensor. Ia bergantung pada keadaan cahaya di sekitarnya dan nilai-nilai ini dapat berbeza mengikut keadaan sekeliling. Pada dasarnya kami menentukur sensor untuk bacaan standard. Oleh itu, jalankan program terlebih dahulu tanpa meletakkan objek dan perhatikan pembacaannya. Nilai-nilai ini tidak akan mendekati sifar kerana akan selalu ada cahaya yang jatuh pada sensor di mana sahaja anda meletakkannya. Kemudian tolak bacaan tersebut dengan bacaan yang akan kita perolehi setelah meletakkan objek untuk diuji. Dengan cara ini kita dapat memperoleh bacaan standard.
Raspberry Pi juga diprogram untuk membandingkan nilai R, G dan B untuk menentukan warna objek yang diletakkan di dekat sensor. Hasil ini ditunjukkan dengan menyala LED RGB yang disambungkan ke Raspberry Pi.
Jadi secara ringkasnya,
1. Modul mengesan cahaya yang dipantulkan oleh objek yang diletakkan berhampiran permukaan.
2. Modul Sensor Warna menyediakan gelombang output untuk R atau G atau B, yang dipilih secara berurutan oleh Raspberry Pi melalui Pin S2 dan S3.
3. CD4040 Counter mengambil gelombang dan mengukur nilai frekuensi.
4. PI mengambil nilai frekuensi dari kaunter untuk setiap warna untuk setiap 100ms. Setelah mengambil nilai setiap kali PI menetapkan semula kaunter untuk mengesan nilai seterusnya.
5. Raspberry Pi mencetak nilai-nilai ini di skrin dan membandingkan nilai-nilai ini untuk mengesan warna objek dan akhirnya menyala LED RGB dengan warna yang sesuai bergantung pada warna objek.
Kami telah mengikuti urutan di atas dalam Python Code kami. Program penuh diberikan di bawah ini dengan Video Demonstrasi.
Di sini Raspberry Pi diprogramkan untuk mengesan hanya tiga warna, anda dapat memadankan nilai R, G dan B dengan sewajarnya untuk mengesan lebih banyak warna yang anda sukai.