Inicio » Electronica » Arduino » [:es]Servo 360º rotación contínua[:en]360º Servo (continuous rotation)[:]

[:es]Servo 360º rotación contínua[:en]360º Servo (continuous rotation)[:]

[:es]

Aprende a utilizar un Servo 360º (de rotación continua). El robot DYOR utiliza los servos FS90R para controlar el movimiento de la ruedas. Principio de funcionamiento, diagramas de conexión y ejemplo de programación con Facilino y Arduino.

¿Qué es un Servo 360º?

Desde un punto de vista de control, un Servo 360º es diferente a un Servo (estándar), ya que este último permite controlar posición, mientras que el primero permite regular la velocidad de giro. Además, desde un punto de vista mecánico, el Servo 360º puede girar libremente como lo haría cualquier motor de corriente continua, mientras que un Servo su ángulo de giro está limitado. Por tanto, aunque por aspecto ambos servos se parecen mucho, internamente son completamente distintos. Ambos comparten el hecho de disponer de la electrónica necesaria para el control por PPM y también de la mecánica, a base de engranajes, que permite generar un par de fuerza mayor.

Los Servos 360º son también conocidos por Servos de Rotación Continua (CRS, por su siglas en inglés).

¿Cómo se controla un Servo 360º?

En realidad, un Servo 360º se controla de la misma manera que un Servo (estándar), ya que la señal eléctrica que se debe generar es idéntica. No obstante, conceptualmente no es lo mismo controlar una posición que especificar una velocidad de giro y por tanto se ha creado una instrucción específica para el Servo 360º que permite implementar esta función especificando el sentido de giro y el porcentaje de velocidad (0% a 100%) que queremos aplicar en el servo. Estas dos entradas se acabarán traduciendo a un valor entre (0º y 180º) como si estuviéramos controlando la posición de un Servo (estándar).

Control de velocidad Individual

En el siguiente ejemplo, se dispone de un Servo 360º conectado al pin 5 de Arduino, tal y como muestra el siguiente diagrama de conexión:

Aquí podéis descargar el fichero Fritzing:

El objetivo es controlar la velocidad del Servo 360º. Para ello, se ha preparado un código que realiza un barrido para los diferentes valores porcentuales de velocidad (desde 0% hasta 100%), haciendo un conjunto de movimientos en sentido horario, después parando durante 1000ms, posteriormente haciendo un conjunto de movimientos en sentido anti-horario y finalmente parando de nuevo. La secuencia se repite de forma que se debe observar cómo, cuando está en movimiento, el motor empieza girando lento y aumenta su velocidad conforme las iteraciones avanzan.

Aquí podéis descargar el fichero Facilino:

[:en]Learn how to use a 360º servo (continuous rotation). Classic DYOR robot uses FS90R servos to control the wheel movement. Working principle, connection diagram and programming example with Facilino y Arduino.

What is a 360º Servo?

From the control point of view a 360º servo is different from a standard Servo, since a standard servo allows you to control the axis position, while a continuous rotation servo allows you to set the velocity. In addition to this, mechanically they are different too, because a standard servo is limited, while a continuous rotation servo is not. Therefore, although they seem very alike, they are indeed different. They have the same connector and can be controlled through PPM. Internally, both of them have a DC motor and gears, but the continuous rotation servo (CRS) does not have a potentiometer.

How can I control a 360º Servo?

They are actually governed with the same signal, and the Arduino instruction to generate such signal is indeed the same. However, since it is not the same to control the speed or the position, Facilino includes specific instructions for each type of servo. In particular, Facilino instruction will allow you to specify rotation direction and speed (from 0% to 100%). These inputs will be actually translated into an value between 0º and 180º, because the original Arduino instruction expects a degree in order to generate the timing for the physical signal.

Individual speed control

Here we show an example with a 360º servo connected to pin 5 of Arduino Nano:

Here you can download Fritzing diagram:

The aim is to control the velocity (speed) of the servo, so we have prepared a simplistic code providing diferent speed values every 100ms, starting from 0% to 100%, progressively. After the maximum velocity is reached, the servo is stopped during 1sec and then repeats the progressive increasing speed loop, but with the opposite direction and stops again 1000ms.

Here you can download Facilino code:

[:]