2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
V tem projektu želim uporabiti svoj iPhone za krmiljenje RC servomotorjev. Merilnik pospeška bom uporabil za nadzor dveh servomotorjev prek povezave UDP. To je projekt Proof Of Concept, ki potrjuje, da lahko povezava med iPhoneom in zunanjimi napravami doseže visoke stopnje posodobitve (višje od BLE) z uporabo UDP.
1. korak: Seznam delov
Strojna oprema
- ESP8266 (Wemos D1 mini pro) plošča
- Dva RC servomotorja
- Napajalnik USB kot vir napajanja
- Nekaj mostičnih žic
- IPhone ali iPad s sistemom iOS12
- Mac za izdelavo projekta
Programska oprema
- Arduino IDE z nameščenim jedrom ESP8266 Arduino: Navodila za namestitev
- Xcode 10:
- Skico arduino najdete tukaj
- Vir Swift aplikacije iPhone je tukaj
2. korak: Strojna oprema
Nastavitev strojne opreme je zelo preprosta. Za krmiljenje RC servomotorjev uporabljam izhod D1 (pitch) in D2 (roll) na ESP8266. Plošča se napaja iz USB napajalnika. RC servomotorji se napajajo iz 5v in GND zatiča plošče.
3. korak: Programska oprema
Nadzorna aplikacija za iPhone je napisana v Swiftu, ki se brezžično poveže s krmilno ploščo ESP8266 in nadzira servomotorje, ki temeljijo na podatkih o gibanju iPhone. Krmilna plošča ustvari dostopno točko Wifi in posluša prihodnje pakete UDP, ki vsebujejo informacije o položaju servo kot tok bajtov v naslednji splošni obliki:
Servo indeks | Položaj MSB | Položaj LSB
Servo indeks je 1 za smolo ali 2 za zvitek. Položaj servo se izračuna iz stopinj nagiba telefona x, y in se pretvori v mikrosekunde med 1000 in 2000. Hitrost osveževanja je 20 milisekund.
Aplikacija uporablja novo omrežje Network.framework za vzpostavitev povezave UDP, zato deluje samo v sistemu iOS 12 in novejših.
To je aplikacija POC, ki prikazuje, kako enostavna je uporaba povezave UDP v sistemu iOS 12. Zaradi poenostavitve se paketi UDP pošiljajo ločeno za smolo in zvijanje.