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.