In PC-Active 306 kwam de Tello Drone als Beste Koop uit de test. In deze workshop laten wij zien hoe je deze drone zelf kunt aansturen met behulp van DroneBlocks, online lees je hoe je dat via Scratch en Python doet.

Theo van Haandel


TELLO iNTRO
De populaire Tello Drone kreeg in PC-Active 306 het predicaat Beste Koop. Deze kleine, lichte drone met een camera aan boord is een goed instapmodel met een prima prijs-kwaliteitverhouding, gemakkelijk te besturen en te programmeren. Dat laatste is leuk en interessant voor vooral beginners op dat gebied. Dit artikel is dan ook bedoeld voor iedereen die graag meer wil weten over deze drone en ook voor wie geïnteresseerd is in programmeren.

Tello Drone
De Tello Drone is een kleine, indrukwekkende drone geschikt voor kinderen en volwassenen, weegt ongeveer 80 gram (batterij en propellers inbegrepen) en is 98mm x 92,5mm x 41mm groot. Hij beschikt onder andere over een afstandsmeter, barometer, LED, 802.11n wifi 2.4G, bluetooth versie B, micro-usb-oplaadpoort, 5MP-fotocamera (2592x1936) en videocamera (HD720P30) en een verwisselbare batterij (1.1Ah/3.8V). Ook beschikt hij over een Vision-positioneringssysteem dat een nauwkeurige, stationaire vlucht mogelijk maakt. De maximale vliegreikwijdte is 100 meter, de maximale snelheid 8 meter per seconde en de maximale vliegtijd bedraagt 13 minuten.
Voor het besturen van de Tello kun je een mobiele telefoon gebruiken. De app waarmee je de drone bestuurt, draait op minimaal iOS7.0 en Android 4.0. Je zet de drone aan en maakt dan verbinding via wifi. Daarna kun je de Tello App gebruiken en de drone bedienen. Je ziet dan als achtergrond het videobeeld dat afkomstig is van de drone.

Documentatie
Op https://www.ryzerobotics.com/tello/downloads kun je diverse (Engelstalige) pdf-documenten downloaden. Begin met de User Manual, de Disclaimer and Safety Guidelines en de Quick Start Guide - Multi. Deze laatste heeft ook een Nederlandstalig deel: de Snelstartgids. De Tello Release Notes bevatten informatie over firmware-updates, hierover lees je verderop meer. Lees de Safety Instructions, zodat je weet hoe en wat je wel en niet moet doen. Voor het gebruik van drones in het algemeen geldt: wees voorzichtig! Bekijk de User Manual en gebruik de Tello eerst een tijdje in de praktijk zoals beschreven staat in deze handleiding.

Apps
Op eerdergenoemde downloadpagina vind je rechts informatie over de diverse apps die beschikbaar zijn voor de Tello. Gebruik de QR-code of (één van) de links die je op die pagina vindt, of zoek naar Tello in de app store op je mobiele apparaat en installeer de Tello-app.
Het is verstandig om de Tello Drone eerst uitvoerig uit te proberen met de standaard-app. Zo krijg je ervaring en raak je bekend met de diverse mogelijkheden en problemen. Je komt er dan bijvoorbeeld achter dat het niet verstandig is om de Tello te laten landen op iets te hoog gras. Zodra een propeller een grassprietje raakt, detecteert de drone een landingsprobleem en probeert dan iets verderop te landen.

TelloApp 2

Onderaan, na de diverse Tello-apps, vind je de DroneBlocks-app waarmee je zelf een blokkenprogramma kunt maken om de Tello te besturen. DroneBlocks werkt op eenzelfde manier als Scratch en met het installeren en gebruiken van de DroneBlocks-app gaan we verderop aan de slag.

Firmware updaten
De software die door de kleine computer in de Tello Drone wordt gebruikt (de firmware), is mogelijk nog van een oude versie. Het is verstandig om de firmware te updaten, zodat je geen last hebt van bekende problemen die zijn opgelost in de nieuwere versie. Verbind de drone via wifi, start de app en tik linksboven op het tandwiel voor de instellingen (Settings). Kies voor More onderaan in het menu, tik links op de puntjes [...] en dan zie je rechts in het midden de Firmware Version. Je kunt dan rechts de Update-knop gebruiken en vervolgens Start. Is er geen nieuwere firmware beschikbaar, dan krijg je de melding Latest Firmware.

          


Warmteprobleem

Voor het ontwikkelen van eigen programma's voor de Tello is het gebruikelijk dat je, met name in het begin, de Tello aanstuurt zonder er mee te vliegen. Dan blijkt dat de Tello een warmteprobleem heeft: na het aanzetten wordt de elektronica in de Tello aan de onderzijde snel warm. Dit kan binnen een minuut oplopen tot een temperatuur van meer dan 90 graden Celsius, afhankelijk van de omstandigheden waarin de Tello zich bevindt; op een tapijt gebeurt dit bijvoorbeeld sneller dan op een hard oppervlak.
De Tello is voorzien van een beveiliging: als de elektronica in de drone te warm wordt, dan zet de Tello zichzelf uit. Dit is niet handig als je dan net bezig bent om iets uit te proberen. Voordat je verder kunt, moet de Tello weer wat afkoelen, daarna kun je de drone weer aanzetten en verbinding maken met wifi. Dit probleem doet zich alleen voor als je een tijdje bezig bent met de drone zonder dat hij de lucht in gaat.
Tijdens het vliegen geeft de luchtstroom veroorzaakt door de propellers namelijk zoveel koeling aan de elektronica dat de Tello wel behoorlijk warm wordt, maar niet te heet. Als je goed naar de Tello kijkt, zie je links en rechts van de behuizing kleine openingen waar de lucht van boven naar binnen kan. Deze lucht kan dan de elektronica koelen en aan de onderzijde de drone weer verlaten.
Je kunt dit probleem vermijden door de Tello in de buurt van een werkende ventilator te zetten. De elektronica wordt dan nog steeds warm, maar niet zo heet dat de Tello zichzelf uitzet. Wel loopt hierdoor de batterij sneller leeg dan je zou verwachten bij een stilstaande drone. Dit blijkt een bekend probleem te zijn, wat (tot nu toe) niet door de fabrikant is opgelost.

    

Wifiverbinding
Voor het zelf programmeren van de Tello Drone gaan we ervan uit dat je werkt met een computer met Windows 10 en ondersteuning voor een wifinetwerk. Het kan ook via Linux of MacOS of een oudere Windows-versie, maar die werken net weer op een andere manier dan hier beschreven.
Zodra je de Tello aanzet, gedraagt zich deze na enkele secondes als een wifi access point. Je kunt daarop met een ander apparaat (bijvoorbeeld smartphone of laptop) een wifiverbinding maken. Deze verbinding vormt dan een apart netwerk, gescheiden van het normale netwerk waar de internetverbinding over gaat. Een standaard-Tello gebruikt altijd een IPv4-adres zoals bijvoorbeeld 192.168.10.4: elk apparaat krijgt een eigen IPv4-adres toegekend in het netwerk dat past bij de Tello. Let op: zolang de Tello aan staat, moet je hetzelfde apparaat met dezelfde app of programma blijven gebruiken. Als je daarna een ander apparaat, programma of app wilt gaan gebruiken met de Tello, dan lukt dat meestal niet goed. Als je bijvoorbeeld eerst de standaard Tello-app gebruikt en meteen daarna op hetzelfde apparaat DroneBlocks, dan werkt die laatste niet goed. Je moet dan de Tello eerst uit- en weer aanzetten met de aan/uit-knop op de zijkant en opnieuw wifiverbinding maken.

Automatisch landen
Soms vliegt de Tello rond en werkt je app of programma onverwacht niet meer. Door een fout, zoals een bug of een crash, kan het gebeuren dat de Tello onbestuurbaar wordt. Dan kun je het beste de wifi uitzetten op het apparaat waarmee je aan het besturen bent. De Tello ontvangt dan geen input meer en zal dan na ongeveer 15 seconden vanzelf landen. De Tello zal ook automatisch landen als de batterij bijna leeg is.

Firewall
De Tello Drone gebruikt standaard een wifiverbinding die niet versleuteld (encrypted) is. Daarom ziet Windows 10 die verbinding met de Tello als een onveilig netwerk en wordt deze aangemerkt als een Openbaar netwerk (Public Network). Een Openbaar netwerk heeft een hogere bescherming dan een Particulier (Private) netwerk en daarom is de Windows Firewall standaard actief. De firewall blokkeert op de computer de verbinding tussen een programma en het netwerk. Wanneer je, zoals bij de Tello, weet dat deze verbinding geen veiligheidsproblemen geeft, kun je deze blokkade opheffen.

WindowsFirewallToestemming

Bij het gebruik van een programma dat voor de eerste keer de Tello Drone benadert, verschijnt er vanzelf een scherm met een bericht van de firewall. Dan kun je toestemming verlenen of weigeren en deze informatie wordt bewaard. De volgende keer dat dit programma het netwerk gebruikt, worden dezelfde instellingen weer gebruikt.
Je kunt deze instellingen later in Windows Firewall nog aanpassen. Klik dan in Windows rechtsonder in de taakbalk op het schild-icoon van de Windows beveiliging. Kies Firewall- en netwerkverbinding en dan onderaan Een app toestaan voor de firewall. Zoek het programma (de app) in de lijst en klik eventueel op details om het volledige pad van het programma te zien. Als je dit wilt wijzigen, heb je wel Administrator-rechten nodig. Klik daarna op de knop Instellingen wijzigen en zet zowel een vinkje bij Particuliere… als bij Openbare netwerken… om het programma toestemming te geven om te communiceren en klik vervolgens op Toegang toestaan.

Wifiwachtwoord op Tello Drone
Het is verstandig om op de Tello een wifiwachtwoord in te stellen. Je kunt dan ook een andere naam van het wifinetwerk kiezen. De Tello onthoudt de nieuwe naam met het wachtwoord, zelfs na uit- en aanzetten. Alleen als je langere tijd de aan- en uitknop ingedrukt houdt, wordt dit weer teruggezet naar de standaard TELLO-XXXX zonder wachtwoord. Ook na het instellen van een wachtwoord, blijft Windows het Tello wifinetwerk zien als een Openbaar netwerk. In plaats van toestemming verlenen kun je ook het Tello-netwerk wijzigen van Openbaar (Public)-netwerk naar Particulier (Private). Dan hoef je in de firewall alleen toestemming te geven dat het programma het particuliere netwerk mag benaderen.

Programmeren met DroneBlocks
DroneBlocksIconDroneBlocks is leuk om het programmeren van de Tello Drone uit te proberen, hoewel je alleen gebruik kunt maken van de ingebouwde mogelijkheden. Zo kun je bijvoorbeeld geen tekst printen of bestanden gebruiken als je bijvoorbeeld code wilt bewaren. Vergeleken met Scratch en Python is de DroneBlocks-app behoorlijk beperkt. Aan de andere kant, vanwege de beperkte mogelijkheden is de DroneBlocks-app een relatief eenvoudige manier om zelf een programma te maken om de Tello Drone te besturen. Daarom is de DroneBlocks-app met name geschikt voor beginnende programmeurs.
Met DroneBlocks bouw je een programma op met blokken. Naast de Tello worden ook enkele andere drones van fabrikant DJI ondersteund. Op de website https://www.droneblocks.io kun je meer informatie vinden: klik bovenaan op App, dan zie je de verschillende mogelijkheden. De DroneBlocks-app is gratis en beschikbaar in de Google Play Store voor Android, in de Apple App Store voor iOS en in de Chrome App Store voor Chrome OS of de Google Chrome-webbrowser.

Programma met blokken
Je maakt een programma door blokken onder elkaar te zetten. Omdat het hierbij handig is om zoveel mogelijk schermruimte te hebben, kies je daarom bij voorkeur de Chrome-webbrowser of Chrome OS op een computer. Klik op de link naar de app die hoort bij het apparaat dat je wilt gebruiken, installeer DroneBlocks en open de app. Na gebruik kun je het afsluiten en weer opstarten via het toegevoegde icoon. In de Google Chrome-webbrowser open je een nieuwe tab en gaat naar chrome://apps.

DroneBlocksBegin 2

Klik rechtsboven op de blauwe tekst Connect to Tello. Zie je die tekst niet, dan staat de app nog in de DJI Blocks-stand. Klik dan op de 3 horizontale strepen en kies in het menu onderaan voor Tello Blocks.

DroneBlocksConnect 2

Volg de instructies: verbind met het Tello-wifinetwerk en klik op Connect. Als bij Battery linksboven een percentage verschijnt, dan ben je verbonden. Ook wordt de statusindicator (de led aan de voorkant) van de Tello groen en knippert. Lukt dit niet, dan heb je misschien eerder een ander programma of app gebruikt. Zet de Tello dan uit en weer aan, maak een wifiverbinding en probeer het opnieuw. Helpt dit nog niet, controleer dan de firewall-instellingen. Verbindingen voor Chrome zijn standaard toegestaan in een Particulier en in een Openbaar netwerk.

Klein programma bouwen met blokken
Nu kun je beginnen met een klein programma te bouwen met de blokken. Links kun je kiezen uit de diverse categorieën, elk met een eigen kleur. Klik links op Takeoff, dan verschijnt rechts daarvan een blok takeoff in een grijs vak. Sleep dit blok naar het witte vlak in het midden. Klik dan links op Land, dan kun je kiezen uit meer blokken. Sleep het land-blok naar rechts en je kunt dit land-blok daarna naar de onderkant van het takeoff-blok slepen. Zodra ze dicht bij elkaar komen, plakken ze vanzelf aan elkaar bij loslaten. Het eerste programma is klaar en bestaat slechts uit deze 2 blokken.
Zorg ervoor dat de Tello Drone op een geschikte plaats staat om op te stijgen en landen. Kies via het menu (de 3 horizontale strepen rechtsboven) voor Launch mission. Het programma werkt als de Tello Drone opstijgt op en kort daarna landt. Tijdens de vlucht verschijnt er onderaan een Abort Mission-knop waarmee je in geval van een probleem de vlucht voortijdig kunt stopzetten.

