SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline

  Interface tangível é o que possibilita a interação
entre agentes através de um objeto. Exemplos:
mouse, teclado, touchscreen, volante, acelerador e
etc;


  Computação visual é a ciência que estuda a
propriedade da visão de extrair informações de
imagens, através da computação;

 Framework reacTIVision;

  Java Standard Edition 6;
Atualmente em sua versão 1.4 o reacTIVision é um
framework multi-plataforma de computação
visual lançado com licença open-source.

* Foi criado para ser o sensor fundamental da
reacTable, um instrumento musical eletrônico.

* O framework é composto por outros softwares
também licenciados open-source.

        Núcleo reacTIVision: provê os algoritmos de
     reconhecimento de padrão de imagem e também a
    estrutura para que os demais projetos que o compõe
               funcionem de forma modular;


  PortVideo: um framework multi-plataforma de acesso
a câmeras desenvolvido especificamente para atender as
            necessidades do reacTIVision;


    TUIO: um framework que provê um protocolo comum
           e uma API para mesas multi-toque;

        O módulo mais importante;
     
       Capacidade de rastrear objetos;

  Alguns algorítmos de detecção: Amoeba,
        Classic, D-Touch e Finger.
a) amoeba b) classic c) d-touch d) finger

    Responsável pela funcionalidade visual do
                reacTIVision;
            
              Provê API de vídeo;

        É o responsável pela comunicação do
                   reacTIVision;

  Provê API para rastrear os objetos em tempo real;
     
       Possui implementação nas mais comuns
                    tecnologias;
Para construir um cliente reacTIVision usando
                 Java será necessário:


    Fazer o download do reacTIVision (Linux, Windows
                           e OSX)
             
               Imprimir uma folha com fiduciais
      
        Baixar o arquivo jar com a biblioteca de classes
           necessárias a implementação do cliente.

         Todos os itens podem ser obtidos em
          http://reactivision.sourceforge.net/
Conforme dito anteriormente a tecnologia
empregada no exemplo será Java, para tanto você
      deverá criar um projeto no ambiente de
  desenvolvimento que você utiliza e importar a
biblioteca libTUIO.jar que pode ser encontrada no
site do reacTIVision sob o nome TUIO_JAVA.zip,
   o arquivo trás também diversos exemplos de
               utilização do mesmo.
Para implementar uma aplicação que funcione
junto com o reacTIVision você precisará criar um
   listener das mensagens TUIO enviadas pelo
 reacTIVision, a fim de interpretá-las e utiliza-las
como parâmetros de entrada para o seu software.
   Para tanto crie uma classe que implemente a
interface TuioListener, para satisfazer o contrato
 da interface você precisará implementar alguns
  métodos, tais métodos são os responsáveis por
         abstrair as mensagens TUIO em
            objetos/propriedades Java.
Repare que recebemos um TuioObject como
argumento dos métodos implementados, tal objeto
 possui uma série de métodos e propriedades que
 descrevem o estado do objeto. Portanto podemos
  assumir que cada método em analogia seria um
 evento disparado para o seu software através da
  interface e você possui em tempo de execução o
  atual estado do agente que o disparou, o objeto.
O cliente é quem realmente “lê” as mensagens
     enviadas pelo reacTIVision, cria o objeto
 TuioObject e chama o método correto para cada
 determinado “evento”, para tanto devemos criar
 uma nova instância de TuioClient especificando
para seu construtor a porta em que ele deve ouvir,
          a porta padrão TUIO é a 3333.
Após criada a instância do cliente você deverá
 passar uma instância da classe que implementa
       TuioListener que você implementou
anteriormente para o método addTuioListener(..)
Após adicionar a instância da classe você poderá
  chamar connect() de TuioClient e observar o
 resultado a partir dos eventos disparados pela
                    interface.
Durante esta apresentação foi mostrado alguns
  conceitos sobre interfaces tangíveis através da
    computação visual e foi exemplificado a sua
utilização através de uma ferramenta open-source,
  o software criado como exemplo não explorou
  todas as possíveis funcionalidades porém caso
    haja interesse me coloco a disposição. Todo
