O documento descreve um curso de prototipagem eletrônica que aborda:
1) O desenvolvimento de técnicas de prototipagem com sistemas computacionais, cobrindo conceitos de computação física, eletricidade, eletrônica e a plataforma Arduino.
2) O conteúdo inclui computação física, conceitos básicos de eletricidade e eletrônica, a plataforma Arduino, sinais analógicos e digitais e sensores e atuadores.
3) A plataforma Ar
6. PROTOTIPAÇÃO ELETRÔNICA
COMPUTAÇÃO FÍSICA
▸ uso de computação e eletrônica [sensores e atuadores] na
prototipação de objetos físicos para interação com seres humanos
▸ comportamento implementado por software
▸ utilização de microcontroladores
7. PROTOTIPAÇÃO ELETRÔNICA
COMPUTAÇÃO FÍSICA
▸ o objetivo é interligar o mundo físico com o mundo virtual
▸ usar a computação e a interação com a tecnologia para o
desenvolvimento das atividades pessoais
▸ meio para comunicação e interação entre pessoas
16. PROTOTIPAÇÃO ELETRÔNICA
CONCEITOS BÁSICOS DE ELETRICIDADE
eletricidade - interação entre partículas atômicas
universo formado de átomos.
partículas atômicas:
prótons: cargas positivas
elétrons: cargas negativas
17.
Atomos com mais elétrons que
prótons estão carregados
negativamente (íon negativo)
Atomos com menos elétrons
que prótons estão carregados
positivamente (íon positivo)
“buraco”
“elétron extra”
CONCEITOS BÁSICOS DE ELETRICIDADE
PROTOTIPAÇÃO ELETRÔNICA
18. CONCEITOS BÁSICOS DE ELETRICIDADE
PROTOTIPAÇÃO ELETRÔNICA
cargas iguais se repelem cargas opostas se atraem
cargas em movimento
geram campo magnético
campo magnético em movimento
gera corrente elétrica
NS
19. CONCEITOS BÁSICOS DE ELETRICIDADE
PROTOTIPAÇÃO ELETRÔNICA
isolante – evita a passagem de elétrons
condutor – permite o fluxo de elétrons
20. DIFERENÇA DE POTENCIAL - TENSÃO (V)
CONCEITOS BÁSICOS DE ELETRICIDADE
cargas negativas
quanto maior a tensão, mais “força” teem os elétrons
diferença de potencial
ou tensão.
cargas positivas
V
21. CORRENTE ELÉTRICA (I)
CONCEITOS BÁSICOS DE ELETRICIDADE
quanto maior a corrente,
maior a “quantidade” de elétrons
fluxo de elétrons em um condutor
23. CORRENTE ELÉTRICA (I)
CONCEITOS BÁSICOS DE ELETRICIDADE
inversão de polaridade no tempo
mesma polaridade no tempo (sentido continuo)
24. RESISTÊNCIA ELÉTRICA (R)
CONCEITOS BÁSICOS DE ELETRICIDADE
propriedade do material condutor em reduzir
a passagem dos elétrons
elétrons “se acumulam e batem”
no condutor, “dissipando” sua energia
(gerando calor)
25. LEI DE OHM
CONCEITOS BÁSICOS DE ELETRICIDADE
V = R x I
a diferença de potencial (V) entre dois pontos de um
condutor é proporcional à corrente elétrica (I) que o
percorre e à sua resistência (R)
V
R I R = V/I
I = V/R
29. PROTOTIPAÇÃO ELETRÔNICA
PLATAFORMA ARDUINO
▸ microcontrolador Atmel
▸ programação usando Wiring (subconjunto de processing,
baseado em C/C++)
▸ open-source: evolução da plataforma através de
contribuições dos usuários
38. LINGUAGEM
▸ linguagem baseada em C (mas bem mais fácil)
▸ comandos básicos
▸ pinMode() – define um pino com entrada ou saída
▸ digitalWrite() – liga ou desliga uma saída digital
▸ delay() – “espera” um determinado tempo
PLATAFORMA ARDUINO - ATUADORES
39. LINGUAGEM
▸ Exemplos:
▸ pinMode(13, OUTPUT);
▸ digitalWrite(13, HIGH);
valor é LOW ou HIGH (0 ou 1)
▸ delay(1000);
PLATAFORMA ARDUINO - ATUADORES
41. ATIVIDADE PRÁTICA!
▸fazer o programa hello arduino, que pisca um led
▸use o pino 13 de saída digital, a placa já possui um
led ligado a ele :-)
PLATAFORMA ARDUINO - ATUADORES
44. LINGUAGEM
▸ Escrita analógica:
▸ analogWrite() – Escreve um valor analógico em uma saída PWM
▸ analogWrite(9, 128);
valor entre 0 e 255 (8 bits)
PLATAFORMA ARDUINO - ATUADORES
45. ESCRITA ANALÓGICA - MODULAÇÃO PWM
▸ a função analogWrite() escreve “pulsos”
muito rápidos (2 KHz) no pino digital (só
funciona nos pinos marcados como
PWM ~).
▸ o valor a ser escrito representa a
percentagem de tempo que o pulso fica
em nível alto, e varia de 0 a 255.
▸ quanto mais tempo o pulso permanecer
em nível alto, maior é a “tensão média”
da saída.
PLATAFORMA ARDUINO - ATUADORES
46. LINGUAGEM - VARIÁVEIS
▸ Espaço reservado na memória para armazenamento de valores
▸ Variáveis são declaradas de acordo com o tipo de dado a ser armazenado (int,
long, char, etc…)
tipo nome = valor;
Exemplo:
int x = 10;
int y = 20;
int resultado;
char vogal = ‘a’;
resultado = x + y;
PLATAFORMA ARDUINO - ATUADORES
47. LINGUAGEM - LAÇOS DE REPETIÇÃO
for (inicialização; condição; incremento) {
//comando(s);
}
for (int i=0; i <= 255; i++){
analogWrite(9, i);
delay(10);
}
for (int i=255; i >= 0; i--){
analogWrite(9, i);
delay(10);
}
PLATAFORMA ARDUINO - ATUADORES
52. RESISTORES
PLATAFORMA ARDUINO - ELETRÔNICA
tipos:
carvão [carbono]
filme
fio
resistência:
fixo
variável
transformam energia elétrica em energia térmica
[pode ser usado como atuador]
55. PLATAFORMA ARDUINO - ATUADORES
ATIVIDADE PRÁTICA!
▸modificar o programa hello arduino para acender o
led com efeito de “fading” (acender gradativamente)
▸dica: use analogWrite() em vez de digitalWrite(),
variando os valores escritos, de 0 a 255
60. PLATAFORMA ARDUINO - SENSORES
SENSORES DIGITAIS - CHAVES (SWITCHES)
▸ interrompe a passagem da corrente elétrica
▸ liga/desliga o circuito
▸ sensor de toque
61. LINGUAGEM
▸ Leitura digital:
▸ digitalRead() – le um pino de entrada
▸ Exemplo:
int chave = 0;
chave = digitalRead(2);
PLATAFORMA ARDUINO - SENSORES
62. LINGUAGEM - ESTRUTURAS CONDICIONAIS
if (condição) {
//comando(s) executado(s) se condição verdadeira;
} else {
//comando(s) executado(s) se condição falsa;
}
int chave = 0;
chave = digitalRead(2);
if (chave == 1) {
digitalWrite(13, 1);
} else {
digitalWrite(13, 0);
}
PLATAFORMA ARDUINO - SENSORES
63. PLATAFORMA ARDUINO - SENSORES
SWITCHES - CIRCUITO
▸ Arduino lê tensões de entrada
digital
▸ 5V = HIGH (1)
▸ 0V = LOW (0)
▸ Um switch poderia conectar
um pino de entrada digital
aos 5V da placa
64. PLATAFORMA ARDUINO - SENSORES
SWITCHES - CIRCUITO
▸ Quantos volts tem no pino de
entrada digital quando o switch
está aberto (não pressionado)?
▸ Um pino só possui 0V se estiver
conectado ao 0V (GND) da
placa. Se não estiver
conectado, seu valor de
entrada "flutua".
65. PLATAFORMA ARDUINO - SENSORES
SWITCHES - CIRCUITO
▸ Solução: conectar o pino ao
GND!
▸ERRADO!!!
ISSO PROVOCA
UM CURTO
CIRCUITO!!!
66. PLATAFORMA ARDUINO - SENSORES
SWITCHES - CIRCUITO
▸ Solução: adicionar um resistor
de pull down!
▸ Esse resistor “puxa" o valor do
pino para 0V quando o switch
está aberto.
▸ O resistor também limita a
corrente evitando curto circuito.
70. PLATAFORMA ARDUINO - ELETRÔNICA
SINAIS ANALÓGICOS E DIGITAIS
▸ sinal com variação
discreta no tempo
(valores pré definidos).
▸ sinal com variação
contínua no tempo
(valores reais).
71. PLATAFORMA ARDUINO - ELETRÔNICA
CONVERSÃO DE SINAIS
▸ O valor analógico é lido em intervalos regulares de tempo
(sampling rate) e convertido em um número digital.
72. PLATAFORMA ARDUINO - ELETRÔNICA
CONVERSÃO DE SINAIS
▸ Uma entrada analógica pode, então, assumir vários valores (não só 0
e 1). A quantidade de valores é a resolução.
73. PLATAFORMA ARDUINO - ELETRÔNICA
CONVERSÃO DE SINAIS
▸ Resolução de 8 bits: 256 valores
▸ Resolução de 16 bits: 65536 valores
74. PLATAFORMA ARDUINO - ELETRÔNICA
COMO FUNCIONA UM RESISTOR VARIÁVEL?
▸ Resistencia fixa entre os terminais laterais do resistor
▸ Terminal central "se move" de um lado para o outro
75. PLATAFORMA ARDUINO - ELETRÔNICA
COMO FUNCIONA UM RESISTOR VARIÁVEL?
▸ No Arduino, o valor da tensão é transformado em um número digital
entre 0 e 1023
81. PLATAFORMA ARDUINO - PROTOCOLOS DE COMUNICAÇÃO
COMUNICAÇÃO SERIAL
▸ O chip ATMega328 do arduino só tem interface serial, não tem USB
▸ A placa do Arduino possui um outro chip para converter serial para USB
▸ Por isso que o Arduino aparece no PC como uma porta serial virtual
▸ Usamos os mesmo cabo USB para enviar dados do arduino pro PC (e vice versa)
via interface serial
82. PLATAFORMA ARDUINO - PROTOCOLOS DE COMUNICAÇÃO
COMUNICAÇÃO SERIAL
▸ O Arduino possui uma biblioteca que implementa comunicação serial
▸ As principais funções são:
▸ Serial.begin(9600);
▸ Serial.print(“String a ser impressa”);
▸ Serial.print(variável);
▸ Serial.println(“Igual ao Serial.print, mas adiciona os
caracteres de nova linha”);
▸ char c = Serial.read(); // retorna 1 byte
83. PLATAFORMA ARDUINO - PROTOCOLOS DE COMUNICAÇÃO
COMUNICAÇÃO SERIAL
▸ LEDs
▸ TX: dados enviados
▸ RX: dados recebidos
84. PLATAFORMA ARDUINO - PROTOCOLOS DE COMUNICAÇÃO
ATIVIDADE PRÁTICA!
▸ Hello Arduino via Serial
▸ Escreva um programa que
envie a seguinte string via
serial, acada 1 egundo:
“Hello Arduino NN!”
sendo NN o numero de
vezes que a string foi
enviada.
86. PLATAFORMA ARDUINO - PROTOCOLOS DE COMUNICAÇÃO
SENSORES ANALÓGICOS - PRÁTICA I
▸ Ler o valor do resistor variável e enviar via Serial.
87. PLATAFORMA ARDUINO - PROTOCOLOS DE COMUNICAÇÃO
EXERCICIO FINAL
▸ Fazer uma escala de LEDs que acendem de acordo com o valor lido do resistor
variável na entrada analógica.
89. PROTOTIPAÇÃO ELETRÔNICA
REFERÊNCIAS
▸ Lista de comandos da linguagem
https://www.arduino.cc/en/Reference/HomePage
▸ Lista de tutoriais
https://www.arduino.cc/en/Tutorial/HomePage
▸ Tom Igoe - Physical Computing
http://www.tigoe.net/pcomp/