sábado, 14 de julio de 2007

Servo Hacking

Para el desplazamiento de los robots se utilizarán servomotores marca Futaba. La referencia a utilizar es la S3010, los cuales proveen un torque bastante alto, con lo cual será posible el desplazamiento de los robots y está calculado además para soportar peso adicional agregado, cuando deban realizarse expansiones a la plataforma, como nuevos sensores o actuadores.
Para utilizar estos motores se han realizado ciertas modificaciones, tomadas en su mayoría de la red. Aquí se ha realizado una recopilación de todas ellas, de tal forma que sea posible modificar el motor, para controlar su velocidad a partir de señales PWM, y agregarle encoders, de tal manera que pueda establecerse su velocidad.
Los servomotores Futaba son utilizados en general para aplicaciones de posición, más que de giro y velocidad. Realizando una simple modifiación es posible dejarlos habilitados para realizar giros de 360º, desactivando además el sistema de control de posición, de tal manera el motor gire a una velocidad constante, según la señal aplicada, y no en relación a la posición.


Las siguientes imágenes ilustran el procedimiento a seguir:



Este es el motor Futaba antes de haberle realizado algún cambio. En la parte inferior el motor está asegurado con cuatro tornillos. Estos deben ser retirados para poder realizar las modificaciones. Se debe también desatornillar la rueda de giro para retirar la tapa superior del motor. Al ser retirada, se puede observar el engranaje, como lo muestra la siguiente figura:


Se retiran con cuidado los engranajes para poder retirar la plaqueta:



Se debe empujar la cabeza del potenciometro hacia abajo, para poder sacar con facilidad el sistema electrónico del motor:



Ya con las piezas retiradas, se dispone a cortar la cuña de uno de los piñones, que impide que estos giren más de 180º. Con un bisturí resulta sencilla la modificación:


Se debe retirar también el potenciometro que funciona como lazo de realimentación del sistema de control de posición. En su lugar se colocará un par de resistencias iguales en serie, a modo de divisor de voltaje. Esta modificación no es necesaria si se desea retirar el circuito de control del motor.


En caso de que se desee eliminar el circuito de control del motor, se deben seguir los siguientes pasos:


Primero que todo un motor futaba está compuesto generalmente por los siguientes componentes:



Como se puede observar, existen dos circuitos, el BAL 6686 y el BA6688. Es éste último el encargado de las operaciones de control sobre el motor. El otro circuito funciona como puente H, pero soporta únicamente hasta 6V, lo cual puede ser una limitante en cuanto a velocidad del motor.

La anterior imagen ilustra la configuración de pines del puente H incluido en los motores. La siguiente imagen muestra como están conectados los dos circuitos integrados:


Al retirar el CI BA6688 se pueden utilizar las pistas vacías para cablear la señal de control (blanca) a la entrada on1 (Fwd) del BAL6686. Además se agrega una línea adicional para permitir el giro en sentido contrario. Las modificaciones se muestran a continuación:



Con estas dos líneas es posible entonces controlar tanto la velocidad del motor a través de pulsos PWM, como su sentido de giro, enviando la señal por uno u otro cable.

En caso de que se desee modificar el servo de tal forma que se utilice un puente H externo, que soporte una mayor corriente, será necesario conectar la alimentación directamente a las terminales del motor, que se muestran a continuación:

No será necesaria ninguna otra modificación, sin embargo se recomienda retirar los dos Cis de la plaqueta.

Encoder para servomotor Futaba

Para el montaje de los encoders se utilizará el engranaje que incluye el servo. Se toma uno de los piñones del mismo, y se pega una tira de aluminio, tal como se muestra a continuación:


A esta tira se le pintan o se le pegan en papel, franjas de color negro, de tal forma que el sensor a utilizar no responda frente a la franja negra, más si a la de aluminio. El piñón debe quedar de la siguiente forma:


Se arma nuevamente el motor, y se toma por el lado donde se encuentra el piñón; es ahí donde se colocará el sensor:


Se cablea el sensor, luego de ser colocado:


Y con esto queda finalmente dispuesto el encoder, listo para ser alimentado y puesto en funcionamiento.


Este sensor provee de aproximadamente 45 pulsos por vuelta. Es posible colocar el encoder en otro piñón que presenta mas revoluciones que el utilizado aqui, generando asi unos 150 pulsos por revolucion. Proximamente se mostrará el montaje utilizado.

Paginas consultadas:

http://www.seattlerobotics.org/encoder/200110/servohack.htm
http://www.seattlerobotics.org/encoder/200009/S3003C.html
http://www.disam.upm.es/cybertech/Docs/General/TrucajeServo.pdf
http://www.seattlerobotics.org/guide/servos.html