PROTOTIPAÇÃO ELETRÔNICA
CESAR SCHOOL - MESTRADO EM DESIGN
PROTOTIPAÇÃO ELETRÔNICA
OBJETIVO
▸desenvolver técnicas de prototipação com
sistemas computacionais

PROTOTIPAÇÃO ELETRÔNICA
CONTEÚDO
▸ computação física
▸ conceitos básicos de eletricidade
▸ conceitos básicos de eletrônica
▸ plataforma arduino
▸ sinais analógicos e digitais
▸ sensores e atuadores
PROTOTIPAÇÃO ELETRÔNICA
PERGUNTAS
COMPUTAÇÃO FÍSICA
PROTOTIPAÇÃO ELETRÔNICA
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
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
COMO VEMOS OS
COMPUTADORES?
COMPUTAÇÃO FÍSICA
TECLADO
MOUSE
CPU
MONITOR
CAIXAS DE SOM
interação com o computador
COMO OS COMPUTADORES
NOS VEEM?
COMPUTAÇÃO FÍSICA
DEDOS 

[TECLADO/MOUSE]
OLHO 

[MONITOR]
DUAS ORELHAS 

[CAIXAS DE SOM]
reflexo das entradas e saídas do
computador
“MUDAR A FORMA QUE OS
COMPUTADORES NOS VEEM
MUDARÁ COMO ELES
INTERAGEM CONOSCO”
Tom Igoe – Physical Computing
COMPUTAÇÃO FÍSICA
COMPUTAÇÃO FÍSICA
DÚVIDAS?
PROTOTIPAÇÃO ELETRÔNICA
ANTES DA
COMPUTAÇÃO…
CONCEITOS BÁSICOS DE ELETRICIDADE
PROTOTIPAÇÃO ELETRÔNICA
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


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
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
CONCEITOS BÁSICOS DE ELETRICIDADE
PROTOTIPAÇÃO ELETRÔNICA
isolante – evita a passagem de elétrons
condutor – permite o fluxo de elétrons
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
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
CORRENTE ELÉTRICA (I)
CONCEITOS BÁSICOS DE ELETRICIDADE
corrente contínua
corrente alternada
CORRENTE ELÉTRICA (I)
CONCEITOS BÁSICOS DE ELETRICIDADE
inversão de polaridade no tempo
mesma polaridade no tempo (sentido continuo)
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)
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
CIRCUITO ELÉTRICO
CONCEITOS BÁSICOS DE ELETRICIDADE
+
–
V
i
R
gerador
[fonte]
condutor
[caminho]
carga
[consumidor]
E AGORA, COMPUTAÇÃO…
PLATAFORMA
ARDUINO
PROTOTIPAÇÃO ELETRÔNICA
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
PROTOTIPAÇÃO ELETRÔNICA
PLATAFORMA ARDUINO - HARDWARE
minililypad
boarduino
paperduino mega
pro
UNO
PLATAFORMA ARDUINO
HARDWARE
▸ Portas
▸ 14 entradas/saídas digitais
▸ 6 entradas analógicas
▸ Memória
▸ RAM: 2K
▸ Flash (programa): 32k
▸ Processamento: 16MHz
PROTOTIPAÇÃO ELETRÔNICA
PLATAFORMA ARDUINO - HARDWARE
PROTOTIPAÇÃO ELETRÔNICA
PLATAFORMA ARDUINO - INSTALAÇÃO
▸ Driver:
▸ depende da placa e do SO
▸ IDE:
▸ versão para cada SO
PROTOTIPAÇÃO ELETRÔNICA
PLATAFORMA ARDUINO - INSTALAÇÃO
▸ Selecionando placa e porta serial
PROTOTIPAÇÃO ELETRÔNICA
PLATAFORMA ARDUINO - AMBIENTE
área de código
área de status
compilar
(verif. programa)
Enviar p/ placa
abrir
salvar
exibir serial
Novo
SENSORES E ATUADORES
PLATAFORMA ARDUINO
PLATAFORMA ARDUINO
ESTRUTURA DO SKETCH
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
LINGUAGEM
▸ Exemplos:
▸ pinMode(13, OUTPUT);
▸ digitalWrite(13, HIGH); 

