177 lines
4.6 KiB
Text
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
|
|
}
|