Aprende a usar los pines de Raspberry Pi GPIO con scratch

En este tutorial, te mostraré cómo instalar el paquete de expansión ScratchGPIO, cómo ensamblar una placa de pruebas con LED y botones, y ejecutar un juego Scratch simple que usa los LED y los botones de la placa para jugar..


Rasguño

Con el énfasis de Raspberry Pi en la educación, tiene mucho sentido que Scratch esté preinstalado en la versión Raspbian predeterminada y esté disponible como un ícono en el escritorio.

Simon Walters, @cymplecy en Twitter, ha creado una expansión para Scratch que le permite a su programa leer y escribir el estado de los pines GPIO de la Raspberry Pi. Simon escribe sobre su creación, ScratchGPIO en Cymplecy y continúa manteniéndolo en su repositorio de github..


Reúne los componentes

  • Raspberry Pi - Modelo B con fuente de alimentación, tarjeta SD, monitor, teclado y mouse
  • LED rojo, amarillo y verde
  • 3 - Resistencia de 220 ohmios (rojo, rojo, marrón)
  • 2 - Resistencia de 1K Ohm (Marrón, Negro, Rojo)
  • 2 - momentáneo en el botón pulsador
  • Breadboard de tamaño completo o medio
  • 6 - Cable de puente macho a hembra

Armar el tablero de pan

El tablero alojará los LED y los botones con la bruja ScratchGPIO interactuarán. Los LED necesitan una resistencia limitadora de corriente de 220 OHM y los botones necesitan las resistencias de 1K OHM para garantizar que las clavijas no pasen demasiada corriente..

Usando la imagen de abajo, configure la placa y los puentes a los pines GPIO que se muestran en el diagrama. Los números de pin que utilizan 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. Consulte las imágenes en la página de periféricos de bajo nivel de RPi para identificar los números de pin.

  • Conecte los cables de los pasadores físicos 3 y 5 a los botones de la placa de pruebas como se muestra a continuación. Estos pines se designan como entrada por defecto en el software ScratchGPIO.
  • Conecte los LED rojo, amarillo y verde de la placa de pruebas a los pines físicos 11, 12 y 13 de la Pi que ScratchGPIO ha designado como pines de salida..
  • Asegúrese de 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.

Diagrama de Breadboard ensamblado

Configura la Raspberry Pi

Existen varias guías para comprar e instalar un sistema operativo en su Raspberry Pi. Instala el último sistema operativo Raspbian. Una vez que su Raspberry Pi esté configurada y arrancada al escritorio gráfico, continúe con el siguiente paso.


Instalar ScratchGPIO

El software ScratchGPIO no cambia ni reemplaza el scratch, agrega un conjunto de scripts de Python que se integran con Scratch y agregan la capacidad de controlar y leer los pines GPIO en el nivel de hardware. Scratch continuará funcionando normalmente después de la instalación.

Sin embargo, habrá un nuevo ícono en el escritorio gráfico de la Raspberry Pi que lanzará los scripts de soporte de GPIO y Scratch juntos. El instalador es simple y fácil de usar. Siga las instrucciones a continuación para descargar e instalar el paquete ScratchGPIO.

  • Haga doble clic y lanzar LXTerminal
  • Ejecuta los siguientes comandos:
 wget https://raw.github.com/cymplecy/scratch_gpio/master/install_scratchgpio4.sh -O isgh.sh sudo sh isgh.sh
  • El script del instalador se completará cortésmente diciendo Gracias y Terminado. Diciendo De nada Es opcional pero sin duda lo cortés que hacer..
  • Cierra el LXTerm Ventana y observe el nuevo icono titulado: Scratch GPIO4

Obtener el programa de ejemplo Scratch

El tema de escribir programas de Scratch es amplio y profundo. Este tutorial no cubre los detalles de la programación de Scratch, pero el sitio web de Scratch realiza un excelente trabajo al presentar y enseñar Scratch si desea obtener más información..

En los pasos a continuación, descargará y ejecutará un juego desde cero que aprovecha las extensiones GPIO y la configuración de tablero que creó. El juego establece los pines de salida 11, 12 y 13 para iluminar los LED y mostrar la salud del héroe del juego, Cat..

A medida que Cat 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 bajos o conectados a tierra, Cat se mueve hacia arriba y hacia abajo para tratar de evitar que el oponente se cargue, Rex.

  • Lanzamiento Midori Desde el escritorio de tu Raspberry Pi.
  • Descarga el archivo Scratch gpiogame.sb
  • Guarde el archivo descargado en / home / pi / scratch / Documents / Scratch Projects
  • Cerrar Midori
  • Lanzamiento Scratch GPIO4 desde el escritorio
  • Hacer clic DE ACUERDO en el cuadro de diálogo que dice Conexiones remotas del sensor habilitadas. Este mensaje indica que Scratch se está comunicando con el subsistema GPIO.
  • Seleccionar Archivo> Abrir
  • Selecciona el archivo gpiogame para cargar el juego
  • Haga clic en el Bandera verde en la esquina superior derecha de la ventana de Scratch para comenzar el juego
  • Presiona los botones en el tablero para ayudar a Cat a evitar a Rex. Haz clic en la bandera verde otra vez si quieres reiniciar el juego.

A medida que juegues, verás cómo los tres LED de la placa de pruebas reflejan el nivel de salud de Cat y que los botones realmente mueven a Cat hacia arriba y hacia abajo. Señalaré los bits de código que interactúan con los pines GPIO de Pi, a continuación. Como referencia, puede encontrar la documentación completa en el paquete ScratchGPIO en el blog de los autores.

Los LED se encienden cuando los pines a los que están conectados están encendidos o encendidos. El LED se iluminará y la resistencia evitará que pase demasiada corriente. Haga clic en el Escenario Icono en el panel inferior izquierdo de la ventana de Scratch. Esto traerá el script para el objeto de escenario al editor en el centro de la ventana.

El fragmento de código a continuación es la rutina de manejo de LED y estado. Cuando el bloque de código recibe el UpdateHealth mensaje de difusión, evalúa la variable de salud y establece los pines bajos cuando se pierde la salud.


Rutina de manejo de salud LED

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

En el bloque de código superior, después de algunas tareas de configuración, el código comprueba el estado de los pines 3 y 5. Cuando se detecta que cualquiera de los dos es bajo o 0, aparece el mensaje arriba o abajo se ha enviado. Más abajo en el gato Los scripts son bloques de código que reciben los mensajes direccionales y mueven el sprite..


Rutina de manejo de botones

Mi puntaje más alto fue 34. Mira si puedes vencer eso!


Alto puntaje Brag

Resumen

Scratch es un marco de programación muy accesible y fácil de aprender para niños pequeños y adultos. Su estrecha asociación con la Raspberry Pi y su énfasis educativo ha sido una combinación perfecta. El proyecto ScratchGPIO trae el control y la detección de los pines GPIO de bajo nivel de los PIO a Scratch de una manera muy poderosa. El autor continúa mejorando el paquete para admitir pantallas LCD, motores, componentes de brújula, sensores de distancia y otros componentes electrónicos y robóticos.

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, ha aprendido cómo instalar el paquete ScratchGPIO, dónde buscar más información sobre él y Scratch. Además, ha montado un circuito de tablero de pruebas fácil de usar que le permitirá experimentar de manera segura con el control Scratch y GPIO para entrada y salida.

Finalmente, instaló un juego que puede usarse como ejemplo y como base para ser modificado para aprender y experimentar. A medida que el proyecto ScratchGPIO continúa madurando y expandiéndose, puede esperar ver una nueva generación de robótica Raspberry Pi controlada por Scratch.