jueves, 28 de febrero de 2013

TinyVar. Un vario a medida

(sep-2012)

INTRO

El concepto:
Llevaba ya mucho tiempo con la idea en la cabeza de construir un altivario adaptado a mis necesidades y que encajara con mi concepto de aparato simple y eficaz :
Debería ofrecer datos básicos y precisos sobre la ganancia/perdida de altitud en el tiempo e ir en el cockpit porta-instrumentos, junto a la cámara, el teléfono y el GPS. Ya puestos a pedir, ser rápido y simple de encender, para minimizar el “nervio-fatiguismo” producido por la puesta en marcha de tantos aparatos antes de despegar.

Lo vivido:
El diseño y construcción desde cero de este vario me ha llevado muchas horas de trabajo y de sueño, así como una pequeña inversión. He tenido que comprar, quemar, probar, pisotear...  varios  modelos de PICs, LCDs y sensores.  No voy a entrar en detalles para no extenderme demasiado, pero son muchos los imprevistos que van surgiendo  (tensiones de funcionamiento, capacidad de proceso, encapsulado, disponibilidad, funcionamiento no deseado…). Como todo, tiene su parte buena, he aprendido mucho y me llevo la satisfacción de haber terminado un “proyecto útil” y propio.

El resultado:
El resultado ha sido un vario con un mejor tiempo de respuesta, mayor precisión y menor ruido (falsas fluctuaciones de medidas) que mi actual vario comercial (Digifly Flyer II). Objetivo superado!!.
No obstante, tengo pensado continuar trabajando en el firmware para añadirle mejoras y nuevas funciones.

AL GRANO:

El listado que dejo a continuación ha sido la selección final de componentes que por una u otra razón he considerado mas oportuno para este proyecto.

Sensor:
El sensor barométrico utilizado es el MS5611-01BA01 de MEAS Company, encontrado en el gran buscador de chismes “Ebay”. Viene montado en una break-out board con las ventajas que conlleva a la hora de pincharlo en la protoboard.
Microprocesador:
El elegido ha sido un micro controlador PIC24FJ64GA002 de Microchip (16 bits) con encapsulado SPDIP para pinchar en la protoboard. Comprado también a través de Ebay.
Pantalla:
Es un display LCD monocromático de 84x48 pixeles (utilizado por los viejos NOKIA 5110), su uso esta bastante extendido por los hobbistas, por lo que es económico y está bien documentado. También proviene de Ebay  con su correspondiente break-out board.


Alimentación:
Se ha optado por un modulo Step-Up de Sparkfun basado en el integrado NCP1402.
Este módulo nos permite alimentarlo con una única batería de 1,5v ofreciéndonos 3,3v regulados a su salida. Igualmente en su correspondiente break-out board.


A continuación un reportaje fotográfico sobre su evolución:
Primer circuito en la protoboard
Jugando con los sensores
Creando la interfaz
El primer proto
Pruebas en vuelo proto1
PCB casera para proto2
Proto2
Diseñando carcasa para el proto2 con mi fresadora CNC
Carcasa proto2, ensamblado
Carcasa proto2, terminada
Proto1 vs Proto2
Depuración y correcciónde de errores del firm

 

Vídeo

 


Algunos vídeos  mas (clic para verlos):

FUNCIONAMIENTO  

 


TinyVar Descripción de la pantalla: (basado en el firmware v1.1) 
 
1-Velocidad vertical (m/s) (actualizado cada 0,5s con los datos del ultimo segundo).
2-Altitud relativa ("altura sobre el despegue") (m) (se resetea a 0 al encenderlo).
3-Crono hh:mm:ss (se resetea a 0 al encenderlo).
4-Campo de datos variable. Rota cada 2s ofreciendo los siguientes valores:
-P.: Presión atmosférica (mb).
-T.: Temperatura(° C)
-FL.: Altitud FL (m)  (Altura sobre el nivel del mar considerando que hay 1013,25mb a 0 metros).
-FL.M: Máxima altitud FL alcanzada (m) (se resetea al encenderlo).
-FL.m: Mínima altitud FL alcanzada (m) (se resetea al encenderlo). 
-AltR.M: Máxima altitud relativa alcanzada (m) (se resetea al encenderlo).
-AltR.m: Mínima altitud relativa alcanzada (m) (se resetea al encenderlo). 
-Vr.M: Máxima velocidad vertical de alcanzada (m/s) (se resetea al encenderlo).
-Vr.m: Mínima velocidad vertical alcanzada (m/s) (se resetea al encenderlo). 
5-Gráfica de Altura-Tiempo (muy útil en paramotor, con un simple vistazo comprobamos si vamos en crucero, subiendo o bajando). Actualmente la escala es de 3s/pixel para el eje X y 4m/pixel para el eje Y.
6-Porcentaje de batería (10 niveles). Actualizado cada 2 minutos.





Acústica:
 

Actualmente el sonido de ascenso comienza a +0,2m/s y el de descenso a -2,5m/s (entre -2,4 y +0.1 no hay sonido)

El sonido de ascenso es intermitente y de frecuencia y duración proporcional a la tasa de ascenso.
El sonido de descenso es continuo y de frecuencia inversamente proporcional a la tasa de descenso.

Otros:


Internamente tiene el pinout de salida para una UART (niveles TTL 3.3v), trabaja a 9600baud 8bits sin paridad 1bit de stop. 

Por el momento lo único que hace es enviar de forma continuada los valores de presión y temperatura actuales cada 500ms. Además si le enviamos el carácter 'r' o 'R' el vario se reseteara.

Actualmente tengo montado un pequeño altavoz en lugar del piezo-buzzer, tiene un sonido más limpio y bonito, pero por contra consume un poco más (para el próximo dejare el piezo).


Manejo:
Poco que argumentar, tiene 3 interruptores: uno de encendido general (no consume energía alguna en estado apagado), otro para activar/desactivar la iluminación de fondo (lo habitual es llevarla apagada) y otro para activar/desactiva el sonido.

FIRMWARE

Puedes descargar los archivos en la sección de descargas.

2 comentarios:

  1. Hola. Puestos a pedir también con anemómetro y GPS.
    Opino igual que Sergio, te lo has currado.
    Veo que el proyecto tiene ya tres años, ¿no habrás hecho el Nº 3 o el 4? Porque si es así ole tus "..."

    ResponderEliminar