Objetivos

 

  • Conocer los servomotores o servos.
  • Ver en qué se diferencian de un motor normal.
  • Aprender a manejarlos con un potenciómetro y con un joystick.
  •  

    Material requerido.

     

      Tienda España
    Imagen de Arduino UNO

    Arduino Uno o compatible y con el firmware para S4A cargado.


    conexiones
     Una Protoboard mas  cables.
    componente Un Joystick.
    potenciómetro keyes Un potenciómetro de 10KΩ.
    Componente Un servo con sus horns, esas pequeñas piezas de plástico que se ponen en el eje.

    Objetivos

     

    QUÉ ES UN SERVOMOTOR

     

    Los motores de corriente continua que hemos manejado hasta ahora giran continuamente a una velocidad determinada, que depende de una señal de control.

    Un servomotor, o simplemente servo, no gira de forma continua, sino que lo que hacemos es controlar su posición.

    Con esta capacidad de moverse un ángulo concreto y mantenerse ahí  podemos crear toda clase de movimientos de una forma controlada; por ejemplo en brazos robóticos, coches de radiocontrol o timones de barcos y aviones.

    Normalmente el ángulo de giro de un servo no es de 360º, sino de 180º (aunque también los hay) y son de corriente continua.

    Tienen 3 hilos de conexión, 5V (rojo), GND (negro o marrón) y Control (amarillo o blanco). La señal de control se la daremos conectándolo a una de las salidas analógicas de nuestra placa Arduino.

    SERVO Y POTENCIÓMETRO

     

    En este apartado vamos a controlar el movimiento del servo utilizando un potenciómetro, de la misma forma que lo hemos utilizado en otras sesiones.

    Normalmente el servo viene con diferentes hélices que podemos acoplarle en función del objeto con el que vaya a interactuar o de lo que queramos conseguir. Lo primero que tenemos que hacer es atornillar cualquiera de las hélices que tengamos en el eje de giro para poder observar bien el giro.

    S4A tiene tres pines reservados para ayudarnos a manejar servos. Son los pines 4, 7 y 8. Teniendo eso en cuenta, el esquema eléctrico y el montaje en la protoboard son muy sencillos:

    diagrama eléctrico servo potenciómetro

    protoboard servo potenciómetro

    Para controlar esos pines especiales usaremos un nuevo tipo de bloques de la categoría “Movimiento” llamados “motor … ángulo …”. Este bloque posiciona el servo en el ángulo que le indiquemos. Podéis probarlo de manera muy sencilla con este pequeño programa:

    angulo servo scratch

  • Si variamos el ángulo veremos como el servo se mueve hasta alcanzar la nueva posición (recordad que el valor tiene que estar entre 0 y 180º).
  •  

    Como lo que queremos en que el ángulo varíe en función de la posición del potenciómetro tenemos que modificar un poco el programa:

    scratch servo entrada analógica

    Aquí tendremos el mismo problema que ya nos ha surgido más veces. Como la entrada analógica tiene un rango de 0 a 1023 y el ángulo de 0 a 180º, la mayoría del movimiento del potenciómetro no tendrá ningún efecto.

    Para aprovechar todo el giro del potenciómetro vamos a adaptar los valores de la entrada analógica a los grados que puede girar el servo de la siguiente forma:

    relacion entrada analógica ángulo servo

    De esta forma cuando en la entrada conectada al potenciómetro tengamos 0 el ángulo será 0º y cuando esté en el máximo 1023 será 180º, y podremos aprovechar todo el rango de movimiento del potenciómetro.

    scratch control angulo servo

    Podéis descargar el programa completo aquí: servo-pot. 

    SERVO Y JOYSTICK

     

    Lo que vamos a hacer con el joystick es sumar o restar grados al ángulo de la posición del servo en vez de calcular directamente el ángulo. En cristiano, al mover el joystick el servo girará en una u otra dirección y mantendrá esa posición cuando lo soltemos.

    El esquema eléctrico y el montaje en la protoboard son muy sencillos, simplemente cambiaremos el potenciómetro por el josytick (ya hemos visto como conectarlo en las sesiones 19 y 20). Yo voy a utilizar el eje X del joystick.

    Lo primero que vamos a hacer es crear una variable “ángulo” y fijar la posición inicial del servo a, por ejemplo, 90º.

     

    setup servo joystick scratch

    De la misma forma que hicimos en la sesión 19, crearemos dos estructuras condicionales para saber si el joystick se ha movido hacia un lado o hacia el otro, y sumaremos o restaremos al ángulo anterior un número de grados (mayor cuanto más rápido queramos que se mueva).

    controlar servo con joystick scratch

    Podéis descargar el programa completo aquí: Servo Joystick.

     

    ¡Accede al contenido!

    Si queréis seguir jugando con el servo, podéis tratar de hacer que el movimiento del joystick sea analógico como hemos hecho en las sesiones anteriores, o que al apretar el botón del joystick el servo se mueva a una posición determinada. 

    RESUMEN DE LA SESIÓN

     

    En esta sesión hemos aprendido varias cosas importantes:

  • Hemos aprendido qué son y cómo funcionan los servos.
  • Sabemos controlarlos con un potenciómetro o un joystick, y podremos usar uno u otro en función de lo que necesitemos para nuestros proyectos.
  • Hemos adaptado una entrada analógica para transformarla en una salida valor que vaya de 0 a 180º.
  • <   

    Deja una respuesta