Ceci est une ancienne révision du document !
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).
Sur le Raspberry
auto wlan0 iface wlan0 inet static address 192.168.4.1 (ou une autre adresse qu'on choisi) netmask 255.255.255.0 wireless-channel 1 (ou un autre channel / le 1 par exemple) wireless-essid WifiDuCapitaine (c'est le nom du réseau créé) wireless-mode ad-hoc
sudo apt-get install isc-dhcp-server
subnet 192.168.4.0 netmask 255.255.255.224 {
range 192.168.4.150 192.168.4.170;
option domain-name-servers ns1.internal.example.org;
option domain-name "internal.example.org";
option routers 192.168.4.1;
option broadcast-address 192.168.4.255;
default-lease-time 600;
max-lease-time 7200;
}
* Rebooter le Raspberry
— Coté PC windows : 1. Quand on détecte le nouveau réseau wifi on peut pas directement ce connecter 2. On va dans le centre de réseau et partage et on crée manuellement une nouvelle connexion réseau qu'on appelle du meme nom que le réseau fait pas RPI 3. (On peut vérifier aussi qu'on peut faire ça en tapant la commande :“netsh wlan show driver” dans une console et si le paramètre “Réseau Hébergé pris en charge” est oui alors c'est bon. 4. il faut paramétrer la nouvelle connexion wifi en tapant la ligne de commande suivante:
netsh wlan set profileparameter name="WifiDuCapitaine" connectiontype=ibss
5. on fini par marquer : netsh wlan connect “WifiDuCapitaine”