arduino livro

Upload: marcoaalexandrino

Post on 02-Jun-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 Arduino Livro

    1/24

    Novatec

    Martin Evans

    Joshua NobleJordan Hochenbaum

  • 8/10/2019 Arduino Livro

    2/24

    Original English language edition published by Manning Publications Co., Sound View CT.#3B, Greenwich, CT06830 USA. Copyright 2013 by Manning Publications. Portuguese-language edition for Brazil copyright 2013by Novatec Editora. All rights reserved.

    Edio original em ingls publicada pela Manning Publications Co., Sound View CT.#3B, Greenwich, CT 06830USA. Copyright 2013 pela Manning Publications. Edio em portugus para o Brasil copyright 2013 pelaNovatec Editora. Todos os direitos reservados.

    Novatec Editora Ltda. 2013.

    Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta obra, mesmoparcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora.

    Editor: Rubens PratesTraduo: Camila PaduanReviso tcnica: Rodrigo StulzerReviso gramatical: Marta Almeida de SEditorao eletrnica: Carolina Kuwabata

    ISBN: 978-85-7522-373-4

    Histrico de impresses:

    Agosto/2013 Primeira edio

    Novatec Editora Ltda.Rua Lus Antnio dos Santos 11002460-000 So Paulo, SP BrasilTel.: +55 11 2959-6529Fax: +55 11 2950-8869E-mail: [email protected]: www.novatec.com.brTwitter: twitter.com/novateceditoraFacebook: facebook.com/novatecLinkedIn: linkedin.com/in/novatecVC20130812

  • 8/10/2019 Arduino Livro

    3/24

    24

    CAPTULO1

    Ol Arduino

    Este captulo aborda

    A histria do Arduino

    Hardware do Arduino Congurao de hardware e software

    O primeiro LED intermitente

    Para que o Arduino pode ser usado? As respostas so surpreendentemente di-versicadas. O Arduino tem sido usado em uma grande variedade de projetos:

    Videogames, tais como Pong e Space Invaders, que traro a alguns leitoreslembranas de sua infncia e introduziro outros nos jogos que seus pais

    jogavam quando eram jovens, com grcos monocromticos e efeitos so-noros simples.

    Robs seguidores de linha (line-following robots), que introduzem prin-cpios de robtica, mas tambm so usados em fbricas e armazns paraentrega de componentes ao longo de trajetos predeterminados.

    Harpas de Luz que produzem msica com um aceno de mos, como asusadas internacionalmente pelo executor Little Boots.

    Controladores MIDI que controlam uma srie de instrumentos.

    Robs autobalanceados que imitam o Segway.

    Todos esses so exemplos de projetos construdos com o uso do Arduino, ummicrocontrolador to pequeno que cabe na palma de sua mo. Originalmenteconcebido para ser utilizado como uma ferramenta para projetos de computaopor designers e estudantes de arte, o Arduino tem sido adotado como a ferra-menta preferida das comunidades de desenvolvedores e fabricantes interessadosna construo e prototipagem de seus prprios projetos.

  • 8/10/2019 Arduino Livro

    4/24

    25Captulo 1 Ol Arduino

    Neste captulo, veremos a histria do Arduino e como ele se tornou a ferramentaque muitos fabricantes escolhem ao iniciar um novo projeto. Este histrico incluisuas origens no Interaction Design Institute de Ivrea e explica por que ele se tornouto necessrio. Abordaremos ento os diferentes tipos de Arduinos disponveis e as

    vantagens e desvantagens de cada um deles. Tambm veremos o que voc precisapara comear: ferramentas, equipamentos e componentes eletrnicos sugeridos.Finalmente, completaremos este captulo de abertura olhando para o ambientede desenvolvimento integrado do Arduino (IDE) antes de fazer nosso primeiroprojeto: um LED que acende e apaga alternadamente.

    Vamos comear vendo de onde o Arduino vem.

    1.1 Breve histria do ArduinoO Arduino teve seu incio no Interaction Design Institute na cidade de Ivrea, naItlia, em 2005. O professor Massimo Banzi procurava um meio barato de tornarmais fcil para os estudantes de design trabalhar com tecnologia. Ele discutiu seuproblema com David Cuartielles, um pesquisador visitante da Universidade deMalm, na Sucia, que estava procurando uma soluo semelhante, e o Arduinonasceu. Os produtos existentes no Mercado eram caros e relativamente difceisde usar. Banzi e Cuartielles decidiram desenvolver um microcontrolador quepoderia ser utilizado pelos seus estudantes de arte e design em seus projetos. Asprincipais exigncias eram que fosse barato o preo almejado no poderia sermais do que o que um estudante gastaria se sasse para comer uma pizza e quefosse uma plataforma que qualquer pessoa pudesse utilizar. David Cuartiellesdesenhou a placa, e um aluno de Massimo, David Mellis, programou o softwarepara executar a placa. Massimo contratou um engenheiro local, Gianluca Martino,que tambm trabalhou no Design Institute ajudando alunos com seus projetos.Gianluca concordou em produzir uma tiragem inicial de duzentas placas.

    A nova placa foi chamada Arduino em referncia a um bar local frequentadopor membros do corpo docente e alunos do instituto. As placas eram vendidasem forma de kit para que os alunos zessem seus prprios projetos. A tirageminicial foi rapidamente vendida, e mais unidades foram produzidas para mantera demanda. Designers e artistas de outras reas ouviram falar do Arduino e qui-serem us-lo em seus projetos. Sua popularidade cresceu rapidamente quandoo grande pblico percebeu que o Arduino era um sistema de fcil utilizao, debaixo custo e que poderia ser usado em seus prprios projetos, bem como era

  • 8/10/2019 Arduino Livro

    5/24

    Arduino em Ao26

    uma excelente introduo para programao de microcontroladores. O projetooriginal foi melhorado e novas verses foram introduzidas. As vendas dos Arduinosociais alcanaram agora a marca de 300 mil unidades, e eles so vendidos emtodo o mundo por intermdio de uma srie de distribuidores.

    Existe agora um nmero de diferentes verses de placas de Arduino, ento dare-mos uma olhada nelas na prxima seo.

    1.2 Hardware Arduino

    Temos at o momento uma srie de verses do Arduino, todas baseadas em ummicroprocessador de 8 bits Atmel AVR reduced instruction set computer (RISC).

    A primeira placa foi baseada no ATmega8 rodando a uma velocidade de clock de16 MHz com memria flash de 8 KB; mais tarde, placas tais como a Arduino NGplus e a Diecimila (nome italiano para 10.000) usava o ATmega168 com memriaash de 16 KB. As verses mais recentes do Arduino, Duemilanove e Uno, usamo ATmega328 com memria flash de 32 KB e podem comutar automaticamenteentre USB e corrente contnua (DC). Para projetos que exigem mais Entrada/Sadae memria, h o Arduino Mega1280, com memria de 128 KB, ou o mais recenteArduino Mega2560, com memria de 256 KB.

    As placas tm 14 pinos digitais, e cada um pode ser denido como entrada ousada, e seis entradas analgicas. Alm disso, seis dos pinos digitais podem serprogramados para fornecer uma sada de modulao por largura de pulso (PWM).Diversos protocolos de comunicao esto disponveis, incluindo serial, bus serialde interface perifrica (SPI) e I2C/TWI. Includos em cada placa como recursopadro esto um conector de programao serial in-circuit (ICSP) e um botode reset.

    NOTA: Placas especializadas chamadas shields podem expandir a funcionalidadebsica do Arduino; elas podem ser empilhadas umas sobre as outras paraadicionar ainda mais funcionalidade.

    Agora veremos os modelos mais comuns de Arduinos disponveis, comeandocom o Arduino Uno.

  • 8/10/2019 Arduino Livro

    6/24

    27Captulo 1 Ol Arduino

    1.2.1 Arduino Uno

    O Jantar est Servido era o ttulo do blog que anunciava, em 25 de setembro de2010, a chegada do Arduino Uno (uno signica um em italiano) e de seu irmomais velho, o Mega2560. O Arduino Uno possui compatibilidade de pinos comos Arduinos anteriores, incluindo o Duemilanove e seu antecessor Diecimila.

    A maior diferena entre o Uno e seus antecessores a incluso de um microcon-trolador programado ATmega8U2 como um conversor USB-para-serial, subs-tituindo o chipset FTDI obsoleto usado nas verses anteriores. O ATmega8U2pode ser reprogramado para fazer o Arduino se parecer com outro dispositivoUSB, tal como mouse, teclado ou joystick. Outra diferena que ele possui umatenso integrada de 3,3 V mais convel, o que ajuda na estabilidade de algumas

    protees que causavam problemas no passado. Veja o apndice C para obterespecicaes tcnicas completas.

    A gura 1.1 mostra o layout da placa e os pinos no Arduino Uno.

    8U2

    Arduino

    USB

    POWER

    ICSP

    POWER ANALOG IN

    Vin

    RESET

    3.3

    V

    5V

    Gn

    d

    TxRx

    L

    TX

    RX

    AREF

    GND

    ON

    Gn

    d

    ATmega328

    +

    - 6-20 VDC

    7-12 V optimal A0

    A1

    A2

    A3

    A4

    A5

    13

    12

    -11

    -10

    -9 8 7 -6 -5 4 -3 2 1 0

    DIGIT AL (PWM-)

    RESET

    UNO

    MADE

    IN ITALY

    Figura 1.1 Layout da placa e pinos do Arduino Uno.

    O Arduino Uno uma boa opo multiso e sua melhor aposta para umaplaca de partida com fonte de alimentao autochaveada e tenso integrada de3,3 V regulada.

  • 8/10/2019 Arduino Livro

    7/24

    Arduino em Ao28

    1.2.2 Arduino Duemilanove

    O Duemilanove (que signica 2009 em italiano) uma das placas Arduino maispopulares j produzidas, tendo substitudo sua antecessora, a Arduino Diecimila.Todavia, por sua vez, foi substitudo pelo Arduino Uno, mais novo e mais atual.O Duemilanove se caracteriza pela seleo de potncia de comutao automticaentre o externo e o USB e usa o processador ATmega328, embora os modelosanteriores a maro de 2009 usassem o ATmega168. Seu layout de pinos e capaci-dades idntico ao Uno e usa o chipset FTDI para comunicao USB para serial.

    Se voc for comprar um novo Arduino, deve escolher o Arduino Uno. Se voc jpossui um Duemilanove, considere atualizar para o Uno caso voc precise de umatenso de 3,3 V mais estvel ou queira fazer uma programao mais avanada

    com o ATmega8U2.

    1.2.3 Arduino Ethernet

    O Arduino Ethernet uma verso de baixa potncia do Arduino anunciada aomesmo tempo em que o Uno. As principais diferenas entre uma verso e outraso que o Arduino Ethernet possui um conector RJ45 integrado para uma co-nexo Ethernet e um leitor de carto micro SD. O Arduino Ethernet no possuium chip controlador USB para serial integrada, mas possui um conector de seis

    pinos que pode ser conectado a um cabo FTDI ou a uma porta serial USB parafornecer um link de comunicao para que a placa possa ser programada. Ela podetambm ser alimentada por um mdulo opcional Power over Ethernet (POE), oqual permite ao Arduino Ethernet retirar sua energia de um cabo Ethernet depar tranado Categoria 5 conectado.

    O Arduino Ethernet ideal para uso em monitoramento remoto e estaes deregistros de dados com leitor de carto micro SD integrado e uma conexo comuma rede Ethernet com o para alimentao.

    1.2.4 Arduino Mega

    O irmo mais velho da famlia Arduino, o Mega, usa um microprocessador demaior superfcie de montagem. O ATmega1280, o Mega, foi atualizado ao mesmotempo que o Uno, e o microprocessador usado agora o ATmega2560. A novaverso possui memria flash de 256 KB, superior aos 128 KB do original.

  • 8/10/2019 Arduino Livro

    8/24

    29Captulo 1 Ol Arduino

    O Mega fornece um aumento signicativo na funcionalidade de entrada-sada emrelao ao Arduino padro; portanto, com o aumento da memria, ele ideal paraaqueles projetos maiores que controlam grandes quantidades de LEDs, possuemum grande nmero de entradas e sadas ou necessitam de mais de uma porta

    serial de hardware o Arduino Mega possui quatro. As placas possuem 54 pinosdigitais de entrada-sada, 14 dos quais podem fornecer sada analgica PWM,e 16 pinos de entrada analgica. A comunicao feita com at quatro portasseriais de hardware. A comunicao SPI e o suporte para dispositivos I2C/TWIesto tambm disponveis. A placa tambm inclui um conector ICSP e um botode reset. Um ATmega8U2 substitui o chipset FTDI usado pelo seu antecessor eprocessa a comunicao serial USB.

    O Mega opera com a maioria dos shields disponveis, mas uma boa ideia vericar

    se um shield ser compatvel com seu Mega antes de compr-lo. Compre o Megaquando voc realmente necessitar utilizar pinos adicionais de entrada-sada eprecisar de maior capacidade de memria. Veja o apndice C para especicaestcnicas completas.

    A gura 1.2 mostra os pinos e o layout da placa.

    8U2USB

    POWER

    ICSP

    POWER ANALOG IN

    Vin

    RES

    ET

    3.3

    V

    5V

    Gnd

    TxRx

    L

    TX0

    R

    X0

    AREF

    GND

    ON

    Gnd

    +

    - 6-20 VDC7-12V optimal A0 A1 A2 A3 A4 A5

    13

    12

    11

    10 9 8 7 6 5 4 3 2 1 0

    PWM

    RESET

    6 A7 A8 A9 A1

    0

    A1

    1

    A1

    2

    A1

    3

    A1

    4

    A1

    5

    52

    50

    48

    46

    44

    42

    40

    38

    36

    34

    32

    30

    2826

    53

    51

    49

    47

    45

    43

    41

    39

    37

    35

    33

    24

    2214

    15

    16

    17

    18

    19

    20

    21

    T

    X3

    31

    MEGA

    2560ARDUINO

    ATmega2560

    R

    X3

    T

    X2

    R

    X2

    T

    X1

    R

    X1

    S

    DA

    S

    CL

    COMMUNICATION

    DIGIT

    AL

    MADE

    IN ITALY

    Figura 1.2 Os pinos e o layout do Arduino Mega; note os pinos adicionais de entrada-sada eas portas seriais extras comparadas com o Arduino Uno.

    Agora vamos dar uma olhada em algumas opes mais especializadas de Arduino.

  • 8/10/2019 Arduino Livro

    9/24

    Arduino em Ao30

    1.2.5 Outras placas Arduino

    O Arduino original gerou um grande nmero de variaes que compactou oprojeto de maneiras diferentes, geralmente em resposta a uma necessidade. Vamosdar uma olhada em dois deles: o Lily-Pad e o Nano.

    Lilypad Arduino

    Desenvolvido pela SparkFun Electronics e pela Leah Buechley, o LilyPad Ardui-no timo para projetos txteis e em esteiras industriais. Ele foi projetado comgrandes blocos de conexo que podem ser costurados ao tecido, e h uma gamade acessrios costurveis disponveis, incluindo sensores de luz, campainhas,LEDs tricolores, sensores de temperatura, kits de costura e acelermetros. Suaverso de baixa potncia ainda lavvel; apenas no se esquea de tirar suas

    baterias antes de molh-lo.A principal diferena entre o LilyPad e outros Arduinos uma velocidade deprocessamento menor de 8 MHz, em contrapartida normal de 16 MHz. Umacoisa a se observar: a tenso de entrada no deve exceder 5,5 V. Veja na gura1.3 uma foto do Lily-Pad Arduino.

    Figura 1.3 O LilyPad Arduino adequado para se costurar ao tecido, e h uma gama deacessrios costurveis disponvel.

    Arduino Nano

    Se o seu projeto tem espao limitado, o Arduino Nano a melhor escolha.Projetado e produzido pela Gravitech, a verso 3.0 do Nano (com o processa-

    dor ATmega328) tem uma mini-USB integrada, um formato compacto parauso em placas de testes.

  • 8/10/2019 Arduino Livro

    10/24

    31Captulo 1 Ol Arduino

    O Nano possui funcionalidade similar do Duemilanove, mas tem dois pinosadicionais de entrada analgica. A alimentao para a placa fornecida porUSB ou por dois pinos separados: o pino 30 pode receber uma tenso desre-gulada entre 6 V e 20 V, ou o pino 27 pode receber uma tenso regulada de 5,5

    V. A placa seleciona a tenso que for mais alta.O tamanho reduzido da placa faz com que seja ideal para projetos com espaolimitado.

    1.2.6 Ataque dos clones

    Desde o incio, o Arduino foi concebido como um hardware de cdigo aberto(open-source). Usurios eram livres para acessar o projeto, baixar os arquivos

    computer-aided design (CAD) publicados, produzir e vender hardware baseadosneles. Isso levou produo de um nmero de cpias do Arduino, com vriosfabricantes de clones usando a especicao original para fazer suas prpriasalteraes.

    O nome Arduino uma marca registrada que impede que derivados utilizem seunome em seus produtos, a menos que a permisso seja dada pela equipe do Arduino.

    Seeeduino (Sim, 3 ES)

    Se voc gosta da cor vermelha, esta a sua placa. Projetada e produzida porSeeed Studio, em Shenzhen, na China, o Seeeduino baseado no projeto daDiecimila, uma das placas iniciais do Arduino, e pode ser comprado com ummicroprocessador ATmega168 ou ATmega328. Utiliza componentes SMDdiscretos e tem uma cor vermelha caracterstica.

    A placa compatvel com o layout de pinos e dimenses da Diecimila. As me-lhorias incluem a deteco automtica entre alimentao via USB e externa emelhores fontes de alimentao integradas.

    Seeeduino Film

    O Seeeduino Film traz um conceito de utilizao diferente daquele de arqui-tetura baseada em tecido do LilyPad. Este clone Arduino flexvel, o qual podetambm ser usado em projetos de registro de dados, tem uma montagem emsuperfcie ATmega168 em uma placa de circuito impresso flexvel. Em vez deshields, a expanso ativada por meio do que os fabricantes chamam de fra-mes. Um frame foi produzido at o momento consistindo de um barmetro,memria flash de 32 MB e um acelermetro de trs eixos, que deve ser maisdo que suciente para atingir o objetivo.

  • 8/10/2019 Arduino Livro

    11/24

    Arduino em Ao32

    BoArduino

    O BoArduino uma pequena placa similar ao Nano 3.0, mas disponvel apenasem forma de kit, portanto so requeridas habilidades para solda. Produzidopela Adafruit Industries, o BoArduino projetado para ser ligado diretamen-

    te em uma placa de teste sem solda. O kit est disponvel em duas verses,uma com USB e outra com uma conexo serial na qual um cabo adicional requerido. Ele usa o ATmega328.

    Sippino

    O Sippino um clone miniatura da SpikenzieLabs, compatvel com Arduino,vendido em forma de kit, e assim como o BoArduino requer conhecimentosde solda. O Sippino utiliza o ATmega328, mas tambm pode utilizar o AT-

    mega168. Todos os pinos digitais e analgicos de entrada e sada so trazidospara fora em uma nica linha para que possam ser conectados diretamentea uma placa de testes sem solda. Um cabo serial FTDI-USB necessrio paraprogramar a placa.

    Ebay

    Um grande nmero de placas clone vendido no eBay, muitas dessas placasso cpias da Duemilanove. Aqui esto algumas coisas a se considerar ao ad-quirir qualquer clone: tenha certeza de que ele possui um microprocessadorATmega328 e que os conectores so adequados para adicionar shields.

    O primeiro Arduino que compramos no eBay possua conectores machosao invs de fmeas, o que tornou difcil adicionar shields. Tambm tivemosde comprar alguns jumpers especiais para conectar placa de testes. Isso foisuciente para que inicissemos, mas melhor evitar tais enganos e vericarse voc est comprando o que voc realmente deseja.

    1.2.7 Obtendo um ArduinoSe voc est procurando um Arduino, recomendamos que comece com o Uno, comsua conexo USB superior e uma melhor fonte de alimentao regulada integrada.

    O Arduino Uno est disponvel em diversas lojas online. As trs mais importan-tes nos Estados Unidos so SparkFun Electronics (www.sparkfun.com), AdafruitIndustries (http://adafruit.com) e Maker Shed (http://makershed.com/). No ReinoUnido, h a SK Pang Electronics (http://skpang.co.uk) e a oomlout (http://oomlout.co.uk). Uma lista completa dos distribuidores ao redor do mundo est disponvelno website principal do Arduino (http://Arduino.cc/en/Main/Buy ).

  • 8/10/2019 Arduino Livro

    12/24

    33Captulo 1 Ol Arduino

    Se voc j tem um Arduino, pode iniciar a conexo ao seu sistema e criar seuambiente de trabalho.

    1.3 Configurando seu ambiente de trabalhoQuando voc receber um Arduino novinho em folha, provavelmente car ansiosopara comear. Esta seo deve ajud-lo a acabar com essa ansiedade. Assim queconectar seu Arduino ao seu computador pela primeira vez, voc aprender oque necessrio para congurar o seu ambiente de trabalho.

    Para iniciar, voc precisar de um Arduino. Como mencionado na seo anterior,um Duemilanove ou um Uno uma boa opo. Voc tambm precisar de um

    cabo USB para conectar o Arduino ao seu computador.

    1.3.1 Software para Arduino

    Neste momento, seu Arduino somente uma placa com alguns componenteseletrnicos. Para que ela faa algum trabalho til, voc deve dar-lhe instrues, e por isso que voc precisa do IDE do Arduino. O IDE do Arduino fornece tudoo que necessrio para program-lo, incluindo vrios exemplos de programas ousketchs que demonstram como conect-lo e comunicar-se com alguns dispositivos

    comuns, tais como LEDs, LCDs e alguns sensores.

    Voc car satisfeito de saber que, assim como o hardware, o software para oArduino de cdigo aberto e pode ser baixado gratuitamente de http://Arduino.cc/en/Main/Software. Tenha certeza de baixar a verso correta para seu sistema. Asverses do IDE esto disponveis para Windows, Mac OS X e Linux. Para instru-es completas de cada plataforma, veja o apndice A.

    importante familiarizar-se com o IDE, pois onde voc escrever todo o seu

    cdigo. No mundo do Arduino, um bloco de cdigos chamado de sketch. Umsketch fornece ao Arduino uma lista de instrues e o Arduino esboa a sua ideia.O IDE ajuda a mascarar muito da complexidade do Arduino, tornando-o maisfcil de desenvolver projetos.

    NOTA: O termo sketchvem de Processing, uma linguagem frequentemente ensinadaa estudantes de design e artes, e na qual o Arduino IDE baseado. Aqueles que

    j so familiarizados com programao devem pensar em um sketch como sendoum programa de software.

  • 8/10/2019 Arduino Livro

    13/24

    Arduino em Ao34

    1.3.2 Configurao bsica de hardware

    A placa Arduino conectada ao seu computador via USB. O cabo USB fornece os5 V necessrios para alimentar o Arduino e proporciona energia suciente paraacender um par de LEDs, permitindo alguma experimentao bsica.

    1.3.3 Sua caixa de ferramentas do Arduino

    Aqui est uma lista de compras que recomendamos para algum que est come-ando a utilizar o Arduino:

    Arduino (Uno ou Duemilanove)

    Miniplaca de testes (breadboard) e jumpers (usados para montar pequenos

    circuitos) Seleo de LEDs

    Seleo de resistores

    Bateria de 9 V

    Conector da bateria

    Fotorresistor

    Pequeno motor de corrente contnua ou servomotor

    Piezo buzzer (um tipo de alto-falante pequeno, como aqueles encontradosem cartes musicais)

    Potencimetro (um tipo de resistor varivel)

    Os projetos tpicos que voc pode desenvolver com esses componentes incluemLEDs intermitentes, semforos miniatura, uma campainha musical e um inter-ruptor ativado por luz.

    Se voc se sentir um pouco mais aventureiro, pode adicionar os seguintes com-

    ponentes: GPS Adafruit e shield de registro de dados para gravao de dados de

    sensores, hora e posio

    Shield Adafruit Wave para reproduo de udio a partir de um carto dememria SD para efeitos especiais

    Shield motor para acionar alguns motores, possivelmente o incio de mo-vimento de robs

  • 8/10/2019 Arduino Livro

    14/24

    35Captulo 1 Ol Arduino

    Um kit de componentes bsicos, incluindo um Arduino e uma seleo de com-ponentes, pode ser adquirido em diversos revendedores que oferecem descontoquando voc compra um kit.

    Agora que seu ambiente de trabalho foi congurado, est na hora de escrever seu

    primeiro sketch e executar o hardware equivalente a Hello World.

    1.4 Faa algo acontecer!

    Antes de voc sair correndo para aproveitar todos estes componentes emocio-nantes, tudo o que voc precisa para o seu primeiro exemplo um Arduino, poistodos eles possuem um LED integrado conectado ao pino digital 13. Para este

    primeiro exemplo, voc far um LED acender e apagar repetidamente.

    NOTA: Se voc quiser se aventurar mais, ns tambm inclumos instrues paraadicionar um LED externo na seo 1.4.3.

    1.4.1 Seu primeiro LED intermitente

    Os LEDs esto disponveis em uma gama de cores, mas o LED conectado aopino 13 do Arduino normalmente verde. O LED acende quando uma corrente aplicada a ele, ento voc pode usar o pino 13 como uma chave. Quando voc aligar, ela acender o LED, e quando voc a desligar, ela apagar o LED.

    Vamos comear escrevendo o sketch.

    1.4.2 Sketch para fazer um LED piscar

    Inicie o IDE do Arduino e copie o cdigo seguinte. Pode parecer um pouco dif-cil em um primeiro momento, mas no se preocupe. Ns vamos entrar em maisdetalhes sobre o que tudo isso signica mais adiante neste captulo.

    Listagem 1.1 Cdigo necessrio para fazer um LED piscar

    void setup() {

    pinMode(13, OUTPUT);

    }

  • 8/10/2019 Arduino Livro

    15/24

    Arduino em Ao36

    void loop() {

    digitalWrite(13, HIGH);

    delay(1000);

    digitalWrite(13, LOW);

    delay(1000);}

    O cdigo simples. Voc est atribuindo o pino digital 13 como uma sada e, emseguida, voc entra em um loop no qual algum cdigo muda o pino 13 para HIGHou LOWdurante um segundo. O valor do atraso dado em milissegundos, entomil milissegundos lhe d um atraso de tempo de um segundo.

    NOTA: Certique-se de copiar o cdigo exatamente como mostrado. Cuidado com o

    ponto e vrgula (;) ao nal de algumas linhas e o uso correto das letras maisculas.No que diz respeito ao Arduino, digitalwriteno o mesmo que digitalWrite.

    1.4.3 Conectando tudo

    Se voc conectar seu Arduino ao seu computador por meio do cabo USB, estesketch controlar o LED integrado prximo ao pino 13.

    Voc pode tambm controlar um LED externo conectando-o entre o pino 13 e oGND. A conexo mostrada na gura 1.4.

    Figura 1.4 LED inserido entre o pino 13 e o GND. Note que a perna menor conectada ao

    GND.

  • 8/10/2019 Arduino Livro

    16/24

    37Captulo 1 Ol Arduino

    Note que o LED deve estar conectado de forma correta a perna mais curta o catodo ou , e a mais comprida o anodo ou +, ento empurre a perna maislonga dentro do pino 13 e a mais curta dentro do GND. Se voc desconhece algunstermos da eletrnica, uma boa cartilha pode ser encontrada em http://electronics-

    club.info/components.htm.

    NOTA: Um resistor limitador de corrente pode ser necessrio para prevenir aqueima do LED, e veremos isso no captulo 2. Por enquanto, vamos apenas usaro LED integrado existente. Uma vez que o LED foi inserido, voc pode passarpara a prxima seo para testar sketch.

    1.4.4 Carregando e testandoHora de ver se o seu sketch funciona! Primeiro, conecte o Arduino ao seu com-putador por meio do cabo USB. Voc agora tem alguns ajustes a fazer entre osoftware e o Arduino.

    Ento voc precisa denir o tipo de placa. Selecione Tools > Boarde ento selecioneo tipo de Arduino que voc est usando. Veja a gura 1.5.

    Figura 1.5 Neste exemplo, o Duemilanove foi selecionado, mas voc pode ver que h umagrande lista a escolher.

  • 8/10/2019 Arduino Livro

    17/24

    Arduino em Ao38

    Depois, voc precisa denir a porta serial, pois o USB enxerga o Arduino comouma conexo serial. Selecione Tools > Serial Porte ento escolha sua porta serial (vejaa gura 1.6). Em um sistema usando Mac OS X para um Arduino Uno, a porta seridenticada como algo parecido com /dev/tty.usbmodem; para placas mais antigas

    como a Duemilanove ou Diecimila, ser algo como /dev/tty.usbserial.Em umsistema Windows, a porta ser identicada como COM3.

    Figura 1.6 Selecione a placa serial correta da lista.

    NOTA: A gura 1.6 mostra a seleo para um sistema usando Mac OS X. A portaem um sistema Windows diferente e ser algo parecido com COM3.

    O prximo passo clicar no boto Upload no IDE. Veja a gura 1.7.

    Figura 1.7 Clique no boto Upload para carregar o sketch para o Arduino.

    Espere alguns segundos, e ento o LED deve comear a piscar em uma taxa decerca de uma vez por segundo.

    NOTA: O Arduino retm o programa em sua memria mesmo se ele for desligadoat que voc carregue outro sketch.

    sempre emocionante quando voc v o primeiro LED piscando e sabe que tudoest funcionando corretamente, mas isso no tudo o que voc pode fazer comseu Arduino. Voc agora obter uma viso mais detalhada do IDE e far um tourna tela principal do editor de cdigos.

  • 8/10/2019 Arduino Livro

    18/24

    39Captulo 1 Ol Arduino

    1.5 Passeando pelo IDE

    Como informado anteriormente, o IDE baseado na linguagem Processing, a qualfoi projetada para facilitar a utilizao e a aprendizagem. O IDE fornece tudo o

    que voc precisa para escrever e carregar sketches (programas) no Arduino.

    1.5.1 O editor principal

    Quando o IDE carregado pela primeira vez, ele abre um sketch em branco;para esse sketch dado automaticamente um nome temporrio com uma data dereferncia. O nome pode ser alterado depois para algo mais apropriado quandovoc salvar o sketch.

    A gura 1.8 mostra o IDE que contm um sketch, com anotaes para os vriosbotes e as janelas.

    Figura 1.8 Sketch tpico com os botes e as reas da tela rotulada.

  • 8/10/2019 Arduino Livro

    19/24

    Arduino em Ao40

    A barra de tarefas ao longo do topo do editor principal tem as seguintes funes:

    Verify Verica sketches em busca de erros. Os erros so apresentados naparte inferior da tela.

    New Abre um novo sketch.

    Open Abre uma lista de sketches salvos previamente e exemplos de sketches.

    Save Salva o sketch e solicita um nome se esse for o primeiro a ser salvo.

    Upload Verica o cdigo em busca de erros antes de carregar o sketch parao Arduino.

    Serial monitor Abre o monitor serial em uma nova janela (veja gura 1.9 naprxima seo).

    No parte inferior da tela principal existem duas janelas. A primeira fornece informaode status e comentrios; a segunda fornece informaes quando voc est vericandoe carregando sketches. Qualquer erro de cdigo tambm ser reportado aqui.

    O editor de cdigo adicionalmente verica a combinao das chaves, {}, usadaspara designar blocos de cdigo, executa o realce de sintaxe e automaticamenteendenta o seu cdigo para facilitar a leitura.

    1.5.2 Monitor serial

    O monitor serial mencionado na seo anterior monitora os dados entre o Arduinoe o sistema do computador central atravs do cabo USB conectado. O Arduinopode enviar informaes utilizando cdigo e pode tambm receb-lo. Voc podever isso na gura 1.9.

    Figura 1.9 Monitor serial mostrando a sada de um Arduino imprimindo uma tabela ASCII.

  • 8/10/2019 Arduino Livro

    20/24

    41Captulo 1 Ol Arduino

    A parte superior da janela do monitor serial usada para enviar dados ao Arduino.Voc pode, por exemplo, us-la para enviar comandos de controle ao Arduino,para girar um servomotor a um nmero varivel de graus ou para abrir ou fecharum interruptor. A parte principal da janela mostra os dados de sada do Arduino.

    Isso pode ser usado para vericar a sada de um GPS ou para executar outromonitoramento de sinal.

    O motor serial muito til para depurao do cdigo ao ligar o Arduino ao sistemado computador que executa o software que ento interage de alguma maneira como Arduino; voc pode usar o monitor serial para vericar se o Arduino est gerandoos dados corretamente no formato esperado. No monitor serial, voc tambm podedenir a taxa de transmisso usada para a comunicao, a rolagem automtica detexto e a forma de trmino de linha que anexada aos dados enviados ao Arduino.

    1.5.3 Erros de captura

    Agora vamos retornar ao editor principal. A rea principal da tela o editor decdigo onde voc digita seu cdigo. Uma vez que terminou de introduzir seucdigo, voc tem a opo de vericar ou carregar seu sketch ao Arduino.

    Quaisquer erros de cdigo so reportados na parte inferior da janela. Na gura1.10, introduzimos um erro omitindo ponto e vrgula (;) ao nal de uma das

    linhas do cdigo.Os detalhes do erro so fornecidos, bem como a linha onde o erro ocorre. Overicador de cdigo fornece informaes sucientes para apont-lo na direocorreta, se no mostrar exatamente o que est errado. Como voc pode ver nagura 1.10, o vericador de cdigo identicou corretamente o ; que falta e ondeo erro ocorreu.

    1.5.4 ProcessoO que o IDE realmente faz com o seu cdigo? Quando voc pressiona o botocarregar, ele verica o cdigo procurando erros e executa algumas traduesmnimas para converter o sketch para um C++ vlido. O cdigo ento compi-lado, o que signica que convertido numa forma que pode ser entendido peloArduino. O arquivo resultante ento combinado com as bibliotecas padro doArduino antes de ser carregado no seu hardware.

    Agora que voc fez um tour pelo IDE, hora de ter uma noo melhor dos ske-

    tches do Arduino.

  • 8/10/2019 Arduino Livro

    21/24

    Arduino em Ao42

    Figura 1.10 O editor de cdigo reporta um erro que introduzimos no cdigo. O verificador decdigo indica em qual linha ele acha que o erro ocorreu, bem como o que ele espera.

    1.6 Anatomia de um sketch

    Um sketch tpico consiste de duas partes ou rotinas: a primeira a rotina de ini-cializao chamada setup, e a segunda a rotina chamada loop, que geralmente

    contm o corpo principal do cdigo. Vamos dar uma olhada mais detalhadanessas duas rotinas a seguir.

    1.6.1 Uma rotina chamada setup

    Quando voc deseja sair para uma corrida, existem coisas que deve fazer antesde iniciar: colocar seus tnis de corrida, pegar uma garrafa de gua e alongar-se.Acontece o mesmo com o Arduino. Ele deve ser preparado ou congurado antesque voc possa trabalhar com ele.

  • 8/10/2019 Arduino Livro

    22/24

    43Captulo 1 Ol Arduino

    Esta congurao est contida dentro de uma rotina de inicializao ou funoadequadamente chamada setup(veja a listagem a seguir). Coisas tpicas que vocdeve fazer no setup incluem a inicializao dos pinos digitais denindo-os comoINPUTou OUTPUT e denio da taxa de transmisso para a comunicao serial.

    Listagem 1.2 A funo setup

    void setup() {

    pinMode(13,OUTPUT);

    Serial.begin(9600);

    }

    O cdigo de setup na listagem 1.2 congura o pino 13 como uma sada e conguraa comunicao serial a uma taxa de transmisso de 9.600. O void na frente do

    setup apenas signica que a funo no retorna um valor.

    Mesmo que voc no tenha algo a congurar, a rotina ainda requerida ou umerro ser gerado ao vericar ou carregar um sketch. Apenas digite uma funovazia com um comentrio no cdigo:

    void setup() {

    // nada para confgurar

    {

    Agora vamos olhar para a outra funo necessria, loop.

    1.6.2 O loop infinito

    Quando voc vai para uma corrida, corre do comeo at o m (no entanto vocdene o m). o mesmo com um Arduino; ele roda continuamente em umarotina de loop ou funo chamada loopat que alguma condio seja satisfeitaou o Arduino seja desligado. A listagem seguinte mostra o loop para o LED in-

    termitente da listagem 1.1.

    Listagem 1.3 Um exemplo de uma funo de loop que pisca um LED aceso e apagado

    void loop() {

    digitalWrite(13, HIGH);

    delay(1000);

    digitalWrite(13,LOW);

    delay(1000);

    }

  • 8/10/2019 Arduino Livro

    23/24

    Arduino em Ao44

    Neste caso, o Arduino ca em loop repetidamente, acendendo o LED por um se-gundo e apagando por um segundo, e continua at que o Arduino seja desligado.

    Agora que voc conhece os princpios bsicos de como escrever um sketch, horade fechar o captulo com um lembrete importante.

    1.7 Comentando o cdigo

    Voc escreveu um grande pedao de cdigo e est realmente orgulhoso. Agoraimagine que, seis meses depois, algum mais est lendo seu trabalho e encontrao seu sketch, mas no consegue descobrir o que ele faz ou como funciona. Umasimples descrio ajudaria imensamente. Aqui onde o comentrio do seu cdigo

    se torna inestimvel.Existem duas maneiras de colocar comentrios em um sketch: como uma nicalinha ou como um bloco. Uma nica linha tem barras duplas (//) ao incio dalinha. Isso diz ao compilador que aquele contedo apenas um comentrio e podeser ignorado. Se voc deseja adicionar um bloco de cdigos como um comentrio,inicie o bloco com/* e termine com */.

    Ambos os mtodos so demonstrados aqui:

    // Este um comentrio de linha nica

    /* E este um bloco de comentrio em

    algumas linhas

    */

    Onde voc deve colocar os comentrios? Cada sketch deve possuir um bloco decomentrios no topo ou um cabealho do sketch, dando uma descrio do queo sketch faz, indicando quem o escreveu, a data e o nmero da verso. A prximalistagem mostra um exemplo de cabealho.

    Listagem 1.4 Exemplo de cdigo de cabealho

    /*

    Cdigo para piscar um LED

    Autor: Martin Evans

    Data de criao: 1 de Setembro de 2009

    Verso 1.0

    */

  • 8/10/2019 Arduino Livro

    24/24

    45Captulo 1 Ol Arduino

    Comentrios de linha nica espalhados por todo o sketch permitiro que vocveja rapidamente o que as partes individuais do cdigo fazem. Voc no precisacomentar cada parte do cdigo, somente lugares onde acha que ajudaria alguma entender o cdigo no futuro. Provavelmente melhor ter muitos comentrios

    do que poucos. A listagem seguinte mostra alguns comentrios de cdigos tpicos.

    Listagem 1.5 Exemplo de comentrios de cdigos

    void setup() {

    Serial.begin(9600);

    // imprime o ttulo com quebra de linha ao fnal

    Serial.println("ASCII Table ~ Character Map");

    }

    // primeiro ASCIIcharacter visvel '! o nmero 33:int thisByte = 33;

    /* voc pode tambm escrever caracteres ASCII em aspas simples.

    por exemplo. '!' o mesmo que 33, ento voc pode tambm usar este:

    int thisByte = '!; */

    Estudamos o editor de cdigo e o IDE, vimos como um sketch formado coma funo setupe loope discutimos a importncia dos comentrios de cdigos.

    1.8 Resumo

    Este foi um captulo abrangente, apresentando muitos fundamentos. Comea-mos aprendendo um pouco da histria do Arduino e seu incio no InteractionDesign Institute na Itlia. Vimos o layout dos pinos e os principais componentesdo Arduino Uno e Mega. Vislumbramos algumas outras verses do Arduino,incluindo o Lily-Pad e o Seeeduino Film e o que eles oferecem. Voc congurouum ambiente de trabalho e escreveu seu primeiro sketch, comeando a ver seu

    Arduino ganhar vida.Vimos em detalhes o software IDE do Arduino e os componentes de um sketch,com as rotinas setupe loop, o uso do monitor serial e tambm a importncia decomentar seu cdigo.

    O prximo captulo um tutorial que abrange o desenvolvimento gradual de umprojeto e os passos envolvidos para complet-lo.