MATERIAL UTILIZADO
Para esta actividade utilizamos os seguintes materiais:
- Micro Servo Tower Pro 9G SG90
- Arduino Uno
- Varios cables de prototipado (jumpers) pico/pico
Para esta actividade utilizamos os seguintes materiais:
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 ~.
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:
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.
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.
A que eu utilizo é este tipo de sistema de enchufe con parafusos no que introducir os cables tipo jumper como ves na imaxe.
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);
}
}
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.
Licenciado baixo a Licenza Creative Commons Recoñecemento Non-comercial Compartir igual 4.0