You are on page 1of 65

Hardware Livre com Arduino.

Fbio Leite Soares fls2@cin.ufpe.br


Roteiro
O que Arduino ?
O projeto Arduino
Modelos
Como funciona ?
Conhecimentos necessrios
Shields
Projetos
Exemplos de cdigos
Componentes de Interfaceamento
Porta Serial
...



2
O que o Arduino ?

3
O que o Arduino ?

O Arduino uma plataforma de prototipao
eletrnica open-source cujo objetivo est na
flexibilidade, fcil uso do hardware e
software. Destina-se aos artistas, designers,
hobbyists e qualquer um interessado na
interao entre objetos e ambientes.



4
O projeto Arduino
O projeto iniciou-se na cidade de Ivrea, Itlia, em
2005, com o intuito de interagir em projetos
escolares de forma a ter um custo menor que
outros sistemas de prototipagem disponveis
naquela poca.

Seu sucesso foi sinalizado com o recebimento
de uma meno honrosa na categoria
Comunidades Digitais em 2006, pela Prix Ars
Electronica, alm da marca de mais de 50.000
placas vendidas at outubro de 2008.
5
O projeto Arduino
6

Massimo Banzi e David Cuartielles nomearam o
projeto usando o nome de um bar!

Arduino um nome italiano que significa forte
amigo

Em fevereiro de 2010 mais de 120 mil
plataformas Arduino foram vendidas!

O projeto Arduino

O Arduino licenciado pela Creative Commons
Attribution Share-Alike 2.5 e disponibilizado no
site www.arduino.cc.

Os Layouts, programas, bootloaders, IDE
tambm esto disponveis para Download.

O Cdigo Fonte da IDE do Arduino e suas
bibliotecas esto disponveis sob a licena
GPLv2.
7
Arduino Team












The Arduino Project team (back) Dave Mellis, Tom Igoe;
(front) Gianluca Martino, David Cuartielles, Massimo Banzi
8
Modelos oficiais

Principais modelos
9
Diecimila
10
Duemilanove
11
Uno (2010)
12
Mega2560
13
Arduino Severino
14
Layout Arduino Severino
15
Como funciona?

1 Passo: ligar a placa via cabo usb

2 Passo: saber programar (em qq coisa!)

3 Passo: clicar em baixar na placa!

4 Passo: n tem!
16
Simples Assim!
17
Software do Arduino
18
A IDE do Arduino uma aplicao cross-platform
escrita em Java a qual derivada da IDE
utilizada na programao utilizando Processing e
no projeto Wiring que so destinadas introduzir
a programao para artistas e pessoas no
familiarizadas com o desenvolvimento de
software.

A IDE possui uma biblioteca escrita em C/C++
denominada Wiring(originadas do projeto Wiring)
a qual facilita a interao entre a programao e
as interfaces eletrnicas do Arduino.

Software do Arduino
19
Os programas em Arduino so escritos em
C/C++, no entanto para definirmos um programa
bsico e funcional no Arduino, precisamos
apenas de duas funes bsicas e necessrias:

setup() Funo que executada apenas uma
vez no comeo do programa a qual pode ser
utilizada para configurao e inicializao de
pinos/portas.

loop() Funo principal, chamada
repetidamente at a placa ser desligada.

Modelo de Programa
20
Software do Arduino
21
O cdigo acima no parece ser um padro
vlido dos compiladores de C/C++, mas quando
o usurio clica no boto de Upload para a placa,
uma cpia do cdigo escrita temporariamente
como um programa em C/C++ com uma funo
main() para obedecer ao padro do compilador.

A IDE do Arduino utiliza a GNU toolchain e a
AVR Libc para a compilao dos programas
utilizando a avrdude para baixar o programa na
placa.
Splash IDE Arduino
22
23

Hardware do Arduino
A plataforma Arduino consiste de um
microcontrolador Atmel AVR de 8 bits alm dos
componentes eletrnicos que facilitam a
programao e o interfaceamento com outros
circuitos.

Um aspecto importante do Arduino o seu padro
de conectores os quais facilitam o upgrade do
hardware atravs de circuitos independentes
chamados de Shields.

Os Arduinos oficiais utilizam a srie de chips
megaAVR, especificamente o ATmega8,
ATmega168, ATmega328, ATmega1280 e
ATmega2560.
24
Hardware do Arduino
Cristal oscilador de 16MHz, no entanto, o
LilyPad funciona a 8MHz. As placas do Arduino
incluem reguladores de tenso a 5V, ou seja,
pode-se aliment-las em um range de 7V-
12V.

O microcontrolador do Arduino pre-
programado com um bootloader no qual facilita o
upload do cdigo na memria flash do
microcontrolador.

Um dos motivos do sucesso do Arduino a
reprogramao sem ter que retirar o chip do
circuito do projeto e conect-lo placa
programadora.


