Olá pessoal, fazendo a postagem inaugural do blog, vamos mostrar um simples tutorial de como configurar uma porta GPIO do seu Raspberry Pi B+ para fazer um simples LED piscar, que até pode ser incrementado configurando múltiplas portas para acenderem vários LED's como foi feito na imagem a seguir:
1 - LED: Diodo Emissor de Luz;
2 - Fios condutores: Para serem utilizados com Jumpers de conexão, muito importante que esses fios tenham proteção isolante para que não ocorra curtos entre as portas.
3 - Resistor 330ohms: Note que quanto maior a resistência menor será a luminosidade do LED;
4 - Protoboard;
5 - Um Raspberry Pi B+: É claro;
Vamos dividir o procedimento em duas partes: parte eletrônica e parte computacional.
Parte eletrônica:
![]() |
Esquema da ligação no protoboard |
Nessa parte vamos montar um simples circuito para ligar o LED ao Rasp como na foto abaixo, onde a alimentação será feita pela porta GPIO (No exemplo usamos a GPIO 18) e o cátodo do LED ligamos a uma das portas GND do Rasp:
![]() |
Ligação feita na parte eletrônica |
Obs: Note que pela imagem não fará diferença se o resistor estará antes ou depois do LED, pois isso não influenciará no valor da tensão dividida para cada componente, porém cuidado com a polaridade do seu LED, a perna menor é o cátodo (negativo) e a maior é o ânodo (positivo), isso se ninguém cortou a perna maior (hehe), mas é possível testar a polaridade com um multímetro também
Mapa dos pinos (Créditos da imagem ao Blog Fazedores):
3.3v | 1 | 2 | 5V |
GPIO 2 | 3 | 4 | 5V |
GPIO 3 | 5 | 6 | GND |
GPIO4 | 7 | 8 | GPIO 14 |
GND | 9 | 10 | GPIO 15 |
GPIO 17 | 11 | 12 | GPIO 18 |
GPIO 27 | 13 | 14 | GND |
GPIO 22 | 15 | 16 | GPIO 23 |
3.3V | 17 | 18 | GPIO 24 |
GPIO 10 | 19 | 20 | GND |
GPIO 09 | 21 | 22 | GPIO 25 |
GPIO11 | 23 | 24 | GPIO 8 |
GND | 25 | 26 | GPIO 7 |
ID_SD | 27 | 28 | ID_SC |
GPIO 5 | 29 | 30 | GND |
GPIO 6 | 31 | 32 | GPIO 12 |
GPIO13 | 33 | 34 | GND |
GPIO 19 | 35 | 36 | GPIO 16 |
GPIO 26 | 37 | 38 | GPIO 20 |
GND | 39 | 40 | GPIO 21 |
O primeiro passo é abrir o terminal e verificar se a biblioteca GPIO já está disponível, então vamos abrir o terminal e digitar os comandos:
sudo python
import RPi.GPIO as GPIO
GPIO.VERSION
Agora vamos ao código em python que vai fazer o LED piscar, você pode acessar a IDLE do python disponível no seu Raspberry indo em Menu > Programming > Python 3 e lá ir em File > New File para começar a fazer um programa que queira salvar depois. Nós recomendamos você criar uma nova pasta na home por exemplo "programas_python" e lá salvar seus "arquivo.py". Abaixo vamos mostrar como acessá-los pelo terminal:
1 - Abra o terminal
2 - Digite o comando: sudo su para ter permissões de administrador.
3 - Você inicialmente estará na home, então utilize cd programas_python para acessar a pasta em que está o arquivo
4 - Agora digite sudo python arquivo.py
5 - Pronto! O terminal executará seu programa!
Abaixo o código que fará o LED piscar:
(Usamos o pino 12, que corresponde a GPIO 18 no mapa de pinos):
1 - Abra o terminal
2 - Digite o comando: sudo su para ter permissões de administrador.
3 - Você inicialmente estará na home, então utilize cd programas_python para acessar a pasta em que está o arquivo
4 - Agora digite sudo python arquivo.py
5 - Pronto! O terminal executará seu programa!
Abaixo o código que fará o LED piscar:
(Usamos o pino 12, que corresponde a GPIO 18 no mapa de pinos):
import RPi.GPIO as GPIO #Importa biblioteca GPIO
import time #Biblioteca da função time.sleep
GPIO.setmode(GPIO.BOARD)#Define que iremos usar o número de ordem ordem dos pinos, e não o número correspondente a porta GPIO
#Se fosse pelo número de GPIO o comando poderia ser GPIO.setmode(GPIO.BCM)
GPIO.setup(12, GPIO.OUT)#Definimos que a porta onde estrá conectada o LED será informação de saída da placa
#Loop infinito, enquanto não for desligado, o Rasp executará as instruções
while(True):
GPIO.output(12, HIGH)
time.sleep(1)#O número entre parênteses corresponde ao tempo em segundos pra pular para a próxima instrução
GPIO.output(12, LOW)
time.sleep(1)
PS: Se você tiver mais LED's, você pode configurar mais portas GPIO´s verificando o mapa de pinos e acendê-los simultaneamente usando a função GPIO.setup(pino_correspondente, GPIO.OUT), e usar os comandos GPIO.output(pino_correspondente, HIGH ou LOW)e time.sleep(tempo)dentro do loop infinito ao seu bel-prazer .
![]() |
E isso é tudo, pessoal! |
Qualquer dúvida usem os comentários.
Texto muito bom, autor tá de parabéns.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirLegal a iniciativa. Achei a abordagem em python mais didática, nem sabia que era tão mais fácil; quando eu programei em interfaces gpio e afins foi no C/C++, podia parecer bem mais bizarro no começo. Tem vários projetos legais que usam o raspberry, aqui tem alguns pra se inspirar: http://www.businessinsider.com/10-mind-blowing-raspberry-pi-projects-2013-1?op=1&IR=T - esse do balão e das fotos ficou bem famoso nas redes sociais, inclusive.
ResponderExcluirUma questão é que agora já existem muitas alternativas mais capazes e as vezes até de melhor custo benefício que o raspberry, né. Vocês acham que ele ainda vale mais a pena para fins didáticos?
Saudações Fernando! Bom, eu acredito que sim, o Raspberry ainda vale muito a pena. Visto que recentemente foi lançado o Raspberry Pi 2, que ainda continua com o custo de US$ 35, aproximadamente R$ 93, fora alguns acréscimos alfandegários. Esse modelo virá com processador quad-core e terá suporte para o Windows 10, numa interessante parceria com a Microsoft para o projeto de internet das coisas (Internet of Things). Já que um dos principais propósitos da criação do Rasp foi para que crianças pudessem aprender programar, penso que realmente ele é uma alternativa bem intuitiva pela sua interface gráfica e interação com plataformas de programação bem simples como o Scratch. Este tutorial foi apenas um exemplo rápido de como fazer o Rasp interagir com o meio físico. Achei muito interessante o link com os projetos enviados, que também são excelentes exemplos de aplicabilidade desse sistema embarcado. Obrigado pelas observações do comentário, são questionamentos assim que incentivam o nosso aprimoramento.
Excluir