Le quadricoptère M5Stamp Fly est-il le prochain drone Tello ? (Revue)
sur

J'utilise des drones pour des cours éducatifs ( sur internet et en présentiel) où la programmabilité des drones est une préoccupation importante. Le drone que j'ai principalement utilisé, le Ryze/DJI Tello, a été retiré des ventes dans le commerce, et je cherche des alternatives peu coûteuses à utiliser à la place dans mes cours. Lorsque le M5Stamp Fly a été annoncé, j'ai espéré que cette plateforme pourrait être l'alternative que je recherchais. Est-ce que ce produit remplit les conditions nécessaires pour combler mes attentes ?
Introduction
La manette et le drone sont des éléments séparés, mais il est impossible de faire voler le M5Stamp Fly sans le M5Atom Joystick.

Voici ce qui se trouve dans les deux boîtes des articles :
- Le drone M5Stamp Fly
- Deux batteries (une dans chaque boîte)
- Deux hélices de rechange avec un outil pour les démonter (l'un pour la rotation à droite et l'autre pour la rotation à gauche)
- La manette M5Atom JoyStick
Le boîtier de la manette de commande comporte deux emplacements de rechargement, où les deux batteries peuvent être rechargées à l'aide d'un câble de charge USB-C (non fourni dans aucune des boîtes).
Le M5Stamp Fly en résumé
Les pages des produits Elektor se trouvent ici : Le M5Stamp Fly et le M5Atom Joystick. Ces pages contiennent des résumés illustrés du Stamp Fly et de la télécommande Atom Joystick fournis par M5STACK, comme indiqué ci-dessous.

Les pages des articles font toutes deux référence à la même vidéo qui décrit le processus d'appairage du drone Fly et du joystick. Bien qu'il y ait une brève démonstration de vol à la fin de la vidéo, il n'y a aucune aide dans la vidéo pour orienter un nouvel utilisateur sur la façon d'utiliser les commandes du joystick, pour piloter le drone en toute sécurité. Des conseils à ce sujet sont fournis dans la discussion suite au premier vol ci-dessous.
Les principales caractéristiques de ces appareils sont mises en évidence sur chaque figure. Chaque appareil est basé sur un ESP32S3FN8 : Un StampS3 sur le drone et un Atom CoreS3 sur le Joystick. Ils sont tous deux connectés au circuit imprimé principal par l'intermédiaire de connecteurs et sont donc amovibles.
En plus, le Stamp Fly comprend un capteur IMU BMI270, un magnétomètre BMM150, un capteur de pression BMP280, deux capteurs de temps de vol VL53L3C (TOF, Time Of Flight), un capteur de flux optique PMW3901, un bouton Reset/Pair pour l'appairage et la réinitialisation de l'étalonnage, et deux leds RVB WS2812C (en haut et en bas) pour l'état de l'appareil.
Le Joystick Atom comprend un microcontrôleur supplémentaire (STM32F030), deux boutons pour les changements de paramètres, deux joysticks à effet Hall, deux leds RVB pour le contrôle de la charge de la batterie pour chaque baie de rechargement (rouge signifie que la charge est en cours et vert signifie que la charge est terminée), et un port de charge USB-C.
Configuration du drone M5STamp Fly
Bien que cela ne soit pas nécessaire, des instructions sont fournies : Mise à jour du micrologiciel pour le mettre à jour avec la dernière version officielle. J'ai effectué une mise à jour du firmware, car je n'étais pas sûr que le comportement observé lors d'une tentative de décollage (lorsque le Fly était en mode Altitude Auto) correspondait au comportement attendu. Après la mise à jour du firmware, le Joystick et le Fly doivent être à nouveau appairés si vous avez déjà associé le drone et la manette auparavant. Une fois jumelés, vous êtes prêts à faire voler le drone avec la télécommande.
Le processus d’appairage
Le processus de jumelage est résumé dans la figure suivante.

- Appuyez sur le bouton central de l'Atom et maintenez-le enfoncé pour l'allumer, puis suivez les invites de l'écran pour entrer en mode d'appairage en appuyant à nouveau sur le bouton.
- Appuyez sur le bouton de réinitialisation du Stamp Fly pour envoyer le signal d'appairage.
- Attendez que l'appairage soit terminé.
Les voyants d'état à led du M5Stamp Fly
Avant de voler, il est utile de comprendre la signification des couleurs des voyants d'état à led qui apparaissent à l'arrière du Fly, comme on peut le voir ici. Les mêmes couleurs sont affichées sur la led située en bas du Stamp Fly.

