El Proyecto clasificador de colores Arduino es una forma fascinante de explorar las posibilidades de esta plataforma de programación electrónica. Con este proyecto, podrás aprender a utilizar los sensores de color para identificar y clasificar distintos tonos. Descubre cómo llevar a cabo este emocionante proyecto paso a paso y sorpréndete con los increíbles resultados que puedes lograr. ¡No te lo pierdas!
En este artículo te mostraré cómo hacer un clasificador de colores Arduino. Puede ver el vídeo a continuación o leer el artículo escrito a continuación.
diseño
Todo lo que necesitamos para este proyecto Arduino es un sensor de color (TCS3200) y dos servomotores aficionados, lo que hace que este proyecto sea bastante simple pero muy divertido de construir. Primero, creé el diseño del clasificador de color usando el software de modelado 3D Solidworks y aquí está su principio de funcionamiento:
- Primero,>
- Luego, el servomotor gira y lleva el cono al sensor de color, que detecta su color.
- Después de eso, el servomotor inferior gira a la posición respectiva y luego el servomotor superior gira nuevamente hasta que el cono cae dentro del riel guía.
Aquí podrás descargar el modelo 3D así como los dibujos con todas las dimensiones necesarias para construir este proyecto Arduino.
Puede buscar y descargar este modelo 3D y explorarlo en su navegador en Thangs.
Descargar>Modelo 3D en Thangs.
Proyecto Arduino – Dibujos de máquinas clasificadoras de colores
Los siguientes dibujos se pueden utilizar para cortar con láser todas las piezas del estuche:
Dibujos de clasificador de color Arduino para corte por láser.
Construyendo el clasificador de colores Arduino
El material que utilicé para este proyecto es un tablero de fibra de 3 mm de espesor. Trazo las piezas según los dibujos en el tablero de fibra y corto todas las piezas al tamaño correcto con una pequeña sierra de mano.
Después>
Luego>
Luego usé pegamento nuevamente para fijar el riel guía al servomotor inferior, así como el soporte y la plataforma necesarios para el servomotor superior.
Luego>
Conecté>
Puede>
- Sensor de color TCS230 TCS3200……. Amazon / Banggood / AliExpress
- Arduino Nano………………………………. Amazon / Banggood / AliExpress
- Cables de puente y de placa de pruebas………… Amazon / Banggood / AliExpress
- Servo motor ………………………………. Amazon / Banggood / AliExpress
- Cambiar………………………………….…….. Amazon / Banggood / AliExpress
- Conexión eléctrica…………………………….…… Amazon / Banggood / AliExpress
Divulgación: estos son enlaces de afiliados. Como asociado de Amazon, gano con compras que califican.
Código fuente del clasificador de color Arduino
En este punto primero necesitamos programar el Arduino y luego completar el ensamblaje. Aquí está el código 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;
}
Code language: Arduino (arduino)
Descripción del código:
Entonces necesitamos incluir la biblioteca Servo.h, definir los pines a los que se conectará el sensor de color, crear los objetos servo y declarar algunas variables necesarias para el programa. En la sección de configuración, debemos definir los pines como salidas y entradas, configurar la escala de frecuencia para el sensor de color, definir los pines del servo e iniciar la comunicación en serie para imprimir los resultados de la medición del color en el monitor en serie.
En la sección de bucle, nuestro programa comienza moviendo el servomotor superior a la posición del cargador de cono. Tenga en cuenta que este valor de 115 se ajusta a mis piezas y a mi servomotor, por lo que deberá ajustar este valor así como los siguientes valores para los servomotores según su diseño.
A continuación, giramos el cono usando el bucle «for» y lo llevamos a la posición del sensor de color. Usamos un bucle «for» para poder controlar la velocidad de rotación cambiando el tiempo de retardo en el bucle.
A continuación, después de medio segundo de retraso, leemos el color del cono usando la función personalizada readColor(). Aquí está el código de la función personalizada. Leemos el color del cono utilizando los cuatro pines de control y el pin de salida de frecuencia del sensor de color. El sensor mide tres valores diferentes para cada cono: rojo, verde y azul. Usamos estos valores para determinar el color real. Para obtener más información sobre cómo funciona el sensor de color TCS3200, consulte mi tutorial detallado anterior sobre él.
Aquí>
Finalización del diseño.
Después de cargar el código, adjunté la placa Arduino con una pistola de pegamento.
Luego>
No>
Proyecto Clasificador de Colores Arduino
En este artículo te mostraré cómo puedes hacer un Clasificador de Colores con Arduino. Para este proyecto necesitarás un sensor de color (TCS3200) y dos servomotores hobby, lo que hace que este proyecto sea bastante simple pero muy divertido de construirlo.
Diseño
Lo primero que hice fue utilizar el software de modelado 3D Solidworks para diseñar el clasificador de colores. Aquí tienes el principio de funcionamiento:
- Las golosinas de colores que se encuentran en el cargador caen en la plataforma unida al servomotor superior.
- Luego, el servomotor gira y lleva la golosina al sensor de color que detecta su color.
- Después, el servomotor inferior gira a una posición específica y luego el servomotor superior vuelve a girar hasta que la golosina cae en el riel guía.
Puedes descargar el modelo 3D y los dibujos con todas las dimensiones necesarias para construir este proyecto de Arduino.
Puedes encontrar y descargar este modelo 3D, así como explorarlo en tu navegador en Thangs. Descarga el modelo 3D de ensamblaje en Thangs
Construyendo el Clasificador de Colores Arduino
El material que utilicé para este proyecto es una tabla de fibra de 3 mm de grosor. Volví a dibujar las piezas en la tabla de fibra según los dibujos y corté todas las piezas al tamaño.
Una vez que tuve todas las piezas listas, empecé a ensamblarlas. Primero ensamblé las partes exteriores con una pistola de pegamento. Luego, usando pegamento multiusos, pegué los dos servomotores en sus plataformas y los adjunté al ensamblaje.
Después, nuevamente usando pegamento, adjunté el riel guía en el servomotor inferior, así como el soporte y la plataforma necesarios para el servomotor superior. Luego inserté un interruptor y un conector de corriente para alimentar el Arduino con un adaptador de 5V y en la tercera plataforma inserté el sensor de color.
Conecté los componentes según el siguiente esquema de circuito:
Puedes obtener los componentes necesarios para este proyecto de Arduino en los siguientes enlaces:
Código Fuente del Clasificador de Colores Arduino
En este punto, primero necesitamos programar el Arduino y luego terminar el ensamblaje. Aquí está el código de Arduino:
Descripción del código: Por lo tanto, necesitamos incluir la biblioteca «Servo.h», definir los pines a los que se conectará el sensor de color, crear los objetos de servomotor y declarar algunas variables necesarias para el programa. En la sección de configuración, debemos definir los pines como Salidas y Entradas, establecer el escalado de la frecuencia para el sensor de color, definir los pines del servomotor y comenzar la comunicación serial para imprimir los resultados de la lectura de color en el monitor serial. En la sección del bucle, nuestro programa comienza moviendo el servomotor superior a la posición del cargador de golosinas. Ten en cuenta que este valor de 115 se ajusta a mis piezas y a mi servomotor, por lo que debes ajustar este valor, así como los valores siguientes para los servomotores, según tu construcción. Luego, usando el bucle «for», giraremos y llevaremos la golosina a la posición del sensor de color. Estamos utilizando un bucle «for» para controlar la velocidad de la rotación cambiando el tiempo de retardo en el bucle. A continuación, después de medio segundo de retardo, utilizando la función personalizada, readColor(), leeremos el color de la golosina. Luego, utilizando una declaración «switch-case», giraremos el servomotor inferior a la posición específica. Al final, giramos aún más el servomotor superior hasta que la golosina caiga en el riel guía y la enviamos de vuelta a la posición inicial para que el proceso pueda repetirse.
Para terminar el diseño, aseguré la placa de Arduino usando una pistola de pegamento. Luego, utilizando una botella de plástico transparente, hice el cargador y junto con la parte superior lo pegué al ensamblaje y terminé el proyecto.
Siéntete libre de hacer cualquier pregunta en la sección de comentarios a continuación.
¡Qué genial! Nunca imagine que se podía hacer un clasificador de colores con Arduino. ¡Definitivamente tengo que intentarlo! ¡Gracias por la inspiración!
¡Qué interesante! Me encanta la creatividad que se puede lograr con Arduino. ¡Gracias por compartir!
¡Increíble! Nunca deja de sorprenderme todo lo que se puede lograr con Arduino. Definitivamente vale la pena intentarlo. ¡Gracias por la idea!