25
Hardware do Arduino
As plataformas Arduino so programadas
utilizando o protocolo RS-232 (protocolo da porta
Serial). As placas possuem um conversor do
nvel RS-232 (12V) para sinais nvel TTL (5V). O
chip MAX232 amplamente utilizado para tal
converso.

No Arduino propriamente dito a converso se d
atravs do chip da FTDI com o FT232. Algumas
plataformas so programveis via bluetooth ou
outros mtodos (quando usadas as ferramentas
de programao do prprio fabricante ao invs
da IDE do Arduino).


26
O que um microcontrolador?
Um microcontrolador (tambm denominado
MCU) um computador-num-chip, contendo um
processador, memria e perifricos de
entrada/sada. um microprocessador que pode
ser programado para funes especficas, em
contraste com outros microprocessadores de
propsito geral (como os utilizados nos PCs).
Eles so embarcados no interior de algum outro
dispositivo (geralmente um produto
comercializado) para que possam controlar as
funes ou aes do produto.
27
O que um microcontrolador?
Os microcontroladores se diferenciam dos
processadores, pois alm dos componentes
lgicos e aritmticos usuais de um
microprocessador de uso geral, o
microcontrolador integra elementos adicionais
em sua estrutura interna, como memria de
leitura e escrita para armazenamento de dados,
memria somente de leitura para
armazenamento de programas, EEPROM para
armazenamento permanente de dados,
dispositivos perifricos como conversores
analgico/digitais (ADC), conversores
digitais/analgicos (DAC) em alguns casos; e,
interfaces de entrada e sada de dados.

28
O que um microcontrolador?
Com freqncias de clock de poucos MHz
(Megahertz) ou talvez menos, os
microcontroladores operam a uma freqncia
muito baixa se comparados com os
microprocessadores atuais, no entanto so
adequados para a maioria das aplicaes
usuais como por exemplo controlar uma
mquina de lavar roupas ou uma esteira de
cho de fbrica.

29
O que um microcontrolador?
30
O seu consumo em geral relativamente
pequeno, normalmente na casa dos miliwatts e
possuem geralmente habilidade para entrar em
modo de espera (Sleep) aguardando por uma
interrupo ou evento externo, como por
exemplo o acionamento de uma tecla, ou um
sinal que chega via uma interface de dados. O
consumo destes microcontroladores em modo
de espera pode chegar na casa dos nanowatts,
tornando-os ideais para aplicaes onde a
exigncia de baixo consumo de energia um
fator decisivo para o sucesso do projeto.
O que um microcontrolador?
De forma oposta aos microprocessadores, onde se
superdimensiona ao mximo tendo como limite o
preo que o usurio deseja investir, a escolha do
microcontrolador feita pelo projetista do
equipamento. erro de projeto superdimensionar.
Cada desperdcio ser multiplicado pelo numero de
equipamentos fabricados (as vezes milhes). Por
isso existem duas linhas de pesquisa paralelas mas
opostas: uma criando microcontroladores mais
capazes, para atender produtos de mais tecnologia
como os novos celulares ou receptores de TV digital
e outra para criar microcontroladores mais simples e
baratos, para aplicaes elementares (como um
chaveiro que emite sons).

31
O que um microcontrolador?
32
De forma diferente da programao para
microprocessadores, que em geral contam
com um sistema operacional e um BIOS, o
programador ou projetista que desenvolve
sistemas com microcontroladores tem que
lidar com uma gama muito grande de
desafios, fazendo muitas vezes todo o
processo construtivo do aparelho: BIOS,
firmware e circuitos.

33
Bootloader
34
Num microcontrolador comum, o programa
compilado por ns programado no chip
atravs de um circuito especial (firmware)
compatvel, conhecido por programador. No
entanto, isto implica que preciso tirar o
microcontrolador do PCB e p-lo no
programador. Repetindo este cenrio muita
vezes podemos danificar os pinos do
microntrolador bem como o PCB.
Bootloader
35
Da existir uma outra alternativa de programar os
nossos microcontroladores: explorar a
funcionalidade RS232 dos nossos chips e
transferir o programa compilado pela porta
serial, on-chip (sem a necessidade de remover o
micro do PCB).
Para que isso seja possvel, previamente
programado no microcontrolador um pequeno
programa (inferior a 200 palavras) que controla a
comunicao com o PC e que transfere a
informao recebida para a memria de
programa do microntrolador. Este programa
designado por bootloader.
Bootloader
36
O seu princpio de funcionamento simples.
Sempre que o microcontrolador for ligado, inicia-
se a execuo do bootloader. Este comea por
perguntar ao PC sobre o que fazer.

