Aunque he seguido practicando con Arduino y he construido algún prototipo, lo cierto es que no había hecho ninguna entrada en el blog.
Ahora me voy a embarcar (nunca más con sentido) en un prototipo al que el verano que viene voy a sacar mucho partido. Voy a construir (o al menos intentarlo hasta desfallecer técnicamente) un módulo GPS que me indique la velocidad, el rumbo, la distancia recorrida, etc. para instalarlo en un pequeño barco y para ser original, voy a llamar Ardutrip.
En el barco hay uno ya instalado de la marca Bidata, un ST-40 pero no funciona nada salvo la temperatura del agua (aunque tampoco las tengo todas conmigo). En teoría marca la velocidad y la distancia recorrida así como la profundidad pero por lo que he investigado, los sensores (transductores en jerga marinera) fallan mucho porque se llenan de caracolillo (el verdín que hay en los barcos) y hay que limpiarlos continuamente. En el caso de la velocidad y distancia ( también llamado corredera) el transductor es como una pala que gira cuando circula el agua que debe hacer de interruptor y aunque vi que giraba, no queda claro si realmente está sucia o que la instalación eléctrica está mal (que también puede ser) pero de cualquier forma, lo que recibe el módulo central es una serie de impulsos según giran las palas. Dentro de mis objetivos (que ahora detallaré está generar esos impulsos para mandárselos.
Básicamente quiero disponer de la siguiente información:
Ahora me voy a embarcar (nunca más con sentido) en un prototipo al que el verano que viene voy a sacar mucho partido. Voy a construir (o al menos intentarlo hasta desfallecer técnicamente) un módulo GPS que me indique la velocidad, el rumbo, la distancia recorrida, etc. para instalarlo en un pequeño barco y para ser original, voy a llamar Ardutrip.
En el barco hay uno ya instalado de la marca Bidata, un ST-40 pero no funciona nada salvo la temperatura del agua (aunque tampoco las tengo todas conmigo). En teoría marca la velocidad y la distancia recorrida así como la profundidad pero por lo que he investigado, los sensores (transductores en jerga marinera) fallan mucho porque se llenan de caracolillo (el verdín que hay en los barcos) y hay que limpiarlos continuamente. En el caso de la velocidad y distancia ( también llamado corredera) el transductor es como una pala que gira cuando circula el agua que debe hacer de interruptor y aunque vi que giraba, no queda claro si realmente está sucia o que la instalación eléctrica está mal (que también puede ser) pero de cualquier forma, lo que recibe el módulo central es una serie de impulsos según giran las palas. Dentro de mis objetivos (que ahora detallaré está generar esos impulsos para mandárselos.Básicamente quiero disponer de la siguiente información:
- Velocidad: Actual, media, máxima
- Distancia: Recorrida desde inicio de medida y la total
- Rumbo
- Día y Hora
- Posición GPS con historial desde inicio de medida y datos del GPS como satélites conectados
guardando en una tarjeta las sesiones por fecha/hora para luego poder explotarlas en el PC. Además poder generar una serie de impulsos para enviárselos al Bidata y ver si funciona.
Cuento, entre otras cosas, con los siguientes componentes básicos:
- Arduino UNO
- Pantalla de 2.4 pulgadas en Shield
- Módulo GPS
Primera toma de contacto
Pedí la pantalla y el módulo GPS (entre otras cosas) a una tienda china pero desde el almacén europeo (con un pequeño sobrecoste) me mandaron previamente la pantalla (18 días naturales) y en cuanto la recibí, empecé a probar.
Es cierto que durante el tiempo de espera estuve navegando por internet porque el problema que nos podemos encontrar es con las librerías de manejo de la pantalla y aunque es un gusto la cantidad de información que hay, da un poco de miedo pensar que no encuentres la adecuada.
En la misma página china, en los comentarios dijeron que era la segunda versión de la pantalla y apuntaban a https://github.com/JoaoLopesF/SPFD5408 como lugar adecuado. Aunque descargué también otras localizaciones, fue la primera que probé y funcionó.
La pantalla viene en una placa que encaja en los pines del Arduino lo cual, ahora para probar me gusta pero que no me va a servir ya que entiendo que no usa todos los pines y yo tengo que conectar también el módulo GPS pero para empezar e ir cubriendo fases, me parece bien.
De todas formas, mi impresión es que será complicado tener en un sólo Arduino el control del GPS y manejar la pantalla por lo que probablemente tendré que tener uno para cada cosa y comunicarlos por serie dado que son los pines que me quedan.
Mi plan de programación es crear un menú en el que al menos haya estas opciones:
Mi plan de programación es crear un menú en el que al menos haya estas opciones:
- Nueva sesión
- Sesiones anteriores
- Detalles GPS
- Opciones (Kn/Km, colores, ...)
para lo que también me va a facilitar el hecho de la pantalla es táctil (resistiva).
Como programador con experiencia en cortar y pegar, me he basado en un ejemplo para ir añadiendo funcionalidad.
Ahora mismo he llegado a iniciar la pantalla, entender sus dimensiones, la rotación, colores, ... y crear texto de inicio y que acepte lo de 'Pulsa una tecla para continuar'.
Cuando tenga algo de código decente, lo iré poniendo en Dropbox. Lo que si me pasó y tuve un momento incómodo es que en un fallo de programación el Arduino se debía quedar en un bucle (colgado como una paraguaya) y no había forma de que hiciese caso al Update. Separé el Shield y al arrancar, supongo que le daba error de pantalla y no avanzaba y pude cargar el sketch adecuado.
Atentos a siguientes entradas (por si me tenéis que echar una mano si me atasco)


