Nuevos diseños para el futuro

Encóder magnético vs potenciómetro

Llevo un tiempo dándole vueltas y desde el primer momento que me plantee LibreServo había un componente que me generaba dudas... el potenciómetro. En Selección de componentes para LibreServo ya lo comenté, pero recapitulemos los pros y contras de usar un potenciómetro.

Pros:

  • Es sencillo de montar y hacer la conversión sobre un servo estándar
  • Lo puedo leer con 12bits de resolución miles de veces por segundo consiguiendo una resolución muy alta
  • Es muy barato, apenas 1€

Contras:

  • Aunque permita girarse 360 grados, el potenciómetro "sólo" da un rango efectivo de 330 grados, que tampoco está mal para un servo
  • Es el componente más grande de LibreServo, aunque tampoco supone mayor problema (por ahora)

Por otro lado, están los encóders magnéticos, como el AS5045, que es el que se usa en los servomotores de Dynamixel mucho más caros. En los más "baratos" de Dynamixel usan el potenciómetro que usa LibreServo. Para mi, sus pros y contras son:

Pros:

  • Tienen un rango efectivo de 360 grados
  • Aunque su resolución es de 12bits, se le presupone que es más preciso y estable que el potenciómetro a misma resolución. Aunque no deja de ser efectivamente 12 bits igualmente

Contras:

  • Mucho más caro que el potenciómetro, unos 8€ buscando bien, la suma del resto de componentes es de 12.2€... así que 8€ extra sería subir el precio total de 13€ usando el potenciómetro a 20€, casi un 40% más
  • Ciertamente más engorroso su montaje, ya que hay que asegurar la alineación del imán y que no vibre durante su funcionamiento
  • Con el potenciómetro sólo necesitas una línea para leerlo (la salida analógica), pero con el encóder magnético necesitas como poco 2 líneas para su salida en cuadratura y otra extra para su salida en PWM que generan y así tener el valor absoluto de posición. 3 líneas en un diseño tan compacto es un grandísimo problema

Con lo que sumando todo, el potenciómetro es la mejor opción, ¿o era la mejor opción?. La cosa es que las diferentes versiones de LibreServo han ido llegando (por los diversos problemas que me he ido encontrando) y en cada revisión sopesaba de nuevo el uso de un encóder magnético o seguir con el potenciómetro. Y es aquí, en la última revisión, donde me he encontrado un modelo "disruptor". El AEAT-8800. No es de AMS como son el 90% de los que se usan a día de hoy, pero tiene dos características que cambian el juego:

  1. Es un encóder de 14 bits con 16.384 pasos por vuelta en cuadratura
  2. Usa un encapsulado QFN, que es más difícil de soldar, pero es mucho más compacto

Por contra, sigue costando lo mismo que el AMS, pero ¡con 14 bits de resolución!. El mayor problema es que por defecto el sensor viene en una configuración que funcionaría a mínima resolución (no sé quién es el ingeniero en Broadcom pero es como para estamparlo), eso sí, el sensor permite grabar una única vez la memoria con la configuración que se desee y así el sensor arranque con la configuración que se haya grabado previamente, para modificaciones futuras habría que hacerlo cada vez que se arranque por SPI. En nuestro caso, siempre querríamos que arranque a máxima resolución y con la salida de PWM activada. Con lo que habría que; o programado antes de soldarlo, o programarlo una vez soldado mediante unos pines especiales para ese fin en LibreServo con algún arduino o placa externa ya que el propio LibreServo no tiene pines libres para el SPI.

Seguiré pensando en el tema; Seguir con el potenciómetro, seguir con el potenciómetro y el encóder magnético a la vez o mudarme al completo al encóder magnético. Os mantendré informados.

Suscripción

Recibir un email cuando se publique un nuevo artículo.