técnicas de prototipação ii - physical computing - aula 01

97
técnicas de prototipação II computação física – Aula 01 Tiago Barros | [email protected]

Upload: tiago-barros

Post on 19-May-2015

1.149 views

Category:

Education


6 download

DESCRIPTION

computação física, prototipação, conceitos básicos de eletricidade e eletronica, plataforma arduino.

TRANSCRIPT

Page 1: Técnicas de Prototipação II - Physical Computing - Aula 01

técnicas de prototipação II computação física – Aula 01

Tiago Barros | [email protected]

Page 2: Técnicas de Prototipação II - Physical Computing - Aula 01

2

técnicas de prototipação IIcomputação física – Aula 01

• computação física

• interação• suporte computacional

Page 3: Técnicas de Prototipação II - Physical Computing - Aula 01

3

técnicas de prototipação IIcomputação física – Aula 01

• conceitos básicos de eletricidade

• condutores e isolantes• corrente elétrica• tensão elétrica• resistência• lei de ohm• circuito elétrico

Page 4: Técnicas de Prototipação II - Physical Computing - Aula 01

4

técnicas de prototipação IIcomputação física – Aula 01

• sistemas computacionais• plataforma arduino• conceitos básicos de eletrônica• componentes eletrônicos • sensores e atuadores

Page 5: Técnicas de Prototipação II - Physical Computing - Aula 01

computação física

Page 6: Técnicas de Prototipação II - Physical Computing - Aula 01

6

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

Page 7: Técnicas de Prototipação II - Physical Computing - Aula 01

7

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 suas atividades

• meio para comunicação e interação entre pessoas

Page 8: Técnicas de Prototipação II - Physical Computing - Aula 01

8

computação física - filosofia

em vez de aprender a tecnologia, aprender a usar a tecnologia

como meio…

Page 9: Técnicas de Prototipação II - Physical Computing - Aula 01

9

computação física

como vemos oscomputadores?

Page 10: Técnicas de Prototipação II - Physical Computing - Aula 01

10

computação física

• teclado

• mouse

• monitor

• CPU

• caixas de som

como vemos os computadores?

Page 11: Técnicas de Prototipação II - Physical Computing - Aula 01

11

computação física

como os computadores nos veem?

Page 12: Técnicas de Prototipação II - Physical Computing - Aula 01

12

computação física

• dedos [teclado/mouse]

• olho [monitor]

• duas orelhas [caixas de som]

reflexo das entradas e saídas do computador

como os computadores nos veem?

Page 13: Técnicas de Prototipação II - Physical Computing - Aula 01

13

computação física

“mudar a forma que os computadores nos

veem mudará como eles interagem

conosco”Tom Igoe – Physical Computing

Page 14: Técnicas de Prototipação II - Physical Computing - Aula 01

14

computação física

...através de elementos físicos de interação mais adequados às interfaces humanas

Page 15: Técnicas de Prototipação II - Physical Computing - Aula 01

15

computação física

o que precisamos para isso:

aprender sobre computadores?

aprender a usar computadores?

aprender a usar computação para prototipar interações

Page 16: Técnicas de Prototipação II - Physical Computing - Aula 01

16

Perguntas

Page 17: Técnicas de Prototipação II - Physical Computing - Aula 01

17

mas antes da computação..

.

Page 18: Técnicas de Prototipação II - Physical Computing - Aula 01

conceitos básicos de eletricidade

Page 19: Técnicas de Prototipação II - Physical Computing - Aula 01

19

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

Page 20: Técnicas de Prototipação II - Physical Computing - Aula 01

20

eletricidade

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”

Page 21: Técnicas de Prototipação II - Physical Computing - Aula 01

21

eletricidade

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

Page 22: Técnicas de Prototipação II - Physical Computing - Aula 01

22

eletricidade – condutores e isolantes

isolante – evita a passagem de elétrons

condutor – permite o fluxo de elétrons

Page 23: Técnicas de Prototipação II - Physical Computing - Aula 01

23

eletricidade – diferença de potencial (v)

cargas negativas

quanto maior a tensão, mais “força” teem os elétrons

diferença de potencial ou tensão.

cargas positivas

V

Page 24: Técnicas de Prototipação II - Physical Computing - Aula 01

24

eletricidade – corrente elétrica (i)

