Date post: | 03-Mar-2017 |
Category: |
Education |
Upload: | christopher-cerqueira |
View: | 16 times |
Download: | 0 times |
ARDUINO Curso basAR
Christopher Shneider Cerqueira – [email protected]
Claudio Kirner – [email protected]
https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar
1
Requisitos
• Windows
• basAR – Download:
• https://sites.google.com/site/christophercerqueira/projetos/ear/basar
• http://www.ckirner.com/basar
• Alguns modelos 3D em VRML
• ARDUINO
• Editor de texto simples, como o Bloco de Notas.
2
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Roteiro
• Introdução: Metas • basAR • Criando infraestrutura, estrutura e conteúdo • Criando comunicação com o ARDUINO
– Conceitos: • Tabela de comandos • Envio de comandos • Recepção de comandos • Interrupção
– Comandos – Alterando comandos – Atividade
3
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Introdução
• Criar um cenário de Realidade Aumentada. – Dois pontos de seleção e um ponto de exibição
• Utilizar o software basAR.
• Entender a construção do cenário.
• Entender os conceitos de mudança de estado e mudança de atributos
4
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
basAR
5
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
basAR: Behavioral Authoring System for Augmented Reality
• Meta-ferramenta de autoria de ambientes inteligentes de realidade aumentada .
– Estrutura de comportamento baseada em pontos de ação
– Cross-Reality
• COMPORTAMENTO DINÂMICO entre PONTOS DE AÇÃO
Comportamento
Pontos de ação
Hardware Externo
basAR
6
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• Infraestrutura: especificar a área de trabalho (workspace) da aplicação
• Estrutura: os posicionamentos dos pontos de ação sobre a infraestrutura.
• Contexto: modelos, sons e outros objetos definidos na estrutura.
• Atuação: método de interação com a estrutura.
• Comportamento: regras de interação entre os atuadores e a estrutura.
Aplicação em camadas
7
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Hierarquia de objetos
basAR
Behavior
Base
Actuator
point1 ... pointK
app_pointM1
m1.dat
m1.wrl
...
...
...
Feedback
Feedback
Feedback
Click1.mp3
Error.mp3
Turn real motor ON
...
app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
8
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Hierarquia de arquivos config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
9
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
INFRAESTRUTURA, ESTRUTURA, CONTEÚDO E ATUAÇÃO
Criando
10
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Sistema config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
11
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• Configura:
– a primeira interligação dos objetos;
– modo de exibição da janela;
– objetos padrões.
• Arquivo:
{basAR}/Data/config_basAR
Sistema
12
#config_basAR basAR
WINDOWED VRML wrl/action/ballBlue.dat VRML Wrl/Action/ballGreen.dat VRML Wrl/Action/ballRED.dat VRML Wrl/action/tampa.dat Audio/explosion.wav 0.5 Audio/backTrack.mp3 LOOP 0.3 Audio/bell.wav ONCE 0.5 Data/config_behavior # Rule Machine # Bases 1 Data/config_base1 # Actuators 1 ARTKSM Data/config_transport
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Infraestrutura config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
13
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• correlação entre o mundo real e o mundo virtual
• Definição de base
• Arquivo:
{basAR}/Data/config_base
Infraestrutura
#config_base1 # This file contains the setup for a workspace BASE1 # Single ARToolKit Marker configuration ARTKSM Data/Markers/base.patt 53.0 0.0 0.0 USE_DEFAULT # Workspace Sounds Audio/bell.wav ONCE 0.5 # Visible Sound Audio/explosion.wav 0.5 # Error sound wrl/action/status.dat
14
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Estrutura config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
15
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• Pontos do espaço virtual com esferas de ação, modelos associados e comportamento.
• Localização, orientação e escala dos objetos virtuais.
• Arquivo:
{basAR}/Data/config_base
… Pen # Point Name DEFAULT_IPOINT # Action Model File Data/app_pen # OBJECT Model File 20.0 20.0 0.0 # Translation 0.0 0.0 0.0 # Rotation 1.0 1.0 1.0 # Scale 900.0 # Action radius
…
Estrutura
16
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Exemplo com 3 pontos
…
2
Ponto
DEFAULT_IPOINT
Data/App/app_object
100.0 100.0 25.0
0.0 0.0 0.0
1.0 1.0 1.0
300.0
Arduino
EXTERN_IPOINT
Data/App/app_arduino
100.0 0.0 25.0
0.0 0.0 0.0
1.0 1.0 1.0
0
{basAR}/Data/config_base 17
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Arquivo config_base completo _p1
BASE1 ARTKSM Data/Markers/base.patt 53.0 0.0 0.0 USE_DEFAULT Audio/bell.wav ONCE 0.5 Audio/explosion.wav 0.5 wrl/action/status.dat
2 Ponto DEFAULT_IPOINT Data/App/app_object 100.0 100.0 25.0 0.0 0.0 0.0 1.0 1.0 1.0 300.0
18
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Arquivo config_base completo _p2
Arduino
EXTERN_IPOINT
Data/App/app_arduino
100.0 0.0 25.0
0.0 0.0 0.0
1.0 1.0 1.0
0
19
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Conteúdo config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
20
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• objetos 3D e áudios que são utilizados.
• Arquivos:
{basAR}/Data/App/app_obj
{basAR}/Wrl/quad.dat
{basAR}/Wrl/triang.dat
{basAR}/Wrl/quad.wrl
{basAR}/Wrl/triang.wrl
#app_obj 2 # Number of objects MODEL3D VRML Wrl/quad.dat MODEL3D VRML Wrl/triang.dat
Conteúdo
#quad.dat quad.wrl 0 0 0 0 90 0 0 0 0
21
# triang.dat triang.wrl 0 0 0 0 90 0 0 0 0
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Atuação config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
22
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
• Interação do usuário com o sistema
#config_tranport ARTKSM1 # Single ARToolKit Marker configuration Data/Markers/shovell.patt # Marker 37.0 # Width(mm) 0.0 0.0 # Central USE_DEFAULT # Marker cover VRML wrl/Action/ssd.dat # Symbolic
model # Collision point DEFAULT_IPOINT # Point model 20.0 0.0 0.0 # Translation (x,y,z) (mm) 400.0 # Action radius of the point
Atuação
23
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
COMUNICAÇÃO COM O ARDUINO Criando
24
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comportamento?
• Controle do feedback do sistema ao receber estimulo do usuário.
• Baseado em máquina de estados (grafo de cena).
• Ações Comandos
• Estados Blocos de comandos
25
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Exemplo de estado
• Inicia estado
• Ponto 1 estático, exibe tudo
• Ponto 1 estático, exibe tudo
• Ponto 1 estático, exibe tudo
• Finaliza estado
• Outros comandos vide manual do basAR!
BEGIN_STATE 1
1 STAT BOTH
2 STAT BOTH
3 STAT BOTH
END_STATE
26
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
O que é Comunicação?
• Envio e recepção de dados entre dois ou mais sistemas.
• Protocolo de comunicação.
• Lookup table
27
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Evento de envio
28
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Evento de Recepção
29
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Evento de Interrupção
30
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Lookup Table
• Tabela de tradução de comandos para enviar para o ARDUINO.
• Auxilia na separação de qual comando vai ser enviado para o ARDUINO
31
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Lookup Table
COM4 # ARDUINO COM # ARDUINO LOOKUP TABLE # THE NUMBERS 00-09, and 255 are RESERVED to Configuration and Test. 10-254 # TABLE FORMAT: REQUEST_NUMBER REQUEST_NAME <NEXT_STATE> # CONFIGURATION AND TEST COMMANDS 1 aliveTest 2 aliveAnswer 3 intRequest 4 readRequest 5 readRequestAnswer # USER COMMANDS # DEVICE 1 - Light 10 lightOFF 11 lightON # DEVICE 2 - Button 20 buttonPressed 5
32
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
ARDUINO CODE // start global variables
void setup() {
Serial.begin(9600); // connect to the serial port
}
void loop () {
// read the serial port
val = Serial.read();
// Code to adapt data
switch(val){
case 1: {// CHECK IF ITS aliveTest
Serial.print(2); // send back aliveAnswer
break; }
case 3: {// CHECK IF ITS intRequest
{Serial.print(intNSdata);
break; }
case 4: {// CHECK IF Its readRequest
break; }
default:
break; }
} 33
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comando de envio de mensagens
• Enviar mensagem (Send message)
– ESND
• 1 ESND lightON
34
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comando de recebimento de mensagens
• Receber mensagem (Receive message)
– ESND
• 1 ERCV buttonPressed
35
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Comportamento config_basAR
config_behavior
config_base
config_actuator
app_pointM1
m1.dat
m1.wrl
app_arduino app_pointK
m1.dat
m1.wrl
m2.dat
M2.wrl
36
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Arquivo de Comportamento BEGIN_STATE 1
1 CHGST ONLY_BALL 2
2 ESND lightOFF
END_STATE AFTER 2
BEGIN_STATE 2
1 CHGST ONLY_BALL 1
2 ESND lightON
END_STATE AFTER 2
37
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
RESUMO
38
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Resumo comandos utilizados
–CHGST: [PointID] CHGST [ShowMode] [NextState] <AUDIO> <OVER?>
–ESND: [PointID] ESND [Message]
–ERCV: [PointID] ERCV [Message]
39
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Ajuda online
• Videos exemplificando cada comportamento disponível e os arquivos utilizados neste tutorial estão disponíveis em:
https://sites.google.com/site/christophercerqueira/projetos/ear/basar/cursos
40
basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Clicks Curso basAR
Christopher Shneider Cerqueira – [email protected]
Claudio Kirner – [email protected]
https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar
41