Telemetría y data logger with Arduino


Desde hace mucho tiempo he estado interesado en los microcontroladores, y he intentado hacer mis pinitos con lo más básico (16F84), pero siempre he dejado ese mundo por imposible ya que mis basicos conocimientos de electrónica hacen que el menor de los proyectos requiera un gran aprendizaje y training, que por consiguiente consume un tiempo del que no dispongo.

Ya me había resignado a no poder ejecutar proyectos sobre pics, y lo más pequeño que he trabajado son placas embebidas con arm ejecutando un linux al completo,¡¡¡ Pero ahora he descubierto la plataforma ARDUINO !!! Gracias a la gente del proyecto arduino, individuos como yo, con pocos conocimientos sobre microcontroladores, pero con amplios conocimientos sobre programación, podemos ejecutar una amplia variedad de despliegues basados en la plataforma arduino.

Para iniciar mi aprendizaje, me he propuesto ejecutar una plataforma de telemetría desde un modelo volante hasta tierra. Hay muchos instrumetnos de telemetría en modelismo, pero mi objetivo ultimo no es tener la telemetría, sino aprender arduino.

Para comenzar con el proyecto identifiqué los distintos datos a ser recolectados desde el modelo, dando como resultado los siguientes:

– Altitud (Absoluta y relativa). Obtenido via GPS guardando las coordenadas del despegue y calculando relativa en base a ellas.

– Velocidad (Absoluta y relativa). Velocidad absoluta mediante GPS y relativa mediante sonda pitot.

Sensor de presión

Sensor de presión con sonda pitot


Desde hace mucho tiempo he estado interesado en los microcontroladores, y he intentado hacer mis pinitos con lo más básico (16F84), pero siempre he dejado ese mundo por imposible ya que mis basicos conocimientos de electrónica hacen que el menor de los proyectos requiera un gran aprendizaje y training, que por consiguiente consume un tiempo del que no dispongo.

Ya me había resignado a no poder ejecutar proyectos sobre pics, y lo más pequeño que he trabajado son placas embebidas con arm ejecutando un linux al completo,¡¡¡ Pero ahora he descubierto la plataforma ARDUINO !!! Gracias a la gente del proyecto arduino, individuos como yo, con pocos conocimientos sobre microcontroladores, pero con amplios conocimientos sobre programación, podemos ejecutar una amplia variedad de despliegues basados en la plataforma arduino.

Para iniciar mi aprendizaje, me he propuesto ejecutar una plataforma de telemetría desde un modelo volante hasta tierra. Hay muchos instrumetnos de telemetría en modelismo, pero mi objetivo ultimo no es tener la telemetría, sino aprender arduino.

Para comenzar con el proyecto identifiqué los distintos datos a ser recolectados desde el modelo, dando como resultado los siguientes:

– Altitude (absolute and relative). Retrieved via GPS calculating relative on takeoff coordenates.

– Speed (absolute and relative). Absolute speed via GPS and relative using a pitot probe.

Pressure sensor


– Posición absluta. Mediante GPS EM-411

GPS EM-411

– Heading, Pitch y Roll. A través de un módulo con aceletrometro, giroscopo y magnetómetro de 9 grados de libertad.

– Consumos electricos. Mediante hardware de medición de amperaje consumido.

Sensor de corriente acs714-30a

– Datos sobre la motorización. El montaje está destinado a un modelo con un motor a reacción. Estos motores se controlan mediante un fadec que colecta datos del motor y tiene la posibilidad de enviarlos mediante puerto serie. De este fadec nos interesa el consumo instantáneo, temperatura y RPM de la turbina.

fadec

La comunicación con varios de estos intrumentos se efectua por protocolo serie y Arduino UNO solo incorpora un puerto. Se puede emular por software en pines del integrado, pero consume tiempo de cpu, y la versión superior del arduino (Arduino MEGA) incorpora 4 puertos TTL con lo que me decidido por esa placa.

ArduinoMega2560
ArduinoMega2560

Por ultimo, los datos serán enviados a tierra por un enlace 433Mhz también por puerto serie.

Enlace serie 433Mhz TTL

