blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Primeiro Exemplo
  • Segundo Exemplo
  • Terceiro Exemplo
  • Conclusão
  • Sobre o Autor
Projetos

Introdução às GPIO do Raspberry Pi 3 B

Eletrogate 4 de fevereiro de 2022Atualizado em: 21 set 2022

Introdução

No primeiro post da série, vimos como instalar o S.O. Raspbian no Raspberry Pi e alguns dos recursos que podem ser explorados nele. Já neste post, veremos como utilizar algumas das funções proporcionadas pelas GPIO do Raspberry Pi para controlar LED’s e ler botões utilizando python. Como vimos, o Raspbian vem com um interpretador da Python 3 embutido, nos poupando este processo de instalação. Além disso, a biblioteca que utilizaremos para o controle da interface, gpiozero, e o editor de texto no qual escreveremos o código, nano, também acompanham o sistema nativamente.

Ferramentas utilizadas no tutorial

Para verificar qual versão do Python 3 está instalada em seu sistema, acesse o terminal e digite python --version. Para verificar se a gpiozero está adequadamente instalada, basta utilizar os comandos para instalação dela: sudo apt install python3-gpiozero ou sudo pip3 install gpiozero, conforme a documentação do módulo. Já para o nano, utilize, também, nano --version. A seguir, os comandos e as respectivas saídas esperadas:

Verificação das versões das ferramentas utilizadas

Diversas utilidades podem ser acessadas pelas GPIO do Raspberry Pi, como entradas e saídas digitais, comunicação I2C, UART, SPI e PWM. Neste post, usaremos somente o controle e a leitura de nível lógico das portas digitais. Abaixo, um esquema com as funções de cada pino:

Pinout detalhado da GPIO. Fonte


Primeiro Exemplo

Nosso primeiro exemplo será o simples piscar de um led. Para ele, utilizaremos os seguintes componentes:

Materiais necessários para o projeto Piscar LED

  • LED difuso vermelho 5 mm
  • Resistor 100 ohm
  • Jumpers
  • Protoboard
  • Raspberry Pi 3 B

A montagem pode ser vista abaixo:

Esquemático do exemplo 1

Para escrever o programa, abra a pasta que preferir no terminal e digite nano ledblink.py. O código pode ser visto abaixo:

#importa os módulos que serão utilizados
import gpiozero
import time

#instancia o led
led = gpiozero.LED(19)

while True: 		#loop infinito
    led.on()	        #acende o led
    time.sleep(1)	#aguarda 1 segundo
    led.off()	        #apaga o led
    time.sleep(1)	#aguarda 1 segundo

Para salvar, utilize Ctrl+O e, então, Enter, para confirmar o nome. Utilize Ctrl+X para fechar o editor. Daí, para executar o programa, digite python3 ledblink.py no terminal. O funcionamento pode ser visto abaixo:

https://blog.eletrogate.com/wp-content/uploads/2022/01/WhatsApp-Video-2022-01-17-at-3.11.49-PM.mp4

Segundo Exemplo

Neste exemplo, veremos o funcionamento da saída PWM desta placa. Para ele, os seguintes componentes serão necessários:

Materiais necessários para o projeto PWM em LED

  • LED difuso vermelho 5 mm
  • Resistor 100 ohm
  • Jumpers
  • Protoboard
  • Raspberry Pi 3 B

E serão feitas as seguintes conexões:

Esquema de conexões do exemplo 2

Para escrever o código, que pode ser visto abaixo, siga os mesmos passos do exemplo anterior, mas com um arquivo de nome pwmled.py.

#importa os módulos que serão utilizados
import gpiozero
import time

#instancia o led
led = gpiozero.PWMLED(26)

while True:			  #loop infinito
    for i in range(11):		  #faz 10 ciclos
                                  #incrementando i
                                  #em 1 a cada ciclo
        led.value = i / 10	  #define o duty-cicle
        time.sleep(0.1)		  #aguarda 0.1 segundos
    for i in range(11):		  #faz o mesmo ciclo
        led.value = (10 - i) / 10 #define o duty-cicle
        time.sleep(0.1)		  #aguarda 0.1 segundos

Ao executa-lo, termos o comportamento visto no vídeo abaixo:

https://blog.eletrogate.com/wp-content/uploads/2022/01/WhatsApp-Video-2022-01-17-at-3.11.48-PM.mp4

Terceiro Exemplo

Por fim, será mostrado o uso das GPIO junto a botões. Para isso, utilizaremos 3 botões para controlar o estado de 2 LED’s a partir de diferentes métodos relacionados a eles. Neste exemplo, usaremos:

Materiais necessários para o projeto Entradas e Saídas do Raspberry PI

  • LED difuso vermelho 5 mm
  • Resistor 100 ohm
  • Jumpers
  • Protoboard
  • Raspberry Pi 3 B
  • Botões

A montagem seguira o esquemático:

Esquemático do exemplo 3

O código é baseado na documentação do módulo gpiozero e utiliza os principais métodos destinados a botões.

#importa os módulos que serão utilizados
import gpiozero
import time

#instancia os botões
botao_1 = gpiozero.Button(5)
botao_2 = gpiozero.Button(6)
botao_3 = gpiozero.Button(13)

#instancia os leds
led_1 = gpiozero.LED(19)
led_2 = gpiozero.PWMLED(26)

#função para encerrar a pulsação do led_2
def para_led_2():
    led_2.value = 0
    botao_2.when_pressed = pulsa_led_2

#função para iniciar a pulsação do led_2
def pulsa_led_2():
    led_2.pulse()
    botao_2.when_pressed = para_led_2

#determina a primeira função que o botão
#irá chamar
botao_2.when_pressed = pulsa_led_2


while True:		         #loop infinito
    if botao_1.is_pressed:	 #se o botao_1 estiver pressionado
        led_1.on()		 #acende o led_1
        botao_3.wait_for_press() #pausa o loop até que o botao_3 seja pressionado
        led_1.off()		 #apaga o led_1

O funcionamento do código pode ser verificado no vídeo abaixo:

https://blog.eletrogate.com/wp-content/uploads/2022/01/WhatsApp-Video-2022-01-17-at-3.14.17-PM.mp4

Conclusão

Neste post, vimos funções básicas das GPIO presentes no Raspberry Pi 3 B. Com a clara compreensão delas, o processo de uso das demais torna-se mais fácil e eficiente. Portanto, caso haja qualquer dúvida a respeito do tema, deixe nos comentários. O poder de processamento do Raspberry usado junto a suas I/O compatíveis com diversos sensores e atuadores permite sua aplicação em complexos sistemas embarcados, tornando-o uma ferramenta muito valiosa. Esperamos que o post tenha sido útil e agradecemos pela leitura!

Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.


Sobre o Autor


Eduardo Henrique
LinkedIn

Formado técnico em mecatrônica no CEFET-MG, atualmente estuda Engenharia de Controle e Automação na UFMG. É apaixonado por eletrônica, controle, arte e, principalmente, por sua companheira, Beatriz.


Eletrogate

4 de fevereiro de 2022 Atualizado em: 21 set 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

Projetos

Jogo da Velha na TV!

Eletrogate19 de setembro de 2023

Este é um jogo de quebra-cabeça para dois jogadores, identificados como “X” e “O”, que se revezam marcando os espaços em uma área 3 × 3.
Alguma vez na vida você já deve ter jogado este clássico jogo conhecido como Jogo-da-Velha ou Tic-Tac-Toe.

Neste post, você vai aprender a montar e programar uma versão digital deste jogo, com saída de imagem para TV, utilizando apenas alguns componentes eletrônicos básicos, uma placa Arduino UNO e um Teclado Matricial de 16 teclas.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

IoT

LittleFS: Alto Desempenho para RP Pico, ESP32 e ESP8266

Eletrogate12 de setembro de 2023

Aprenda neste post, a usar o sistema de arquivos LittleFS, que possui mais desempenho do que o sistema SPIFFS, nas placas Raspberry Pi Pico, ESP32 e ESP8266.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Sensores

Como Utilizar o Módulo Sensor de Cor RGB TCS34725

Eletrogate5 de setembro de 2023

Você já precisou de algum sensor para detectar as cores de objetos? Venha conferir o post de hoje! Nós vamos utilizar o sensor RGB TCS34725.

Projetos

Controlando o Braço Robótico em MDF via Bluetooth

Eletrogate29 de agosto de 2023 Atualizado em: 01 set 2023

Que tal montar um braço robótico e controlá-lo pelo celular? Entre para dicas de montagem e aprender a controlar servos e conectar sua placa.

Projetos

Controlando o Braço Robótico em MDF via Bluetooth

Eletrogate29 de agosto de 2023 Atualizado em: 01 set 2023

Que tal montar um braço robótico e controlá-lo pelo celular? Entre para dicas de montagem e aprender a controlar servos e conectar sua placa.

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

[email protected]


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.