Scratch, un lenguaje basado en bloques diseñado para niños, es una excelente manera de introducir la codificación. Con él podemos aprender a crear juegos y controlar la electrónica a través del GPIO de la Raspberry Pi. Por muy bueno que sea Scratch 3, hay mucho que podemos hacer con GPIO, y GPIO es la mejor característica de Raspberry Pi. Entonces, ¿cómo podemos hacer avanzar nuestros proyectos Scratch GPIO? Para eso, necesitamos S3GPIO.
S3GPIO es Scratch 3 GPIO y fue creado por Simon Walters, un miembro de la comunidad Raspberry Pi que hace campaña para que los niños aprendan codificación y electrónica con Scratch. La primera incursión de Walters en GPIO para Scratch fue ScratchGPIO, basado en Scratch 1.4. este viejo versión todavía está disponible, pero se basa en una versión de idioma anterior.
En este tutorial, instalaremos S3GPIO y aprenderemos cómo usar un sensor ultrasónico como controlador de motor de CC, configurando efectivamente la velocidad en función de nuestra distancia desde el sensor. También aprenderemos cómo crear una parada de emergencia para el motor e incorporar el control del motor en una secuencia de código.
Todos los pasos del tutorial se pueden usar con varios motores, solo necesitamos conectar dos pines GPIO más al L9110S para controlar los motores de forma independiente.
Para este proyecto necesitarás
- La Raspberry Pi 3/4/400
- El último sistema operativo Raspberry Pi
- Sensor ultrasónico HCSR04-P (modelo 3V de HCSR04)
- Controlador de motor L9110S
- motor de corriente continua
- Fuente de alimentación de ruptura micro USB externa para motor
- 7 x cables hembra a hembra
- 2 x cables macho a hembra
- una conexión a internet
El código completo para este proyecto puede ser descargado de nuestro repositorio de Github.
conectando los componentes
(Crédito de la imagen: Tom’s Hardware)
Conectar la electrónica es relativamente simple, pero la cantidad de cables puede parecer confusa. Vamos a dividirlo en secciones. S3GPIO utiliza numeración de pines físicos, no el estándar de numeración BCM definido por Raspberry Pi Foundation. Eso significa que tenemos dos columnas de 20 pines. Sosteniendo el Pi con los puertos USB apuntando hacia el piso, las dos columnas comienzan con el pin 1 en la esquina superior izquierda y el pin 2 en la esquina superior derecha. La columna de la izquierda es la columna «impar», con los pines siguiendo un patrón de número impar; 1,3,5,7,9 etc. La columna de la derecha es la columna «par», con los números en progresión 2, 4, 6, 8, etc.
1. Usando cables de puente hembra a hembra, conecte el sensor ultrasónico HC-SR04P a la Raspberry Pi de la siguiente manera:
- GND a cualquier pin GND en la Raspberry Pi
- Vdc a 3V (pin 1)
- Activar pin 11
- Eco al pin 13.
dos Conecte los terminales del motor a los terminales del MOTOR. (no importa de qué manera) del L9110S. Atorníllelos en su lugar para que queden bien sujetos.
3 Conecte el GND en el L9110S a cualquier pin GND en el Raspberry Pi. Esto crea una referencia base común necesaria para que el proyecto funcione.
4 Conecte + desde una fuente de alimentación micro USB de 5V externa al VDC L9110S motor de control.
5 Conecte el pin – (GND) de la fuente de alimentación a cualquier pin GND de la Raspberry Pi.
6 Conecte dos cables de puente de hembra a hembra que conectan los terminales A1-A y A1-B en el L9110S a los pines 8 y 10 en el Raspberry Pi. Esto significa que podemos usar el GPIO para controlar el L9110S, haciendo que el motor cobre vida.
Ahora tenemos un motor de alimentación externa, que está conectado a la Raspberry Pi, lo que nos permite controlarlo desde el S3GPIO. También debemos tener un sensor ultrasónico HCSR04-P conectado y listo para ser utilizado como controlador de velocidad. Consulte el diagrama de este proyecto para asegurarse de que sus conexiones sean correctas.
Instalación de S3GPIO
1 Enciende tu Raspberry Pi y abre una terminal. Ingrese el siguiente comando para descargar una instalación. Tenga en cuenta que este comando descargará el instalador, que suele ser un gran riesgo de seguridad para las máquinas de producción, pero en este caso es seguro.
wget https://git.io/vMS6T -O isgh8.sh
dos Ejecute el comando para instalar S3GPIO.
sudo bash isgh8.sh
3 Reinicia tu Raspberry Pi para que los cambios surtan efecto.
4 Haga doble clic izquierdo en el icono S3GPIO y seleccione «Ejecutar en Terminal» para iniciar tres aplicaciones. Se iniciará un servidor web, ScratchGPIO y un navegador Chromium con una extensión especial S3GPIO y pueden pasar unos minutos hasta que vea S3GPIO.
5 Haga clic en «Ver el interior» para abrir el editor S3GPIO en línea.
Creando el Proyecto
S3GPIO tiene la misma interfaz que Scratch 3, pero también tiene una serie de bloques S3GPIO en “Mis Bloques” que usaremos.
1. En la sección Eventos, arrastre «Cuando se hizo clic en la bandera verde» en el área de codificación. Este es el comienzo de nuestro código y probará el sensor ultrasónico HCSR04-P.
(Crédito de la imagen: Tom’s Hardware)
2. En Mis Bloques, arrastre el comando S3GPIO y conectarlo al bloque anterior. En la caja blanca tipo ultra11.13 Estos son los pines para el disparador y el eco en el sensor.
(Crédito de la imagen: Tom’s Hardware)
3 Arrastra en un bucle Forever de control y conectarlo a bloques anteriores.
(Crédito de la imagen: Tom’s Hardware)
4. En Mis bloques, arrastrar S3GPIO leer y ponlo dentro del bucle para siempre. En la caja blanca tipo ultra 13 esto leerá el pin de eco del sensor ultrasónico y, detrás de escena, se convertirá en una medida en centímetros.
(Crédito de la imagen: Tom’s Hardware)
5. Por apariencia, arrastre un Say Hello! cuadra y colóquelo debajo del anterior. De las Variables, sensor de arrastre y colóquelo sobre el «¡Hola!» esto le dirá la lectura de distancia del sensor ultrasónico.
(Crédito de la imagen: Tom’s Hardware)
6. En Mis Bloques, arrastre S3GPIO configurado en _ a _ y colóquelo debajo del bloque anterior. En el primer espacio en blanco, Tipo Power8, y en el segundo coloque otro bloque de sensor en Variables. Esto establecerá el pin del motor conectado al pin 8 al valor devuelto por el sensor.
(Crédito de la imagen: Tom’s Hardware)
7. Control, arrastre un bloque de espera de 1 segundo, conéctelo al bloque anterior y edite el bloque para esperar 0,1 segundos. Su código ahora debería verse así.
(Crédito de la imagen: Tom’s Hardware)
Con el código listo, vamos haga clic en la bandera verde para empezar. El motor debería cobrar vida. Ahora mueva su mano más cerca de los dos «ojos» del sensor, el motor desacelerará. Haz clic en el botón de parada (esquina superior derecha del escenario), ¡pero el motor no se detiene! Necesitamos hacer un freno.
Añadiendo más al código: construyendo un freno
1. En una nueva sección de código, colocar un bloque Cuando se presiona la tecla de espacio, que se encuentra en Eventos.
(Crédito de la imagen: Tom’s Hardware)
2. En Mis Bloques, arrastre dos bloques S3GPIO configurados de _ a _ y conectarlos al anterior. Cambie el primer conjunto de S3GPIO a Power8 a 0, y el segundo para Power10 a 0.
(Crédito de la imagen: Tom’s Hardware)
3. Control, arrastre detener todo y colóquelo debajo del bloque anterior. Su código ahora debería verse así.
(Crédito de la imagen: Tom’s Hardware)
Haga clic en la bandera verde y pruebe si el sensor responde a su mano. El motor debe ir rápido o lento dependiendo de dónde esté tu mano. Cuando haya terminado, presione la barra espaciadora para detener el motor.
Añadiendo más al código: creando una secuencia
Además de utilizar el sensor, podemos controlar el motor mediante una serie de instrucciones, una secuencia. Esta secuencia hará girar el motor en una dirección y luego retrocederá antes de detener finalmente los motores. La secuencia iterará (se repetirá) 10 veces antes de finalizar y esperará a que el usuario active la secuencia nuevamente.
1. De Eventos, arrastrar cuando se presiona la tecla de espacio y iniciar una nueva secuencia de código. Cambia la tecla de espacio a una r usando la lista desplegable.
(Crédito de la imagen: Tom’s Hardware)
2. Control, arrastrar repetir 10 y colóquelo debajo del bloque anterior.
(Crédito de la imagen: Tom’s Hardware)
3. En Mis bloques, arrastre dos bloques de comando S3GPIO y colóquelos dentro del bucle. Cambie el primero al Pin 8 en, y el segundo para anular 10.
(Crédito de la imagen: Tom’s Hardware)
4. Control, arrastre espere 1 segundo y colocarlo debajo de los bloques anteriores dentro del bucle.
(Crédito de la imagen: Tom’s Hardware)
5 Haga clic derecho en el bloque superior S3GPIO y seleccione duplicado. Duplicará los tres bloques que acabamos de crear. Coloca estos tres nuevos bloques dentro del bucle, debajo del anterior. En estos bloques, cambiar el pin 8 de encendido a apagado, y Pin 10 apagado a encendido.
(Crédito de la imagen: Tom’s Hardware)
6 Repite el duplicado para estos tres bloques. y coloque los tres recién duplicados debajo de ellos, todavía dentro del bucle. Definir los comandos S3GPIO por lo que ambos están apagados.
(Crédito de la imagen: Tom’s Hardware)
Este proyecto apareció por primera vez en una edición de Revista en formato Linux.