Buenos días a todos,
soy Sergio, desarrollador del proyecto de piloto automático Fenix. Gracias a Max y a Jose Luis (Tehani) por atraerme hacia este foro. Creo que es el principio de algo grande

.
Llevo desarrollando Fenix desde 2017 de manera discontinua, en mis ratos libres.
https://fenix-autopilot.com/
https://spascual90.gitbook.io/fenix-autopilot
https://www.youtube.com/@FenixAutopilot
El objetivo principal del proyecto es, además de entretenerme y aprender,
construir un piloto automático de brazo con buen rendimiento en su gama, con las funcionalidades que realmente se necesitan para un plan de viaje costero, interfaces de comunicación básicas, basado en componentes estándar que permita su fácil integración y con ello lo que se busca es una excelente relación calidad/ precio.
En este sentido, creo que es importante que el proyecto sea realista en sus objetivos para que llegue a buen puerto. Mi objetivo no es hacer un "pata negra" sino el mejor piloto automático dentro de la gama básica. Mi objetivo son esos navegantes que buscan renovar sus "viejos Autohelm ST1000" con un presupuesto limitado buscando mejor rendimiento, un look&feel del interfaz atractivo y bajo coste de mantenimiento. Para aquellos que además tienen ciertos conocimientos de informática/electrónica (que en el mundo náutico haberlos haylos) pueden liarse con la integración con plotter, anemometros o incluso hacer uso de los terminales de sus antiguos pilotos automáticos que ya tienen instalados en la bañera. Ellos pueden beneficiarse de capacidades de integración NMEA0183 que proporciona Fenix con Openplotter via USB.
Tengo bastantes conocimientos de programación y física, y sólo básicos de electrónica, por ese motivo el proyecto tiene un alto nivel de exigencia en términos de SW donde dedico el 95% del tiempo, y bastante básico en la parte de HW.
En principio no tengo animo de comercializarlo, pero no lo descarto si llego a un producto que cumpla con los estándares de calidad exigibles.
Una vez hechas las presentaciones, y sabiendo que Tehani me lee, paso a desarrollar alguna ideas que se han mencionado y de paso abrir debate,
- ESP32 o Arduino: es indudable que ESP32 tiene mayor capacidad en todos los sentidos. Si empezase el proyecto hoy con lo que sé empezaría con ESP32, pero no es el caso. De momento Arduino me ha permitido centrarme y desarrollar los objetivos del proyecto. Efectivamente si quiero incorporar requisitos más ambiciosos tendré que migrar al ESP32.
- IMU externa o interna: es indudable que externa mejora la calidad de la lectura del magnetómetro, pero no veo el beneficio para el giroscopo y acelerómetro que además requieren alta frecuencia de refresco para anticiparse a los giros no deseados (eg. orzada). Mi propuesta implementada en Fenix es la siguiente, IMU interna con lectura de los 3 sensores y (opcionalmente) capacidad para recibir mensajes heading (HDG) externos que prevalezcan frente a la lectura de magnetómetro interna. Esto requiere no solo leer los mensajes HDG sino también extrapolar el valor de heading hasta la recepción de un nuevo HDG.
- Calibración de fábrica o usuario: De fábrica siempre, lo que pasa es que Fenix está desarrollado como proyecto DIY por lo que el usuario y el fabricante son la misma persona, razón por la cual he desarrollado herramientas y videos ilustrativos del proceso.
- Interfaces de comunicaciones avanzadas o básicas: Fenix sólo implementa NMEA0183 a través de USB lo cual es suficiente para conectarse con Openplotter que además de ser un plotter ofrece infinitas opciones de interconexión con otros dispositivos (sensores y de control) a través de cualquier estándar existente (NMEA2000, Signal K,...). Es decir, las limitaciones de Fenix las mitiga Openplotter.
- HW profesional o amateur/DIY: Estando en juego la seguridad de la embarcación y sus tripulantes, creo que hay que poner todos los medios razonables para evitar que el uso del piloto automático dañe elementos de seguridad como la radio o sobrecalentamiento del propio piloto automático. Actualmente Fenix no implementa las medidas de protección EMI, de inversión de corriente y monitorización del motor suficientes y es un área de mejora.
Por otro lado, creo que para empezar a comercializar, el uso de placas de desarrollo (ie. Arduino Mega + Cytron MD10C) ahorra mucho tiempo de diseño, ensamblaje y fabricación frente a diseñar placas desde cero. El coste por unidad será significativamente mayor, pero por lo menos no tienes que comprar 100 unidades a fondo perdido.
@Tehani: No sé si existe alguna fuente de alimentación comercial que se pueda utilizar entre Fenix y la batería sin tener de diseñar una ad hoc. Si no existe, la solución intermedia es interesante para pequeñas series de producción: desarrollo de fuente de alimentación ad hoc junto con placas de desarrollo comerciales. ¿Sería posible?
- Prueba de mar o simulador: Vivo lejos del mar y eso hace que desarrolle el piloto con pocas oportunidades de hacer pruebas sobre el barco. Eso me ha animado a desarrollar un simulador de dinámica de barco que me permite validar el rendimiento del piloto ante ciertos escenarios o estímulos que son difíciles de reproducir en la realidad. Mi experiencia es que incluso estando cerca del mar, hay que probar en el simulador, un entorno controlado, cientos de veces hasta encontrar los parámetros que mejor se adaptan, y sólo después hacer la prueba de mar para validad la simulación.
¿Entonces qué le falta a Fenix para cumplir sus objetivos?
- Terminar de desarrollar el controlador PID para anticiparse a los cambios de rumbo no comandados
- Desarrollar una solución HW que proporcione una fuente de alimentación con las protecciones necesarias
- Pruebas y más pruebas en simulador para encontrar los parámetros de control iniciales
- Pruebas y más pruebas en barco para validar que el comportamiento es el esperado
Creo que está bien como introducción y para despertar mentes. El debate está servido.
Un saludo navegantes
Sergio