PROJEKT

ESP32 Autodrohne – LoRa-Steuerung und FPV

Ein selbstgebautes, drahtlos gesteuertes Fahrzeug auf Basis von ESP32.

Die Steuerung erfolgt über LoRa mit 433 MHz. Das Fahrzeug besitzt vier Antriebsmotoren, die über zwei Motorgruppen gesteuert werden. Ein Trackball im Steuerpult ermöglicht die proportionale Steuerung von Fahrtrichtung und Geschwindigkeit.

Zusätzlich ist auf dem Fahrzeug eine FPV-Kamera installiert. Das Kamerabild wird über eine separate 5,8-GHz-Funkverbindung an einen FPV-Monitor übertragen, der direkt in das Steuerpult integriert ist.


Projektübersicht

Das System besteht aus zwei voneinander getrennten Funkverbindungen.

                         STEUERPULT
┌──────────────────────────────────────────────────┐
│                                                  │
│   ESP32-Steuerung                                │
│                                                  │
│   Trackball       Drehencoder       OLED         │
│      │                │               │          │
│      └────────────────┴───────────────┘          │
│                       │                          │
│                    LoRa 433 MHz                  │
│                       │                          │
│   ┌──────────────────────────────────────────┐   │
│   │          FPV-Monitor                     │   │
│   │          5,8-GHz-Empfänger               │   │
│   └──────────────────────────────────────────┘   │
│                                                  │
└──────────────────────┬───────────────────────────┘
                       │
                       │ LoRa 433 MHz
                       │ Steuerdaten
                       ▼
              ┌──────────────────┐
              │      AUTO        │
              │                  │
              │      ESP32       │
              │      LoRa        │
              │      DRV8833     │
              │      4 Motoren   │
              │                  │
              │   FPV-Kamera     │
              └────────┬─────────┘
                       │
                       │ 5,8 GHz
                       │ Video
                       ▼
                  FPV-Empfänger
                  im Steuerpult

Funkverbindungen

Das Fahrzeug verwendet zwei voneinander getrennte Funkstrecken.

SystemFrequenzFunktion
LoRa433 MHzFahrzeugsteuerung
FPV5,8 GHzLive-Videobild

Die LoRa-Verbindung wird ausschließlich für die Steuerdaten und die Rückmeldung der Signalstärke verwendet.

Die FPV-Verbindung überträgt das Kamerabild unabhängig von der Fahrzeugsteuerung.


Steuerung

Die Steuerung erfolgt über einen analogen Trackball.

Der Trackball ermöglicht eine proportionale Steuerung:

  • Vorwärts
  • Rückwärts
  • Links
  • Rechts

Die beiden Achsen des Trackballs werden zunächst kalibriert.

Um kleine Schwankungen um die Mittelstellung zu unterdrücken, wird eine Totzone verwendet:

#define DEADZONE 120

Damit bleibt das Fahrzeug bei nicht betätigtem Trackball stehen.


Geschwindigkeitsregelung

Die maximale Geschwindigkeit wird über einen Drehencoder eingestellt.

Der Einstellbereich beträgt:

0–100 %

Der aktuelle Geschwindigkeitswert wird auf dem OLED angezeigt.

Die eigentliche Motorleistung wird anschließend auf den PWM-Bereich des Motortreibers umgesetzt.


OLED-Anzeige

Im Steuerpult befindet sich ein 128 × 64 Pixel OLED.

Angezeigt werden:

  • Geschwindigkeit
  • Vorwärts-/Rückwärtswert
  • Links-/Rechtswert
  • LoRa-RSSI
  • grafische Anzeige der Funkqualität

Beispiel:

SPD 50%

FB: 20
LR: -10

-65 dBm       RSSI

Damit kann während der Fahrt sowohl die aktuelle Steuerung als auch die Qualität der LoRa-Verbindung beobachtet werden.


LoRa-Steuertelegramm

Der Handsender überträgt die Steuerdaten als Texttelegramm.

Format:

DRV,FB,LR,SPEED

