Cómo usar Python para acceder a los pines GPIO en su frambuesa Pi

  1. Ordenadores
  2. Pieza de frambuesa
  3. Cómo usar Python para acceder a los pines GPIO en su frambuesa Pi

Libro Relacionado

Por Sean McManus, Mike Cook

Puedes acceder a los pines GPIO de tu frambuesa Pi con Python. A diferencia de los bloques de programa basados en gráficos de Scratch, Python utiliza instrucciones totalmente basadas en texto. Su gran poder es que el lenguaje básico de Python puede ser extendido para hacer más cosas mediante el uso de bibliotecas. Estas son funciones que pueden ser escritas en Python o en cualquier otro lenguaje para extender lo que Python puede hacer.

Al usar Python para acceder a los pines GPIO, tienes varias librerías diferentes que puedes elegir que te pueden dar acceso a ellos. Pueden proporcionar no sólo acceso normal de entrada/salida sino también acceso a algunas de las funciones o capacidades especiales de ciertos pines.

En los primeros días de la frambuesa Pi, el único acceso a los pines GPIO era si se estaba ejecutando en modo Supervisor o Root. Afortunadamente, esto ha sido cambiado para que pueda ejecutarse en modo Usuario normal con la mayoría de las bibliotecas.

Mientras que el recién introducido Thonny Python IDE (Integrated Development Environment) es popular entre los principiantes, nuestro entorno preferido para escribir Python es IDLE3 (tiene más características), pero cualquiera de los dos puede ser utilizado. Se puede acceder a IDLE3 y a Thonny desde el menú principal de Desktop Frambuesa. Por lo tanto, elija el que prefiera y cree un nuevo archivo, y luego escriba el programa que ve a continuación. Recuerda que, en Python, el caso de una palabra importa igual que los espacios al principio de una línea, así que asegúrate de hacerlo bien; de lo contrario, obtendrás errores al intentar ejecutar tu código.

#!/usr/bin/python3

tiempo de importación

importar RPi.GPIO como io # usando RPi.GPIO

io.setmode(io.BCM)

io.setup(4,io.OUT) # convertir el pin en una salida

print(“LED blinker – By Mike Cook”)

print(“Ctrl C para salir”)

mientras que True:

io.output(4,0)

Hora.de.dormir(0.30)

io.output(4,1)

Hora.de.dormir(0.30)

Guarde el archivo y ejecútelo. El LED parpadea como en el ejemplo de Scratch.

Echa un vistazo al código línea por línea. El programa comienza importando los paquetes de soporte que necesita. En este caso, es el paquete de tiempo utilizado para conseguir una función Delay, o Wait, y el paquete RPi.GPIO para acceder a los pines GPIO. Tenga en cuenta aquí que muchos ejemplos se utilizan como GPIO en la declaración de importación, pero puede utilizar el más simple y corto como io porque reduce la cantidad de escritura y no tiene que seguir cambiando a mayúsculas.

Luego tiene que decirle a la biblioteca qué tipo de sistema de numeración desea utilizar. Estamos usando el ahora estándar sistema BCM. La siguiente línea le dice a los pines GPIO que usted quiere usar el Pin 4 como salida. El método de configuración toma dos valores: el número de pin y un número que le indica a la biblioteca que haga de ese pin una salida. Esto es convenientemente escondido por la librería, usando una constante predefinida que es definida en la librería – por eso es prefijada con io.

A continuación, el bucle forever of Scratch se lleva a cabo en Python con el uso de la sentencia while True, con todas las sentencias de este bucle sangradas.

Este bucle ordena entonces que el pin 4 del GPIO sea un 0, apagando el LED. Luego hay un retardo (o suspensión) de 300mS, seguido de encender el LED haciendo que el Pin 4 se ponga en alto. Por último, hay otro retardo, para que pueda ver el LED en el estado de encendido. Un error común es omitir este último retardo; como resultado, el LED parece estar apagado todo el tiempo. Por lo tanto, controlar una salida GPIO es muy sencillo.

Ahora, el segundo ejemplo de una velocidad de parpadeo controlada por interruptor. Esto se muestra a continuación, así que abra un nuevo archivo y escríbalo.

#!/usr/bin/python3

io.setmode(io.BCM)

io.setup(4,io.OUT) # convertir el pin en una salida

io.setup(24,io.IN, pull_up_down=io.PUD_UP) # hacer del pin una entrada

print(“LED blinker – By Mike Cook”)

print(“Ctrl C para salir”)

mientras que True:

io.salida(4,0)

if io.input(24) == 1:

Hora.de.dormir(0.30)

si no..:

Hora.de.dormir(1.00)

io.output(4,1)

if io.input(24) == 1:

Hora.de.dormir(0.30)

si no..:

Hora.de.dormir(1.00)

Este código tiene los mismos comandos para el pin de salida, pero la configuración del pin de entrada es nueva. Este comando tiene tres parámetros: el número del pin a utilizar, un número en forma de una constante definida por la librería, especificando que este pin debe funcionar como una entrada, y, finalmente, algunos comandos que le dicen a la computadora que active la resistencia interna de pull-up (aunque, para nuestros oídos, PUD_UP suena más como una madre llamando a los niños para decirles que su pudín está siendo servido).

El LED se apaga primero como antes, y luego la entrada del pulsador se lee por el método de entrada(24), que devuelve un valor de 0 o 1, dependiendo de si la clavija está conectada a tierra. Este valor devuelto se compara con 1, y si es igual, se produce un retardo de 300 mS; de lo contrario, se produce un retardo de 1 segundo. El LED se enciende y se repite el código de retardo condicional.

Post A Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *