Introducción
En el proyecto «La microelectrónica a tu servicio» del Praktikum UPV has estado trabajando con el Arduino, que es un cacharro basado en un «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 qué son MotoGP y Formula-1?, Pues una moto de MotoGP es un microcontrolador y un coche de Formula-1 es un microprocesador de propósito general. Los dos tienes cosas buenas y malas, pero son incapaces de hacerlo todo bien. Así por ejemplo a baja velocidad la moto gira más deprisa, pero el coche tiene una velocidad punta y una capacidad de frenado mucho mayores.
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 Deepblue 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. Saca el DNI, si tiene chip, eso es un microcontrolador.
En esta sesión praktikum 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 algo llamado PiFace.
Organizándose un poco
Para no perdernos, organizaremos la sesión en la siguiente serie de hitos:
- Poner a punto una Raspberry Pi
- Arrancar la Pi con una tarjeta SD que contiene el sistema operativo, que es el SW que permite que un ordenador funcione.
- Probar a leer y escribir sensores y actuadores con la PiFace
- Jugar 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. Es como si fuerais en patines sin casco, rodilleras, coderas…
Poner a punto la Raspberry Pi
Una Raspberry Pi (RPi) es un pequeño computador muy económico, sus capacidades y características son muy parecidas 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 de forma remota usando un navegador web.
En la imagen se muestran los diferentes conectores de una RaspberryPi 1 tipo B:
ACTIVIDAD: Echa un vistazo en Internet para hacer una idea de qué es y para qué la usa la gente. Si puedes, comenta en esta entrada del blog las aplicaciones que más te han llamado la atención.
ACTIVIDAD: Y después podéis 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. Mira solamente hasta la transparencia 7. Hala, a trabajar y a montar.
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. Arriba y abajo, el hardware es abajo y arriba del todo estamos nosotros.
Un sistema operativo muy popular es Linux. Linux es gratis y abierto, lo que permite que personas como tú y como yo lo vayan 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, gente que traduce la documentación…
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 es muy probable que 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 delaten.
Bueno, pues hemos puesto Linux y un montón de aplicaciones en una tarjeta SD de 8 GB. El Linux que hay en la SD se llama distribución Raspbian. Una distribución es una forma de colocar Linux y las aplicaciones desarrolladas para él de una forma más o menos fácil de utilizar para los usuarios. Hay diferentes «distribuciones» de Linux y cada una se orienta a la solución de un problema.
ACTIVIDAD: Mete la SD en la RPi y aliméntala. Al rato debería salir algo muy negro!!!!!!!!!.
Lee lo que pone en pantalla e intenta imaginar de qué va. Básicamente, se ha estado preparando todo el hardware (cacharrería), arrancando «servicios», etc. hasta llegar al punto en que el sistema operativo está listo para usarse. Diciéndolo de otra manera, se empieza en el «bare metal» o las profundidades electrónicas, hasta arriba del todo, donde todo es fácil y bonito. Gracias a que Linux es abierto, puedes tocar cualquier parte, pero cuanto más «abajo» más complicadillo.
¿Y ahora qué?. Don’t worry.
ACTIVIDAD: En login escribes «pi» y en «password escribes «raspberry». Ahora estás dentro. Todo tuyo … bueno, si quieres lo ponemos más fácil. Escribe «startx» y pulsas «intro». (NO siempre hay entorno gráfico: a veces es demasiado «pesado» y otras no tiene lugar porque nadie usa directamente el ordenador, por ejemplo el modem-router de la mayorías de las conexiones a Internet)
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 inferior-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. Comenta en esta entrada del blog qué te ha parecido.
Probar a leer y escribir sensores y actuadores con la PiFace
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 se trata en la materia 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. Si ves alguna muy interesante, haz un comentario en esta entrada del blog.
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 RP. Botón «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/
A una de las PiFace tienes conectados unos sensores y actuadores digitales que pretenden sustituir a los reales del depósito de líquidos.
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.
Aunque estemos en crisis, con un poco de imaginación nos podemos apañar. 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
Para probarlos:
ACTIVIDAD: Probar que la PiFace funciona bien usando el emulador y las instrucciones disponibles en http://www.piface.org.uk/guides/Install_PiFace_Software/fitting_PiFace_Digital/
¿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.
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 del ordenador 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. Comenta tu experiencia en esta entrada del blog y si has hecho algo parecido en tu instituto.
Más o menos, te debería salir algo como lo que muestra la siguiente imagen.
Enlazar el Scratch y los cacharros
Esto es 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 la aplicación LXTerminal (en el escritorio).
- Escribe en la terminal «pifacedigital-scratch-handler»
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». Mira el siguiente ejemplo que está también guardado en la memoria SD con el nombre «proves-piface».
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.