Lunes, Mayo 29, 2017

Motores paso a paso para niños

Bueno bueno… las vacaciones de los niños aún continúan y tú ya no puedes continuar viendo dibujosanimados durante días y días. Encima no tienen deberes y están con ganas de hacer todo tipo de maldades en casa y fuera de ella… ¡Qué estampa!

Así que me decido a ayudarte. Nada del otro mundo, pero si tienes unos motores paso a paso por casa tal vez les puedas dar un uso lúdico estos días. Bueno… eso si eres capaz de hacerlos andar. Porque las expectativas no son muy halagüeñas…

Teoría de motores paso a paso

Y es que lo de utilizar motores paso a paso en programas como S4A, parece que es una cosa extraña, de otro mundo. Cuando se decide mover un motor con este programa se hace referencia a un motor continuo, que tiene un sentido y utiliza un pin de control. Un pin (el 4, el 7 o el 8) que le dice cuándo encenderse y cuando pararse. Estas son las órdenes que encontrarás en S4A:

motorS4A

Como ves, es poca cosa. No se nombra número de pasos a mover ni nada similar. Lo más parecido es el movimiento en grados. Moverse un ángulo predeterminado como 180º o 90º. Pero nada que ver con un motor paso a paso. Es decir, podrías utilizar un motor continuo como uno paso a paso pero no se te permite utilizar un motor paso a paso directamente.

Yo, que a veces soy un inconformista con estas cosas decidí hacer una pancarta y movilizarme para que añadiesen los motores paso a paso a S4A. Pero cuando estaba pintando la pancarta me encontré con algo que parecía una solución. Así que dejé de lado mis sprays y me puse a probarlo.

La idea escondida tras un motor paso a paso es que hay cuatro imanes que van recibiendo energía alternativamente. Esta energía al pasar por los imanes, esto se activan y crean un campo magnético. En realidad son unas bobinas, unos hilos enrollados, que al recibir la energía generan un campo magnético. Pero dejémoslo en imanes porque parece más simple.

Entonces, para mover un paso lo que se hace es encender el primer imán y luego apagamos este y encendemos el segundo. Ha habido un movimiento.

También podría ser que en lugar de tener cuatro movimientos quisiésemos ocho (movimiento de medio paso). Esto se consigue encendiendo el primer imán, luego encendiendo el segundo, luego apagando el primero… es una rueda. Es lo que se aprecia en el gif siguiente:

Motores paso a paso en S4A

Una vez con esta teoría de motores, hay que ponerse a desarrollar un programa que haga esto para hacer funcionar el motor paso a paso. El motor paso a paso tiene unos pines de GND y 5 Voltios, que se conectan directamente a los pines GND y 5 Voltios de Arduino.

Y luego tiene 4 pines. Estos corresponden con los de los imanes (mejor dicho bobinas). Por lo que cada uno de ellos se conecta a un pin digital. Para utilizar S4A, estos pines deberán ser los pines 10, 11, 12 y 13. Que son los que están disponibles. Ahora se trata de ir activando cada uno de los pines según convenga.

Basta una simple búsqueda en Internet para encontrar esto. Simplemente el orden en el que se mueven las bobinas. Esto es fácil de implementar si explicas a los niños que el 1 es encendido y el 0 es apagado. Eso sí, es un trabajazo… pero los puedes tener entretenidos un rato. Entre orden y orden hay que dejar una espera, quedando algo así:

movimientosteppermotor

Si lo pruebas, verás que no funciona… es un pequeño fracaso porque en mi mente parecía una cosa que no se ha cumlplido en la realidad. La razón es porque los cambios entre órdenes son muy lentos. O lo que es lo mismo: las esperas son muy largas.

A pesar de intentar reducir la espera de 1 segundo a 0.5 o menos el problema es que parece que le programa no envia realmente esta reducción y sigue enviando el mínimo: 1 segundo. Entonces lo que se nota son movimientos muy muy pequeños cada mucho tiempo. No es funcional. Es un FRACASO ABSOLUTO.

Motores paso a paso en Arduino

Para solventar este fracaso poco se puede hacer… la plataforma no nos deja continuar así que hay que ir a la base de todo: el IDE de Arduino. Tal vez para los más pequeños esto no sea funcional pero con 11-12 años son capaces de dominarlo bastante bien. Al final se trata de guiarles en las pocas funciones que maneja el motor paso a paso.

Lo primero es ir a Archivo > Ejemplos > Stepper > stepper_OneRevolution. Una vez ahí, hay que fijarse en la primera función que aparece:

Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

Dónde myStepper es el nombre del motor, ya que se pueden conectar más de uno y es necesario poder diferenciarlos. Luego vienen los pasos que definen una vuelta, que los mantendremos. Y la parte importante, esos números de ahí coinciden con los pines a conectar y el orden a ser conectados. Deben de fijarse que en el pin 1 del motor hay que conectar el pin 8 de Arduino. Si no lo hacen así, no funcionará.

Luego, está el setup. Aquí es dónde se hacen las configuraciones iniciales, dónde se programa lo que se hace una vez al principio y no se hace nunca más.

  myStepper.setSpeed(60);

Esta función es la velocidad del motor. Este es un valor que deberán cambiar más tarde. Una vez dentro del loop, yo eliminaría las líneas 39 a 42. Vamos, que dentro del loop solamente me quedaría con esto:

void loop() {
  // step one revolution  in one direction:
  Serial.println("clockwise");
  myStepper.step(stepsPerRevolution);
  delay(500);
}

Aquí, la función step mueve el número de pasos que se le pida, por lo que cambiarán la variable stepsPerRevolution por un número de 1 a 200.

Esto ya se termina…

Llegados a este punto, yo les propondría cambiar los valores de velocidad, pasos a dar y el delay final que hay dentro del loop. Y que prueben cuál es la máxima velocidad (alrededor de 100) que pueden obtener y la mínima (1, ya que 0 es totalmente parado). Además, que jueguen con los delay y el número de pasos para hacer una barrera de un párking. Esto lo pueden hacer pegando un papel en el motor.

Otra opción es crear un tipo de melodía con varios motores. Pero esto ya es otro nivel… así que te lo dejo como deberes.

 

Fuente: rufianenlared

¿Quién está en línea?

Hay 49 invitados y ningún miembro en línea

Contador de Visitas

8834385
Hoy Hoy 594
Ayer Ayer 1045
Esta semana Esta semana 594
Este mes Este mes 28193
Total de Visitas Total de Visitas 8834385

Día con más
visitantes

05-24-2017 : 1133

Gracias por su visita