Video 8: Pines y LEDs externos

mrcatacroquer edited this page Nov 6, 2018 · 132 revisions

Vídeo

Click to see the youtube video

Haz click en la imagen para ver el vídeo en Youtube

Descripción

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

Colección

Academia-Jedi-HW-08.zip: Colección para este tutorial. Descargar e instalar

Contenido

Material necesario

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

Documentación de la Icezum Alhambra

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á

Pines de la Icezum Alhambra

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

Conectores hembra de 5V

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.

Conectores de E/S macho de 5V con alimentación y masa

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

Conectores de E/S macho de 3.3V (GPx)

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

Conectores macho para entradas analógicas

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

Ejemplo 1: Conectando un LED externo a los pines de 3.3v

Vamos a conectar un LED externo y hacer que parpadee. Lo conectaremos a las salidas GPx de 3.3 Voltios

Material necesario

El material adicional a la Icezum Alhambra para la conexión del LED externo es:

  1. Protoboard. Placa de entrenamiento pequeña
  2. Cable Macho-hembra
  3. Cable macho-macho
  4. LED pasante, de 5mm ó 3mm, de cualquier color
  5. Resistencia pasante de 100 Ohm y 1/4W

Esquema

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

Esquema del montaje

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

Montaje físico

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

Circuito en Icestudio

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

Ejemplo 2: LEDs externos intermitentes

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

Esquema del montaje

El esquema de montaje en Fritzing es

Se ha duplicado el circuito del ejemplo 1 y se han conectado los cables a diferentes puntos

Montaje físico

Partiendo del montaje del ejemplo anterior, añadidos los nuevos componentes para conectar el segundo LED

Circuito en Icestudio

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:

Montando circuitos externos

Los circuitos externos para trabajar con placas como la Icezum Alhambra o Arduino se pueden realizar de diferentes maneras. Aquí mostraremos algunas de ellas

Placas entrenadoras

Una forma es utilizando protoboards o placas de pruebas. Es lo que hemos usado en los ejemplos 1 y 2

Conexiones directas

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

Circuitos sobre cartón / papel

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

Construcción de Franky

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!

Circuito soldado en placas prototipos

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

Circuitos imprimibles (PCBPrints)

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

Circuitos impresos (PCBs)

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 :-)

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 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...

Ejercicios entregados

Federico Coca

Ejercicio 1

  • Vídeo

Click to see the youtube video

Ejercicio 2

Vídeo:

Click to see the youtube video

Ejercicio 3

Vídeo:

Click to see the youtube video

Ejercicio 4

Vídeo:

Click to see the youtube video

Ricardo Gómez (eagleman)

Ejercicio 1

Ejercicio 2

Ejercicio 3

Ejercicio 4

Diego Lale

Ejercicio 1

Ejercicio 2

Ejercicio 3

Ejercicio 4

Autor

Licencia

Créditos y agradecimientos

Enlaces

FAQs

  • ¿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
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.