Els «faeners»
Introducción
En el proyecto «La microelectrónica a tu servicio» del Praktikum UPV has estado trabajando con un Arduino, que es un cacharro basado en «microcontrolador», es decir, un microprocesador orientado al control de pequeños sistemas (frenos ABS, microondas, mandos, …).
En esta sesión cambiamos de tercio, pues trabajaremos con un microprocesador de aplicación general, cuyo planteamiento de diseño es opuesto al del microcontrolador. ¿Sabes quienes son David y Goliath?, Pues David es un microcontrolador y Goliath es un microprocesador de propósito general. Los dos tienes cosas buenas y malas, pero son incapaces de hacerlo todo bien.
La base sigue siendo la misma: el computador digital. Así que no hay mucha diferencia entre el computador que lleva tu DNI y un supercomputador Deep Blue de IBM.
Mira ahora tu smartphone, enciéndelo, mira el Whatsapp, abre el reproductor … eso que tienes entre las manos se basa en un microprocesador de propósito general.
Ahora saca tu DNI. Si tiene chip, ahí tienes un microcontrolador.
En esta sesión intentaremos que uséis un computador industrial para controlar un proceso industrial, bla, bla … bueno, quizá eso sea demasiado, pues es parte de lo que ven nuestros alumnos en el grado.
A ver si podemos hacerlo más compresible y divertido usando una Raspberry Pi como computador industrial, el lenguaje Scratch para hacer el programa, y cuatro cachivaches conectados a la RPi mediante una tarjeta llamada PiFace. Usaremos un depósito de líquidos para imitar una fábrica.
Organizándose un poco
Para no perdernos, organizaremos la sesión en la siguiente serie de hitos:
- Montar el «hardware» de un computador industrial … bueno, una Raspberry Pi
- Instalar un «sistema operativo» industrial en el computador … estoo, arrancar la Pi con una tarjeta SD que contiene el sistema operativo Linux
- Instalar un sistema de adquisición de datos … lo hacemos facilito «leyendo» y «escribiendo» «sensores» y «actuadores» con una PiFace
- Desarrollamos una aplicación en C/C++ o Java o ADA … estoo, aplicamos los mismos principios jugando un poco con el lenguaje facilón Scratch
- Enlazar el Scratch y los cacharros
- Hacer el control de un sistema con todos los ingredientes anteriores
No pasa nada si no llegamos al final. Lo principal es ir entendiendo qué se hace.
ATENCIÓN
Trata con amor el material. El pobre está desnudo y cualquier manipulación incorrecta (cortocircuitos, desconexiones mientras trabaja, etc.) lo puede estropear.
Poner a punto la Raspberry Pi
Una Raspberry Pi (RPi) es un pequeño computador muy económico que se parece mucho a lo que hay dentro de un smartphone.
Con la RPi es muy fácil montarse un «Hometheater», un descargador de pelis o controlar la casa desde el teléfono móvil.
ACTIVIDAD: Echa un vistazo en Internet para hacer una idea de qué es y para qué la usa la gente. Un representante de cada grupo explicará la utilidad que más le ha llamado la atención.
ACTIVIDAD: Y después vamos a seguir las transparencias «Empezar con la Raspberry Pi» que tenéis en este blog para montar todos los elementos que permiten poner a punto la RPi. SOLO miraremos hasta la transparencia 9. Hala, vamos allá.
Arrancar la Raspberry Pi con Linux
Un microprocesador de propósito general suele usarse con un sistema operativo. Sistemas operativos hay muchísimos; por ejemplo, tu portátil puede tener Microsoft Windows o Apple MAC OSx como sistema operativo. Pero también lo tiene un tablet, tu teléfono móvil, el router de casa, la televisión inteligente, el navegador del coche, …
El sistema operativo no es más que un montón de programas (software) que facilitan el aprovechamiento de lo que tienen debajo.
Un sistema operativo muy popular es Linux. Linux es gratis y abierto, lo que ha hecho que gente como tu y como yo lo vaya mejorando. No hace falta ser una fiera para ayudar a que Linux tire para adelante, pues hay gente que diseña, gente que traduce, gente que ayuda a otros en la red., etc.
Es casi seguro que has usado Linux sin darte cuenta, por ejemplo, si tu teléfono es Android, entonces ya estás usando Linux. Y si tienes una televisión inteligente, pues también estás usando Linux. Lo usas más de lo que crees, pues si navegas por Internet, la mayoría de los servidores del planeta emplean Linux.
Repetimos lo bueno de Linux: abierto y gratuito y, gracias a ello, la gente lo aplica a miles de cosas como por ejemplo la Raspberry Pi que tienes delanten. Sin él, esto que vas a ver sería imposible.
Hemos puesto Linux y un montón de aplicaciones en una tarjeta microSD. El Linux que hay en la SD se llama Raspberry Pi OS (antes Raspbian).
Tienes aquí una guía sobre la Raspberry Pi un poco más actualizada https://www.pcwdld.com/raspbian-raspberry-pi-os-guide
ACTIVIDAD: Arranca Linux en tu RPi siguiendo estos pasos.
- Comprueba que la RPi no esté alimentada
- Mete la SD en la RPi
- Aliméntala!
Al rato debería salir algo similar a la siguiente imagen.
Si todo ha ido bien, ahorra se ha arrancado una aplicación que se llama LXDE («Lightweight X11 Desktop Environment») y que es un gestor de escritorio. Se maneja parecido a Windows 7.
El Linux que lleva tu móvil Android usa otro tipo de escritorio. Y hay muchos más tipos de escritorios disponibles. La idea es que uno elige el que más se adapte a su gusto. Por ejemplo, en tu instituto es probable que tengas ordenadores con «Lliurex» instalado, que usan escritorio Unity.
NOTA: Cuando empieces a arrancar aplicaciones, ten en cuenta que la RPi es lenta en comparación con tu ordenador de casa. Puedes ver si la Pi está esforzándose mirando el icono de carga (una gráfica) en la esquina superior-derecha del escritorio. Ten paciencia.
ACTIVIDAD: Entra en la página web del escritorio LXDE para saber un poco más. Prueba las aplicaciones que vienen en la RPi.
Instalar software en la RPi
Si la RPi está conectada a Internet, es muy fácil instalar y desinstalar miles y miles de programas que están en lugares llamados «repositorios». La manera de instalar software en Android e iOS es una copia de esta idea.
Abre el menú con la «Frambuesa» -> Preferences -> Add/Remove Software.
Busca alguna aplicación típica como «VLC», márcala e instálala.
Je, je … la clave que te pide es «raspberry«. Te está diciendo que necesitas privilegios para instalar nuevo software.
«Leer» y «escribir» sensores y actuadores con la PiFace
NOTA PARA EL PROFE: Acuérdate de activar la interfaz SPI.
Ahora pasamos a la idea de que un computador es capaz de controlar cosas sintiendo el mundo y actuando sobre él. Esto es, básicamente, lo que tratamos en la asignatura «Informática Industrial» de la que somos profesores.
Para que el computador pueda «sentir» se usan los sensores, que, simplemente, traducen una magnitud física (velocidad, presión, temperatura,…) a un eléctrica que pueda introducirse dentro del computador.
Para que pueda actuar, se usan los actuadores, que traducen una magnitud eléctrica generada por el computador en una acción física.
En este contexto, el computador es el equivalente a ti y, por tanto, el centro de este planteamiento. Por eso se llama «input» o entrada al punto donde se conecta un sensor, y «output» o salida al punto donde se conecta un actuador.
A la RPi se le pueden conectar directamente un montón de sensores y actuadores, pero es fácil cargársela.Tienes más información en los materiales de uno de nuestros cursos, pero es un tema bastante más avanzado para que lo mires ahora.
Para hacerlo más sencillo, hemos seleccionado una tarjeta que tiene las cosa más preparaditas: la PiFace digital.
ACTIVIDAD: Entra en la página oficial de PiFace y mira de que va esta tarjeta. Busca en Google posibles aplicaciones de la PiFace. Un miembro de cada grupo saldrá a explicar la que más le ha interesado.
Quizá te haya quedado la duda de qué significa «digital input/output», ¿no?. Esta tarjeta está pensada para usar sensores y actuadores digitales, que son aquellos que proporcionan dos posibles estados: grande/pequeño, alto/bajo, abierto/cerrado, encendido/apagado, dormido/despierto, triste/contento, … que se hacen equivalentes a dos número, 1/0, dentro del computador y que, por el camino, han sido dos tensiones eléctricas, 3 voltios y 0 voltios.
ATENCIÓN, ATENCIÓN, ATENCIÓN, ATENCIÓN, ATENCIÓN, ATENCIÓN, ATENCIÓN,
ATENCIÓN, ATENCIÓN, ATENCIÓN, ATENCIÓN, ATENCIÓN,
Antes de seguir, apaga la RPi. «Frambuesa» ->»shutdown» del escritorio, esperar apagado, quitar alimentación.
Ahora hay que montar la tarjeta PiFAce. Mejor si la monta el profe.
http://www.piface.org.uk/guides/Install_PiFace_Software/fitting_PiFace_Digital/
ACTIVIDAD: Probar que la PiFace funciona bien usando el emulador y las instrucciones disponibles en http://www.piface.org.uk/guides/Install_PiFace_Software/piface_digital_emulator/
O, mejor, mira si está en el repositorio
Debería salir una especie de ensaimada verde en la esquina superior izquierda del escritorio. Pruébala.
¿Va o no? En la RPi que no tiene maqueta también hay que probarlo. Con los LEDs y el chasquido del relé sabrás si funciona o no.
El «depósito de líquidos»
A una de las PiFace tienes conectados unos sensores y actuadores digitales que pretenden sustituir a los reales de un depósito de líquidos.
Un sensor de nivel digital
Hemos montado una maqueta de alta tecnología que imita un depósito de líquidos. En la siguiente imagen la tienes.
Todo reciclado.
Los sensores y actuadores siguen esta pauta:
– Sensor «depósito vacío»: Digital input 0, 1=activado/0=desactivado
– Sensor «depósito lleno»: Digital input 1, 1=activado/0=desactivado
– Actuador «bomba»: Digital output 0, 1=activado/0=desactivado
Prueba que funcionan con el emulador.
Jugar con el lenguaje Scratch
Ya tenemos una RPi capaz de sentir y controlar el mundo, ahora «solo» falta ordenarle que lo haga, para ello hay que crear una aplicación en el lenguaje de programación que conozcas. Hay muchísimos: C, C++, Pascal, Java, Basic, … pues hay muchas maneras de sugerir al computador que haga las cosas. Empleamos «sugerir» porque hay lenguajes orientados a lo imperativo: «¡salta!», «¡calla!», «¡grita!» que son más fáciles de usar para empezar que otros, como los declarativos, que deducen más que acatan.
Un lenguaje imperativo que se está haciendo popular en los ámbitos educativos es Scratch (arañazo). Lo bueno de Scracth es que es muy simple y se apoya en programación gráfica de «arrastrar y soltar». Quien iba a pensar que llegase a tener tanto éxito.
Ahora es tu turno. Esto lo puedes hacer con el navegador web de la RPi que te hemos prestado con la RPi dando al icono Scratch.
ACTIVIDAD: Entra en la página web de Scratch y usa el acceso «pruébalo» para hacer una aplicación. Sigue el tutorial que tienes a la derecha.
Más o menos, te debería salir algo como lo que muestra la siguiente imagen.
IMPORTANTE: Usa Scratch 1, no Scratch 2.
Cuando termines de jugar en la web, comprueba que Scrtah también está instalado en la RPi. Lo tienes en «Frambuesa» -> Programming -> Scratch puedes iniciar esta aplicación.
Enlazar el Scratch y los cacharros
Esto es un poco peliagudo, así que os lo hemos preparado nosotros y esta todo configuradito (casi) en las memorias SD que os hemos preparado. ¡Mira que ha costado el puñetero!.
Sigue estos pasos en la RPi:
- Arranca la aplicación Scratch (tarda)
- Pulsa y mantén la techa «Mayúsculas». Pincha sobre «Compartir» en Scratch.
- Selecciona «Stop hosting mesh»
- Vuelve de nuevo a mismo menú y elije «Host mesh»
- Arranca un «terminal» LXTerminal (en la barra superior, hay un icono cuadrado negro).
- Escribe en la terminal «pifacedigital-scratch-handler» y pulsa «Intro»
Si todo está bien hecho, debería aparecer algo parecido a esto en el terminal.
En Scratch, puedes ver las entradas digitales en la pestaña «sensores» y eligiendo «valor del sensor». Mira la siguiente imagen.
«piface-input1» se corresponderá al sensor «depósito lleno» y así sucesivamente.
Las salidas digitales son más rollo. Tendrás que entrar en la pestaña «variables» y definir la nueva variable mágica «piface-output1». Muéstrala en pantalla, picha sobre ella con el botón derecho y activa «slider».
(Ya no -> Mira el siguiente ejemplo que está también guardado en la memoria SD con el nombre «proves-piface». El curso que viene)
Puedes probar que se relacionan los cacharros y el Scratch viendo como cambia el valor de los sensores y como, al modificar la variable output, se oye el «clac» del relé de la PiFace.
Hacer el control de todo lo anterior
Y, para rematar, todo junto.
ACTIVIDAD: Controla el depósito de manera que, cuando el sensor de vacío esté activado, se encienda la bomba, y se apague cuando el sensor de lleno esté activado.