Como controlar los pines GPIO desde Scratch

Publicado por Loli Diéguez en

En este tutorial, te mostraré cómo instalar el paquete de expansión ScratchGPIO en tu placa Raspberry Pi para que controles un LED desde un juego en Scratch, podrás controlar el comportamiento de los LED desde unos botones conectados a la placa y que actuarán sobre Scratch.

Para que puedas seguir este articulo necesitarás preparar un circuito sencillo que te mostraré y también será preciso que instales el paquete ScratchGPIO creado por Simon Walters de Simplesi, ve a éste enlace que te indico si quieres aprender más, aquí solo te indicaré lo básico para que puedas empezar.

Primero prepararemos la Raspberry Pi

Conectaremos a la placa tres LEDs y varios botones que usaremos para interactuar con ScratchGPIO. Los LED los conectaremos con una resistencia de protección de 220 OHM y los botones con una resistencia de 1K OHM para limitar la corriente que pasa por los componentes y evitar así estropearlos.

Esquema conexiones Raspberry Pi

La imagen de arriba úsala como guía para conectar todo, seguiremos ese esquema también para llamar a los pines desde el código. Los números de pin que utiliza el módulo GPIO y el código Scratch son los números de pin físicos, no los números GPIO o lógicos.

  • Conecta pines 3 y 5 de la placa a los botones. Estos pines se designan como entrada por defecto en el software ScratchGPIO.
  • Conecta los LED rojo, amarillo y verde a los pines físicos 11, 12 y 13 de la Pi.
  • Asegura que las resistencias adecuadas están en la placa de pruebas. Las resistencias de 220 ohm son para los LED y las resistencias de 1K ohm son para los botones.

Instala ScratchGPIO

El software ScratchGPIO no cambia ni reemplaza el scratch que ya tengas instalado unicamente agrega un conjunto de scripts de Python que se integran con tu instalación actual, añade la capacidad de controlar y leer los pines GPIO a nivel de hardware. Scratch continuará funcionando normalmente después de esta instalación.

Sin embargo, verás un nuevo icono en el escritorio de tu Raspberry Pi que te permitirá lanzar a los scripts de soporte de GPIO y Scratch juntos. El instalador es simple y fácil de usar. Sigue las instrucciones a continuación para descargar e instalar el paquete ScratchGPIO. Abre un terminal de comandos y ejecuta esto:

wget https://git.io/vQsDn -O isgh8dev.sh
sudo bash isgh8dev.sh
Si todo ha ido bien verás una pantalla como esta:
Instalacion scratch2gpio
Y en el escritorio de Raspbian verás que han aparecido estos iconos:
 
Iconos que aparecen en el escritorio de Raspbian

Juego Scratch controlado por GPIO

El tema de escribir programas de Scratch es muy amplio por lo que aquí no entraremos en mucho detalle, si quieres saber más el sitio web de Scratch hace un excelente trabajo explicando con gran claridad todos los aspectos que necesites.

En los siguientes pasos, descargarás y ejecutarás un juego desde cero que aprovecha las extensiones GPIO y la configuración de la placa que has montado antes. El juego establece los pines de salida 11, 12 y 13 para iluminar los LED y mostrar la salud del personaje del juego, el gato.

A medida que el gato pierde salud, los LED se apagan uno por uno hasta que todos están apagados y el juego termina. Durante el juego, el programa verifica el estado de los pines de entrada 3 y 5, y cuando los pines están a 0 (o conectados a tierra), Gato se mueve hacia arriba y hacia abajo para tratar de evitar al oponente, Rex.

  • Abre tu navegador de internet favorito en Raspbian
  • Descarga el archivo Scratch gpiogame.sb
  • Guarda el archivo descargado en / home / pi / scratch / Documents / Scratch Projects
  • Inicia Scratch GPIO desde el escritorio
  • Haz clic en Aceptar en el cuadro de diálogo que dice que las conexiones del sensor remoto están habilitadas . Este mensaje indica que Scratch se está comunicando con el subsistema GPIO.
  • Seleccione Archivo> Abrir
  • Selecciona el archivo gpiogame para cargar el juego.
  • Haz clic en la bandera verde en la esquina superior derecha de la ventana de Scratch para comenzar el juego
  • Presiona los botones en la placa para ayudar a Gato a evitar a Rex. Haz clic en la bandera verde de nuevo si deseas reiniciar el juego.

A medida que juegues, verás cómo los tres LED de la placa reflejan el nivel de salud de Gato y que los botones realmente mueven al personaje hacia arriba y hacia abajo.

Los LED se encienden cuando los pines a los que están conectados están encendidos. El LED se iluminará y la resistencia evitará que pase demasiada corriente. Haz clic en el icono del escenario en el panel inferior izquierdo de la ventana Scratch. Esto te mostrará el script que se ejecuta.

Los pulsadores conectan los pines 3 y 5 a tierra a través de la resistencia cuando se presionan. La Raspberry Pi reconoce el pin como bajo o 0 en Scratch. Presiona en el icono del gato en el panel inferior derecho de la ventana para llevar el código al panel central.

En el bloque de código inferior se ve como el código comprueba el estado de los pines 3 y 5. Cuando se detecta que cualquiera de los dos es bajo o 0, se envía el mensaje hacia arriba o hacia abajo.

Código Scratch

 

Scratch es un marco de programación muy accesible y fácil de aprender tanto por niños como por adultos. Su estrecha asociación con la Raspberry Pi y su énfasis educativo ha sido una combinación perfecta. El proyecto ScratchGPIO ofrece la posibilidad de controlar los pines GPIO desde Scratch de una manera muy potente. 

El nivel de control de hardware que ofrece el paquete ScratchGPIO permite que incluso los programadores principiantes puedan interactuar con el mundo físico con un marco de programación simple y familiar.

Al seguir este tutorial, has aprendido cómo instalar el paquete ScratchGPIO, dónde buscar más información sobre él y Scratch. Además, has montado un circuito en tu placa Raspberry Pi que te ha permitido experimentar con los pines GPIO y jugar a un videojuego sencillo.

 

Por mi parte espero que este articulo te guste y decirte que lo actualizare en cuanto pueda para incluir mas detalles sobre este paquete adicional de Scratch!

Compartir esta publicación



← Publicación más antigua Publicación más reciente →