Beispiel:

DRV,50,-20,70

Bedeutung:

WertBedeutung
DRVSteuertelegramm
50Vorwärts-/Rückwärtswert
-20Links-/Rechtswert
70Geschwindigkeit 70 %

Motorsteuerung

Das Fahrzeug besitzt zwei unabhängig angesteuerte Motorgruppen.

             ESP32
               │
               ▼
            DRV8833
          ┌─────┴─────┐
          │           │
          ▼           ▼
     linke Seite   rechte Seite
     2 Motoren     2 Motoren

Die beiden Motorgruppen werden unterschiedlich angesteuert, um das Fahrzeug zu lenken.

Die Motorwerte werden aus Fahr- und Lenkwert berechnet:

left  = fb + lr;
right = fb - lr;

Die Werte werden anschließend begrenzt und entsprechend der eingestellten Geschwindigkeit auf die PWM-Ausgänge umgesetzt.


Motoranschlüsse

Linke Motorgruppe

ESP32Funktion
GPIO 25PWM
GPIO 27IN1
GPIO 14IN2

Rechte Motorgruppe

ESP32Funktion
GPIO 33PWM
GPIO 12IN1
GPIO 13IN2

DRV8833

ESP32Funktion
GPIO 32STBY

LoRa-Anschluss

Für das LoRa-Modul werden folgende SPI-Pins verwendet:

ESP32Funktion
GPIO 18SCK
GPIO 19MISO
GPIO 23MOSI
GPIO 5SS / CS
GPIO 26DIO0

Fahrzeug

Beim Fahrzeug wird kein separater Reset-Pin verwendet:

#define LORA_RST -1

Handsender

Beim Handsender wird GPIO 17 für Reset verwendet:

#define LORA_RST 17

ACK und RSSI

Nach dem Empfang eines gültigen Steuertelegramms sendet das Fahrzeug eine kurze Rückmeldung:

ACK

Der Handsender empfängt diese Rückmeldung und ermittelt daraus die empfangene LoRa-Signalstärke.

Der RSSI-Wert wird anschließend auf dem OLED angezeigt.

Dadurch lässt sich die Funkverbindung während der Fahrt beobachten.


Failsafe

Das Fahrzeug besitzt eine automatische Sicherheitsabschaltung.

Wenn länger als

400 ms

kein gültiges Steuertelegramm empfangen wird, werden die Motoren gestoppt.

Zusätzlich wird der Standby-Eingang des DRV8833 deaktiviert.

#define FAILSAFE_MS 400

Der Failsafe verhindert damit, dass das Fahrzeug bei einem Ausfall oder Abbruch der LoRa-Verbindung unkontrolliert weiterfährt.


FPV-System

Die FPV-Kamera ist direkt auf dem Fahrzeug montiert.

Das Kamerabild wird über eine separate 5,8-GHz-Funkverbindung übertragen.

Der zugehörige FPV-Empfänger befindet sich im Steuerpult und ist mit einem Monitor verbunden.

FPV-Kamera
     │
     │ 5,8 GHz
     ▼
FPV-Empfänger
     │
     ▼
Monitor im Steuerpult

Dadurch kann das Fahrzeug über das Livebild der Kamera gesteuert werden.

Die FPV-Übertragung ist unabhängig von der LoRa-Steuerung.


Steuerpult

Das Steuerpult vereint die komplette Bedienung:

  • ESP32
  • LoRa-Sender
  • Trackball
  • Drehencoder
  • OLED
  • 5,8-GHz-FPV-Empfänger
  • FPV-Monitor

Damit befinden sich Fahrzeugsteuerung und Kamerabild in einer gemeinsamen Bedieneinheit.

Steuerpult

Hardware

Fahrzeug

  • ESP32
  • LoRa-Modul
  • DRV8833
  • 4 Gleichstrommotoren
  • FPV-Kamera
  • 5,8-GHz-Videosender
  • Fahrzeugakku

