Controlador de rotor de antena con azimut y elevación

Hoy compartimos un proyecto especialmente interesante para cualquier radioaficionado que quiera dar un salto serio en el control de antenas: un controlador de rotor con azimut y elevación, compatible con la mayoría del software habitual de radioafición.

Se trata de una solución ideal para el seguimiento automático de satélites, permitiendo que la antena acompañe el pase de forma precisa y sin intervención manual. Nada de girar a ojo ni de depender de controladores propietarios cerrados: aquí hablamos de un sistema reproducible, moderno y pensado para usarse de verdad.

Un trabajo de Juan Manuel, EA7KWF

Este trabajo viene de la mano de Juan Manuel (EA7KWF), a quien conocí en la comunidad Riojanos por la Radio. Es uno de esos compañeros con los que resulta fácil hablar de cacharreo: comparte, explica y no se guarda nada en la recámara.

Uno de sus últimos trabajos ha sido precisamente este controlador de rotor, y ha tenido la generosidad de ofrecerse para poder traerlo a Acuántico Power en forma de guía paso a paso, con el objetivo de que cualquiera pueda replicarlo en casa.

Qué vas a construir exactamente

El resultado final de este proyecto es un controlador de rotor por WiFi capaz de mover:

  • Azimut (hasta 450°)
  • Elevación (hasta 180°)

Todo ello mediante comandos GS-232A, el protocolo que entienden la mayoría de programas de control y seguimiento de satélites utilizados en radioafición.

El sistema se basa en un ESP32, que actúa como cerebro del conjunto: recibe órdenes por red y las traduce en movimiento real mediante motores paso a paso.

Qué hace el sistema

Tal y como está implementado el código:

  • El ESP32 se conecta a tu red WiFi
  • Utiliza una IP fija
  • Abre un servidor TCP en el puerto 4533
  • Interpreta comandos GS-232A estándar
  • Controla dos motores paso a paso:
    • Uno para azimut
    • Otro para elevación

Material necesario

Componentes principales

Antes de empezar conviene tener todo el material sobre la mesa.

Recomendado

  • Disipadores para los drivers (incluidos en el kit DRV8825)
  • Ventilación básica si el rotor mueve cierta carga

Conexiones de los componentes

El código define de forma explícita qué pines se utilizan, pero en la práctica no es necesario cablear pin a pin.
Al usar una placa ESP32 junto con una CNC Shield, el conjunto está pensado para encajar directamente, sin posibilidad de error en la orientación.

La CNC Shield solo tiene una posición posible para conectarse sobre la placa base, por lo que basta con colocarla correctamente y presionar hasta que quede bien asentada.

Una vez colocada solo hay que hacer manualmente la conexión para la alimentación del shield igual que en la siguiente imagen:

Colocación de los drivers de motor

En este proyecto solo se utilizan dos ejes:

  • Eje X → azimut
  • Eje Y → elevación

Por tanto:

  • Debes colocar dos drivers de motor paso a paso en las posiciones X e Y de la CNC Shield.
  • En el kit habitual se incluyen 4 drivers, por lo que te sobrarán 2.
  • También es posible adquirir la CNC Shield y solo dos drivers por separado.

Es importante respetar la orientación del driver al insertarlo en la placa, alineando correctamente los pines. No fuerces nunca la inserción.

Ajuste del voltaje de los drivers (VREF)

Antes de conectar los motores, es imprescindible ajustar el voltaje de referencia (VREF) de cada driver.
Este ajuste limita la corriente máxima que recibirá el motor y evita sobrecalentamientos o daños.

El ajuste se realiza mediante el potenciómetro que incorpora cada driver.

Cómo calcular el VREF

La regla utilizada en este proyecto es sencilla:

VREF = Corriente máxima del motor / 2

En este caso se utilizan motores de 1,7 A, por lo que el valor de referencia será aproximadamente:

VREF ≈ 0,8 V

Cómo medirlo

  • Utiliza un multímetro
  • Coloca la punta negativa en GND
  • Mide el voltaje en el potenciómetro del driver
  • Ajusta girando suavemente el tornillo hasta obtener el valor deseado

Juan Manuel explica este proceso de forma muy clara en la PARTE 4 de los vídeos, que encontrarás más abajo en este artículo.

Preparar el entorno de programación

Instalar el entorno de Arduino

Todo el proyecto se compila desde el entorno oficial de Arduino, disponible para Windows, Linux y macOS.

Añadir soporte para ESP32

Para trabajar con placas ESP32 es necesario instalar el soporte del fabricante Espressif Systems.

En el IDE de Arduino:

  1. Abre Preferencias
  2. Añade esta URL en “Gestores de tarjetas adicionales”:
  1. https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
  2. Instala el paquete ESP32 desde el gestor de placas

Instalar la librería necesaria

El control de los motores se realiza mediante la librería AccelStepper, que se instala directamente desde el gestor de librerías del IDE.

Firmware

Descárgalo aquí

Configuración WiFi

Antes de cargar el programa, solo debes modificar estos valores en el código desde el editor:

const char* ssid = «NOMBRE_DE_TU_WIFI»;
const char* password = «CLAVE_DEL_WIFI»;

