LINE BOT FASE 5
LINEBOT FASE 5
FUNCIONAMIENTO DEL SISTEMA
PROGRAMA INGENIERÍA ELECTRÓNICA
ASIGNATURA: INTRODUCCIÓN A LA INGENIERÍA ELECTRÓNICA
CÓDIGO: 710100M
ESTUDIANTES:
JUAN FELIPE ESCOBAR BARAHONA
CÓDIGO: 2124417
JUAN ANTONIO PATIÑO HERRERA
CÓDIGO: 2123605
MIGUEL ÁNGEL TOVAR ROA
CÓDIGO: 2126064
DOCENTE ASIGNADO: ASFUR BARANDICA LÓPEZ
1. INTRODUCCIÓN
Para la quinta fase, se describirá por completo el funcionamiento del sistema del robot, el movimiento de los motores usando los estímulos de los sensores frente a la detección de la línea y cómo el robot busca ésta cuando se sale de sí misma, de igual modo incluimos el cambio de fuente de alimentación de dos baterías de 9v a 4 baterías de celular conectadas en serie, que cumplen con nuestros requerimientos, dado a que anteriormente se presentaron inconvenientes con la alimentación a los motores y que afectaban su funcionamiento.
2. ESPECIFICACIONES DE LA BATERÍA
Batería 1
Tipo | Ion de litio |
Voltaje | 3,7 V |
Amperios hora | 2 Ah |
Batería 2
Tipo | Ion de litio |
Voltaje | 3,7 V |
Amperios hora | 1,8 Ah |
Batería 3
Tipo | Ion de litio |
Voltaje | 3,7 V |
Amperios hora | 1,3 Ah |
Batería 4
Tipo | Ion de litio |
Voltaje | 3,7 V |
Amperios hora | 1 Ah |
De esta manera, conectándolas en serie llegaríamos a un valor de 14,8 V y a 1 Ah, además estas pilas son recargables, cosa que nos brinda el beneficio de no tener que cambiarlas a menudo, sino que solo debemos cargarlas para su funcionamiento.
Imagen
3. DIAGRAMA DE BLOQUES
El diagrama de bloques se utiliza para describir los componentes y funcionamiento del robot y sus conexiones mediante un esquema que utiliza figuras geométricas para la fácil comprensión del mismo. Aquí en el presente se evidencia las conexiones y funcionamiento básico con el último cambio incluido.
4. DIAGRAMA DE FLUJO
El diagrama de flujo se utiliza para comprender más fácilmente el algoritmo de programación, es decir, el código de programación del robot, dado a esto, mediante el siguiente diagrama se explicará el funcionamiento del sistema usando los estímulos que entregan los sensores.
5. CÓDIGO
int sensorD=A0; //sensor ir en A0
int lecturaD=0; //lectura del sensor trasero
int sensorF=A1; //sensor ir en A1
int lecturaF=0; //lectura del sensor trasero
int sensorI=A2; //sensor ir en A2
int lecturaI=0; //lectura del sensor trasero
int sensorU=A3; //sensor ir en A3
int lecturaU=0; //lectura del sensor trasero
int velocidadmax=0;
int velocidadalta=0;
int velocidadmed=0;
int velocidadmin=0;
void setup()
{
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(3,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(9,OUTPUT);
pinMode(sensorD,INPUT);
pinMode(sensorF,INPUT);
pinMode(sensorI,INPUT);
pinMode(sensorU,INPUT);
}
void loop()
{
velocidadmax=80;
velocidadmin=velocidadmax-80;
lectura();
if(lecturaD==1 && lecturaF==0 && lecturaI==0 && lecturaU==0){
derecha();
analogWrite(10,velocidadmin);
analogWrite(11,velocidadmax);
}
if(lecturaD==0 && lecturaF==1 && lecturaI==0 && lecturaU==0){
derecha();
analogWrite(10,velocidadmax);
analogWrite(11,velocidadmax);
}
if (lecturaD==1 && lecturaF==1 && lecturaI==1 && lecturaU==0){
derecha();
analogWrite(10,velocidadmin);
analogWrite(11,velocidadmax);
}
if (lecturaD==0 && lecturaF==1 && lecturaI==1 && lecturaU==0){
derecha();
analogWrite(10,velocidadmax);
analogWrite(11,velocidadmax);
}
if(lecturaD==0 && lecturaF==0 && lecturaI==1 && lecturaU==0){
derecha();
analogWrite(10,velocidadmax);
analogWrite(11,velocidadmax);
}
if(lecturaD==0 && lecturaF==1 && lecturaI==1 && lecturaU==1){
derecha();
analogWrite(10,velocidadmax);
analogWrite(11,velocidadmin);
}
if(lecturaD==0 && lecturaF==0 && lecturaI==0 && lecturaU==1){
derecha();
analogWrite(10,velocidadmax);
analogWrite(11,velocidadmin);
}
if(lecturaD==0 && lecturaF==0 && lecturaI==0 && lecturaU==0){
atras();
analogWrite(10,velocidadmax);
analogWrite(11,velocidadmax);
}
}
void derecha(){
digitalWrite(2,HIGH);
digitalWrite(4,LOW);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
}
void atras (){
digitalWrite(2,LOW);
digitalWrite(4,HIGH);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
}
void lectura(){
//lectura de sensores ir
digitalWrite(3,HIGH);
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(9,HIGH);
lecturaD=digitalRead(sensorD);
lecturaF=digitalRead(sensorF);
lecturaI=digitalRead(sensorI);
lecturaU=digitalRead(sensorU);
// impresion de sensores ir
Serial.print(lecturaD);
Serial.print(lecturaF);
Serial.print(lecturaI);
Serial.print(lecturaU);
}
En este último código, continuamos usando señales análogas con los motores para regular su potencia al avanzar, retroceder o voltear, y frente a su funcionamiento con los estímulos de los sensores, seguimos utilizando las señales digitales de 1 y 0 para que se avance, si los sensores del centro están censando, si alguno de los extremos empieza a censar se gira respectivamente al lado que debe y si ninguno está censando irá hacia atrás para intentar tener la línea de nuevo. De igual modo se adjuntarán archivos audiovisuales sobre el funcionamiento del robot e imágenes sobre la simulación.
Fotos de montaje actualizado
Videos
Comentarios
Publicar un comentario