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
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. 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. 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. 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. Dados analógicos e digitais
Dados digitais – ou Discreto – expressos como “ligado”
ou “desligado”
Ex: interruptor de luz, chaves, botões liga-desliga
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. Arduino - Limitações
● Memória Pequena – 14kB utilizáveis
● Clock baixo - 16MHz
● Quantidade Limitada de portas
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. 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. 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. 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. 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
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. Pure Data - Exemplos
Sinewave
Amplitude
Frequency
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
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
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. 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
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
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. 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. 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. 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. 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. 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
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. 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. 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. 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
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. 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)