En su dia, al comprar el rotor Yaesu G-450C decidí guardar el controlador original (ya que normalmente la estación la utilizo en remoto) y buscar alguna manera barata de controlarlo desde el ordenador.
Navegando por la red, encontré el fantástico proyecto de K3NG basado en Arduino: blog.radioartisan.com/yaesu-rotator-computer-serial-interface/
En cuanto a hardware, en principio, es un proyecto muy sencillo. En mi caso (sólo AZIMUTH) lo que necesitaba era solamente:
Un Arduino Uno
Un Display LCD 2 lineas
Dos pulsadores (Giro CCW/CW)
Tarjeta de 2 relés para el giro del rotor
El montaje es sencillo y no tiene realmente ninguna dificultad. Normalmente la dificultad dependerá de los sensores que se utilicen. En mi caso, al utilizar el potenciómetro interno del G-450C, lo único que hay que hacer es alimentar los extremos del potenciómetro con los 5 voltios del arduino, y del cursor del potenciómetro, obtendremos el voltaje variable (entre 0-5 voltios) proporcional a la posición (rumbo) del rotor.
Es importante asegurarse que a la entrada analógica del Arduino no le llegan más de 5 voltios, ya que nos lo podemos cargar. Por lo tanto, recomiendo antes de conectar el cable al pin 17, medir el voltaje con el multímetro.
Es un proyecto que contempla muchas opciones para ajustarse a todas las posibilidades que existen en el mercado y cada uno tiene que adaptarlo a sus necesidades. Pero esta personalización es relativamente sencilla ya que se trata de desmarcar (más bien descomentar) las características que deseamos.
El código para Arduino, se puede descargar desde: github.com/k3ng/k3ng_rotator_controller/archive/master.zip
Una vez descargado, descomprimimos el archivo zip y la carpeta resultante la copiamos en la carpeta de Arduino.
Con el IDE Oficial de Arduino, abriremos el archivo k3ng_rotator_controller.ino y tendremos a la vista el código contenido en los diferentes archivos .h
Como ejemplo, esta parte del código define en que idioma se van a presentar los mensajes en el display. Quitando el comentario (las dos barras //) dejamos activa esa opción y el resto (las que comienzan por //) no son tenidas en cuenta durante la ejecución (son simples comentarios).
En este ejemplo, el idioma elegido es el Inglés. Para cambiar a Español, tendríamos que quitar las "//" de la linea LANGUAGE_SPANISH y ponérselas a la linea LANGUAGE_ENGLISH.
De esta forma cambiaríamos el idioma del display.
Para adaptarlo a mis necesidades (Solo Azimuth + Display 2 lineas + sensor potenciómetro) tuve que "descomentar" las lineas de estos archivos:
Este es el montaje inicial en pruebas, utilizando un potenciómetro de 1 K para simular el de 500 Ohms del rotor. Posteriormente, hice las conexiones para el rotor y realicé la calibración del rotor.