Motores paso a paso y servomotores

La placa ED1 permite controlar pequeños motores. Esto ofrece muchas posibilidades creativas, ya que, a partir de nuestros programas, seremos capaces de controlar el movimiento. Muchas instalaciones de arte interactivo funcionan de esta forma. En el kit ED1+Art encontraremos dos tipos de motores: el motor paso a paso y el servomotor.

Izquierda: motor paso a paso; derecha: servomotor

Los motores paso a paso (en inglés se llaman stepper motors) funcionan convirtiendo los impulsos eléctricos en desplazamientos angulares o pasos. Por lo tanto, su rotación se divide en un cierto número de pasos concretos y resultantes de la estructura del motor. Esta cualidad nos permite hacer movimientos muy precisos y controlados, ideales para utilizarlos para mover las ruedas de un robot, por ejemplo. Este tipo de motores, a mayor escala, son los que utilizan las impresoras 3D, ya que tienen mucha precisión para determinar coordenadas X, Y y Z, que es cómo funcionan estas máquinas.

Esquema del funcionamiento de un motor paso a paso
Fuente: Wikipedia.

En cambio, los servomotores tienen más fuerza y van bien para mover componentes con mayor peso, pero no son tan precisos. De hecho, el que se encuentra en el kit solo nos deja girar un ángulo de 180 grados, lo que nos ayuda a dejar su posición siempre en el mismo sitio pero nos limita para hacer una vuelta entera.

Pauta de conexión de los motores

1) Motor paso a paso

La placa ED1 incorpora un par de conectores dedicados que nos permiten conectar los motores paso a paso o steppers de forma sencilla y mediante una conexión Grove.

Conexión motor stepper a ED1 con cable Grove

2) Servomotores

En cuanto a los servomotores, habrá que conectarlos a cualquiera de los pines digitales D1-D4 de la siguiente forma:

  • Negro o marró: pin negativo (-)
  • Rojo: pin positivo (+)
  • Blanco o naranja: pin de señal (S)

Servomotor conectado al ED1 a través de un conector Dupont

Uso de los motores con MicroBlocks

1) Motor paso a paso:

Para utilizar los motores paso a paso hace falta usar la librería ED1 Stepper Motor.ubl que hay en la carpeta Other.

Empezaremos por hacer un pequeño código que simplemente mueva nuestro motor. Escribimos el siguiente código en MicroBlocks:

El bloque «mueve motor» es una función con dos parámetros. Con el primer parámetro, podemos designar el motor que queremos controlar, en este caso, el motor 1. El segundo parámetro nos permite establecer el ángulo de rotación del motor, en este caso, -90°. En la placa ED1, podemos conectar un total de dos motores. Para saber cuál es el número de motor donde tenemos conectado el stepper, tenemos que mirar el número que hay al lado de la conexión en la placa: M1 o M2.

Probaremos a modificar el valor del ángulo de rotación para ver cómo reacciona el motor.

Para cambiar el sentido, podemos utilizar otro bloque «mueve motor» donde, a través de un desplegable, podemos indicar si queremos mover el motor clockwise (sentido horario) o counter-clockwise (sentido antihorario):

Ahora podemos hacer un pequeño ejemplo que combina el sensor de luz con el motor. Este código mueve el servo cuando el sensor detecta poca luz. Para hacerlo, necesitaremos añadir la librería Basic Sensors.ubl. Podéis tapar el sensor de luz de la placa para hacer que se mueva:

2) Servos 180 grados:

En el caso de los servomotores deberemos utilizar la librería Servo.ubl.

Primero crearemos un pequeño código que moverá nuestro motor 90°:

Como indica el bloque, nuestro servo puede recibir valores de grados entre 90 y -90; esto hará una rotación de 180° y el 0 es el valor del medio. Probaremos a modificar los valores para ver cómo reacciona el motor. No podemos pasar de los valores 90 o -90, ya que el motor no funcionará correctamente.

Ahora os proponemos combinar el movimiento del servo con los sensores de la placa. Este ejemplo de código hará mover un servo de 180° de un lado a otro mediante un par de botones de dirección de la placa:

This site is registered on wpml.org as a development site.