/dev/null:Tutorial:Trucar servos

De WikiRobotics
Revisión del 13:01 26 dic 2012 de Darkomen (Discusión | contribuciones) (Sustituir Potenciometro)

Saltar a: navegación, buscar
250px

Introducción

La mayoría de los servos comerciales, tienen impuesta una limitación hardware a 180 grados de giro. Debido a la sencillez de uso y potencia, en robótica se suelen usar este tipo de motores. En muchas ocasiones que sólo pueda girar 180º es una barrera a la hora de diseñar nuestros proyectos, por ello se suelen modificar los servos para que puedan girar 360º y funcionen como motores de tracción en los robots. Los servos usados aquí serán los Futaba S3003. Esta modificación mantiene la electrónica del motor, siendo posible el uso con arduino sin usar una etapa de potencia.

Funcionamiento de un servo

Extraido de wikipedia : 300px

Los servomotores hacen uso de la modulación por ancho de pulsos (PWM) para controlar la dirección o posición de los motores de corriente continua. La mayoría trabaja en la frecuencia de los cincuenta hercios, así las señales PWM tendrán un periodo de veinte milisegundos. La electrónica dentro del servomotor responderá al ancho de la señal modulada. Si los circuitos dentro del servomotor reciben una señal de entre 0,5 a 1,4 milisegundos, este se moverá en sentido horario; entre 1,6 a 2 milisegundos moverá el servomotor en sentido antihorario; 1,5 milisegundos representa un estado neutro para los servomotores estándares.

Es decir, el servo tiene un cable de control que recibe una señal de pulsos, si esa señal tiene un periodo de 1,5 el servo se quedará quieto en la posición 0, si el periodo es de [0.5 , 1.4] el servo se moverá en sentido horario y si el periodo está en el intervalo [1.6 , 2] el movimiento será antihorario.

La modificación que vamos a realiar consiste en , establecer la posición 0 del motor en los 90º del motor, de tal modo, que cuando al motor le mandemos a la posición 90, mediante programa, se estará quieto, si la posición es menor que 90 el motor girara en sentido antihorario, pero si la posición es mayor que 90, el motor girara en sentido horario

Material Necesario

Pulsa sobre la imagen para ampliarla
  • Servo Futaba S3003 o compatible.
  • Destornilladores, estrella y plano.
  • Soldador.
  • Estaño.
  • Chupón o desoldador.
  • Alicates.

Procedimiento

Abriendo servo

Lo primero que hacemos es abrir la tapa del servo. Desatornillamos los cuatro tornillos que tiene el servo en su parte inferior. Ahora ya podemos retirar las carcasas superior e inferior. Al quitar la tapa de arriba tener especial cuidado con los rodamientos. DevTornillos.jpg DevCarcasas.jpg

Sustituir Potenciometro

Lo siguiente será desoldar el potenciometro del circuito de control del servo. En los servos que yo tengo, el potenciometro está atornillado al chasis, por lo tanto hay que tener cuidado al intentar quitarlo. Para desoldar el potenciometro, primero calentamos la soldadura e inmediatamente después usamos el chupón para retirar el estaño líquido. Habrá que repetir esta operación hasta que el potenciometro salga.

DevPotenciometro.jpg DevPotenciometro2.jpg

Una vez que hemos desconectado el potenciometro de la placa de circuito impreso, es necesario desatornillar el potenciometro del chasis y volver a meterlo, pero esta vez, lo introduciremos hasta abajo del todo, para que el vástago del potenciómetro no asome por el chasis. Dev20120124 220823.jpg Dev20120124 220930.jpg


En este momento es necesario cargar en arduino el programa Calibración Servo[1] con este programa le estaremos mandando al servo que se situe en la posición 90º pero como le hemos quitado el potenciómetro, el servo nunca sabrá en qué posición está. Ahora es necesario mover el potenciómetro de forma manual hasta que el servo se pare. En este momento, el servo estará calibrado para que en la posición de 90º pare. Será necesario fijar el vástago para que no se mueva, con un poco de pegamento de contacto lo fijamos. Llegados a este punto si le mandamos un valor de 0 al motor, se moverá en sentido antihorario, y si le mandamos un valor de 180 el sentido de giro será horario.

Modificar engranaje

El servo tiene un engranaje con un tope físico, para que el potenciometro no sea forzado. Para nuestro trucaje debemos eliminar ese tope mecánico. Si nos fijamos en la imagen, es el rodamiento más a la derecha y el único que tiene un tope. Lo retiramos con cuidado del resto, acordandonos de como estaban posesionados, para luego volver a colocarlo. Una vez que tenemos el engranaje separado, con unos alicates procedemos a cortar el tope. Si no nos ha quedado muy bien el corte, podemos lijarlo para que quede bien. Una vez eliminado el tope, volvemos a montar los engranajes, colocamos la placa en su posición y procedemos a cerrar el servo.

Archivo:Rodamiento1.jpg
Engranaje con tope mecánico


Controlar movimiento por software

En este punto si queremos, podemos cargar el firmware de control de motor [2]

<youtube size=medium>PoAd8SHrgbs</youtube> <youtube size=medium>6E7TcQCU9NY</youtube>

Enlaces

  • Wikipedia [3]
  • Modificación eliminando la electrónica [4] y [5]
  • Arduino Playground [6]

Autor

Santiago López Pina [Categoria:/dev/null]