Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
I det här projektet vill jag använda min iPhone för att styra RC -servon. Jag använder accelerometern för att styra två servon över UDP -anslutning. Detta är ett Proof Of Concept -projekt för att verifiera att en anslutning mellan en iPhone och en kringutrustning kan uppnå höga uppdateringshastigheter (högre än BLE) med UDP.
Steg 1: Dellista
Hårdvara
- ESP8266 (Wemos D1 mini pro) -kort
- Två RC -servon
- En USB -powerbank som strömförsörjning
- Några bygelkablar
- En iPhone eller iPad med iOS12
- En mac för att bygga projektet
programvara
- Arduino IDE med ESP8266 Arduino -kärna installerad: Installationsmanual
- Xcode 10:
- Arduino -skissen hittar du här
- Swift -källan till iPhone -appen är här
Steg 2: Hårdvara
Hårdvaruinställningen är väldigt enkel. Jag använder utgångarna D1 (tonhöjd) och D2 (rulle) på ESP8266 för att styra RC -servon. Kortet drivs från en USB -powerbank. RC -servon drivs från kortets 5v- och GND -stift.
Steg 3: Programvara
Kontrollappen för iPhone är skriven i Swift som ansluter till ESP8266 -styrkortet trådlöst och styr pitch and roll -servon baserat på iPhone -rörelsedata. Styrkortet skapar en Wifi -åtkomstpunkt och lyssnar på kommande UDP -paket som innehåller servopositionsinformationen som en byteström med följande allmänna format:
Servoindex | Position MSB | Position LSB
Servoindexet är antingen 1 för tonhöjd eller 2 för rulle. Servopositionen beräknas från telefonens x, y lutningsgrader och konverteras till mikrosekunder mellan 1000 och 2000. Uppdateringsfrekvensen är 20 millisekunder.
Appen använder det nya Network.framework för att upprätta UDP -anslutningen, så den körs bara på iOS 12 och senare.
Detta är en POC -app för att demostrera hur lätt att använda UDP -anslutning i iOS 12. För att hålla det enkelt skickas UDP -paketen separat för pitch and roll.