Conhecendo o Raspberry Pi: Possibilidades de uso em contextos educacionais e profissionais Prof. André Gustavo Duarte de Almeida [email protected] docente.ifrn.edu.br/andrealmeida Roteiro • • • • • • • História Arquitetura Onde comprar Primeiros Passos Integração de Hardware Raspberry Pi e Arduino Conclusão História • Ideia surgiu na universidade de Cambridge(UK) em 2006 • Preocupação com o ensino de TI para crianças • Em 2008, diminuição dos custos X aumento da capacidade de processadores para dispositivos móveis • Em 2011 o modelo B do Raspberry Pi • Raspberry = Fruta comum em países com clima temperado • PI = Python História • O que é o RaspBerry Pi? • Segundo o site raspberrypi.org • “Um computador do tamanho de um cartão de crédito, que pode ser plugado em uma TV e faz a maioria das coisas que um desktop faz.” • “Queremos que as crianças ao redor do mundo aprendam a programar” • Custo de $35.... Arquitetura Arquitetura • Processador • • • • Família ARM11 32 bits, 700MHZSoC(System on a Chip) 512MB no modelo B e 256MB no modelo A Mesmo processador do Kindle 2 e do iPhone 3g • SD Card Slot • Atua como HD do Raspberry Pi Arquitetura • Portas USB 2.0 • Modelo B com duas portas e Modelo A com uma porta • Cuidado na conexão de múltiplos dispositivos • Recomendado usa um USB Hub com fonte de alimentação própria • Conector de Vídeo HDMI e Composto • Porta Ethernet • LED de Status Arquitetura • Power Input • Utilizar um carregador microUSB • General Purpose Input and Output(GPIO) • Permite a interação com outros tipos de hardwares, como Leds, Motores, Arduino.... • Display Serial Interface(DSI) • Conectar LCD ou displays de LED • Camera Serial Interface(CS) • Conectar um módulo de câmera Onde Comprar • 35$ no Reino Unido... • Representantes oficiais • Premier Farnell/Element 14 • RS Components • No Brasil... • 170,01....(http://www.farnellnewark.com.br) • Solução: Comprar fora e aguardar e entrega Primeiros Passos • Periféricos(Mínimo) • Fonte microUSB que gere 5V e pelo menos 700mA • Cartão SD de pelo menos 4GB e classe 4 • Cabo HDMI para conexão com TV e/ou Monitor • Solução VGA: Adaptador • Cabo de Internet • Teclado + Mouse(para manuseio do SO) Primeiros Passos • Configuração do SO • Baixa o NOBOS(New out of the Box Software). Permite a escolha da distribuição a ser instalada. Arquivo em formato zip • Formatar o Cartão SD e depois copiar o conteúdo do arquivo descompactado no cartão • Ao ligar o RaspBerry, selecionar o SO a ser instalado • Pode ser a feita a instalação sem a ferramenta Primeiros Passos • Configuração do SO • • • • • Distribuições “Oficiais” Raspbian “wheezy” Pidora Arch Linux ARM Mais opções em: http://elinux.org/RPi_Distribution Primeiros Passos • Raspi-config Primeiros Passos • Raspbian • Baseado no Debian, com otimização para ARM/ Raspberry Pi • Gerenciador de janelas LXDE • Usuário: pi • Password: raspberry • Para desenvolvimento • Python • Scratch Primeiro Passos • Scratch • Aprenda a programar, programe para aprender • Construção de histórias, usando comandos baseados em blocos • Utilizando em diversos níveis(de crianças a adultos) • Vale a pena conferir: • http://scratched.media.mit.edu/ • http://scratch.mit.edu/ Primeiros Passos • Python • • • • • Flexível Interpretada Comunidade ativa Uso por grandes empresas(Google, Twitter...) Ideal como primeira linguagem de programação Integração de Hardware • GPIO • • • • Utilização dos 26 pinos da placa Pinos de propósito geral(bi-direcional) Pinos de alimentação, terra.... Esquema dos pinos deve ser compreendido para o uso adequado em projetos de automação/ eletrônica Integração de Hardware • GPIO 1 3 2 4 25 26 Integração de Hardware • GPIO – Manipulação com Python • • • • • Instalar os pacotes(atualizar repositórios antes) sudo apt-get update sudo apt-get install python-dev sudo apt-get install python-setuptools sudo apt-get install python-rpi.gpio Integração de Hardware • Primeiro Exemplo • • • • • Alternar o acendimento de um LED Montar o circuito Definir a porta de envio de sinal Escrever o código Executar Integração de Hardware • Montar o circuito • • • • • 1 LED 1 Protoboard 2 Fios Jumpers Macho Resistor para preservar a vida útil do LED No meu circuito: 2 resistores de 330Ω em paralelo, produzindo uma resistência de 165 Ω(RT=R1.R2/ (R1+R2)) • Voltagem=3.3V, produzindo assim uma corrente I=3.3/165=0,02ª ou 20mA Integração de Hardware • Montar circuito • Cabo flat para interligar os pinos com o protoboard • Utilizei um cabo flat para HD(existem cabos próprios) • Conectar o jumper de alimentação(pino que será controlado) na entrada positiva do LED(Perna maior) – Utilizei o pino 18 • Conectar o jumper do terra(fechamento do circuito) na ligação do protoboard que fecha os resistores – Pino 6 Integração de Hardware • Escrever o código import RPi.GPIO as GPIO //Importa a biblioteca das GPIO import time //Importa a biblioteca de tempo GPIO.setmode(GPIO.BOARD) //Configura o modo de definição de pinos como BOARD (contagem de pinos da placa) GPIO.setwarnings(False) //Desativa os avisos GPIO.setup(18, GPIO.OUT) //Configura o pino 18 da placa (GPIO24) como saída while(1): //Inicia o loop infinito print("LED ACESO\n") GPIO.output(18, 1) //Coloca o pino 18 em nível alto (1) time.sleep(1) print("LED APAGADO\n") GPIO.output(18, 0) //Coloca o pino 18 em nível baixo (0) time.sleep(1) Fonte: http://labdegaragem.com/profiles/blogs/ tutorial-led-blink-com-raspberry-pi Integração de Hardware • Executando • sudo python led.py • A execução como root é necessária, pois o usuário pi não tem acesso liberado aos pinos da placa Integração de Hardware • Notificador Twitter • Construir um circuito + código que acione um led quando a hastag #ensol for detectada. • Caso não tenhamos nenhum tweet com a hastag, um led vermelho fica ativado • Circuito construído com base no anterior, passando agora a utilizar o pino 16 para alimentar o led vermelho • Usamos o Python Twitter Tools: https://github.com/ sixohsix/twitter Integração com Hardware • Python • Autenticar para usar a API do twitter • Procurar tweets com a hashtag #ensol • Para cada novo tweet: • • Acionar o LED verde e apagar o vermelho Deixar o Led acesso por 10 segundos • Enquanto não tiverem novos tweets • Deixe o LED vermelho acesso • Encerre mediante interrupção do teclado(ctrl+c) Raspberry Pi + Arduino • Raspbery x Arduino??? • Plataformas complementares • Arduino possuir maior leque de opções para complementação • Arduino é mais resistente a erros de montagem de circuitos e projetos • Maior número de projetos • Usar o Pi como um processador ampliado, delegando ao Arduino o manuseio de periféricos(motores, sensores, etc...) Raspberry Pi + Arduino • Instalando • Ligar o Pi e conectar o Arduino • sudo apt-get install arduino • Liberar acesso do usuário pi a porta serial • • sudo usermod -a -G tty pi sudo usermod -a -G dialout pi • Instalar o módulo serial do Python(Pi -> Arduino) • sudo apt-get install python-serial Raspberry Pi + Arduino • Automação Residencial • Raspberry Pi como controlador principal • Arduino na interação com diversos dispositivos, em uma casa inteligente por exemplo Conclusões • Computador de baixo custo • Proposta de facilitador de inclusão digital e iniciação a programação • Bom dispositivo de processamento, em projetos de automação • Leque de experiências educacionais e profissionais, tanto de programação, como de projetos práticos de eletrônica, automação e robótica