Home / Tutorial Arduino / Proyek Arduino Pilah Warna

Proyek Arduino Pilah Warna

kelas-fisika.com – Proyek Arduino Pilah Warna

Dalam artikel ini kelas-fisika akan menunjukkan bagaimana Anda dapat membuat Arduino Color Sorter yaitu suatu mesin yang bisa memilah milah warna. Artikel ini di ambil dari sumber ini.

Desain

Yang diperlukan untuk proyek Arduino ini adalah satu sensor warna (TCS3200) dan dua motor servo. Pertama-tama, dengan menggunakan perangkat lunak pemodelan 3D Solidworks, saya membuat desain penyortir warna dan inilah prinsip kerjanya:

  • Awalnya, Skittle (coklat/benda berwarna) berwarna yang disimpan di pengisian jatuh ke platform yang terpasang di motor servo atas.
  • Kemudian motor servo berputar dan membawa skittle ke sensor warna yang mendeteksi warnanya.
  • Setelah itu motor servo bawah berputar ke posisi tertentu sesuai wadah warna yang ditentukan dan kemudian motor servo atas berotasi lagi sampai drop skittle ke rel panduan.

Di sini Anda dapat mengunduh model 3D, serta gambar-gambar dengan semua dimensi yang diperlukan untuk membangun proyek Arduino ini.

Arduino Project – Color Sorting Machine 3D Model Assembly Solidworks Files Download

Arduino Project – Color Sorting Machine 3D Model Assembly STEP File Download

Arduino Project – Color Sorting Machine Drawings  Download

Membangun Arduino Color Sorter

Material yang digunakan untuk proyek ini adalah papan alas karton 3 mm. menggambar kembali bagian-bagian di papan serat sesuai dengan gambar dan menggunakan gergaji tangan kecil memotong semua bagian untuk ukuran.

Setelah menyiapkan semua komponen, mulai dirakit. Pertama kumpulkan bagian luar menggunakan lem.

Kemudian menggunakan lem serba guna, tempelkan dua motor servo pada platform dan menyambungkannya ke rakitan. Setelah itu menggunakan lem untuk memasang rel panduan di motor servo bawah serta dukungan dan platform yang diperlukan untuk motor servo atas.

Selanjutnya, masukkan saklar dan colokan listrik untuk menyalakan Arduino dengan adaptor 5V dan di platform ketiga  memasukkan sensor warna.

kemudian hubungkan komponen bersama menurut skema rangkaian berikut.

Anda bisa mendapatkan komponen yang diperlukan untuk Proyek Arduino ini dari tautan di bawah ini:

  • TCS230 TCS3200 Sensor Warna
  • Motor servo
  • Arduino Board
  • Beralih
  • Power Jack

Kode Program Arduino :

/* Arduino Project - Color Sorting Machine
 *
 * by Dejan Nedelkovski, www.HowToMechatronics.com
 *
 */
#include <Servo.h>
#define S0 2
#define S1 3
#define S2 4
#define S3 5
#define sensorOut 6
Servo topServo;
Servo bottomServo;
int frequency = 0;
int color=0;
void setup() {
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(sensorOut, INPUT);
 // Setting frequency-scaling to 20%
digitalWrite(S0, HIGH);
digitalWrite(S1, LOW);
topServo.attach(7);
bottomServo.attach(8);
Serial.begin(9600);
}
void loop() {
topServo.write(115);
delay(500);
for(int i = 115; i > 65; i--) {
topServo.write(i);
delay(2);
}
delay(500);
color = readColor();
delay(10); 
switch (color) {
case 1:
bottomServo.write(50);
break;
case 2:
bottomServo.write(75);
break;
case 3:
bottomServo.write(100);
break;
case 4:
bottomServo.write(125);
break;
case 5:
bottomServo.write(150);
break;
case 6:
bottomServo.write(175);
break;
case 0:
break;
}
delay(300);
for(int i = 65; i > 29; i--) {
topServo.write(i);
delay(2);
}
delay(200);
for(int i = 29; i < 115; i++) {
topServo.write(i);
delay(2);
}
color=0;
}
// Custom Function - readColor()
int readColor() {
// Setting red filtered photodiodes to be read
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
// Reading the output frequency
frequency = pulseIn(sensorOut, LOW);
int R = frequency;
// Printing the value on the serial monitor
Serial.print("R= ");//printing name
Serial.print(frequency);//printing RED color frequency
Serial.print(" ");
delay(50);
// Setting Green filtered photodiodes to be read
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
// Reading the output frequency
frequency = pulseIn(sensorOut, LOW);
int G = frequency;
// Printing the value on the serial monitor
Serial.print("G= ");//printing name
Serial.print(frequency);//printing RED color frequency
Serial.print(" ");
delay(50);
// Setting Blue filtered photodiodes to be read
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
// Reading the output frequency
frequency = pulseIn(sensorOut, LOW);
int B = frequency;
 // Printing the value on the serial monitor
Serial.print("B= ");//printing name
Serial.print(frequency);//printing RED color frequency
Serial.println(" ");
delay(50);
if(R<45 & R>32 & G<65 & G>55){
 color = 1; // Red
}
if(G<55 & G>43 & B<47 &B>35){
 color = 2; // Orange
}
if(R<53 & R>40 & G<53 & G>40){
 color = 3; // Green
}
if(R<38 & R>24 & G<44 & G>30){
 color = 4; // Yellow
}
if(R<56 & R>46 & G<65 & G>55){
 color = 5; // Brown
}
if (G<58 & G>45 & B<40 &B>26){
 color = 6; // Blue
}
return color; 
}

