Inhaltsverzeichnis:

RC-Servos drahtlos über UDP steuern - Gunook
RC-Servos drahtlos über UDP steuern - Gunook

Video: RC-Servos drahtlos über UDP steuern - Gunook

Video: RC-Servos drahtlos über UDP steuern - Gunook
Video: Controlling RC Servos Wirelessly over UDP 2024, November
Anonim
Image
Image
Hardware
Hardware

In diesem Projekt möchte ich mein iPhone verwenden, um RC-Servos zu steuern. Ich werde den Beschleunigungsmesser verwenden, um zwei Servos über eine UDP-Verbindung zu steuern. Dies ist ein Proof-of-Concept-Projekt, um zu überprüfen, ob eine Verbindung zwischen einem iPhone und einem Peripheriegerät mit UDP hohe Aktualisierungsraten (höher als BLE) erreichen kann.

Schritt 1: Teileliste

Hardware

  • ESP8266 (Wemos D1 Mini Pro) Platine
  • Zwei RC-Servos
  • Eine USB-Powerbank als Stromversorgung
  • Einige Überbrückungsdrähte
  • Ein iPhone oder iPad mit iOS12
  • Ein Mac zum Erstellen des Projekts

Software

  • Arduino IDE mit ESP8266 Arduino Core installiert: Installationshandbuch
  • Xcode 10:
  • Die Arduino-Skizze finden Sie hier
  • Die Swift-Quelle der iPhone-App ist hier

Schritt 2: Hardware

Hardware
Hardware

Der Hardwareaufbau ist sehr einfach. Ich verwende den D1 (Pitch) und D2 (Roll) Ausgang des ESP8266, um die RC-Servos entsprechend zu steuern. Das Board wird über eine USB-Powerbank mit Strom versorgt. Die RC-Servos werden über den 5V- und GND-Pin der Platine mit Strom versorgt.

Schritt 3: Software

Die Steuerungs-App für das iPhone ist in Swift geschrieben, die sich drahtlos mit dem ESP8266-Controller-Board verbindet und die Nick- und Roll-Servos basierend auf den iPhone-Bewegungsdaten steuert. Die Controller-Platine erstellt einen Wifi Access Point und lauscht auf kommende UDP-Pakete, die die Servopositionsinformationen als Bytestrom mit dem folgenden allgemeinen Format enthalten:

Servoindex | Position MSB | Position LSB

Der Servoindex ist entweder 1 für Nick oder 2 für Roll. Die Servoposition wird aus den Neigungsgraden des Telefons x, y berechnet und in Mikrosekunden zwischen 1000 und 2000 umgewandelt. Die Aktualisierungsrate beträgt 20 Millisekunden.

Die App verwendet das neue Network.framework, um die UDP-Verbindung herzustellen, sie läuft also nur auf iOS 12 und höher.

Dies ist eine POC-App, um zu demonstrieren, wie einfach die UDP-Verbindung in iOS 12 zu verwenden ist. Um es einfach zu halten, werden die UDP-Pakete separat für Pitch und Roll gesendet.

Empfohlen: