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

Puede acceder a los pines GPIO en su Raspberry Pi con Python. A diferencia de los bloques de programa basados ​​en gráficos de Scratch, Python usa instrucciones completamente basadas en texto. Su gran poder es que el lenguaje Python básico puede extenderse para hacer más cosas mediante el uso de bibliotecas. Estas son funciones que se pueden escribir en Python o en cualquier otro lenguaje para extender lo que Python puede hacer.

Cuando usa Python para acceder a los pines GPIO, tiene varias bibliotecas diferentes que puede elegir que pueden darle acceso a ellas. Pueden proporcionar no solo acceso normal de entrada / salida, sino también acceso a algunas de las funciones especiales o capacidades de ciertos pines.

En los primeros días de la Raspberry Pi, el único acceso a los pines GPIO era si se ejecutaba en modo Supervisor o Root. Afortunadamente, esto ahora se ha cambiado para que pueda ejecutar en modo de usuario normal con la mayoría de las bibliotecas.

Mientras que el entorno de programación Python Thonny de reciente introducción ( I NTEGRADO D esarrollo E mbiente) es popular entre los principiantes, nuestro entorno preferido para escribir Python es IDLE3 (que tiene más características), pero tampoco se puede utilizar. Se puede acceder a IDLE3 y Thonny desde el menú principal de Desktop Raspberry. Entonces, elija el de su elección y cree un nuevo archivo, y luego escriba el programa que ve a continuación. Recuerde que, en Python, el caso de una palabra es importante al igual que los espacios al comienzo de una línea, así que asegúrese de hacerlo bien; de lo contrario, obtendrá errores al intentar ejecutar su código.

LEER  ¿Qué se puede hacer con una Raspberry Pi?

#!/usr/bin/python3

import time

import RPi.GPIO as io # using RPi.GPIO

io.setmode(io.BCM)

io.setup(4,io.OUT) # make pin into an output

print("LED blinker - By Mike Cook")

print("Ctrl C to quit")

while True:

io.output(4,0)

time.sleep(0.30)

io.output(4,1)

time.sleep(0.30)

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

Eche 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 lograr una función Delay, o Wait, y el paquete RPi.GPIO para acceder a los pines GPIO. Tenga en cuenta aquí que se usan muchos ejemplos as GPIOen la importdeclaración, pero puede usar el más simple y más corto as ioporque reduce la cantidad de escritura y no tiene que seguir cambiando a mayúsculas.

Luego tienes que decirle a la biblioteca qué tipo de sistema de numeración quieres usar. Estamos usando el sistema BCM ahora estándar. La siguiente línea le dice a los pines GPIO que desea usar el pin 4 como salida. La configuración methodtoma dos valores: el número de pin y un número que le dice a la biblioteca que convierta ese pin en una salida. Esto está convenientemente oculto por la biblioteca, mediante el uso de una constante predefinida que está definida en la biblioteca, por eso tiene el prefijo io.

A continuación, el ciclo para siempre de Scratch se lleva a cabo en Python con el uso de la while Truedeclaración, con todas las declaraciones en este ciclo sangradas.

Este bucle luego ordena que el pin 4 de GPIO sea un 0, apagando el LED. Luego hay un retraso (o suspensión) de 300 mS, seguido de encender el LED haciendo que el Pin 4 suba. Finalmente, hay otro retraso, por lo que puede ver el LED en el estado Encendido. Un error común es omitir este último retraso; como resultado, el LED parece estar apagado todo el tiempo. Entonces, controlar una salida GPIO es muy simple.

LEER  Cómo controlar un script en Scratch en Raspberry Pi

Ahora, pasemos al 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) # make pin into an output

io.setup(24,io.IN, pull_up_down=io.PUD_UP) # make pin an input

print("LED blinker - By Mike Cook")

print("Ctrl C to quit")

while True:

io.output(4,0)

if io.input(24) == 1:

time.sleep(0.30)

else :

time.sleep(1.00)

io.output(4,1)

if io.input(24) == 1:

time.sleep(0.30)

else :

time.sleep(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 usar, un número en forma de constante definida por la biblioteca, especificando que este pin debe funcionar como entrada y, finalmente, algunos comandos que le dicen a la computadora que active el interno resistencia pull-up (aunque, para nuestros oídos, PUD_UPsuena más como una madre que llama a sus hijos para decirles que se les está sirviendo el pudín).

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

Deja un comentario

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