Bienvenido al blog del noroeste de Mesopotamia! Aquí hablamos de todo:
Política, Dios, ciencia y tecnología, fe, Linux, Latex, Fails,etc.
Siéntase libre de comentar los artículos!

lunes, 19 de septiembre de 2011

[How to] Realimentación de posición barata en un servo digital

Cuando se trata de un proyecto de robótica, entre otros aspectos, lo que más influye corresponde al diseño mecánico del mismo y del sistema de control. Ambos, en definitiva, determinan si el robot tendrá la estabilidad requerida, los costos asociados (no es lo mismo un robot móvil que uno bípedo por ejemplo), la complejidad del sistema robótico, etc. Respecto a la mecánica del robot no puedo decir mucho, puesto que depende de la imaginación de quien lo construye o del ingeniero a cargo del proyecto, quién tendrá que ver la relación de costos v/s prestaciones del robot para la aplicación que se requiera.
El segundo factor importante es el sistema de control. Éste permite que los actuadores del robot se muevan en forma controlada, de modo que se pueda alcanzar el valor deseado con seguridad y estabilidad. Si nos centramos por ejemplo, en un brazo robótico, en un robot cartesiano o en un robot bípedo, lo más seguro es que sea necesario sensar o determinar la posición de sus actuadores para que el sistema de control determine si es necesario moverlos. La pregunta es cómo.

Una forma barata de obtener la posición de un servomotor (actuador que está instalado en un robot de los mencionados), es decir, en qué lugar en términos de ángulo se encuentra el servo motor, es conectandose a un potenciómetro existente en el. El potenciómetro proporciona a la pequeña tarjeta de control el error que determina cuanto más debe girar el motor hasta detenerse en la posición deseada. Cuando el motor deja de girar, el potenciómetro proporciona de alguna manera la posición angular del servo.




El voltaje que entrega el potenciómetro puede ser procesado por un microcontrolador, convertido a una señal digital y posteriormente analizado para tomar las decisiones de control necesarias. 
Otra forma de obtener la realimentación de posición es utilizando un encoder, pero un encoder es grande y costoso de instalar. Una solución barata es utilizar el potenciómetro del servo, el que requiere la intervención del mismo (y suprimir toda garantía) y cuyo voltaje podría estar sometido a ruido. A continuación una imagen del despiece del servo.
DISFRUTENLO! Abrazo


Acceso al potenciómetro
 
Links:
Servomotores 

6 comentarios:

  1. existe en C una libreria muy interesante (#include ), si se define el nombre del servo (ej: Servo miservoprueba) ahora con la instrucción pos=miservoprueba.read() y la instrucción Serial.println(pos), con la variable previamente declarada se logra tomar lectura de la posición del servo. Esto siempre en la plataforma de arduino. Pruebas realizadas con un arduino uno y un servo GOTECK del 180 grados.

    ResponderEliminar
  2. Serial.println(pos) permite visualizarlo la posición en la consola ;)

    ResponderEliminar
  3. Pero dichas instrucciones son capaces de leer la posición del servo cuando no se ha movido y está recien energizado?

    Saludos y gracias por sus comentarios!

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. hare algunas pruebas y te cuento ;D

    ResponderEliminar

Ingresa un comentario