Arduino Prático - 10 Projetos PDF

Document Details

GaloreAstrophysics3786

Uploaded by GaloreAstrophysics3786

Escola Miguel Torga

Fernando Bryan Frizzarin

Tags

Arduino programação eletrônica projetos

Summary

Este e-book apresenta 10 projetos práticos com Arduino. Cada projeto é detalhado, incluindo materiais necessários, passo a passo de desenvolvimento e desafios adicionais. Abrange tópicos como automatização de portas com senha, radares de velocidade e robôs. Livre de questões de avaliações.

Full Transcript

150325 E-book gerado especialmente para Thiago Malagutti - [email protected] E-book gerado especialmente para Thiago Malagutti - [email protected] E-book gerado especialmente para Thiago Malagutti - [email protected] ISBN Impresso e PDF: 978-85-5519-216-6 EPUB:...

150325 E-book gerado especialmente para Thiago Malagutti - [email protected] E-book gerado especialmente para Thiago Malagutti - [email protected] E-book gerado especialmente para Thiago Malagutti - [email protected] ISBN Impresso e PDF: 978-85-5519-216-6 EPUB: 978-85-5519-217-3 MOBI: 978-85-5519-218-0 Caso você deseje submeter alguma errata ou sugestão, acesse http://erratas.casadocodigo.com.br. E-book gerado especialmente para Thiago Malagutti - [email protected] AGRADECIMENTOS A Deus. À Priscila, minha esposa, pelo incentivo e imensa ajuda. Aos meus filhos, Eduardo e Bruno, pelas inúmeras ideias. À Nathália Lustosa da Silva, João Gabriel Sousa da Cruz e Victor Badolato Athayde, pela mão. À Profª. Vanessa Juliato e à Profª. Magda Silva Rizzeto, pelo incentivo e encorajadora introdução. À Fundação Romi, pela oportunidade de que eu aprenda ensinando. E-book gerado especialmente para Thiago Malagutti - [email protected] SOBRE O AUTOR Fernando Bryan Frizzarin, natural de Americana, é técnico em Informática, bacharel em Ciência da Computação e Psicopedagogo, especialista em Redes de Computadores, e tem MBA em Gestão Estratégica de Negócios. Autor do livro Arduino: guia para colocar suas ideias em prática, publicado pela Casa do Código, professor do ensino superior nas Faculdades Integradas Einstein de Limeira e supervisor de informática do Departamento de Água e Esgoto de Americana. Ele foi ainda professor do Magistério Secundário Técnico na Universidade Estadual de Campinas (UNICAMP) por 12 anos. Também é voluntário na Fundação Romi no Núcleo de Ensino Integrado, em Santa Bárbara d’Oeste (SP), como consultor para o ensino de robótica no Ensino Fundamental. Coautor da patente BR1020140270159/2014: Dispositivo automatizado de liberação controlada, projeto desenvolvido em conjunto com os alunos Bianca de Mori Machado Amaral e Felipe Ferreira da Silva, incluindo apoio da Arqª Marylis Barbosa de Souza. Esse projeto foi desenvolvido nas disciplinas de Desenvolvimento de Projetos e Tópicos Avançados em Informática no Colégio Técnico de Limeira (UNICAMP), e o depósito feito por meio da Agência de Inovação da UNICAMP (INOVA). E-book gerado especialmente para Thiago Malagutti - [email protected] COMO USAR ESTE LIVRO Minha formação sugere que o correto é mostrar e ensinar as ferramentas, e desafiar as pessoas para que elas as usem a seu favor. Isso para explorar e construir o conhecimento, que pode vir com diferentes nuances, cores, tamanhos e formas, conforme a necessidade e a forma como cada um encara seus desafios. Porém, depois do livro Arduino: guia para colocar suas ideias em prática, mesmo não faltando desafios e sugestões do que é possível realizar com todas as ferramentas apresentadas, muita gente me procura com a pergunta: "professor, me dá uma ideia do que fazer?". Sempre relutei em, de imediato, começar a sugerir projetos, pois acredito no potencial de todos em inventar. Mas comecei a achar que o que faltava, então, era um "pontapé inicial", algo concreto com o que se pudesse começar, que servisse como o desafio inicial para que seja usado, aprimorado e modificado livremente. Sendo assim, este livro é para ser usado como um pontapé inicial e como um desafiador para novas ideias, para que você possa ter um projeto preconcebido, com a montagem e programação detalhada passo a passo, e componentes e lógicas básicas para que se possa ir além até onde sua imaginação permitir. Sugiro, inclusive, que você monte os projetos, modifique, e convide ou desafie mais alguém a continuá-lo, a ajudá-lo no aprimoramento para que haja uma troca de ideias e visões que permita que todos os envolvidos evoluam e cresçam juntos. Apesar de este livro ser orientado para hobbistas e curiosos, E-book gerado especialmente para Thiago Malagutti - [email protected] profissionais também podem utilizá-lo. Porém, ele não apresentará conceitos profundos de eletrônica que devem ser buscados em concomitância com a leitura e a construção de cada projeto. O pré-requisito será ter noções do uso de Arduino, um pouco de eletrônica, programação em linguagem C para o Arduino, além de bastante vontade de seguir em frente, ir além e criar. Desta forma, meu primeiro livro, já citado, é um par perfeito para este. E-book gerado especialmente para Thiago Malagutti - [email protected] PREFÁCIO O Arduino é uma plataforma formada por um equipamento eletrônico e um ambiente de programação integrado (Integrated Development Enviroment — IDE) para prototipagem eletrônica e de software. O equipamento eletrônico da plataforma Arduino consiste em uma placa de circuitos integrados, devidamente equipada com seus componentes eletrônicos, cujo componente central é um microprocessador do tipo AVR da Atmel. Os softwares que serão utilizados para programar o Arduino são livres e gratuitos. Muito se tem discutido, recentemente, acerca do uso do Arduino em projetos de tecnologia, mas pouco sobre como realmente utilizar esse componente, e o que de fato dá para se construir com ele. Este livro, obra preparada por Fernando Bryan, que ao longo de sua vida acadêmica vem criando, testando e inovando os projetos, nos traz muitos projetos com o Arduino. O material aqui apresentado tem como finalidade a apresentação de possíveis projetos que podem ser confeccionados com alguns componentes de elétrica. Os projetos foram concebidos para usarem apenas componentes fáceis de encontrar em lojas especializadas de eletrônica, que tenham baixo custo e que possam ser, na medida do possível, compartilhados entre os projetos. No final do livro, você encontrará uma lista de todos os componentes utilizados em todos os projetos, indicando inclusive em quais projetos eles são utilizados. E-book gerado especialmente para Thiago Malagutti - [email protected] Com linguagem simples, imagens com esquemas e links para vídeos, o presente livro lhe trará muitos projetos, e estimulará sua criatividade, explorando o seu raciocínio e possibilitando o surgimento de novos ideários e como colocá-los em prática. Serão 10 capítulos com projetos prontos para seguir passo a passo, dando as orientações para desde automatizar uma porta (fazendo a abrir com senha), controlar a velocidade de um objeto com um radar, automatizar um sistema de iluminação através de controle remoto, construir um dado eletrônico, criar um videogame, entre várias outras ideias, até a construção de um robô aranha. Este livro não foi escrito para quem quer aprender eletrônica, mas sim para quem quer aprender programar Arduino por meio destes projetos que não requerem exatamente muito conhecimento de eletrônica, mas sim de programação. Sendo assim, este livro é para quem sabe ou quer aprender programar, e se sabe programar — independe da linguagem ou sistema operacional — pelo menos intermediariamente. Agradecemos ao Fernando Bryan, pelo o apoio e dedicação durante estes dois anos que vêm nos apresentando o Arduino e nos surpreendendo cada vez mais, não só com essa ferramenta tecnológica, mas com sua vontade de ensinar, empolgar e revolucionar os pensamentos e as ideias. É com grande satisfação que apresentamos este livro, pois acreditamos no trabalho com o Arduino. Nós nos inspiramos muito com o livro Arduino: Guia para colocar suas ideias em prática em nossas aulas, e agradecemos a oportunidade de assim apresentar este segundo livro, que nos trará muitos projetos e novos conceitos de trabalhos. Além disso, vai estimular e envolver E-book gerado especialmente para Thiago Malagutti - [email protected] novos interessados nesse trabalho. Siga em frente. É hora de aprender. Sinta-se à vontade! Profª. Vanessa Juliato e Profª. Magda Silva Rizzeto Fundação ROMI — Núcleo de Educação Integrada E-book gerado especialmente para Thiago Malagutti - [email protected] Casa do Código Sumário Sumário 1 Como montar os projetos 1 2 Projeto nº 01 — Criando nosso próprio Arduino 4 2.1 Materiais utilizados nesse projeto 4 2.2 Desenvolvendo o projeto 5 2.3 Desafio 24 3 Projeto nº 02 — Automatizando uma porta com senha via teclado 26 3.1 Materiais utilizados nesse projeto 26 3.2 Desenvolvendo o projeto 27 3.3 Desafio 48 4 Projeto nº 03 — Criando um radar para verificar a velocidade de um objeto 50 4.1 Materiais utilizados nesse projeto 50 4.2 Desenvolvendo o projeto 51 4.3 Desafio 76 5 Projeto nº 04 — Que tal acionar as lâmpadas de sua casa com controle remoto? 77 E-book gerado especialmente para Thiago Malagutti - [email protected] Sumário Casa do Código 5.1 Materiais utilizados nesse projeto 77 5.2 Desenvolvendo o projeto 78 5.3 Desafio 94 6 Projeto nº 05 — Um dado eletrônico para jogos 96 6.1 Materiais utilizados nesse projeto 96 6.2 Desenvolvendo o projeto 97 6.3 Desafio 121 7 Projeto nº 06 — Criando um videogame para você 122 7.1 Materiais utilizados nesse projeto 122 7.2 Desenvolvendo o projeto 123 7.3 Desafio 138 8 Projeto nº 07 — Alarme de geladeira com monitoramento de abertura da porta 140 8.1 Materiais utilizados nesse projeto 140 8.2 Desenvolvendo o projeto 141 8.3 Desafio 159 9 Projeto nº 08 — Construindo um rastreador GPS offline 161 9.1 Materiais utilizados nesse projeto 161 9.2 Desenvolvendo o projeto 162 9.3 Desafio 192 10 Projeto nº 09 — Batata quente, quente... quente... queimou! 194 10.1 Materiais utilizados nesse projeto 194 10.2 Desenvolvendo o projeto 195 10.3 Desafio 202 E-book gerado especialmente para Thiago Malagutti - [email protected] Casa do Código Sumário 11 Projeto nº 10 — O robô aranha mais simples do mundo! 204 11.1 Materiais utilizados nesse projeto 204 11.2 Desenvolvendo o projeto 205 11.3 Desafio 227 12 Lista geral de materiais 228 Versão: 21.9.13 E-book gerado especialmente para Thiago Malagutti - [email protected] CAPÍTULO 1 COMO MONTAR OS PROJETOS Os projetos deste livro foram concebidos para serem montados usando equipamentos e componentes reais, sem o uso de simulador. Portanto, é importante obter todos os recursos antes de começar. Serão usados apenas um Arduino e uma placa de ensaios, ou prot-o-board e vários outros componentes que são indicados e detalhados em cada projeto. Mas caso deseje mantê-los montados, você terá de providenciar um conjunto para cada projeto. Você também precisará ter um computador para realizar a programação do Arduino, como também ter conexão à internet. A última versão do IDE Arduino pode ser baixado em http://arduino.cc. Note que é sempre uma boa ideia usar a versão mais atualizada. 1 COMO MONTAR OS PROJETOS 1 E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 1.1: O site do Arduino (https://arduino.cc), acessado em 18 de março de 2016 Dê preferência por montar os projetos sobre uma mesa ou uma bancada. Depois de tudo pronto e funcionando, você poderá decidir sobre o acabamento, adaptações e instalação em local apropriado. Antes de começar, procure identificar corretamente os componentes e os esquemas de ligação. Códigos-fonte Todos os códigos-fontes apresentados nos projetos deste livro estão disponíveis em https://github.com/fbryan/fontes/. As bibliotecas utilizadas para os projetos estão disponíveis em 2 1 COMO MONTAR OS PROJETOS E-book gerado especialmente para Thiago Malagutti - [email protected] https://github.com/fbryan/, sendo que os caminhos diretos estão explicitados nos projetos. Vale a pena sempre reforçar que esses código podem e devem ser melhorados. Estude-os, compreenda o funcionamento, modifique, melhore e faça adaptações, para que você possa usá-los em seus próprios projetos. Agora que você já sabe do que precisará para começar, vamos começar e em grande estilo: que tal criar nosso próprio Arduino? 1 COMO MONTAR OS PROJETOS 3 E-book gerado especialmente para Thiago Malagutti - [email protected] CAPÍTULO 2 PROJETO Nº 01 — CRIANDO NOSSO PRÓPRIO ARDUINO Como prometido, vamos começar em grande estilo. Construiremos nosso próprio Arduino! Já pode ir pensando no nome que dará ao seu. Para o meu, chamarei carinhosamente de Bryanduino. Talvez seja falta de imaginação, eu sei, mas ficou simpático: "Braianduíno". 2.1 MATERIAIS UTILIZADOS NESSE PROJETO 1 x Arduino UNO R3 1 x Prot-o-board 1 x Suporte para baterias de 9V 1 x Bateria de 9V 1 x Cristal oscilador de 16MHz 1 x Resistor de 10 KΩ 1/4W 1 x Resistor de 330 Ω 1/4W 4 2 PROJETO Nº 01 — CRIANDO NOSSO PRÓPRIO ARDUINO E-book gerado especialmente para Thiago Malagutti - [email protected] 2 x Capacitores cerâmicos de 22 pF/50 1 x Regulador de tensão 7805 1 x LED vermelho Fios diversos 2.2 DESENVOLVENDO O PROJETO Bom, mas saiba que não será a placa completa; não será esse o nosso objetivo. Vamos montar apenas o necessário para que o microcontrolador funcione corretamente e possa rodar nossos programas. A ideia é que usemos um Arduino completo — desses que compramos em lojas ou na internet —, para prototipar nosso projeto, testar os componentes e a programação. Depois retiramos o microcontrolador da placa e colocamos no circuito básico, junto com os componentes e shields que, por ventura, sejam usados no projeto, de forma que ele possa funcionar compacto e apenas no que interessa. Isso tudo para que possamos integrar nossos projetos em locais menores e melhores. Você verá que, em todo projeto, a sugestão é sempre que você faça e teste tudo usando a placa Arduino, mas depois construa seu próprio circuito para deixar o projeto menor e mais cômodo. Esse também é um bom começo, um jeito de criar uma relação mais íntima com o Arduino e suas possibilidades. 2.2 DESENVOLVENDO O PROJETO 5 E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.1: O Arduino UNO R3, de onde sairá o microcontrolador Vamos começar com um programa simples, o mais simples de todos: piscar o LED do pino 13. void setup() { pinMode(13,OUTPUT); } void loop() { digitalWrite(13,HIGH); delay(1000); digitalWrite(13,LOW); delay(1000); } Compile e carregue o programa no seu Arduino e verifique se tudo funciona bem. Ou seja, se o LED do pino digital 13 fica aceso por um segundo e, em seguida, apagado também por um segundo, piscando. Desligue o Arduino desconectando-o do computador e, com 6 2.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] muito cuidado, retire o microcontrolador da placa. Para isso, você pode usar uma pinça própria para remoção de circuitos integrados, como mostrada na figura a seguir, ou uma chave de fenda bem fina. Figura 2.2: Removendo o microcontrolador da placa Arduino Tenha o máximo de cuidado com a remoção do microcontrolador. Se você danificar qualquer pino, ele não funcionará nem fora, nem conectado de volta à placa do Arduino. Certifique-se, especialmente, de não entortar qualquer um dos pinos. 2.2 DESENVOLVENDO O PROJETO 7 E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.3: A placa do Arduino sem o microcontrolador e o microcontrolador fora da placa Arduino Uma das coisas que você deve prestar muita atenção é na posição do microcontrolador. Note que, na parte superior, onde há as inscrições de marca e modelo (ATMEGA328), há também um chanfro e um ponto gravado em baixo relevo. Veja na figura a seguir: 8 2.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.4: O microcontrolador com o chanfro e o ponto em baixo relevo em destaque à esquerda da imagem Esse ponto indica que o pino mais próximo é o de número 1, e a contagem segue desse mesmo lado até o pino número 14. Do outro lado, o pino de menor número, o de número 15, é do lado oposto ao do ponto, ou seja, se o ponto está à esquerda, o pino 15 está do lado direito, e do outro lado, o microcontrolador. E desse outro lado, temos os pinos de número 15 até 28. A figura seguinte ilustra esse esquema: Figura 2.5: Os pinos, numerados, do microcontrolador ATMEGA328 A descrição dos pinos é o que segue: Pino 1 — Reset: colocar um nível baixo (GND) nesse pino causará o reset no microcontrolador, causando o reinício 2.2 DESENVOLVENDO O PROJETO 9 E-book gerado especialmente para Thiago Malagutti - [email protected] da execução do sketch a partir da função setup(). Pino 2 — Serial RX (receiver/receptor) e digital 0: pino digital 0 do Arduino que também é o pino serial RX nativo que pode ser usado para receber dados seriais de outro equipamento ou outro Arduino. Nesse outro equipamento ou Arduino, este deve estar interligado ao pino serial TX (transmissor). Pino 3 — Serial TX (transmitter/transmissor) e digital 1: pino digital 1 do Arduino, que também é o pino serial TX nativo, pode ser utilizado para enviar dados seriais para outro equipamento ou outro Arduino. Nesse outro equipamento ou Arduino, este deve estar interligado ao pino serial RX (receptor). Pino 4 — Pino digital 2: pino digital 2 do Arduino. Pino 5 — Pino digital 3 (PWM): pino digital 3 do Arduino, que é do tipo Pulse-with Modulation (pulso com modulação). Pino 6 — Pino digital 4: pino digital 4 do Arduino. Pino 7 — VCC +5V: pino para alimentação elétrica do microcontrolador com +5 volts. Pino 8 — GND: pino para conexão ao terra do microcontrolador (negativo). Pino 9 — Cristal externo: pino para conectar o microcontrolador ao cristal oscilador, também conhecido como clock. 10 2.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Pino 10 — Cristal externo: pino para conectar o microcontrolador ao cristal oscilador, também conhecido como clock. Pino 11 — Pino digital 5 (PWM): pino digital 5 do Arduino, que é do tipo Pulse-with Modulation (pulso com modulação). Pino 12 — Pino digital 6 (PWM): pino digital 6 do Arduino, que é do tipo Pulse-with Modulation (pulso com modulação). Pino 13 — Pino digital 7: pino digital 7 do Arduino. Pino 14 - Pino digital 8: pino digital 8 do Arduino. Pino 15 - Pino digital 9 (PWM): pino digital 9 do Arduino, que é do tipo Pulse-with Modulation (pulso com modulação). Pino 16 — Pino digital 10 (PWM): pino digital 10 do Arduino, que é do tipo Pulse-with Modulation (pulso com modulação). Pino 17 — Pino digital 11 (PWM): pino digital 11 do Arduino, que é do tipo Pulse-with Modulation (pulso com modulação). Pino 18 — Pino digital 12: pino digital 12 do Arduino. Pino 19 — Pino digital 13: pino digital 13 do Arduino. Pino 20 — AVCC +5V: pino que provê alimentação elétrica para o conversor analógico/digital interno do 2.2 DESENVOLVENDO O PROJETO 11 E-book gerado especialmente para Thiago Malagutti - [email protected] microcontrolador, e deve ser conectado na alimentação de +5 volts. Pino 21 — AREF: pino que é a referência analógica para o conversor analógico/digital interno do microcontrolador. Pode ser alimentado com tensão de 0 até +5 volts. Pino 22 — GND: pino para conexão ao terra do microcontrolador (negativo). Pino 23 — Pino Analógico 0: pino analógico A0 do Arduino. Pino 24 — Pino Analógico 1: pino analógico A1 do Arduino. Pino 25 — Pino Analógico 2: pino analógico A2 do Arduino. Pino 26 — Pino Analógico 3: pino analógico A3 do Arduino. Pino 27 — Pino Analógico 4: pino analógico A4 do Arduino. Pino 28 — Pino Analógico 5: pino analógico A5 do Arduino. É importante reconhecer os pinos corretamente para que seja possível você migrar seu projeto da placa Arduino completa para seu Arduino personalizado, obedecendo a ordem e esquema de ligações. Além do microcontrolador, para construir um Arduino 12 2.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] mínimo, você precisará de um prot-o-board. Ele não precisa ser exatamente como a da imagem a seguir, que será a base para esse projeto: Figura 2.6: Uma prot-o-board Você pode aproveitar e colocar o microcontrolador retirado do Arduino na prot-o-board: Figura 2.7: O microcontrolador ATMEGA328 conectado na prot-o-board 2.2 DESENVOLVENDO O PROJETO 13 E-book gerado especialmente para Thiago Malagutti - [email protected] Você também precisará de um suporte para baterias de 9 volts para alimentar todo o circuito: Figura 2.8: O suporte para baterias de 9 volts Vamos aproveitar e também conectar o suporte para bateria na prot-o-board: Figura 2.9: O suporte de bateria conectado às trilhas horizontais da prot-o-board Um regulador de voltagem de, pelo menos, 20 volts para 5 volts. O utilizado será um transistor 7805, facilmente encontrado em lojas de materiais eletrônicos e com baixo custo. 14 2.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.10: Um regulador de voltagem 7805 O transistor 7805 é um regulador de voltagem linear capaz de manter a tensão de saída constante em um determinado valor, no caso 5V, que é o requerido pelo microcontrolador. A tensão mínima de entrada é de aproximadamente 7V e máxima de 25V, com corrente máxima de 1,5A. Então, uma bateria de 9V dará conta do recado suficientemente e o circuito não vai requer mais do que isso em corrente. Os três pinos são apresentados numerados na figura a seguir: 2.2 DESENVOLVENDO O PROJETO 15 E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.11: Um regulador de voltagem 7805 com os pinos numerados O pino 1 é a entrada de tensão, conforme as especificações já citadas anteriormente. O pino 2 é o comum (ou seja, GND), e o pino 3 é a saída de tensão já regulada. Então vamos colocar o regulador de tensão na prot-o-board, ligando o pino 1 do regulador ao positivo da bateria, o pino 2 do regulador ao negativo da bateria (GND) e o pino 3 do regulador ao pino 7 do microcontrolador (VCC +5V). 16 2.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.12: Conexões entre o regulador de voltagem, a bateria e o pino 7 do microcontrolador Vamos aproveitar então para interligar o pino 20 do microcontrolador ao positivo da bateria, e os pinos 8 e 22 também do microcontrolador ao negativo da bateria (GND). 2.2 DESENVOLVENDO O PROJETO 17 E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.13: Os pinos 8 e 22 do microcontrolador ligados ao negativo e o pino 20 ligado ao positivo da bateria O pino 21 do microcontrolador (AREF) também deve ser ligado ao positivo da bateria. Precisamos também de um cristal oscilador para gerar frequência de clock, para que o microcontrolador possa funcionar. 18 2.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.14: O cristal oscilador, usado como clock O cristal oscilador será usado como gerador de sinal de clock para o microcontrolador. Ele é importante, pois garante o sincronismo e contagem de tempo para que o microcontrolador funcione corretamente. Quando for adquirir um cristal, verá que há diversas frequências possíveis que são geradas por eles. O microcontrolador ATMEGA328 usado no Arduino UNO funciona em frequência máxima de 20MHz, mas, por padrão, nas placas Arduino UNO são usados cristais de 16MHz. Ligue os pinos 9 e 10 do microcontrolador ao cristal oscilador. O cristal não possui polaridade. 2.2 DESENVOLVENDO O PROJETO 19 E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.15: O cristal ligado ao microcontrolador Falta pouco para terminar, apenas três componentes. Primeiro, dois capacitores cerâmicos de 22pF: 20 2.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.16: Os dois capacitores cerâmicos Esses capacitores serão ligados cada um entre um terminal do cristal oscilador e o negativo da bateria (GND), como na figura a seguir: 2.2 DESENVOLVENDO O PROJETO 21 E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.17: Capacitores entre os terminais do cristal oscilador e o negativo da bateria O último componente é um resistor de 10KΩ, que será ligado entre a saída do regulador de tensão (+5V) e o pino 1 do microcontrolador. Como já explicado anteriormente, esse pino é o reset e, quando você colocá-lo um nível baixo (GND) nele, o microcontrolador será resetado e a execução do programa começará novamente. Portanto, com esse resistor, entre ele e o +5V, garantimos que ele terá sempre um nível alto ( HIGH ). Caso queira incluir um botão para o reset, basta ligá-lo de forma que, quando pressionado, ligue o pino 1 do microcontrolador ao GND (negativo da bateria). 22 2.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.18: O resistor de 10KΩ entre o regulador de tensão e o pino 1 do microcontrolador. Pronto! Aí está o seu Arduino montado na prot-o-board. Qual nome você dará? Agora, fiquei na dúvida se mantenho a ideia do Bryanduíno, ou se batizo ele de Fernanduíno. Mas o brinde em homenagem a ele está garantido. Mas, e para testá-lo? Lembre-se de que programamos o microcontrolador no início desse projeto para piscar um LED que estiver ligado ao pino 13? Então, vamos ligar o conjunto LED e resistor no pino 13 do Arduino. Ligue o resistor entre o pino 19 do microcontrolador (que é o 13 do Arduino) e o terminal positivo do LED. Ligue o terminal negativo do LED ao negativo da bateria (GND). 2.2 DESENVOLVENDO O PROJETO 23 E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 2.19: O conjunto LED e resistor no pino 13 do Arduino (19 do microcontrolador) Pronto! Você encontrará um vídeo desse projeto funcionando em https://youtu.be/vEuGsxrfLpQ. 2.3 DESAFIO Se você tiver boa imaginação ou criatividade, vai perceber que as possibilidades são infinitas. Você pode criar qualquer projeto, como faremos durante todo este livro. Pode testá-los usando uma placa Arduino UNO, e depois melhorá-los criando sua própria placa com o microcontrolador e o seu programa. 24 2.3 DESAFIO E-book gerado especialmente para Thiago Malagutti - [email protected] E esse será o grande desafio para todos os projetos que virão a seguir! Ele será sugerido em todos os projetos como você verá, além de outras coisas não tão óbvias. Mas para esse projeto em específico, um bom desfio será gravar o microcontrolador sem removê-lo da prot-o-board, e colocá-lo em uma placa Arduino UNO. A dica será que, para isso, basta usar um conversor USB/Serial e conectar os pinos RX serial do conversor ao TX serial do microcontrolador, o TX do conversor ao RX do microcontrolador e o GND do conversor ao negativo da pilha. O próximo projeto pode ser o primeiro a receber o Arduino construído nele. Para que tudo caiba em uma caixinha que também pode conter o teclado, você poderá construir seu próprio Arduino para reduzir a necessidade de espaço dentro dessa caixa. Também será um projeto que pode ter utilidade prática e ajudá-lo a não ter mais que se lembrar das chaves para abrir portas e portões. Vamos lá! 2.3 DESAFIO 25 E-book gerado especialmente para Thiago Malagutti - [email protected] CAPÍTULO 3 PROJETO Nº 02 — AUTOMATIZANDO UMA PORTA COM SENHA VIA TECLADO Imagine que, como nos filmes de ficção científica, você chega até uma porta e não há maçaneta, nem mesmo fechadura, apenas um teclado ao lado. Nesse teclado, será possível destrancar a porta através da digitação da senha correta. Também deverá ser possível ajustar a senha através de uma contrassenha fixa, que será definida na programação do Arduino. 3.1 MATERIAIS UTILIZADOS NESSE PROJETO 1 x Arduino UNO 1 x Teclado matricial de membrana 1 x Transistor TIP 102 1 x Resistor de 1KΩ 1 x Relê 5V 26 3 PROJETO Nº 02 — AUTOMATIZANDO UMA PORTA COM SENHA VIA TECLADO E-book gerado especialmente para Thiago Malagutti - [email protected] 1 x Fechadura elétrica com fonte 12V Fios diversos 3.2 DESENVOLVENDO O PROJETO Nesse projeto, consideraremos que a sua porta já tenha maçaneta e fechadura, e que você não quer, necessariamente, trocá-la por uma nova. Portanto, a ideia será usar uma tranca elétrica comum, dessas utilizadas em portões e portas residenciais. Com isso, o custo será diminuído e a facilidade de adaptação será aumentada. Vamos montar tudo, e depois você poderá decidir o melhor jeito de instalar onde desejar. Precisaremos de um Arduino UNO: Figura 3.1: O Arduino UNO R3 Também será necessário uma prot-o-board para ser suporte de 3.2 DESENVOLVENDO O PROJETO 27 E-book gerado especialmente para Thiago Malagutti - [email protected] todo o circuito, que será muito pequeno: Figura 3.2: A prot-o-board utilizada, sendo que você pode usar qualquer uma que tiver disponível Também precisaremos de um teclado matricial de membrana com, pelo menos, 12 teclas: 28 3.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 3.3: O teclado de membrana, apenas numérico, com 12 teclas, três colunas por quatro linhas O teclado numérico de membrana com 12 teclas, como o mostrado na figura anterior, possui 7 fios, sendo que três são para acesso às colunas e quatro para as linhas. O pino 1 é o mais à esquerda, olhando-se o teclado de frente, e o pino 7 é o mais à direita. O teclado ocupará a maioria dos pinos digitais do Arduino, já que cada pino do teclado terá de ter um correspondente no Arduino. Para capturar as teclas que serão pressionadas, usaremos a biblioteca Keypad que está disponível no endereço 3.2 DESENVOLVENDO O PROJETO 29 E-book gerado especialmente para Thiago Malagutti - [email protected] https://github.com/fbryan/keypad. Nessa página, haverá um link para que seja feito o download da última versão da biblioteca. Esta trará algumas funções que mapeiam os pinos da matriz de botão que, na verdade, é esse teclado. Para importar a biblioteca, abra o IDE Arduino e clique no menu Sketch. Em seguida, selecione a opção Incluir Biblioteca : 30 3.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 3.4: O menu Sketch do IDE Arduino com a opção Incluir Biblioteca selecionada. 3.2 DESENVOLVENDO O PROJETO 31 E-book gerado especialmente para Thiago Malagutti - [email protected] Clique na opção Adicionar biblioteca.ZIP , que abrirá a seguinte caixa para seleção de arquivos: Figura 3.5: A janela para seleção da biblioteca keypad no formato.zip Encontre onde você salvou o arquivo keypad.zip que obteve pelo download anterior. Depois, clique no botão Abrir. Pronto, a biblioteca foi adicionada. Se você abrir novamente o menu Sketch e selecionar a opção Incluir Biblioteca , veja que a Keypad já está disponível, como vemos a seguir: 32 3.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 3.6: O menu Sketch com a opção Incluir Biblioteca selecionada. Veja a biblioteca Keypad disponível. 3.2 DESENVOLVENDO O PROJETO 33 E-book gerado especialmente para Thiago Malagutti - [email protected] Já podemos começar a montar nosso projeto para valer, a partir de agora. Vamos conectar e programar o teclado para já entender como ele funciona e como capturar o que o usuário vai digitar. Isso também adiantará parte do projeto. Vamos conectar o teclado diretamente ao Arduino. Para isso, você precisará de 7 fios. Não farei a ligação via prot-o-board, porque não será necessário, e isso só aumentaria nosso uso de fios. Olhando-o de frente, começando da esquerda para a direita, ligue todos os pinos do teclado aos pinos digitais 9, 8, 7, 6, 5, 4 e 3 do Arduino, nessa sequência: Figura 3.7: O teclado ligado aos pinos digitais do Arduino Com tudo ligado, vamos para a programação: #include #include const byte n_linhas = 4; const byte n_colunas = 3; char teclas[n_linhas][n_colunas] = { 34 3.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte mapa_linha[n_linhas] = {9,8,7,6}; byte mapa_coluna[n_colunas] = {5,4,3}; Keypad teclado = Keypad(makeKeymap(teclas),mapa_linha,mapa_coluna ,n_linhas,n_colunas); void setup() { Serial.begin(9600); } void loop() { char tecla = teclado.getKey(); if(tecla != NO_KEY) { Serial.println(tecla); } } Com o auxílio da biblioteca Keypad , tudo fica mais fácil, mas vamos passo a passo. Os includes adicionam a biblioteca Keypad e seu complemento Key ao projeto. Essa biblioteca vai oferecer todos os objetos e métodos necessários para ler as teclas. Precisamos definir o número de linhas, que fazemos com a variável n_linhas , e também o número de colunas, feito com a variável n_colunas , que existem no teclado que vamos usar. Os valores das teclas que existem são definidas na matriz teclas , que reflete a posição e quais são as teclas. Note que aí pode acontecer algo extremamente interessante: você pode definir quaisquer valores para as teclas. Se você quiser que quando o número um do teclado for pressionado seja lido o valor % , por exemplo, basta definir isso nessa matriz. O usuário achará que a tecla 1 envia um valor, mas na verdade não. Usaremos, obviamente, os valores "normais" para as teclas, se 3.2 DESENVOLVENDO O PROJETO 35 E-book gerado especialmente para Thiago Malagutti - [email protected] não confundiria um pouco seus estudos. Mas essa é uma possibilidade que merece ser mencionada. Com os vetores mapa_linha , definimos em quais pinos digitais do Arduino estão conectados aos pinos correspondentes às linhas do teclado. Fazemos o mesmo com os pinos correspondentes às colunas do teclado com o mapa_colunas , como mostrado anteriormente na hora de conectar o teclado ao Arduino. A linha Keypad teclado = Keypad(makeKeymap(teclas),mapa_linha,mapa_coluna,n_linh as,n_colunas) transforma todas essas definições anteriores no objeto chamado teclado, que é do tipo Keypad , e recebe a matriz com o mapa das teclas chamada teclas , os mapas de pinos para as linhas mapa_linha e mapa_coluna , para as colunas. Também recebe a quantidade de linhas e de colunas do teclado. Na função setup() , iniciamos a conexão serial com 9.600 bauds com a linha Serial.begin(9600). Já na função loop() é lida a tecla pressionada para a variável tecla , feito com a linha char tecla = teclado.getKey(). Depois, com a estrutura de seleção if , verificamos se alguma tecla foi pressionada com if(tecla != NO_KEY). Essa estrutura fará com que, se uma tecla for pressionada, seu valor correspondente seja mostrado na saída serial com a linha Serial.println(tecla). Vamos testar o que temos até agora. Compile e faça upload do seu programa para o Arduino. 36 3.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 3.8: Serial monitor depois de pressionar todas as teclas Com isso pronto, já temos o núcleo do nosso projeto quase concluído. Já que a ideia é ler uma senha, comparar com uma senha predefinida e liberar ou não a fechadura. Falta muito pouco, uma vez que controlar a fechadura será quase a mesma coisa que controlar um LED: ligado, libera a entrada; desligado, não libera. Primeiro, seguindo essa lógica, vamos simular a fechadura elétrica com o LED do pino digital 13 do Arduino: digitaremos uma sequência numérica e compararemos com uma sequência predefinida. Caso coincidam, acederemos o LED; caso contrário, nada acontecerá. Altere o código anterior para ficar como o código apresentado a seguir: 3.2 DESENVOLVENDO O PROJETO 37 E-book gerado especialmente para Thiago Malagutti - [email protected] #include #include const byte n_linhas = 4; const byte n_colunas = 3; char teclas[n_linhas][n_colunas] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte mapa_linha[n_linhas] = {9,8,7,6}; byte mapa_coluna[n_colunas] = {5,4,3}; Keypad teclado = Keypad(makeKeymap(teclas),mapa_linha,mapa_coluna ,n_linhas,n_colunas); int pos = 0; int led = 13; char senha; char correta[] = "123456"; void setup() { pinMode(led,OUTPUT); Serial.begin(9600); } void loop() { char tecla = teclado.getKey(); if(tecla != NO_KEY) { if(tecla != '#') { senha[pos] = tecla; pos++; } if(tecla == '#') { Serial.println(senha); if(!strcmp(correta,senha)) { Serial.println("Senha correta"); digitalWrite(led,HIGH); delay(5000); } for(int i=0;i 90) sentido = 1; if(i < 45) sentido = 0; delay(50); } 11.2 DESENVOLVENDO O PROJETO 225 E-book gerado especialmente para Thiago Malagutti - [email protected] Figura 11.19: Tudo em pé Você encontrará um vídeo desse projeto em funcionamento em https://youtu.be/q8gRwHqC6No. Ele é um pouco desengonçado, né?! Mas vale como um bom 226 11.2 DESENVOLVENDO O PROJETO E-book gerado especialmente para Thiago Malagutti - [email protected] estudo de movimentos de pernas para um projeto mais elaborado e completo. 11.3 DESAFIO Bons desafios para esse projeto são incrementá-lo para deixá-lo mais atraente e prático. Para começar, acho que é preciso deixá-lo menos desengonçado e com movimentos mais ágeis e rápidos. Você também pode criar seu próprio Arduino, para deixar tudo pequeno para que possa ser colocado junto aos servos motores dentro de uma pequena caixa. Lembre-se da bateria, que é praticamente o mais pesado de todo o projeto, que deve ficar também em algum lugar. As pernas talvez precisem ser reformuladas para aguentar o peso dela. Finalmente, acho que incluir dois LEDs para criar olhos também deixará o nosso pequeno inseto mais divertido, ainda mais em locais escuros. Se bem que esses LEDs podem acender apenas quando o ambiente está escuro. Isso será fácil de se fazer usando um sensor de luminosidade. Com esse projeto, chegamos ao fim deste livro. Mas não ao fim das possibilidades que o Arduino, quando unido a componentes eletrônicos, sensores e uma boa dose de imaginação, nos proporcionam. Siga em frente! Use esses projetos como pontapé inicial para outros. Crie os seus a partir de apenas uma ideia, mas não pare, mantenha-se em movimento sempre. 11.3 DESAFIO 227 E-book gerado especialmente para Thiago Malagutti - [email protected] CAPÍTULO 12 LISTA GERAL DE MATERIAIS A seguir, uma lista de materiais completa separada por projetos, para que seja possível você se organizar para obter todos os materiais (ou parte deles) em quantidade. Isso pode baratear o custo dos projetos. Projeto nº 01 — Criando nosso próprio Arduino 1 x Arduino UNO R3 1 x Prot-o-board 1 x Suporte para baterias de 9V 1 x Bateria de 9V 1 x Cristal oscilador de 16MHz 1 x Resistor de 10 KΩ 1/4W 1 x Resistor de 330 Ω 1/4W 2 x Capacitores cerâmicos de 22 pF/50 1 x Regulador de tensão 7805 228 12 LISTA GERAL DE MATERIAIS E-book gerado especialmente para Thiago Malagutti - [email protected] 1 x LED vermelho Fios diversos Projeto nº 02 — Automatizando uma porta com senha via teclado 1 x Arduino UNO 1 x Teclado matricial de membrana 1 x Transistor TIP 102 1 x Resistor de 1KΩ 1 x Relê 5V 1 x Fechadura elétrica com fonte 12V Fios diversos Projeto nº 03 — Criando um radar para verificar a velocidade de um objeto 1 x Arduino UNO 1 x Sensor ultrassônico 1 x Botão 1 x Resistor 1KΩ 1/4W 1 x Display de 7-segmentos com dois dígitos 2 x Resistores 330Ω 1/4W 12 LISTA GERAL DE MATERIAIS 229 E-book gerado especialmente para Thiago Malagutti - [email protected] 1 x Suporte para baterias 9V com plug para o Arduino 1 x Bateria de 9V Fios diversos. Projeto nº 04 — Que tal acionar as lâmpadas de sua casa com controle remoto? 1 x Arduino UNO R3 1 x Prot-o-board 1 x Sensor infravermelho 1 x Controle remoto 1 x Resistor de 1 KΩ 1/4W 1 x Transistor TIP102 1 x Relê 5V/125V 1 x Abajur (110V com lâmpada de 7W) 1 x Ferro de solda Estanho para solda Fios diversos Projeto nº 05 — Um dado eletrônico para jogos 1 x Arduino 9 x LEDs vermelhos 230 12 LISTA GERAL DE MATERIAIS E-book gerado especialmente para Thiago Malagutti - [email protected] 3 x Resistores de 220Ω 1 x Ferro de solda Estanho para solda Fios diversos Projeto nº 06 — Criando um videogame para você 1 x Arduino UNO 1 x Prot-o-board 1 x Resistor de 470Ω 1 x Resistor de 1KΩ 1 x Potenciômetro de 10KΩ 1 x Conector RCA macho 1 x Ferro de solda Estanho para solda Cabo com pelo menos duas vias (fios) Fios diversos Projeto nº 07 — Alarme de geladeira com monitoramento de abertura da porta 1 x Arduino UNO 1 x Prot-o-board 12 LISTA GERAL DE MATERIAIS 231 E-book gerado especialmente para Thiago Malagutti - [email protected] 1 x Sensor magnético para alarmes (Reed-switch) 1 x Resistor 1KΩ 1/4W 1 x Buzzer 1 x Fonte para telefone celular 5V 1A USB 1 x Cabo USB Fios diversos Projeto nº 08 — Construindo um rastreador GPS offline 1 x Arduino UNO 1 x Módulo GPS 1 x Módulo cartão SD 1 x Cartão SD Fios diversos Projeto nº 09 — Batata quente, quente... quente... queimou! 1 x Arduino UNO R3 1 x Buzzer 1 x Suporte para baterias 9V com plug para o Arduino 1 x Bateria 9V 232 12 LISTA GERAL DE MATERIAIS E-book gerado especialmente para Thiago Malagutti - [email protected] Projeto nº 10 — O robô aranha mais simples do mundo! 1 x Arduino UNO 2 x Servos motores 3 x Clips nº 10 1 x Suporte para 4 pilhas 4 x Pilhas Fios diversos 12 LISTA GERAL DE MATERIAIS 233 E-book gerado especialmente para Thiago Malagutti - [email protected]

Use Quizgecko on...
Browser
Browser