Raspberry Pi: Programacao GPIO com Python

De Wiki Cursos IFPR Foz
Revisão de 20h51min de 17 de fevereiro de 2022 por Evandro.cantu (discussão | contribs) (Criou página com '=Raspberry Pi: Programação GPIO com Python= ==Programação Python para controle GPIO== ===Biblioteca RPi.GPIO=== A biblioteca '''RPi.GPIO''' <ref>https://pypi.org/projec...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegaçãoIr para pesquisar

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


Evandro.cantu (discussão) 17h51min de 17 de fevereiro de 2022 (-03)