Skip to content

Video 1: ElectrĂ³nica digital para todos

Juan Gonzalez-Gomez edited this page Dec 2, 2017 · 110 revisions

Click to see the youtube video

Haz click en la imagen para ver el vĂ­deo en Youtube

DescripciĂ³n

Comenzamos la inmersiĂ³n en el mundo de la electrĂ³nica digital y del pensamiento hardware. Este mundo estĂ¡ situado justo encima de los transistores y dos niveles por debajo del software. El objetivo es aprender construyendo. Las FPGAs libres nos permiten que el ciclo de diseño sea tan rĂ¡pido como el del software, algo no antes visto. Aprender diseño digital estĂ¡ ahora al alcance de muchas mĂ¡s personas

Contenido

ExplicaciĂ³n

Hola! Soy obijuan, y en este microtutorial comenzamos el curso sobre ElectrĂ³nica digital para makers utilizando FPGAs libres. Es un curso diferente, totalmente distinto a lo que hayas visto. El objetivo es enseñar pensamiento hardware de una forma prĂ¡ctica, haciendo circuitos desde el minuto 0.

Pensamiento algorĂ­tmico

Estamos acostumbrados al pensamiento algorĂ­tmico, que es el que usamos cuando programamos, por ejemplo un Arduino. Hay un elemento, el microprocesador, que ejecuta las instrucciones almacenadas en su memoria. Una detrĂ¡s de otra, secuencialmente. Como programadores tenemos que determinar quĂ© instrucciones usar y en quĂ© orden para que el procesador resuelva un problema o haga lo que nosotros queremos. Pensamos en tiempo, y de manera secuencial

Pensamiento hardware

Sin embargo, en los circuitos digitales las cosas suceden en paralelo. El pensamiento hardware es espacial. Hay caminos fĂ­sicos por los que la informaciĂ³n pasa de un lugar a otro, y es un pensamiento paralelo: Las cosas suceden a la vez. Es similar a una ciudad donde hay coches que se mueven a la vez, en paralelo, siguiendo unas reglas de trĂ¡fico

Los chips digitales son las base de la tecnologĂ­a actual y se diseñan a partir de electrĂ³nica digital y pensamiento hardware. La electrĂ³nica digital es de lo que estĂ¡n hechos los procesadores que programamos. Conocerla nos permite no sĂ³lo entender cĂ³mo funcionan, sino crear procesadores nuevos. Chips diferentes. Arquitecturas alternativas

Niveles

En ciencia y en ingenierĂ­a dividimos el conocimiento en niveles. El mundo de la electrĂ³nica digital estĂ¡ "por debajo" del software. En este dibujo se muestran varios niveles, donde los Ă¡tomos estĂ¡n en la parte inferior y el software en la superior

Cuando trabajamos con un Arduino estamos en el nivel de software (7), de programaciĂ³n. Los programas se ejecutan sobre un microprocesador que estĂ¡ en el nivel inferior (Nivel 6). Los microprocesadores se diseñan con electrĂ³nica digital (Nivel 5), que es lo que veremos en este tutorial. Por debajo tenemos los transistores (Nivel 4) que estĂ¡n hechos a partir de semiconductores (Nivel 3), que son cristales de silicio (Nivel 2) a los que se introducen impurezas. En el Ăºltimo nivel tenemos los Ă¡tomos (Nivel 1)

Un circuito de ejemplo

En este tutorial estaremos en el nivel 5, diseñando circuitos digitales de manera prĂ¡ctica, a los que conectaremos sensores y actuadores, y que fĂ­sicamente tendrĂ¡n una apariencia como esta

Este es un ejemplo de una alarma que se dispara cuando detecta la presencia de algo, a través de un sensor digital de infrarrojos. Cuando salta, suena una sirena, el servo empieza a oscilar y los leds comienzan a parpadear alternativamente. Cuando se aprieta el pulsador, la alarma se para y se rearma. Con el interruptor externo se puede encender o apagar. El circuito digital, creado en Icestudio, es este

En muy poco tiempo serĂ¡s capaz de entender perfectamente este circuito, y realizar los tuyos propios :-)

Construyendo circuitos digitales

¿CĂ³mo se hacen los circuitos digitales? La manera clĂ¡sica es la siguiente. Primero se diseña el circuito usando los componentes de electrĂ³nica digital: puertas lĂ³gicas, biestables, registros, etc. Luego se simula para comprobar que estĂ¡ bien diseñado. Y por Ăºltimo hay que construirlo fĂ­sicamente. Los elementos a usar se encuentra en el interior de los chips. El fabricante te facilita un esquema con todos los componentes que hay en lo chips que vende

Por ejemplo, en el chip de esta figura hay 4 puertas NAND, de 2 entradas. En el mapa podemos ver en quĂ© patas del chip estĂ¡n las entradas de las NAND, y por dĂ³nde se conectan sus salidas

Para construir el circuito, necesitamos comprar los chips necesarios, en la tienda o por internet. Para el montaje fĂ­sico, una opciĂ³n es usar una placa de entrenamiento (protoboard):

Otra opciĂ³n es soldarte los componentes en una placa. Con esto se consigue un prototipo que dura mĂ¡s y no se salen los cables

Y para placas ya mĂ¡s depuradas, se puede hacer un PCB prototipo, que permite hacer tiradas mayores

FPGAs libres

Sin embargo, nosotros usaremos FPGAs libres. Y todo serĂ¡ muchĂ­simo mĂ¡s fĂ¡cil y mĂ¡s rĂ¡pido. Igual de Ă¡gil que el desarrollo software. Sintetizaremos circuitos reales en pocos segundos

Esta magia se consigue usando unos chips que se llaman FPGAs, que tienen en su interior los tres elementos bĂ¡sicos para realizar cualquier circuito digital: puertas lĂ³gicas, cables y biestables. Pero estĂ¡n sin conectar

Las FPGAs son como chips en blanco. Un lienzo donde podemos hacer cualquier circuito digital. Las uniones son programables, y al establecerlas, la FPGA se configura y nuestro circuito aparece. En cuestiĂ³n de segundos. Decimos que nuestro circuito se ha sintetizado

Estas uniones no son permanentes, lo que nos permite meter muchos circuitos. Ahora tenemos un circuito, y después podemos sustituirlo por otro circuito

Las FPGAs se conocen desde los años 80, pero era una tecnologĂ­a privativa, igual que lo eran las impresoras 3D. Esto implicaba que sĂ³lo unos pocos tenĂ­an acceso a ella, y menos aĂºn conocĂ­an sus detalles. A partir de mayo de 2015, el ingeniero austriaco Clifford Wolf hizo ingenierĂ­a inversa de la familia ICE40 de Lattice, publicĂ³ toda su informaciĂ³n (proyecto icestorm) y creĂ³ el primer sintetizador libre de la historia

A partir de esas herramientas libres, hemos podido desarrollar otras, como Icestudio, que hacen que la sĂ­ntesis del hardware, y su diseño, estĂ©n accesibles para muchĂ­sima mĂ¡s gente. Y que el aprendizaje de los circuitos digitales sea mucho mĂ¡s rĂ¡pido y fĂ¡cil

ElectrĂ³nica digital

¿Por quĂ© aprender a hacer circuitos digitales? ¿Por quĂ© bajar hasta el nivel de la electrĂ³nica digital?

  1. Por aprender. La electrĂ³nica digital son los fundamentos de nuestra sociedad del conocimiento. Internet, los vĂ­deos, las aplicaciones, la mĂºsica, las pelĂ­culas, los ordenadores, los mĂ³viles, las tablets... todo estĂ¡ hecho con electrĂ³nica digital. Los fundamentos de todo son este tipo de circuitos. Su conocimiento te da una visiĂ³n muy amplia del potencial y limitaciones de nuestra sociedad digital

  2. Crear nuevos circuitos. Conocer como funcionan las cosas a este nivel permiten a personas creativas desarrollar nuevos circuitos electrĂ³nicos, diferentes a las tendencias actuales. Nuevas arquitectura. Nuevos paradigmas. Nuevos procesadores. Es algo que desde el nivel del software no podemos hacer, ya que estamos condicionados por el hardware que hay debajo

  3. Aplicaciones mĂ¡s optimizadas. El estar dos niveles por debajo del software tiene dos grandes ventajas: mayor velocidad y menor consumo. Muchas cosas se pueden hacer por software. Pero si se hacen por hardware, requerirĂ¡n muchos menos recursos, con lo que consumirĂ¡n menos, y podrĂ¡n funcionar a velocidades mucho mayores

  4. Independencia de los fabricantes. Al hacer un circuito digital, dependes de los chips disponibles en el mercado. Puede que al cabo de varios años, los chips que has usado ya no estĂ© a la venta. Si estos chips los tenemos creados en una FPGA, tenemos garantizado que siempre estarĂ¡n disponibles

  5. Compartir hardware. Diseñar circuito digitales, usando FPGAs libres, nos permite compartirlos muy fĂ¡cilmente, y entre todos, ir ampliando el patrimonio tecnolĂ³gico de la humanidad

Aprender construyendo

En este tutorial aprenderemos electrĂ³nica digital mediante la construcciĂ³n de circuitos desde el primer momento. El objetivo es aprender construyendo. Y por ello usaremos impresoras 3D para crearnos perifĂ©ricos y objetos divertidos que controlar mediante nuestros circuitos

Placa Icezum Alhambra

Existen muchas placas con las FPGAs libres ICE40 de Lattice. Nosotros en este tutorial utilizaremos la Icezum Alhambra, que estĂ¡ orientada a makers. Pero cualquiera de las otras serĂ¡n tambiĂ©n vĂ¡lidas

La icezum Alhambra se puede conseguir desde aquĂ­: Alhambrabits

Patrimonio tecnolĂ³gico de la humanidad

Otro de los objetivos de este tutorial es usar sĂ³lo herramientas libres, que pertenezcan al patrimonio tecnolĂ³gico de la humanidad. Esto garantiza que cualquier persona del mundo, con independencia del sistema operativo que utilice, pueda reproducir todo lo enseñado en este tutorial

Calentando motores jugando: Circuit Scramble

Para ir calentando motores, vamos a jugar con esta APP: Circuit Scramble

Es un juego sobre ElectrĂ³nica digital, que es muy adictivo y muy fĂ¡cil de usar. Nos permitirĂ¡ entender de manera sencilla muchos conceptos de electrĂ³nica digital

ResoluciĂ³n de dudas y formulaciĂ³n de preguntas

Para cualquier duda o consulta, por favor, NO me enviĂ©is un correo personal privado. Recibo mucho al dĂ­a, y no los puedo responder. Enviad todas vuestras consultas al grupo FPGAwars. Por un lado la respuesta a vuestras consultas serĂ¡ mĂ¡s rĂ¡pida, ya que hay mĂ¡s gente en la comunidad. Y por otro lado, el mĂ¡s importante, si te ha surgido una duda, seguramente otras personas la tendrĂ¡n tambiĂ©n. Y de esta forma, la respuesta a una consulta le sirve a mĂ¡s gente en el futuro

AquĂ­ podĂ©is encontrar mĂ¡s informaciĂ³n sobre FPGAwars

Sobre las entregas de ejercicios

En todos los tutoriales se plantean ejercicios para practicar. Estos ejercicios se pueden entregar, con lo que se obtendrĂ¡n BitPoints: puntos que se acumulan y te permiten ir ascendiendo en los rangos de la academia Jedi de hardware

Las entregas bĂ¡sicas se hacen por redes sociales: twitter Ă³ Google+. Simplemente hay que poner un post con la foto del ejercicio resuelto, poniĂ©ndome una menciĂ³n para que lo reciba: @Obijuan_cube en Twitter Ă³ @Juan Gonzalez Gomez en G+

  • Las 3 primeras entregas de cada tutorial se colocarĂ¡n en su wiki, junto a los nombres de los autores
  • Se publicarĂ¡ en la wiki un Ranking con los nombres de todos los que han entregado y la cantidad de BitPoints conseguidos

Adicionalmente, las entregas se pueden hacer a travĂ©s de este repo del github. Esto darĂ¡ mĂ¡s BitPoints

Ejercicios propuestos (4 BitPoints)

Para completar este tutorial, se proponen los siguientes ejercicios:

  • Ejercicio 1: Instalar la APP Circuit Scramble en una tablet o un mĂ³vil y pasar el nivel 1. Entregar pantallazo con el nivel resuelto. Valor: 1 BitPoint

  • Ejercicio 2: Pasar los niveles 2 y 3 del Circuit Scramble. Enviar pantallazo con sus soluciones. Valor: 1 BitPoint

  • Ejercicio 3: Entregar los ejercicios 1 y 2 (adicionalmente) a travĂ©s del repo de entregas del github (haciendo un pull-request). Valor: 1 BitPoint por cada ejercicio (MĂ¡ximo: 2 BitPoints)

Ejercicios entregados

Los tres primeros en entregar los ejercicios 1 y 2 han sido:

Julian Caro Linares

Federico Coca

Juan A RamĂ³n GirĂ³n

Autor

Licencia

Créditos y agradecimientos

  • Clifford Wolf es el Ingeniero Austriaco al que le debemos la apariciĂ³n de las FPGAs libres. Todo este tutorial,y todas las herramientas creadas a su alrededor no habrĂ­an sido posibles sin su gran aportaciĂ³n: El proyecto Icestorm. ¡Muchas gracias!
  • A Arduino, por las fotos usadas, y como reconocimiento a la increible labor que han realizado en la popularizaciĂ³n del hardware libre, y del acercamiento de las nuevas tecnologĂ­as a personas con perfil menos tĂ©cnico. Ha hecho una democratizaciĂ³n de la programaciĂ³n de microcontroladores, a gran escala. La placa Icezum Alhambra es un diseño derivado del Arduino uno ¡Muchas Gracias!
  • Project 54/74. Por las fotos del interior de los chips. ¡Muchas Gracias!
  • Eladio Delgado, es el diseñador de la placa IceZum Alhambra. Y el encargado de la gestiĂ³n de la fabricaciĂ³n de la placa. Todo lo dirige desde su Rural Workshop en Pinos del Valle (Granada) ¡Muchas gracias!
  • AndrĂ©s Prieto-Moreno, es mi Maestro Jedi, y me ha enseñado todo lo que yo sĂ© ahora ¡Muchas gracias!. AdemĂ¡s, es el creador de AlhambraBits y el mecenas que ha financiado las Icezum Alhambras, para que todos podamos disponer de ellas. ¡Muchas gracias!
  • JesĂºs Arroyo es el creador de Icestudio y su desarrollador principal. Gracias a su talento estĂ¡ consiguiendo que cientos de personas puedan acceder al desarrollo de circuitos digitales, de una forma muy sencilla. ¡Muchas gracias!
  • Juanillo pillo, es el creador del logo de fpgawars. ¡Muchas gracias!
  • Julian Caro, por encontrar erratas y reportarlas. ¡Muchas gracias!

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

Clone this wiki locally