Beruflich Dokumente
Kultur Dokumente
Joshua Noble
Jordan Hochenbaum
Novatec
Original English language edition published by Manning Publications Co., Sound View CT.#3B, Greenwich, CT
06830 USA. Copyright 2013 by Manning Publications. Portuguese-language edition for Brazil copyright 2013
by Novatec Editora. All rights reserved.
Edio original em ingls publicada pela Manning Publications Co., Sound View CT.#3B, Greenwich, CT 06830
USA. Copyright 2013 pela Manning Publications. Edio em portugus para o Brasil copyright 2013 pela
Novatec 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, mesmo
parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora.
Editor: Rubens Prates
Traduo: Camila Paduan
Reviso tcnica: Rodrigo Stulzer
Reviso gramatical: Marta Almeida de S
Editorao eletrnica: Carolina Kuwabata
ISBN: 978-85-7522-373-4
Histrico de impresses:
Agosto/2013
Primeira edio
captulo 1
Ol Arduino
24
Captulo 1 Ol Arduino
25
26
Arduino em Ao
Captulo 1 Ol Arduino
27
8U2
Tx
Rx
DIGIT AL (PWM-)
UNO
Arduino
ON
RESET
ICSP
L
USB
2
TX 1
RX 0
7
-6
-5
AREF
GND
13
12
-11
-10
-9
8
MADE
IN ITALY
4
-3
A2
A3
A4
A5
A0
ANALOG IN
A1
Gnd
5V
Vin
POWER
Gnd
RESET
+ POWER
6-20 VDC
- 7-12 V optimal
3.3V
ATmega328
O Arduino Uno uma boa opo multiso e sua melhor aposta para uma
placa de partida com fonte de alimentao autochaveada e tenso integrada de
3,3 V regulada.
28
Arduino em Ao
Captulo 1 Ol Arduino
29
A0
ANALOG IN
A2
A3
A4
A5
6
A7
A1
Vin
Gnd
Gnd
3.3V
5V
POWER
2560
SDA 20
SCL 21
DIGIT AL
TX1 18
RX1 19
MEGA
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
31
33
35
37
39
41
43
45
47
49
51
53
A8
A9
A10
A11
A12
A13
A14
A15
ARDUINO
RESET
+
6-20 VDC
- 7-12V optimal
RESET
ON
ATmega2560
POWER
TX2 16
Tx
Rx
ICSP
8U2
RX2 17
COMMUNICATION
L
USB
TX3 14
TX0
RX0
PWM
RX3 15
AREF
GND
13
12
11
10
9
8
MADE
IN ITALY
7
6
5
4
3
2
1
0
Figura 1.2 Os pinos e o layout do Arduino Mega; note os pinos adicionais de entrada-sada e
as portas seriais extras comparadas com o Arduino Uno.
Agora vamos dar uma olhada em algumas opes mais especializadas de Arduino.
30
Arduino em Ao
Lilypad Arduino
Desenvolvido pela SparkFun Electronics e pela Leah Buechley, o LilyPad Arduino timo para projetos txteis e em esteiras industriais. Ele foi projetado com
grandes blocos de conexo que podem ser costurados ao tecido, e h uma gama
de acessrios costurveis disponveis, incluindo sensores de luz, campainhas,
LEDs tricolores, sensores de temperatura, kits de costura e acelermetros. Sua
verso 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 de
processamento menor de 8 MHz, em contrapartida normal de 16 MHz. Uma
coisa a se observar: a tenso de entrada no deve exceder 5,5 V. Veja na figura
1.3 uma foto do Lily-Pad Arduino.
Figura 1.3 O LilyPad Arduino adequado para se costurar ao tecido, e h uma gama de
acessrios 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 processador ATmega328) tem uma mini-USB integrada, um formato compacto para
uso em placas de testes.
Captulo 1 Ol Arduino
31
Seeeduino Film
O Seeeduino Film traz um conceito de utilizao diferente daquele de arquitetura baseada em tecido do LilyPad. Este clone Arduino flexvel, o qual pode
tambm ser usado em projetos de registro de dados, tem uma montagem em
superfcie ATmega168 em uma placa de circuito impresso flexvel. Em vez de
shields, a expanso ativada por meio do que os fabricantes chamam de frames. 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 mais
do que suficiente para atingir o objetivo.
32
Arduino em Ao
BoArduino
O BoArduino uma pequena placa similar ao Nano 3.0, mas disponvel apenas
em forma de kit, portanto so requeridas habilidades para solda. Produzido
pela Adafruit Industries, o BoArduino projetado para ser ligado diretamente 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 conhecimentos
de solda. O Sippino utiliza o ATmega328, mas tambm pode utilizar o ATmega168. Todos os pinos digitais e analgicos de entrada e sada so trazidos
para fora em uma nica linha para que possam ser conectados diretamente
a uma placa de testes sem solda. Um cabo serial FTDI-USB necessrio para
programar a placa.
Ebay
Um grande nmero de placas clone vendido no eBay, muitas dessas placas
so cpias da Duemilanove. Aqui esto algumas coisas a se considerar ao adquirir qualquer clone: tenha certeza de que ele possui um microprocessador
ATmega328 e que os conectores so adequados para adicionar shields.
O primeiro Arduino que compramos no eBay possua conectores machos
ao invs de fmeas, o que tornou difcil adicionar shields. Tambm tivemos
de comprar alguns jumpers especiais para conectar placa de testes. Isso foi
suficiente para que inicissemos, mas melhor evitar tais enganos e verificar
se voc est comprando o que voc realmente deseja.
Captulo 1 Ol Arduino
33
Se voc j tem um Arduino, pode iniciar a conexo ao seu sistema e criar seu
ambiente de trabalho.
34
Arduino em Ao
Captulo 1 Ol Arduino
35
Um kit de componentes bsicos, incluindo um Arduino e uma seleo de componentes, pode ser adquirido em diversos revendedores que oferecem desconto
quando voc compra um kit.
Agora que seu ambiente de trabalho foi configurado, est na hora de escrever seu
primeiro sketch e executar o hardware equivalente a Hello World.
pinMode(13, OUTPUT);
36
Arduino em Ao
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, em
seguida, voc entra em um loop no qual algum cdigo muda o pino 13 para HIGH
ou LOW durante um segundo. O valor do atraso dado em milissegundos, ento
mil milissegundos lhe d um atraso de tempo de um segundo.
NOTA: Certifique-se de copiar o cdigo exatamente como mostrado. Cuidado com o
ponto e vrgula (;) ao final de algumas linhas e o uso correto das letras maisculas.
No que diz respeito ao Arduino, digitalwrite no o mesmo que digitalWrite.
Figura 1.4 LED inserido entre o pino 13 e o GND. Note que a perna menor conectada ao
GND.
Captulo 1 Ol Arduino
37
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 mais
longa dentro do pino 13 e a mais curta dentro do GND. Se voc desconhece alguns
termos da eletrnica, uma boa cartilha pode ser encontrada em http://electronicsclub.info/components.htm.
NOTA: Um resistor limitador de corrente pode ser necessrio para prevenir a
queima do LED, e veremos isso no captulo 2. Por enquanto, vamos apenas usar
o LED integrado existente. Uma vez que o LED foi inserido, voc pode passar
para a prxima seo para testar sketch.
Figura 1.5 Neste exemplo, o Duemilanove foi selecionado, mas voc pode ver que h uma
grande lista a escolher.
38
Arduino em Ao
Depois, voc precisa definir a porta serial, pois o USB enxerga o Arduino como
uma conexo serial. Selecione Tools > Serial Port e ento escolha sua porta serial (veja
a figura 1.6). Em um sistema usando Mac OS X para um Arduino Uno, a porta ser
identificada como algo parecido com /dev/tty.usbmodem; para placas mais antigas
como a Duemilanove ou Diecimila, ser algo como /dev/tty.usbserial. Em um
sistema Windows, a porta ser identificada como COM3.
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 de
cerca de uma vez por segundo.
NOTA: O Arduino retm o programa em sua memria mesmo se ele for desligado
at que voc carregue outro sketch.
sempre emocionante quando voc v o primeiro LED piscando e sabe que tudo
est funcionando corretamente, mas isso no tudo o que voc pode fazer com
seu Arduino. Voc agora obter uma viso mais detalhada do IDE e far um tour
na tela principal do editor de cdigos.
Captulo 1 Ol Arduino
39
40
Arduino em Ao
Figura 1.9 Monitor serial mostrando a sada de um Arduino imprimindo uma tabela ASCII.
Captulo 1 Ol Arduino
41
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 fechar
um interruptor. A parte principal da janela mostra os dados de sada do Arduino.
Isso pode ser usado para verificar a sada de um GPS ou para executar outro
monitoramento de sinal.
O motor serial muito til para depurao do cdigo ao ligar o Arduino ao sistema
do computador que executa o software que ento interage de alguma maneira com
o Arduino; voc pode usar o monitor serial para verificar se o Arduino est gerando
os dados corretamente no formato esperado. No monitor serial, voc tambm pode
definir a taxa de transmisso usada para a comunicao, a rolagem automtica de
texto e a forma de trmino de linha que anexada aos dados enviados ao Arduino.
1.5.4 Processo
O que o IDE realmente faz com o seu cdigo? Quando voc pressiona o boto
carregar, ele verifica o cdigo procurando erros e executa algumas tradues
mnimas para converter o sketch para um C++ vlido. O cdigo ento compilado, o que significa que convertido numa forma que pode ser entendido pelo
Arduino. O arquivo resultante ento combinado com as bibliotecas padro do
Arduino antes de ser carregado no seu hardware.
Agora que voc fez um tour pelo IDE, hora de ter uma noo melhor dos sketches do Arduino.
42
Arduino em Ao
Figura 1.10 O editor de cdigo reporta um erro que introduzimos no cdigo. O verificador de
cdigo indica em qual linha ele acha que o erro ocorreu, bem como o que ele espera.
Captulo 1 Ol Arduino
43
O cdigo de setup na listagem 1.2 configura o pino 13 como uma sada e configura
a comunicao serial a uma taxa de transmisso de 9.600. O void na frente do
setup apenas significa que a funo no retorna um valor.
Mesmo que voc no tenha algo a configurar, a rotina ainda requerida ou um
erro ser gerado ao verificar ou carregar um sketch. Apenas digite uma funo
vazia com um comentrio no cdigo:
void setup() {
// nada para configurar
{
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);
}
44
Arduino em Ao
Neste caso, o Arduino fica em loop repetidamente, acendendo o LED por um segundo 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, hora
de fechar o captulo com um lembrete importante.
Onde voc deve colocar os comentrios? Cada sketch deve possuir um bloco de
comentrios no topo ou um cabealho do sketch, dando uma descrio do que
o sketch faz, indicando quem o escreveu, a data e o nmero da verso. A prxima
listagem mostra um exemplo de cabealho.
Captulo 1 Ol Arduino
45
Comentrios de linha nica espalhados por todo o sketch permitiro que voc
veja rapidamente o que as partes individuais do cdigo fazem. Voc no precisa
comentar cada parte do cdigo, somente lugares onde acha que ajudaria algum
a entender o cdigo no futuro. Provavelmente melhor ter muitos comentrios
do que poucos. A listagem seguinte mostra alguns comentrios de cdigos tpicos.
}
// 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 = '!; */
1.8 Resumo
Este foi um captulo abrangente, apresentando muitos fundamentos. Comeamos aprendendo um pouco da histria do Arduino e seu incio no Interaction
Design Institute na Itlia. Vimos o layout dos pinos e os principais componentes
do Arduino Uno e Mega. Vislumbramos algumas outras verses do Arduino,
incluindo o Lily-Pad e o Seeeduino Film e o que eles oferecem. Voc configurou
um 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 setup e loop, o uso do monitor serial e tambm a importncia de
comentar seu cdigo.
O prximo captulo um tutorial que abrange o desenvolvimento gradual de um
projeto e os passos envolvidos para complet-lo.