Prototipacao para Computacao Fisica

2.814 visualizações

Publicada em

Andre Veloso
Novembro 2010
www.interactionsource.com

Publicada em: Tecnologia, Negócios
0 comentários
4 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.814
No SlideShare
0
A partir de incorporações
0
Número de incorporações
43
Ações
Compartilhamentos
0
Downloads
112
Comentários
0
Gostaram
4
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Prototipacao para Computacao Fisica

  1. 1. Prototipação para Computação Física André Veloso
  2. 2. Interfaces Sistemas Digitais Mundo FísicoInterfaces
  3. 3. Interfaces Clássicas
  4. 4. Novos Paradigmas Populares - Sensores
  5. 5. Várias possibilidades
  6. 6. Aquisição de dados Transdução → Transformação de uma forma de energia em outra Geralmente realizada por sensores eletrônicos – sinais elétricos como resposta a estímulos físicos
  7. 7. Estímulos físicos - Sensores●Som- Microfone Vibracao: Sismógrafo ●Luz - Foto resistor
  8. 8. Estímulos físicos - Sensores ●Força – Acelerômetro ●Pressão – barômetro, sensor de pressão
  9. 9. Estímulos físicos - Sensores ●Velocidade ●Eletricidade - voltímetro ●Distancia – Sonar
  10. 10. Estímulos físicos - Sensores ●Temperatura ●Umidade ●Botões
  11. 11. Estímulos físicos - Sensores ●Cameras (sensores CCDs e CMOS)
  12. 12. Resposta Física - Atuadores ●LEDs e Iluminação em geral ●Alto-falantes
  13. 13. Resposta Física - Atuadores ●Motores ●Relés
  14. 14. Resposta Física - Atuadores ●Chaves Pneumáticas
  15. 15. Prototipação em Hardware - Aquisição de dados e atuação Microcontroladores – pequenos computadores que realizam operações por meio de programas armazenados em sua pequena memoria interna Operam sobre valores de entradas (aquisição) e geram dados de saída (atuação) Utilizam pouca energia e tem tamanho reduzido
  16. 16. Microcontroladores - Integração CPU (4 a 32bits) Conjunto de pinos de entrada e saída de uso geral (GPIO) RAM ROM ou Flash Comunicação Serial
  17. 17. Hardware de aquisição de dados Microcontroladores – forma prática de interfacear sensores e atuadores eletrônicos (mundo físico) com sistemas digitais Leitura de dados e atuação analógicos e digitais
  18. 18. Dados analógicos e digitais Dados eletrônicos analógicos – expressos em níveis contínuos de voltagem. Ex: 0 a 5V registrados na leitura de um sensor de distância Leitura e conversão realizada por ADC Ex: potenciometros, sensores de distância, sonar, pressao
  19. 19. Dados analógicos e digitais Dados digitais – ou Discreto – expressos como “ligado” ou “desligado” Ex: interruptor de luz, chaves, botões liga-desliga
  20. 20. Arduino - www.arduino.cc
  21. 21. Arduino - Benefícios ● Baixo Custo ● Hardware Livre ● Linguagem de Programação simplificada ● Ampla base de usuários ● Capacidade de expansão via shields ● Processador simples, mas poderoso ● Simplicidade de montagem – pinagem bem definida ● Boa documentação ● Facilidade de carregamento de programas
  22. 22. Arduino - Limitações ● Memória Pequena – 14kB utilizáveis ● Clock baixo - 16MHz ● Quantidade Limitada de portas
  23. 23. Arduino - Pinout USB Power
  24. 24. Arduino Nano
  25. 25. Arduino Mini
  26. 26. Arduino LilyPad Video
  27. 27. Arduino como interface de dados
  28. 28. Arduino Bluetooth
  29. 29. Arduino Shields Ethernet Shield e Card Reader
  30. 30. Arduino Shields GSM Shield
  31. 31. Arduino Shields MIDI Shield
  32. 32. Arduino Shields Xbee Shield
  33. 33. Arduino Stand Alone
  34. 34. Interação entre softwares MIDI e OSC
  35. 35. OSC Comunicação entre softwares na mesma máquina ou em maquinas em rede (via TCP-UDP/IP)
  36. 36. Arduino - Programação Linguagem com sintaxe próxima ao C++ e Java Carregamento fácil dos programas IDE simplificada, com códigos de exemplo
  37. 37. Arduino - Programação #define LED_PIN 13 void setup () { pinMode (LED_PIN, OUTPUT); // enable pin 13 for digital output } void loop () { digitalWrite (LED_PIN, HIGH); // turn on the LED delay (1000); // wait one second (1000 milliseconds) digitalWrite (LED_PIN, LOW); // turn off the LED delay (1000); // wait one second }
  38. 38. Prototipação em Software Ambientes simplificados de programação: Processing - www.processing.org ● Derivado do Java ● Sintaxe simples ● Otimizado para criação de aplicações gráficas interativas
  39. 39. Processing - Exemplos Objetivo: ●Bola segue a posição do mouse ●Caso a posição do mouse seja menor do que 400 ●bola desenhada na cor vermelha ●Caso posição do mouse seja maior do que 400 Bola desenhada na cor azul
  40. 40. Processing - Exemplos Pseudo-código: se posição_da_bola for menor do que 400 cor_da_bola = vermelha senão cor_da_bola = azul desenha bola na posição do mouse com cor_da_bola
  41. 41. Processing - Exemplos void setup() { size(800,600); } void draw () { background(0); if ( mouseX < 400 ) { fill(255, 0, 0); } else { fill(0, 0, 255); } ellipse(mouseX, mouseY, 50, 50); }
  42. 42. Prototipação em Software Ambientes simplificados de programação: Pure Data - Programação Dataflow: ●Modela um programa como um grafo direcionado, com o dado movendo-se entre os operadores ●Geralmente utilizado em processamento de sinais ●Programação consiste em caixas pretas com entradas e saídas de sinais
  43. 43. Pure Data - Exemplos Sinewave Amplitude Frequency
  44. 44. Prototipação com Arduino Multímetro Fios Resistores Protoboard
  45. 45. Arduino, Processing e PD – Exemplos Sensor de luz ● Controle de sons por luz
  46. 46. Arduino, Processing e PD – ExemplosSensor de luz ● Controle de sons por luz ●Fluxo de dados Arduino Processing Pure Data Serial OSC Sensor
  47. 47. Arduino e Processing – Exemplos Sensor de distancia – Sonar ●Atuação em projeção via Processing Arduino Processing Serial Sensor
  48. 48. Arduino Video
  49. 49. Outros hardwares de aquisição de dados e atuação
  50. 50. Hardware com sensores embutidos Computação física em dispositivos portáteis
  51. 51. Smartphones X ComputadoresAcelerômetro Giroscópio Câmeras Microfone Sensor de proximidade Sensor de iluminação Sensores Multi-touch Alto-Falantes Tela USB Wi-Fi Bluetooth 3G/GSM Teclado Mouse Camera Alto-Falantes Tela Ethernet Bluetooth Wi-Fi
  52. 52. Acelerômetros Dispositivo que mede aceleração própria – ou seja a aceleração sentida por pessoas e objetos Medida de aceleração por força aplicada Medidas em “Forca-G” - m/s2 1D, 2D e 3D
  53. 53. Acelerômetros
  54. 54. Acelerômetros MMA7260QT 3-Axis Accelerometer ±1.5/2/4/6g
  55. 55. Giroscópios Mecânica do Giroscópio
  56. 56. Acelerometros e Gyros - Wiimote
  57. 57. Acelerometros e Gyros - Wiimote Captura de movimentos a partir de acelerômetro e giroscópio – interface física Comunicação sem fio via Bluetooth Solução integrada de sensores + transmissão de dados Preço Baixo - U$50
  58. 58. Wiimote - Acessórios Wii MotionPlus Wii Remote Plus
  59. 59. Wii MotionPlus Adciona um giroscópio MEMS de 2 eixos ao Wiimote Permite uma melhor captura de movimentos Posição e orientação
  60. 60. Wiimote - Aplicações Reconhecimento de gestos – movimentos físicos
  61. 61. Wiimote Comunicação: Apesar de ser Bluetooth, o Wiimote não se conecta no sistema como dispositivo HID padrão Necessita de aplicativos especiais para a leitura de seus dados Driver Bluetooh especial
  62. 62. Exemplos - Wiimote Conexão Wiimote ao computador ● Pareamento Bluetooth Aquisição de dados em PD ● Visualização dos valores de entrada - DarwinRemote Acelerômetro 3D Wiimote em Processing ● Visualização dos vetores de força Aplicação musical com Wiimote ●Sampler ●Ring modulation, Diff tone, FM spectrum Swepable FM
  63. 63. Exemplo Wiigee Demo GUI ●Implementação Gesture Prototype
  64. 64. Acelerometros e Gyros - Smartphones ●Necessário softwares de aquisição de dados ●Transmissão de dados via OSC/TUIO por Wi-Fi IOS – TouchOSC, MSARemote Android – TouchOSC, andOSC
  65. 65. Multi-touch - Smartphones ●Necessário softwares de aquisição de dados ●Transmissão de dados via OSC/TUIO por Wi-Fi IOS – TouchOSC, MSARemote
  66. 66. Visão computacional ● “Máquinas que enxergam” Teoria por trás de sistemas artificiais que extraem informações de imagens, estáticas ou em sequências (movimento)
  67. 67. Visão computacional - Usos ● Controle (robôs ou veículos autônomos) ● Detecção de eventos (segurança, detecção de faces, detecção de placas) ● Organizar informação (ordenação visual) ● Modelagem de objetos ou ambientes (tomografias, topografias, inspeção industrial) ● Compressão de dados de imagens (Ex: MPEG) ● Interação (Interação homem-máquina – Input de dados)
  68. 68. Visão computacional Popularização se tornou possível com os computadores modernos – alto poder de processamento Operações de processamento e extração de informações de imagens em tempo real são operações de alto uso de processamento (especialmente vídeo)
  69. 69. Visão computacional - Tarefas Reconhecimento: ●Reconhecimento de objetos ●Identificação ●Detecção Análise de movimento Reconstrução 3D de Cena Reconstrução de imagem (principalmente em Vídeo)
  70. 70. Fluxo de Processamento Passos do processamento de imagens ● Aquisição de imagens ● Eliminação de ruido ● Ajustes de intensidade – Contraste, Brilho e operações de correção de histograma ● Eliminação de elementos não desejados ● Extração de características - Detecção de bordas, Blobs, cantos ● Detecção de características – Segmentação – Faces, Gestos, Formas complexas
  71. 71. Imagens Digitais - Captação Estáticas: ● Scanners ● Câmeras fotográficas digitais Em sequência: ● Câmeras de vídeo Domínio de imagens – Ópticas e não ópticas ● Luz visível, infra-vermelho, ultravioleta, eletromagnéticas ● Sensores de profundidade – imagens representam a distancia do objeto ao dispositivo de captação – Ressonância magnética, ultra-som, tomografias
  72. 72. Imagens Digitais - Captação
  73. 73. Visão computacional - Interação Aquisição de imagens: ● Câmeras de 30FPS mínimo ● Webcams – baixo custo e facilidade de modificação
  74. 74. Visão computacional - Interação Aquisição de imagens: ● Espectro de luz visível ou infra-vermelho ● Infra-vermelho – Possibilidade de utilização conjunta de projeções de vídeo
  75. 75. OpenCV ●Desenvolvida pela Intel ●Biblioteca ●Open Source ●Multi-Plataforma ●Altamente otimizada – Boa performance ●Desenvolvida e C e C++ ●Integra-se a: Processing, OpenFrameworks e outros ambientes
  76. 76. OpenCV - Capacidades Funções prontas para: ●Reconhecimento de faces ●Reconhecimento e interpretação de gestos ●Identificação de objetos ●Segmentação e reconhecimento ●Reconstrução 3D Stereo ●Detecção de movimento
  77. 77. ExemploOpenCV e OpenFrameworks ●Teste opencv camera e video CCV ●Mesa Multitoque Reactvision ●Reactable (video) Outros Exemplos: ●Minin Processing
  78. 78. Wiimote e Visão Computacional ●Camera de IR ●Capta até 4 pontos de IR ●Envia via Bluetooth posição XY de cada ponto ●Sistema de visão computacional embutido Video
  79. 79. Visão computacional - Kinect ● Driver Open Source para PC já disponível ● Imagem RGB e de profundidade ● Poderá ser usado em conjunto com bibliotecas de visão computacional (OpenCV)
  80. 80. Visão computacional - Kinect
  81. 81. Referencias Make Magazine - www.makezine.com
  82. 82. Referencias Getting Started with Arduino - O`Reilly
  83. 83. Referencias Physical Computing: Sensing and Controlling the Physical World with Computers
  84. 84. Referencias Processing: A Programming Handbook for Visual Designers and Artists
  85. 85. Referencias Processing: Creative Coding and Computational Art (Foundation)
  86. 86. www.interactionsource.com andre@interactionsource.com www.softwarebending.blogspot.com

×