Inhaltsverzeichnis:

ArDrone 2.0 Quadcopter-Steuereinheit auf MPU6050- und ESP8266-Modul - Gunook
ArDrone 2.0 Quadcopter-Steuereinheit auf MPU6050- und ESP8266-Modul - Gunook

Video: ArDrone 2.0 Quadcopter-Steuereinheit auf MPU6050- und ESP8266-Modul - Gunook

Video: ArDrone 2.0 Quadcopter-Steuereinheit auf MPU6050- und ESP8266-Modul - Gunook
Video: arduino gimbal for ar.drone 2024, November
Anonim
Image
Image
Verbinden des ESP8266 mit dem Ar Drone 2.0 Access Point
Verbinden des ESP8266 mit dem Ar Drone 2.0 Access Point

Die Größe, der Preis und die Verfügbarkeit von Wi-Fi ermöglichen es Ihnen, eine kostengünstige Steuereinheit für den ArDrone 2.0-Quadrocopter auf dem ESP8266-Modul zu erstellen (Preise auf AliExpress, Gearbest). Zur Steuerung verwenden wir das Gy-521-Modul auf dem MPU6050-Chip (Gyroskop, Beschleunigungsmesser).

Der Papagei AR. Drone ist ein funkgesteuerter Quadrocopter, dh ein Hubschrauber mit vier Hauptrotoren, die auf entfernten diagonalen Balken platziert sind. Die AR. Die Drohne selbst läuft auf dem Linux-Betriebssystem, und fast jedes Android- oder iOS-Touchscreen-Smartphone oder -Tablet kann als Fernbedienung für den Quadcopter fungieren. Die Entfernung der stabilen Kontrolle über WLAN beträgt 25 bis 100 Meter und hängt von den Raum- und Wetterbedingungen ab, wenn Flüge auf der Straße stattfinden.

Schritt 1: Verbinden des ESP8266 mit dem Ar Drone 2.0 Access Point

Wenn aktiviert, AR. Drone erstellt einen SSIS-Zugangspunkt "ardrone_XX_XX". Verbinden ohne Passwort.

Versuchen wir, mit AT-Befehlen eine Verbindung zum Ar. Dron-Zugangspunkt herzustellen. Verbinden Sie die ESP8266-Karte über die UART-USB-Adapter-Stromversorgung 3,3 V mit dem COM-Port des Computers.

Öffnen Sie die Arduino IDE, den seriellen Port-Monitor und senden Sie AT-Befehle an das ESP-Board (der Quadcopter muss aktiviert sein)

Schritt 2: Kommunikation mit AR. Die Drohne wird mit AT-Befehlen ausgeführt

Befehle werden an AR gesendet. Drohne als UDP- oder TCP-Pakete;

Ein einzelnes UDP-Paket muss mindestens einen vollständigen Befehl enthalten; Wenn das Paket mehr als einen Befehl enthält, wird das Zeichen 0x0A verwendet, um die Befehle zu trennen.

Strings werden als 8-Bit-ASCII-Zeichen codiert;

Die maximale Befehlslänge beträgt 1024 Zeichen;

Es gibt eine Verzögerung von 30 MS zwischen den Befehlen.

Der Befehl besteht aus

AT * [Befehlsname] = [Befehlsfolgenummer als String] [, Argument 1, Argument 2 …]

Liste der wichtigsten AT-Befehle zur Steuerung von AR. Drohne:

AT * REF-verwendet für Start, Landung, Reset und Notstopp;

AT*PCMD – dieser Befehl wird verwendet, um AR zu steuern. Drohnenbewegung;

AT*FTRIM - auf der horizontalen Ebene;

AT*CONFIG-konfigurierendes AR. Drohnenparameter;

AT*LED setzt LED-Animationen auf AR. Drohne;

AT*ANIM-Installation von Fluganimationen auf AR. Drohne.

AT * COMWDG-Watchdog-Reset-Befehl-wir senden es ständig an den Quadcopter.

Für die Kommunikation werden folgende Ports verwendet:

Port 5556-UDP-Sendebefehle an AR. Drohne;

Port 5554-UDP – empfängt Datenpakete von AR. Drohne;

Port 5555-Reply-Stream-Videopakete von AR. Drohne;

Port 5559-TCP-Pakete für kritische Daten, die nicht verloren gehen können, normalerweise für die Konfiguration.

Der Client trennt sich nach einer Verzögerung von 2 Sekunden nach dem Senden des letzten Befehls vom UDP-Port!!! - daher müssen Sie ggf. ständig Befehle senden - AT*COMWDG.

Ziehen Sie in Betracht, Navigationsdaten von ARDrone (Port 5554-UDP) zu beziehen. Das Navigationsdatenpaket im Demo-Modus ist 500 Byte lang. Wenn etwas schief geht, kann die Drohne ein 32- und 24-Byte-Paket senden. Wenn das Paket 24 Byte lang ist, bedeutet dies, dass sich Port 5554 im BOOTSTRAP-Modus befindet und Sie sich erneut mit dem Port verbinden müssen, um ihn in den Demo-Modus zu schalten ARDrone kann Navigationsdaten auf zwei Arten an den Client übertragen:

abgekürzt (oder Demo), 500 Byte groß. Komplett.