Deskripsi kode:

Jadi, kita perlu menyertakan pustaka “Servo.h”, tentukan pin di mana sensor warna akan dihubungkan, buat objek servo dan nyatakan beberapa variabel yang diperlukan untuk program. Di bagian pengaturan kita perlu mendefinisikan pin sebagai Output dan Input, mengatur skala frekuensi untuk sensor warna, menentukan pin servo dan memulai komunikasi serial untuk mencetak hasil warna yang dibaca pada monitor serial.

Di bagian loop, program kami dimulai dengan menggerakkan motor servo atas ke posisi pengisi skittle. Perhatikan bahwa nilai ini 115 cocok untuk bagian saya dan motor servo saya, jadi Anda harus menyesuaikan nilai ini serta nilai-nilai berikut untuk motor servo sesuai dengan build Anda.

Selanjutnya menggunakan “for” loop kita akan memutar dan membawa skittle ke posisi sensor warna. Kami menggunakan “for” loop sehingga kami dapat mengontrol kecepatan rotasi dengan mengubah waktu tunda dalam lingkaran.

Selanjutnya, setelah penundaan setengah detik, dengan menggunakan fungsi custom made, readColor() kita akan membaca warna dari skittle. Berikut kode fungsi kustom. Menggunakan empat pin kontrol dan pin output frekuensi dari sensor warna kita membaca warna dari skittle. Sensor membaca 3 nilai yang berbeda untuk setiap skittle, Merah, Hijau dan Biru dan menurut nilai-nilai ini kami memberi tahu apa warna sebenarnya. Untuk lebih jelasnya bagaimana sensor warna TCS3200 bekerja Anda dapat memeriksa tutorial rinci saya sebelumnya tentang hal itu.

Berikut adalah nilai-nilai RGB yang saya dapatkan dari sensor untuk setiap skittle. Perhatikan bahwa nilai-nilai ini dapat bervariasi karena sensor tidak selalu akurat. Oleh karena itu, menggunakan pernyataan “if” ini kami membiarkan sensor kesalahan sekitar -5 dari nilai yang diuji untuk warna tertentu. Jadi misalnya jika kita memiliki Red skittle, pernyataan “if” pertama akan menjadi benar dan variabel “color” akan mendapatkan nilai 1. Jadi itulah fungsi readColor() custom dan setelah itu menggunakan “switch-case ”Pernyataan kami memutar servo bawah ke posisi tertentu. Pada akhirnya kita memutar lebih lanjut motor servo atas sampai tetesan turun ke rel pemandu dan kembali mengirimnya kembali ke posisi awal sehingga proses dapat diulang.

Menyelesaikan Desain

Setelah mengunggah kode, saya mengamankan Papan Arduino menggunakan lem.

Kemudian menggunakan botol plastik transparan saya membuat pengisi daya dan bersama-sama dengan bagian atas menempelkannya ke perakitan dan menyelesaikan proyek.

Selamat Mencobanya.

 

About kelas-fisika

Check Also

Modul Microphone Mic MAX9841

kelas-fisika.com – Modul Microphone Mic MAX9841 Modul amplifier mikrofon mewah ini adalah  built in gain control …

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Powered by themekiller.com