Steuerpult

  • ESP32
  • LoRa-Modul
  • analoger Trackball
  • Drehencoder
  • 128 × 64 OLED
  • 5,8-GHz-FPV-Empfänger
  • FPV-Monitor

Handsender – Anschlüsse

Trackball

ESP32Funktion
GPIO 34X-Achse
GPIO 35Y-Achse

Drehencoder

ESP32Funktion
GPIO 27CLK
GPIO 14DT
GPIO 32Taster

OLED

Das OLED wird über I²C angeschlossen:

ESP32Funktion
GPIO 21SDA
GPIO 22SCL

I²C-Adresse:

0x3C

Software

Fahrzeug

Der Fahrzeug-Empfänger verwendet:

#include <SPI.h>
#include <LoRa.h>

Handsender

Der Handsender verwendet:

#include <SPI.h>
#include <LoRa.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>

Dateien

QuellenLoRa_Auto_Empfänger.ino
LoRa_Auto_Sender.ino
DateienSchaltpläne,3D Druckvorlagen, Bilder
Repositoryjoachim-reuter/ESP-32-Autodrohne-LoRa-FPV: ESP-32-Autodrohne-LoRa-FPV

Das Repository enthält die beiden Hauptbereiche:

ESP32-Autodrohne-LoRa-FPV/
│
├── README.md
│
├── _AutoDrohne_Empfaenger.ino
├── _AutoDrohne_Sender.ino
│
└── images/
    ├── autodrohne.jpg
    └── steuerpult.jpg

Die Dateinamen können entsprechend den tatsächlich im Repository verwendeten Namen angepasst werden.


Systemaufbau

┌──────────────────────┐
│      STEUERPULT      │
│                      │
│ ESP32                │
│ Trackball            │
│ Drehencoder          │
│ OLED                 │
│ LoRa                 │
│ FPV Monitor          │
│ 5,8 GHz Empfänger    │
└──────────┬───────────┘
           │
           │ 433 MHz
           │ Steuerdaten
           ▼
┌──────────────────────┐
│        AUTO          │
│                      │
│ ESP32                │
│ LoRa                 │
│ DRV8833              │
│ 4 Motoren            │
│ FPV Kamera           │
│ 5,8 GHz Sender       │
└──────────────────────┘

Projektstatus

Das Projekt befindet sich in Entwicklung.

Die LoRa-Fahrzeugsteuerung mit:

  • Trackball
  • Geschwindigkeitsregelung
  • OLED-Anzeige
  • RSSI-Anzeige
  • ACK-Rückmeldung
  • Failsafe
  • Zweimotorgruppensteuerung

ist als funktionierender Entwicklungsstand vorhanden.

Die FPV-Kamera und die 5,8-GHz-Videoübertragung sind als separates Videosystem in das Fahrzeug und das Steuerpult integriert.


Mögliche Erweiterungen

Das System bietet verschiedene Möglichkeiten zur Erweiterung:

  • Akkuspannungsanzeige
  • Telemetrie
  • Entfernungsmessung
  • weitere Sensoren
  • Beleuchtung
  • Bremslicht
  • Hupe/Sound
  • Kameraschwenkung
  • zusätzliche FPV-Funktionen
  • weitere Fahrzeugfunktionen
  • Verbesserung der Reichweiten- und Signalüberwachung

Autor

Joachim Reuter

Privates ESP32-, LoRa-, FPV- und Modellbauprojekt.

Hardware

Fahrzeug :
ESP32
LoRa-Modul
DRV8833
4 Gleichstrommotoren
FPV-Kamera
5,8-GHz-Videosender
Fahrzeugakku
Steuerpult :
ESP32
LoRa-Modul
analoger Trackball
Drehencoder
128 × 64 OLED
5,8-GHz-FPV-Empfänger
FPV-Monitor

Software & Technologien

Der Fahrzeug-Empfänger verwendet:

#include
#include

Der Handsender verwendet:
SPI.h
LoRa.h
Wire.h
Adafruit_GFX.h
Adafruit_SH110X.h