semaforo - imagen destacada
OJO

RECUERDA: Este post fue originalmente escrito usando la primera versión de Bitbloq. Si estás buscando el contenido y los programas del post original, podrás encontrarlos en la sección de descargas.

¿Estás harto de esperar a que se ponga verde el semáforo? ¿Qué pasaría si tú controlaras uno?

En este post podrás encontrar la respuesta, porque… ¡Vamos a construir nuestro propio semáforo! Y aún mejor, ¡vamos a ponerle una barrera!

Como todos sabemos, un semáforo es un tipo de señal de tráfico que permite o prohíbe el paso a vehículos o peatones según el color de la luz que emita. Sin ellos, los cruces de las calles serían un auténtico peligro.

Semaforo Animacion

Vamos a ello: nuestro semáforo va a tener dos luces y una barrera. ¿Qué tienes en tu electrónica que emite luces? ¿Qué componente es capaz de mover una barrera? ¡Correcto! Vamos a usar 2 LED y un miniservo, además, claro está, de nuestra placa controladora ZUM BT-328. En total vamos a necesitar:

  • Una cartulina
  • Un poco de celofán verde
  • Un poco de celofán rojo
  • Tijeras
  • Cinta adhesiva
  • Pegamento
  • 2x ZumBloq LED
  • 1x ZumBloq Miniservo
  • Cabezal angular del miniservo
  • Una placa controladora ZUM BT 328 compatible con Arduino
  • Un cable USB
Semáforo-Material-re




Montaje


Primer paso:

Diseña tu propio semáforo o imprime la plantilla que hemos diseñado y que puedes encontrar en la zona de descargas. Asegúrate de imprimirla sin escalar, con la opción a tamaño real. Después, recorta la plantilla por las líneas negras y las zonas indicadas.

Semáforo-Plantilla1

Una vez recortado todo, dobla el papel por todas las líneas discontinuas que encuentres. Los rectángulos blancos que se ven en la barrera y el poste, sirven para reforzar la estructura. Deben doblarse de forma que queden hacia dentro.

Segundo paso:

Es hora de poner los cristales a tu semáforo. Para ello, recorta un cuadrado de celofán de color rojo y pégalo con pegamento o cinta adhesiva por la parte interior del semáforo en el agujero de arriba. Haz lo mismo con un trocito de celofán verde en el agujero de abajo. Un consejo: como tu LED es azul, cuanto más celofán rojo pongas, más roja será la señal.

Foto pegado celofan re

Tercer paso:

Ahora tenemos que colocar los LED. Lo primero es identificar de qué color es cada LED. Para ello, crea un programa que encienda los dos LED tal y como se explica aquí. Tenemos que colocar los LED dentro del semáforo, pegados a la pared trasera tal y como se ve en la imagen. El LED verde detrás del celofán verde y el LED azul detrás del rojo. Puedes pintar el LED azul con rotulador rojo para darle un tono más rojizo a la luz (¡asegúrate que el rotulador no sea permanente!).

Foto pegado de LEDs re

Usa cinta adhesiva para pegarlos y revisa que los conectores no choquen con la pared. Puedes sacar los cables por un lateral del semáforo, o si quieres que quede perfecto, prueba a sacarlos por la base del semáforo, atravesando el poste y la base (lo sé, no es fácil, pero queda muy chulo).

Cuarto paso:

Une el poste a la caja principal ayudándote de las pestañas. Mira la imagen, te será de gran ayuda.

IMG_20150428_140217-TRAT800

Cierra la caja principal y termina el semáforo añadiendo la base. Usa las pestañas como antes.

Quinto paso:

Vamos con la barrera. Primero dobla y pega la cajita del miniservo e introdúcelo dentro. ¿Ves ese cuadradito que falta en la barrera? Tienes que pegar el cabezal del miniservo que viste en los materiales de forma que, la parte que se pone en el miniservo quede hacia fuera y, lo demás, dentro de la barrera. Fíjate en la imagen para saber si lo estás colocando todo bien.

Foto-barrera-TRAT800

¡Ya tienes tu semáforo! Eso sí, no le pongas aún la barrera al miniservo. Espérate a programarlo y cuando sepas que el semáforo está en verde, coloca la barrera en la posición correcta.

Sexto paso:

Conexiones: puedes realizar las conexiones ahora, o si lo prefieres, una vez programada la placa.

Conecciones-seamaforo

Programación


Es hora de programar tu semáforo. El programa completo es el siguiente:

Semaforo_def001fix

Como veis, es un programa relativamente corto, pero lo que vamos a aprender aquí son buenas prácticas de programación. Las buenas prácticas de programación son muy importantes puesto que ayudan a que cualquier persona que vea tu programa lo entienda mejor. Son formas de hacer las cosas más comprensibles para todos, según las normas que se han ido estableciendo en la comunidad de los programadores alrededor del planeta. En nuestro programa veremos dos de ellas:

  • Las variables globales: Hemos usado variables globales para escribir unos parámetros que definen el funcionamiento del programa. Como estas variables se declaran al principio del programa, podemos encontrarlas fácilmente y modificar el tiempo que queremos que esté el semáforo en verde, parpadeando y en rojo, solamente cambiando los valores de estas variables. Así no tendremos que buscar entre todo el código dónde están estos tiempos para modificarlos.
  • Las funciones: Cuanto más pequeño sea nuestro programa principal, más fácil será de leer. La forma de conseguir esto es hacer un buen uso de las funciones. Se debe entender qué hace una función solamente leyendo su nombre. De esta forma, leer el programa principal será pan comido.

Mira otra vez el programa y fíjate solo en el bucle principal (lo que no son funciones ni variables globales). ¿A que se lee fácil? Tan simple como encender luz verde, esperar tiempo de luz verde, parpadear, encender rojo y esperar tiempo de luz roja. Cualquiera en la comunidad bitbloq podría leerlo al instante.

La única función algo más compleja es la del parpadeo:

Semaforo_def002fix

En ella estamos creando un bucle contar para repetir cuatro veces un parpadeo del LED verde. El tiempo del bloque esperar está dividido entre 8 para hacer que parpadee cuatro veces, elijas el tiempo que elijas en la variable global tiempo_de_parpadeo. Y como ya estamos esperando aquí, no esperamos en el bucle principal.

¡A jugar!


Ahora sabemos programar un semáforo para que tarde en ponerse verde el tiempo que queramos, pero… ¿Os imagináis tener que controlar todos los semáforos de una ciudad? Seguid practicando y quizá algún día os parezca sencillo. Y para practicar, anímate a crear algo como esto:

  • Añade una ayuda sonora para las personas ciegas con tu zumbador
  • Añadirle la luz ambar y hacer un semáforo para vehículos
  • Crear un cruce con varios semáforos sincronizando correctamente los tiempos de forma que los vehículos no se choquen.

Recuerda hacer uso de las buenas prácticas de programación.
¡Hasta pronto!

Foto-Semaforo-completo-TRAT800