Come controllare un drone tramite un computer usando segnali radio
Questa domanda è apparsa su Google come prima risposta a una query corrispondente, e sento che ha bisogno di alcune informazioni aggiornate per essere degna di una classifica così alta.
La risposta dipende dal tipo di drone che si intende controllare. Credo che la maggior parte dei droni RC che si possono costruire o comprare al giorno d'oggi potrebbero essere divisi nelle seguenti grandi categorie.
- Un Linux box volante. Questo è il drone che si ottiene se si va per un DYI-build basato su un Raspberry-Pi o si compra qualcosa come un RTF ErleCopter.
Si connette a tale drone via Wifi, si accede alla shell del sistema operativo come si farebbe con qualsiasi computer, e si è liberi di giocare con esso come si farebbe con qualsiasi vero robot basato su ROS. Questa è probabilmente l'opzione più bella per un serio appassionato di robotica. Quando il tuo drone è un "vero computer" puoi anche controllarlo attraverso il cloud, per esempio. - Un Arduino volante. Una versione più leggera della configurazione di cui sopra, che è stata molto popolare almeno qualche anno fa, è quella di avere un Arduino (o qualsiasi altro piccolo microcontrollore) come controller di volo. Anche se la costruzione tipica prevede di collegare un ricevitore radio standard per fornire gli ingressi di controllo, sei libero di integrarlo con qualsiasi altra scheda wireless (Wifi/Bluetooth/XBee/LTE/etc) che ti permetterebbe di collegarti al microcontrollore direttamente.
- Un drone RTF "controllato dallo smartphone", come uno di questi. Puoi sempre controllare il tuo smartphone dal computer tramite un'applicazione come TeamViewer, e questo fornisce quindi anche un modo per controllare a distanza il drone, anche se un po' indirettamente (tu controlli lo smartphone che controlla il drone).
La maggior parte di questi droni sembra usare il Wifi, quindi in linea di principio dovresti essere in grado di collegarti al drone direttamente dal computer. Se si invertono i dettagli del protocollo, si dovrebbe anche essere in grado di inviare comandi, ma una breve ricerca su Google non mi ha dato alcun risultato né per DJI né per Parrots, quindi potrebbe essere necessaria qualche ricerca. - Un RTF "giocattolo" con una radio "noname". Molti droni economici sono preconfezionati con un controller radio e potrebbe non essere chiaro quale protocollo radio stiano usando. In questo caso avete la possibilità di hackerare il trasmettitore e sostituire gli ingressi dello stick con segnali che potete inviare direttamente dal vostro computer.
Se il chip e il protocollo radio utilizzato nel giocattolo RTF è noto (che è il caso di alcune marche note, come Hubsan, Eachine o JJRC), si può trovare codice esistente per microcontrollori Arduino o STM32, per inviare i comandi di controllo remoto corretti. A questo punto non resta che collegare il tuo Arduino a un computer. Vedi questo progetto, per esempio. - Un drone, che si può controllare da un trasmettitore radio "corretto". Tutti i trasmettitori radio seri hanno una porta trainer, che ti permette di controllare il trasmettitore tramite un segnale esterno. Il segnale esterno è il più delle volte un PPM, e puoi generarlo, per esempio, attraverso la tua scheda audio. Cioè, si collega l'uscita audio del computer alla porta trainer del telecomando, si abilita la "modalità trainer" sul controllo, e da allora il trasmettitore agisce come un proxy, inoltrando i segnali PPM dalla scheda audio al collegamento radio appropriato.
Nota che questo metodo può essere applicabile ai giocattoli "noname" della categoria precedente, poiché molti di essi possono anche essere controllati sia da un trasmettitore "vero e proprio" con supporto multiprotocollo (come il Jumper T8SG) o tramite uno speciale modulo multiprotocollo.
In effetti, se ho capito bene, questo particolare modulo potrebbe essere usato per questo scopo da solo, senza un telecomando - hai solo bisogno di fornire un segnale PPM e una batteria.