Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Proyecto clasificador de color Arduino

En este artículo, le mostraré cómo puede hacer un clasificador de color Arduino. Puede ver el siguiente video 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 para aficionados, lo que hace que este proyecto sea bastante simple pero muy divertido de construir. En primer lugar, utilizando el software de modelado 3D Solidworks, realicé el diseño del clasificador por color y este es su principio de funcionamiento:

Aquí puede 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, así como explorarlo en su navegador en Thangs.

Descargue el modelo 3D de ensamblaje en Thangs.

Los siguientes dibujos se pueden utilizar para cortar con láser todas las piezas de la carcasa:

Construyendo el clasificador de color Arduino

El material que utilicé para este proyecto es un tablero de fibra de garrapata de 3 mm. Vuelvo a dibujar las partes en el tablero de fibra de acuerdo con los dibujos y, con una pequeña sierra manual, corto todas las partes a la medida.

Una vez que tuve todas las piezas listas, comencé a ensamblarlas. Primero ensamblé las partes exteriores usando una pistola de pegamento.

Luego, usando pegamento para todo uso, pegué los dos servomotores en sus plataformas y los uní al ensamblaje.

Después de eso, nuevamente usando pegamento, coloqué el riel guía en el servomotor inferior, así como el soporte y la plataforma necesarios para el servomotor superior.

A continuación, inserté un interruptor y un conector de alimentación para alimentar el Arduino con un adaptador de 5 V y en la tercera plataforma inserté el sensor de color.

Conecté los componentes de acuerdo con los siguientes esquemas de circuito.

Puede obtener los componentes necesarios para este proyecto Arduino desde los siguientes enlaces:

  • Sensor de color TCS230 TCS3200…….
  • Arduino Nano……………………………….
  • Placa de prueba y cables de salto ……… 
  • Servomotor ……………………………….
  • Interruptor…………………………………….……..
  • Conector de alimentación……………………………….……

Código fuente del Clasificador de colores Arduino

Llegados a este punto, primero tenemos que programar el Arduino y luego terminar el montaje. Aquí está el código de 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, debemos 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, establecer 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 lectura de 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 bolos. Tenga en cuenta que este valor de 115 se adapta a mis piezas y a mi servomotor, por lo que debe ajustar este valor, así como los siguientes valores para los servomotores, de acuerdo con su construcción.

Luego, usando el bucle "for", rotaremos y llevaremos el bolo a la posición del sensor de color. Estamos utilizando un bucle "for" para que podamos controlar la velocidad de rotación cambiando el tiempo de retraso en el bucle.

A continuación, después de medio segundo de retraso, utilizando la función personalizada, readColor(), leeremos el color del bolo. Aquí está el código de la función personalizada. Usando los cuatro pines de control y el pin de salida de frecuencia del sensor de color, leemos el color del bolo. El sensor lee 3 valores diferentes para cada bolo, rojo, verde y azul y según estos valores decimos cuál es el color real. Para obtener más detalles sobre cómo funciona el sensor de color TCS3200, puede consultar mi tutorial detallado anterior al respecto.

Estos son los valores RGB que obtuve del sensor para cada bolo. Tenga en cuenta que estos valores pueden variar porque los sensores no siempre son precisos. Por lo tanto, al usar estas declaraciones "si" le permitimos al sensor un error de alrededor de +-5 del valor probado para el color en particular. Entonces, por ejemplo, si tenemos un bolo rojo, la primera declaración "si" será verdadera y la variable "color" obtendrá el valor 1. Eso es lo que hace la función personalizada readColor() y luego usar un "cambio de caso". ” declaración, giramos el servo inferior a la posición particular. Al final, giramos aún más el servomotor superior hasta que el bolo cae en el riel guía y lo enviamos nuevamente a la posición inicial para que el proceso pueda repetirse.

Terminando el Diseño


Después de cargar el código, aseguré la placa Arduino con una pistola de pegamento.

Luego usando una botella de plástico transparente hice el cargador y junto con la parte superior lo pegué para ensamblar y terminé el proyecto.

No dude en hacer cualquier pregunta en la sección de comentarios a continuación.


Proceso de manufactura

  1. Hacer Monitor Ambilight usando Arduino
  2. Juego Arduino Pong - Pantalla OLED
  3. Detector de frecuencia de audio
  4. Clon Arduino Tamagotchi - Mascota digital
  5. Manipulador de interruptor de luz inalámbrico
  6. Tech-TicTacToe
  7. Pistola de agua con sensor de movimiento
  8. Temporizador de cuenta atrás de Arduino
  9. Mezclador de colores Arduino RGB
  10. Arduino Sunflower:Un Sun-Dancer electrónico
  11. RC Porsche Car (Proyecto Arduino)