Sprint 1 ยท First Flight  ยท  US4: Sensordata & assert

Als piloot, wil ik dat mijn script de sensorwaarden van de drone uitleest, controleert en de verbinding daarna netjes sluit, zodat ik weet dat de waarden kloppen voordat ik erop vertrouw.

Taak 3: end() โ€” verbinding netjes sluiten

Je script stopt. De drone wacht nog. Dat is een probleem โ€” de volgende keer dat je verbindt, kan de drone weigeren of vreemd reageren. end() sluit de verbinding netjes en zet de drone terug in standby.

Het complete script โ€” connect tot end

Een volledig sprint-1-script ziet er zo uit:

from djitellopy import Tello

tello = Tello()
tello.connect()                      # verbinden

battery = tello.get_battery()        # sensordata opvragen
print(f"Batterij: {battery}%")

assert battery > 20, "Te weinig batterij!"

tello.end()                          # altijd als laatste
Wat als je script crasht vรณรณr end()?
Als je script op een fout stuit, wordt end() nooit aangeroepen. In sprint 4 leer je try/finally om dit op te lossen. Voor nu: zorg dat je geen andere fouten hebt vรณรณr end().

De drone reageert de volgende keer niet

Je script eindigt. Je zet de drone niet op pauze, je drukt hem niet af โ€” hij blijft gewoon aan staan. De volgende keer dat je tello.connect() typt, kan de drone al in SDK-modus vastzitten en negeert hij je commando's. Of hij herstart niet goed.

โŒ Zonder end()
tello.connect()
print(tello.get_battery())
# script stopt hier
# drone blijft hangen in SDK-modus
โœ… Met end()
tello.connect()
print(tello.get_battery())
tello.end()   # altijd als laatste
# drone terug in standby

Tello API โ€” end()

Tello API Sprint 1 ยท US4
MethodeWat het doetGeeft terug
tello.end() Stuurt een afsluitsignaal, stopt de videostream en sluit de UDP-socket. Altijd als laatste aanroepen. None
>>> Oefenomgeving: Python REPL Simulator

Doorloop het volledige script van US4:

  1. from djitellopy import Tello
  2. tello = Tello()
  3. tello.connect()
  4. battery = tello.get_battery()
  5. print(f"Batterij: {battery}%")
  6. tello.end() โ€” sluit de verbinding.
  7. Typ dan opnieuw tello.get_battery() โ€” wat zie je?
Python 3.11 REPL Simulator ยท drone verbonden ยท typ een commando en druk op Enter.
>>> 

Jouw opdracht: het complete US4-script

Schrijf een script sensor_check.py dat verbindt, de batterij opvraagt, een assert controleert en netjes afsluit met end(). Elke stap heeft een commentaarregel.

Acceptatiecriteria

  • Het script heeft de volgorde: import โ†’ connect โ†’ sensordata โ†’ assert โ†’ end.
  • tello.end() staat als allerlaatste regel.
  • De assert controleert of de batterij groter is dan 20.
  • Elke actieve coderegel heeft een verklarend commentaar.