curso basar e arduino

41
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

Upload: christopher-cerqueira

Post on 03-Mar-2017

16 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Curso basAR e Arduino

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

Page 2: Curso basAR e Arduino

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/

Page 3: Curso basAR e Arduino

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/

Page 4: Curso basAR e Arduino

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/

Page 5: Curso basAR e Arduino

basAR

5

basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 6: Curso basAR e Arduino

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/

Page 7: Curso basAR e Arduino

• 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/

Page 8: Curso basAR e Arduino

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/

Page 9: Curso basAR e Arduino

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/

Page 10: Curso basAR e Arduino

INFRAESTRUTURA, ESTRUTURA, CONTEÚDO E ATUAÇÃO

Criando

10

basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 11: Curso basAR e Arduino

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/

Page 12: Curso basAR e Arduino

• 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/

Page 13: Curso basAR e Arduino

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/

Page 14: Curso basAR e Arduino

• 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/

Page 15: Curso basAR e Arduino

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/

Page 16: Curso basAR e Arduino

• 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/

Page 17: Curso basAR e Arduino

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/

Page 18: Curso basAR e Arduino

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/

Page 19: Curso basAR e Arduino

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/

Page 20: Curso basAR e Arduino

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/

Page 21: Curso basAR e Arduino

• 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/

Page 22: Curso basAR e Arduino

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/

Page 23: Curso basAR e Arduino

• 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/

Page 24: Curso basAR e Arduino

COMUNICAÇÃO COM O ARDUINO Criando

24

basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 25: Curso basAR e Arduino

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/

Page 26: Curso basAR e Arduino

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/

Page 27: Curso basAR e Arduino

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/

Page 28: Curso basAR e Arduino

Evento de envio

28

basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 29: Curso basAR e Arduino

Evento de Recepção

29

basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 30: Curso basAR e Arduino

Evento de Interrupção

30

basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 31: Curso basAR e Arduino

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/

Page 32: Curso basAR e Arduino

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/

Page 33: Curso basAR e Arduino

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/

Page 34: Curso basAR e Arduino

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/

Page 35: Curso basAR e Arduino

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/

Page 36: Curso basAR e Arduino

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/

Page 37: Curso basAR e Arduino

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/

Page 38: Curso basAR e Arduino

RESUMO

38

basAR: ARDUINO sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 39: Curso basAR e Arduino

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/

Page 40: Curso basAR e Arduino

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/

Page 41: Curso basAR e Arduino

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