Y comprobar que la IP fija que deseas asignar no está ocupada y corresponde a los rangos de tu red local:

IPAddress local_IP(192,168,0,50); La IP que tendrá de tu ESP32.
IPAddress gateway(192,168,0,1); La IP de tu router.
IPAddress subnet(255,255,255,0); La misma.

Si tu red no utiliza el rango 192.168.0.x, ajusta estos valores antes de continuar, por ejemplo a 192.168.1.x.

Cargar el programa en el ESP32

  1. Conecta el ESP32 al ordenador mediante USB
  2. En el IDE selecciona:
    • Placa: ESP32 Dev Module
    • Puerto: el que aparezca al conectar la placa
  3. Pulsa Subir

Si el proceso termina sin errores, el controlador ya está programado.

Software necesario para el funcionamiento del controlador

Para que el controlador de rotor funcione correctamente desde el ordenador no basta con la electrónica.
Es necesario contar con dos piezas de software que actúan como puente entre el programa de radioafición y el controlador WiFi.

Hamlib

El proyecto utiliza Hamlib, una biblioteca ampliamente usada en radioafición para el control de equipos como:

  • Rotores de antena
  • Transceptores
  • Sistemas de seguimiento satelital

Muchos programas de radioafición no hablan directamente con el hardware, sino que lo hacen a través de Hamlib.
En este caso, Hamlib se encarga de traducir las órdenes del software (por ejemplo, mover la antena a una posición concreta) al formato que entiende el controlador GS-232A.

En el artículo sobre mi herramienta Hamlib Launcher hay un tutorial de instalación para Hamlib completo.

HW-VSP3 (Virtual Serial Port)

Además de Hamlib, es necesario instalar HW‑VSP3

Este programa crea un puerto serie virtual en el sistema operativo.

¿Para qué sirve esto?

  • Muchos programas de radioafición esperan comunicarse con un rotor mediante un puerto COM
  • Nuestro controlador funciona por red (TCP/IP)
  • HW-VSP3 actúa como traductor entre ambos mundos:
    • El software cree que habla con un puerto serie
    • En realidad, los datos se envían por red al ESP32

Gracias a esto, el controlador es compatible con software pensado originalmente para rotores clásicos RS-232.

Primera comprobación

Abre el Monitor Serie del IDE y ajusta la velocidad a 115200 baudios.
Al reiniciar la placa deberías ver:

  • Mensajes de conexión WiFi
  • La IP asignada
  • El servidor TCP activo

Eso indica que el sistema está listo para recibir órdenes.

Prueba del control GS-232A

Desde cualquier software compatible o mediante una conexión Telnet:

  • IP: la del ESP32
  • Puerto: 4533

Comandos básicos:

  • C → devuelve la posición actual
  • W180 045 → mueve a azimut 180°, elevación 45°
  • S → detiene el movimiento

Si los motores responden correctamente, el controlador está funcionando.

Documentación audiovisual

Además de esta guía paso a paso, Juan Manuel (EA7KWF) ha publicado en su canal de YouTube una serie de vídeos donde documenta todo el proceso en detalle.

Este material audiovisual es especialmente útil para:

  • Ver el proyecto en funcionamiento real
  • Entender mejor el montaje físico
  • Resolver dudas puntuales durante la carga del firmware o la conexión de los motores

Si en algún punto del montaje te queda alguna pregunta en el aire, estos vídeos te ayudarán a atar cabos sin necesidad de improvisar.

ROTOR DE ANTENA PARA SEGUIMIENTO SATELITAL DE BAJO COSTE – PARTE 1 – Explicación general del proyecto y demostración de funcionamiento

ROTOR DE ANTENA PARA SEGUIMIENTO SATELITAL DE BAJO COSTE – PARTE 2 – Explicación detallada del módulo controlador de los motores

ROTOR DE ANTENA PARA SEGUIMIENTO SATELITAL DE BAJO COSTE – PARTE 3 – Cómo cargar el firmware en el controlador

ROTOR DE ANTENA PARA SEGUIMIENTO SATELITAL DE BAJO COSTE – PARTE 4 – Conexión de los motores paso a paso

En algunos videos se usó un Arduino que más tarde sería sustituido por un ESP32. En la práctica ese detalle no es relevante en este caso.
También podéis visitar el github del autor.

El proyecto continúa

Este controlador no es un punto final, sino un punto de partida.

Juan Manuel, autor del proyecto, ya está trabajando en la parte mecánica: sistema de reducción, soportes para la antena y todos los elementos necesarios para disponer de un rotor de antena completo, pensado específicamente para seguimiento satelital.

La idea es cerrar el círculo:
electrónica, control, mecánica y uso real en estación, sin soluciones improvisadas ni dependencias externas.

Desde Acuántico Power iremos compartiendo las próximas actualizaciones a medida que el proyecto avance.

Si este tipo de desarrollos te interesa, mantente atento.
Lo mejor de este rotor aún está por llegar.

Si te ha gustado este artículo, tienes mas relacionados en TechLab y Tutoriales:

Digitalizando una Vieja Radio CB

Guía legal definitiva sobre antenas en España: radioafición, CB-27 MHz y televisión

Antenas balconeras: Orgullo frente a la mofa

Scroll al inicio