1. Semáforos

¿Qué se te viene a la cabeza cuando piensas en la comunicación? ¿Cómo se comunican comúnmente las personas entre sí?

Ciertamente, la comunicación implica hablar y escuchar, pero también hay otras formas de comunicación. Por ejemplo, las luces y los LEDs a menudo se usan como indicadores visuales en las máquinas para comunicar el estado de la máquina. Los vehículos tienen luces que comunican poco combustible, baja presión de aceite, batería baja y otros problemas del motor. Incluso los semáforos nos indican cuando debemos cruzar una intersección. Todos estos ejemplos, y muchos otros requieren un control preciso del flujo de electricidad en circuito. Este control a menudo lo lleva a cabo un programa de computadora que le dice a las luces cuándo encenderlas o apagarlas.

En esta lección, investigarás cómo los circuitos son operados por microcontroladores como el de tu placa Arduino. Más específicamente, explorarás cómo estos dispositivos pueden usarse como entradas para recopilar información o salidas para realizar una tarea. También explorarás el entorno de programación de Arduino con Bitbloq y cómo se comunica con la placa Arduino. Después de construir un circuito LED, escribirás programas para controlar los LEDs en el circuito, incluido un programa para un semáforo.

HISTORIA DEL SEMÁFORO

A los inventores, programadores e ingenieros les encanta cuando llega la inspiración. Pero incluso las ideas brillantes rara vez salen bien a la primera. El equipo de Thomas Edison desarrolló más de 1.000 prototipos de la bombilla antes de que su idea de un filamento en una caja de vidrio fuera realmente exitosa. La complicaciones y descuidos deben ser resueltos antes de que una idea funcione según lo previsto. Estos defectos de diseño se llaman bugs (errores).

Un ejemplo trágico de un bug (error) se puede encontrar en el historial del semáforo.

Incluso en la era del caballo y la carroza, era necesario dirigir el tráfico. Un gerente ferroviario británico llamado John Peake Knight creó el semáforo en 1868. A diferencia de los semáforos modernos, el dispositivo fue operado por un oficial de policía que cambiaba el semáforo manualmente. Usó luces de gas para iluminar las palabras en la señalización. Lamentablemente, solo unas pocas semanas después de ser instalado el dispositivo, una fuga de gas causó una explosión que hirió gravemente al oficial.

Durante décadas, los dispositivos fueron considerados demasiado peligrosos para usarse. Pero la idea era demasiado prometedora para ser olvidada y los inventores posteriores crearon variaciones.

En 1910, un estadounidense llamado Ernest Sirrine diseñó el primer semáforo controlado automáticamente. Dos letreros que dicen stop (parar) y proceed (proceder) se mostraban alternativamente. Dos años más tarde, un diseño de Lester Farnsworth Wire reemplazó los letreros por luces rojas y verdes, acercándose a nuestro semáforo moderno. Numerosos inventores crearon variaciones en este concepto. Esto incluyó la adición de una luz amarilla de "precaución" para evitar accidentes causados por el cambio repentino de verde a rojo.

Se han realizado innumerables otras mejoras en los diseños de los semáforos a lo largo de los años. Trabajar a través de bugs de diseño a menudo puede ser una gran fuente de innovación.

Pero, ¿de dónde vino el término bug en primer lugar? Según sus cartas, parece que proviene de Thomas Edison. Sin embargo, una historia más colorida que rodea el término se centra en la Contralmirante de la Marina Grace Hopper.

Grace Hopper se alistó en la Marina durante la Segunda Guerra Mundial. En su carrera, se convirtió en una de las primeras informáticas del mundo. Trabajó en una computadora electromecánica temprana llamada Mark I, calculando información para operaciones militares. Después de la guerra, ella también trabajó en el sucesor de la computadora, Mark II.

Un día, un mal funcionamiento en Mark II hizo que cesara la operación. El equipo de Hopper investigó y encontró una polilla en uno de los relés eléctricos. El equipo grabó la polilla en una página de su cuaderno de actividades de ingenieros, donde todavía se puede ver en el Museo Nacional Smithsonian de Historia Americana. Este evento fue una depuración literal.

Hopper fue una de las primeras científicas en prever que era posible crear un lenguaje de programación usando palabras en inglés. En consecuencia, desarrolló el primer compilador, un sistema que convirtió el lenguaje humano en lenguaje máquina. Y cuando se creó el lenguaje informático COBOL en 1959, Hopper era asesora. Murió en 1992, pero los informáticos todavía se refieren a ella cariñosamente por sus apodos "Amazing Grace" y "Grandma COBOL".

El funcionamiento de un semáforo antiguo dependía de un policía. Foto: Olle Karlsson via Wikimedia Commons

A. SEMÁFORO BÁSICO

En esta primera parte, conectarás un circuito básico de semáforo con tres LEDs. Después de construir el circuito, escribirás un programa y lo cargarás en la placa Arduino para controlar el semáforo.

Montaje del circuito

  1. Observa el esquema del circuito.

  2. Conecta cada led a un pin de salida de arduino, por ejemplo el 13, 12 y 11.

  3. Conecta una resistencia en serie en el cátodo de cada uno de los leds y cierra el circuito conectando la resistencia al negativo.

  4. Conecta un cable de negativo de la placa de montaje al pin GND de Arduino.

Ahora tienes un circuito en paralelo completo con tres ramas, una para color de LED. La potencia de cada rama será controlada por los pines digitales en la placa Arduino. Estos pines actuarán como interruptores que activan y desactivan el flujo de corriente.

Guía de programación

  1. En la pestaña hardware añade los dispositivos que vas a emplear.

  2. Ponles un nombre que te permita identificar cada led como puedes ver en la figura.

  3. En la pestaña software introduce los bloques para encender los leds y que se apaguen y se enciendan cada segundo.

  4. Carga el programa en la placa y prueba su funcionamiento

