Murphy - Fase ll
Introducción a la Ingeniería Electrónica - 710100M
Facultad de Ingeniería
Universidad del Valle
Integrantes
Sergio Becerra Sánchez - 2125142
Alejandro Muñoz Gutiérrez - 2123843
Robot seguidor de línea (Murphy) Fase II
Placa microcontroladora
Para nuestro robot utilizaremos un Arduino nano debido a su pequeño tamaño además de
facilitarnos la programación de los diversos componentes. Este pequeño microcontrolador
posee 8 pines análogos y 14 pines digitales de los cuales 6 son PWM, más que suficientes
para lo que necesita nuestro seguidor de línea, además, el arduino es capaz de proporcionar
una salida regulada de 5 voltios los cuales utilizaremos para hacer funcionar tanto el driver
como los sensores. A continuación se presentará una tabla con especificaciones generales
sobre el arduino.
Tabla 1. Especificaciones de Arduino Nano
Sistema de Alimentación
Para alimentar a nuestro robot seguidor de línea, se utilizarán 4 pilas AA alcalinas LR6 de
aproximadamente 2000 mah, estas pilas de 1.5V se conectaran en serie para aumentar el
voltaje de alimentación a 6 voltios y obtener el voltaje necesario para el funcionamiento de
cada uno de los componentes del robot. Para la elección de este tipo de alimentación se ha
tenido en cuenta lo siguiente:
Consumos de corriente de los componentes:
A continuación se presentara una tabla con los consumos aproximados de cada uno de los componentes que hacen parte del robot:
Tabla 2. Consumos de Corriente
Para el caso de el Arduino Nano, Driver TB6612FNG y los sensores QTR8A los valores de consumo de corriente se tomaron de las tablas de especificaciones según sus respectivos fabricantes, para los motorreductores, los valores se tomaron por medio de una simulación en Tinkercad.
Fig 2. Simulación de motor en Tinkercad
Teniendo en cuenta el consumo total del robot, podemos calcular la autonomía de este de la siguiente manera:
Capacidad de las pilas (I) = 2000 mAh
Consumo total de corriente = 673.2 mAh
El robot tiene aproximadamente 2 horas y 57 minutos de autonomía.
Voltaje de alimentación necesarios para cada componente:
El arduino nano va a ser alimentado con una tensión de 6 voltios aproximadamente, los cuales
serán reducirán a 5 voltios debido al regulador de voltaje con el que cuenta este arduino, con estos
5 voltios regulados, alimentaremos el módulo QTR8A y el driver TB6612FNG, de igual manera,
el driver irá conectado directamente a los 6 voltios para suministrar la corriente necesaria para los
motores. Los motores son alimentados a través de una señal PWM controlada por el Arduino.
Tabla 3. Voltajes de Operación
Estructura del robot
Fig 3. Vista trasera del robot
Componentes como el driver y los sensores no se han conectado todavía pero se ha considerado
un espacio temporal para la posterior conexión y configuración de los mismos
Protecciones para el robot
Como sistema de protección, el seguidor de linea cuenta con un fusible de 1A, para que en
caso de que el circuito exija demasiada corriente, el fusible se queme e impida que los
componentes se dañen debido a una subida de corriente, además por el lado de los motores,
el driver cuenta con dos puentes H y dos diodos internos para eliminar posibles cortocircuitos.
Código para el ejercicio propuesto
Diagrama Pictórico
fig 7. Diagrama pictórico de circuito controlador de leds
int pulsador2 = 4; //Variables para los pulsadores
int led1 = 2; //
int led2 = 5; //Variables para los leds
int pulso1 = 0; //
int pulso2 = 0; //Variables para guardar los pulsos de los pulsadores
int estado = 0; //Variable para guardar el estado del pulsador
int estadoAnterior = 0; //Variable para guardar el estado anterior del pulsador
void setup()
{
pinMode(led1, OUTPUT); //
pinMode(led2, OUTPUT); //Se establecen ambos pines de los leds como salidas
pinMode(pulsador1, INPUT); //
pinMode(pulsador2, INPUT); //Se establecen ambos pines de los pulsadores como entradas
}
void loop() {
pulso1 = digitalRead(pulsador1); //Se guarda el valor de la lectura del pulsador 1 en la variable pulso1
if ((pulso1 == HIGH) && (estadoAnterior == 0)) { //Si el pulso es alto y el estado anterior es bajo:
estado = 1 - estado; //Cambia el estado de la variable (HIGH o LOW dependiendo del caso)
delay(100); //Crea un delay para eliminar los rebotes del pulsador
}
estadoAnterior = pulso1; //Guarda el estado anterior del pulso
if (estado == 1) { //Si la variable estado es igual a 1:
digitalWrite(led1, HIGH); //El led1 prenderá
}
else {
digitalWrite(led1, LOW); //De lo contrario se apagará
}
pulso2 = digitalRead(pulsador2); //Se guarda el valor de la lectura del pulsador2 en la variable pulso2
if (pulso2 == 1) { //Si pulso2 es Alto el led
digitalWrite(led2, HIGH); //Encenderá
} else {
digitalWrite(led2, LOW); //De lo contrario se apagará
}
}
Costos del proyecto hasta el momento
Tabla 4. Costos del robot
Referencias
https://store.arduino.cc/usa/arduino-nano
https://www.pololu.com/file/0J86/TB6612FNG.pdf
Comentarios
Publicar un comentario