La série d'illustrations du haut documente les statuts à la mise sous tension, et la série du bas montre les informations en fonctionnement. Vous pouvez provoquer un auto-contrôle lorsque le Fly est au sol en appuyant sur le bouton de réinitialisation situé sur la partie supérieure de l'avant du Fly, juste en dessous de la carte M5Stamp S3. L'auto-contrôle est alors relancé.
- À la mise sous tension
- Blanc : Lancement de l'auto-contrôle de l'appareil.
- Violet : Étalonnage de l'offset du capteur en cours (maintenez le Stamp Fly à l'horizontale et évitez de le toucher pour empêcher des interférences lors de l'étalonnage).
- Rouge, vert et bleu en alternance : Mode veille (prêt à décoller).
- En fonctionnement
- Bleu clair : Avertissement de batterie faible.
- Jaune : Mode Manual altitude (altitude manuelle).
- Violet : Mode Auto altitude (altitude programmée).
- Vert : Descente automatique en mode Auto altitude.
Le premier vol
La page de documentation du firmware résume les deux modes de fonctionnement comme suit, ainsi que l'effet de vol « voltige » d'un flip.- Bouton avant gauche du joystick Atom (bouton de mode de contrôle)
-
- Mode Stabilisation : Assure un contrôle stable, adapté au vol régulier et à la croisière.
- Mode Sport : Offre une liberté de contrôle maximale, permettant des manœuvres complexes mais exigeant des compétences de pilotage élevées.
- Bouton avant droit du joystick Atom (bouton de mode d'altitude)
-
- Altitude automatique : Maintient une altitude stable au niveau défini ; pousser le joystick gauche vers le haut ou vers le bas modifie l'altitude fixée.
- Altitude manuelle : Contrôle de l'altitude à pleins gaz, nécessitant une plus grande compétence en matière de pilotage.
- Bouton central du joystick droit (Action de voltige aérienne).
Fonctionnement de la télécommande
En mode Auto Altitude (recommandé pour les pilotes inexpérimentés), le bouton à l'écran de la manette est utilisé pour initier le décollage lorsque le message Ready-to-fly (prêt à voler) apparaît à l'écran, comme le montre l'illustration de l'horizon artificiel ci-dessous. En vol, appuyez sur le bouton-écran de la télécommande pour atterrir.
Vous devez vous assurer que l'écran du contrôleur indique que les modes de vol sont définis, comme le montre l'image suivante de l'écran de la télécommande CoreS3. Les modes de vol sont réglés à l'aide des boutons jaunes situés en haut de la manette, comme le montre l'image de la manette déballée ci-dessus.

L’expérience de vol du M5Stamp Fly
Après la mise à jour du firmware, j'ai été un peu plus téméraire dans mes actions de vol, et en mode altitude automatique, une fois le décollage effectué, je peux prendre le contrôle avec le joystick droit pour empêcher le drone de partir à la dérive. L'altitude augmente un peu lorsque cela se produit. Le maintien de l'altitude n'était pas très bon, mais ne nécessitait pas beaucoup de manipulation avec le joystick gauche. Le drone a fait quelques embardées sans intervention du joystick, mais j'ai pu utiliser le joystick gauche pour compenser. En général, l'altitude changeait aussi un peu lorsque je faisais cela, mais pas de manière significative. La plupart du temps, le bouton d'atterrissage (bouton central de l'écran) a fonctionné pour faire atterrir le Fly. Vous devez toujours être attentif avec le joystick droit pour garder le Fly stable.
En vol, l'écran LCD de l'AtomS3 affiche un horizon artificiel qui indique en temps réel l'orientation du Fly.

