Raspberry Pi 4 GPIO – Os primeiros passos

Fala galera, como vocês estão? Por aqui está tudo bem! Hoje temos mais um tutorial sobre Raspberry Pi para vocês! Vamos estudar todos os conceitos básicos dos pinos GPIO do Raspberry Pi, ou também conhecidos como os pinos de entrada e saída de propósito geral. Esses pinos são para se comunicar com outros circuitos, como placas de extensão, circuitos personalizados e muito mais. Você pode fazer algumas coisas bem legais usando esses pinos.

É importante ter um pouco de conhecimento sobre esses pinos e  recomendo que você siga este guia para obter um melhor entendimento antes de começar a “brincar” com eles.

Aviso: Experimentar o GPIO é arriscado e tem a chance de danificar seu Raspberry Pi. Conhecer as limitações de potência dos pinos GPIO e também entender o que você está conectando é essencial.

Uma visão geral sobre os pinos GPIO do Raspberry Pi

Agora vamos começar este tutorial sobre o GPIO do Raspberry Pi, vamos dar uma olhada nos diferentes tipos de pinos disponíveis, como habilitar os módulos, o que é um kit de breakout e finalmente, como construir e programar um circuito simples. Se você possui um Raspberry Pi B +, 2, Zero, 3 ou 4, você terá 40 pinos no total. Os modelos anteriores, como o Raspberry Pi B, têm apenas 26 pinos. Veja abaixo o diagrama de pinagem do GPIO. Incluímos três versões do Pi.

Raspberry Pi - GPIO

Como você pode ver, há mais do que apenas os pinos padrões. Há alguns que fazem referência a I2C (clique para aprender mais sobre o protocolo I2C), SPI e UART.

  • Os pinos GPIO são pinos padrões que podem ser usados ​​para ligar e desligar dispositivos. Por exemplo, um LED.
  • Os pinos I2C (Inter-Integrated Circuit) permitem que você conecte e se comunique com os módulos de hardware que suportam este protocolo (protocolo I2C). Este protocolo normalmente ocupa dois pinos.
  • Os pinos SPI (Barramento de Interface Periférica Serial) podem ser usados ​​para conectar e se comunicar com dispositivos SPI. Quase o mesmo que o I2C, mas faz uso de um protocolo diferente.
  • UART (receptor / transmissor assíncrono universal) são os pinos seriais usados ​​para comunicação com outros dispositivos.
  • DNC significa não se conectar, isso é bastante autoexplicativo.
  • Os pinos de força (5V, 3V3) puxam a energia diretamente do Raspberry Pi.
  • GND são os pinos que você usa para aterrar seus dispositivos. Não importa qual pino você usa, pois todos estão conectados à mesma linha.

Tudo isso pode ser assustador no começo, mas depois que se pega a prática, fica fácil de entender.

Configurando e usando os pinos GPIO

Nesta seção, vamos abordar como configurar os pinos para que você possa usá-los no Raspberry Pi. Neste exemplo e em projetos futuros, usaremos o sistema operacional oficial do Rasbperry Pi, que atualmente é o Raspberry Pi OS (antigo Raspbian). Se você não o instalou, poderá aprender como instalar a versão mais recente seguindo o nosso guia de instalação.

Configurando o software do GPIO

Se você estiver na versão mais recente do Raspberry Pi OS, poderá começar a programar e usar os pinos do GPIO sem precisar fazer nenhuma configuração extra. No entanto, eu recomendo que você atualize seu Pi para os pacotes mais recentes de qualquer maneira. Se você não tiver feito isso, abre o prompt de comando e execute os seguintes comandos:

sudo apt-get update
sudo apt-get upgrade

Se você não tiver o pacote GPIO instalado, basta instalá-lo executando o seguinte comando:

sudo apt-get install rpi.gpio

Configurando o I2C do Raspberry Pi

Configurar os pinos I2C no Raspberry Pi é super fácil e levará apenas alguns minutos para fazer. Em primeiro lugar, vá para a ferramenta Raspi-Config digitando o seguinte comando.

sudo raspi-config

Aqui, vá para opções avançadas e, em seguida, para I2c, ative I2c pressionando yes. O Pi deve agora alertar você que o I2C será ativado após a reinicialização. Em seguida, ele perguntará se você deseja que ele seja carregado por padrão. Selecione sim se você planeja usar o I2c toda vez que o Raspberry Pi inicializar. Agora queremos ter certeza de que os módulos necessários foram habilitados com sucesso. Para fazer isso, digite o seguinte comando:

lsmod | grep i2c_

Esse comando retornará todos os módulos em execução, começando com i2c. Deve retornar algo como isto i2c_BCM2708.

Configurando o SPI do Raspberry Pi

Configurar o SPI do Raspberry Pi é muito parecido com o I2c e é super fácil, levará apenas alguns minutos para fazer. Em primeiro lugar, vá para a ferramenta Raspi-Config digitando o seguinte comando:

sudo raspi-config

