VIDEO 13: Periféricos: Leds externos y zumbadores - Obijuan/digital-electronics-with-open-FPGAs-tutorial GitHub Wiki
Vídeo
Haz click en la imagen para ver el vídeo en Youtube
Descripción
Conectaremos a nuestros circuitos LEDs externos a los pines de 5v, para incorporarlos a nuestros paneles. También añadiremos zumbadores, con los que podremos crear sonidos
¡Icestudio 0.3.2-Beta!
Con motivo de nuestra asistencia a la FOSDEM 2018, hemos liberado una nueva versión de Icestudio: 0.3.2-beta. Por favor, actualizarse a esa versión. La colección empleada en este tutorial está hecha con esta versión, y en las anteriores no se verá correctamente
Colección
Academia-Jedi-HW-13.zip: Colección para este tutorial. Descargar e instalar
¡Importante! Usar una versión de Icestudio mayor o igual a la 0.3.2-beta
Contenido
- Introducción
- LEDs externos
- Ejemplo 1: Sirena Luminosa con 2 LEDs
- Zumbador pasivo
- Ejemplo 2: Generando un tono de 1Khz
- Ejemplo 3: Timbre
- Ejemplo 4: Sirena con dos zumbadores
- Ejercicios propuestos (18 Bitpoints)
- Ejercicios entregados
- Autor
- Licencia
- Enlaces
- Preguntas frecuentes
Introducción
Hay muchos periféricos, tanto de entrada como de salida, que todavía no hemos visto, y que nos permitirán hacer muchísimas cosaas, sobre todo relacionadas con la robótica. Muchos los iremos viendo en estos tutoriales y en las siguientes temporadas de tutoriales. También es posible conectar periféricos analógicos, como potenciómetros o sensores de luz, cuya señal se digitaliza (se convierte en números) usando un conversor analógico-digital. En la Placa Icezum Alhambra hay un conversor A/D de 4 canales
En esta imagen se listan los periféricos. De todos ellos ya hemos visto 3: los pulsadores, los interruptres y los servos
En este capítulo nos centraremos en los LEDs externos y en los zumbadores
LEDs externos
En el tutorial 8 ya vimos cómo conectar LEDs externos a los pines de 3.3v de la icezum Alhambra. En este veremos cómo hacerlo a los pines de 5v, para conectar directamente los LEDs como periféricos de salida
Hay dos formas de conexión: Directa y a través de transistor
Conexión directa
El esquema para conectar un LED directamente a los pines de 5v es el siguiente:
Los pines de 5v están conectados a los de la FPGA a través de unos conversores de nivel (3.3v <--> 5v). El valor de la resistencia R que usamos, determina la configuración del conversor: entrada o salida. Para conectar un LED el pin debe ser de salida y para ello hay que colocar una resistencia mayor o igual a 2K2.
El inconveniente de esto es que el LED se iluminará poco porque la resistencia es grande y deja pasar poca corriente. Para que el LED luzca con más intensidad hay dos opciones: utilizar un LED de alta luminosidad o bien realizar la conexión a través de un transistor
Conexión a través de un transistor
El esquema de conexión es el siguiente
Al enviarse un 1 por el pin de la FPGA, se activa el transitor, que funciona como un interruptor, conectando la resistencia a GND y cerrando el circuito. Ahora por el LED circuilará la suficiente corriente para hacer que luzca normalmente
Este es un esquema de montaje en Fritzzing. Se ha usado el transistor NPN BC547B, con encapsulado TO-92, R1 es de 10K y R2 de 220 ohms
y este es el montaje real:
NOTA: El patillaje de los transitores cambia según el modelo usado, en este ejemplo estoy usando el transistor BC547B que tiene la base en la pata central, sin embargo hay otros que la tienen en un lateral https://github.com/Obijuan/Entregas-Tutorial-Electronica-Digital-FPGAs/raw/master/Tutorial-13/fgcoca/Ejercicio-3/Ejercicio13_3%20%E2%94%80%20P.png
PCBPrint: Alhambra-LED
Una opción muy cómoda es usar un PCBprint con LED. Esta es la Alhambra LED
Se conecta directamente a los conectores de 5v a través de un cable de tres hilos, y las podemos usar en nuestros paneles
NOTA: El patillaje de los transitores cambia según el modelo. En la Alhambra-LED se usa el BC635, que tiene la base en una de las patas laterales
Ejemplo 1: Sirena luminosa con 2 LEDs
Como ejemplo vamos a conectar dos LEDs externos a los pines de 5v D13 y D12, y los haremos parpadear alternativamente, igual que hicimos en el tutorial 8 con los leds conectados a los pines de 3.3v
Primero construimos nuestro panel con los dos LEDS
El circuito ya lo conocemos. Esta vez hemos añadido un título usando el nuevo renderizado del Mark down que incorpora Icestudio 0.3.2
Cargamos el circuito en la placa para probarlo
Para cambiar la frecuencia de parpadeo sólo hay que cambiar el corazón por otro de diferente frecuencia. Antes teníamos que borrar el cable (o el corazón), colocar el nuevo y volver a tirar el cable. En Icestudio 0.3.2 se pueden remplazar bloques simplemente colocándolos encima
Y ahora es mucho más fácil añadir documentación en los bloques de información usando como notación el markdown de github
Para cambiar al modo edición sólo hay que hacer doble click en el bloque. Y lo mismo para volver al modo normal. Se pueden poner emoticonos también :smile:
Zumbador pasivo
Utilizaremos un zumbador pasivo o altavoz para escuchar sonidos generados desde nuestros circuitos. Es necesario conectar un transistor al zumbador para que circule más corriente y se active, escuchándose el sonido. El esquema de conexión es el siguiente:
Conexión en protoboard
La construcción del circuito en una placa de entrenamiento se muestra en este esquema de Fritzzing:
y este es el montaje real
Conexión de placa comercial con zumbador
Existen placas comercionales con el zumbador, que son muy cómodas porque se conectan directamente a la Icezum Alhambra a través de un cable de 3 hilos
Algunos ejemplos son:
- Octopus passive buzzer, de Elecfreak
- Kit de sensores para Arduino. BricoGeek. Dentro del kit con 37 módulos, hay uno con zumbador
En este panel está conectado el Zumbador al pin de salida D0. ¡Listo para usarse!
Ejemplo 2: Generando Sonido. Tono de 1Khz
Para generar un sonido tenemos que producir una señal cuadrarda (enviando 1's y 0's alternativamente) a una frecuencia que se encuentre dentro del rango audible. Esa señal, al llegar al zumbador, hace que una membrana vibre, agitando las moléculas del aire a esa misma frecuencia, y por tanto produciendo una perturbación que captamos con nuestros oidos
El rango audible humano es aproximadamente entre 20Hz (sonido muy grave) hasta 20Khz (sonido muy agudo)
En este ejemplo haremos que el zumbador produzca un pitido a la frecuencia de 1Khz. ¿Cómo lo hacemos? Simplemente conectado el pin de salida con un corazón que lata a 1Khz
El Corazón de 1Khz se encuentra en el menú Varios/Bombeo de la colección 13. Para escucharlo conectamos el zumbador al pin D0, usando el panel mostrado en el apartado anterior
Al cargar el circuito en la placa empezaremos a oir el tono. Como es un poco molesto, lo podemos apagar con el interruptor de la Icezum Alhambra, que elimina la alimentación de los periféricos (pero que mantiene la de la FPGA para poder seguir cargando circuitos)
Ejemplo 3: Timbre
Modificamos el ejemplo anterior para hacer que el tono suene al apretar un pulsador externo (y que también se encienda un LED externo). Esto ya lo sabemos hacer. Simplemente colocamos una puerta AND para permitir que la señal cuadrada con el sonido llegue al zumbador sólo si el pulsador está apretado (Bit a 1)
El panel es el siguiente
Cargamos el circuito en la placa
Al apretar el pulsador se encenderá el LED y sonará un pitido
Ejemplo 4: Sirena con dos zumbadores
En este ejemplo utilizaremos dos zumbadores para realizar una sirena. Cada zumbador emitirá un tono diferente. Uno el tono alto y el otro el bajo. La sirena emite el tono alto durante medio segundo, y luego el alto durante otro medio. Además se muestra una sirena luminosa, con dos leds que parpadean alternativamente a la frecuencia de 1Hz. El circuito es el siguiente:
La parte central ya la conocemos: es el circuitos de los leds alternantes, gobernados por un corazón de 1Hz. En la parte superior está el corazón que genera el tono de 1Khz. Este tono pasa a través de la puerta AND. Sólo llega al zumbador durante medio segundo, cuando el corazón de 1Hz está a 1. En la parte inferior se genera el tono alto de 2Khz. Llega al otro zumbador a través de otra puerta AND, que se habilita cuando el corzón de 1Hz está a 0.
De esta forma, cuando un zumbador emite un tono, el otro está callado. Y vice-versa. El tono alto en un zumbador, se alterna con el tono bajo en el otro
El panel es el siguiente:
Lo cargamos en la placa para probarlo:
Será necesario mover el interruptor de la Icezum Alhambra a la derecha para apagar la sirena
Ejercicios propuestos (18 BitPoints)
Ver los detalles de los ejercicios y las entregas en el menú Archivos/Ejemplos/2-Ejercicios de la colección de este tutorial
Resumen:
- Ejercicio 1 (Total 5 Bitpoints): Utilizar un interruptor externo para mover el cuello de Franky de un lado a otro. Al apretar un pulsador externo sus ojos parpadearán a 10 Hz. Cada vez que los ojos estén encendidos se emitirá un tono de 1Khz (como los ojos se encienden y a 10Hz, también lo hará el tono de 1Khz)
- Ejercicio 2 (Total 5 Bitpoints): Paso a Nivel. La barrera del paso a nivel permanecerá 4 segundos levantada y 4 segundas bajada. Cuando está bajada, sonará una sirena de dos tonos (1 y 2Khz, en dos zumbadores) y habrá una sirena luminosa con 2 leds externos conectados a los pines de 5v. Cuando está levantada los LEDs estarán apagados y y la sirena en silencio
- Ejercicio 3 (Total 5 Bitpoints): Órgano de 3 notas y 3 zumbadores. Colocar 3 zumbadores en paralelo, cada uno conectado a un pulsador externo. Las notas que se emitirán serán DO (pulsador 1), RE (pulsador 2) y MI (Pulsador 3)
- Ejercicio 4 (3 Bitpoints). Ejercicio Libre. Premiar la creatividad. Entregar por redes sociales o github: Pantallazos, enlaces, vídeos, etc...
Ejercicios entregados
Joaquín Cubillo
Ejercicio 1
- Vídeo en Youtube:
Ejercicio 2
- Vídeo en Youtube:
Ejercicio 3
- Vídeo en Youtube:
Ejercicio 4
- Vídeo en Youtube:
Federico Coca
Ejercicio 1
- Vídeo en Youtube:
Ejercicio 2
- Vídeo en Youtube:
Ejercicio 3
- Vídeo en Youtube:
Ejercicio 4
- Vídeo en Youtube:
Fernando Coladas
Ejercicio 1
- Vídeo en Youtube:
Ejercicio 2
- Vídeo en Youtube:
Ejercicio 3
- Vídeo en Youtube:
Ejercicio 4
- Vídeo en Youtube:
Autor
- Juan González-Gómez (Obijuan)
Licencia
Créditos y agradecimientos
Enlaces
- Repositorio con las colecciones de la Academia Jedi de Hardware
- BricoGeek. Tienda Friki donde comprar componentes electrónicos
- Repositorio de la Icezum Alhambra
- Documentación de la Icezum Alhambra: (PNG)(SVG)(PDF)
- Icestudio
- Monedas Bit imprimibles
- Printbot Beetle
- Ultimate Gripper
- Pinza paralela
- Robot Educativo Zowi
- Qué es PWM y para qué sirve. Entrada en el bloq de Rincón Ingenieril
- Repositorio de PCBPrints
- PCBPrint Alhambra-Button
- PCBPrint Alhambra Switch
- Soporte Icezum Alhambra
- Soporte para Servo Futaba 3003
- Puntero para servo Futaba 3003
- Clavijas de amarre para servos
- Tablero indicador binario para servo
- Fijador de esquinas
- Fijador de cables
- Fijador de placas
- Octopus passive buzzer, de Elecfreak
- Kit de sensores para Arduino. BricoGeek. Dentro del kit con 37 módulos, hay uno con zumbador
Preguntas frecuentes
- ¿Dónde puedo conseguir la placa Icezum Alhambra?
Pueden conseguir una desde Alhambrabits
-
¿Dónde puedo comprar material electrónico?. Hay muchos sitios. Uno muy bueno es Bricogeek
-
¿Cómo aprendo a manejar github?
Hay mucha información en internet. En su momento hice este Tutorial: Github y FreeCAD para enseñar a manejarlo. Los ejemplos están hechos con ficheros de FreeCAD, sin embargo, lo que se enseña es genérico. También vale para las entregas de los ejercicios del tutorial de Electrónica digital para makers
- Los pulsadores de la Icezum Alhambra no me funcionan
Eso es debido a que se han metido restos de flux y no hacen buen contacto. En el apartado ¡No me funcionan los pulsadores! del Tutorial 9 se indica cómo solucionarlo fácilmente
- ¿Dónde puedo encontrar más información sobre las señales PWM?
Echa un vistazo a este post de Rincón Ingenieril sobre el tema
- He conectado un pulsador externo pero no me funciona. He hecho un circuito para conectar el botón con un led, y al apretar se enciende el LED, pero luego no se apaga. NO funciona bien
Los pulsadores externos que se conecten a los pines de 5v de la Alhambra (D0 - D13) tiene que llevar una resistencia de pull-up o pull-down con valores entre 460 ohm y 2K. Típicamente usamos 1K. Esto hace que los conversores de nivel se configuren como entradas y que el pulsador funcione correctamente. Puedes encontrar más información En este enlace
- La PCBPrint de transistor con LED está bien???? Parece que la resistencia de 2K2 conecte con el colector en lugar de la base. De hecho no me funciona. Para conectar con la base tendría que cruzar las patillas
Si, en la documentación está bien. Pero debes fijarte en el transistor que estás usando. En algunos encapsulados la base es la pata central mientras que en otros es está en uno de los laterales. En el que usé en la Alhambra LED la base está en el lateral
- ¿Donde puedo conseguir el switch que habéis usado en la PCBprint Alhambra switch? Es el mismo switch que se ha usado en la propio Icezum Alhambra (aunque la versión sin acodar). Los fabricantes los puedes encontrar en la lista de componentes de la propia icezum Alhambra. La referencia del componente en concreto es esta: Slide Switch, SPDT, On-On, Through Hole, WS-SLTV Series, 500 mA. Yo te recomiendo que uses la PCBprint de Diego Lale, que usa interruptores que puedes conseguir en Bricogeek: Mini-interruptor de 3 pines