Se no disser nada num determinado prazo e se
existir um programa na memria do chip, o
bootloader executa-o. Caso receba informaes
do PC, iniciado o processo de transferncia e
armazenamento do novo programa.
Exemplo de bootloader
37
Algumas Interfaces do Arduino
Utilizando o Arduino Mega2560 para a
explicao temos:
54 pinos de escrita e leitura DIGITAIS.

16 pinos de leitura ANALGICA.

3 portas Seriais

Dos 54 pinos digitais, 14 so utilizados para
PWM !
38
Interfaces Digitais
54 pinos de leitura e escrita Digitais

No colocar mais 5V em qualquer pino de
leitura/escrita do Arduino.

Os nveis digitais do Arduino so:
Nvel Lgico 0 (LOW) = 0~2V(na leitura), 0V (na
escrita)
Nvel Lgico 1 (HIGH) = 3~5V(na leitura), 5V (na
escrita)




39
Exemplo - Digital
40
Interfaces Analgicas
41
16 pinos de leitura de sinais Analgicos

No colocar mais 5V em qualquer pino de
leitura/escrita do Arduino.

O Arduino possui uma preciso de 10 bits para
sinais analgicos de 0 a 5V. Representados no
programa de 0 a 1023. Aprox 0,005V por unidade !

A taxa de amostragem varia de 50KHz a 200KHz
podendo ser alterada caso a preciso diminua.
(Deixa queto ...)
Exemplo - Analgico
42

Interfaces Seriais
43
3 portas Seriais no Arduino Mega

Cada porta Serial composta por 2 pinos, 1 para a
transmisso dos dados (TX) outra para a recepo de
dados(RX).

A comunicao Serial se d na transmisso de Bytes
serialmente, ou seja, 1 Byte transmitido por vez. Mais
prtico j que em 1 fio so transmitidos os Bytes e em
outro so recebidos.

Mais lento j que apenas 1 Byte transmitido por vez.

Utilizam UART para sincronizar a comunicao.
Interfaces Seriais
44
Importantes para comunicao de dispositivos que
implementam a interface Serial atravs do protocolo
RS-232.

As portas seriais construdas utilizando conectores
DB9(prximo slide) trabalham a 12V. No ligar
diretamente ao Arduino !

Implementar a converso SERIAL-TTL !

Ao utilizarmos dispositivos independentes devemos
conectar seus GNDs para as corretas referncias!
Conector DB9
45
Converso SERIAL-TTL
46
Pinos PWM
47
Basicamente os 14 pinos digitais PWM so
capazes de escrever nveis de tenso de 0 a
255 mapeados em 0~5V, ou seja, aprox 0,02V
para cada unidade.

Considera-se portanto, uma sada analgica
utilizando um pino Digital.

Frequncia de trabalho em aprox 490Hz

Mas o que de fato PWM ?!
PWM
48
Pulse Width Modulation, ou PWM, uma tcnica
para obtermos resultados analgicos atravs de
sadas digitais. O controle digital usado para criar
uma onda quadrada ligando e desligando o sinal.
A rpida mudana entre ligar e desligar capaz de
simular voltagens entre 5V e 0V (Voltagens do
Arduino) de acordo com o tempo que se liga e se
desliga o sinal. O tempo em que o sinal est ligado
chamado de largura de pulso. Para obtermos os
valores analgicos mudamos(modulamos) a
largura do pulso.
Caso queiramos controlar o brilho de um LED
utilizamos o PWM para tal propsito.

PWM
49
Exemplo - PWM
50
Mega2560
51
Shields
Os Arduinos Shields so placas que podem
ser conectadas diretamente ao Arduino
aumentando suas capacidades!

Os diferentes Shields seguem a mesma
filosofia da plataforma: fceis de usar e
baratas de comprar !

Pode-se utilizar mais de um Shield
simultaneamente.
52
Ethernet Shield
53
Ethernet Shield
54

XBee Shield
55

Joystick Shield
56

Ethernet+Proto Shield
57

GPS Shield
58

Wi Shield (wifi)
59

TouchShield + BatteryShield
60
...
61
Projetos
62
Projetos
http://www.youtube.com/watch?v=sLVXmsbVwUs&fe
ature=player_embedded
http://blogs.nokia.com/pushn900/category/sketch-
your-world/
http://hacknmod.com/hack/use-the-wii-and-iphone-
to-control-an-rc-car/
http://www.youtube.com/watch?v=pFPTlWSUL9s
http://www.youtube.com/watch?v=pn_hxGk-6LA
http://blubee.com/theblog/?cat=17
http://www.thepemberton.com/posts/archives/271
http://www.youtube.com/watch?v=GU8Ej0c2R14&fe
ature=related
63
Monte o seu !
64
Hardware Livre com Arduino.
Fbio Leite Soares fls2@cin.ufpe.br

You might also like