2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
V tomto projektu chci použít svůj iPhone k ovládání RC serv. Budu používat akcelerometr k ovládání dvou serv přes UDP připojení. Toto je projekt Proof Of Concept, který má ověřit, že spojení mezi iPhone a periferním zařízením může pomocí UDP dosáhnout vysoké rychlosti aktualizace (vyšší než BLE).
Krok 1: Seznam dílů
Hardware
- Deska ESP8266 (Wemos D1 mini pro)
- Dvě RC serva
- Powerbanka USB jako napájecí zdroj
- Nějaké propojovací vodiče
- IPhone nebo iPad s iOS 12
- Mac na vybudování projektu
Software
- Arduino IDE s nainstalovaným jádrem ESP8266 Arduino: Instalační manuál
- Xcode 10:
- Skicu arduino najdete zde
- Zdroj aplikace Swift pro iPhone je zde
Krok 2: Hardware
Nastavení hardwaru je velmi jednoduché. K ovládání serv RC používám výstup D1 (pitch) a D2 (roll) na ESP8266. Deska je napájena z USB power banky. Serva RC jsou napájena z pinu 5v a GND desky.
Krok 3: Software
Řídicí aplikace pro iPhone je napsána ve Swiftu, který se bezdrátově připojuje k řídicí desce ESP8266 a ovládá servo pitch and roll na základě údajů o pohybu iPhonu. Řídicí deska vytvoří přístupový bod Wifi a naslouchá připravovaným UDP paketům, které obsahují informace o poloze serva jako proud bajtů v následujícím obecném formátu:
Servo index | Pozice MSB | Pozice LSB
Servo index je buď 1 pro rozteč, nebo 2 pro náklon. Poloha serva se vypočítá z stupňů náklonu telefonu x, y a převede se na mikrosekundy mezi 1000 a 2000. Obnovovací frekvence je 20 milisekund.
Aplikace používá k navázání připojení UDP nový Network.framework, takže běží pouze na iOS 12 a výše.
Toto je aplikace POC, která ukazuje, jak snadné je používat připojení UDP v systému iOS 12. Aby to bylo jednoduché, pakety UDP se odesílají samostatně pro pitch and roll.