¿Cómo puedo manipular datos de sonda en tiempo real desde mi Arducopter en Arduino?


8

Tengo un APM 3DR Quad con un kit de telemetría de radio 3DR. Me gustaría enviar datos de sonda en tiempo real a mi computadora portátil (con Windows 7) para manipularla en un Arduino Sketch adicional.

El sensor de sonda está conectado a un canal de entrada analógica en mi Arduino. Esos datos se procesan para los cálculos de altitud, y me gustaría enviar estos datos de altitud a algún tipo de estación terrestre en mi computadora mediante el uso de un kit de telemetría (2 radios 3DR: 1 en el quadcopter y 1 en mi computadora).

No estoy muy seguro de cómo hacer esta tarea. ¿Hay alguna manera de que pueda modificar el código fuente (GCS.h o GCS_Mavlink.pde) junto con la estación terrestre Mission Planner Mav 1.0 para hacer esto? ¿O necesitaría escribir un módulo de Python para lograr esto?


Hola David, bienvenido a la robótica . En general, somos amables y serviciales aquí, así que eliminé la línea de "gracias" de su pregunta, se entiende :). Una pregunta que tengo es si estás diciendo sonar cuando quieres decir "telemetría de radio".
Ian

No, tengo un sensor de sonda conectado a un canal de entrada analógica en mi Arduino. Los datos se procesan para los cálculos de altitud, y me gustaría enviar esta altitud a algún tipo de estación terrestre en mi computadora mediante el uso de un kit de telemetría (2 radios 3DR: 1 en el quadcopter y 1 en mi computadora)
user1702

Hola usuario1702, los comentarios están destinados a ayudar a mejorar las preguntas y las respuestas, por lo que es mejor agregar la información solicitada en los comentarios editando su pregunta, de esa manera los comentarios se pueden ordenar (eliminar) y ya no distraerán a las personas de la pregunta.
Mark Booth

¿Desea procesar los datos de la sonda en su computadora portátil o enviarlos a través de la computadora portátil a otro arduino?
John Wiseman

John, me gustaría procesar los datos en mi computadora portátil. He estado tratando de hacer que mavproxy funcione, pero me he encontrado con algunos problemas. Con suerte, puedo integrar un módulo de Python para ayudar con esto.
user1702

Respuestas:


2

Configurar el software para extraer nuevos datos de sensores personalizados a través de MAVLink parece ser más difícil de lo que debería ser.

El primer paso es hacer que el quadcopter envíe los datos.

  • Primero, debe definir un nuevo tipo de mensaje MAVLink usando XML en mavlink / message_definitions. Puede crear un nuevo entero sin usar para el message_id.
  • En segundo lugar, genera las funciones de paquete / desempaquetado de mensajes utilizando el generador MAVLink.
  • Luego deberá agregar código a ArduCopter / GCS_Mavlink.pde en data_stream_send para compilar y enviar su mensaje. Debe tener un poco de cuidado aquí, porque la dinámica de vuelo comienza a degradarse si las lecturas de su sensor detienen el bucle principal durante más de unos pocos milisegundos, especialmente para un pequeño quad o volar en interiores (de eso se trata el negocio "gcs_out_of_time" ) Agregaría un nuevo sensor al disparador STREAM_EXTRA3.
  • Reconstruya y cargue el nuevo firmware de vuelo.

La otra mitad del proyecto está en la PC, donde necesita modificar el software de la estación terrestre para leer sus paquetes MAVLink fuera del flujo de telemetría. No tengo idea de dónde comenzarías a hacerle esto a Mission Planner, que parece un software realmente sofisticado. Pero afortunadamente, descarga la telemetría de radio sin procesar al "tlog" , por lo que es posible que pueda crear un programa completamente separado que busque su nuevo paquete MAVLink del tlog. (Ciertamente no quieres un Arduino Sketch para esto, ya que un Sketch se ejecuta en Arduino, no en la PC).

Si esto te suena intimidante, ¡no estás solo! Para nuestro quad interior, terminamos construyendo nuestro propio protocolo de comunicación por radio y "estación terrestre", ya que no podíamos usar GPS o puntos de referencia u otras funciones de MAVLink, y lidiar con la complejidad de MAVLink no valía para nosotros.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.