Télémétrie

Pour pouvoir debugger, comprendre le comportement du drone et éventuellement utiliser la charge utile (quelle qu'elle soit) en direct, il faut pouvoir lui transmettre autre chose que des commandes de vol et recevoir un maximum de paramètres de vol. Il faut donc pouvoir streamer des données entre le PC et le drone alors même que le drone est en vol.

Dans ce projet, j'ai fait le choix (au 20/01/2020) de transmettre les commandes de vol avec des modules Xbee mais le reste des communications se fait par wifi. Comme, il est possible de communiquer avec le Raspberry PI Zero WH, qui contrôle le drone, par wifi, profitons en pour créer un programme qui transmets et envoi des informations par socket. Pour cela, on crée un programme python client sur le PC et un programme python serveur sur le Raspberry PI.

Cependant, il y a un hic : il faut qu'une box soit a proximité pour produire le réseau wifi sur lequel le PC et le raspberry sont tous les deux connectés. Cela devient un problème si on veut faire voler le drone dans une zone éloignée des habitations ou simplement dans une zone sans wifi (ce qui est de plus en plus rare de nos jours !).

Pour contrer cela, il est possible de faire créer son propre réseau wifi au raspberry pi (s'il y est équipé d'une antenne wifi évidement, ce qui est le cas du Zéro WH).

Créer un réseau Wifi Ad-Hoc avec un Raspberry PI

netsh wlan show driver

Si le paramètre “Réseau Hébergé pris en charge” est oui alors c'est bon.

netsh wlan set profileparameter name="WifiDuCapitaine" connectiontype=ibss
netsh wlan connect "WifiDuCapitaine"

On est alors connecté et on peut utiliser une console SSH ou une prise de contrôle à distance comme le VNC.

<note>Si le PC est sous Linux, ce dernier doit pouvoir directement se connecter au WiFi Ad-Hoc</note>