material incluindo este será disponibilizado no site
                 www.jmotta.com
http://portvideo.sourceforge.net
       http://www.tuio.org
http://reactivision.sourceforge.net/
       http://modin.yuri.at
Espero que tenham gostado.

  Para contato utilizem o e-mail:
      jayrmotta@gmail.com

Mais conteúdo relacionado

Mais procurados

Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Developmentpugpe
 
Singleton - Padrão de Projeto
Singleton - Padrão de ProjetoSingleton - Padrão de Projeto
Singleton - Padrão de ProjetoEduardo Mendes
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...Rogério Moraes de Carvalho
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2PeslPinguim
 
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?tdc-globalcode
 

Mais procurados (8)

Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Development
 
Java
JavaJava
Java
 
Singleton - Padrão de Projeto
Singleton - Padrão de ProjetoSingleton - Padrão de Projeto
Singleton - Padrão de Projeto
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2
 
Introdução ao java Alo Mundo
Introdução ao java Alo MundoIntrodução ao java Alo Mundo
Introdução ao java Alo Mundo
 
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
TDC2016POA | Trilha JavaScript - Porque eu deveria usar TypeScript?
 
Manual robotec
Manual robotecManual robotec
Manual robotec
 

Semelhante a Framework reacTIVision para interface tangível

Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para AndroidJorge Cardoso
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1César Augusto Pessôa
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao androidMessias Batista
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMAlisson Solitto
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaGPrimola
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo OliveiraRonildo Oliveira
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceRicardo Rufino
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker BásicoAndré Justi
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 

Semelhante a Framework reacTIVision para interface tangível (20)

Java Seminar
Java SeminarJava Seminar
Java Seminar
 
Live Source - Brasil
Live Source - BrasilLive Source - Brasil
Live Source - Brasil
 
Introdução à programação para Android
Introdução à programação para AndroidIntrodução à programação para Android
Introdução à programação para Android
 
Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
01 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.101 - Introdução a programação para internet v1.1
01 - Introdução a programação para internet v1.1
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEMMinicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
Minicurso WebAPI .NET CORE - SemanaTI2018 - UNIVEM
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Minicurso Android Ronildo Oliveira
Minicurso Android  Ronildo OliveiraMinicurso Android  Ronildo Oliveira
Minicurso Android Ronildo Oliveira
 
JavaFx - Introdução
JavaFx - IntroduçãoJavaFx - Introdução
JavaFx - Introdução
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
 
Caelum Day In Rio
Caelum Day In RioCaelum Day In Rio
Caelum Day In Rio
 
Minicurso Java
Minicurso JavaMinicurso Java
Minicurso Java
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
Oficina Sesc Android - V1
Oficina Sesc Android - V1Oficina Sesc Android - V1
Oficina Sesc Android - V1
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 

Mais de Campus Party Brasil

Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosCampus Party Brasil
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Campus Party Brasil
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesCampus Party Brasil
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solarCampus Party Brasil
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custoCampus Party Brasil
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresCampus Party Brasil
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXCampus Party Brasil
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreCampus Party Brasil
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito ImpressoCampus Party Brasil
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasCampus Party Brasil
 

Mais de Campus Party Brasil (20)

Wordpress
WordpressWordpress
Wordpress
 
Buracos negros
Buracos negrosBuracos negros
Buracos negros
 
Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivos
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdades
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solar
 
Passeio virtual pelo LHC
Passeio virtual pelo LHCPasseio virtual pelo LHC
Passeio virtual pelo LHC
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custo
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusiva
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectX
 
Blue Via
Blue ViaBlue Via
Blue Via
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusiva
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software Livre
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito Impresso
 
Vida de Programador
Vida de Programador Vida de Programador
Vida de Programador
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendencias
 

