- Komponen Diperlukan
- Cara membuat casis untuk Lengan Robotik Menyusun Warna
- Sensor Warna TCS3200
- Rajah Litar Penyusun Warna Arduino
- Memprogram Arduino Uno untuk menyusun bola berwarna-warni
Seperti namanya, penyortiran warna hanya untuk menyusun perkara mengikut warna mereka. Ia dapat dilakukan dengan mudah dengan melihatnya tetapi apabila terlalu banyak perkara yang harus disusun dan merupakan tugas yang berulang, maka mesin penyusun warna automatik sangat berguna. Mesin-mesin ini mempunyai sensor warna untuk merasakan warna objek apa pun dan setelah mengesan motor servo warna ambil benda itu dan masukkan ke dalam kotak masing-masing. Mereka boleh digunakan di kawasan aplikasi yang berbeza di mana pengenalan warna, perbezaan warna dan penyortiran warna penting. Beberapa bidang aplikasi merangkumi Industri Pertanian (Penyortiran Biji-bijian berdasarkan warna), Industri Makanan, Industri Berlian dan Perlombongan, Kitar Semula dan lain-lain. Aplikasi ini tidak terhad kepada ini dan dapat diterapkan lebih jauh ke industri yang berlainan.
Sensor yang paling popular untuk mengesan warna adalah sensor warna TCS3200. Kami sebelumnya menggunakan sensor TCS3200 dengan Arduino untuk mendapatkan komponen RGB (Merah, Hijau, Biru) dengan warna apa pun dan juga menghubungkannya dengan Raspberry Pi untuk mengesan warna objek apa pun.
Di sini dalam tutorial ini kita akan membuat mesin penyusun warna menggunakan sensor warna TCS3200, beberapa motor servo dan papan Arduino. Tutorial ini akan merangkumi penyortiran bola berwarna dan menyimpannya di dalam kotak warna yang berkaitan. Kotak akan berada di posisi tetap dan motor servo akan digunakan untuk menggerakkan tangan yang lebih kecil untuk menjaga bola di dalam kotak yang relevan.
Komponen Diperlukan
- Arduino UNO
- Sensor Warna TCS3200
- Servo Motors
- Pelompat
- Papan roti
Cara membuat casis untuk Lengan Robotik Menyusun Warna
Untuk membuat persediaan lengkap termasuk casis, lengan, roller, pad, kami telah menggunakan Sunboard putih dengan ketebalan 2mm. Ia mudah didapati di kedai-kedai pegun. Kami telah menggunakan pemotong kertas untuk memotong Lembaran Sunboard dan FlexKwik atau FeviKwik kerana bergabung dengan bahagian yang berbeza.
Berikut adalah beberapa langkah membina Lengan penyortiran Warna:
1) Ambil Sunboard Sheet.
2) Potong kepingan sunboard menjadi kepingan setelah mengukur semua sisi dengan skala dan penanda seperti yang ditunjukkan pada gambar.
3) Sekarang pegang kedua-dua kepingan sunboard bersama-sama dan tuangkan setetes FeviKwik di atasnya untuk menyatukan kepingan itu. Teruskan bergabung dengan mengikuti gambar.
4) Setelah menggabungkan semua kepingan, mesin penyusun warna ini akan kelihatan seperti ini:
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 dalam gambar pada tingkat mikroskopis seseorang dapat melihat kotak kotak di dalam mata pada sensor. Kotak persegi ini adalah tatasusunan matriks RGB. Setiap kotak ini mengandungi tiga sensor, Satu untuk merasakan intensiti cahaya MERAH, Satu lagi untuk merasakan intensiti cahaya HIJAU dan yang terakhir untuk merasakan intensiti cahaya BIRU.
Setiap susunan sensor dalam ketiga susunan ini dipilih secara berasingan bergantung pada keperluannya. Oleh itu ia dikenali sebagai sensor yang dapat diprogramkan. Modul ini boleh ditampilkan untuk merasakan warna tertentu dan meninggalkan yang lain. Ia mengandungi penapis untuk tujuan pemilihan itu. Terdapat mod ke depan yang disebut ' no filter mode' di mana sensor mengesan cahaya putih.
Rajah Litar Penyusun Warna Arduino
Gambarajah litar untuk Arduino Color Sorter ini cukup mudah dibuat dan tidak memerlukan banyak sambungan. Skema diberikan di bawah.
Ini adalah litar di sebalik penyediaan mesin penyusun warna:
Memprogram Arduino Uno untuk menyusun bola berwarna-warni
Memprogram Arduino UNO cukup mudah dan memerlukan logik sederhana untuk mempermudah langkah-langkah yang terlibat dalam penyusunan warna. Program lengkap dengan demonstrasi Video diberikan pada akhir.
Oleh kerana motor servo digunakan, maka perpustakaan servo adalah bahagian penting dalam program ini. Di sini kita menggunakan dua motor servo. The servo pertama akan bergerak bola berwarna dari kedudukan asal ke kedudukan pengesan TCS3200 dan kemudian bergerak ke kedudukan yang menyusun mana bola akan digugurkan. Setelah beralih ke posisi penyortiran, servo kedua akan menjatuhkan bola menggunakan lengannya ke baldi warna yang diinginkan. Lihat karya yang lengkap dalam Video yang diberikan di akhir.
Langkah pertama ialah semua penyertaan perpustakaan dan menentukan pemboleh ubah servo.
#sertakan
Sensor warna TCS3200 dapat berfungsi tanpa perpustakaan kerana hanya memerlukan frekuensi membaca dari pin sensor untuk menentukan warnanya. Jadi tentukan nombor pin TCS3200.
#define S0 4 #define S1 5 #define S2 7 #define S3 6 #define sensorOut 8 int frekuensi = 0; warna int = 0;
Jadikan pin pilih sebagai output kerana ini akan menjadikan photodiode warna tinggi atau rendah dan mengambil pin Keluar TCS3200 sebagai input. Pin OUT akan memberikan frekuensi. Pilih skala frekuensi sebagai 20% pada mulanya.
pinMode (S0, OUTPUT); pinMode (S1, OUTPUT); pinMode (S2, OUTPUT); pinMode (S3, OUTPUT); pinMode (sensorOut, INPUT); digitalWrite (S0, RENDAH); digitalWrite (S1, TINGGI);
Motor servo disambungkan di Pin 9 dan 10 dari Arduino. The pickup servo yang akan pickup bola warna yang disambungkan pada pin 9 dan servo drop yang akan jatuh bola warna mengikut warna yang disambungkan di Pin10.
pickServo.attach (9); dropServo.attach (10);
Pada mulanya pick servo motor ditetapkan pada kedudukan awal yang dalam hal ini adalah 115 darjah. Ia mungkin berbeza dan dapat disesuaikan dengan sewajarnya. Motor bergerak setelah beberapa kelewatan ke kawasan pengesan dan menunggu pengesanan.
pickServo.write (115); kelewatan (600); untuk (int i = 115; i> 65; i--) { pickServo.write (i); kelewatan (2); } kelewatan (500);
The TCS 3200 berbunyi warna dan memberikan frekuensi daripada Daripada Pin.
warna = detakColor (); kelewatan (1000);
Bergantung pada warna yang dikesan, motor servo drop bergerak dengan sudut tertentu dan menjatuhkan bola warna ke kotak masing-masing.
tukar (warna) { kes 1: dropServo.write (50); rehat; kes 2: dropServo.write (80); rehat; kes 3: dropServo.write (110); rehat; kes 4: dropServo.write (140); rehat; kes 5: dropServo.write (170); rehat; kes 0: rehat; } kelewatan (500);
Motor servo kembali ke kedudukan awal untuk memilih bola seterusnya.
untuk (int i = 65; i> 29; i--) { pickServo.write (i); kelewatan (2); } kelewatan (300); untuk (int i = 29; i <115; i ++) { pickServo.write (i); kelewatan (2); }
Fungsi DetectColor () digunakan untuk mengukur frekuensi dan membandingkan frekuensi warna untuk membuat kesimpulan warna. Hasilnya dicetak pada monitor bersiri. Kemudian mengembalikan nilai warna untuk kes untuk memindahkan sudut motor servo drop.
int detectColor () {
Menulis ke S2 dan S3 (RENDAH, RENDAH) mengaktifkan fotodiod merah untuk mengambil bacaan untuk ketumpatan warna merah.
digitalWrite (S2, RENDAH); digitalWrite (S3, RENDAH); frekuensi = pulseIn (sensorOut, RENDAH); int R = kekerapan; Serial.print ("Merah ="); Serial.print (frekuensi); // mencetak frekuensi warna MERAH Serial.print (""); kelewatan (50);
Menulis ke S2 dan S3 (RENDAH, TINGGI) mengaktifkan fotodioda biru untuk mengambil bacaan untuk ketumpatan warna biru.
digitalWrite (S2, RENDAH); digitalWrite (S3, TINGGI); frekuensi = pulseIn (sensorOut, RENDAH); int B = kekerapan; Serial.print ("Biru ="); Cetakan bersiri (kekerapan); Serial.println ("");
Menulis ke S2 dan S3 (TINGGI, TINGGI) mengaktifkan fotodioda hijau untuk mengambil bacaan untuk ketumpatan warna hijau.
digitalWrite (S2, TINGGI); digitalWrite (S3, TINGGI); // Membaca frekuensi keluaran = pulseIn (sensorOut, LOW); int G = kekerapan; Serial.print ("Hijau ="); Cetakan bersiri (kekerapan); Cetakan bersiri (""); kelewatan (50);
Kemudian nilai dibandingkan untuk membuat keputusan warna. Pembacaannya berbeza untuk penyediaan eksperimen yang berbeza kerana jarak pengesanan berbeza untuk setiap orang ketika membuat persediaan.
jika (R <22 & R> 20 & G <29 & G> 27) { color = 1; // Red Serial.print ("Warna yang Dikesan adalah ="); Serial.println ("MERAH"); } jika (G <25 & G> 22 & B <22 & B> 19) { color = 2; // Orange Serial.println ("Orange"); } jika (R <21 & R> 20 & G <28 & G> 25) { color = 3; // Green Serial.print ("Warna yang Dikesan adalah ="); Serial.println ("HIJAU"); } jika (R <38 & R> 24 & G <44 & G> 30) { color = 4; // Yellow Serial.print ("Warna yang Dikesan adalah ="); Serial.println ("KUNING"); } jika (G <29 & G> 27 & B <22 & B> 19) { warna = 5; // Blue Serial.print ("Warna yang Dikesan adalah ="); Serial.println ("BIRU"); } warna kembali; }
Ini menyelesaikan mesin penyusun warna menggunakan TCS3200 dan Arduino UNO. Anda juga dapat memprogramnya untuk mengesan lebih banyak warna jika diperlukan. Sekiranya anda mempunyai keraguan atau cadangan, tulislah ke forum kami atau komen di bawah. Lihat juga video yang diberikan di bawah.