Your SlideShare is downloading. ×
C.E.S.A.R Introducao ao Arduino
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

C.E.S.A.R Introducao ao Arduino

11,441

Published on

Published in: Education
1 Comment
9 Likes
Statistics
Notes
No Downloads
Views
Total Views
11,441
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
988
Comments
1
Likes
9
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. introdução ao arduino Tiago Barros|tiago.barros@cesar.org.br Inovação é a gente!
  • 2. 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
    • comunicação serial
  • 3. computação física
  • 4. 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
  • 5. 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
  • 6. computação física
    • como vemos os
    • computadores?
  • 7. computação física
    • teclado
    • mouse
    • monitor
    • CPU
    • caixas de som
    como vemos os computadores?
  • 8. computação física
    • como os computadores nos veem?
  • 9. 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?
  • 10. computação física
    • “ mudar a forma que os computadores nos veem mudará como eles interagem conosco”
    Tom Igoe – Physical Computing
  • 11. conceitos básicos de eletricidade
  • 12. 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
  • 13. 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”
  • 14. 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 N S
  • 15. eletricidade – condutores e isolantes isolante – evita a passagem de elétrons condutor – permite o fluxo de elétrons
  • 16. 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
  • 17. eletricidade – corrente elétrica (i) quanto maior a corrente, maior a “quantidade” de elétrons fluxo de elétrons em um condutor
  • 18. eletricidade – tipos de corrente elétrica corrente contínua corrente alternada
  • 19. eletricidade – tipos de corrente elétrica inversão de polaridade no tempo mesma polaridade no tempo (sentido continuo)
  • 20. 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)
  • 21. 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
  • 22. eletricidade – circuito elétrico + – V i R gerador [fonte] condutor [caminho] carga [consumidor]
  • 23.
    • e agora, computação...
  • 24. sistemas computacionais reativos
  • 25. 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.
  • 26. plataforma Arduino
  • 27. 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
  • 28. plataforma arduino - hardware
    • Duemilanove
    mini lilypad boarduino paperduino mega pro
  • 29. 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
  • 30. plataforma arduino – hardware
  • 31. plataforma arduino - instalação
    • driver
    • windows: FTDI Serial USB
    • linux: não precisa instalar nada :-)
    • software
    • é só descompactar e executar
  • 32. plataforma arduino - instalação
    • Selecionando a placa e a porta serial
  • 33. 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
  • 34. plataforma arduino – ciclo de vida escrever compilar enviar para placa verificar execução corrigir erros corrigir erros
  • 35. atuadores
  • 36. plataforma arduino – estrutura do sketch
  • 37. 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
  • 38. 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);
  • 39. 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
  • 40.
    • atividade prática!
  • 41. 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 :-)
  • 42. plataforma arduino – hello arduino
  • 43. Perguntas
  • 44. plataforma arduino – linguagem
    • comandos básicos
      • analogWrite() – escreve um valor analógico no pino
      • analogWrite(num_pino, valor); valor entre 0 e 255
  • 45. 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
  • 46. 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;
  • 47. plataforma arduino – linguagem
      • for
      • for (inicialização; condição; incremento) {
      • //comando(s);
      • }
      • for (int i=0; i <= 255; i++){
      • analogWrite(PWMpin, i);
      • delay(10);
      • }
  • 48.
    • mais prática!
  • 49. eletrônica – protoboard
    • antes disso:
      • Protoboard
  • 50. eletrônica – protoboard
    • jumpers
  • 51.
    • antes disso mais um pouco de eletrônica...
  • 52. 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] filme fio resistência: fixo variável
  • 53. eletrônica – resistores valores expressos em ohms o corpo dos resistores possui um código de cores para identificar o valor
  • 54.
    • agora sim, prática!
  • 55. 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
  • 56. prática
    • circuito
    Figura retirada de http://arduino.cc/
  • 57. prática
    • esquemático
    Figura retirada de http://arduino.cc/
  • 58. prática
    • protoboard
    Figura retirada de http://www.multilogica-shop.com/Aprendendo/Exemplos/Fading
  • 59. 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
  • 60. Perguntas
  • 61. sensores
  • 62. sensores – chave (switch/button)
      • interrompe a passagem da corrente elétrica
      • liga/desliga o circuito
      • sensor de toque
    esquemático
  • 63. plataforma arduino – linguagem
    • Comandos
      • digitalRead() – le um pino de entrada
    • Exemplo:
      • int chave = 0;
      • chave = digitalRead(num_do_pino);
  • 64. plataforma arduino – linguagem
      • if
      • if (variavel == 0) {
      • // faça alguma coisa
      • }
      • if … else
      • if (variavel == 1){
      • // acao A
      • } else {
      • // acao B
      • }
  • 65. 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 um
      • pino, a entrada flutua
      • entre 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)
  • 66.
    • atividade prática!
  • 67. sensores - prática
    • fazer o circuito e o programa para acender o led 13 de acordo com sinal de entrada do pino 2
  • 68. sensores - prática
    • esquemático
    Figura retirada de http://arduino.cc/
  • 69. sensores - prática
    • protoboard
    Figura retirada de http://arduino.cc/
  • 70. sensores - prática
  • 71.
    • atividade prática!
  • 72. sensores - prática
    • chave no pino 2 seleciona a saída do LED – “fade” ou “blink”
  • 73. Perguntas
  • 74.
    • voltando à eletrônica...
  • 75. eletrônica – sinais analógicos e digitais sinal com variação contínua no tempo sinal com variação discreta (valores pré-definidos)
  • 76. eletrônica – conversão de sinais valor é lido em intervalos regulares de tempo e transformado em um número digital
  • 77. eletrônica – conversão de sinais vários valores, não só HIGH e LOW. quantiade de valores é a resolução.
  • 78. eletrônica – conversão de sinais resolução de 8 bits = 256 valores resolução de 16 bits = 65536 valores
  • 79. 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
  • 80.
    • atividade prática!
  • 81. sensores analógicos – prática
    • ler o valor do resistor variável e ligar um LED se esse valor passar de um determinado limite.
  • 82. sensores analógicos – prática
    • esquemático
    Figura retirada de http://arduino.cc/
  • 83. sensores analógicos – prática
    • circuito
    Figura retirada de http://arduino.cc/
  • 84. entrada analógica – prática
  • 85. protocolos de comunicação
  • 86. 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
  • 87. comunicação serial – RS232
    • o arduino possui uma biblioteca que implementa comunicação serial
    • Serial.begin();
    • Serial.print();
    • Serial.read();
  • 88. comunicação serial – RS232
    • Leds
      • TX: dados enviados para o PC
      • RX: dados recebidos do PC
  • 89.
    • atividade prática!
  • 90. comunicação serial - prática “ Hello Arduino” via serial
  • 91. comunicação serial - prática
  • 92. eletrônica – resistores LDR
    • resistor variável sensível à luz
  • 93. 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
  • 94.
    • atividade prática!
  • 95. comunicação serial - prática ler valores do LDR e enviar via serial
  • 96.
    • atividade prática!
  • 97. 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.
  • 98. Perguntas
  • 99. 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
  • 100. sensores sonoros
    • circuito para amplificar o sinal do microfone para o arduino
  • 101. sensores sonoros
    • já temos o circuito pronto!
  • 102.
    • atividade prática!
  • 103. 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).
  • 104. Perguntas
  • 105. 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
  • 106. 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
  • 107.
    • atividade prática!
  • 108. 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
  • 109. 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
  • 110. 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
  • 111. plataforma arduino - linguagem
    • funções
    • tipoRetorno 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;
    • }
  • 112. 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];
  • 113. 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 notes[] = { 'c', 'd', 'e', 'f', 'g', 'a', 'b', 'C' };
    • int tones[] = { 1915, 1700, 1519, 1432, 1275, 1136, 1014, 956 };
  • 114.
    • atividade prática!
  • 115. atuadores sonoros - prática
    • programar o arduino para tocar uma nota musical
    • void playTone(int period, int duration)
    • {
    • for (long i = 0; i < duration * 1000L; i += period * 2)
    • {
    • digitalWrite(speakerPin, HIGH);
    • delayMicroseconds(period);
    • digitalWrite(speakerPin, LOW);
    • delayMicroseconds(period);
    • }
    • }
  • 116.
    • atividade prática!
  • 117. atuadores sonoros - prática
    • tocar uma melodia, baseado na escala de notas abaixo:
    • cdef ff cdcd dd cgfe ee cdef ff
  • 118. Perguntas
  • 119. displays
  • 120. 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
  • 121.
    • atividade prática!
  • 122. displays de LEDs - prática temporizador digital
  • 123. displays de LEDs - prática temporizador digital - protoboard
  • 124. Perguntas
  • 125. prática final de hoje – luzes e sons
    • montar um “dispositivo” interativo que utilize luz e som como entradas e/ou saídas.
  • 126. 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

×