Documentación

Nueva versión de las piezas 3D del encóder


Vídeo del montaje del encóder de LibreServo

Para saber la posición del eje del servomotor, LibreServo hace uso del encóder AEAT-8800 de 16bits. Este encóder sustituye al potenciómetro que tienen los servomotores y con ello conseguimos tener mucha más precisión y permite que el servomotor gire 360 grados.

Para lograr ello, LibreServo hace uso de una minúscula PCB de 10,2x11,2 mm al que se le acopla una pieza impresa en 3D del mismo tamaño y forma que el potenciómetro original. Dicha pieza impresa en 3D consta de 3 pequeñas partes, un rodamiento de 4x7x2 mm y un pequeño imán magnetizado diametralmente de 6x2,5mm. Tan sólo es neceario un punto de pegamento para fijar el imán. El resto de piezas, rodamiento y PCB están diseñados para que encagen a presión y queden fijas.

Comandos en LibreServo (segunda parte)

He dedicado mucho tiempo a la parte de comandos en LibreServo y creo que es una de las partes más importantes del proyecto, es cómo se presenta LibreServo ante el usuario. Ofrece una flexibilidad y posibilidades que yo nunca he visto en ningún fabricante.

La documentación de los comandos la dividiré en dos artículos, este artículo está más centrado en ejemplos y explicación de ejecución y el otro artículo está centrado en la descripción de los comandos de LibreServo.

LibreServo cuenta con un administrador de tareas para la parte del manejo del motor de alta prioridad y otro administrador de tareas independiente de baja prioridad sólo para el envío de datos al usuario (comandos GX). Hay que tenerlo en cuenta ya que el orden y la temporización serán independientes entre los comandos de recibir datos y el resto de comandos.


[...]

Comandos en LibreServo (primera parte)

He dedicado mucho tiempo a la parte de comandos en LibreServo y creo que es una de las partes más importantes del proyecto, es cómo se presenta LibreServo ante el usuario. Ofrece una flexibilidad y posibilidades que yo nunca he visto en ningún fabricante.

La documentación de los comandos la dividiré en dos artículos, este artículo está más centrado en la descripción de los comandos y la segunda parte está centrada en ejemplos y explicación de ejecución en LibreServo.


[...]

Últimos pasos para primera versión oficial


Música con LibreServo

Aunque tenía muchas partes del código ya hechas, la verdad es que juntar todo el código y realizar todas las funciones y extructura interna sin bloqueos ha sido una tarea mucho más laboriosa de lo esperado. Además, he realizado decenas de funciones de cara al usuario y la primera versión del Software de LibreServo es mucho más completa de lo que en un principio había previsto.

Actualizado software de LibreServo (versión v0.1)

Tras varios meses de trabajo, por fin LibreServo ha alcanzado la versión 0.1 en el software. ¿Qué quiere decir esto? Quiere decir que LibreServo sigue estando en versión Beta, pero ya tiene suficiente madurez para presentarse en sociedad. Esta será sólo la primera de varias entradas que iré subiendo estos días.

He actualizado el Github de LibreServo con los ficheros más recientes e intentaré mantenerlo actualizado.

En próximos días subiré la documentación de los comandos de LibreServo, pero por si alguien quiere leer el código en sí, he realizado dos pequeños diagramas para ayudar a entender el funcionamiento de LibreServo.

Curvas de movimiento

Gráfica curva de movimiento Curva en S Gráfica de curva en S. Posición, aceleración y velocidad

Un servomotor es un motor que mantiene una posición dada, ¿pero cómo llega a dicha posición?

Un servomotor normal, sólo recibe la posición final por PWM y siempre va lo más rápido que puede a dicho punto. En cambio, un servomotor inteligente generalmente recibe un comando que le indica la posición final y en cuánto tiempo tiene que alcanzar dicha posición, es en ese momento cuando el servomotor inteligente empieza a calcular la ruta hasta la posición final. Existen varias formas de trazar la ruta, eso son las curvas de movimiento.

LibreServo v2. Nuevas esperanzas

LibreServo v2 Soldando la primera LibreServo v2

Esta pequeña entrada es para anunciar que la nueva LibreServo ha llegado, he podido soldarla sin problema alguno y ¡está funcionando al completo! 🥳

Tras las pruebas que hice con las placas de test v1 y v2 se realizaron muchísimos cambios en el diseño de LibreServo. Debido a tantos cambios, LibreServo pasa a ser ya versión 2.

Tenemos un ganador. Resultados de las pruebas en PCB test 2


LibreServo enviando datos por RS485 a Arduino

Tras varias pruebas y análisis, el hardware de LibreServo ya está finalmente elegido y funcionando, ¡incluso el puente en H que me daba muchos problemas! En general todas las partes de LibreServo se quedan como estaban, porque ya funcionaban correctamente, salvo lo comentado en este artículo.

Nueva PCB Test v2 para LibreServo


Hola Mundo en PCB test v2 de LibreServo

Hace un mes analizaba los resultados y conclusiones obtenidos con la placa de test v1 de LibreServo e intentando no perder el impulso en este mes he diseñado, he mandado a fabricar y ¡ya he montado la placa de test v2 de LibreServo! 🥳

Es la primera PCB que diseño de 4 capas para LibreServo y espero que eso mitigue ciertos problemas con el puente en H que creo que vienen, en parte, por el ruido electrónico. Por lo demás, es una PCB en la que ya están los componentes finales, es más cercana al diseño final y en la que me he obligado a poner los componentes lo más cerca posible entre sí para ver el límite real entre lo que se diseña y lo que luego se puede soldar fácilmente sin complicar en exceso las cosas, el papel lo aguanta todo pero luego hay que llevarlo a la realidad.

Resultados y conclusiones de las pruebas

RS-485 9 Mbps Hola Mundo
RS485 Hola mundo a 9 Mbps

Tras analizar todas las partes de LibreServo, he decidido realizar de nuevo varios cambios de diseño. Estoy contento con los resultados obtenidos con la placa de test ya que sin ella hubiera sido imposible analizar todos los componentes por separado y detectar todos los errores y fallos que he encontrado, es algo que tendría que haber hecho desde un primer momento y que me hubiera ahorrado muchísimo tiempo. Los temas a tratar son:

  • Sensor de Corriente
  • Protección ante cambio de polaridad de alimentación
  • Nueva alimentación, mpm3610
  • Sensor de temperatura NTC
  • Nuevo led RGB más compacto
  • Comunicación serie RS-232 vs RS-485
  • Nuevo sensor magnético AEAT-8800
  • Puente en H
  • Próxima PCB (4 capas)