¿Te has preguntado alguna vez por qué cuando tocas el botón de un ascensor, una caja se dirige hacia ti, para, abre la puerta y permite que subas?

Probablemente no te has parado a pensarlo. Simplemente lo usas y ya está.

Nosotros sí lo hemos pensado y queremos que nuestros jóvenes estudiantes de robótica se lo pregunten también.

En el fondo, se trata de un motor que mueve una caja y de un circuito de control que se encarga de definir el comportamiento del ascensor de acuerdo con las entradas que recibe. Por ejemplo, nuestra llamada es una entrada digital al sistema.

Vamos a simular este ascensor con arduino. Utilizaremos un servomotor y dos botones. Cuando pulsemos un botón, el ascensor subirá. Con el otro botón, bajará. Simularemos dos pisos, por lo que nos hará falta usar 2 sensores.

Siguiendo la línea de otras entradas del blog, vamos a usar elementos sencillos de encontrar y manipular, para no hacer demasiado sofisticado el montaje.

Estos son los materiales que vamos a utilizar:

  • 1 Servomotor
  • 2 sensores de IR (3 o más, para simular más pisos)
  • 1 placa compatible con arduino
  • 1 protoboard
  • 2 botones
  • 2 resistencias de 10 kΩ, para conexión pull-down de los botones (ver esquema)
  • cables suficientes M-M
  • 1 interruptor o final de carrera
  • 2 listones de madera 600x40x10
  • 2 listones de madera 120x40x10
  • una polea
  • 1 pieza de madera con argolla
  • hilo
  • 1 base de madera o metálica con peso suficiente para dar estabilidad al conjunto

Montaje mecánico del ascensor

Utilizaremos unos listones de madera, como se aprecia en la fotografía siguiente. Tenemos una base con cierto peso y en la parte de arriba instalamos nuestro motor. En el eje del motor hemos puesto una polea de plástico. En la base situamos la electrónica de control, nuestra placa de arduino. Finalmente, hemos improvisado un ascensor con una pequeña pieza de madera.

ascensor con arduino
Nuestro ascensor con arduino

Preparé este montaje para poder realizar otras prácticas, de ahí la presencia de otros elementos. Por ejemplo, está incorporado un péndulo, que utilizamos en su día para calcular el valor de la gravedad.

En la siguiente figura mostramos el conexionado de los distintos componentes de nuestro ascensor con arduino. Se ve a la izquierda el servomotor y a su derecha un interruptor «de emergencia» para cortar la alimentación. En la fotografía puede verse un final de carrera (con un rodillo rojo).

ascensor con arduino

El algoritmo

Hemos hecho para esta prueba un algoritmo muy simple y, por lo tanto, mejorable. Cuando pulse el botón 1 (de subida) el ascensor subirá hasta llegar al sensor (up), en cuanto llegue, se para.

Cuando pulsamos el otro botón, el ascensor bajará hasta la base, al activar el segundo detector (down). Podéis ver en la foto que hay otro sensor para una tercera parada (o piso) y un tercer botón. Están preparados para prácticas más sofisticadas.

ascensor con arduino

Cuando los detectores se activan, generan una entrada de nivel bajo en arduino (un 0), es decir, están permanentemente a nivel alto hasta que detectan un objeto. Hay que tener en cuenta:

1 «Memorizamos» el botón que hemos pulsado para que arduino sepa cuándo debe ir arriba o abajo (hemos llamado a las variables, b1 y b2)

2 Los sensores utilizados proporcionan un ‘0’ cuando se activan. Por eso, si «sensor up» (ver diagrama de flujo) es igual a ‘1’ el motor hace subir el ascensor. sensor up es el sensor situado en el piso de arriba, sensor down es el sensor situado en el piso de abajo

3 Un «pequeño defecto»: si subiendo pulsamos el botón de bajar, el ascensor cambiará de rumbo sin llegar al sensor de arriba. Una interesante tarea sería modificar algoritmo y programa para que nuestro ascensor complete el ciclo de subida o bajada, sin que los botones puedan interferir.

Un ascensor con arduino: el programa

El programa se observa en la siguiente figura. Está realizado con mblock:

ascensor con arduino

Un vídeo de cómo quedo el prototipo: