Notre aventure dans la création d’un Flight Controller maison
Depuis le début de notre projet de drone à aile fixe imprimé en 3D, une idée nous trottait dans la tête : créer notre propre flight controller (FC), non seulement pour le plaisir du DIY, mais aussi pour comprendre en profondeur le fonctionnement de ces systèmes parfois mystérieux. Voici un petit retour d’expérience sur cette aventure technique… et humaine !
Premier test de mon système en total autonomie
Contrôler le drone avec une manette Xbox, pourquoi pas ?
Pour débuter, on a décidé de partir vraiment de zéro en établissant une liaison TCP directe entre un PC portable et notre drone. Le but ? Contrôler les moteurs avec une manette Xbox, grâce à un logiciel maison tournant sur le PC.
Très vite, on a créé :
- Un serveur en C++ tournant sur une Raspberry Pi, future "air unit" intégrée dans le drone.
- Un client (aussi en C++) sur le PC, chargé de transmettre les commandes issus de la manette vers la Raspberry via TCP.
Et franchement… les débuts étaient super prometteurs : les moteurs répondaient au doigt et à l’œil, avec une latence réduite grâce à notre code optimisé.
Tests des servos moteurs
Vers la fin nous avions même une prémice de stabilisation automatique via un PID plutôt correct !
Démonstration du prototype de stabilisation
Le WiFi, une solution temporaire
Même si on connaissait ses limites dès le départ, on a choisi d’utiliser le WiFi pour sa simplicité et pour se concentrer d’abord sur la mise au point de nos logiciels. Mais la réalité est vite revenue : impossible de dépasser 200 mètres de portée, un vrai frein pour sortir du jardin…
À la découverte d’OpenHD (et de ses limites)
Face à la portée limitée du WiFi, on a voulu utiliser OpenHD pour profiter d’une connexion radio plus longue distance, déjà largement utilisée dans le monde du FPV pour transmettre vidéo et télémétrie. L’objectif : envoyer nos commandes de pilotage via OpenHD avec le protocole MAVLink. Sur le papier, tout semblait parfait.
En pratique, un nouveau défi technique est apparu :
J’ai eu beaucoup de mal à faire tourner nos logiciels maison en parallèle du service OpenHD sur la Raspberry Pi. Plus précisément, je n’arrivais pas à intercepter correctement les commandes MAVLink qui arrivaient sur le serveur UDP déjà utilisé par OpenHD.
Il y avait certainement une configuration à ajuster ou un moyen “propre” de partager ce flux, mais le temps pressait et, après pas mal d’essais et de recherches, on sentait qu’on risquait de s’enliser. L’important était surtout de faire voler rapidement notre version 0 pour tester la machine !
Nous avons finalement opté pour une solution plus classique et éprouvée :
- Un contrôleur de vol “sur étagère” : le Speedybee F405 Wing
- Une télécommande RC classique pour le pilotage
- OpenHD conservé pour la vidéo et la télémétrie uniquement
Cette étape nous permet de nous consacrer à ce qui nous intéresse le plus pour l’instant : le design du drone, ses capacités de vol, et les futures améliorations.
La suite ?
Cette aventure est loin d’être terminée ! L’idée d’un FC maison me tient toujours à cœur. Dès que j’aurai un peu plus de temps, je compte reprendre le développement, éventuellement en simulant une télécommande RC sur PC et en réutilisant le récepteur que nous avons déjà.
On était même arrivé à un prototype
Conclusion
Même si cette première version de notre FC maison n’a pas eu le succès escompté, le bilan est ultra-positif : retour au C++, apprentissage du contrôle de servo et moteurs brushless, découverte du protocole MAVLink… Autant de compétences qui nous seront utiles pour la suite du projet. Et surtout, encore plus de motivation pour continuer à apprendre et innover !