sábado, 13 de junho de 2015

Tutorial: O "Hello World" com GPIO no Raspberry Pi B+

     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:




Material necessário:

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.3v125V
GPIO 2345V
GPIO 356GND
GPIO478GPIO 14
GND910GPIO 15
GPIO 171112GPIO 18
GPIO 271314GND
GPIO 221516GPIO 23
3.3V1718GPIO 24
GPIO 101920GND
GPIO 092122GPIO 25
GPIO112324GPIO 8
GND2526GPIO 7
ID_SD2728ID_SC
GPIO 52930GND
GPIO 63132GPIO 12
GPIO133334GND
GPIO 193536GPIO 16
GPIO 263738GPIO 20
GND3940GPIO 21

Parte computacional:

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):


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.

4 comentários:

  1. Texto muito bom, autor tá de parabéns.

    ResponderExcluir
  2. Este comentário foi removido pelo autor.

    ResponderExcluir
  3. Legal 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.

    Uma 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?

    ResponderExcluir
    Respostas
    1. 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