quanto maior a corrente, maior a “quantidade” de

elétrons

fluxo de elétrons em um condutor

Page 25: Técnicas de Prototipação II - Physical Computing - Aula 01

25

eletricidade – tipos de corrente elétrica

corrente contínua

corrente alternada

Page 26: Técnicas de Prototipação II - Physical Computing - Aula 01

26

eletricidade – tipos de corrente elétrica

inversão de polaridade no tempo

mesma polaridade no tempo (sentido continuo)

Page 27: Técnicas de Prototipação II - Physical Computing - Aula 01

27

eletricidade – resistência elétrica (r)

propriedade do material condutor em reduzir

a passagem dos elétrons

elétrons “se acumulam e batem” no condutor, “dissipando” sua

energia(gerando calor)

Page 28: Técnicas de Prototipação II - Physical Computing - Aula 01

28

eletricidade – lei de ohm

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

Page 29: Técnicas de Prototipação II - Physical Computing - Aula 01

29

eletricidade – circuito elétrico

+

V

i

Rgerador[fonte]

condutor[caminho]

carga[consumidor]

Page 30: Técnicas de Prototipação II - Physical Computing - Aula 01

30

e agora, computação..

.

Page 31: Técnicas de Prototipação II - Physical Computing - Aula 01

sistemas computacionais reativos

Page 32: Técnicas de Prototipação II - Physical Computing - Aula 01

44

sistemas computacionais reativos

percepção do ambiente, recebendo estímulos atavés de sensores;

e reação aos estímulos, de acordo com o seu comportamento (software), através de atuadores.

Page 33: Técnicas de Prototipação II - Physical Computing - Aula 01

plataforma Arduino

Page 34: Técnicas de Prototipação II - Physical Computing - Aula 01

46

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

Page 35: Técnicas de Prototipação II - Physical Computing - Aula 01

47

plataforma arduino - hardware

Duemilanovemini

lilypad

boarduino

paperduino megapro

Page 36: Técnicas de Prototipação II - Physical Computing - Aula 01

48

plataforma arduino - hardware

• portas• 14 entradas/saídas digitais • 6 entradas analógicas

• memória• RAM: 1K• Flash (programa): 16k – 2k (bootloader)

• velocidade de processamento: 16MHz

Page 37: Técnicas de Prototipação II - Physical Computing - Aula 01

49

plataforma arduino – hardware

Page 38: Técnicas de Prototipação II - Physical Computing - Aula 01

50

plataforma arduino - instalação

• driver windows: FTDI Serial USB linux: não precisa instalar nada :-)

• software é só descompactar e executar

Page 39: Técnicas de Prototipação II - Physical Computing - Aula 01

51

plataforma arduino - instalação

• Selecionando a placa e a porta serial

Page 40: Técnicas de Prototipação II - Physical Computing - Aula 01

52

plataforma arduino – ambiente

área de código

área de status e saída serial

compilar (verif. programa)

parar execução

novo

abrir

salvar

enviar programa para placa

exibir serial

Page 41: Técnicas de Prototipação II - Physical Computing - Aula 01

53

plataforma arduino – ciclo de vida

escrever

compilar

enviar para placa

verificar execução

corrigir erros

corrigir erros

Page 42: Técnicas de Prototipação II - Physical Computing - Aula 01

atuadores

Page 43: Técnicas de Prototipação II - Physical Computing - Aula 01

55

plataforma arduino – estrutura do sketch

Page 44: Técnicas de Prototipação II - Physical Computing - Aula 01

56

plataforma arduino – 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

Page 45: Técnicas de Prototipação II - Physical Computing - Aula 01

57

plataforma arduino – linguagem

• Exemplos

• pinMode(num_do_pino, OUTPUT);

• digitalWrite(num_do_pino, valor); valor é LOW ou HIGH (0 ou 1, 0V ou 5V)

• delay(milisegundos);

Page 46: Técnicas de Prototipação II - Physical Computing - Aula 01

58

plataforma arduino – linguagem

• constantes

LOW | HIGH – indica nível baixo (0V) e alto (5V) nos pinos INPUT | OUTPUT – define se um pino vai ser pino de entrada ou

de saída

Page 47: Técnicas de Prototipação II - Physical Computing - Aula 01

59

atividade prática!