Pestaña Hardware de Bitbloq

Pestaña Software. Bucle principal.

ACTIVIDADES

A1

Carga el programa a la placa Arduino y escribe qué ha pasado. ¿Era lo que pensabas que iba a ocurrir?

Si no coincide con lo que pensabas, indica qué ha cambiado y por qué crees que ha sido diferente.

A2

Considera lo que debe suceder para que tu circuito funcione como un semáforo. Las siguientes preguntas pueden ayudarte a escribir tu código:

  1. ¿Deberían encenderse dos o más luces al mismo tiempo?

  2. ¿Qué luz debería encenderse primero, segundo y tercero?

  3. ¿Qué deben hacer las otras luces cuando se encienda una luz?

  4. ¿Qué debería suceder después de que se apague la tercera luz?

  5. ¿Cuánto tiempo debe permanecer encendida cada luz?

A3

Programa tus LEDs para que actúen como un semáforo para controlar el flujo de tráfico en una intersección concurrida. Carga el programa en la placa y comprueba el comportamiento de tu semáforo. ¿Se comporta como te esperabas?

Añade un captura de pantalla de la pestaña software de Bitbloq en esta actividad y un vídeo 🎥 del funcionamiento. Se recomienda pasarlo a GIF

B. SEMÁFORO CON BOTÓN PEATONAL

En muchas intersecciones concurridas, los semáforos tienen botones peatonales que las personas que caminan por la acera pueden presionar. Esto permite al semáforo saber que las personas, y no sólo los coches, deben cruzar la calle. En esta actividad, añadirás un botón peatonal a tu circuito. Luego, programarás el semáforo para que funcione de manera diferente cuando se presione el botón.

Pulsadores en Arduino

¿Recuerdas como funcionan los pulsadores que estamos utilizando? Si tienes dudas, refresca tu memoria en la lección de pulsadores.

Para evitar conexión "al aire" que pueden introducir valores erróneos en los pines digitales tenemos que conectar una resistencia de 10K entre el pin digital que queremos activiar y GND. Se conocer como conexión pull-down.

La resistencia de Pull-Down fuerza nivel BAJO (0V) el valor en el pin digital cuando el pulsador está abierto. La resistencia de pull-down tendrá un valor entre 1KΩ y 10KΩ

Cuando el botón está pulsado y el circuito se cierra, el PIN se pone a ALTO (5V) , y la intensidad que circula se ve limitada por esta resistencia.

Montaje del circuito

  1. Observa el esquema del circuito.

  2. Añade un pulsador en la placa y conecta un terminal a 5V y el otro al pin 7.

  3. Conecta una resistencia de 10K entre el el terminal del pulsador que está conectado al pin 7 y ND.

  4. Conecta un cable de negativo de la placa de montaje al pin GND de Arduino.

Ahora tienes un circuito en paralelo completo con tres ramas, una para color de LED. La potencia de cada rama será controlada por los pines digitales en la placa Arduino. Estos pines actuarán como interruptores que activan y desactivan el flujo de corriente.

Guía de programación

Creamos una copia del proyecto anterior en Bitbloq.

En la pestaña Hardware añadiremos el botón que vamos a emplear para dar paso a los peatones en el semáforo.

Pero....antes de empezar a programar, tenemos que conocer las sentencias condicionales. Supone plantear una pregunta para actuar de una forma u otra según la respuesta.

Por ejemplo: si llueve, abriré el paraguas. Si por el contrario no llueve, lo cerraré.

Si hace frío, me pondré el abrigo. Si hace calor, me lo quitaré.

Si es de noche, encenderé una luz. Si por el contrario es de día, la apagaré.

Recuerda que tu placa controladora nunca hace nada que no le hayas dicho. Hay que programar todo lo que quieras que haga.

Si solo programas que el LED se encienda, y no le dices cuando debe apagarse, el LED nunca se apagará.

Vamos a programar el semáforo para que cambie únicamente a verde cuando un peatón solicite cruzar la calle.

Habitualmente el semáforo estará en verde y por tanto mantendrá los leds amarillo y verde apagados.

En la categoría de bloques Control encontrarás el bloque Si…ejecutar.

Cuando se detecte que el botón está pulsado, se pone en marcha el paso a peatones:

  • Esperamos 1 segundo para empezar el cambio

  • Apagamos el led verde

  • Encendemos el amarillo

  • Esperamos 1 segundo

  • Apagamos el led amarillo

  • Encendemos el led verde

  • Esperamos 5 segundos para que pueda pasar el peatón (podríamos poner más tiempo pero para hacer pruebas es suficiente)

Carga el programa en la placa y prueba su funcionamiento.

ACTIVIDADES

B1

Escribe qué ha pasado. ¿Era lo que pensabas que iba a ocurrir?

Si no coincide con lo que pensabas, indica qué ha cambiado y por qué crees que ha sido diferente.

B2

Añade ahora el semáforo luminoso para los peatones. Tendrás que añadir otro led verde y uno rojo y programar su funcionamiento.

Añade un captura de pantalla de la pestaña software de Bitbloq en esta actividad

B3

¿Cómo podríamos hacer más accesible el semáforo para personas invidentes? ¿Se te ocurre cómo podríamos añadir esta funcionalidad al circuito?

Añade un captura de pantalla de la pestaña software de Bitbloq en esta actividad

Añade un captura de pantalla de la pestaña software de Bitbloq de cada actividad y un vídeo 🎥 del funcionamiento de la última actividad del reto que hayas conseguido realizar. Se recomienda pasarlo a GIF antes de insertarlo en el cuaderno.