Como controlar um drone através de um computador usando sinais de rádio
Esta pergunta surgiu no Google como a primeira resposta a uma consulta correspondente, e eu sinto que ela precisa de algumas informações atualizadas para ser digna de uma classificação tão alta.
A resposta depende do tipo de drone que você planeja controlar. Eu sinto que a maioria dos drones RC que se pode construir ou comprar hoje em dia podem ser divididos nas seguintes categorias amplas.
- Uma caixa voadora Linux. Este é o drone que você recebe se você for para um DYI-build baseado em um Raspberry-Pi ou comprar algo como um RTF ErleCopter.
Você se conecta a tal drone via Wifi, faz login na shell do sistema operacional como você faria em qualquer computador, e está livre para brincar com ele como você faria com qualquer robô baseado em ROS. Esta é provavelmente a opção mais agradável para um entusiasta sério de robótica. Quando o seu drone é um "computador real" você pode até controlá-lo através da nuvem, por exemplo. - Um Arduino voador. Uma versão mais leve da configuração acima, que tem sido muito popular pelo menos alguns anos atrás, é ter um Arduino (ou qualquer outro pequeno microcontrolador) funcionando como o controlador de voo. Embora a construção típica conecte um receptor de rádio padrão para fornecer as entradas de controle, você está livre para complementá-lo com qualquer outra placa wireless (Wifi/Bluetooth/XBee/LTE/etc) que lhe permitiria conectar diretamente ao microcontrolador.
- A "smartphone-controlled" RTF drone, tal como um destes. Você pode sempre controlar seu smartphone a partir do computador através de um aplicativo como o TeamViewer, e isso também fornece uma forma de controle remoto do drone, embora de forma um tanto indireta (você controla o smartphone que controla o drone).
A maioria desses drones parece estar usando Wifi, portanto, em princípio, você deve ser capaz de se conectar diretamente ao drone a partir do computador. Se você fizer a engenharia reversa dos detalhes do protocolo, você deve ser capaz de enviar comandos também, mas o googling breve não me deu nenhum resultado nem para DJI nem para Parrots, então pode requerer alguma pesquisa. - Um RTF "brinquedo" com um rádio "nãoame". Muitos drones baratos vêm pré-embalados com um controlador de rádio e pode não estar claro qual protocolo de rádio eles estão usando. Neste caso, você tem a opção de hackear o transmissor e substituir as entradas do stick por sinais que você pode enviar diretamente do seu computador.
Se o chip e o protocolo de rádio usado no RTF do brinquedo for conhecido (que é o caso de algumas marcas bem conhecidas, tais como Hubsan, Eachine ou JJRC), poderá encontrar o código existente para os microcontroladores Arduino ou STM32, para enviar os comandos de controlo remoto correctos. Agora só resta anexar o seu Arduino a um computador. Veja este projecto, por exemplo. - um drone, que pode controlar a partir de um rádio transmissor "próprio". Todos os radiotransmissores sérios têm uma porta treinadora, que lhe permite controlar o transmissor através de um sinal externo. O sinal externo é na maioria das vezes um PPM, e você pode gerá-lo, por exemplo, através da sua placa de som. Ou seja, você conecta a saída de som do seu computador à porta do treinador do controle remoto, ativa o "modo de treinador" no controle e, desde então, o transmissor atua como um proxy, encaminhando os sinais PPM da sua placa de som para o link de rádio apropriado.
Note que este método pode ser aplicável a brinquedos "não pertencentes ao mesmo" da categoria anterior, pois muitos deles também podem ser controlados a partir de um transmissor "próprio" com suporte multiprotocolo (como o Jumper T8SG) ou através de um módulo multiprotocolo especial.
Na verdade, se entendi correctamente, este módulo em particular poderia ser usado apenas para este fim, sem um telecomando - basta fornecer um sinal PPM e uma bateria.