Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Projeto de classificador de cores do Arduino


Neste artigo, mostrarei como você pode fazer um seletor de cores do Arduino. Você pode assistir ao vídeo a seguir ou ler o artigo escrito abaixo.

Projeto


Tudo o que precisamos para este projeto Arduino é um sensor de cor (TCS3200) e dois servomotores amadores, o que torna este projeto bastante simples, mas muito divertido de construí-lo. Em primeiro lugar, usando o software de modelagem 3D Solidworks, fiz o desenho do classificador de cores e aqui está seu princípio de funcionamento:
  • Inicialmente, os skittles coloridos que são mantidos no carregador caem na plataforma conectada ao servo motor superior.
  • Em seguida, o servo motor gira e leva o skittle ao sensor de cor que detecta sua cor.
  • Depois disso, o servo motor inferior gira para a posição específica e, em seguida, o servo motor superior gira novamente até que o skittle caia no trilho guia.

Aqui você pode baixar o modelo 3D, bem como os desenhos com todas as dimensões necessárias para a construção deste projeto Arduino.

Você pode encontrar e baixar este modelo 3D, bem como explorá-lo em seu navegador no Thangs.

Baixe o modelo 3D de montagem em Thangs.

Os desenhos a seguir podem ser usados ​​para o corte a laser de todas as peças da caixa:

Construindo o classificador de cores do Arduino


O material que usei para este projeto é uma placa de fibra de 3 mm. Redesenho as peças no painel de fibra de acordo com os desenhos e usando uma pequena serra manual cortei todas as peças no tamanho certo.

Com todas as peças prontas, comecei a montá-las. Primeiro montei as partes externas usando uma pistola de cola.

Em seguida, usando cola de uso geral, colei os dois servomotores em suas plataformas e os prendi ao conjunto.

Depois disso novamente usando uma cola eu prendi o trilho guia no servo motor inferior, bem como o suporte e a plataforma necessários para o servo motor superior.

Em seguida, inseri um switch e um conector de alimentação para alimentar o Arduino com um adaptador de 5V e na terceira plataforma inseri o sensor de cor.

Conectei os componentes juntos de acordo com os seguintes esquemas de circuito.

Você pode obter os componentes necessários para este projeto Arduino nos links abaixo:
  • TCS230 Sensor de cores TCS3200…….
  • Arduino Nano …………………………….
  • Breadboard e jump wires ……… 
  • Servomotor ………………………………….
  • Mudar…………………………………….……..
  • Tomada de força……………………………….……

Código-fonte do classificador de cores do Arduino


Neste ponto, primeiro precisamos programar o Arduino e depois finalizar a montagem. Segue o código do 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)

Descrição do código:

Assim, precisamos incluir a biblioteca “Servo.h”, definir os pinos aos quais o sensor de cor será conectado, criar os objetos servo e declarar algumas variáveis ​​necessárias para o programa. Na seção de configuração precisamos definir os pinos como Saídas e Entradas, definir a escala de frequência para o sensor de cor, definir os pinos do servo e iniciar a comunicação serial para imprimir os resultados da leitura de cor no monitor serial.

Na seção de loop, nosso programa começa movendo o servo motor superior para a posição do carregador do skittle. Observe que este valor de 115 é adequado para minhas peças e meu servo motor, então você deve ajustar este valor, bem como os seguintes valores para os servo motores de acordo com sua construção.

Em seguida, usando o loop “for”, vamos girar e trazer o skittle para a posição do sensor de cor. Estamos usando um loop “for” para que possamos controlar a velocidade da rotação alterando o tempo de atraso no loop.

Em seguida, após meio segundo de atraso, usando a função customizada readColor(), leremos a cor do skittle. Aqui está o código da função personalizada. Usando os quatro pinos de controle e o pino de saída de frequência do sensor de cor, lemos a cor do skittle. O sensor lê 3 valores diferentes para cada boliche, Vermelho, Verde e Azul e de acordo com esses valores informamos qual é a cor real. Para mais detalhes sobre o funcionamento do sensor de cores TCS3200, você pode conferir meu tutorial detalhado anterior sobre ele.

Aqui estão os valores RGB que obtive do sensor para cada skittle. Observe que esses valores podem variar porque os sensores nem sempre são precisos. Portanto, usando essas declarações “if”, permitimos ao sensor um erro de cerca de +-5 do valor testado para a cor específica. Então, por exemplo, se tivermos um skittle vermelho, a primeira declaração "if" será verdadeira e a variável "color" receberá o valor 1. Então é isso que a função personalizada readColor() faz e depois disso usando um "switch-case ” nós giramos o servo inferior para a posição específica. No final, giramos ainda mais o servo motor superior até que o skittle caia no trilho guia e novamente o enviamos de volta à posição inicial para que o processo possa ser repetido.

Concluindo o projeto



Depois de fazer o upload do código, fixei a placa Arduino usando uma pistola de cola.

Depois usando uma garrafa plástica transparente fiz o carregador e junto com a parte de cima colei na montagem e finalizei o projeto.

Sinta-se à vontade para fazer qualquer pergunta na seção de comentários abaixo.

Processo de manufatura

  1. Faça Monitor Ambilight usando Arduino
  2. Jogo Arduino Pong - Tela OLED
  3. Detector de frequência de áudio
  4. Arduino Tamagotchi Clone - Animal de estimação digital
  5. Manipulador de interruptor de luz sem fio
  6. Tech-TicTacToe
  7. Pistola de água com sensor de movimento
  8. Cronômetro de contagem regressiva do Arduino
  9. Arduino RGB Color Mixer
  10. Arduino Sunflower:An Electronic Sun-Dancer