Page 48: Técnicas de Prototipação II - Physical Computing - Aula 01

60

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 :-)

Page 49: Técnicas de Prototipação II - Physical Computing - Aula 01

61

plataforma arduino – hello arduino

Page 50: Técnicas de Prototipação II - Physical Computing - Aula 01

62

Perguntas

Page 51: Técnicas de Prototipação II - Physical Computing - Aula 01

63

plataforma arduino – linguagem

• comandos básicos

• analogWrite() – escreve um valor analógico no pino

• analogWrite(num_pino, valor); valor entre 0 e 255

Page 52: Técnicas de Prototipação II - Physical Computing - Aula 01

64

eletrônica – modulação PWM

a função analogWrite() escreve “pulsos” muito rápidos no pino digital (só funciona nos pinos marcados com PWM).

o valor a ser escrito representa o tempo que o pulso fica em nível alto e varia de 0 a 255.

quanto mais tempo o pulto permanecer em nível alto, maior é a “tensão média” da saída

Page 53: Técnicas de Prototipação II - Physical Computing - Aula 01

65

plataforma arduino - 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;

Page 54: Técnicas de Prototipação II - Physical Computing - Aula 01

66

plataforma arduino – linguagem

• for

for (inicialização; condição; incremento) { //comando(s); }

for (int i=0; i <= 255; i++){ analogWrite(PWMpin, i); delay(10); }

Page 55: Técnicas de Prototipação II - Physical Computing - Aula 01

67

mais prática!

Page 56: Técnicas de Prototipação II - Physical Computing - Aula 01

68

eletrônica – protoboard

• antes disso: • Protoboard

Page 57: Técnicas de Prototipação II - Physical Computing - Aula 01

69

eletrônica – protoboard

• jumpers

Page 58: Técnicas de Prototipação II - Physical Computing - Aula 01

70

antes dissomais um pouco de eletrônica...

Page 59: Técnicas de Prototipação II - Physical Computing - Aula 01

71

eletrônica – resistores

oferecem resistência à passagem da corrente elétrica

transformam energia elétrica em energia térmica[pode ser usado como atuador]

tipos:

carvão [carbono]

filmefio

resistência:

fixovariável

Page 60: Técnicas de Prototipação II - Physical Computing - Aula 01

72

eletrônica – resistores

valores expressos em ohms

o corpo dos resistores possui um código de cores para identificar o valor

Page 61: Técnicas de Prototipação II - Physical Computing - Aula 01

73

agora sim, prática!

Page 62: Técnicas de Prototipação II - Physical Computing - Aula 01

74

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

Page 63: Técnicas de Prototipação II - Physical Computing - Aula 01

75

prática

• circuito

Figura retirada de http://arduino.cc/

Page 64: Técnicas de Prototipação II - Physical Computing - Aula 01

76

prática

• esquemático

Figura retirada de http://arduino.cc/

Page 65: Técnicas de Prototipação II - Physical Computing - Aula 01

77

prática

• protoboard

Figura retirada de http://www.multilogica-shop.com/Aprendendo/Exemplos/Fading

Page 66: Técnicas de Prototipação II - Physical Computing - Aula 01

78

prática

• Mãos à obra!

• 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

Page 67: Técnicas de Prototipação II - Physical Computing - Aula 01

79

Perguntas

Page 68: Técnicas de Prototipação II - Physical Computing - Aula 01

sensores

Page 69: Técnicas de Prototipação II - Physical Computing - Aula 01

81

sensores – chave (switch/button)

• interrompe a passagem da corrente elétrica• liga/desliga o circuito• sensor de toque

esquemático

Page 70: Técnicas de Prototipação II - Physical Computing - Aula 01

82

plataforma arduino – linguagem

• Comandos• digitalRead() – le um pino de entrada

• Exemplo:• int chave = 0;• chave = digitalRead(num_do_pino);

Page 71: Técnicas de Prototipação II - Physical Computing - Aula 01

83

plataforma arduino – linguagem

• ifif (variavel == 0) { // faça alguma coisa }

• if … elseif (variavel == 1){ // acao A } else { // acao B

}

Page 72: Técnicas de Prototipação II - Physical Computing - Aula 01

84

sensores

arduino lê tensões de

entrada (e não valores 0 e 1)

5 volts == HIGH (1)0 volts == LOW (0)

sem conexão em umpino, a entrada flutuaentre 0 e 5 volts (HIGH e LOW) este resistor é necessário

para que o pino seja levado para 0 quando não estiver conectado (chave aberta)

Page 73: Técnicas de Prototipação II - Physical Computing - Aula 01

85

atividade prática!

Page 74: Técnicas de Prototipação II - Physical Computing - Aula 01

86

sensores - prática

• fazer o circuito e o programa para acender o led 13 de acordo com sinal de entrada do pino 2

Page 75: Técnicas de Prototipação II - Physical Computing - Aula 01

87

sensores - prática

• esquemático

Figura retirada de http://arduino.cc/

Page 76: Técnicas de Prototipação II - Physical Computing - Aula 01

88

sensores - prática

• protoboard

Figura retirada de http://arduino.cc/

Page 77: Técnicas de Prototipação II - Physical Computing - Aula 01

89

sensores - prática

Page 78: Técnicas de Prototipação II - Physical Computing - Aula 01

90

atividade prática!

Page 79: Técnicas de Prototipação II - Physical Computing - Aula 01

91

sensores - prática

• chave no pino 2 seleciona a saída do LED – “fade” ou “blink”

Page 80: Técnicas de Prototipação II - Physical Computing - Aula 01

92

Perguntas

Page 81: Técnicas de Prototipação II - Physical Computing - Aula 01

93

voltando à eletrônica...

Page 82: Técnicas de Prototipação II - Physical Computing - Aula 01

94

eletrônica – sinais analógicos e digitais

sinal com variação contínua no tempo

sinal com variação discreta (valores pré-definidos)

Page 83: Técnicas de Prototipação II - Physical Computing - Aula 01

95

eletrônica – conversão de sinais

valor é lido em intervalos regulares de tempo e transformado em um número digital

Page 84: Técnicas de Prototipação II - Physical Computing - Aula 01

96

eletrônica – conversão de sinais

vários valores, não só HIGH e LOW. quantiade de valores é a resolução.

Page 85: Técnicas de Prototipação II - Physical Computing - Aula 01

97

eletrônica – conversão de sinais

resolução de 8 bits = 256 valoresresolução de 16 bits = 65536 valores

Page 86: Técnicas de Prototipação II - Physical Computing - Aula 01

98

eletrônica - resistores

• Como funciona um resistor variável?

• no arduino, o valor da tensão é transformado em um valor digital entre 0 e 1023

Page 87: Técnicas de Prototipação II - Physical Computing - Aula 01

99

atividade prática!

Page 88: Técnicas de Prototipação II - Physical Computing - Aula 01

100

sensores analógicos – prática

• ler o valor do resistor variável e ligar um LED se esse valor passar de um determinado limite.

Page 89: Técnicas de Prototipação II - Physical Computing - Aula 01

101

sensores analógicos – prática

• esquemático

Figura retirada de http://arduino.cc/

Page 90: Técnicas de Prototipação II - Physical Computing - Aula 01

102

sensores analógicos – prática

• circuito

Figura retirada de http://arduino.cc/

Page 91: Técnicas de Prototipação II - Physical Computing - Aula 01

103

entrada analógica – prática

Page 92: Técnicas de Prototipação II - Physical Computing - Aula 01

104

eletrônica – resistores LDR

• resistor variável sensível à luz

Page 93: Técnicas de Prototipação II - Physical Computing - Aula 01

105

eletrônica – resistores LDR

• resistor variável sensível à luz

circuito para arduino

porque o resistor de 1k? - para limitar a corrente se o LDR assumir valores muito baixos

Page 94: Técnicas de Prototipação II - Physical Computing - Aula 01

106

atividade prática!

Page 95: Técnicas de Prototipação II - Physical Computing - Aula 01

107

entrada analógica – prática

• fazer uma “escala de leds” que acendem de acordo com o aumento do valor lido do LDR na entrada analógica.

Page 96: Técnicas de Prototipação II - Physical Computing - Aula 01

108

Perguntas

Page 97: Técnicas de Prototipação II - Physical Computing - Aula 01

109

arduino - referencias

• Lista dos comandos da linguagem em:

http://arduino.cc/en/Reference/HomePage

• Lista dos tutoriais em:

http://www.arduino.cc/en/Tutorial/HomePage