2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
U ovom projektu želim koristiti svoj iPhone za upravljanje RC servo pogonima. Koristit ću akcelerometar za kontrolu dva servo -a preko UDP veze. Ovo je projekt Proof Of Concept kojim se provjerava da li veza između iPhonea i perifernog uređaja može postići velike brzine ažuriranja (veće od BLE) pomoću UDP -a.
Korak 1: Lista dijelova
Hardver
- ESP8266 (Wemos D1 mini pro) ploča
- Dva RC servo motora
- USB banka za napajanje kao izvor napajanja
- Neke kratkospojne žice
- IPhone ili iPad koji koristi iOS12
- Mac za izradu projekta
Softver
- Arduino IDE sa instaliranim Arduino jezgrom ESP8266: Uputstvo za instalaciju
- Xcode 10:
- Arduino skicu možete pronaći ovdje
- Swift izvor iPhone aplikacije je ovdje
Korak 2: Hardver
Postavljanje hardvera je vrlo jednostavno. Koristim D1 (pitch) i D2 (roll) izlaz na ESP8266 za upravljanje RC servo pogonima. Ploča se napaja iz USB baterije. RC servo pogoni se napajaju sa 5v i GND pina na ploči.
Korak 3: Softver
Kontrolna aplikacija za iPhone napisana je na Swiftu koji se bežično povezuje s kontrolnom pločom ESP8266 i kontrolira pitch and roll servo na temelju podataka o kretanju iPhonea. Kontrolna ploča stvara Wifi pristupnu tačku i osluškuje nadolazeće UDP pakete koji sadrže informacije o položaju servoa kao niz bajtova sa sljedećim općim formatom:
Servo indeks | Pozicija MSB | Pozicija LSB
Servo indeks je 1 za pitch ili 2 za roll. Položaj serva računa se iz stepena nagiba telefona x, y i pretvara u mikrosekunde između 1000 i 2000. Brzina osvježavanja je 20 milisekundi.
Aplikacija koristi novi Network.framework za uspostavljanje UDP veze, pa se izvodi samo na iOS 12 i novijim verzijama.
Ovo je POC aplikacija koja pokazuje koliko je UDP veza jednostavna za upotrebu u iOS -u 12. Da bismo pojednostavili, UDP paketi se šalju zasebno za pitch and roll.