Fase 3 Robot seguidor de línea



FASE 3



ROBOT SEGUIDOR DE LINEA


Introducción

 

En la tercera fase toman relevancia o el protagonismo los sensores, donde se podrá encontrar desde un diagrama de flujo y de bloques que presentan el funcionamiento de los mismos activando o apagando los leds y a su vez serán enseñados en un video.

 

Sensores

 

Los sensores usados en el robot SCARAB son los CNY70, y se cuentan con un total de 6 de estos sensores para su funcionamiento. Los CNY70 o sensores ópticos fueron mencionados en la primera fase del proyecto, cuentan con mas especificaciones y hasta un enlace de compra para el mismo modelo trabajado.

 

Diagrama de Flujo

 

En la imagen 1 corresponde al diagrama de flujo que representa de manera secuencial el proceso que llevaran a cabo los 6 sensores para su funcionamiento en la etapa práctica. El proceso es el siguiente: Los sensores deben hacer una lectura para saber si están sobre la línea negra lo que realizara que el led se encienda, por otro lado, puede tomar el color blanco que significaría que no está sobre la línea negra, provocando que el led simplemente este apagado. 



Imagen 1. Diagrama de flujo de los sensores

En el diagrama están definidas las posiciones de memoria que abarcan los sensores, siendo llamadas CNY1 hasta el CNY6, además cuenta con el uso de condicionales que se encargan de definir si los valores de los leds equivalen a 1, su interpretación seria que el sensor detecta la línea negra y procederá a cumplirse la condición, desencadenando que el led designado al sensor de dicha condición se encienda o sea HIGH, y al contrario si la condición no es cumplida, el led se mantendrá apagado LOW.


Diagrama de Bloques


El diagrama de bloques presentado en la imagen 2 corresponde a la representación interna  del robot seguidor de línea actual  y la relación de los componentes que lo integran, especialmente a los sensores.


Imagen 2. Diagrama de bloques


En el diagrama de bloques se puede ver que la alimentación de 6V va hacia los sensores y al Arduino mega (Controlador), los sensores emiten una señal al Arduino Mega, el cual lo recibe y procesa para enviar la orden correspondiente hacia los leds.


Programación del Arduino



Se procedió inicialmente a establecer los pines de Arduino a los componentes, en este caso decidimos añadir un potenciómetro que usaremos posteriormente para controlar la velocidad en los motorreductores en el robot seguidor de línea, se les asigno los pines a los 6 sensores que se usaron y a los 6 leds, también se estipularon 6 variables correspondientes a los estados de cada sensor, al igual que se asigno "long valor" para el potenciómetro, ya que este maneja señales análogas. posteriormente en el "void setup" establecimos cuales eran entradas y salidas en el programa. Finalmente en el "void loop" se realizan las lecturas del potenciómetro y se establece sus estados de acuerdo a las lecturas que arroja, en segundo lugar se realiza la lectura del estado de los sensores (Si detecta la línea negra o no).

Luego de las lecturas se introducen los condicionales, es decir, que si el estado de cada sensor es igual a 0 (por ejemplo "valor_cny1==0"), el led deberá estar en HIGH o encendido, ya que estaría reconociendo la línea negra, de lo contrario si no se encuentra en dicho estado el valor estará en LOW o apagado. Esto ocurre con cada sensor y led correspondiente.


long valor;
int Vel=0;
int PinVel1=4;
int PinVel2=3;
int sensor1=40;
int sensor2=42;
int sensor3=44;
int sensor4=46;
int sensor5=48;
int sensor6=50;
int valor_cny1=0;
int valor_cny2=0;
int valor_cny3=0;
int valor_cny4=0;
int valor_cny5=0;
int valor_cny6=0;
int led1=5;
int led2=6;
int led3=7;
int led4=8;
int led5=9;
int led6=10;
int ledVel=2;
void setup() {
pinMode(PinVel1, OUTPUT);
pinMode(PinVel2, OUTPUT);
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3, INPUT);
pinMode(sensor4, INPUT);
pinMode(sensor5, INPUT);
pinMode(sensor6, INPUT);
pinMode(ledVel, OUTPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6, OUTPUT);
}
void loop() {
valor = analogRead(A0);
Vel=map (valor,0,1024,0,255);
analogWrite(PinVel1,Vel);
analogWrite(PinVel2,Vel);
analogWrite(ledVel,Vel);
valor_cny1=digitalRead(sensor1);
valor_cny2=digitalRead(sensor2);
valor_cny3=digitalRead(sensor3);
valor_cny4=digitalRead(sensor4);
valor_cny5=digitalRead(sensor5);
valor_cny6=digitalRead(sensor6);
if(valor_cny2==0){
digitalWrite(led2,HIGH);
}
else{
digitalWrite(led2,LOW);}
if(valor_cny1==0){
digitalWrite(led1,HIGH);
}
else{
digitalWrite(led1,LOW);}
if(valor_cny3==0){
digitalWrite(led3,HIGH);
}
else{
digitalWrite(led3,LOW);}
if(valor_cny4==0){
digitalWrite(led4,HIGH);
}
else{
digitalWrite(led4,LOW);}
if(valor_cny5==0){
digitalWrite(led5,HIGH);
}
else{
digitalWrite(led5,LOW);}
if(valor_cny6==0){
digitalWrite(led6,HIGH);
}
else{
digitalWrite(led6,LOW);}


Funcionamiento de los sensores



En el video 1 se demuestra el funcionamiento de los sensores, los cuales detectan la línea negra y los leds se encienden o se apagan respectivamente. 



Video 1. Funcionamiento de los sensores en robot seguidor de línea






Nombre de los integrantes:


Fabian Alexander Diaz Pava -2122301 
Javier Rosero Muñoz - 2127202 
Laura Stefany Viveros Paredes - 2127740

Comentarios

Entradas populares de este blog

Robot laberinto Kastelean

Fase 4 Robot seguidor de linea

FASE 2 ROBOT SEGUIDOR DE LINEA