Framework reacTIVision para interface tangível

  • 1.
  • 2.  Interface tangível é o que possibilita a interação entre agentes através de um objeto. Exemplos: mouse, teclado, touchscreen, volante, acelerador e etc;  Computação visual é a ciência que estuda a propriedade da visão de extrair informações de imagens, através da computação;
  • 3.  Framework reacTIVision;  Java Standard Edition 6;
  • 4. Atualmente em sua versão 1.4 o reacTIVision é um framework multi-plataforma de computação visual lançado com licença open-source. * Foi criado para ser o sensor fundamental da reacTable, um instrumento musical eletrônico. * O framework é composto por outros softwares também licenciados open-source.
  • 5. Núcleo reacTIVision: provê os algoritmos de reconhecimento de padrão de imagem e também a estrutura para que os demais projetos que o compõe funcionem de forma modular;  PortVideo: um framework multi-plataforma de acesso a câmeras desenvolvido especificamente para atender as necessidades do reacTIVision;  TUIO: um framework que provê um protocolo comum e uma API para mesas multi-toque;
  • 6. O módulo mais importante;  Capacidade de rastrear objetos;  Alguns algorítmos de detecção: Amoeba, Classic, D-Touch e Finger.
  • 7. a) amoeba b) classic c) d-touch d) finger
  • 8. Responsável pela funcionalidade visual do reacTIVision;  Provê API de vídeo;
  • 9. É o responsável pela comunicação do reacTIVision;  Provê API para rastrear os objetos em tempo real;  Possui implementação nas mais comuns tecnologias;
  • 10. Para construir um cliente reacTIVision usando Java será necessário:  Fazer o download do reacTIVision (Linux, Windows e OSX)  Imprimir uma folha com fiduciais  Baixar o arquivo jar com a biblioteca de classes necessárias a implementação do cliente. Todos os itens podem ser obtidos em http://reactivision.sourceforge.net/
  • 11. Conforme dito anteriormente a tecnologia empregada no exemplo será Java, para tanto você deverá criar um projeto no ambiente de desenvolvimento que você utiliza e importar a biblioteca libTUIO.jar que pode ser encontrada no site do reacTIVision sob o nome TUIO_JAVA.zip, o arquivo trás também diversos exemplos de utilização do mesmo.
  • 12. Para implementar uma aplicação que funcione junto com o reacTIVision você precisará criar um listener das mensagens TUIO enviadas pelo reacTIVision, a fim de interpretá-las e utiliza-las como parâmetros de entrada para o seu software. Para tanto crie uma classe que implemente a interface TuioListener, para satisfazer o contrato da interface você precisará implementar alguns métodos, tais métodos são os responsáveis por abstrair as mensagens TUIO em objetos/propriedades Java.
  • 13. Repare que recebemos um TuioObject como argumento dos métodos implementados, tal objeto possui uma série de métodos e propriedades que descrevem o estado do objeto. Portanto podemos assumir que cada método em analogia seria um evento disparado para o seu software através da interface e você possui em tempo de execução o atual estado do agente que o disparou, o objeto.
  • 14. O cliente é quem realmente “lê” as mensagens enviadas pelo reacTIVision, cria o objeto TuioObject e chama o método correto para cada determinado “evento”, para tanto devemos criar uma nova instância de TuioClient especificando para seu construtor a porta em que ele deve ouvir, a porta padrão TUIO é a 3333.
  • 15. Após criada a instância do cliente você deverá passar uma instância da classe que implementa TuioListener que você implementou anteriormente para o método addTuioListener(..) Após adicionar a instância da classe você poderá chamar connect() de TuioClient e observar o resultado a partir dos eventos disparados pela interface.
  • 16. Durante esta apresentação foi mostrado alguns conceitos sobre interfaces tangíveis através da computação visual e foi exemplificado a sua utilização através de uma ferramenta open-source, o software criado como exemplo não explorou todas as possíveis funcionalidades porém caso haja interesse me coloco a disposição. Todo material incluindo este será disponibilizado no site www.jmotta.com
  • 17. http://portvideo.sourceforge.net http://www.tuio.org http://reactivision.sourceforge.net/ http://modin.yuri.at
  • 18. Espero que tenham gostado. Para contato utilizem o e-mail: jayrmotta@gmail.com