Depois que a ferramenta de configuração for carregada, vá para as opções avançadas e, em seguida, para SPI. Ative o SPI e ele informará que ele será ativado após a reinicialização. Depois disso, ele perguntará se você quer que ele seja carregado por padrão. Apenas selecione sim se você planeja usá-lo toda vez que o Pi for inicializado. Para verificar se o SPI está funcionando corretamente, use o seguinte comando:

lsmod | grep spi_

Este comando retornará todos os módulos em execução, começando com SPI. Deve retornar algo como spi_bcm2835. Certifique-se de ter reiniciado seu Pi antes de verificar se o módulo foi carregado.

Usando um kit de breakout

Um kit de breakout permite que você conecte todos os pinos através de um cabo e conecte-os a uma placa de montagem/protoboard ou a um dispositivo diferente. Este kit torna o seu trabalho muito mais fácil e seguro

Existem alguns tipos diferentes de kits de breakout que você pode comprar para os pinos GPIO do Raspberry Pi. Pessoalmente, prefiro o tipo T, pois são fáceis de ler e usar. Ao conectar o cabo, você precisa se certificar de que está conectado, de modo que fique de costas para a placa. Você pode ver um exemplo do cabo e de sua conexão abaixo.

Raspberry Pi Kit Breakout

Programação com os pinos GPIO do Raspberry Pi

A programação com os pinos GPIO no Raspberry Pi é tipicamente feita usando a linguagem de programação Python. Esse circuito e código em particular são super fáceis de serem executados e não demoram muito para serem concluídos.

Para quem não curte muito programação ou até mesmo não sabe a linguagem Python, então algo como o Raspberry Pi Cayenne pode ser interessante. O Cayene é um pacote de software que permite que você adicione sensores, controle pinos GPIO e muito mais com uma interface de usuário super fácil.

GPIO BOARD vs GPIO BCM

Há uma enorme diferença entre esses dois modos, e cabe a você decidir qual deles você quer aproveitar para o seu projeto. Ambos têm suas próprias vantagens e desvantagens. A placa GPIO (GPIO.Board) faz referência à numeração física dos pinos.

Por exemplo, o pino superior esquerdo é 1 e o pino superior direito 2. Continua a contar para cima à medida que você vai de cima para baixo até o ultimo pino. Em nosso diagrama, você pode ver essa numeração no meio de cada grupo.

Raspberry Pi - GPIO

O GPIO BCM (Broadcom Soc Channel numbering) / (GPIO.BCM) no diagrama acima, você pode encontrar o número após o GPIO. Por exemplo, no Raspberry Pi 3, o pino abaixo de 3v3 é GPIO2, então o número deste pino é 2 no modo BCM. Uma desvantagem para o BCM é que eles mudaram entre as versões (Raspberry Pi Rev 1 vs Raspberry Pi Rev 2). Se você quer estar seguro, eu recomendo aderir ao GPIO Board, mas como eu disse anteriormente, cabe a você decidir como fazer referência aos pinos.

O código para um circuito LED simples

Para quem gosta de codificar e quer aprender sobre Python, esta vai ser a melhor parte do tutorial! Em primeiro lugar, vamos configurar nosso pequeno circuito, que pode ser visto no diagrama abaixo.

Raspberry Pi - Circuito LED

Se você tiver um kit de breakout, o circuito obviamente será um pouco diferente. Alternativamente, simplesmente conecte a extremidade positiva de um LED ao pino 7 (GPIO4) e a extremidade negativa a um resistor que se conecte a um pino de aterramento.

Agora vamos criar um arquivo Python para que possamos digitar nosso script Python.

sudo nano led_blink.py

Vamos escrever um pequeno código. É importante lembrar que o Python é sensível ao espaço em branco. Por exemplo, no loop for, certifique-se de ter quatro espaços para qualquer coisa dentro do loop. Para explicar um pouco mais, a linha GPIO.output (7, true) precisará ter quatro espaços antes dela.

#importa o GPIO e o pacote time
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
# loop através de 50 vezes, ligar / desligar por 1 segundo
for i in range(50):
    GPIO.output(7,True)
    time.sleep(1)
    GPIO.output(7,False)
    time.sleep(1)
GPIO.cleanup()

Agora saia e salve pressionando ctrl + xe depois y. Se você desenvolveu corretamente o nosso pequeno código, o circuito vai ganhará vida e o LED começará a piscar. Você pode executar um script Python fazendo o comando abaixo. Também é importante que você o execute como o super usuário usando o sudo.

sudo python led_blink.py

Conclusão

Em suma, neste tutorial aprendemos como fazer os primeiros projetos usando o GPIO do Raspberry Pi, parece difícil no primeiro momento, mas depois vimos que é bem fácil. Futuramente teremos mais projetos que usam os pinos GPIO do Raspberry Pi, como o uso de sensores de movimento, medidores de temperatura, controle de motores e muito mais. Se você tiver alguma dúvida ou sugestão quanto a este tutorial, por favor, não hesite em deixar um comentário abaixo. Abraço!

Sobre Yuri Azevedo 4 artigos
Especialista em Engenharia de Automação e Controle e Engenheiro Eletricista.

Seja o primeiro a comentar

Deixe uma resposta

O seu endereço de email não será publicado.


*