Creando a Batduino

Hoy vamos a demostrar, que con componentes sencillos ya vistos anteriormente, podemos hacer proyectos creativos al alcance de cualquiera para fechas especiales. Por ejemplo, hoy nuestro alumno César Marco os va a mostrar el simpático murciélago que hizo para el pasado Halloween, y que colocamos en el hall del colegio para dar un toque “maker” a un día tan divertido para nuestros alumnos.

El montaje será sencillo: nuestro murciélago sólo va a necesitar dos servos para mover sus dos alas, y unos leds para sus ojos que irán parpadeando a medida que vaya realizando estos movimientos. 

Recordamos que nuestros servos pueden hacer movimientos desde 0 hasta 180º. Nosotros no utilizaremos todo el movimiento sino que haremos que las alas se muevan desde 40º hasta 140º. Las dos alas se estarán moviendo al mismo tiempo.

La única dificultad reside en que el movimiento de un ala, será el contrario al que haga el otro ala. Es decir, ambas empezarán en una posición casi horizontal, y se acabarán encontrando casi en posición vertical, para luego volver a bajar. Por lo tanto, el ala izquierda empezará con el valor 40º e irá moviendo el servo grado a grado hasta llegar a la posición de 140º, y el ala derecha empezará con el valor 140º disminuyendo sus valores hasta la posición de 40º.

Para solucionar ésto dentro del mismo bucle FOR hay que encontrar una fórmula matemática sencilla que nos resuelva el problema. Lo comentaremos a continuación en el código.

La programación de los leds la hemos hecho muy sencilla. Los dos están conectados al mismo pin de Arduino y se encenderán cuando las alas estén arriba y se apagarán cuando estén abajo. Podéis hacer las variaciones que estiméis oportuno.

Ahí va este trocito de código:

 

#include <Servo.h>

Servo myservo1; // create servo object to control a servo
// twelve servo objects can be created on most boards

Servo myservo2; // create servo object to control a servo
// twelve servo objects can be created on most boards

#include <Servo.h>

Servo myservo1, myservo2;

int led = 11;

void setup()
{
myservo1.attach(9); // attaches the servo on pin 9 to the servo object
myservo2.attach(10); // attaches the servo on pin 10 to the servo object
pinMode(led, OUTPUT);
}

void loop()
{
digitalWrite(led,HIGH);
delay(100);

for(int pos = 40; pos <= 140; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo2.write(180-pos);
delay(15); // waits 15ms for the servo to reach the position
}

digitalWrite(led,LOW);
delay(100);

for(int pos = 140; pos >= 40; pos -= 1) // goes from 180 degrees to 0 degrees
{
myservo1.write(pos); // tell servo to go to position in variable 'pos'
myservo2.write(180-pos);
delay(15); // waits 15ms for the servo to reach the position
}
}

Como podéis observar, casi lo más complicado de este proyecto será hacer un murciélago atractivo.

Para finalizar os dejamos con César Marco que os va a contar todo su proceso para construir su murciélago para Halloween.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *