La primera versión del software ya esta lista así que en esta entrada voy a explicar el código ya que esta vez he optado por estructurar el software por pestañas como vimos en la entrada anterior: Ejemplos Arduino: Trabajando con pestañas en el Sketch.
Es algo que ya había visto en algún proyecto y no le había hecho mucho caso, pero en programas donde hay muchas lineas y funciones se ha convertido en algo fundamental para poder organizar el programa.
Otra de las ventajas es que podemos reutilizar el código para otros proyectos solo importando el *.ino y añadiéndolo al proyecto.
XboxRC24 Transmitter esta estructurado en 8 pestañas y son las siguientes:
- Transmisor_XboxRC.ino
- Calibracion.ino
- Caracteres.ino
- Comunicacion.ino
- LCD.ino
- Memoria.ino
- Menu.ino
- Modo_tanque.ino
Calibración es el apartado encargado de establecer los máximos y mínimos de los joysticks y gatillos.
Guardaremos los datos en la memoria EEPROM con la instrucción EEPROM.update()
Caracteres.ino:
Como la memoria del LCD solo nos permite tener 8 caracteres personalizados y para este proyecto quería tener algunos más, he creado esta pestaña con los caracteres predefinidos que se cargaran antes de entrar a la función a la que estén asignados.
LCD.ino:
El mando cuenta con una pantalla LCD 16x2 con un módulo de control i2C y esta pestaña como su nombre indica muestra en el LCD los datos enviados y recibidos, las posiciones de los joysticks, estado de la transmisión de los datos, etc...
Memoria.ino:
Memoria se encarga de cargar y borrar los datos de la memoria EEPROM. Las instrucciones que utiliza son:
EEPROM.read() un bucle for leerá los bancos de memoria y los cargara en el array varJoyMin y varJoyTop.
EEPROM.write() con un bucle for pondremos a 0 los bancos de memoria.
Menu.ino:
Los diferentes menús están en esta pestaña por el momento son dos:
- void menu() Aquí tenemos los diferentes opciones que podemos controlar. Lo seleccionaremos con "switch case" y apuntaran a las pestañas donde estarán predefinidos los diferentes vehículos.
- void menuCal() Con este menu nos movemos entre la configuración de las diferentes entradas analógicas y a punta a las funciones almacenadas en la pestaña "Calibracion.ino".
Modo_tanque.ino:
Esta pestaña es para conducir un vehículo con tracción de oruga. Este lo controlaremos mediante el gatillo derecho para acelerar y el joystick izquierdo para las diferentes direcciones. También tenemos configurado el botón A para encender y apagar luces u otro dispositivo.
XboxRC24 botones predefinidos para el modo tanque |
También te puede interesar el código para el receptor:
XboxRC24 Receptor Coche V0.3 desde GitHub
Espero que os guste y que os sea de utilidad tanto el programa en si como la parte de código que podáis utilizar para realizar vuestros proyectos, Saludos!!!
No hay comentarios :
Publicar un comentario