control continuo de la posición del servo

5

Con un servo de rotación continua puedo controlar la dirección y la velocidad del servo, pero también necesito controlar la posición. Sé que no es posible directamente debido a la falta de control de retroalimentación en un servo continuo, pero encontré algunos consejos sobre cómo agregar un codificador para permitirle controlar la posición.

¿Es posible agregar un codificador a un servo continuo para controlar su posición, y si es así, cómo?

También, ¿puedo agregar una cosa para bloquear el movimiento del servo como la imagen de abajo o podría tener un efecto de parada de este tipo y dañar el servo?

    
pregunta jimmy cluter

2 respuestas

7

Sí, se puede agregar un codificador rotatorio a cualquier motor, incluido un servo que ha sido modificado para rotación continua, y se usa para el control de posición.

Sin embargo, esto es un poco contrario a la intuición, ya que los circuitos internos del servo ya proporcionan control de posición, utilizando el potenciómetro integrado como un sensor giratorio. Desconectar este mecanismo de posicionamiento y luego agregar un sensor o codificador de determinación de posición externo para lograr el mismo resultado parece innecesario.

Sea como fuere, el método habitual para obtener dicho control de posición con un codificador rotatorio implica unir el codificador rotatorio al eje del motor, luego llevar los valores codificados a un microcontrolador, usando un algoritmo PID en el microcontrolador, impulsado en función de esta información de posición, para controlar el voltaje y la polaridad del motor para detener el motor en la posición deseada.

En términos muy simplificados, si la posición detectada del servo, cortesía del codificador rotatorio, es en el sentido de las agujas del reloj hasta la posición deseada, el algoritmo PID giraría el motor en sentido contrario a las agujas del reloj hasta que las dos posiciones sean idénticas. Viceversa para la posición detectada en sentido contrario a las agujas del reloj hasta la posición deseada. Si cualquier par externo aleja el eje de la posición de descanso posteriormente, el codificador rotatorio alimenta datos angulares nuevos al código PID, que luego aplica la lógica descrita anteriormente.

Con respecto a la adición de una parada mecánica a un servomotor, este es un enfoque factible en general: el motor tomará su corriente de bloqueo, que es más alta que la corriente de operación normal. Sin embargo, debe verificar la hoja de datos del motor en cuestión para verificar cuánto tiempo puede soportar la corriente de bloqueo. No todos los motores pueden hacer frente a una parada constante.

La solución en tal caso puede ser una de las siguientes:

  • Use el código en el microcontrolador, junto con los circuitos de detección de corriente apropiados, para detectar cuándo la corriente del motor supera un umbral calibrado, es decir, el motor se detiene en la parada mecánica. En ese momento, deje de alimentar el motor. Esto es complejo y no trivial en el extremo del circuito debido a las pérdidas de potencia en la resistencia sensorial que utiliza. Para motores de corriente grande, se pueden usar sensores de corriente Hall o sensores no invasivos, lo que reduce la pérdida de potencia.
  • Use un interruptor de límite en lugar de un tope mecánico, y use la señal de cierre del interruptor como entrada digital a su microcontrolador, y use el código para detener la alimentación del motor cuando se activa el límite. Esta es la solución más simple y menos costosa, y también segura para el motor.
respondido por el Anindo Ghosh
0

Los únicos servos que "carecen" de movimiento o detección de posición son los servos de hobby baratos. Esos son los peores tipos de sistemas resistentes que se pueden usar. No solo leen los comentarios sobre un arco parcial (no 360 grados), sino que tampoco devuelven ningún comentario al comandante.

Puede comprar servos de mayor calidad con codificadores de posición real, sensores de corriente real, controladores PID para control de movimiento, comunicación serie RS-485 en ambos sentidos y mucho más. Esos servos pueden "ir a un punto" o "girar a una velocidad" o hacer cualquier otro tipo de movimiento que desee.

Por ejemplo, estoy poniendo a este tipo en mi proyecto actual:

enlace

Sigue siendo un servo estilo "hobby", pero bastante capaz y hasta ahora, real

    
respondido por el Jon Watte

Lea otras preguntas en las etiquetas