- Komponen Diperlukan
- Cara membuat sasis untuk Lengan Robot Pemilah Warna
- Sensor Warna TCS3200
- Diagram Sirkuit Penyortir Warna Arduino
- Pemrograman Arduino Uno untuk menyortir bola warna-warni
Seperti namanya, color sorting adalah mengurutkan barang-barang menurut warnanya. Ini dapat dengan mudah dilakukan dengan melihatnya tetapi jika ada terlalu banyak hal yang harus disortir dan ini adalah tugas yang berulang, maka mesin sortir warna otomatis sangat berguna. Mesin ini memiliki sensor warna untuk merasakan warna benda apa pun dan setelah mendeteksi motor servo warna, ambil benda itu dan masukkan ke dalam kotak masing-masing. Mereka dapat digunakan di area aplikasi berbeda di mana identifikasi warna, perbedaan warna dan penyortiran warna penting. Beberapa area aplikasi termasuk Industri Pertanian (Penyortiran Biji-bijian berdasarkan warna), Industri Makanan, Industri Berlian dan Pertambangan, Daur Ulang, dll. Aplikasi tidak terbatas pada ini dan dapat diterapkan lebih lanjut ke industri yang berbeda.
Sensor paling populer untuk mendeteksi warna adalah sensor warna TCS3200. Kami sebelumnya menggunakan sensor TCS3200 dengan Arduino untuk mendapatkan komponen RGB (Merah, Hijau, Biru) dari warna apa pun dan juga menghubungkannya dengan Raspberry Pi untuk mendeteksi warna objek apa pun.
Di sini, di tutorial ini kita akan membuat mesin sortir warna menggunakan sensor warna TCS3200, beberapa motor servo dan papan Arduino. Tutorial ini akan mencakup penyortiran bola berwarna dan menyimpannya di kotak warna yang relevan. Kotak akan berada pada posisi tetap dan motor servo akan digunakan untuk menggerakkan tangan penyortir untuk menyimpan bola di kotak yang relevan.
Komponen Diperlukan
- Arduino UNO
- Sensor Warna TCS3200
- Motor Servo
- Pelompat
- Papan tempat memotong roti
Cara membuat sasis untuk Lengan Robot Pemilah Warna
Untuk membuat penyetelan lengkap termasuk sasis, lengan, roller, pad, kami telah menggunakan Sunboard putih dengan ketebalan 2mm. Ini dengan mudah tersedia di toko alat tulis. Kami telah menggunakan pemotong kertas untuk memotong Sunboard Sheet dan FlexKwik atau FeviKwik untuk menggabungkan bagian-bagian yang berbeda.
Di bawah ini adalah beberapa langkah untuk membuat Color Sorting Arm:
1) Ambil Sunboard Sheet.
2) Potong lembar sunboard menjadi beberapa bagian setelah mengukur semua sisi dengan skala dan spidol seperti yang ditunjukkan pada gambar.
3) Sekarang pegang kedua potongan sunboard bersama-sama dan tuangkan setetes FeviKwik di atasnya untuk merekatkan potongan-potongan itu. Terus gabungkan potongan dengan mengikuti gambarnya.
4) Setelah menggabungkan semua bagian, mesin sortir warna ini akan terlihat seperti ini:
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, Satu untuk merasakan intensitas cahaya MERAH, Satu untuk merasakan intensitas cahaya HIJAU dan yang terakhir untuk merasakan intensitas cahaya BIRU.
Masing-masing larik sensor dalam tiga larik ini dipilih secara terpisah tergantung pada kebutuhan. Oleh karena itu dikenal sebagai sensor yang dapat diprogram. Modul ini dapat ditampilkan untuk merasakan warna tertentu dan meninggalkan yang lain. Ini berisi filter untuk tujuan pemilihan itu. Ada mode keempat yang disebut ' mode tanpa filter' di mana sensor mendeteksi cahaya putih.
Diagram Sirkuit Penyortir Warna Arduino
Diagram rangkaian untuk Arduino Color Sorter ini cukup mudah dibuat dan tidak membutuhkan banyak koneksi. Skema diberikan di bawah ini.
Ini adalah sirkuit di balik penyiapan mesin sortir warna:
Pemrograman Arduino Uno untuk menyortir bola warna-warni
Pemrograman Arduino UNO cukup sederhana dan membutuhkan logika sederhana untuk menyederhanakan langkah-langkah yang terlibat dalam penyortiran warna. Program lengkap dengan video demonstrasi diberikan di akhir.
Karena motor servo digunakan, maka perpustakaan servo merupakan bagian penting dari program. Di sini kami menggunakan dua motor servo. The servo pertama akan memindahkan bola berwarna dari posisi awal ke posisi detektor TCS3200 dan kemudian pindah ke posisi menyortir mana bola akan turun. Setelah pindah ke posisi penyortiran, servo kedua akan menjatuhkan bola menggunakan lengannya ke ember warna yang diinginkan. Lihat pekerjaan lengkap di Video yang diberikan di bagian akhir.
Langkah pertama adalah semua inklusi perpustakaan dan menentukan variabel servo.
#include
Sensor warna TCS3200 dapat bekerja tanpa perpustakaan karena hanya perlu membaca frekuensi dari pin sensor untuk menentukan warna. Jadi tentukan saja nomor pin TCS3200.
# Tentukan S0 4 # Tentukan S1 5 # Tentukan S2 7 # Tentukan S3 6 # Tentukan SensorOut 8 int frekuensi = 0; warna int = 0;
Jadikan pin pilihan sebagai keluaran karena ini akan membuat fotodioda warna menjadi tinggi atau rendah dan mengambil pin Keluar dari TCS3200 sebagai masukan. Pin OUT akan memberikan frekuensi. Pilih skala frekuensi sebagai 20% pada awalnya.
pinMode (S0, OUTPUT); pinMode (S1, OUTPUT); pinMode (S2, OUTPUT); pinMode (S3, OUTPUT); pinMode (sensorOut, INPUT); digitalWrite (S0, LOW); digitalWrite (S1, HIGH);
Motor servo terhubung pada Pin 9 dan 10 Arduino. The pikap servo yang akan jemput bola warna terhubung pada Pin 9 dan penurunan servo yang akan menjatuhkan bola warna sesuai dengan warna terhubung di Pin10.
pickServo.attach (9); dropServo.attach (10);
Awalnya motor pick servo diset pada posisi awal yaitu dalam hal ini 115 derajat. Ini mungkin berbeda dan dapat disesuaikan. Motor bergerak setelah beberapa penundaan ke daerah detektor dan menunggu deteksi.
pickServo.write (115); penundaan (600); untuk (int i = 115; i> 65; i--) { pickServo.write (i); penundaan (2); } penundaan (500);
The TCS 3200 berbunyi warna dan memberikan frekuensi dari Out Pin.
color = detectColor (); penundaan (1000);
Tergantung pada warna yang terdeteksi, motor servo jatuh bergerak dengan sudut tertentu dan menjatuhkan bola warna ke kotaknya masing-masing.
switch (warna) { case 1: dropServo.write (50); istirahat; kasus 2: dropServo.write (80); istirahat; kasus 3: dropServo.write (110); istirahat; kasus 4: dropServo.write (140); istirahat; kasus 5: dropServo.write (170); istirahat; kasus 0: istirahat; } penundaan (500);
Motor servo kembali ke posisi awal untuk mengambil bola berikutnya.
untuk (int i = 65; i> 29; i--) { pickServo.write (i); penundaan (2); } penundaan (300); untuk (int i = 29; i <115; i ++) { pickServo.write (i); penundaan (2); }
Fungsi detectColor () digunakan untuk mengukur frekuensi dan membandingkan frekuensi warna untuk membuat kesimpulan warna. Hasilnya dicetak di monitor serial. Kemudian mengembalikan nilai warna untuk kasus untuk memindahkan sudut motor servo drop.
int detectColor () {
Menulis ke S2 dan S3 (RENDAH, RENDAH) mengaktifkan fotodioda merah untuk mengambil pembacaan kerapatan warna merah.
digitalWrite (S2, LOW); digitalWrite (S3, LOW); frekuensi = pulseIn (sensorOut, LOW); int R = frekuensi; Serial.print ("Merah ="); Serial.print (frekuensi); // mencetak frekuensi warna MERAH Serial.print (""); penundaan (50);
Menulis ke S2 dan S3 (RENDAH, TINGGI) mengaktifkan fotodioda biru untuk melakukan pembacaan kerapatan warna biru.
digitalWrite (S2, LOW); digitalWrite (S3, HIGH); frekuensi = pulseIn (sensorOut, LOW); int B = frekuensi; Serial.print ("Biru ="); Serial.print (frekuensi); Serial.println ("");
Menulis ke S2 dan S3 (TINGGI, TINGGI) mengaktifkan dioda hijau untuk mengambil pembacaan kerapatan warna hijau.
digitalWrite (S2, HIGH); digitalWrite (S3, HIGH); // Membaca frekuensi keluaran frekuensi = pulseIn (sensorOut, LOW); int G = frekuensi; Serial.print ("Hijau ="); Serial.print (frekuensi); Serial.print (""); penundaan (50);
Kemudian nilai-nilai tersebut dibandingkan untuk membuat keputusan warna. Bacaan berbeda untuk pengaturan eksperimental yang berbeda karena jarak deteksi berbeda untuk setiap orang saat membuat pengaturan.
jika (R <22 & R> 20 & G <29 & G> 27) { color = 1; // Red Serial.print ("Detected Color is ="); Serial.println ("MERAH"); } jika (G <25 & G> 22 & B <22 & B> 19) { color = 2; // Orange Serial.println ("Oranye"); } jika (R <21 & R> 20 & G <28 & G> 25) { color = 3; // Green Serial.print ("Detected Color is ="); Serial.println ("HIJAU"); } jika (R <38 & R> 24 & G <44 & G> 30) { color = 4; // Yellow Serial.print ("Detected Color is ="); Serial.println ("KUNING"); } jika (G <29 & G> 27 & B <22 & B> 19) { color = 5; // Blue Serial.print ("Warna Terdeteksi adalah ="); Serial.println ("BIRU"); } warna kembali; }
Ini menyelesaikan mesin sortir warna menggunakan TCS3200 dan Arduino UNO. Anda juga dapat memprogramnya untuk mendeteksi lebih banyak warna jika diperlukan. Jika Anda ragu atau memiliki saran, tulislah ke forum atau komentar kami di bawah ini. Juga periksa video yang diberikan di bawah ini.