ROBOT DE LABERINTO aMAZE - fase 2

aMAZE

Definición, especificación e implementación del sistema de alimentación de aMAZE y primera aproximación a la plataforma Arduino

ALIMENTACIÓN

Baterías recargables de litio

La alimentación del robot está compuesta por dos baterías recargables fabricadas por la marca X-BAIGI de li-ion 18650 con una capacidad máxima 8800 mAh y 4.2 V cada una, estas son apropiadas para ejercer esta función debido a que poseen la cualidad de ser recargable, característica que será muy útil si en futuras ocasiones fuese necesaria la utilización del robot, de esta manera, no sería imperativo comprar baterías una y otra vez trayendo beneficios económicamente.

Fotografía 1: baterías empacadas.


Fotografía 2: las 2 baterías a utilizar


Finalmente, el voltaje que empleará el circuito del robot, que se encuentra en seria; alcanzará un voltaje de 8,4 y un amperaje de 8800.

Protección PCM

Es una protección de carga y descarga, por lo tanto, este tipo de circuito cumple la función de controlar los periodos en que la batería o conjunto de celdas no deberían presentar una descarga, consecuentemente, corta la tensión de salida y determina el momento en que se encuentra suficientemente cargado, cortando la tensión desmesurada de entrada. Además, estos controlan las fases de carga y goteo.
Imagen 1: protección PCM en baterías de litio



Puente H L293D M400D

Es considerado de gran importancia, puesto que es el componente destinado a regular la potencia con la que operan los motorreductores, interviniendo en el avance y el retroceso del robot.

Imagen 2: módulo driver L293D M400D


Placa microcontroladora

Fue escogida la tarjeta Arduino UNO R3, por su tamaño y el uso al que fue destinado fue la opción más favorable para utilizar. Esto gracias a que cuando sus características son especificadas de manera técnica, se resaltan los beneficios que trae para su incorporación en este tipo de robots, su descripción se efectúa de la siguiente manera:

Respecto al funcionamiento.
  • Trabaja con el microcontrolador ATmega328.
  • Opera con 5 voltios.
  • Se recomienda que su voltaje de entrada se sitúe entre 7 y 12 voltios.
  • Posee 14 pines de entradas y salidas digitales, de los cuales 6 son salidas PWM (Pulse Width Modulation).
  • Contiene 6 pines de entradas analógicas.
  • Su microcontrolador (ATmega328) tiene incorporada una memoria flash ISP que dispone de 32 KB , de esta cantidad 0,5 KB es usado por Bootloader. También, tiene integrada una memoria SRAM de 2 KB y, adicionalmente, una memoria EEPROM de 1 KB.
  • La velocidad de su reloj de de 16 MHz.
En cuanto a sus propiedades.
  • Su longitud es de 68,6 mm.
  • Su ancho es de 53,4 mm.
  • Denota un peso de 25 g.
Fotografía 3: placa de Arduino captado desde su posición trasera

Fotografía 4: placa de Arduino captado desde su punto de vista superior


PRIMER ACERCAMIENTO A ARDUINO

Con la placa elegido (Arduino UNO R3) fueron probados, en primera instancia, los dos leds solicitados como parte de la entrega, a través del programa Arduino 1.8.14, se creó un algoritmo que permitió ejecutar la función propuesta en la Rúbrica de evaluación de la fase 2 del proyecto que establecía que el primer led debía permanecer encendido siempre y cuando el pulsador número 1 fuese oprimido.

Video 1: comportamiento del led 1

Por consiguiente, se configuró el algoritmo y se armó el circuito que proporcionarían operatividad a la segunda función, esta consiste en que el led número 2 se encienda al oprimir en un instante el pulsador 2 y, al dejar de presionarlo; se mantenga de esta manera, luego, al oprimir el pulsador 2 de nuevo, el led 2 debe apagarse.

Video 2: comportamiento del led 2

Programación en Arduino

Equivalencia de las constantes.
  • LED1: el led número 2.
  • LED2: el led número 1.
  • BOTON1: el pulsador número 1.
  • BOTON2: el pulsador número 2.
Para la creación del código propuesto, en primer lugar, se declararon las constantes LED1=5, LED2=6, BOTON1=7 y BOTON2=8 a través de la función "const int", por consiguiente, se declararon las variables val1, val2 = 0, state2 = 0 y old_val2 = 0 por medio de la función "int". Luego, se establecieron las salidas LED 2 y LED 1, y las entradas BOTON1 y BOTON2 mediante la función pinMode. Consecuentemente, se agregó un bucle con la lectura de las variables val1 con relación al BOTON1 y val2 relacionada al BOTON2 con una instrucción condicional que tiene como cometido determinar que cuando se oprime de manera constante el primer led, este permanece encendido y, de lo contrario, este debe apagarse. De forma consecutiva, se añadió otra instrucción condicional que establece que cuando Val2 iguala a HIGH y old_val2  iguala a LOW el estado_2 realiza las acción de encendido, posteriormente, se hizo una equivalencia entre val2 y old_val2. Finalmente, se insertó otra instrucción condicional que determina que si state2 está en 1, el LED1 se encuentra en HIGH, de otra manera, este se encontraría en LOW, dando como resultado su apagado.

Imagen 3: código en el programa Arduino 1.8.14



Imagen 4: código con una vista óptima

Video 3: funcionamiento del programa que controla los dos leds

PRESUPUESTOS
Imagen 5: presupuesto de la fase 2


Imagen 6: presupuesto del robot hasta la fecha












Comentarios

Entradas populares de este blog

Robot laberinto Kastelean

Fase 4 Robot seguidor de linea

FASE 2 ROBOT SEGUIDOR DE LINEA