Cómo usar Raspberry Pi para controlar GPIO con Python

El Raspberry Pi es una computadora de un solo tablero versátil que se ha convertido en un favorito entre aficionados, educadores y profesionales por igual. Una de sus características más poderosas es la capacidad de interactuar con el mundo físico a través de sus pines de entrada/salida de propósito general (GPIO). Al aprovechar Python, un lenguaje de programación potente y amigable para principiantes y potentes, puede controlar estos pines GPIO para construir una amplia gama de proyectos, desde parpadeadores LED simples hasta complejos sistemas de automatización del hogar. En esta publicación de blog, lo guiaremos a través de los conceptos básicos de usar Raspberry Pi para controlar GPIO con Python.

Comprender los pasadores de GPIO

Los pines GPIO son interfaces versátiles en la Raspberry Pi que le permiten conectar y controlar dispositivos externos como LED, sensores, motores y más. Dependiendo del modelo de Raspberry Pi, encontrará un número variable de pines GPIO dispuestos en un patrón específico. Estos pines se pueden configurar como entradas o salidas:

  • Aporte: Lea señales de dispositivos externos (por ejemplo, botones, sensores).
  • Producción: Envíe señales a dispositivos externos (por ejemplo, LED, relés).

Antes de sumergirse en el aspecto de la programación, es esencial comprender el diseño del pin de su Raspberry Pi. Consulte el diagrama oficial de Pinout de Raspberry PI GPIO para obtener información precisa específica para su modelo.

Configuración de su Raspberry Pi

Para comenzar a controlar los pines GPIO con Python, asegúrese de que su Raspberry Pi esté configurada correctamente:

  1. Instale el último sistema operativo Raspberry Pi: Asegúrese de que su Raspberry Pi esté ejecutando la última versión de Raspberry Pi OS. Puede descargarlo desde el sitio web oficial de Raspberry Pi y usar herramientas como Raspberry Pi Imager para flotarlo en su tarjeta SD.
  2. Actualice su sistema: Abra el terminal y ejecute los siguientes comandos para actualizar los paquetes de su sistema:
sudo apt update
sudo apt upgrade -y
  • Instale la biblioteca de Python GPIO: La biblioteca RPI.GPIO es una opción popular para interactuar con los pasadores GPIO en Python. Instálelo con PIP:
  • sudo apt install python3-rpi.gpio
    

    Escribiendo su primer guión GPIO Python

    Comencemos con un proyecto simple: parpadear un LED. Necesitará los siguientes componentes:

    • Frambuesa pi
    • CONDUJO
    • Resistencia de 220 ohmios
    • Cables de placa y jersey

    Cableado el LED:

    1. Conecte la pierna larga (ánodo) del LED al pin 17 GPIO a través de la resistencia.
    2. Conecte la pierna corta (cátodo) del LED a un pin de tierra (GND) en la Raspberry Pi.

    Ahora, escribamos el script de Python para controlar el LED.

    Parpadeando un LED con Python

    import RPi.GPIO as GPIO
    import time
    
    # Use BCM GPIO numbering
    GPIO.setmode(GPIO.BCM)
    
    # Set GPIO pin 17 as output
    LED_PIN = 17
    GPIO.setup(LED_PIN, GPIO.OUT)
    
    try:
        while True:
            GPIO.output(LED_PIN, GPIO.HIGH)  # Turn LED on
            time.sleep(1)                     # Wait for 1 second
            GPIO.output(LED_PIN, GPIO.LOW)   # Turn LED off
            time.sleep(1)                     # Wait for 1 second
    except KeyboardInterrupt:
        pass
    finally:
        GPIO.cleanup()  # Reset GPIO settings
    

    Explicación:

    • import RPi.GPIO as GPIO: Importa la biblioteca rpi.gpio.
    • import time: Importa el módulo de tiempo para la funcionalidad del sueño.
    • GPIO.setmode(GPIO.BCM): Establece el esquema de numeración de pin GPIO en BCM (canal Broadcom SoC).
    • GPIO.setup(LED_PIN, GPIO.OUT): Configura el pin 17 GPIO como un pin de salida.
    • El try Block contiene un bucle infinito que enciende y apaga el LED cada segundo.
    • GPIO.cleanup(): Limpia la configuración de GPIO para garantizar una salida limpia.

    Ejecutando tu guión

    Guarde su guión como blink_led.py y ejecutarlo usando el siguiente comando:

    python3 blink_led.py
    

    Debería ver el LED conectado al GPIO PIN 17 parpadeando cada segundo. Para detener el script, presione Ctrl + C.

    Expandiendo su proyecto

    Una vez que haya dominado parpadear un LED, puede explorar proyectos más complejos combinando diferentes sensores y actuadores. Aquí hay algunas ideas para comenzar:

    • Interacción del botón: Controle el LED usando un botón físico. Esto implica configurar un pin GPIO como entrada y leer su estado en su guión de Python.
    • Registro de datos del sensor: Use sensores como detectores de temperatura o movimiento para recopilar datos y registrarlos para su análisis.
    • Automatización del hogar: Los dispositivos de control de forma remota integrando el control GPIO con interfaces web o aplicaciones móviles.

    Controlar un botón

    Extendamos nuestro ejemplo anterior agregando un botón para controlar el LED. Necesitarás:

    • Pulsador
    • Resistencia de 10k-ohmios
    • Cables de puente adicionales

    Cableado el botón:

    1. Conecte una pierna del botón al pin 27 de GPIO.
    2. Conecte la otra pierna a un pin de tierra (GND) a través de una resistencia de 10k-ohmios.

    Aquí está el script de Python para controlar el LED con el botón:

    import RPi.GPIO as GPIO
    import time
    
    # Use BCM GPIO numbering
    GPIO.setmode(GPIO.BCM)
    
    # Define GPIO pins
    LED_PIN = 17
    BUTTON_PIN = 27
    
    # Set up GPIO pins
    GPIO.setup(LED_PIN, GPIO.OUT)
    GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
    
    try:
        while True:
            button_state = GPIO.input(BUTTON_PIN)
            if button_state == GPIO.HIGH:
                GPIO.output(LED_PIN, GPIO.HIGH)  # Turn LED on
            else:
                GPIO.output(LED_PIN, GPIO.LOW)   # Turn LED off
            time.sleep(0.1)
    except KeyboardInterrupt:
        pass
    finally:
        GPIO.cleanup()
    

    Explicación:

    • GPIO PIN 27 se configura como una entrada con una resistencia desplegable para garantizar un estado estable cuando no se presiona el botón.
    • El script lee continuamente el estado del botón y enciende el LED cuando se presiona el botón.

    Las mejores prácticas y consejos de seguridad

    Cuando se trabaja con pines GPIO, es crucial adherirse a las mejores prácticas para evitar dañar su Raspberry PI o componentes conectados:

    • Apagado al conectar hardware: Siempre apague su Raspberry Pi antes de conectar o desconectar hardware para evitar circuitos cortos.
    • Use resistencias de limitación de corriente: Proteja sus componentes utilizando resistencias apropiadas, especialmente cuando trabaja con LED.
    • Cableado de doble verificación: Asegúrese de que todas las conexiones sean correctas para evitar daños accidentales a los pines GPIO.
    • Tratar con cuidado: Evite la descarga estática al manejar la frambuesa PI y los componentes cuidadosamente.

    Conclusión

    El control de los pines GPIO con Python en una Raspberry Pi abre un mundo de posibilidades para crear proyectos interactivos y automatizados. Desde tareas simples como los LED parpadeantes hasta sistemas más complejos que involucran múltiples sensores y actuadores, dominar el control de GPIO es una habilidad fundamental para cualquier entusiasta de Raspberry PI. Siguiendo los pasos descritos en esta guía y adhiriéndose a las mejores prácticas, estará en camino de construir proyectos emocionantes e innovadores.

    ¡Feliz tinking!

    Escribir un comentario

    Notice an Issue? Have a Suggestion?
    If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.