Saltar navegación

Conectando

MATERIAL UTILIZADO

Para esta actividade utilizamos os seguintes materiais:

  • Micro Servo Tower Pro 9G SG90 
  • Arduino Uno
  • Varios cables de prototipado (jumpers) pico/pico

CONECTANDO

Para controlar os servos o ideal é utilizar o que se coñece como PWM, ou o que é o mesmo, modulación por ancho de pulsos. Isto o que quere dicir é que, aínda que nos vexamos un movemento continuo realmente se move a intervalos moi rápidos que dan a sensación de continuidade, pero, ao mesmo tempo é o que nos permite obter a precisión que buscamos cando usamos este tipo de motores.

É importante ter en conta isto porque verás que non todos pines de saída de Arduino teñen este tipo de modulación. Para recoñecelos é moi doado porque o número que aparece na placa vai acompañado por un símbolo de ondulación ~.

Conexións Arduino pwm

Lembra que os sevos funcionan a 5V polo que temos que conectalo seguindo este esquema ROXO a 5V no Arduino, NEGRO ou MARRÓN a terra (GND) e o cable de control (LARANXA ou AMARELO) a un pin PWM, por exemplo o 9:

Conexións de servo a Arduino

Normalmente os cables dos servos veñen cunha conexión de entrada na que podemos conectar os jumpers que teñen pico e que irán ao noso Arduino. Este é o xeito máis sinxelo de facelo. Simplemente terás que conectar o jumper como aparece na foto.

Tipo de jumper para conexión

Existen moitas formas de conectar a fonte de alimentación dependendo de como sexa. O normal é que o conector teña unha forma cilíndrica e podemos buscar diferentes solucións.

Conector fonte de alimentadción

A que eu utilizo é este tipo de sistema de enchufe con parafusos no que introducir os cables tipo jumper como ves na imaxe.

Conector jumpers

CONTROLANDO DENDE ARDUINO

Se quixeras controlar o servo dende Arduino poderías facelo dende o IDE utilizando código, pero, como comentei antes o seu funcionamento non sería tan intuitivo e musical como o que imos facer dende Pure Data. Si que poderíamos chegar a facer algo similar, pero sería moito máis complexo.

Poderías utilizar este código se o cargas dende o Arduino IDE tal e como fixemos coa Standard Firmata, pero lembra que se o probas terás que voltar a cargar a Standard Frimata para seguir traballando con Pure Data:

    #include <Servo.h> // carga unha librería para traballar con servos

    Servo meuservo; // crea un obxecto servo e lle damos un nome para referirnos a el en diante

    int pos = 0; // posición na que se inicia o movemento do servo

    void setup() {
    meuservo.attach(9); // vincula el servo al pin digital 9
    } // lle decimos en que pin está conectado

    void loop() {
    //vai de 0 a 180 enviando pulsos cada 30 milisegundos
    for (pos = 0; pos <= 180; pos += 1)
    {
    meuservo.write(pos);
    delay(30);
    }

    //volta de 180 a 0, con pulsos de 10ms
    for (pos = 180; pos >= 0; pos -= 1)
    {
    meuservo.write(pos);
    delay(10);
    }
    }

Tes explicado como comentarios, o texto que vai logo da dobre liña inclinada (//) o que fai cada liña de código. Verás que o número de milisegundos que indiquemos fará que a ida e a volta sexan máis rápidas o mais lentas. Proba a experimentar un pouco cambiando os valores.
Non obstante, como xa comentei, existen moitos titoriais para poder traballar con Arduino e motores usando liñas de código, pero aquí imos centrarnos no manexo dende Pure Data polo que non prepararemos moito máis tempo neste tipo de programación.

USANDO VARIOS SERVOS

Poderías utilizar múltiples servos conectados a un so Arduino, pero neses caso terías que alimentalos non dende o pin da propia placa, se non que precisarías unha fonte de alimentación externa xa que o consumo será algo maior e esixe máis amperaxe do que prove Arduino. A amperaxe necesaria dependerá da cantidade e tipo de servos que utilices.

A terra da fonte, ademais de ir aos servos temos que conectala á terra do Arduino para que funcione correctamente.

Aquí tes un exemplo de como sería a conexión.

Esquema de varios Servos conectados a un Arduino