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)

Análisis alimentación (MPM3610 + Ferrita + AP2112)

Circuito MPM3610 y AP2112 con Ferrita Circuito MPM3610 y AP2112

Una de las partes que más he cambiado y pensado en las versiones de LibreServo es la alimentación. En versiones anteriores fue un regulador lineal que reduje de tamaño, pero la verdad es que no estaba para nada agusto ya que si LibreServo era alimentado con tan sólo 12V, el regulador lineal debería de disipara hasta 1,74 Watios y en 16v 2,54 Watios... algo que era realmente irreal que pudiera hacerlo.

Hace unos meses descubrí el MPM3610, y esto hizo que por fin pudiera diseñar la alimentación como quería. Este diminuto componente es un más que potente step-down de 1,2A que admite hasta 21V de entrada y que ¡además tiene la bobina y el diodo incorporado! Es esto último lo que lo hace perfecto para mi diseño, por el reducido espacio utilizado, siendo el único step-down que se fabrica que tenga integrado bobina y diodo en el mismo encapsulado. La diferencia entre usar un step-down y un regulador linel es que un regulador lineal de 3,3V a 12V da una eficiencia de un 35%, mientras que el step-down del 80% o superior, el resto se disipa en calor, con lo que uno es mucho más propenso a sobrecalentarse que el otro. Lo malo de usar un step-down es que son bastante ruidosos y su salida no es tan limpia como la de un regulador lineal.

Análisis del sensor de corriente ZXCT1010

Circuito básico ZXCT1010 con protección Zener MMSZ5226BS Circuito básico ZXCT1010 con protección Zener

El primer componente que voy a analizar en mi nueva placa para testear LibreServo es el sensor de corriente ZXCT1010, el cual es una versión mejorada del sensor ZXCT1009. La mejora sobre todo es en la parte baja del sensor, cuando hay poca caída en Rsense, parte en la que quería estar ya que no quiero que se desperdicie tensión en Rsense. Además, aparejado al sensor de corriente está el diodo Zener MMSZ5226BS para evitar que la tensión de salida del sensor de corriente pueda superar los 3,3V y quemar el microcontrolador.

Nueva PCB para testear LibreServo

PCB para test LibreServo Placa para Tests de LibreServo

Ha pasado mucho tiempo desde mi última actualización, una pandemia de por medio y muchos cambios. Sea como fuere, LibreServo sigue avanzando, poco a poco, pero sigue 💪.

Durante las versiones anteriores de Libreservo me he encontrado continuamente con diferentes problemas en el diseño y sin saber exactamente cómo se iban a comportar diferentes componentes de LibreServo, además, intentar luego debuguear la placa siendo tan compacta y sin espacio extra para poder sacar ni un cable para poder ver las señales complicaba siempre todo demasiado.

Compras y cambios de los últimos meses en LibreServo

DS1054Z LA1010 GPS3010D DS3235 Nuevo material y herramientas para LibreServo

LibreServo va a sufrir varios cambios importantes y he decidido cambiar el método en el que estoy realizando las pruebas. Además, he decidido rascarme el bolsillo y comprarme algo más de equipamiento para medir todo lo necesario de una manera externa y precisa y así saber de antemano qué esperarme en LibreServo.

Comparativa Smart Servos (Serial Servos)

Comparativa de Smart Servos
Comparativa de Smart Servos

Hace poco hablé de la nueva línea de Smart Servos de Lynxmotion y se me ocurrió que sería un buen tema poner en papel las caracteríasticas del resto de Smart Servos del mercado realizando una pequeña comparativa entre todos ellos. También ayudará a dejar plasmado qué es lo que voy a superar, ya que LibreServo nace con entre otras pretensiones, como ya expuse en objetivos de Libreservo, superar lo ya existente en el mercado a nivel software y electrónico, que son las partes que dependen de mi.

¿Por qué usar un Smart Servo en vez de un Servo estándar?

Casi con total seguridad si estás leyendo esta entrada ya tengas bien claro por qué quieres utilizar un Smart Servo, pero para algún despistado, vamos a ver qué motivos hay para usar un Smart Servo en vez de uno estándar.

  • Comunicación: La comunicación en un servo estándar es unidireccional. Al servo se le comunica la posición en la que quieres que esté pero no hay forma de tener una respuesta por parte del servo; si ha llegado a la posición, si el servo se está sobrecalentando, si tiene algún problema o alguna otra cuestión.
  • Software: Un servo estándar requiere de un señal PWM con un pulso bastante preciso, el cual se repite 50 veces por segundo. Cuando el número de servomotores aumenta, manejar dicha señal sobre todos los servomotores para que se vaya actualizando de manera adecuada para conseguir un movimiento suave y continuo 50 veces por segundo no es tan sencillo. Por norma, si se quiere una señal precisa, se necesita de timers dedicados para ello y cuando se manejan muchos servomotores, no se suelen tener tantos timers. Si has usado la librería servo.h de arduino la cual usa un sólo timer para intentar generar las señales de servo y has querido generar un movimiento suave, que cambie la posición 50 veces por segundo, habrás podido experimentar que la señal generada dista mucho de ser precisa y adecuada.
  • Hardware: Cada servomotor estándar requiere de su propia señal precisa y su correspondiente cable. Eso hace que necesites un montón de cables y de salidas digitales en tu microcontrolador, además de los más que necesarios timers ya mencionados.


[...]