Simon Monk
Novatec
Authorized Portuguese translation of the English edition of Make: Action, ISBN 9781457187797 © 2016 Simon Monk, published by Maker Media Inc. This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Tradução em português autorizada da edição em inglês da obra Make: Action, ISBN 9781457187797 © 2016 Simon Monk, publicada pela Maker Media Inc. Esta tradução é publicada e vendida com a permissão da O'Reilly Media, Inc., detentora de todos os direitos para publicação e venda desta obra. © Novatec Editora Ltda. 2016. 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 IG20160922 Tradução: Cláudio José Adas Assistente editorial: Priscila A. Yoshimatsu Editoração eletrônica: Carolina Kuwabata Revisão gramatical: Smirna Cavalheiro ISBN: 978-85-7522-524-0 Histórico de impressões: Setembro/2016
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 E-mail: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec
Introdução
1
O Arduino e o Raspberry Pi facilitam de forma inédita a entrada de entusiastas no mundo da eletrônica como hobby. Talvez você queira configurar um sistema caseiro de automação de residências para poder controlar suas luzes e aquecimento através de uma rede WiFi, ou simplesmente controlar alguns motores. Este livro mostrará como usar as populares plataformas Raspberry Pi e Arduino para que seu Pi ou Arduino possam criar e controlar movimento, luz e som.
Arduino e Pi Embora o Arduino e o Raspberry Pi sejam placas de circuito pequenas, do tamanho de um cartão de crédito, na verdade eles são dispositivos bem diferentes. O Arduino é uma placa de microcontrolador muito simples que não roda nenhum tipo de sistema operacional, enquanto o Raspberry Pi é um minúsculo computador que roda Linux e também é capaz de estabelecer uma interface com dispositivos eletrônicos externos.
Raspberry Pi Se você é novato em eletrônica, mas se sente confortável usando computadores, então o Raspberry Pi será o dispositivo mais familiar. Na verdade, o Raspberry Pi (Figura 1.1) é uma versão muito pequena de um computador regular rodando Linux. Ele tem portas USB para conexão de um teclado e mouse, assim como saída de vídeo HDMI para se conectar a um monitor ou aparelho de TV, e uma saída de áudio.
15
16
Movimento, luz e som com Arduino e Raspberry Pi
Figura 1.1 – Um Raspberry Pi 2.
O Raspberry Pi tem uma porta Ethernet para conexão à sua rede e também aceita adaptadores WiFi USB. O Raspberry Pi é alimentado através de um soquete micro USB. Um cartão microSD é usado para armazenamento em vez de um dispositivo de disco convencional. Este cartão contém tanto o sistema operacional quanto todos os seus documentos e programas. O Raspberry Pi foi criado no Reino Unido, principalmente para servir como um computador de baixo custo para ajudar no ensino de conceitos básicos de computação, especialmente programação Python, para alunos do Ensino Fundamental. Na verdade, o nome Pi teria sido derivado de Py de Python. Alguns aspectos diferenciam o Raspberry Pi de um desktop ou laptop regular rodando Linux: • Ele custa apenas US$ 40 (um Raspberry Pi simplificado chamado de modelo A+ também está disponível a um preço menor e o modelo zero por um preço menor ainda). • Ele consome menos de 5 watts de potência. • O Raspberry Pi tem uma dupla fileira de pinos de entrada/saída de uso geral (GPIO) que permitem a conexão de eletrônicos diretamente a ele (os pinos podem ser vistos na parte superior esquerda da Figura 1.1. A partir desses pinos é possível controlar LEDs, displays, motores e todos os diferentes tipos de dispositivos de saída com os quais você irá trabalhar mais adiante neste livro.
Capítulo 1 ■ Introdução
17
Além disso, o Raspberry Pi também pode ser conectado à internet usando WiFi ou um cabo de LAN, o que o torna adequado para projetos do tipo Internet das Coisas (Capítulo 16). As especificações do Raspberry Pi 2 (a mais recente e melhor versão no momento em que escrevo este livro) são as seguintes: • Processador ARM v7 900 MHz quad-core • 1 GB de memória DDR2 • Ethernet 10.100 BaseT • 4 portas USB 2.0 • Saída de vídeo HDMI • Soquete para interface com câmera • Header GPIO de 40 pinos (todos os pinos funcionam com 3,3 V) Se você não está familiarizado com o Raspberry Pi, existe uma introdução para que você comece a usar o hardware e também a linguagem de programação Python no Capítulo 3.
Arduino Existe uma ampla gama de modelos de Arduino disponível. Este livro se concentra no modelo de Arduino mais popular e largamente utilizado, o Arduino Uno (Figura 1.2). O Arduino é um pouco mais barato que um Raspberry Pi – você pode comprar um Arduino Uno por cerca de US$ 25.
Figura 1.2 – Um Arduino Uno Revisão 3.
18
Movimento, luz e som com Arduino e Raspberry Pi
Se você está acostumado a trabalhar em um computador regular, as especificações do Arduino provavelmente parecerão muito inadequadas. Ele só tem 34 KB de memória (de vários tipos). Isso significa que o Raspberry Pi tem aproximadamente trinta mil vezes mais memória, mesmo sem incluir a memória flash do cartão SD do Pi! Além disso, o Arduino Uno tem um processador que funciona a apenas 16 MHz. Não é possível conectar um teclado, mouse ou monitor ao Arduino, e ele não roda um sistema operacional. Você deve estar se perguntando como este pequeno dispositivo pode realmente fazer algo útil. O segredo da utilidade do Arduino está em sua extrema simplicidade. Não há sistema operacional a ser iniciado ou outras interfaces que você não usará em um projeto e que só iriam acrescentar custos e consumo de energia. Enquanto o Raspberry Pi é um computador geral, o Arduino se concentra em fazer uma coisa bem: conectar-se a e controlar dispositivos eletrônicos. Para programar um Arduino você precisa de um computador regular (você pode até usar um Raspberry Pi, se quiser). No computador de sua preferência, você precisará executar um ambiente de desenvolvimento integrado (IDE), que permite escrever um programa a ser baixado na memória flash embutida do Arduino. O Arduino só pode executar um programa por vez, e assim que for programado ele se lembrará desse programa e o executará automaticamente logo que for ligado. Arduinos são projetados para aceitar shields, que são placas que se encaixam sobre os soquetes de entrada/saída do Arduino e acrescentam recursos extras de hardware, como vários tipos de display, assim como adaptadores Ethernet e WiFi. Você programa um Arduino usando a linguagem de programação C (você pode descobrir mais sobre como programar e usar um Arduino no Capítulo 2).
Escolhendo um dispositivo: Arduino ou Pi? Uma das razões pelas quais este livro explica como conectar dispositivos eletrônicos tanto ao Arduino quanto ao Raspberry Pi é que alguns projetos são mais adequados para um Raspberry Pi e outros para um Arduino. Outras placas que ficam entre esses dois extremos geralmente estão próximas o suficiente de um Arduino ou de um Raspberry Pi, de modo que este livro será útil para descobrir como usá-las. Ao iniciar um novo projeto, minha regra geral é usar um Arduino por definição. Entretanto, se o projeto tiver um dos seguintes requisitos, então um Raspberry Pi é provavelmente a melhor opção:
Capítulo 1 ■ Introdução
19
• Conectividade à internet ou a uma rede • Necessidade de uma tela grande • Necessidade de conectar um teclado e mouse • Necessidade de periféricos USB como uma webcam Com algum esforço e gastos é possível expandir o Arduino com shields para atender à maioria dos requisitos acima. Entretanto, será mais difícil fazer tudo funcionar se você optar por este caminho, já que nenhuma dessas características são nativas do Arduino da mesma forma que são para o Pi. Boas razões para usar um Arduino em vez de um Raspberry Pi incluem: Custo
Um Arduino Uno é mais barato que um Raspberry Pi 2. Tempo de iniciação
Um Arduino não precisa aguardar a iniciação de um sistema operacional. Há um pequeno atraso de um segundo enquanto ele verifica se um novo programa está sendo carregado e depois ele está pronto. Confiabilidade
Um Arduino é intrinsecamente um dispositivo muito mais simples e resistente que um Raspberry Pi e ele não tem o “overhead” (processamento em excesso) de um sistema operacional. Consumo de energia
Um Arduino consome cerca de 1/10 da energia em comparação com um Raspberry Pi. Se você precisar de uma solução alimentada por bateria ou energia solar, então o Arduino é a opção melhor. Corrente de saída do GPIO
Um pino GPIO de um Raspberry Pi só deve ser usado para fornecer uma corrente máxima de aproximadamente 16 mA. Por outro lado, o pino de um Arduino tem corrente nominal de saída de 40 mA. Portanto, em alguns casos, é possível conectar algo (digamos, um LED brilhante) a um Arduino diretamente, o que não pode ser feito com um Raspberry Pi.
20
Movimento, luz e som com Arduino e Raspberry Pi
Tanto o Arduino quanto o Raspberry Pi são ótimos dispositivos nos quais basear um projeto e, até certo ponto, a escolha de qual dispositivo usar também será uma questão de preferência pessoal. Uma coisa importante a lembrar ao se conectar dispositivos eletrônicos externos a um Raspberry Pi é que ele funciona a 3,3 V em vez dos 5 V do Arduino. Conectar 5 V a um dos pinos GPIO do Raspberry Pi irá provavelmente danificar ou destruir esse pino, ou até mesmo todo o Raspberry Pi.
Alternativas O Arduino Uno e o Raspberry Pi estão em extremos opostos da gama de dispositivos que podem ser usados para controlar coisas. Como era de se esperar, o mercado produziu toda uma série de outros dispositivos que se encontram entre esses dois extremos, em alguns casos tentando oferecer o melhor dos dois mundos. Novos dispositivos estão surgindo a todo o momento. A natureza de código-fonte aberto do Arduino levou a muitas variações dele, com projetos para nichos específicos, como controlar drones ou estabelecer interfaces com sensores sem fio. A Figura 1.3 mostra uma gama de alguns dos dispositivos mais populares nesta área.
Figura 1.3 – Plataformas embutidas.
Capítulo 1 ■ Introdução
21
Abaixo do Arduino Uno, tanto em termos de preço quanto de desempenho, está o Adafruit Trinket. Esta interessante placa tem apenas alguns pinos GPIO, mas por outro lado é bastante compatível com o Arduino. Vale a pena considerá-la para um projeto que tenha apenas uma ou duas entradas ou saídas. Existe uma categoria média de produtos que inclui o Arduino Yun, o Intel Edison e o Photon, todos com recursos WiFi embutidos e voltados para uso com projetos do tipo Internet das Coisas (IoT) (veja o Capítulo 16). Um deles, o Photon, provavelmente representa a melhor relação custo-benefício. Todos os três dispositivos são programados usando Arduino C, portanto o que você aprender sobre o Arduino também se aplicará a essas placas. O BeagleBone Black é muito semelhante em conceito ao Raspberry Pi. Ele também é um computador com uma única placa e embora a atual versão do BeagleBone Black fique atrás do Raspberry Pi 2 em termos de potência bruta de processamento, o BeagleBone Black apresenta algumas vantagens em relação ao Raspberry Pi. Ele tem mais pinos GPIO e também tem pinos que podem funcionar como entradas analógicas, um recurso que está ausente no Raspberry Pi 2. O BeagleBone Black pode ser programado em Python, de forma semelhante ao Raspberry Pi, ou em JavaScript.
Resumo Este capítulo ofereceu uma breve introdução ao Arduino e ao Raspberry Pi. Discutimos as vantagens e desvantagens que cada placa oferece e também olhamos algumas alternativas. Os próximos dois capítulos farão com que você comece a usar e programar o Arduino e depois o Raspberry Pi. Se você já usou o Arduino e o Raspberry Pi antes, talvez você queira pular para o Capítulo 4 e usar o Arduino e o Raspberry Pi para construir algo útil! Sempre é possível voltar ao Capítulo 2 e Capítulo 3, se for preciso.