2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
V tomto projekte chcem použiť svoj iPhone na ovládanie RC servov. Akcelerometer použijem na ovládanie dvoch serv cez pripojenie UDP. Toto je projekt Proof Of Concept na overenie toho, že spojenie medzi iPhone a periférnym zariadením môže pomocou UDP dosiahnuť vysokú rýchlosť aktualizácií (vyššiu ako BLE).
Krok 1: Zoznam dielov
Hardvér
- Doska ESP8266 (Wemos D1 mini pro)
- Dve RC serva
- Napájacia banka USB ako napájací zdroj
- Niektoré prepojovacie vodiče
- IPhone alebo iPad s iOS 12
- Mac na vytvorenie projektu
Softvér
- Arduino IDE s nainštalovaným jadrom ESP8266 Arduino: Inštalačný manuál
- Xcode 10:
- Náčrt Arduina nájdete tu
- Zdroj Swift aplikácie pre iPhone je tu
Krok 2: Hardvér
Hardvérové nastavenie je veľmi jednoduché. Na ovládanie servo RC používam výstup D1 (rozstup) a D2 (roll) na ESP8266. Doska je napájaná z USB power banky. Servo RC je napájané z pinu 5v a GND dosky.
Krok 3: Softvér
Ovládacia aplikácia pre iPhone je napísaná v systéme Swift, ktorý sa bezdrôtovo pripája k doske ovládača ESP8266 a ovláda servá pitch and roll na základe údajov o pohybe iPhone. Riadiaca doska vytvára prístupový bod Wifi a počúva prichádzajúce pakety UDP, ktoré obsahujú informácie o polohe serva ako prúd bajtov v nasledujúcom všeobecnom formáte:
Servo index | Pozícia MSB | Pozícia LSB
Servo index je buď 1 pre rozteč, alebo 2 pre kotúč. Poloha serva sa vypočíta z stupňov náklonu telefónu x, y a prevedie sa na mikrosekundy medzi 1 000 a 2 000. Obnovovacia frekvencia je 20 milisekúnd.
Aplikácia na vytvorenie pripojenia UDP používa nový sieťový rámec. Je teda spustená iba pre iOS 12 a novší.
Toto je aplikácia POC, ktorá demonštruje, ako ľahko sa používa pripojenie UDP v systéme iOS 12. Aby to bolo jednoduché, pakety UDP sa odosielajú oddelene pre pitch and roll.