2 formas de agregar un botón a su proyecto Raspberry Pi
Anuncio
Aprender a usar los pines GPIO en su Raspberry Pi abre todo un mundo de posibilidades. Los principios básicos aprendidos a través de proyectos para principiantes allanan el camino hacia un conocimiento útil de la electrónica y la programación de bricolaje.
Este tutorial le mostrará dos formas de agregar un botón a su proyecto Raspberry Pi. El botón se usará para controlar un LED. Las instrucciones escritas están disponibles debajo del video.
Necesitará
Para comenzar, asegúrese de tener los siguientes componentes:
- 1 x Raspberry Pi (Cualquiera servirá, el modelo 3B se usa en este tutorial)
- 1 x botón pulsador
- 1 x LED
- 1 x resistencia de 220 ohmios (los valores más altos están bien, su LED será más tenue)
- 1 x placa de prueba
- Conectar los cables
Una vez reunidos, debe tener componentes que se vean así:
También necesitará una tarjeta SD con el sistema operativo Raspbian instalado. La forma más rápida de hacerlo es con la imagen NOOBS (Nuevo software listo para usar). Las instrucciones sobre cómo hacer esto están disponibles en este video:
Configurando el circuito
Utilizará los pines GPIO del Pi para hacer el circuito, y si no está familiarizado con ellos, nuestra guía de pines GPIO Raspberry Pi lo ayudará. El circuito aquí es casi el mismo que en nuestro proyecto anterior de LED Raspberry Pi, con la adición del botón que usará hoy.
Configure su circuito de acuerdo con este diagrama:
- Los pines 5v y GND se conectan a los rieles de alimentación de la placa de pruebas.
- El pin 12 (GPIO 18) se conecta a la pata positiva del LED.
- Una pata de la resistencia se une a la pata negativa del LED, y la otra pata se une al riel de tierra de la placa de pruebas.
- El pin 16 (GPIO 23) se conecta a un lado del botón, el otro lado se conecta al riel de tierra de la placa de pruebas.
Una vez que está configurado, así es como debería verse:
Verifique su circuito para asegurarse de que sea correcto y luego encienda su Raspberry Pi.
Método 1: la biblioteca RPi.GPIO
Una vez que el Pi se ha iniciado, dirígete al menú y selecciona Programación> Thonny Python IDE . Se abrirá un nuevo script de Python. Si eres totalmente nuevo en Python, es un gran lenguaje para principiantes y hay muchos lugares excelentes para aprender más sobre Python después de que hayas terminado con este tutorial.
Comience importando la biblioteca RPi.GPIO y configurando el modo de placa.
import RPi.GPIO as GPIO GPIO.setmode(GPIO.BOARD)
Ahora declare las variables para el LED y los números de pin del botón.
ledPin = 12 buttonPin = 16
Tenga en cuenta que, dado que el modo de tablero está configurado en TABLERO, estamos usando los números de pin en lugar de los números GPIO. Si eso es confuso para usted, un cuadro de distribución de Raspberry Pi puede ayudarlo a aclararlo.
Configurar el botón
Es hora de configurar los pines GPIO. Ajuste el pin del LED a la salida y el pin del botón a la entrada con una resistencia pull-up
GPIO.setup(ledPin, GPIO.OUT) GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
El texto después de GPIO.IN se refiere a la resistencia pull-up interna de la Raspberry Pi. Debe habilitar esto para obtener una lectura limpia del botón. Dado que el botón va al pin de tierra, necesitamos una resistencia pull-up para mantener el pin de entrada ALTO hasta que lo presione.
Antes de continuar, veamos las resistencias pull-up y pull-down.
Intermedio: Resistencias Pull Up / Pull Down
Cuando configura un pin GPIO para la entrada, lee ese pin para determinar su estado. En este circuito, debe leer si un pin es ALTO o BAJO para activar el LED cuando se presiona el botón. Esto sería simple si esos fueran los únicos estados que puede tener un pin, pero desafortunadamente, hay un tercer estado: FLOTANTE .
Un pin flotante tiene un valor entre alto y bajo, lo que hace que la entrada actúe de manera impredecible. Las resistencias pull-up / pull-down resuelven esto.
La imagen de arriba es un diagrama simplificado de un botón y una Raspberry Pi. El pin GPIO se conecta a tierra a través del botón. La resistencia pull-up interna conecta el pin GPIO a la fuente de alimentación interna Pi. Esta corriente fluye y el pasador se eleva con seguridad a ALTO.
Cuando presiona el botón, el pin GPIO se conecta directamente al pin de tierra, y el botón dice bajo.
Las resistencias desplegables son para cuando el interruptor está conectado al pin de alimentación. Esta vez, la resistencia interna conecta el pin GPIO a tierra, manteniéndolo en BAJO hasta que presione el botón.
La teoría de resistencia pull-up y pull-down es confusa a primera vista, pero es un conocimiento importante cuando se trabaja con microcontroladores. Por ahora, si no lo entiendes, ¡no te preocupes!
Continuemos donde lo dejamos.
El programa de bucle
A continuación, configure el ciclo del programa:
while True: buttonState = GPIO.input(buttonPin) if buttonState == False: GPIO.output(ledPin, GPIO.HIGH) else: GPIO.output(ledPin, GPIO.LOW)
El ciclo verdadero True ejecuta continuamente el código dentro de él hasta que finalizamos el programa. Cada vez que se repite, actualiza el buttonState leyendo la entrada del buttonPin . Mientras no se presiona el botón, permanece ALTO .
Una vez que se presiona el botón, buttonState se vuelve BAJO . Esto activa la instrucción if, ya que False es lo mismo que LOW, y el LED se enciende. La instrucción else apaga el LED cada vez que buttonPin no es False.
Guarde y ejecute su script
Guarde su script haciendo clic en Archivo> Guardar como y eligiendo un nombre de archivo. Puede ejecutar el boceto haciendo clic en el botón verde Reproducir en la barra de herramientas de Thonny.
¡Ahora presiona el botón y tu LED debería encenderse! Presione el botón rojo Detener en cualquier momento para detener el programa
Si tiene dificultades, verifique su código y la configuración del circuito a fondo en busca de errores e intente nuevamente.
Método 2: GPIO Zero Library
La biblioteca RPi.GPIO es fantástica, pero hay un nuevo chico en el bloque. La GPIO Zero Library fue creada por el administrador de la comunidad Raspberry Pi, Ben Nuttall, con la intención de hacer que el código sea más simple y fácil de leer y escribir.
Para probar la nueva biblioteca, abra un nuevo archivo Thonny e importe la biblioteca.
from gpiozero import LED, Button from signal import pause
Notarás que no importaste toda la biblioteca. Como solo está utilizando un LED y un botón, solo necesita esos módulos en el script. También importamos Pausa desde la biblioteca de señales, que es una biblioteca de Python para la gestión de eventos.
Configurar los pines es mucho más fácil con GPIO Zero:
led = LED(18) button = Button(23)
Dado que la biblioteca GPIO Zero tiene módulos para el LED y el botón, no necesita configurar entradas y salidas como antes. Notarás que aunque los pines no han cambiado, los números aquí son diferentes a los anteriores. Esto se debe a que GPIO Zero solo usa los números PIN de GPIO (también conocidos como números Broadcom o BCM).
El resto del script tiene solo tres líneas:
button.when_pressed = led.on button.when_released = led.off pause()
La llamada pause () aquí simplemente detiene la salida del script cuando llega al final. Los eventos de dos botones se activan cada vez que se presiona y suelta el botón. ¡Guarde y ejecute su script y verá el mismo resultado que antes!
Dos formas de agregar un botón a Raspberry Pi
Fuera de las dos formas de configurar el botón, el método GPIO Zero parece ser el más fácil. Todavía vale la pena aprender sobre la biblioteca RPi.GPIO, ya que la mayoría de los proyectos principiantes de Raspberry Pi la usan. Tan simple como es este proyecto, el conocimiento se puede utilizar para varias cosas.
Usar los pines GPIO es una excelente manera de aprender e inventar sus propios dispositivos, pero está lejos de todo lo que puede hacer con el Pi. Nuestra guía no oficial de Raspberry Pi Raspberry Pi: el tutorial no oficial Raspberry Pi: el tutorial no oficial Si usted es un propietario actual de Pi que desea obtener más información o un propietario potencial de este dispositivo del tamaño de una tarjeta de crédito, esta no es una guía quieres perderte ¡Leer más está repleto de ideas creativas y tutoriales que puedes probar tú mismo! Para otro tutorial como este, vea cómo hacer un botón conectado a Wi-Fi Cómo hacer su propio botón conectado a Wi-Fi con ESP8266 Cómo hacer su propio botón conectado a Wi-Fi con ESP8266 En este tutorial, aprenderá cómo para crear un botón habilitado para Wi-Fi usando NodeMCU e IFTTT. Lee mas .
Explore más sobre: Tutoriales de proyectos de bricolaje, GPIO, Python, Raspberry Pi.