Como modificar un servo RC de 9gr para rotación continua

Los servomotores de radiocontrol, o servos RC, son los motores más sencillos de mover con un arduino. Además son muy fáciles de cablear porque no se requiere de ningún tipo de tarjeta extra porque la etapa de potencia está incluida en el mismo servo. El problema es que estos servos solo giran 180º, aunque es bastante fácil modificarlos para que puedan rotar de manera indefinida.

¿Cómo funciona un servomotor de radio control?

Los servos RC son utilizados en los aviones, coches, barcos, helicópteros, etc y están diseñados para poder controlar su posición mediante una señal digital. Lo que se hace es un control mediante PWM. Si le enviamos un tren de pulsos de 1 ms, el servo entenderá que queremos que vaya a la posición 0º.

Señales PWM para controlar un servo RC

La consigna de posición del servo depende del ancho del pulso

La gran ventaja de estos sistemas es que trabajan en lazo cerrado, es decir que miden la posición en la que están e intentan corregir la desviación existente entre la consigna (señal que le llega en forma de tren de pulsos) y la posición real (la mide un potenciómetro solidario al eje de salida); y es la tarjeta de control la que lee la señal de consigna en PWM, la compara con la señal del potenciómetro y mueve un mini-motor de corriente continua.

Bucle de control de un servo RC

En los servos más baratos, el sistema de control es analógico y muy sencillo

En arduino existe una librería muy fácil de usar para controlar este tipo de motores, por lo que son ideales para hacer que las cosas se muevan. Sin embargo, en el mejor de los casos el servo gira 180º, por lo que sus aplicaciones son limitadas (no olvidarnos que son motores pensados para radio control).
Modificar-servo-RC-9gr-rotacion-continuaSe puede hackear un servo RC para que gire 360º en cualquier sentido, y hay muchos tutoriales en internet. Pero es complicado encontrar tutoriales de cómo hacerlo con un servo de 9gr (que son los más baratos y comunes en internet).

NOTA: Estos servos económicos no están pensados para un uso intensivo, por lo que la vida de sus engranajes plásticos podría ser de solo un par de horas. En la mayoría de los casos es más que suficiente, pero también existe la posibilidad de comprar servos de más calidad con engranajes metálicos.

 

¿En qué consiste esta modificación o hackeo del servo?

Para convertir un servo normal en uno con rotación continua básicamente hay que modificar dos cosas:

  1. Eliminar el tope mecánico en los engranajes
  2. Desacoplar el potenciómetro de la parte mecánica

Los servos de 9 gr que se pueden comprar en internet tienen un problema: el eje del potenciómetro es el mismo eje que el de salida. Por lo tanto no podemos eliminar mecánicamente el potenciómetro, y tendremos que falsear su señal o bien con otro potenciómetro o con dos resistencias. Nosotros hemos decidido cablear un nuevo potenciómetro externo como sustituto del anterior.

En estos servos tan pequeños y por motivos de espacio, es mejor sacar toda la electrónica fuera.

Paso 1: Desmontar el servomotor

Lo primero es quitar las pegatinas laterales y los cuatro tornillos traseros (hace falta un destornillador muy pequeño para ello). Quitando la tapa trasera accedemos a la tarjeta de control, el potenciómetro y el propio motor. Para acceder a los engranajes es necesario quitar la tapa delantera.

Paso 2: Alargar los cables del motor

Hay dos cables que unen el motor de corriente continua con la placa de control, y necesitamos que sean más largos para permitir que la placa esté fuera de la carcasa. Lo que tenemos que hacer es desoldar los cables existentes y soldar unos cables nuevos.

Es importante respetar dos cosas:

  • La polaridad, o si no el motor giraría al revés
  • Que los cables salgan hacia adentro para que no estorben a la hora de colocar la tapa

Paso 3: Soldar un nuevo potenciómetro

La idea es tener un potenciómetro externo que nos permita regular el punto central (a 90 grados) y que falsee esa posición de cara a la electrónica del servo.

Cortamos los cables que van al potenciómetro lo más cerca de los terminales de éste y le soldamos un nuevo potenciómetro.

Paso 4: Modificar el tren de engranajes

Desmontando la carcasa delantera podemos acceder a los engranajes del servomotor. Como se puede observar en la siguiente foto, el último engranaje tiene una pestaña de plástico que es la que impide que pueda rotar más de 180º. Engranajes del servomotor rc al descubierto Lo que tenemos que hacer es sacar la rueda y cortar esa pestaña con un alicate de corte. Con esta sencilla modificación, conseguiremos que el eje de salida pueda rotar indefinidamente en cualquiera de los dos sentidos.

Paso 5: Montar todo y probarlo

Llegó el momento de ensamblarlo todo otra vez, ponerle los tornillos y prepararse para probarlo.

A nivel conexionado eléctrico: el marrón iría a 0V o GND, el rojo al 5V y el naranja lo conectamos al pin D2 de un arduino.

Para empezar a ajustarlo, ponemos el potenciómetro en su posición media y cargamos el siguiente código:

// Test Servo Rotacion Continua
// by OGL http://www.TenerifeMakerSpace.com
// This example code is in the public domain.
#include <Servo.h>
Servo myservo;

void setup()
{
myservo.attach(2);
}

void loop()
{
myservo.write(90);
delay (5000);
myservo.write(80);
delay (2000);
myservo.write(95);
delay (2000);
}

Una vez encendido, lo primero que hará el servo es moverse a la posición central. Si vemos que se mueve, entonces es que el potenciómetro está mal ajustado y tendremos que girarlo lentamente hasta conseguir que no se mueva el motor; porque la placa cree que está en posición 90º. Tenemos 5 segundos para ello. Luego el servo empezará a girar durante 2 segundos hacia un lado y luego al contrario otros 2 segundos. Si quieres, puedes aumentar la velocidad de giro variando los valores de posición 80 y 95. Si en vez de 80 ponemos 50, el servo girará más rápido, y para el de 95 sería al contrario.

En teoría podemos regular la velocidad de movimiento de este servo sin más que aumentar la posición a la que queremos enviarlo: si estamos en 90º (lectura constante del potenciómentro) y lo mandamos a 180º, irá más rápido que si lo enviamos a 95º porque la diferencia de posición es mucho mayor y tiene que ir más rápido para llegar cuanto antes.

 

Anuncios

Un comentario en “Como modificar un servo RC de 9gr para rotación continua

  1. Pingback: Printbot con kiwibot | Kiwibot

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s