En tierra hay dos opciones; montar un programa con un sistema grafico, o bien montar otra placa arduino con un LCD. En una primera instancia simplemente montaré el sistema con un minicom guardando en bruto todos los datos que se envien desde el equipo de vuelo, pero más adelante la idea es por supuesto postprocesarlos.

Compré el material la semana pasada, y está todo en camino, salvo el sensor de 9 grados de libertad, que dejaré para más adelante. Como no podía esperar más por la placa (la impaciencia me corroe) compré un Arduino leonardo en una tienda cercana, y llevo una semana jugando y programando con él. Al no tener sensores necesarios, he estado jugando con servos y receptores RC, y me ha parecido buena idea, ya que el arduino tiene los datos de heading y pitch, programar un mini piloto automático, que nivele el avión en caso de perdida de señal. Sería muy sencillo, solo nivelar el avión y mantenerlo recto, nada más.

Iré posteando los avances del proyecto conforme estos se produzcan.



Pressure sensor with pitot probe

– Absolute position. GPS EM-411

GPS EM-411

– Heading, Pitch and Roll. Through a module with accelerometer, gyroscope and magnetometer with 9 degrees of freedom.

– Electricity consumption. By measuring hardware amperage consumed.

Current sensor acs714-30a

– Datos sobre la motorización. El montaje está destinado a un modelo con un motor a reacción. Estos motores se controlan mediante un fadec que colecta datos del motor y tiene la posibilidad de enviarlos mediante puerto serie. De este fadec nos interesa el consumo instantáneo, temperatura y RPM de la turbina.

fadec

Communication with several of these instruments is made by serial protocol and Arduino UNO incorporates only one port. They can be emulated by software, but consumes CPU time, and the highest version of arduino (Arduino MEGA) has 4 TTL ports so i will use Arduino Mega2560

ArduinoMega2560
ArduinoMega2560

Finally, data are sent to earth through 433Mhz link.

Serial ground link 433Mhz TTL

Ground side there are two options; a program with a graphical system, or other Arduino with LCD. In the first instance simply will run minicom keeping all data sent from the plane, but later the idea is of course post-processing.

I bought the material last week, and it’s all on track, except the 9 degrees of freedom sensor, I will leave it for later. Since I could not wait any longer for the plate, bought an Arduino Leonardo in a nearby store, and took a week playing and programming with it.

I will be posting the progress of the project as they occur.


8 comentarios de “Telemetría y data logger with Arduino”

  1. HOLA SOY ALUMNO DE ELECTRONICA DE GRADO SUPERIOR, TENGO QUE HACER EL PROYECTO INTEGRADO Y ESTOY INTERESADO EN LA TELEMETRIA PARA MOTOCICLETAS COMO PROYECTO PODRIAS DECIRME SI FUNCIONO, SI VA BIEN GRACIAS

  2. Hola Carlos

    Si, funcionó, la trama llega correctamente, pero no llegué a implementar un protocolo con CRC el cual es muy necesraio por que hay gran corrupción de datos, al menos uno de cada 10 envios llegan corruptos (envio a 10Hz).
    Por otro lado, lo probé solo en mi barrio, aún no lo he echado a volar, y teniendo en cuenta que el receptor estaba dentro de mi casa, y la gran cantidad de obstaculos y ruido electrónico, una distancia de 500 metros con esas antenas en horizontal está bastante bien. Espero que esta distancia se amplie hasta los 1200 metros al menos en un campo de vuelo.

  3. hola alvaro otra pregunta el sensor hall de arduino para las rpm, no vendrian muy bien verdad?? a mi me haria falta para que me pueda leer hasta una velocidad de 20000RPM

  4. Hola Alvaro,

    Tengo una pregunta de conexiones. Voy a conectar el sensor EM-411 al arduino y no quiero meter la pata. He encontrado varias versiones de datasheet del EM411 ¿Podrías indicarme cual son los cables Ground-VCC-Rx-Tx según conector? En mi sensor salen 6 cables (verde-amarillo-naranja-rojo-marron-negro visto desde arriba de izquierda a derecha)

    Gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *