Raspberry Pi: Programacao GPIO com Python
Raspberry Pi: Programação GPIO com Python
Programação Python para controle GPIO
Biblioteca RPi.GPIO
A biblioteca RPi.GPIO [1] é um módulo de controle para as portas GPIO do Raspberry Pi usando linguagem Python. Entretanto, está biblioteca não é apropriada para aplicações tempo real ou com restrições temporais, pois roda sobre o kernel Linux, o qual não apropriado para aplicações tempo real. A versão atual desta biblioteca não suporta SPI, I2C, hardware PWM ou interface serial.
- Procedimentos para uso
- Verificar se a biblioteca rpi.gpio está instalada:
apt list --installed | grep rpi.gpio
- Importar biblioteca no interpretador ou código Python:
import RPi.GPIO as GPIO # Importa o módulo RPi.GPIO e usa localmente o nome GPIO para referenciá-lo.
- Programa para piscar led
Código Python [2]:
import RPi.GPIO as GPIO
from time import *
GPIO.setmode(GPIO.BCM) # Numeração nomes GPIO
#GPIO.setmode(GPIO.BOARD) # Numeração pinagem da placa
GPIO.setup(17, GPIO.OUT)
while True:
GPIO.output(17, GPIO.HIGH)
print("Led ON")
sleep(1)
GPIO.output(17, GPIO.LOW)
print("Led OFF")
sleep(1)
- Programa para ler chave pull-up e acionar led
- Chave conectada ao pino 18 (entrada pull-up) e led ao pino 17 (saída).
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(17, GPIO.OUT)
while True:
if GPIO.input(18):
print("Led ON")
GPIO.output(17, 1)
else:
print("Led OFF")
GPIO.output(17, 0)
sleep(0.1)
Biblioteca Gpio Zero
A biblioteca Gpio Zero [3] é uma interface GPIO para uso com o Raspberry Pi. Esta biblioteca é instalada por default no Raspberry Pi.
Exemplos[4]:
- Programa para piscar led
from gpiozero import LED
from time import sleep
led = LED(17)
while True:
led.on()
sleep(0.5)
led.off()
sleep(0.5)
- Programa para ler chave
from gpiozero import Button
from time import sleep
button = Button(2)
while True:
if button.is_pressed:
print("Pressed")
else:
print("Released")
sleep(1)
Biblioteca CircuitPython
A biblioteca CircuitPython, da Adafruit, é uma versão amigável e open source do Python, especialmente desenvolvida para microcontroladores e pequenos dispositivos [5].
O CircuitPython adiciona a parte de circuitos ao Python, permitindo que o Python converse com sensores, motores, Leds e outros dispositivos.
Esta biblioteca suporta I2C e SPI, os quais precisam ser habilitados.
Confira os procedimentos para instalação do CircuitPython e exemplos em [6].
- Piscar led
- Led conectado a saída GPIO 17.
import time
import board
import digitalio
print("hello blinky!")
led = digitalio.DigitalInOut(board.D17)
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = True
time.sleep(0.5)
led.value = False
time.sleep(0.5)
- Chave digital
- Chave na entrada GPIO 18 e led na saída GPIO 17.
import time
import board
import digitalio
print("press the button!")
led = digitalio.DigitalInOut(board.D17)
led.direction = digitalio.Direction.OUTPUT
button = digitalio.DigitalInOut(board.D18)
button.direction = digitalio.Direction.INPUT
button.pull = digitalio.Pull.UP
while True:
led.value = not button.value # light when button is pressed!
Interação entre Raspberry Pi e Node-RED
Referências
- ↑ https://pypi.org/project/RPi.GPIO/
- ↑ https://www.electrofun.pt/blog/curso-raspberry-pi-14-python-basico-gpio/
- ↑ https://gpiozero.readthedocs.io/en/stable/
- ↑ https://www.raspberrypi.org/documentation/usage/gpio/python/README.md
- ↑ https://circuitpython.readthedocs.io/en/5.3.x/README.html
- ↑ https://www.digikey.com/en/maker/projects/circuitpython-on-linux-and-raspberry-pi/2aac644c44f1418e987417b229a67c23?utm_adgroup=Adafruit&utm_source=google&utm_medium=cpc&utm_campaign=Dynamic%20Search_EN_Suppliers&utm_term=&utm_content=Adafruit&gclid=Cj0KCQjwg8n5BRCdARIsALxKb972kt1RhdKJR7h8JvQnJQtVGCfBbIZ0vAjN_GvyKyLOkDGq11ctO4kaAtNaEALw_wcB
Evandro.cantu (discussão) 17h51min de 17 de fevereiro de 2022 (-03)