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



6. CONCLUSIONES

De esta manera, se concluye la realización del proyecto de desarrollo de un robot basado en Arduino cuya función principal sea el seguimiento de una línea negra. A modo de conclusión, se quiere resaltar que la realización del proyecto por fases ha sido una manera oportuna de llevarlo a cabo, dado a que se realizaban las configuraciones debidas y de manera posterior se acoplaban con las demás fases para que se complementara el funcionamiento; también es importante decir que la obtención de nuevos conocimientos con este proyecto ha sido una parte importante a resaltar, debido a que, al menos en el caso de este grupo, ha sido la primera vez que se realizaba un proyecto de robótica, de esta manera, esperamos que el desarrollo de esta tarea nos haya dado bases para la realización de proyectos futuros. A su vez, con esta asignación se logró comprender el por qué de la popularidad de la plataforma de desarrollo de Arduino, dado a que brinda muchas facilidades a la hora de trabajar con esta y cuenta con su propio lenguaje de programación, además de que hay componentes especializados para trabajar con esta plataforma, lo cual lo hace aún menos complicado a la hora de llevar a cabo un proyecto de esta índole.


Comentarios

Entradas populares de este blog

Robot laberinto Kastelean

Fase 4 Robot seguidor de linea

FASE 2 ROBOT SEGUIDOR DE LINEA