segunda-feira, 24 de agosto de 2015

Primeiros passos com o Raspberry Pi


O Raspberry Pi é um mini computador desenvolvido por pesquisadores da Universidade de Cambridge, com o objetivo de oferecer aos estudantes uma ferramenta de baixo custo, com o intuito de incentivar os estudos em programação de computadores. O Pi é um computador pessoal, como o que você compra em lojas, com alguns recursos limitados, tamanho reduzido e preço acessível: $35.

O Pi é um computador completo: processador, memória RAM, portas USB, saída de vídeo componente e HDMI, saída de áudio, plug RJ45 para rede cabeada (ethernet). O setup básico consiste em você plugá-lo em sua TV pelo HDMI ou vídeo componente (RCA), plugar na porta USB um teclado e ligá-lo. O Pi não possui um gabinete, mas existem cases para protegê-lo.

Propositalmente, ele possui alguns circuitos e pinos para conexão, os chamados GPIOs (General-pourpose Input/Output - entrada e saída de propósito geral), permitindo usar o Pi em projetos de eletrônica diversos, conectando-o a componentes customizados, proto-boards, sensores, e outros.

O primeiro passo é comprar um Pi. Se você estiver em uma viagem para os EUA (como foi o meu caso no Google I/O 2014), basta encomendar um pela Amazon. Se você não for viajar, pode também importar um dos resellers que possuem international shipping, mas leve em conta que o imposto a ser pago na alfândega é o de um computador. Aqui no Brasil você encontra ele a um preço um pouco mais salgado do que a proposta inglesa. O Pi deve sair em torno de R$ 120,00 a R$ 180,00, pesquise no Mercado Livre ou em lojas de eletrônica.

Existem duas gerações de raspberry Pi. Na primeira geração, temos dois modelos, o Pi 1 Model A+, Pi 1 Model B+. Recentemente foi lançada a segunda geração, o Pi 2 Model B+. O Model Pi 1 A+ possui o menor consumo de energia dos três, mas um baixo poder de processamento e memória RAM, e o Pi 2 Model B+ é o que possui mais recursos.

De posse do seu Pi, você primeiro deve instalar ou configurar o cartão de memória para boot com um sistema operacional. O Pi funciona geralmente com alguma versão do Linux, já que o kernel, módulos e o tamanho do sistema instalado podem ser otimizados para o hardware do Pi. No meu caso, eu comprei um Kit da Amazon, em uma viagem ao exterior, e o meu cartão de memória já veio formatado com o software para a instalação de diversos sabores de sistemas que funcionam no Pi. Ao ligar, o setup já lhe pergunta qual o sistema você quer instalar e faz o processo todo sozinho. Você também encontra tutoriais sobre como configurar o Raspbian, versão do Debian para o Raspberry Pi, ou até locais que vendem o Raspbian pré-instalado no SD-Card. Recomendo comprar o cartão já instalado se você quiser ir direto para a implementação de algo útil.

Com o cartão de memória configurado, basta plugar os componentes. Eu utilizei uma TV, com entrada HDMI, e um teclado USB sem fio da Logitec, que já vem com um Touch Pad (é, eu voltei dos EUA cheio de bugingangas...). O Pi, diferente de um computador convencional, não tem um botão liga/desliga: a fonte de alimentação já inicia o boot. Com ele ligado, basta seguir as orientações on-screen. Eu escolhi o Raspbian, a versão do Debian GNU/Linux compilada para o Pi. Eu gosto muito do Debian, já tenho vários anos de experiência e hoje ele está no meu computador de casa, trabalho e notebook. A instalação é bem simples a partir do SD card já formatado para o Pi, então basta esperar pela mensagem de que o SO foi instalado com sucesso.

Depois de instalado, o sistema faz o boot. É um boot de Linux tradicional: mensagens de log ao carregar os módulos do kernel e inicializar os serviços. O primeiro boot tem algumas opções de configuração inicial, como expandir o cartão de memória para ter espaço de armazenamento, alterar a senha do usuário padrão (recomendado!), entre outros. Você pode voltar nesta tela novamente mais tarde usando os seguintes comando:

sudo raspi-config

Eu utilizei as opções de atualização de senha e habilitar a câmera, já que eu também comprei o módulo de câmera compatível com o Pi, bem como a de configurar opções locais, e ajustei o fuso horário e relógio do Pi, mas mantive o idioma em inglês. Eu também entrei nas opções avançadas, para habilitar o SSH, assim eu poderia usá-lo sem um monitor, pela rede, bem como configurar o hostname, nome como ele é visível na rede.

Ao concluir as configurações do primeiro boot, eu recomendo reiniciar o Pi, quando ele lhe pergunta se você quer fazer isso, assim as suas configurações podem ser validadas logo no início. Minha recomendação é para que você já teste se os ajustes feitos entrão em efeito da forma correta.

Depois de reiniciar o Pi, ele está pronto para uso. Ao ligar o Pi, ele inicializará em modo texto, ou seja, você não vai ver uma tela gráfica logo de início. Ele vai mostrar um prompt pedindo o nome de usuário. O Raspbian já vem com um usuário pi e a senha que você configurou no primeiro boot. Depios de digitar o usuário e senha, você pode digirar o comando

startx

Para carregar a interface gráfica do sistema, que é o LXDE, já com vários softwares e configurações para o Pi disponíveis: o manual do Debian, IDLE, uma IDE para o Python, documentação sobre o desenvolvimento de jogos com PyGame, link para a loja do Pi, configuração de rede sem fio (se você tiver um wifi usb), e muito mais. Um item interessante é o Scratch, um aplicativo desenvolvido para o Pi, para ensinar programação para crianças. Você monta um algoritmo de forma visual, e executa ele no Scratch.

O que fazer com ele?

Por ser um computador completo, o céu é o limite! O seu tamanho pequeno e baixo consumo de energia proporcionam diversas aplicações onde um computador convencional não seria adequado. Eu já postei aqui no blog um tutorial de como usá-lo pra transformar uma impressora convencional em uma impressora do Cloud Printer (na verdade, uma impressora de rede local também, via Cups).

Eu tenho alguns projetos em mente para implementar, incluindo:
  • Um vídeo-game com motion detection para controles.
  • Um roteador customizado com modens.
  • Ser a central de controle de um sistema de automação/monitoramento residencial.
E você, o que gostaria de implementar com um Pi? Poste aqui nos comentários!

Happy hacking!

Referências

[1] Richardson, Matt, and Shawn P. Wallace. Getting started with Raspberry Pi. Sebastopol, CA: O'Reilly Media, 2012.
[2] Raspberry Pi Hardware - https://www.raspberrypi.org/documentation/hardware/raspberrypi/