Técnicas de Prototipação II - Physical Computing - Aula 03

Preview:

DESCRIPTION

Desenvolvimento de protótipos com arduino

Citation preview

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

Tiago Barros | tiago@tiagobarros.org

2

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

• plataforma arduino• sensores e atuadores sonoros• controlando dispositivos mais potentes• motores DC• comunicação serial• displays

3

relembrando

4

sensores sonoros

• microfones• transformam ondas sonoras em ondas elétricas

• a variação de tensão é bem pequena em um microfone de eletreto

• precisa de circuito para amplificar o sinal e seu valor poder ser lido pelo arduino

5

sensores sonoros

• circuito para amplificar o sinal do microfone para o arduino

6

sensores sonoros

• já temos o circuito pronto!

7

atividade prática!

8

sensores sonoros - prática

• detectar comandos sonoros e acender leds correspondentes

• dica: medir a tensão de saída do circuito para calibrar o microfone (lembrando que a saída “segura” o valor por 0,5 segundo).

9

Perguntas

10

atuadores sonoros

• Buzzer piezoelétrico• formado por cerâmica

piezoelétrica e disco metálico

• ao receber uma tensão o cristal se expande, quando removemos a tensão ele volta

11

atuadores sonoros

• Buzzer piezoelétrico• 2 fios: preto é

negativo e vermelho é positivo

• aplicando uma tensão variável produz vibração que é traduzida em som

12

atividade prática!

13

atuadores sonoros - prática

• programar o arduino para emitir som

• como ligar o buzzer: fio preto no GND e vermelho no pino de saída desejado

• podemos ligar um resistor em série para diminuir o volume

14

atuadores sonoros

• como programar o arduino para tocar uma nota musical?

• uma nota musical é um som em uma determinada frequência

• a frequência de uma nota significa quantas vezes o atuador sonoro vibra em 1 segundo

15

atuadores sonoros

• para fazer o atuador vibrar, escrevemos no pino uma sequência de valores HIGH e LOW, tantas vezes por segundo quanto for a frequência da nota

• o tempo de cada variação HIGH e LOW é chamada de período e é o inverso da frequência

baixa frequência

alta frequência

período

período

1 segundo

16

plataforma arduino - linguagem

• funçõestipoRetorno nome(tipo parametro1, tipo parametro2) { //corpo da fução

return variavel_do_mesmo_tipo_de_retorno; }

Exemplo:

int funcaoSoma(int a, int b) { int resultado = a + b;

return resultado; }

17

plataforma arduino - linguagem

• arrays• conjunto (sequencia) de variáveis do mesmo

tipo• seus valores são acessados através do índice

tipo nome[tamanho] = {lista de valores separados por virgula};

Exemplo:int valores[4] = {100, 200, 300, 400};char vogais [5] = {‘a’, ‘e’, ‘i’, ‘o’, ‘u’};

int num = valores[2];int y = 3;int x = valores[y];char vogal = vogais[y];

18

atuadores sonoros

• como programar o arduino para para tocar uma nota musical?

timeHigh = periodo / 2 = 1 / (2 * frequência)

* nota frequência periodo tempo em nivel alto* c (dó) 261 Hz 3830 1915 * d (ré) 294 Hz 3400 1700 * e (mi) 329 Hz 3038 1519 * f (fá) 349 Hz 2864 1432 * g (sol) 392 Hz 2550 1275 * a (lá) 440 Hz 2272 1136 * b (si) 493 Hz 2028 1014 * C (dó) 523 Hz 1912 956

char names[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' }; int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };

19

atividade prática!

20

atuadores sonoros - prática

• programar o arduino para tocar uma nota musical

void playTone(int tone, int duration) { for (long i = 0; i < duration * 1000L; i += tone * 2) { digitalWrite(speakerPin, HIGH); delayMicroseconds(tone); digitalWrite(speakerPin, LOW); delayMicroseconds(tone); }}

21

atividade prática!

22

atuadores sonoros - prática

• tocar uma melodia, baseado na escala de notas abaixo:

• cdef ff cdcd dd cgfe ee cdef ff

23

Perguntas

24

eletrônica de novo...

25

eletrônica – motores transformam energia elétrica em energia mecânica, e também transformam energia mecânica em energia elétrica

Redução da rotação através de engrenagens ou PWM

Consomem muita corrente quando iniciam, e se forem “travados”

polaridade determina a direção

26

relembrando – 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

27

eletrônica – transistores

dispositivos projetados para amplificar a corrente elétrica

nós vamos utilizá-los como chaves eletrônicas, para ligar e desligar outros dispositivos, que exigem uma maior corrente

28

atividade prática!

29

motores - prática

controlando um motor DC

30

motores - prática

controlando um motor DC - protoboard

31

Perguntas

protocolos de comunicação

33

comunicação serial – RS232

• chip ATMEGA 168 só tem interface serial, não tem USB

• nossa placa arduino possui um chip que converte Serial para USB

• usamos o mesmo cabo USB pra enviar dados pro PC via serial

34

comunicação serial – RS232

• o arduino possui uma biblioteca que implementa comunicação serial

• Serial.begin();

• Serial.print();

• Serial.read();

35

comunicação serial – RS232

• Leds• TX: dados

enviados para o PC

• RX: dados recebidos do PC

36

atividade prática!

37

comunicação serial - prática

“Hello Arduino” via serial

38

comunicação serial - prática

39

atividade prática!

40

comunicação serial - prática

ler valores do LDR e enviar via serial

displays

42

eletrônica – displays de LEDs (7 seg)

conjunto de leds organizados de forma a representar numeros e caracteres

ligando os leds corretos, representamos numeros

catodo comum ou anodo comum

43

atividade prática!

44

displays de LEDs - prática

temporizador digital

45

displays de LEDs - prática

temporizador digital - protoboard

46

Perguntas

47

prática final de hoje – luzes e sons

• montar um “dispositivo” interativo que utilize luz e som como entradas e/ou saídas.