Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad

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

Ad

técnicas de prototipação II computação física – Aula 01 <ul><li>computação física </li></ul><ul><ul><li>interação </li></u...

Ad

técnicas de prototipação II computação física – Aula 01 <ul><li>conceitos básicos de eletricidade </li></ul><ul><ul><li>co...

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Loading in …3
×

Check these out next

1 of 109 Ad
1 of 109 Ad

More Related Content

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

  1. 1. técnicas de prototipação II computação física – Aula 01 Tiago Barros | [email_address]
  2. 2. técnicas de prototipação II computação física – Aula 01 <ul><li>computação física </li></ul><ul><ul><li>interação </li></ul></ul><ul><ul><li>suporte computacional </li></ul></ul>
  3. 3. técnicas de prototipação II computação física – Aula 01 <ul><li>conceitos básicos de eletricidade </li></ul><ul><ul><li>condutores e isolantes </li></ul></ul><ul><ul><li>corrente elétrica </li></ul></ul><ul><ul><li>tensão elétrica </li></ul></ul><ul><ul><li>resistência </li></ul></ul><ul><ul><li>lei de ohm </li></ul></ul><ul><ul><li>circuito elétrico </li></ul></ul>
  4. 4. técnicas de prototipação II computação física – Aula 01 <ul><li>sistemas computacionais </li></ul><ul><li>plataforma arduino </li></ul><ul><li>conceitos básicos de eletrônica </li></ul><ul><li>componentes eletrônicos </li></ul><ul><li>sensores e atuadores </li></ul>
  5. 5. computação física
  6. 6. computação física <ul><li>uso de computação e eletrônica [sensores e atuadores] na prototipação de objetos físicos para interação com seres humanos </li></ul><ul><li>comportamento implementado por software </li></ul><ul><li>utilização de microcontroladores </li></ul>
  7. 7. computação física <ul><li>o objetivo é interligar o mundo físico com o mundo virtual </li></ul><ul><li>usar a computação e a interação com a tecnologia para o desenvolvimento das suas atividades </li></ul><ul><li>meio para comunicação e interação entre pessoas </li></ul>
  8. 8. computação física - filosofia <ul><li>em vez de aprender a tecnologia, aprender a usar a tecnologia como meio… </li></ul>
  9. 9. computação física <ul><li>como vemos os </li></ul><ul><li>computadores? </li></ul>
  10. 10. computação física <ul><li>teclado </li></ul><ul><li>mouse </li></ul><ul><li>monitor </li></ul><ul><li>CPU </li></ul><ul><li>caixas de som </li></ul>como vemos os computadores?
  11. 11. computação física <ul><li>como os computadores nos veem? </li></ul>
  12. 12. computação física <ul><li>dedos [teclado/mouse] </li></ul><ul><li>olho [monitor] </li></ul><ul><li>duas orelhas [caixas de som] </li></ul>reflexo das entradas e saídas do computador como os computadores nos veem?
  13. 13. computação física <ul><li>“ mudar a forma que os computadores nos veem mudará como eles interagem conosco” </li></ul>Tom Igoe – Physical Computing
  14. 14. computação física <ul><li>...através de elementos físicos de interação mais adequados às interfaces humanas </li></ul>
  15. 15. computação física <ul><li>o que precisamos para isso: </li></ul><ul><li>aprender sobre computadores? </li></ul><ul><li>aprender a usar computadores? </li></ul><ul><li>aprender a usar computação </li></ul><ul><li>para prototipar interações </li></ul>
  16. 16. Perguntas
  17. 17. <ul><li>mas antes da computação... </li></ul>
  18. 18. conceitos básicos de eletricidade
  19. 19. eletricidade <ul><li>eletricidade - interação entre partículas atômicas </li></ul>universo formado de átomos partículas atômicas: prótons: cargas positivas elétrons: cargas negativas
  20. 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”
  21. 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 N S
  22. 22. eletricidade – condutores e isolantes isolante – evita a passagem de elétrons condutor – permite o fluxo de elétrons
  23. 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
  24. 24. eletricidade – corrente elétrica (i) quanto maior a corrente, maior a “quantidade” de elétrons fluxo de elétrons em um condutor
  25. 25. eletricidade – tipos de corrente elétrica corrente contínua corrente alternada
  26. 26. eletricidade – tipos de corrente elétrica inversão de polaridade no tempo mesma polaridade no tempo (sentido continuo)
  27. 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)
  28. 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
  29. 29. eletricidade – circuito elétrico + – V i R gerador [fonte] condutor [caminho] carga [consumidor]
  30. 30. <ul><li>e agora, computação... </li></ul>
  31. 31. conceitos básicos de programação
  32. 32. <ul><li>relembrando... </li></ul>
  33. 33. sistemas computacionais <ul><li>sistemas programáveis (com programas fixos ou não) que realizam algum tipo de computação sobre dados de entrada para produzir um conjunto de dados de saída. </li></ul>tiago barros - 2003
  34. 34. arquitetura (von neumann) unidade de controle unidade de execução memória entrada saída processamento
  35. 35. unidade de execução memoria M1 M2 M3 M4 M5 M6 M7 M8 OP1 OP2 Resultado (R)
  36. 36. experimento 1 – unidade de execução <ul><li>Instruções mov mem -> op op -> mem let literal -> mem sum sub </li></ul>memoria M1 M2 M3 M4 M5 M6 M7 M8 OP1 OP2 Resultado (R)
  37. 37. <ul><li>Construir os seguintes programas e executá-los na máquina computacional exibida 1) M8 = 25 + 37 2) M8 = 49 – 7 – 6 3) M8 = 4 x 5 </li></ul>experimento 1 – unidade de execução
  38. 38. arquitetura (von neumann) unidade de controle unidade de execução memória entrada saída processamento
  39. 39. unidade de controle memoria I1 I2 I3 I4 . . . In PC
  40. 40. experimento 2 – unidade de controle <ul><li>Instruções JNZ JPZ </li></ul>memoria I1 I2 I3 I4 . . . In PC
  41. 41. <ul><li>Construir os seguintes programas e executá-los na máquina computacional, utilizando a unidade de controle 1) 4 x 5 2) 36/6 </li></ul>experimento 2 – unidade de controle
  42. 42. Perguntas
  43. 43. sistemas computacionais reativos
  44. 44. sistemas computacionais reativos <ul><li>percepção do ambiente, recebendo estímulos atavés de sensores; </li></ul><ul><li>e reação aos estímulos, de acordo com o seu comportamento (software), através de atuadores. </li></ul>
  45. 45. plataforma Arduino
  46. 46. plataforma arduino <ul><li>microcontrolador Atmel </li></ul><ul><li>programação usando Wiring (subconjunto de processing, baseado em C/C++) </li></ul><ul><li>open-source: evolução da plataforma através de contribuições dos usuários </li></ul>
  47. 47. plataforma arduino - hardware <ul><li>Duemilanove </li></ul>mini lilypad boarduino paperduino mega pro
  48. 48. plataforma arduino - hardware <ul><li>portas </li></ul><ul><ul><li>14 entradas/saídas digitais </li></ul></ul><ul><ul><li>6 entradas analógicas </li></ul></ul><ul><li>memória </li></ul><ul><ul><li>RAM: 1K </li></ul></ul><ul><ul><li>Flash (programa): 16k – 2k (bootloader) </li></ul></ul><ul><li>velocidade de processamento: 16MHz </li></ul>
  49. 49. plataforma arduino – hardware
  50. 50. plataforma arduino - instalação <ul><li>driver </li></ul><ul><li>windows: FTDI Serial USB </li></ul><ul><li>linux: não precisa instalar nada :-) </li></ul><ul><li>software </li></ul><ul><li>é só descompactar e executar </li></ul>
  51. 51. plataforma arduino - instalação <ul><li>Selecionando a placa e a porta serial </li></ul>
  52. 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
  53. 53. plataforma arduino – ciclo de vida escrever compilar enviar para placa verificar execução corrigir erros corrigir erros
  54. 54. atuadores
  55. 55. plataforma arduino – estrutura do sketch
  56. 56. plataforma arduino – linguagem <ul><li>linguagem baseada em C (mas bem mais fácil) </li></ul><ul><li>comandos básicos </li></ul><ul><ul><li>pinMode() – define um pino com entrada ou saída </li></ul></ul><ul><ul><li>digitalWrite() – liga ou desliga uma saída digital </li></ul></ul><ul><ul><li>delay() – “espera” um determinado tempo </li></ul></ul>
  57. 57. plataforma arduino – linguagem <ul><li>Exemplos </li></ul><ul><ul><li>pinMode(num_do_pino, OUTPUT); </li></ul></ul><ul><ul><li>digitalWrite(num_do_pino, valor); valor é LOW ou HIGH (0 ou 1, 0V ou 5V) </li></ul></ul><ul><ul><li>delay(milisegundos); </li></ul></ul>
  58. 58. plataforma arduino – linguagem <ul><ul><li>constantes </li></ul></ul><ul><ul><li>LOW | HIGH – indica nível baixo (0V) e alto (5V) nos pinos </li></ul></ul><ul><ul><li>INPUT | OUTPUT – define se um pino vai ser pino de entrada ou de saída </li></ul></ul>
  59. 59. <ul><li>atividade prática! </li></ul>
  60. 60. prática <ul><li>fazer o programa hello arduino, que pisca um led </li></ul><ul><li>use o pino 13 de saída digital, a placa já possui um led ligado a ele :-) </li></ul>
  61. 61. plataforma arduino – hello arduino
  62. 62. Perguntas
  63. 63. plataforma arduino – linguagem <ul><li>comandos básicos </li></ul><ul><ul><li>analogWrite() – escreve um valor analógico no pino </li></ul></ul><ul><ul><li>analogWrite(num_pino, valor); valor entre 0 e 255 </li></ul></ul>
  64. 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
  65. 65. plataforma arduino - linguagem <ul><li>variáveis </li></ul><ul><ul><li>Espaço reservado na memória para armazenamento de valores </li></ul></ul><ul><ul><li>Variáveis são declaradas de acordo com o tipo de dado a ser armazenado (int, long, char, etc…) </li></ul></ul><ul><li>tipo nome = valor; </li></ul><ul><li>Exemplo: </li></ul><ul><li>int x = 10; </li></ul><ul><li>int y = 20; </li></ul><ul><li>int resultado; </li></ul><ul><li>char vogal = ‘a’; </li></ul><ul><li>Resultado = x + y; </li></ul>
  66. 66. plataforma arduino – linguagem <ul><ul><li>for </li></ul></ul><ul><ul><li>for (inicialização; condição; incremento) { </li></ul></ul><ul><ul><li>//comando(s); </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>for (int i=0; i <= 255; i++){ </li></ul></ul><ul><ul><li>analogWrite(PWMpin, i); </li></ul></ul><ul><ul><li>delay(10); </li></ul></ul><ul><ul><li>} </li></ul></ul>
  67. 67. <ul><li>mais prática! </li></ul>
  68. 68. eletrônica – protoboard <ul><li>antes disso: </li></ul><ul><ul><li>Protoboard </li></ul></ul>
  69. 69. eletrônica – protoboard <ul><li>jumpers </li></ul>
  70. 70. <ul><li>antes disso mais um pouco de eletrônica... </li></ul>
  71. 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] filme fio resistência: fixo variável
  72. 72. eletrônica – resistores valores expressos em ohms o corpo dos resistores possui um código de cores para identificar o valor
  73. 73. <ul><li>agora sim, prática! </li></ul>
  74. 74. prática <ul><li>modificar o programa hello arduino para acender o led com efeito de “fading” (acender gradativamente) </li></ul><ul><li>dica: use analogWrite() em vez de digitalWrite(), variando os valores escritos, de 0 a 255 </li></ul>
  75. 75. prática <ul><li>circuito </li></ul>Figura retirada de http://arduino.cc/
  76. 76. prática <ul><li>esquemático </li></ul>Figura retirada de http://arduino.cc/
  77. 77. prática <ul><li>protoboard </li></ul>Figura retirada de http://www.multilogica-shop.com/Aprendendo/Exemplos/Fading
  78. 78. prática <ul><li>Mãos à obra! </li></ul><ul><li>modificar o programa hello arduino para acender o led com efeito de “fading” (acender gradativamente) </li></ul><ul><li>dica: use analogWrite() em vez de digitalWrite(), variando os valores escritos, de 0 a 255 </li></ul>
  79. 79. Perguntas
  80. 80. sensores
  81. 81. sensores – chave (switch/button) <ul><ul><li>interrompe a passagem da corrente elétrica </li></ul></ul><ul><ul><li>liga/desliga o circuito </li></ul></ul><ul><ul><li>sensor de toque </li></ul></ul>esquemático
  82. 82. plataforma arduino – linguagem <ul><li>Comandos </li></ul><ul><ul><li>digitalRead() – le um pino de entrada </li></ul></ul><ul><li>Exemplo: </li></ul><ul><ul><li>int chave = 0; </li></ul></ul><ul><ul><li>chave = digitalRead(num_do_pino); </li></ul></ul>
  83. 83. plataforma arduino – linguagem <ul><ul><li>if </li></ul></ul><ul><ul><li>if (variavel == 0) { </li></ul></ul><ul><ul><li>// faça alguma coisa </li></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>if … else </li></ul></ul><ul><ul><li>if (variavel == 1){ </li></ul></ul><ul><ul><li>// acao A </li></ul></ul><ul><ul><li>} else { </li></ul></ul><ul><ul><li>// acao B </li></ul></ul><ul><ul><li>} </li></ul></ul>
  84. 84. sensores <ul><ul><li>arduino lê tensões de </li></ul></ul><ul><ul><li>entrada (e não valores 0 e 1) </li></ul></ul><ul><ul><li>5 volts == HIGH (1) </li></ul></ul><ul><ul><li>0 volts == LOW (0) </li></ul></ul><ul><ul><li>sem conexão em um </li></ul></ul><ul><ul><li>pino, a entrada flutua </li></ul></ul><ul><ul><li>entre 0 e 5 volts </li></ul></ul><ul><ul><li>(HIGH e LOW) </li></ul></ul>este resistor é necessário para que o pino seja levado para 0 quando não estiver conectado (chave aberta)
  85. 85. <ul><li>atividade prática! </li></ul>
  86. 86. sensores - prática <ul><li>fazer o circuito e o programa para acender o led 13 de acordo com sinal de entrada do pino 2 </li></ul>
  87. 87. sensores - prática <ul><li>esquemático </li></ul>Figura retirada de http://arduino.cc/
  88. 88. sensores - prática <ul><li>protoboard </li></ul>Figura retirada de http://arduino.cc/
  89. 89. sensores - prática
  90. 90. <ul><li>atividade prática! </li></ul>
  91. 91. sensores - prática <ul><li>chave no pino 2 seleciona a saída do LED – “fade” ou “blink” </li></ul>
  92. 92. Perguntas
  93. 93. <ul><li>voltando à eletrônica... </li></ul>
  94. 94. eletrônica – sinais analógicos e digitais sinal com variação contínua no tempo sinal com variação discreta (valores pré-definidos)
  95. 95. eletrônica – conversão de sinais valor é lido em intervalos regulares de tempo e transformado em um número digital
  96. 96. eletrônica – conversão de sinais vários valores, não só HIGH e LOW. quantiade de valores é a resolução.
  97. 97. eletrônica – conversão de sinais resolução de 8 bits = 256 valores resolução de 16 bits = 65536 valores
  98. 98. eletrônica - resistores <ul><li>Como funciona um resistor variável? </li></ul><ul><li>no arduino, o valor da tensão é transformado em um valor digital entre 0 e 1023 </li></ul>
  99. 99. <ul><li>atividade prática! </li></ul>
  100. 100. sensores analógicos – prática <ul><li>ler o valor do resistor variável e ligar um LED se esse valor passar de um determinado limite. </li></ul>
  101. 101. sensores analógicos – prática <ul><li>esquemático </li></ul>Figura retirada de http://arduino.cc/
  102. 102. sensores analógicos – prática <ul><li>circuito </li></ul>Figura retirada de http://arduino.cc/
  103. 103. entrada analógica – prática
  104. 104. eletrônica – resistores LDR <ul><li>resistor variável sensível à luz </li></ul>
  105. 105. eletrônica – resistores LDR <ul><li>resistor variável sensível à luz </li></ul><ul><li>circuito para arduino porque o resistor de 1k? </li></ul><ul><li>- para limitar a corrente </li></ul><ul><li>se o LDR assumir valores </li></ul><ul><li>muito baixos </li></ul>
  106. 106. <ul><li>atividade prática! </li></ul>
  107. 107. entrada analógica – prática <ul><li>fazer uma “escala de leds” que acendem de acordo com o aumento do valor lido do LDR na entrada analógica. </li></ul>
  108. 108. Perguntas
  109. 109. arduino - referencias <ul><ul><li>Lista dos comandos da linguagem em: </li></ul></ul><ul><ul><li>http://arduino.cc/en/Reference/HomePage </li></ul></ul><ul><ul><li>Lista dos tutoriais em: </li></ul></ul><ul><ul><li>http://www.arduino.cc/en/Tutorial/HomePage </li></ul></ul>

×