Escolar Documentos
Profissional Documentos
Cultura Documentos
1.1
Agenda
• O que dá para fazer com Arduinos?
• Circuito semáforo ☈
• Fechamento
2
Logística
• Hashtag: #MakersBR
• Workshop: 14 a 19h
3
Apresentações
4
Luciano Ramalho
• Instrutor e palestrante internacional
especializado na linguagem Python
5
Luciano Ramalho
• Programador auto-didata desde 1978
• BASIC, ASM Z-80, Pascal, C, C++,
Smalltalk, Perl, Java, Python, Ruby...
6
Luciano Ramalho
• Dono e professor • Sócio-fundador
nas Oficinas Turing, do Garoa
escola virtual de Hacker Clube
computação
oficinas
Turing.com.br
7
Apresentem-se 5
minutos
8
Censo
9
Censo
Programação
nada
2 1 3
Eletrônica
pouco
0 5 4
LR
muito
0 1 1
IB
O que dá para
fazer com
Arduinos?
11
RepRap 3D printer
Lilypad
Arduino
Projetos simples • Microfone-bafômetro
www.instructables.com/id/Breathalyzer-Microphone/
• Pedal de guitarra
www.instructables.com/id/Lo-fi-Arduino-Guitar-Pedal/
• Automação residencial
www.makeuseof.com/tag/how-to-build-home-automation-system-
raspberry-pi-and-arduino/
15
Não por acaso, o logo é
∞
16
Abrindo o kit
17
Lista de peças do kit
Controlador Componentes de entrada
1! Placa compatível com Arduino UNO R3 10! Push-button 6x6 mm
1! Cabo USB AB 2! Potenciômetro 100kΩ
2! Sensores ópticos reflexivos
1! Sensor de luminosidade LDR 3mm
1! Sensor de temperatura LM35
18
Arduino Uno R3
• Placa com
microcontrolador
ATmega328 e
circuitos auxiliares
• regulador de voltagem
aceita 7-12V (recomendação)
19
Arduino: alimentação
• Externas:
5V via
USB
• USB: 5V
• adaptador DC
de 7 a 12V
(não incluído)
• Vin e GND :
7 a 12V DC
7 a 12V DC GND, Vin
Arduino: alimentação
• Internas:
• 3.3 V e 5 V (+)
• GND: terra (-)
• Vin: direto da
fonte externa
7 a 12 V (+)
Pinos de alimentação
Pinos de entrada ou saída
14 pinos de entrada e
saída digital: 0 a 13
6 deles com
Pulse Width
Modulation:
PWM ∼
6 pinos de entrada
analógica: A0 a A5
22
Entradas × saídas
Componentes de entrada
• Entradas: 10! Push-button 6x6 mm
Componentes de saída
• Saídas: 12!
!
LEDs 5mm, 2 de cada cor
(verde, vermelho, amarelo,
luzes, motores, ! laranja, azul e branco)
2! Relés 5v
mostradores, etc. 1!
1!
Display 7 segmentos 3 dígitos
Micro-servo 9g SG90 TowerPro
1! Buzzer contínuo
23
Breadboard
• Conhecido no Brasil
como “protoboard”
• No kit: breadboard
de 830 furos
24
Esquema elétrico de um
breadboard comum
colunas numeradas
linhas de alimentação
25
26
Note: cada componente
se liga a duas ou mais
colunas diferentes
exemplos ao vivo...
28
LED: light-emitting diode
• Componente polarizado:
tem direção certa para
ligar
29
LED: light-emitting diode
chanfro
30
LED RGB
não incluído
no kit
31
Resistores
• Kit: 20 × 1K Ω
32
O que é um resistor
• Reduz a corrente
• Sem polaridade:
pode ser montado
em qualquer direção
• Símbolos em esquemas:
33
Pequeno desvio
para entender o
resistor...
34
Tensão, corrente
& resistência
35
Sentindo na pele
Cap. 1, p. 5
36
Tensão
• Símbolo em
fórmulas: V
9V
37
Resistência
• Símbolo em
fórmulas: R
38
Corrente
• Símbolo em
fórmulas: I
• 6.241 × 1018
Torradeira (120V) 16 A 16 A
40
Lei de Ohm
V = I × R
V
I = V / R
I R R = V / I
41
Voltando ao
resistor...
42
Resistor: código de cores
33 x 101 = 330 Ω
43
Resistor: código de cores
44
Resistor: valores padrão
Série E12 da Norma IEC 60063
(para tolerância 10%)
45
Resistor: exemplos
330 Ω
1 kΩ
10 kΩ
1 MΩ
46
Resistor: exemplo de uso
Limitar a
corrente para
proteger um
LED
47
Resistor: exemplo de uso
48
Primeiro circuito
49
Primeiro
circuito:
blink
50
Pino mais
longo (+)
Pino 13
Pino GND
circuito:
blink
51
Primeiro
circuito:
blink
53
Programação
54
Arduino IDE
• Editor fácil,
baseado no
Processing, feito
para artistas
arduino.cc/en/Main/Software
55
Linguagem
• C++, com
simplificações
56
Estrutura
comentários
57
Estrutura
comentários
declaração
de variável
58
Estrutura
comentários
declaração
de variável
definições
de funções
59
Estrutura
comentários
declaração
de variável
definições
de funções
chamada
de função
60
Sintaxe
blocos de
instruções
delimitadas
por {...}
61
Sintaxe
editor
assinala pares
de chaves {...}
62
Sintaxe
editor marca
código com
cores para
ajudar na
leitura e
revisão
63
Dicas de sintaxe para C++
• Cada vírgula conta, mas espaços não
• Maiúscula ≠ minúscula
• ex. Alfa ≠ alfa ≠ ALFA
• Todo comando termina com ;
• O editor assinala os pares de (), {} e []
64
Lógica
Arduino
executa a
função
setup() uma
vez após
resetar
65
Lógica
aqui o pino
do led é
configurado
para saída
66
Lógica
Arduino
executa a
função loop()
repetidamente
67
Lógica
digitalWrite
serve para
mudar o
estado de um
pino digital
68
Lógica
Onde você
mudaria o
código para
acionar um
LED ligado ao
pino 8?
69
Lógica
Onde você
mudaria o
código para
mudar a
frequência
das piscadas?
70
Coding Dojo
com Arduino
Slides do Garoa Hacker Clube
71
Arduino & cia.
72
Família Arduino
Uno Mega
etc...
Nano
Lilypad
73
Microcontrolador do UNO:
Atmel ATmega328
• família “AVR”
• clock: 16 MHz
• SRAM: 2 KB
• EEPROM: 1 KB
• Flash: 32 KB
74
Entradas e saídas no
ATmega328
• 28 pinos
• 23 pinos
multi-funcionais
diagrama do datasheet
75
Entradas e saídas no
Arduino UNO
• Função dos pinos:
padronizadas e
simplificadas
76
Shields
• Placas de
expansão
• Alguns exemplos:
• Ethernet, Wi-Fi,
controle de motores,
acelerômetro, GPS, Arduino com dois
tela LCD touch... shields empilhados
77
Shields
• Mais exemplos:
• GPRS, NFC/RFID,
MIDI sequencer,
MP3 decoder,
controle de câmera
5
fotográfica, XBee radio... shields
empilhados!
• Imperdível: shieldlist.org
78
Clones e derivados
• Alguns exemplos:
• Severino
• Garagino
• Sanguino
• Program-ME
Severino
Clone de Arduino em breadboard
80
Clone de Arduino em breadboard
Vídeo: http://www.youtube.com/watch?v=S4nIV99RMtg
Mais componentes
do kit
82
Potenciômetro
• Resistor ajustável
• Kit: 2 × 100 kΩ
• Símbolo em esquemas:
83
Potenciômetro: como usar
Vout
• Ligar pinos laterais
na alimentação
84
LDR ou fotoresistor
• Kit: 1 × 3mm Ø
85
Circuito divisor de tensão
Vout
86
Ler LDR no Arduino
• 5V no LDR
• resistor 10k Ω em
série
• entre eles:
Vout ligado a uma
entrada analógica
(ex. A0)
87
Circuito
Semáforo 1
88
Circuito semáforo 1
• Componentes:
• LEDs: verde, amarelo, vermelho
• 4 resistores de 1k Ω
• 1 potenciômetro de 100k Ω
• Código:
gist.github.com/ramalho/6202074
89
Circuito
semáforo 1
90
Circuito
semáforo 1
código: gist.github.com/ramalho/6202074
gist.github.com/ramalho/6202074
gist.github.com/ramalho/6202074
Circuito
Semáforo 2
94
Circuito semáforo 2
• Usar um LDR (sensor de
luminosidade) em vez do
potenciômetro
95
Circuito semáforo 2
• Componentes:
• LEDs: verde, amarelo, vermelho
• 4 resistores de 1k Ω
• 1 potenciômetro de 100k Ω
• 1 LDR
• 1 resistor de 1k Ω LDR
96
Circuito
semáforo 2
código: gist.github.com/ramalho/6202074
Ainda mais
componentes
do kit
98
Sensor óptico reflexivo
• Detecta objetos até 25mm
de distância
chanfro
• Emissor: LED infravermelho
• Receptor: fototransistor
protegido contra luz visível
99
divisor de tensão
100
Display 7 segmentos
• 3 dígitos
• modelo CPS3631BR
foto:
CPS3631AR
101
Display 7 segmentos
102
Display 7 segmentos
• anodos: pinos 8, 9, 12
selecionam o dígito
103
Servomotor
• Movimentos
controlados num
arco de 180°
• Programação fácil
via biblioteca Servo
no Arduino
104
Servomotor
fonte externa
deve se ligar ao 5V
GND do Arduino DC
• Alguns servos
só funcionam
alimentados
por fonte
externa
105
fonte DC Arduino
externa alimentado
5V, 1A via USB
terra comum
Ser vo TowerPro
SG90 (9g) 106
Fechamento
107
Referências
• Site oficial:
arduino.cc
• Laboratório de garagem
labdegaragem.com
108
arduino.cc
• Seções do site
Fritzing.org
• Site com software para download e
repositório de projetos
Alguns
Livros
111
Lojas físicas em Sampa
112
Lojas online
• Laboratório de Garagem: labdegaragem.com
• Adafruit: adafruit.com
seeedstudio
• Sparkfun: sparkfun.com com 3 “e”!
• Seeedstudio: seeedstudio.com
113
Seeedstudio Shield Bot
• Robô seguidor
de linha
• Vem montado
• Basta encaixar
o Arduino Uno
US $ 69.90
114
Visite um hackerspace!
garoa.net.br
115
Créditos
116