Telemetría

La telemetría del NS1 envía la localización GPS y los datos de los sensores de a bordo de la cápsula, usando el enlace de radio explicado en Comunicaciones.

El NS1 utiliza el sistema de comunicaciones APRS, un sistema de reporte automático de posición, basado en el protocolo AX.25 sobre radio AFSK a 1200 bits/s.

El protocolo APRS define varios tipos de paquetes, de reporte de posición, de mensajes entre estaciones, de estaciones meteorológicas, etc. En el NS1 usamos los paquetes de reporte de posición, haciendo uso del campo de comentarios de este tipo de paquetes para transmitir los datos de los sensores de a bordo.

La Raspberry Pi usada como ordenador de vuelo, recoge los datos de los sensores y la posición del GPS y crea el texto de un paquete en un archivo de texto, que usando la utilidad gen_packets de direwolf, convertimos en un archivo de audio AFSK 1200 listo para ser enviado por radio. Un paquete de ejemplo podría ser:

EA1IDZ-11>WORLD,WIDE2-2:!4331.52N/00540.05WO0/0.020/A=37.2/V=7.64/P=1018.0/TI=29.50/TO=26.94/23-04-2016/19:52:49/GPS=43.525415N,005.667503W/EA1IDZ test baliza APRS/SSTV ea1idz@ladecadence.net

Este paquete contiene los siguientes campos:

  • EA1IDZ-11>WORLD,WIDE2-2: Indicativo del emisor y destinatario (World a todo el mundo)
  • !4331.52N/00540.05W: Latitud y longitud
  • O : Tipo de estación, la O mayúscula corresponde con un globo
  • 0 : Heading
  • 0.020: Velocidad
  • A=37.2: Altitud GPS
  • V=7.64: Voltaje de la batería
  • P=1018.0: Presión atmosfétrica
  • TI=29.50: Temperatura interna
  • TO=26.94: Temperatura externa
  • 23-04-2016/19:52:49: Fecha y hora de captura de los datos
  • GPS=43.525415N,005.667503W: Posición con precisión extendida. El protocolo APRS solo usa dos decimales para la posición; para la localización de la cápsula queremos mayor precisión.
  • EA1IDZ test baliza APRS/SSTV ea1idz@ladecadence.net: Comentario final.

Sensores

Para la recogida de estos datos, se emplean los siguientes sensores:

  • Posición, Velocidad, Altura y Heading: GPS Ublox 6M
  • Voltaje: Un conversor analógico-digital SPI MCP3008. Además se usa un divisor de voltaje 22K/10K para un ratio 1/3.2
  • Presión Atmosférica: Barómetro digital BMP095
  • Temperaturas: Termómetros digitales 1-Wire DS18b20
  • Fecha y hora: RTC DS3231

Flight Software

El software de vuelo se encarga como se ha comentado de recoger los datos de los sensores y enviarlos por el enlace de radio. Está escrito en Python y usa diversos programas para convertir entre formatos.

El software está disponible en: https://github.com/ladecadence/ns1

Decodificación

Para la recepción y decodificación de la telemetría, se usan o RTLSDRs, o receptores de radioaficionados tipo UV5R u otro tipo de radios. La decodificación del audio se hace por software usando direwolf1), y la interpretación de los datos, se hace por un lado con aplicaciones de APRS para visualizar la posición, y por otro lado con una aplicación desarrollada al efecto para mostrar de un vistazo los datos de la telemetría:

La aplicación está desarrollada en processing por portabilidad, y se conecta a direwolf para recibir los paquetes e interpretarlos. Además da la posibilidad de subir las tramas a un servidor mediante HTTP POST para su almacenamiento o visualización.

El código está disponible en: https://github.com/ladecadence/NS1Telemetry

Tracking

Para que cualquiera pueda seguir el vuelo de la cápsula en tiempo real, se ha desarrollado una pequeña aplicación web, que por un lado recibe y almacena las tramas que la aplicación de telemetría envía al servidor, y por otro muestra el último paquete de datos recibido en un mapa basado en OpenStreeMap, mostrando la posición de la cápsula sobre el mapa, y añadiendo capas con los datos de vuelo y un gráfico de la altura.

El tracker está online en http://ashab.space/tracker/index.php

Él código de la aplicación se puede descargar en github: https://github.com/ladecadence/ASHAB-Tracker

1)
Dire Wolf es un modem/TNC por software y codificador/decodificador de APRS. https://github.com/wb2osz/direwolf