124-webapp/data/Tello_Drone_Setup.ipynb
2025-11-05 14:32:21 +01:00

177 lines
4.6 KiB
Text

{
"cells": [
{
"cell_type": "markdown",
"id": "49a243e8",
"metadata": {},
"source": [
"# Tello Drone Programming - Setup\n",
"\n",
"Dieses Notebook hilft dir, die Programmierung des DJI Tello Drohne einzurichten.\n",
"\n",
"## Schritt 1: Pakete installieren\n",
"\n",
"Führe die folgende Zelle aus, um die benötigten Python-Pakete zu installieren:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4804023e",
"metadata": {},
"outputs": [],
"source": [
"# Installiere djitellopy und Abhängigkeiten\n",
"!pip install djitellopy opencv-python pillow"
]
},
{
"cell_type": "markdown",
"id": "a480f600",
"metadata": {},
"source": [
"## Schritt 2: Import und Verbindungstest\n",
"\n",
"Nach der Installation, importiere die Bibliothek:"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7bcda678",
"metadata": {},
"outputs": [],
"source": [
"from djitellopy import Tello\n",
"import time\n",
"\n",
"print(\"✅ djitellopy erfolgreich importiert!\")"
]
},
{
"cell_type": "markdown",
"id": "165d7797",
"metadata": {},
"source": [
"## Schritt 3: Drohne verbinden (nur ausführen wenn Drohne eingeschaltet ist!)\n",
"\n",
"**⚠️ WICHTIG:** Stelle sicher, dass:\n",
"1. Die Tello Drohne eingeschaltet ist\n",
"2. Dein Computer mit dem WiFi der Drohne verbunden ist (TELLO-XXXXXX)\n",
"3. Du genug Platz hast (mindestens 2x2 Meter freier Raum)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6acedf15",
"metadata": {},
"outputs": [],
"source": [
"# Drohne initialisieren\n",
"drone = Tello()\n",
"\n",
"# Verbindung aufbauen\n",
"drone.connect()\n",
"\n",
"# Batterie-Status prüfen\n",
"battery = drone.get_battery()\n",
"print(f\"🔋 Batterie: {battery}%\")\n",
"\n",
"if battery < 20:\n",
" print(\"⚠️ Warnung: Batterie niedrig! Bitte aufladen.\")\n",
"else:\n",
" print(\"✅ Drohne bereit!\")"
]
},
{
"cell_type": "markdown",
"id": "c4c90848",
"metadata": {},
"source": [
"## Schritt 4: Einfacher Testflug\n",
"\n",
"**⚠️ SICHERHEIT ZUERST:**\n",
"- Freier Raum um dich herum\n",
"- Keine Personen in der Nähe\n",
"- Drohne auf ebener Fläche\n",
"- Bereit, die Drohne zu fangen falls nötig"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "3ce22798",
"metadata": {},
"outputs": [],
"source": [
"# Starten und einfache Bewegung\n",
"drone.takeoff() # Abheben\n",
"time.sleep(3) # 3 Sekunden schweben\n",
"\n",
"drone.move_up(30) # 30cm nach oben\n",
"time.sleep(2)\n",
"\n",
"drone.rotate_clockwise(90) # 90° drehen\n",
"time.sleep(2)\n",
"\n",
"drone.land() # Landen\n",
"print(\"✅ Testflug abgeschlossen!\")"
]
},
{
"cell_type": "markdown",
"id": "3b616df2",
"metadata": {},
"source": [
"## Nützliche Befehle\n",
"\n",
"Hier sind einige grundlegende Befehle:\n",
"\n",
"```python\n",
"# Bewegungen\n",
"drone.takeoff() # Abheben\n",
"drone.land() # Landen\n",
"drone.move_up(x) # x cm nach oben\n",
"drone.move_down(x) # x cm nach unten\n",
"drone.move_forward(x) # x cm vorwärts\n",
"drone.move_back(x) # x cm rückwärts\n",
"drone.move_left(x) # x cm links\n",
"drone.move_right(x) # x cm rechts\n",
"drone.rotate_clockwise(x) # x° im Uhrzeigersinn\n",
"drone.rotate_counter_clockwise(x) # x° gegen Uhrzeigersinn\n",
"\n",
"# Informationen\n",
"drone.get_battery() # Batterie-Status\n",
"drone.get_height() # Aktuelle Höhe\n",
"drone.get_speed() # Geschwindigkeit\n",
"\n",
"# Notfall\n",
"drone.emergency() # NOTLANDUNG (sofort stoppen!)\n",
"```"
]
},
{
"cell_type": "markdown",
"id": "441ebe1d",
"metadata": {},
"source": [
"## Weiterführende Ressourcen\n",
"\n",
"- [DJITelloPy Dokumentation](https://djitellopy.readthedocs.io/)\n",
"- [Beispiele auf GitHub](https://github.com/damiafuentes/DJITelloPy/tree/master/examples)\n",
"\n",
"---\n",
"\n",
"**Viel Spaß beim Programmieren! 🚁**"
]
}
],
"metadata": {
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 5
}