valor é LOW ou HIGH (0 ou 1)
▸ delay(1000);
PLATAFORMA ARDUINO - ATUADORES
ATIVIDADE PRÁTICA!
PLATAFORMA ARDUINO - ATUADORES
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
HELLO ARDUINO!
PLATAFORMA ARDUINO - ATUADORES
DÚVIDAS?
PLATAFORMA ARDUINO - ATUADORES
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
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
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
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
MAIS PRÁTICA!
PLATAFORMA ARDUINO - ATUADORES
PLATAFORMA ARDUINO - ELETRÔNICA
PROTOBOARD
PROTOBOARD
PLATAFORMA ARDUINO - ELETRÔNICA
JUMPERS
PLATAFORMA ARDUINO - ELETRÔNICA
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]
RESISTORES - CÓDIGO DE CORES
PLATAFORMA ARDUINO - ELETRÔNICA
AGORA SIM, PRÁTICA!
PLATAFORMA ARDUINO - ATUADORES
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
PLATAFORMA ARDUINO - ATUADORES
CIRCUITO
Figura retirada de http://arduino.cc/
ESQUEMÁTICO
Figura retirada de http://arduino.cc/
PLATAFORMA ARDUINO - ATUADORES
PROTOBOARD
Figura retirada de http://arduino.cc/
PLATAFORMA ARDUINO - ATUADORES
DÚVIDAS?
PLATAFORMA ARDUINO - ATUADORES
PLATAFORMA ARDUINO - SENSORES
SENSORES DIGITAIS - CHAVES (SWITCHES)
▸ interrompe a passagem da corrente elétrica
▸ liga/desliga o circuito
▸ sensor de toque
LINGUAGEM
▸ Leitura digital:
▸ digitalRead() – le um pino de entrada
▸ Exemplo:
int chave = 0;
chave = digitalRead(2); 

PLATAFORMA ARDUINO - SENSORES
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
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
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".
PLATAFORMA ARDUINO - SENSORES
SWITCHES - CIRCUITO
▸ Solução: conectar o pino ao
GND!
▸ERRADO!!!
ISSO PROVOCA
UM CURTO
CIRCUITO!!!
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.
ATIVIDADE PRÁTICA!
PLATAFORMA ARDUINO - SENSORES
PLATAFORMA ARDUINO - SENSORES
ATIVIDADE PRÁTICA!
▸ fazer o circuito e o programa para acender o LED 13 de acordo com o
sinal de entrada do pino 2.
DÚVIDAS?
PLATAFORMA ARDUINO - SENSORES
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).
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.
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.
PLATAFORMA ARDUINO - ELETRÔNICA
CONVERSÃO DE SINAIS
▸ Resolução de 8 bits: 256 valores
▸ Resolução de 16 bits: 65536 valores
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
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
ATIVIDADE PRÁTICA!
PLATAFORMA ARDUINO - SENSORES
PLATAFORMA ARDUINO - SENSORES
SENSORES ANALÓGICOS - PRÁTICA I
▸ Ler o valor do resistor variável e ligar o LED 13 se esse valor passar
de 512.
PLATAFORMA ARDUINO - SENSORES
SENSORES ANALÓGICOS - PRÁTICA II
▸ Acender o LED no pino 9 gradativamente, de acordo com o valor do
potenciômetro.
DÚVIDAS?
PLATAFORMA ARDUINO - SENSORES
PROTOCOLOS DE COMUNICAÇÃO
PLATAFORMA ARDUINO
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
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
PLATAFORMA ARDUINO - PROTOCOLOS DE COMUNICAÇÃO
COMUNICAÇÃO SERIAL
▸ LEDs
▸ TX: dados enviados
▸ RX: dados recebidos
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.
ATIVIDADE PRÁTICA!
PLATAFORMA ARDUINO - PROTOCOLOS DE COMUNICAÇÃO
PLATAFORMA ARDUINO - PROTOCOLOS DE COMUNICAÇÃO
SENSORES ANALÓGICOS - PRÁTICA I
▸ Ler o valor do resistor variável e enviar via Serial.
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.
DÚVIDAS?
PLATAFORMA ARDUINO - SENSORES
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/
OBRIGADO!
PROTOTIPAÇÃO ELETRÔNICA

CESAR School - Prototipação Eletrônica com Arduino