İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu projede RC servoları kontrol etmek için iPhone'umu kullanmak istiyorum. UDP bağlantısı üzerinden iki servoyu kontrol etmek için ivmeölçer kullanacağım. Bu, bir iPhone ile çevre birimi arasındaki bağlantının UDP kullanarak yüksek güncelleme oranlarına (BLE'den daha yüksek) ulaşabileceğini doğrulamaya yönelik bir Kavram Kanıtı projesidir.
Adım 1: Parça Listesi
Donanım
- ESP8266 (Wemos D1 mini pro) kartı
- İki RC servo
- Güç kaynağı olarak bir USB güç bankası
- Bazı atlama telleri
- iOS12 kullanan bir iPhone veya iPad
- Projeyi oluşturmak için bir mac
Yazılım
- ESP8266 Arduino çekirdeği yüklü Arduino IDE: Kurulum kılavuzu
- Xcode 10:
- Arduino taslağı burada bulunabilir
- iPhone uygulamasının Swift kaynağı burada
2. Adım: Donanım
Donanım kurulumu çok basittir. Sırasıyla RC servolarını kontrol etmek için ESP8266'daki D1 (pitch) ve D2 (roll) çıkışını kullanıyorum. Kart, bir USB güç bankasından güç alır. RC servoları, kartın 5v ve GND pininden güç alır.
3. Adım: Yazılım
iPhone için kontrol uygulaması, ESP8266 kontrol kartına kablosuz olarak bağlanan ve iPhone hareket verilerine dayalı olarak eğim ve dönüş servolarını kontrol eden Swift dilinde yazılmıştır. Denetleyici kartı bir Wifi Erişim Noktası oluşturur ve aşağıdaki genel biçime sahip bir bayt akışı olarak servo konum bilgilerini içeren yaklaşan UDP paketlerini dinler:
Servo indeksi | Pozisyon MSB | Pozisyon LSB
Servo indeksi, adım için 1 veya yuvarlanma için 2'dir. Servo konumu telefonun x, y eğim derecelerinden hesaplanır ve 1000 ile 2000 arasında mikrosaniyeye dönüştürülür. Yenileme hızı 20 milisaniyedir.
Uygulama, UDP bağlantısını kurmak için yeni Network.framework kullanıyor, bu nedenle yalnızca iOS 12 ve üzeri sürümlerde çalışıyor.
Bu, iOS 12'de UDP bağlantısının ne kadar kolay kullanıldığını gösteren bir POC uygulamasıdır. Basit tutmak için UDP paketleri adım ve yuvarlanma için ayrı ayrı gönderilir.