Um Demodaten abzurufen, senden Sie zuerst vier Bytes 0x01, 0x00, 0x00, 0x00 an Port 5554 und dann einen Befehl an Port 5556

AT*CONFIG="+(seq++)+", \"general:navdata_demo\", / " TRUE\" wobei seq die laufende Nummer des Befehls ist.

Struktur des Navigationsdatenpakets. Es gibt 4 benannte Werte am Anfang des Pakets:

32-Bit-Paket-Header: Helikopter-Status-Flags 32 Bit;

die Sequenznummer des letzten vom Client an den Hubschrauber gesendeten Befehls 32 Bit;

Vision-Flag 32 Bit. Als nächstes die Navdata-Option Header: 20-23.

Die Navdata-Option hat die folgenden Felder:

BATTERIE = 24; Batterieladung in Prozent;

TEILUNG = 28; Neigungswinkel entlang der Längsachse;

WALZEN = 32; Neigungswinkel relativ zur Querachse;

GIER = 36; Drehwinkel relativ zur Hochachse;

HÖHE = 40; Höhe;

VX = 44; x-Achsen-Geschwindigkeit;

VY = 48; y-Achsen-Geschwindigkeit;

VZ = 52; Geschwindigkeit auf der z-Achse.

Schritt 3: Anschließen des Nokia 5110 Displays an das ESP8266 Board

Anschließen des Nokia 5110 Displays an das ESP8266 Board
Anschließen des Nokia 5110 Displays an das ESP8266 Board

Verbinden Sie das Nokia 5110-Display mit dem ESP8266-Modul und geben Sie einige Navigationsdaten an dieses und an den Monitor der seriellen Schnittstelle aus

Schritt 4: Navigationsdaten abrufen und auf dem Display des Nokia5110 anzeigen

Navigationsdaten abrufen und auf dem Display des Nokia5110 anzeigen
Navigationsdaten abrufen und auf dem Display des Nokia5110 anzeigen

Laden Sie (Skizze ardrone_esp8266_01. ino) herunter und beobachten Sie die Ausgabe der Navigationsdaten an die serielle Schnittstelle und den Bildschirm.

Schritt 5: Senden von Start- und Landebefehlen

Jetzt werden wir unserem Projekt den Start und die Landung des Quadcopters mit Befehlen von der Fernbedienung hinzufügen. Um abzuheben, müssen Sie einen Befehl senden

AT*REF=[Sequenznummer], 290718208

Zur Landung

AT*REF=[Sequenznummer], 290717696

Vor dem Start müssen Sie einen Befehl zur horizontalen Kalibrierung senden, da sich die Ar Drone sonst während des Fluges nicht stabilisieren kann.

AT * F TRIM=[Sequenznummer]

Laden Sie die Skizze ardrone_esp8266_02.ino () auf das ESP8266 Board hoch, schalten Sie den Ar Drone 2.0 Quadcopter ein und überprüfen Sie die Tastenfunktion. Wenn Sie auf Start klicken, klicken Sie das nächste Mal auf – Landung usw.

Schritt 6: Anschließen des MPU6050 zur Steuerung des Ardrone 2.0

Anschließen des MPU6050 zur Steuerung des Ardrone 2.0
Anschließen des MPU6050 zur Steuerung des Ardrone 2.0
Anschließen des MPU6050 zur Steuerung des Ardrone 2.0
Anschließen des MPU6050 zur Steuerung des Ardrone 2.0

Sensoren zur Positionsbestimmung im Raum werden zur Steuerung von Quadrocoptern eingesetzt. Der MPU6050-Chip enthält sowohl einen Beschleunigungsmesser als auch ein Gyroskop an Bord, sowie einen Temperatursensor. der MPU6050 ist das Hauptelement des Gy-531-Moduls (Abb. 15.44). Neben diesem Chip enthält das Modulboard die notwendige MPU6050-Anbindung, inklusive Pull-Up-Widerstände der I2C-Schnittstelle, sowie einen 3,3-Volt-Spannungsstabilisator mit kleinem Spannungsabfall (bei 3,3 Volt wird der Ausgang des Stabilisator wird genau 3 Volt betragen) mit Filterkondensatoren.

Verbindung zum Mikrocontroller über das I2C-Protokoll.

Schritt 7: Steuerung des Quadcopters mit MPU6050

Steuerung des Quadcopters mit MPU6050
Steuerung des Quadcopters mit MPU6050

Mit dem Beschleunigungsmesser und Gyroskop können Sie die Abweichung auf der x- und y-Achse bestimmen und die Abweichung in Befehle zum Bewegen des Quadcopters entlang der entsprechenden Achsen "umwandeln". Übersetzung der vom Sensor empfangenen Messwerte in den Ablenkwinkel.

den Befehl zum Senden an die Ar Drone zur Flugkontrolle

AT*REF=[Sequenznummer], [Flag Bit-Feld], [Roll], [Pitch], [Gaz], [Yaw]

Die Werte von Roll und Pitch im Bereich -1 bis 1 werden der Tabelle const int float entnommen, der Index entspricht dem aus den mu6050 Sensordaten berechneten Abweichungswinkel.

Laden Sie die Skizze ardrone_esp8266_03.ino auf das ESP8266 Board hoch, schalten Sie den ar Drone 2.0 Quadrocopter ein und überprüfen Sie die Funktion der Fernbedienung.

Empfohlen: