Raspberry Pi: Instale o Raspbian e crie seu primeiro programa em Python
Depois de falar sobre o que é o Raspberry e mostrar as diferenças entre o Raspberry B e o B+, chegou a hora de botar a mão na massa. Hoje vamos ver como ligar a Raspberry Pi aos periféricos, e como instalar o Raspbian, o sistema operacional “oficial” da placa.
Raspberry Pi – Preparação do hardware
Ligar a Raspberry não é tão simples como ligar um Arduino. Para começar, precisamos conectá-lo à um monitor de vídeo e também à alguns dispositivos de entrada (mouse e teclado). A saída de vídeo composto é um pouco mais complicada de usar, já que usa um plugue especial, e vamos abordar essa configuração em outra oportunidade.
Na ligação básica, para instalarmos o Raspbian, vamos precisar de:
- Raspberry Pi
- Monitor com entrada HDMI
- Cabo HDMI
- Teclado USB (Pode ser utilizado um teclado wireless)
- Mouse USB (pode ser utilizado um mouse wireless)
- Fonte de alimentação de 5V e pelo menos 2A, com conector micro USB
- Cartão micro SD de pelo menos 8 Gb
Ligue o monitor, o teclado e o mouse nas portas correspondentes. Não conecte o Raspberry na fonte de alimentação nesse momento, pois nada irá acontecer já que ainda não temos nenhum sistema operacional instalado no cartão microSD.
Preparando o cartão SD e baixando o Noobs
Atualizado em 11-04-2020: Para esta etapa, sugiro utilizar o Raspberry Pi Imager, o tutorial desta ferramenta você encontra no post Raspberry Pi Imager: um jeito fácil de instalar o Raspbian.
Noobs é a forma mais simples de instalar o Raspbian no seu Raspberry. Antes esse pacote continha vários sistemas operacionais para você escolher, mas agora temos apenas a opção de instalar o Raspbian ou uma versão dele que vai direto para o Scratch. Com essa mudança o arquivo para download ficou bem menor, algo em torno de 700 Mb.
Outras mudanças nessa versão do Noobs incluem o Epiphany como web browser, versões atualizadas do Sonic Pi (sintetizador de som) e do Mathematica, além do jogo Minecraft Pi. 🙂
Para efetuar o download, vá até as seção de downloads do site, procure por NOOBS – Offline and network install e clique em DOWNLOAD ZIP:
Enquanto você faz o download do zip, formate o cartão microSD com sistema de arquivos FAT ou FAT32. Recomendo utilizar o SDFormatter (abaixo):
Terminado o download, descompacte o arquivo ZIP do Noobs e copie toda a estrutura de arquivos (abaixo) para o cartão microSD que você acabou de formatar :
Agora sim você pode colocar o microSD no Raspberry e conectar a fonte de alimentação.
Instalação do Raspbian
Ao ligar o Raspberry na fonte de alimentação, ele vai carregar as configurações iniciais e também o Noobs, que é o pacote que contém o Raspbian.
Na tela inicial do Noobs, use as setas do teclado para selecionar o Raspbian :
No menu superior, clique em INSTALL. Nesse momento, será aberta uma janela informando que o sistema operacional selecionado será instalado no cartão microSD e que qualquer outro arquivo no cartão microSD será apagado. Clique em YES para confirmar e dar início ao processo de instalação.
O cartão microSD será então preparado pelo Noobs, e os arquivos do Raspbian instalados. No meu Raspberry esse processo levou aproximadamente 30 minutos:
Ao final da cópia de arquivos, clique em OK para reiniciar o Raspberry e carregar a interface de configuração Raspi-config.
Configurações iniciais do Raspbian com o Raspi-Config
Raspi-config é a interface de configuração do Raspbian. Nela é possível configurar, por exemplo, o tamanho do sistema de arquivos para que todo o espaço do cartão microSD seja utilizado pelo Raspbian. Você pode definir também se o Raspbian será iniciado na linha de comando ou direto na interface gráfica.
Além disso é possível alterar as definições do teclado, habilitar a câmera, modificar a senha do usuário e até mesmo definir opções de overclock do Raspberry.
Quando terminar o processo de configuração, selecione FINISH na parte inferior da tela, para que finalmente o Raspbian seja carregado.
Obs: Se você esqueceu de escolher a interface gráfica ou optou por iniciar o Raspbian na linha de comando, digite STARTX no prompt de comando para carregar a interface gráfica:
GPIO Raspberry
GPIO (General Purpose Input/Output, ou Entrada e Saída de uso geral) é o conector de 40 pinos localizado na lateral da placa e que utilizamos para ligar sensores, leds, motores, displays, etc, em um processo semelhante ao utilizado com as portas digitais e analógicas do Arduino. Observe na imagem abaixo que na GPIO também temos as interfaces I2C, SPI e UART:
Tome muito cuidado com a ligação de módulos e outras conexões à GPIO, já que as portas do Raspberry trabalham com nível de sinal de 3.3V.
Acionando portas da Raspberry Pi usando Python
Vamos mostrar o funcionamento das portas do Raspberry utilizando um pequeno programa em linguagem Python que vai acender alternadamente dois leds. O led vermelho está ligado à porta 16 (GPIO 23), e o verde à porta 38 (GPIO 20):
Na tela inicial do Raspbian, clique no ícone IDLE 3, que irá carregar a interface de programação do Python:
Selecione File, depois NEW WINDOW. Na nova tela, digite o seguinte programa:
# Programa: GPIO Raspberry Pi - Leds # Autor: Arduino e Cia # define o tempo que o led ficara aceso ou apagado # (em segundos) tempo = 1 # Define biblioteca da GPIO import RPi.GPIO as GPIO # Define biblioteca de tempo import time GPIO.setmode(GPIO.BCM) # Define os pinos 16(GPIO 23) e # 38 (GPIO 20) da placa como saida GPIO.setup(23, GPIO.OUT) GPIO.setup(20, GPIO.OUT) # Inicia loop while(1): # Acende o led vermelho na GPIO 23 GPIO.output(23, 1) # Delay time.sleep(tempo) # Apaga o led vermelho GPIO.output(23, 0) # Acende o led verde na GPIO 20 GPIO.output(20, 1) # Delay time.sleep(tempo) # Apaga o led verde GPIO.output(20, 0) # Reinicia o processo
Pressione F5 para que o programa seja executado e você verá os leds acendendo alternadamente a cada 1 segundo.
Caso você não tenha efetuado o login como root, você pode receber a mensagem abaixo ao pressionar F5 e tentar salvar o arquivo:
RuntimeError: No access to /dev/mem. Try running as root!
Nesse caso, basta efetuar o logout do Raspbian e entrar novamente como root, repetindo o procedimento para digitar o programa no Python.
Caso você queira alterar a senha do root no Raspberry, clique no ícone LXTerminal para entrar no prompt de comando do Raspbian, e digite os comandos na sequência abaixo:
sudo -i
passwd root
Após alterar a senha, realize o logout do usuário padrão (pi) e faça login com usuário root e a senha que você escolheu.
Clique aqui para ver outros artigos sobre Raspberry Pi aqui no Arduino e Cia !
Olá amigo.
Como sempre, excelente post, parabéns.
Acompanho o blog desde que me interessei por programação em Arduino, por isso quero agradecer e parabenizar pelo serviço prestado ao compartilhar informações.
Estou planejando um sistema de automação residencial, onde pretendo ter um Raspberry Pi como "módulo central" responsável por receber as requisições, tratar e enviar comandos a alguns módulos Arduinos, que por sua vez controlarão relés, dimmers, emissores de IR, etc.
Minha principal dúvida no momento é como realizar essa comunicação entre esses módulos. A princípio pensei em fazer via rede ethernet mesmo e para isso, todos os Arduinos precisariam ter esse shield, logicamente.
Porém eu gostaria de "isolar" os Arduínos o máximo possível, para que eles não recebessem dados que não fosse enviado pelo RPi, por questão de segurança.
Encontrei o RS485, mas ainda não achei um exemplo bom de comunicação entre vários dispositíveis (RPi e Arduíno na mesma "rede").
Você já ouviu falar? Recomenda? Haveria algum outro?
Desde já agradeço muito pela ajuda.
Boa tarde Magrão !
Muito obrigado. 🙂
Foi bom você comentar, pois são dois posts que eu quero fazer em breve. Um deles mostrando a comunicação entre o RPi e o Arduino (não sei se será via ethernet, ainda estou pensando), e outro sobre RS485. Esse último só estou aguardando a chegada dos módulos.
Abraço !
Muito obrigado pela resposta.
Achei alguns exemplos de comunicação via I2C entre eles e vou testar aqui.
No meu caso, daria certo pois a distância entre os módulos não será muito grande.
Estou tendendo à essa solução pois é a mais barata, uma vez que não é preciso nenhum componente extra. Pelo o que andei vendo, seria preciso uma bridge por conta da diferença de voltagem entre o RPi e o Arduíno, mas como o RPi será o "mestre", parece que não é necessário. Confesso que essa parte não entendi muito bem.
Ao terminar meus testes, posso te passar os dados e os códigos para você postar aqui no Blog, mas também estou na pendência de chegar meu RPi e mais um Arduíno 😉
Bom dia Magrão !
Bacana, vamos manter contato. Assim que tiver novidades, me avise. 🙂
Abraço !
Olá.
Consegui fazer a comunicação entre o Py e dois Arduínos via I2C.
Os programas são bem simples, o Py envia o comando que acende ou apaga a porta 13 dos Arduínos.
O mais difícil foi configurar o Py. As opções não vêem prontas. Foi preciso instalar e recompilar alguns pacotes do Python.
Se quiser posso enviar os linkss que usei como referência e os fontes dos programas.
Abraços.
Boa noite Magrão,
Se puder me enviar, agradeço. Utilize o formulário de contato no lado direito da página para entrar em contato via email.
Abraço e obrigado !
[…] instalação do sistema operacional no cartão utilizando o Noobs, recomendo o post Raspberry Pi: Instale o Raspbian e crie seu primeiro programa em Python e para configurar o acesso via SSH, consulte o post Tutorial Raspberry Pi com […]