Table des matières:

Contrôler les servos RC sans fil via UDP : 3 étapes
Contrôler les servos RC sans fil via UDP : 3 étapes

Vidéo: Contrôler les servos RC sans fil via UDP : 3 étapes

Vidéo: Contrôler les servos RC sans fil via UDP : 3 étapes
Vidéo: 🚀 RUTUBE и ТОЧКА. Разработка РУТУБА за 5 часов *БЕЗ ВОДЫ* [Next / React / Nest / PostgreSQL / Redux] 2024, Novembre
Anonim
Image
Image
Matériel
Matériel

Dans ce projet, je souhaite utiliser mon iPhone pour contrôler les servos RC. J'utiliserai l'accéléromètre pour contrôler deux servos via une connexion UDP. Il s'agit d'un projet Proof Of Concept pour vérifier qu'une connexion entre un iPhone et un périphérique peut atteindre des taux de mise à jour élevés (supérieurs à BLE) en utilisant UDP.

Étape 1: Liste des pièces

Matériel

  • Carte ESP8266 (Wemos D1 mini pro)
  • Deux servos RC
  • Une banque d'alimentation USB comme alimentation
  • Quelques fils de liaison
  • Un iPhone ou iPad utilisant iOS12
  • Un mac pour construire le projet

Logiciel

  • Arduino IDE avec noyau ESP8266 Arduino installé: Manuel d'installation
  • Xcode 10:
  • Le croquis arduino peut être trouvé ici
  • La source Swift de l'application iPhone est ici

Étape 2: Matériel

Matériel
Matériel

La configuration matérielle est très simple. J'utilise les sorties D1 (tangage) et D2 (roulis) de l'ESP8266 pour contrôler respectivement les servos RC. La carte est alimentée par une banque d'alimentation USB. Les servos RC sont alimentés par les broches 5v et GND de la carte.

Étape 3: Logiciel

L'application de contrôle pour iPhone est écrite en Swift qui se connecte sans fil à la carte contrôleur ESP8266 et contrôle les servos de tangage et de roulis en fonction des données de mouvement de l'iPhone. La carte contrôleur crée un point d'accès Wifi et écoute les paquets UDP à venir qui contiennent les informations de position du servo sous forme de flux d'octets au format général suivant:

Indice de servo | Poste MSB | Poste LSB

L'index d'asservissement est soit 1 pour le tangage, soit 2 pour le roulis. La position du servomoteur est calculée à partir des degrés d'inclinaison x, y du téléphone et convertie en microsecondes entre 1000 et 2000. Le taux de rafraîchissement est de 20 millisecondes.

L'application utilise le nouveau Network.framework pour établir la connexion UDP, elle ne s'exécute donc que sur iOS 12 et versions ultérieures.

Il s'agit d'une application POC pour démontrer à quel point la connexion UDP est facile à utiliser dans iOS 12. Pour rester simple, les paquets UDP sont envoyés séparément pour le tangage et le roulis.

Conseillé: