Como posso manipular dados do sonar em tempo real do meu Arducopter no Arduino?

8

Eu tenho um APM 3DR Quad com um kit de rádio telemetria 3DR. Gostaria de enviar dados de sonar em tempo real para o meu laptop (executando o Windows 7) para manipulá-los em um esboço adicional do Arduino.

O sensor do sonar está conectado a um canal de entrada analógica no meu Arduino. Esses dados são processados ​​para cálculos de altitude, e eu gostaria de enviar esses dados de altitude para algum tipo de estação terrestre no meu computador através do uso de um kit de telemetria (2 rádios 3DR: 1 no quadcopter e 1 no meu computador).

Não tenho muita certeza de como executar essa tarefa. Existe uma maneira de modificar o código-fonte (GCS.h ou GCS_Mavlink.pde) em conjunto com a estação terrestre Mission Planner Mav 1.0 para fazer isso? Ou eu precisaria escrever um módulo python para fazer isso?

user1702
fonte
Olá David, bem-vindo à robótica . Geralmente somos simpáticos e prestativos aqui, então eu apara a linha "obrigado" da sua pergunta - ela é entendida :). Uma pergunta que tenho é se você está dizendo sonar quando quer dizer "telemetria de rádio".
Ian
Não, eu tenho um sensor de sonar conectado a um canal de entrada analógica no meu Arduino. Esses dados são processados ​​para cálculos de altitude, e eu gostaria de enviar essa altitude para algum tipo de estação terrestre no meu computador através do uso de um kit de telemetria (2 rádios 3DR: 1 no quadcopter e 1 no meu computador)
user1702
Olá user1702, os comentários têm o objetivo de ajudar a melhorar as perguntas e respostas, por isso é melhor adicionar as informações solicitadas nos comentários editando sua pergunta, para que os comentários possam ser arrumados (excluídos) e não distrairão mais as pessoas da pergunta.
Mark Booth
Deseja processar os dados do sonar no seu laptop ou enviá-los através do laptop para outro arduino?
John Wiseman
John, gostaria de processar os dados no meu laptop. Eu tenho tentado fazer com que o mavproxy funcione, mas me deparei com alguns problemas. Felizmente, posso integrar um módulo python para ajudar com isso.
user1702

Respostas:

2

A configuração do software para extrair novos dados personalizados do sensor via MAVLink parece ser mais difícil do que deveria ser.

O primeiro passo é fazer o quadcopter enviar os dados.

  • Primeiro, você precisa definir um novo tipo de mensagem MAVLink usando XML em mavlink / message_definitions. Você pode apenas criar um novo número inteiro não utilizado para o message_id.
  • Segundo, você gera as funções de pacote / descompactação de mensagens usando o gerador MAVLink.
  • Então você precisará adicionar código ao ArduCopter / GCS_Mavlink.pde em data_stream_send para criar e enviar sua mensagem. Você precisa ter um pouco de cuidado aqui, porque a dinâmica de vôo começa a se degradar se o sensor ler o batente do loop principal por mais de alguns milissegundos, especialmente para um quad pequeno ou para voar em ambientes fechados (é sobre isso que trata o negócio "gcs_out_of_time" ) Eu adicionaria um novo sensor ao gatilho STREAM_EXTRA3.
  • Reconstrua e faça o upload do novo firmware de vôo.

A outra metade do projeto está no PC, onde é necessário modificar o software da estação terrestre para ler os pacotes MAVLink do fluxo de telemetria. Não tenho idéia de onde você começaria a fazer isso com o Mission Planner, que parece um software realmente sofisticado. Mas, felizmente, ele despeja a telemetria de rádio bruta no "tlog" , para que você possa criar um programa completamente separado que procure seu novo pacote MAVLink a partir do tlog. (Você certamente não quer um esboço do Arduino para isso, pois o Sketch é executado no Arduino, não no PC.)

Se isso lhe parecer intimidador, você não está sozinho! Para o nosso quad indoor, acabamos construindo nosso próprio protocolo de comunicação por rádio e "estação terrestre", já que não podíamos usar GPS, waypoints ou outros recursos do MAVLink, e lidar com a complexidade do MAVLink não valeu a pena para nós.

Orion Lawlor
fonte