You are on page 1of 13

1 Desarrollo de la prctica

A continuacin en los siguientes puntos se mostraran las etapas diseadas para poder
obtener la realizacin de una banda clasificadora de objetos de colores.
1.1

Detector de los colores


El sensor de color consta de 3 Leds de diferentes longitudes de onda (azul, rojo,

verde RGB), los cuales encendern en secuencia, al momento de que cada uno
encienda el receptor utilizado (fotorresistecia) variar su resistencia con cada color
reflejado del objeto a sensar, de tal manera que el haz que refleje mayor cantidad de luz
indicar el color del objeto, por ejemplo un objeto verde, reflejar mayor cantidad de
luz emitida por el led verde.
A continuacin en la figura XXXX se muestra el diagrama de conexin del
sensor de color acoplado en Arduino, se tiene un divisor de tensin alimentado por el
Arduino y los 3 Leds con los que se trabajara.

Figura 1. Conexin de LEDs y fotorresistencias a Arduino.

4.2 Sensor de presencia para el detector de colores


Se acoplo un sensor de presencia 1 centmetro antes del detector de colores, de
manera que el detector de color no estar en funcionamiento hasta que el sensor de
presencia detecte que se encuentra un objeto.
El circuito para el sensor de presencia utilizado se muestra en la figura XXXX, su
operacin y funcionamiento consta de la siguiente forma:

Figura 2. Circuito para sensor de presencia.

Cuando no hay objeto entre el emisor (LASER) y receptor (Fotorresistencia), el sensor se


encontrar en nivel bajo, obteniendo un voltaje menor a los 3V, esta condicin har que el
detector de color no realice nada hasta que el haz de luz es interrumpido provocando un
incremento de voltaje (mayor a 3 volts), cumplindose as la condicin que activar el
sensor de color.
En la figura XXXX se muestra la conexin a Arduino del sensor de presencia, se toma la
entrada analgica 1.

Figura 3. Conexin sensor de presencia a Arduino.

4.3 Servo para clasificacin de los objetos


Para realizar la clasificacin de los objetos se utilizo un servo manipulado mediante
Arduino, la funcin del servo es permanecer en tres posiciones diferentes, una posicin
para el color verde (0 grados) , una para el rojo (75 grados) y otra para el azul (145
grados).
Cuando el programa detector de color reconozca el color del objeto que se tiene, el servo
girara a una de las tres posiciones indicando la posicin del color que se tiene. La conexin
del servo se muestra en la figura XXXX.

Figura 4. Forma de conexin de servo a Arduino.

4.4 Control de velocidad de la banda de produccin


Para poder controlar la velocidad de la banda de produccin creada, se realizo un
control de velocidad, este se realizo mediante un circuito astable con timer 555, la figura
XXXX muestra el circuito utilizado para realizar el controlador de velocidad del motor que
har girar la banda de produccin, como se ve se trata de un circuito astable, y mediante el
potencimetro se variara la velocidad de giro del motor, y por ende la velocidad de la banda
de produccin.

VCC 9V

R1
EndendidoA
Key = Space

100k
50%
Key=A

LM555CM
R2
10k

U1
3

R4
10k

6
2

C1
100nF

MOTOR

C2
100nF

Figura 5. Circuito astable para control de velocidad.

Con el circuito mostrado anteriormente variaremos el ancho de pulso de trabajo mediante el


potencimetro de 100k, as la velocidad del motor variara adems se agrego un Switch de
encendido y de apagado de la banda, el cual ser manual, esto para que la banda de
produccin nunca este girando, si no solamente cuando se agreguen objetos de colores a
ella.

4.5 Programacin de Arduino


Para fines de economizar material como reducir la implementacin
de circuitos en el proyecto, se opto por utilizar la tarjeta Arduino.
El programa utilizado se muestra a continuacin, bsicamente el
programa no comenzar hasta que se cumpla la condicin del sensor de
presencia, en otras palabras, que se encuentre un ojeto interrumpiendo
el haz de luz que llega al receptor (fotorresistencia), una vez que la
condicin se ha cumplido, el programa comenzar por activar el sensor
de color el cual consta de encender 3 leds de diferente longitud de onda
(verde, rojo, azul) en secuencia y como se explico en la seccin 4.1 un
divisor de tensin que consta de una fotorresistencia y una resistencia
fija

variara

su tensin al incidir luz reflejada del objeto a la

fotorresistencia, para poder tomar una decisin del color resultante el