Si vous laissez le joystick droit en position centrale/neutre sans intervenir, le joystick n'assure PAS un comportement sans dérive en vol stationnaire, et le Fly va se laisser dériver à moins d'être contrôlé à l'aide du joystick droit. Je m'attendais à ce que ce positionnement au décollage et en vol stationnaire se produise, sur la base de mes expériences de vol avec le drone Tello. Je pense que mes attentes étaient erronées car le réglage Altitude Auto (parfois appelé Altitude Hold pour d'autres plateformes de drones) n'est pas le même que le mode Position Hold, qui est pris en charge par le Tello. En mode Position Hold, le drone prend une position de vol stationnaire avec une dérive minime sans toucher à aucun joystick.
La prise en compte des logiciels libres
Le drone M5Stamp Fly et la manette Atom Joystick ont des pages Github. Le code est présenté comme fonctionnant avec le framework PlatformIO plutôt qu'avec l'IDE Arduino. J'ai cherché, mais je n'ai pas trouvé de conseils pour la programmation des appareils M5STACK présentés ici à l'aide d'Arduino. Les autres appareils M5STACK semblent être bien supportés du point de vue Arduino, et peut-être qu'il me manque juste un exemple concret pour apprendre à effectuer une programmation de base de modèles alternatifs de contrôle de vol, comme la mise en œuvre du maintien de position (Position Hold).
ESP-NOW
Le protocole de communication principal utilisé pour la communication entre le contrôleur et le drone est ESP-NOW. Ce protocole est très bien documenté, et de nombreux exemples existent, dont beaucoup fonctionnent dans l'IDE Arduino pour les plateformes ESP32 en général. En fait, l'image en haut de la page ESP-NOW montre un contrôleur à double joystick, qui ressemble beaucoup au contrôleur vendu comme manette de vol pour le drone Stamp Fly.
Il n'y a pas de description de haut niveau de l'API de base, du moins aucune que j'ai pu trouver. Il n'y a rien de comparable à l'information sur l'API du drone Tello publiée par la société de production Ryze/DJI, qui a été utilisée dans un certain nombre de projets indépendants, y compris une bibliothèque Python solide appelée DJITelloPy.
Remarquez que le Tello utilise la communication WiFi pour recevoir les commandes de vol de dispositifs externes, comme le contrôleur ESP32 que j'ai construit pour mes cours. Ce mode de communication est bien documenté.
Puisque les sources des firmwares Stamp Fly et Atom Joystick sont disponibles sur GitHub, il devrait être possible de faire de l'ingénierie inverse, à la fois sur une API rudimentaire et sur les mécanismes de communication ESP-NOW utilisés entre ces appareils.
En conclusion
En ce qui concerne le vol manuel, le Stamp Fly fonctionne comme indiqué dans les pages d'information en ligne du M5STACK. Il n'y a pas de documents imprimés importants inclus dans les boîtes de produits, à l'exception du résumé du voyant d'état, sous la forme d'un petit encart de papier, et du processus de jumelage imprimé sur l'avant de la face arrière de chaque boîte. Chacun de ces éléments est résumé ci-dessus dans le compte-rendu.
Le vol manuel
Avec une bonne formation, le drone est suffisamment facile à contrôler pour que les enfants puissent s'amuser à piloter le drone, en utilisant le mode de contrôle stable (Stable Control) et l'altitude automatique (Auto Altitude). Si quelqu'un a de l'expérience dans le pilotage de drone, avec la même configuration de joystick : Accélérateur et lacet avec le joystick gauche, et tangage et roulis avec le joystick droit, ils peuvent voler en mode sport et en mode altitude manuelle. Comme je testais ce produit à l'intérieur, dans un espace limité, je n'ai pas essayé cette méthode de vol.
Le vol programmé
Ce produit n'est pas encore en mesure de prendre la place du Tello dans le domaine des drones éducatifs. Pour cela, la documentation de l'API doit être affinée pour décrire les modèles de communication de base utilisés, ainsi qu'une liste de commandes qui peuvent être envoyées depuis le contrôleur vers le drone. De même, le vol programmable nécessite au moins une approximation du comportement de vol de maintien de la position, de sorte qu'un décollage puis un vol de démarrage en stationnaire sans intervention du joystick doivent être possible.
J'ai l'intention de faire quelques recherches de mon côté, pour voir si je peux apprendre le fonctionnement interne du Stamp Fly, et de la communication entre le drone et le contrôleur. J'aimerais adapter mon propre contrôleur ESP32 qui pilote le Tello pour qu'il puisse également piloter le Stamp Fly.
Traduction : Laurent RAUBER
Discussion (0 commentaire(s))