Programando o Raspberry Pi Primeiros Passos com Python Simon Monk Novatec Original edition copyright 2013 by Copyright Owner, as set forth in copyright notice of Proprietor’s edition. All rights reserved. Portuguese edition copyright 2013 by Novatec Editora Ltda. All rights reserved. Copyright da edição original 2013 pelo detentor do Copyright, de acordo com a nota na edição do Proprietário. Todos os direitos reservados. Edição em Português copyright 2013 pela Novatec Editora Ltda. Todos os direitos reservados. © Novatec Editora Ltda. 2013. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Tradução: Rafael Zanolli Revisão técnica: Aurelio Jargas Editoração eletrônica: Carolina Kuwabata ISBN: 978-85-7522-357-4 Histórico de impressões: Abril/2013 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 Fax: +55 11 2950-8869 E-mail: [email protected] Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec MP20130411 Sumário Sobre o autor........................................................................................ 13 Agradecimentos.................................................................................... 14 Introdução............................................................................................ 15 1Introdução....................................................................................... 17 O que é o Raspberry Pi?....................................................................17 O que você pode fazer com um Raspberry Pi?....................................19 Um tour pelo Raspberry Pi................................................................19 Configuração de seu Raspberry Pi.....................................................21 Comprando o necessário............................................................. 22 Conectando todos os componentes............................................. 28 Inicialização..................................................................................... 29 Resumo........................................................................................... 30 2 Primeiros passos.............................................................................. 31 Linux............................................................................................... 31 O desktop.........................................................................................32 Internet........................................................................................... 34 Linha de comando............................................................................35 Navegação com o terminal.......................................................... 36 sudo........................................................................................... 38 Aplicações....................................................................................... 39 Recursos da internet..........................................................................41 Resumo............................................................................................41 7 8 Programando o Raspberry Pi 3 Introdução à linguagem Python....................................................... 42 IDLE............................................................................................... 42 Versões do Python...................................................................... 43 Python Shell............................................................................... 43 Editor......................................................................................... 44 Números..........................................................................................47 Variáveis...........................................................................................47 Loops for......................................................................................... 49 Simulação de lançamento de dados.................................................... 51 If..................................................................................................... 53 Comparações.............................................................................. 54 Sendo lógico................................................................................55 Else............................................................................................ 56 While.............................................................................................. 57 Resumo........................................................................................... 58 4 Strings, listas e dicionários............................................................... 59 Teoria de strings............................................................................... 59 Listas.............................................................................................. 62 Funções........................................................................................... 65 Forca................................................................................................67 Dicionários...................................................................................... 76 Tuplas............................................................................................. 77 Atribuição múltipla..................................................................... 78 Valores de retorno múltiplos........................................................ 78 Exceções.......................................................................................... 79 Resumo de funções.......................................................................... 80 Números.................................................................................... 80 Strings.........................................................................................81 Listas......................................................................................... 83 Dicionários................................................................................. 84 Conversões de tipo...................................................................... 84 Resumo........................................................................................... 85 5 Módulos, classes e métodos.............................................................. 86 Módulos.......................................................................................... 86 Utilização de módulos................................................................ 87 Bibliotecas Python úteis.............................................................. 88 Sumário Instalação de novos módulos....................................................... 89 Orientação a objetos........................................................................ 90 Definição de classes........................................................................... 91 Herança........................................................................................... 93 Resumo........................................................................................... 97 6 Arquivos e a internet........................................................................ 98 Arquivos.......................................................................................... 98 Leitura de arquivos..................................................................... 98 Leitura de grandes arquivos....................................................... 101 Escrita de arquivos....................................................................102 Sistema de arquivos...................................................................103 Pickling..........................................................................................104 Internet..........................................................................................105 Resumo..........................................................................................107 7 Interfaces gráficas de usuário......................................................... 108 Tkinter...........................................................................................108 Hello World....................................................................................108 Conversor de temperatura...............................................................109 Outros widgets de GUI....................................................................114 Checkbutton............................................................................. 115 Listbox...................................................................................... 115 Spinbox..................................................................................... 116 Layouts......................................................................................117 Scrollbar....................................................................................120 Caixas de diálogo............................................................................122 Selecionador de cores................................................................. 123 Selecionador de arquivos............................................................ 124 Menus............................................................................................ 124 Canvas...........................................................................................126 Resumo..........................................................................................127 8 Programação de jogos.................................................................... 128 O que é Pygame?............................................................................128 Hello Pygame.................................................................................129 Um jogo Raspberry..........................................................................131 Acompanhando o mouse........................................................... 132 9 10 Programando o Raspberry Pi Uma framboesa......................................................................... 133 Detecção de captura e pontuação............................................... 135 Timing......................................................................................136 Muitas framboesas..................................................................... 137 Resumo...........................................................................................141 9 Interface com hardware................................................................. 142 Conexões de pinos GPIO................................................................. 143 Conexão direta aos pinos GPIO.......................................................144 Placas de expansão..........................................................................144 Pi Face....................................................................................... 145 Slice of PI/O..............................................................................146 RaspiRobotBoard.......................................................................148 Gertboard................................................................................. 149 Placas de prototipagem....................................................................150 Pi Cobbler.................................................................................150 Pi Plate...................................................................................... 151 Humble Pi................................................................................. 152 Arduino e o Pi................................................................................ 152 Uma conversa entre o Arduino e o Pi..........................................154 Resumo..........................................................................................156 10 Projeto de prototipagem (relógio).................................................. 157 De que você necessita......................................................................158 Montagem do hardware..................................................................158 Software......................................................................................... 161 Fase dois.........................................................................................163 Resumo.......................................................................................... 167 11RaspiRobot.................................................................................... 168 De que você necessita......................................................................169 Fase 1: um andarilho básico............................................................ 170 Montagem do hardware............................................................. 170 Sobre o software........................................................................ 176 Fase 2: inclusão de um telêmetro e de uma tela.................................177 Passo 1: monte o adaptador serial do telêmetro...........................177 Passo 2: conecte a tela................................................................ 179 Sumário Passo 3: atualize o software........................................................180 Passo 4: execute......................................................................... 181 Software revisado...................................................................... 181 Resumo..........................................................................................183 12 O que vem a seguir......................................................................... 184 Recursos Linux...............................................................................184 Recursos Python.............................................................................185 Recursos do Raspberry Pi................................................................185 Outras linguagens de programação..................................................186 Scratch......................................................................................187 C...............................................................................................187 Aplicações e projetos.......................................................................189 Media Center (Raspbmc)...........................................................189 Automação residencial ..............................................................189 Resumo..........................................................................................190 11