programa elige el color con el cual la fotorresistencia aumento
mayormente la tensin del divisor, en cada condicin del color
resultante se encuentra una posicin para el servomotor, de tal manera
que el servomotor tendr una posicin designada para cada color, de
esta manera se clasificaran los objetos por color.
Codigo.
// Declaracin de pines
int fotorresistencia = A0;
int presencia = A1;
int azul1 = 2;
int verde1 = 3;
int rojo1 = 4;
// Calibracion de sensor de color
double cal_azul = 1.0;
double cal_verde = 1.0;
double cal_rojo = 1.0;
double cal_ambiente = 1.0;
void setup(){

pinMode(azul1, OUTPUT);
pinMode(verde1, OUTPUT);
pinMode(rojo1, OUTPUT);
pinMode(fotorresistencia, INPUT);
pinMode(presencia, INPUT);
Serial.begin(9600);}
void loop(){
int sensorpre = analogRead(presencia);
Serial.println(sensorpre);
if (sensorpre > 600)
{
delay(100);
apagados();
delay(100);
evaluacion(100,100);}
else {
Serial.print ("No hay objeto");
delay (100);}
}
apagados(){
digitalWrite(azul1, LOW);
digitalWrite(verde1, LOW);
digitalWrite(rojo1, LOW);}
void encendidos(){
digitalWrite(azul1, HIGH);
digitalWrite(verde1, HIGH);
digitalWrite(rojo1, HIGH);}
void decision(int color){
for(int i=0;i<3;i++) {

digitalWrite(color, HIGH);
delay(100);
digitalWrite(color, LOW);
delay(100);}}
void evaluacion(int t_rec, int t_det){
delay(5000);
double luz_ambiente = analogRead(fotorresistencia);
Serial.print("Luz ambiente: ");
Serial.println(luz_ambiente*cal_ambiente);
digitalWrite(verde1, HIGH);
delay(t_det);
double verde = analogRead(fotorresistencia);
Serial.print("Luz verde: ");
Serial.println(verde*cal_verde);
digitalWrite(verde1, LOW);
delay(t_rec);
digitalWrite(rojo1, HIGH);
delay(t_det);
double rojo = analogRead(fotorresistencia);
Serial.print("Luz roja: ");
Serial.println(rojo*cal_rojo);
digitalWrite(rojo1, LOW);
delay(t_rec);
digitalWrite(azul1, HIGH);
delay(t_det);

double azul = analogRead(fotorresistencia);


Serial.print("Luz azul: ");
Serial.println(azul*cal_azul);
digitalWrite(azul1, LOW);

delay(t_rec);
double Valores_colores[] = {(verde*cal_verde), (rojo*cal_rojo),
(azul*cal_azul)};
double luz_amb = luz_ambiente*cal_ambiente;
int decision2;
for (int i=0; i<3; i++) {
if (luz_amb<Valores_colores[i]){
luz_amb = Valores_colores[i];
decision2 = i+1;}}
Serial.println("");
if(decision2 == 0){
Serial.println("No se ha detectado objeto");
encendidos();
delay(1000);
apagados ();}
else if(decision2 == 1){
Serial.println("Objeto verde");
digitalWrite(verde2, HIGH);
desicion (verde1);
delay(1000);
digitalWrite(verde2, LOW);
delay(100); }
else if(decision2 == 2){
Serial.println("Objeto rojo");
digitalWrite(rojo2, HIGH);
desicion(rojo1);
delay(1000);
digitalWrite(rojo2, LOW);

delay(100);}
else if(decision2 == 3){
Serial.println("Objeto azul");
digitalWrite(azul2, HIGH);
desicion (azul1);
delay(1000);
digitalWrite(azul2, LOW);
delay(100); }
Serial.println("");}
Cabe sealar que el programa en pantalla despliega los valores
analgicos de entrada (la variacin del divisor de tensin) as como el
color resultante de la comparacin.
4.6 Diseo de la banda de produccin
En esta seccin se presenta el diseo de la banda de produccin fsicamente, asi
como cada una de sus etapas y la banda de produccin terminada una vez que se acoplaron
todas las etapas.
En la figura XXXX se muestra la banda de produccin, la cual funciona mediante
un motor que tiene el eje acoplado a un rodillo el cual provoca que la banda se mueva al
mismo tiempo que el motor.

Figura 6. Banda de produccin con eje de motor acoplado.

Mientras que en la figura XXXX se puede apreciar el potencimetro que rigira la


velocidad de la banda de produccin (abajo), el sensor de color (derecha) como el sensor de
presencia (izquierda), esta etapa decidir la clasificacin del objeto en la parte del
servomotor que se muestra en la figura XXXX.

Figura 7. Sensor de presencia (izquierda), sensor de color (derecha).

Figura 8. Etapa del servomotor (clasificador de color).

Por ltimo se muestra la banda de produccin finalizada, vase figura XXXX.

Figura 9. Banda de produccin clasificador de objetos por color.