-
Notifications
You must be signed in to change notification settings - Fork 83
Video 8: Pines y LEDs externos
Haz click en la imagen para ver el vídeo en Youtube
La Icezum Alhambra dispone de un total de 32 pines de E/S repartidos en diferentes conectores. Aprenderemos a conectar LEDs externos a los pines de 3.3V de la FPGA y cómo hacerlos parpadear desde circuitos en Icestudio. Veremos cómo hacer distintos tipos de circuitos físicos para colocar estos LEDs
Academia-Jedi-HW-08.zip: Colección para este tutorial. Descargar e instalar
- Material necesario
- Documentación de la Icezum Alhambra
- Pines de la Icezum Alhambra
- Conectando un LED externo a los pines de 3.3V
- LEDs externos intermitentes
- Montando circuitos externos
- Ejercicios propuestos (18 Bitpoints)
- Ejercicios entregados
- Autor
- Licencia
- Créditos y agradecimientos
- Enlaces
- FAQs
Materia necesario para hacer los ejemplos y ejercicios del tutorial:
Foto | Material |
---|---|
Placa entrenadora pequeña | |
LED pasante, de cualquier color. Tamaño 3mm ó 5mm. Mínimo 2 | |
Resistencia de 100 Ohmios, de 1/4 W. Al menos 2 | |
Cable macho - hembra. Al menos dos. Este cable se puede obtener uniendo un hembra-hembra con uno macho-macho | |
Cable macho - macho. Al menos dos | |
Cable hembra - hembra. Al menos dos |
La documentación de la placa Icezum Alhambra está resumida en este diagrama, realizado por Alberto Piganti (¡Gracias!)
Está disponible en otros formatos: (PNG)(SVG)(PDF)
En este diagrama hay mucha información. Vamos a analizar la parte que nos es más familiar: los LEDS de la placa. Si miramos el diagrama veremos esto:
Junto a cada pin/LED hay unos cuadros con la siguiente información:
- Pin físico: Es el número de pin del encapsulado de la FPGA. En la Icezum alhambra, el encapsulado de la FPGA es un TQ144, y la numeración de los pines es como se muestra en la siguiente figura. También se han incluido los pines de los leds
-
Nombre del pin. Es el nombre asignado por Lattice, con independencia del encapsulado (Ya que cada encapsulado tiene una numeración diferente). Así, el pin denominado 1_62 es una salida de la FPGA que está en el banco 1 y que para los encapsulados TQ144 sale por el pin físico 95, pero saldrá por otro en un encapsulado diferente
-
Nombre en Icestudio. Es el nombre que se le asigna en los bloques amarillos de Icestudio
-
Tipo de pin. Indica de qué tipo es el pin. Las flechas blancas con fondo naranja significa que se trata de un LED
La información de la placa también está disponible desde el menú Ver/Pinout de Icestudio
Al pulsar la opción de Pinout se nos abre una ventana con la documentación de la Icezum Alhambra. Si tenemos seleccionada otra placa, saldrá su propia documentación
Sobre esta ventana podemos hacer zoom y navegar. En el caso de la icezum Alhambra, la documentación que se muestra en icestudio 0.3.1 está obsoleta. Hay una más moderna en el repo, que es la que se recomienda usar. En las siguientes versiones de Icestudio se actualizará
La placa Icezum Alhambra tiene 4 tipos de pines para conectarse al exterior, resumidos en este diagrama
Estos conectores son:
1. Conectores de E/S hembra de 5 Voltios
2. Conectores de E/S macho de 5 Voltios, con alimentación y masa
3. Conectores de E/S macho de 3.3 Voltios
4. Conectores macho para entradas analógicas
Son los típicos conectores de Arduino que sirven para conectar cables macho y shields de expasión. Se encuentran en la parte superior e inferior de la placa, como se muestra en la figura
En total hay 31 pines, de los cuales 20 son de E/S de 5v. Los pines de E/S superiores se denominan D13 - D0 en Icestudio, y los inferiores DD5 - DD0. Todos estos pines tienen la característica de que son de 5v. Como los pines de la FPGA son de 3.3 Voltios, se pasan a través de unos conversores bidireccionales de 3V3 - 5v*. Por ello, no están conectados directamente a los pines de la FPGA, y sus características las determinan estos conversores.
Son 20 pines de E/S, machos, dulicados de los 20 pines E/S de los conectores hembra de 5v
Cada uno de estos pines incluye uno adicional de alimentación (+5v) y masa (GND). En total son tres pines separados por colores. El pin blanco contiene la señal de E/S, el rojo la alimentación de 5v y el negro la masa (GND)
Tienen esta disposición para poder conectar directamente servos y sensores. Se denominan igual que sus duplicados hembra: D0 - D13 para los de la parte superior y DD0 - DD5 en la parte inferior. En esta foto se muestra un servo conectado al pin D0 y un sensor de infrarrojos en el D13
Aquí se muestran más detalles de la conexión a los pines machos
Son 8 pines macho dispuestos en dos filas de 4 pines, de color amarillo
Los 8 pines están conectados directamente a pines de la FPGA, que trabajan a 3.3V. Los pines hembra y macho anteriores están conectados a la FPGA a través de conversores de nivel. Se denotan con la nomenclatura GP0 - GP7. Esta es la disposición de los pines
La Icezum Alhambra tiene 4 entradas analógicas situadas en la parte derecha, accesibles a través de pines macho
Cada entrada analógica (Azul) tiene un pin adicional de alimentación (rojo, 5v) y otro de masa (negro, GND)
Estas tiras de 3 pines permiten conectar directamente sensores de Luz o potenciómetros:
Aquí se pueden ver las conexiones con más detalle:
La FPGA NO tiene entradas analógicas, por lo que en la Icezum Alhambra hay un conversor Analógico-digital (A/D) que se conecta a la FPGA a través de un bus I2C. Por ello, para leer las entradas analógicas es preciso incluir en nuestros diseños de un circuito capaz de leer el bus I2C
Vamos a conectar un LED externo y hacer que parpadee. Lo conectaremos a las salidas GPx de 3.3 Voltios
El material adicional a la Icezum Alhambra para la conexión del LED externo es:
- Protoboard. Placa de entrenamiento pequeña
- Cable Macho-hembra
- Cable macho-macho
- LED pasante, de 5mm ó 3mm, de cualquier color
- Resistencia pasante de 100 Ohm y 1/4W
El esquema para encender el LED externo es
Como la salida es de 3.3V, usamos una resistencia de 100 Ohm en serie con el LED
El esquema del montaje se muestra en este diagrama hecho con Fritzing (Versión 0.9.3b)
El archivo para abrir en Fritzing está disponible en el repo de los tutoriales: Ejemplo-1.fzz
El montaje del circuito lo haremos sobre una base de corcho. Esto nos permite utilizar chinchetas para fijar los cables y otros elementos. En este primer circuito no usaremos más piezas, pero en los siguientes iremos colocando piezas impresas para amarrar los sensores y actuadores al corcho
Para hacer parpadear el LED usaremos el circuito que ya conocemos, con un corazón de 1Hz (por ejemplo). Bien lo podemos cargar directamente desde los ejemplos, en el menú Archivo/Ejemplos/1-Ejemplos/01-LED-externo-parpadeante, o bien lo creamos desde cero. En esta colección el Bombeo de bits está bajo el menú Varios
Cargamos el circuito en la placa, y podremos ver el LED externo parpadeando
Conectaremos ahora dos LEDs externos, a las salidas GP0 y GP7 respectivamente, y haremos que parpadeen alternativamente
El esquema es el mismo que en el ejemplo anterior, pero ahora con 2 LEDs, 2 resistencias y 4 cables
El esquema de montaje en Fritzing es
Se ha duplicado el circuito del ejemplo 1 y se han conectado los cables a diferentes puntos
Partiendo del montaje del ejemplo anterior, añadidos los nuevos componentes para conectar el segundo LED
El circuito de los leds parpadeando alternativamente ya lo sabemos hacer. Bien lo hacemos desde 0 o bien lo abrimos desde los ejemplos a través del menú Archivo/Ejemplos/1-Ejemplos/02-LEDS-externos-alternantes
Cargamos el circuito y veremos los dos LEDs en acción:
Los circuitos externos para trabajar con placas como la Icezum Alhambra o Arduino se pueden realizar de diferentes maneras. Aquí mostraremos algunas de ellas
Una forma es utilizando protoboards o placas de pruebas. Es lo que hemos usado en los ejemplos 1 y 2
Cuando se trata de componentes sencillos, como LEDs y resistencias, se pueden hacer conexiones directas. Por ejemplo, enrollando la pata de la resistencia de 100 ohm con el LED
Luego usamos dos cables hembra-hembra para insertar la pata del LED en un cable y la de la resistencia en otro
Por último conectamos el cable del LED a cualquier de las salidas GPx de 3.3V y el cable de la pata de la resistencia a cualquier pin macho negro, que son GND
Mediante la misma técnica de conexiones directas, pero usando un papel / cartón de soporte, se pueden hacer circuitos externos muy divertidos. Este es Franky:
Es un robot de cartón cuyos ojos son dos LEDs, y su nariz y boca resistencias de 100 Ohm
Se parte de un trozo de cartón o cartulina, alargado, como se muestra en la foto. Con una chincheta se hacen agujeros para introducir los dos LEDs y las dos resistencias de 100 Ohm
Por la parte de atrás del cartón unimos las patas de los LEDs con sus respectivas resistencias. Los patas positivas del led (las patas largas) las dejamos sin unir. Las patas de las resistencias que no están unidas a los LEDS, las unimos entre sí, dejando un trozo de pata recto al final que sobresalga
Luego conectamos tres cables hembra-hembra, uno para cada LED y otro para las patas unidas de la resistencia, que van a masa
Plegamos el cartón, para darle forma de caja
Y lo cerramos. Pegamos los laterales con celo
Los cables los sacamos por la parte trasera, por un hueco recortado en la parte inferior y colocamos dos chinchetas en los lateras, para darte un aspecto más de Frankenstain :-)
Ponemos un poco de cinta aislante para juntar los cables. Y usamos una chincheta para fijar a Franky al corcho. Conectamos los positivos de los LEDs a los pines GP0 y GP7 de la Icezum, y el otro cable a cualquier de los pines machos negro de GND
Hacemos un rectángulo de papel con unos dobleces, de las dimensiones de la parte superior de la cabeza de franky. Lo usaremos como tapa
Y se la colocamos. La pegamos en los laterales con un poco de celo. ¡Ya tenemos a Franky Listo!
Una opción para hacer circuitos externos más robustos es usar placas de puntos donde se sueldan los componentes. Se vende en placas de tamaños fijos que se pueden cortar fácilmente con una segueta para tener el tamaño de placa que queramos. Se colocan lo componentes, se sueldan y se usen con cables. En el caso de la placa del LED, como es muy sencilla, he usado las mismas patas de los componentes, en vez de cables
La conexión se puede realizar directamente con cables hembra - hembra
O pinchando la placa en una protoboard, y tirando cables macho - hembra
Una opción muy divertida y sencilla es utilizar PCBprints. Son placas hechas con una impresora 3D, donde se colocan los componentes y luego se sueldan. La más sencilla de todas es "Hola Mundo", que sólo tiene un LED, una resistencia y un conector macho
En este enlace están las instrucciones de montaje
Igual que las placas anteriores, se pueden conectar directamente a la Icezum Alhambra usando cables hembra - hembra
O también se pueden conectar a través de una protoboard
Por último, la opción más profesional es hacerte tu propio PCB y mandarlo a fabricar industrialmente. Una herramienta libre para diseñar PCBs es Kicad, que ya lo usaste para los ejercicios del tutorial 3
Esta es la placa FreeLEDs, que hicimos en el año 2005 y que fue una de las primeras placas libres hecha exclusivamente usando software libre :-)
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 3 Bitpoints): Hacer un circuito digital que haga parpadear alternativamente dos LEDs externos, conectados en una protoboard, a la velocidad de 2Hz
-
Ejercicio 2 (Total 4 Bitpoints): Hacer un circuito digital para que los dos ojos de Franky parpadeen a la vez, a la velocidad de 4Hz. Es necesario construir a Franky
-
Ejercicio 3 (Total 8 Bitpoints): Montar al menos una PCBprint con un led y conectarlo a la Icezum Alhambra. Hacer que parpadee a la frecuencia de 1Hz. Se concecerán bitpoints extras por montar y poner más de un PCBprint (hasta un máximo de 5 PCBprints). Si has puesto más de 1 LED, dividirlos en dos grupos y hacer que parpadeen alternativamente a 1Hz
-
Ejercicio 4 (3 Bitpoints). Ejercicio Libre. Premiar la creatividad. Entregar por redes sociales o github: Pantallazos, enlaces, vídeos, etc...
- Vídeo
Vídeo:
Vídeo:
Vídeo:
- Juan González-Gómez (Obijuan)
- A Alberto Piganti (Pighixxx) por hacer la documentación del pinout de la Icezum Alhambra. ¡Muchas Gracias! :-)
- A Jorge Lobo (Lobotic) Por incluir la Icezum Alhambra en Fritzing. ¡Muchas gracias! :-)
- 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
- Fritzing
- Icezum Alhambra en Fritzing
- Repositorio de PCBprints
- PCBprint "Hola Mundo"
- Placa FreeLEDs
- Monedas Bit imprimibles
- ¿Dónde puedo conseguir la placa Icezum Alhambra?
Pueden conseguir una desde Alhambrabits
- ¿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
- ¿Dónde puedo comprar material electrónico?. Hay muchos sitios. Uno muy bueno es Bricogeek
- Electrónica digital para todos
- Poniendo en marcha Icestudio
- La Icezum Alhambra y otras placas con FPGAs libres
- Mi primer circuito. Encendiendo un led
- Colecciones en Icestudio
- Bombeando bits
- Manipulando bits: Puerta NOT
- Pines y LEDs externos
- Pulsadores y entradas
- ServoBit
- Puertas AND. Habilitando circuitos
- Interruptores y pulsadores externos
- Periféricos: Leds externos y zumbadores
- Mezclando circuitos: Multiplexor
- Servos de rotación continua
- Sensores de Infrarrojos
- Puertas Lógicas: OR
- Bloques con parámetros
- Circuitos combinacionales
- Buses y Números
- Mi primer bloque
- Circuitos combinacionales con varias salidas
- Mi primera colección
- Display de 7 segmentos
- Biestables y notificaciones
- Tiempo, tics y temporizadores
- Contando eventos
- Biestables de datos y cambio
- Registros y comparadores
- Puerto serie
- Despedida de la Temporada I