Is de M5Stamp Fly Quadcopter de volgende Tello? (Review)
Ik gebruik drones voor educatieve cursussen (online en klassikaal) waarbij de programmeerbaarheid van de drone een belangrijk punt is. De drone die ik voornamelijk heb gebruikt, de Ryze/DJI Tello, is uit de commerciële verkoop genomen en ik ben op zoek naar goedkope alternatieven om te gebruiken in mijn cursussen. Toen de M5Stamp Fly werd aangekondigd, hoopte ik dat dit platform het alternatief zou kunnen zijn dat ik zocht. Komt deze in dit opzicht in aanmerking?
Ik heb drones gebruikt voor educatieve cursussen (online en klassikaal) waarbij de programmeerbaarheid van de drone een belangrijk aandachtspunt was. De drone die ik voornamelijk heb gebruikt, de Ryze/DJI Tello, is uit de commerciële verkoop genomen en ik ben op zoek naar goedkope alternatieven om te gebruiken in mijn cursussen. Toen de M5Stamp Fly werd aangekondigd, hoopte ik dat dit platform het alternatief zou kunnen zijn dat ik zocht. Komt deze in dit opzicht in aanmerking?
Inleiding
De controller en drone worden als aparte producten geleverd, maar out of the box is er geen manier om met de M5Stamp Fly te vliegen zonder de M5Atom Joystick.
De M5 Stamp Fly met de M5Atom Joystick
Dit is wat er in de twee dozen zit:
De M5Stamp Fly drone
Twee batterijen (één in elke doos)
Twee reservepropellers met propellerdemontagegereedschap (één voor rechtsom en één voor linksom draaien)
De M5Atom JoyStick-controller
Er zijn twee oplaadsleuven in de behuizing van de Joystick waar beide batterijen kunnen worden opgeladen met behulp van een USB-C oplaadkabel (in geen van beide dozen aanwezig).
M5Stamp Fly Productsamenvatting
De Elektor-productpagina's zijn hier te vinden: M5Stamp Fly en M5Atom Joystick. Deze pagina's bevatten door M5STACK geleverde picturale samenvattingen van de M5Stamp Fly en M5Atom Joystick Controller zoals hieronder getoond. M5Stamp Fly en M5Atom Controller overzichten naast elkaar
De productpagina's hebben beide een verwijzing naar dezelfde video die het koppelproces voor de Fly en de Joystick-controller documenteert. Hoewel er een korte vliegdemo is aan het einde van de video, is er geen hulp in de video om een nieuwe gebruiker te oriënteren op het gebruik van de joystickbediening om de drone veilig te besturen. Hints hierover worden gegeven in de discussie over de eerste vlucht hieronder.
Opvallende kenmerken van deze apparaten zijn op elke afbeelding gemarkeerd. Elk apparaat is gebaseerd op een ESP32S3FN8: StampS3 op de drone en Atom CoreS3 op de joystick. Beide zijn verbonden met de hoofdprint via pin headers en zijn dus verwijderbaar.
Daarnaast bevat de M5Stamp Fly een BMI270 IMU-sensor, een BMM150 magnetometer, een BMP280 druksensor, twee VL53L3C Time-of-Flight (ToF)-sensoren, een PMW3901 optische stroomsensor, een Reset/Pairknop voor het opnieuw koppelen en kalibreren en twee WS2812C RGB-status-LED's (op de bovenkant en op de onderkant).
De M5Atom Joystick bevat een extra MCU (STM32F030), twee knoppen voor het wijzigen van instellingen, twee Hall-effect joysticks, twee RGB LED's voor het monitoren van de acculading voor elke laadpoort (rood betekent dat er wordt opgeladen en groen betekent dat het opladen is voltooid) en een USB-C laadpoort.
Het instellen van de M5Stamp Fly
Hoewel dit niet nodig is, vindt men hier instructies: Updating Firmware over hoe de firmware te updaten naar de laatste officiële versie. Ik heb de firmware geüpdatet omdat ik niet zeker wist of wat ik zag toen ik probeerde op te stijgen, terwijl de Fly in de auto Altitude modus stond, het verwachte gedrag was. Na het updaten van de firmware moeten de Joystick en de Fly opnieuw worden gekoppeld als de drone en controller eerder gekoppeld waren. Na het koppelen kan men de drone besturen met de controller.
Koppelingsproces
Het koppelingsproces wordt samengevat in de volgende afbeelding. Koppelingsproces van M5Stamp en controller.
Houd de middelste knop van de Atom ingedrukt om hem aan te zetten en volg de aanwijzingen op het display om de koppelingsmodus te openen door nogmaals op de knop te drukken.
Druk op de resetknop op de M5Stamp Fly om het koppelingssignaal te verzenden.
Wacht tot het koppelen is voltooid.
LED-statuslampjes van de M5Stamp Fly
Voordat men gaat vliegen, is het handig om de betekenis te kennen van de kleuren van de LED-statuslampjes die aan de achterkant van de Fly verschijnen, zoals hier is te zien. Dezelfde LED-status licht effecten worden weergegeven op de LED aan de onderkant van de Stamp Fly. Betekenis van de statuslampjes van de M5Stamp Fly
De bovenste reeks illustraties documenteert de inschakeleffecten en de onderste toont de operationele effecten. Men kan een zelfcontrole uitvoeren met de Fly op de grond door op de resetknop te drukken aan de bovenzijde van de Fly, net onder de M5Stamp S3-kaart. Hierdoor wordt de zelfcontrole opnieuw uitgevoerd.
Inschakelen
Wit: Zelfcontrole van apparaat gestart
Paars: Sensor offset kalibratie bezig (houd de Stamp Fly horizontaal en voorkom aanraken om kalibratiestoring te voorkomen).
Afwisselend rood, groen en blauw: Stand-by modus (klaar om op te stijgen).
In bedrijf
Lichtblauw: Waarschuwing batterij bijna leeg.
Geel: Handmatige Altitude-modus.
Paars: Auto Altitude-modus.
Groen: Automatische daling in autoAltitudemodus.
Eerste vlucht
De firmwaredocumentatie pagina vat de twee functiemodi als volgt samen, samen met de "truc" vliegeffect van een flip.
Knop linksvoor op M5Atom Joystick (schakelaar voor bedieningsmodus)
Stabiliseermodus: Biedt stabiele controle, geschikt voor gewone vluchten en cruisen.
Sportmodus: Biedt maximale besturingsvrijheid en maakt complexe manoeuvres mogelijk, maar vereist een hoge operationele vaardigheid.
Knop rechtsvoor op M5Atom Joystick (hoogtemodusschakelaar)
Auto Altitude: Handhaaft een stabiele hoogte op het ingestelde niveau; als men de linker joystick omhoog of omlaag duwt, verandert de ingestelde hoogte.
Handmatige Altitude: Volledige controle over de hoogte door middel van vol gas, vereist een hogere operationele vaardigheid.
Middelste knop op rechter joystick (actie Aerial Flip)
Bediening van de Controller
In de auto Altitude modus (aanbevolen voor onervaren vliegers) wordt de displayknop op de controller gebruikt om op te stijgen wanneer het Ready-to-Fly-bericht op het display verschijnt, zoals weergegeven in de onderstaande illustratie van Artificiële Horizon. Druk tijdens de vlucht op de display-toetsvan de controller om te landen.
Men moet ervoor zorgen dat het display van de controller aangeeft dat de vluchtmodi zijn ingesteld, zoals te zien is in de volgende afbeelding van het display van de CoreS3 controller. Vluchtmodi worden ingesteld met de gele knoppen aan de bovenkant van de controller zoals te zien is in de bovenstaande afbeelding van de uitgepakte controller. Vluchtmodi ingesteld voor de eerste vlucht.
M5Stamp Fly Vliegervaring
Nadat de firmware was geüpdatet, was ik wat moediger in mijn vliegacties en in auto Altitude zodra de start plaatsvindt, kan ik de controle met de rechterjoystick overnemen om te voorkomen dat de Fly afdrijft. De hoogte wordt een beetje hoger als dat gebeurt. Het vasthouden van de hoogte was niet erg goed, maar er was niet veel micromanagement nodig met de linker joystick. De drone gierde een beetje zonder tussenkomst van de joystick, maar ik kon de linker joystick gebruiken om te compenseren. Meestal veranderde de hoogte ook een beetje als ik dit deed, maar niet drastisch. Meestal werkte de land-knop (middelste displayknop) om de Fly te landen. Men moet altijd goed opletten met de rechter joystick om de Fly stabiel te houden.
Tijdens het vliegen toont het LCD-display van de AtomS3 een kunstmatige horizon die de vliegoriëntatie van de Fly in realtime weergeeft. Kunstmatige horizon op de vluchtcontroller.
Als men de rechterjoystick in de middelste/thuispositie laat staan zonder hands-on, biedt de joystick GEEN driftvrij/hover-gedrag en zal de Fly gaan driften tenzij deze met de rechterjoystick wordt bediend. Op basis van mijn ervaringen met het vliegen met de Tello drone had ik verwacht dat deze start- en zweefpositionering zou optreden. Ik denk dat mijn verwachting onjuist was omdat de auto Altitude instelling (soms Altitude Hold genoemd voor andere drone platforms) niet hetzelfde is als Position Hold, wat de Tello wel ondersteunt. In de modus Position Hold neemt de drone een zweefpositie in met slechts een minimale drift zonder een joystick aan te raken.
Open-Source overwegingen
Zowel de M5Stamp Fly drone als de Atom controller hebben een Github pagina. De code wordt gepresenteerd als gebruikmakend van het PlatformIO framework in plaats van de Arduino IDE. Ik heb gezocht maar geen instructies gevonden die helpen bij het programmeren van de M5STACK devices die hier zijn besproken met Arduino. Andere M5STACK devices lijken goed ondersteund te worden vanuit het Arduino perspectief en misschien mis ik gewoon een illustratief voorbeeld om wat basisprogrammering van alternatieve vluchtbesturingspatronen te leren, zoals het implementeren van Position Hold.
ESP-NOW
Het belangrijkste communicatieprotocol dat wordt gebruikt voor de communicatie tussen controller en drone is ESP-NOW. Dit protocol is zeer goed gedocumenteerd en er bestaan talloze voorbeelden, waaronder vele die werken binnen de Arduino IDE voor ESP32-platforms in het algemeen. De afbeelding bovenaan de ESP-NOW pagina toont een controller met twee joysticks die erg lijkt op de controller die wordt verkocht als vluchtcontroller voor de M5Stamp Fly drone.
Er is geen beschrijving op hoog niveau van de basis-API, tenminste geen die ik heb kunnen vinden. Er is niets dat lijkt op de Tello drone API-informatie die is gepubliceerd door het Tello productiebedrijf Ryze/DJI, die is gebruikt in een aantal onafhankelijke projecten, waaronder een robuuste Python bibliotheek genaamd DJITelloPy.
Merk op dat de Tello gebruik maakt van WiFi-communicatie om vluchtcommando's te ontvangen van externe apparaten zoals de ESP32-controller die ik heb gebouwd voor mijn cursussen. Deze communicatiestijl is goed gedocumenteerd.
Aangezien de M5Stamp Fly en M5Atom Joystick firmware broncode beschikbaar is op GitHub, zou het mogelijk moeten zijn om zowel een rudimentaire API als de ESP-NOW communicatiemechanismen die gebruikt worden tussen deze apparaten te reverse engineeren.
Conclusie
Voor handmatig vliegen functioneert de Stamp Fly zoals minimaal gedocumenteerd in de M5STACK online informatiepagina's. Er is geen noemenswaardig gedrukt materiaal in de verpakkingen, behalve de samenvatting van de statuslampjes op een klein velletje papier en het koppelingsproces dat op de voorkant van de achterkant van elke doos is afgedrukt. Elk van deze wordt hierboven in de beoordeling samengevat.
Handmatige vlucht
Met de juiste begeleiding is de drone gemakkelijk genoeg te besturen, zodat kinderen het misschien leuk vinden om de drone te besturen in de Stable Control Mode en auto Altitude. Als iemand ervaring heeft met drone vliegen met dezelfde Joystick set-up: Throttle en Yaw met de linker joystick en Pitch en Roll met de rechter joystick, kunnen ze vliegen met Sport Mode en handmatige hoogte. Omdat ik dit product testte op een binnenlocatie met beperkte luchtruimte, heb ik deze manier van vliegen niet geprobeerd.
Geprogrammeerde vlucht
Dit product is nog niet gepositioneerd om de plaats in te nemen van de Tello in de educatieve drone-ruimte. Om dit mogelijk te maken moet de API-documentatie worden verfijnd om de basiscommunicatiepatronen die worden gebruikt te beschrijven, evenals een lijst met commando's die kunnen worden verzonden van de controller naar de drone. Ook vereist programmeerbare vlucht ten minste een benadering van het Position Hold vluchtgedrag, zodat het mogelijk moet zijn om op te stijgen en dan te gaan zweven zonder tussenkomst van een joystick.
Ik ben van plan om zelf wat onderzoek te doen om te zien of ik de innerlijke werking van de M5Stamp Fly en de communicatie tussen drone en controller kan leren kennen. Ik wil mijn eigen ESP32-controller, die met de Tello vliegt, aanpassen om ook met de Stamp Fly te kunnen vliegen.
Discussie (1 opmerking(en))