Tabla de contenido:

Controlar servos RC de forma inalámbrica a través de UDP: 3 pasos
Controlar servos RC de forma inalámbrica a través de UDP: 3 pasos

Video: Controlar servos RC de forma inalámbrica a través de UDP: 3 pasos

Video: Controlar servos RC de forma inalámbrica a través de UDP: 3 pasos
Video: Controlar dispositivos electrónicos remotamente vía Wi-Fi | NodeMCU ESP8266 y Blynk | Domotica IoT 2024, Mes de julio
Anonim
Image
Image
Hardware
Hardware

En este proyecto, quiero usar mi iPhone para controlar los servos RC. Usaré el acelerómetro para controlar dos servos a través de una conexión UDP. Este es un proyecto de prueba de concepto para verificar que una conexión entre un iPhone y un periférico puede lograr altas tasas de actualización (más altas que BLE) usando UDP.

Paso 1: Lista de piezas

Hardware

  • Placa ESP8266 (Wemos D1 mini pro)
  • Dos servos RC
  • Un banco de energía USB como fuente de alimentación
  • Algunos cables de puente
  • Un iPhone o iPad con iOS12
  • Una mac para construir el proyecto

Software

  • Arduino IDE con ESP8266 Arduino core instalado: manual de instalación
  • Xcode 10:
  • El boceto de arduino se puede encontrar aquí
  • La fuente Swift de la aplicación para iPhone está aquí

Paso 2: hardware

Hardware
Hardware

La configuración del hardware es muy sencilla. Utilizo la salida D1 (tono) y D2 (balanceo) en el ESP8266 para controlar los servos RC respectivamente. La placa se alimenta desde un banco de energía USB. Los servos RC se alimentan desde el pin 5v y GND de la placa.

Paso 3: software

La aplicación de control para el iPhone está escrita en Swift, que se conecta a la placa controladora ESP8266 de forma inalámbrica y controla los servos de cabeceo y balanceo según los datos de movimiento del iPhone. La placa controladora crea un punto de acceso Wifi y escucha los paquetes UDP ascendentes que contienen la información de la posición del servo como un flujo de bytes con el siguiente formato general:

Índice de servo | Posición MSB | Posición LSB

El índice de servo es 1 para cabeceo o 2 para balanceo. La posición del servo se calcula a partir de los grados de inclinación x, y del teléfono y se convierte a microsegundos entre 1000 y 2000. La frecuencia de actualización es de 20 milisegundos.

La aplicación está utilizando el nuevo Network.framework para establecer la conexión UDP, por lo que solo se ejecuta en iOS 12 y superior.

Esta es una aplicación POC para demostrar lo fácil que es usar la conexión UDP en iOS 12. Para que sea sencillo, los paquetes UDP se envían por separado para cabecear y balancearse.

Recomendado: