Wat maak je?
Je schrijft รฉรฉn Python-script: startup_report.py. Het script verbindt met de drone, leest drie sensorwaarden, valideert ze met asserts, en print een netjes opgemaakt rapport. Daarna sluit het de verbinding.
User Stories
- Als piloot wil ik voordat ik opstijg alle dronegegevens kunnen zien, zodat ik weet of alles werkt.
- Als piloot wil ik een duidelijk GO/NO-GO signaal, zodat ik direct weet of ik mag vliegen.
- Als piloot wil ik de batterij, hoogte en temperatuur in รฉรฉn oogopslag zien, zodat ik snel kan controleren of waarden normaal zijn.
Zo ziet de gewenste output eruit:
========================================
TELLO SYSTEEMRAPPORT
========================================
Batterij : 87 %
Hoogte : 0 cm
Temperatuur : 34 ยฐC
========================================
STATUS : GO โ
========================================
Als de batterij 20% of lager is, staat er:
STATUS : NO-GO โ (batterij te laag)
Geen vluchten in sprint 1
takeoff(), move_forward() en land() zijn nog niet aan de orde.
Het enige wat de drone doet, is antwoorden op sensorvragen.
Ontwerp je script
ยฑ35 min
Schets op papier (of in commentaar) de volgorde van je script vรณรณr je begint met typen. Een goede volgorde:
- Importeren โ
from djitellopy import Tello
- Verbinden โ
tello = Tello(); tello.connect()
- Sensordata ophalen โ drie variabelen
- Types bevestigen โ
assert isinstance(..., int)
- Status bepalen โ
if battery > 20:
- Rapport printen โ f-strings met uitlijning
- Sluiten โ
tello.end()
Denk na over deze vragen vรณรณr je bouwt:
- Hoe lijn je de kolommen netjes uit? (
:.<20 of vaste breedte?)
- Wat print je als de batterij precies 20 is? GO of NO-GO?
- In welke variabele sla je de status op:
"GO โ
" of "NO-GO โ"?
Tip: f-strings met uitlijning
f"{'Batterij':<12}: {battery} %" โ de <12 vult aan tot 12 tekens naar links.
Zo staan alle dubbele punten netjes onder elkaar.
Startcode
ยฑ120 min
Kopieer dit skelet naar startup_report.py en vul de lege plekken in:
# startup_report.py โ Sprint 1 Project
from djitellopy import Tello
# 1. Verbinden
# TODO: maak Tello-object en verbind
# 2. Sensordata ophalen
# TODO: haal battery, height, temperature op
# 3. Types bevestigen
# TODO: schrijf 3ร assert isinstance()
# 4. Status bepalen
# TODO: if battery > 20 dan "GO โ
" anders "NO-GO โ"
# 5. Rapport printen
lijn = "=" * 40
# TODO: print lijn, titel, lijn, drie sensor-rijen, lijn, status, lijn
# Hint: gebruik f-strings met uitlijning {'Batterij':<12}
# 6. Verbinding sluiten
# TODO: roep tello.end() aan
Tello API
Sprint 1 ยท Project
| Methode | Wat het doet | Geeft terug |
| tello.connect() | Verbindt via wifi (altijd eerst) | None |
| tello.get_battery() | Batterijpercentage | int (0โ100) |
| tello.get_height() | Huidige hoogte in cm | int (cm) |
| tello.get_temperature() | Temperatuur van de drone | int (ยฐC) |
| tello.end() | Verbinding netjes sluiten (altijd als laatste) | None |
Wat lever je in?
ยฑ30 min
Push je project naar GitHub en stuur de link naar je docent.
๐ Bestanden in je repo
startup_report.py โ het hoofdscript
requirements.txt โ gegenereerd met pip freeze
.gitignore โ bevat minimaal .venv/
Acceptatiecriteria
- Het script verbindt met de drone zonder foutmeldingen.
- Het rapport toont batterij, hoogte en temperatuur netjes uitelijnd.
- De status is GO als batterij > 20, anders NO-GO.
- Er zijn minimaal drie asserts die het type van sensordata controleren.
- Het script eindigt altijd met
tello.end().
requirements.txt bevat djitellopy met versienummer.
- Je kunt de testmatrix tonen met ingevulde werkelijke resultaten.