DroneBlocksTakeoffLandAbort 2

Meer menu-opties
In het menu kun je kiezen voor Show Mission Code en dan verschijnt rechts het programma als Java Code-tekst. Deze kun je dan met de muis markeren en met de toetsencombinatie Ctrl + C naar het klembord kopiëren. Daarna kun je de code in een editor plakken en dan bewaren. Ook Ctrl + Z voor undo (ongedaan maken) werkt in dat scherm. Je kunt echter de code niet wijzigen of vervangen. Handmatig iets typen kan niet, een tekst plakken ook niet. Als je dus iets wijzigt in je code via een editor, moet je die code als nieuwe mission opslaan.
In de groene categorie Navigation kun je kiezen uit wel een dozijn vliegbewegingen, waarbij je diverse parameters kunt instellen. Bij de blauwe categorie Flip staan nog 4 Flip-bewegingen. Verder kun je met Loops een lijst van blokken meerdere keren uitvoeren. Met Logic kun je een if gebruiken, deze kun je via het tandwiel aanvullen met else if of else delen. Bij Math kun je een expressie bouwen, op basis van een getal, een functie of andere expressies.
Je kunt ook een variabele maken waarin je het resultaat van een expressie kunt bewaren en later weer gebruiken. Zodra er tenminste één is aangemaakt, komen er blokken bij waarmee je de variabele kunt gebruiken, vullen en wijzigen.
Wanneer je een blok weer wilt verwijderen, kan dat door dit blok te slepen naar de vuilnisbak rechtsonder. Je kunt het blok ook naar de lijst met de categorieën aan de linkerkant slepen, zoals gebruikelijk is bij andere blokkensystemen zoals Scratch, dan verdwijnt het ook. Door te klikken op de + of de – rechts onderaan (net boven de vuilnisbak), kun je het scherm met de blokken vergroten of verkleinen of terug naar de beginwaarde zetten. Met de scroll-balken rechts en onderaan kun je de blokken verschuiven, zodat je toch de lijst met blokken kunt wijzigen, ook al is die groter dan op het scherm past. Met het vizier-icoon boven de + en - zet je de grootte en de verschuiving terug op de standaardwaarden.

DroneBlocksProgram 2

Je kunt zo een programma maken waarmee je de Tello Drone een bepaalde, van tevoren ingestelde route kunt laten vliegen, zoals in bovenstaand voorbeeld met een loop. Let wel op: je kunt ook een programma maken met alleen takeoff, zonder land en dan dit starten via Launch mission in het menu. Zodra dit programma klaar is, verdwijnt de knop Abort Mission maar vliegt de Tello nog steeds. Dit kan ook per ongeluk gebeuren bij een meer ingewikkeld programma. Een manier om de Tello dan toch te laten landen, is door nog een keer Launch mission te doen en dan meteen op Abort Mission te klikken zodra deze knop verschijnt.

Programma bewaren
In de DroneBlocks-app is er geen enkele mogelijkheid om informatie terug te ontvangen van de drone. De enige waarde die je terugziet, is het percentage batterij dat nog over is linksboven, en zelfs die waarde is niet te gebruiken in het blokkenprogramma zelf. Verder is er geen mogelijkheid om de camera op de Tello te gebruiken. In de DJI Blocks-stand is er wel een Camera-categorie, maar die bestaat niet in de Tello-stand.
Als je een programma hebt gemaakt, dan kun je dit bewaren in de ‘cloud'. Je kunt via het menu en de Login-knop inloggen met een Google Account en dan de code bewaren bij DroneBlocks. Je kunt dan ook de code van andere DroneBlocks-gebruikers bekijken en overnemen. Er is geen mogelijkheid om je programma op je eigen computer te bewaren om later weer te gebruiken, dat is wel onhandig.
DroneBlocks heeft ook enkele online cursussen, bijvoorbeeld DroneBlocks Curriculum for Tello en Advanced DroneBlocks Programming with Tello. Klik op www.droneblocks.io bovenaan op Curriculum. Je kunt je daar aanmelden via Enroll Now. Sommige cursussen zijn gratis, je moet je wel aanmelden met je naam en e-mailadres.

TelloScratch en Python
In dit artikel hebben we besproken hoe je de Tello Drone eenvoudig kunt programmeren met DroneBlocks. Je kunt deze drone ook programmeren met de programmeertalen Scratch en Python. Wil je weten hoe dat in zijn werk gaat, lees dan hier hoe je de Tello Drone programmeert met Scratch of Python.