• Nenhum resultado encontrado

4.5 Action Controller Module

4.7.2 TTAir Button

Precursor da ideia do Gui Module, descrito na Seção 4.3.2, este exemplo tinha como fina- lidade apresentar uma biblioteca que simulava botões virtuais em tela [122, 123]. Basicamente eram utilizadas três imagens e a depender do estado dos botões (inicial, selecionado ou clicado) estas imagens eram sobrepostas, dando a impressão visual para o usuário que o botão estava sendo clicado ou selecionado, conforme sua interação (Figura 4.20).

A biblioteca utilizava o Presentation Module, com instâncias das classes LayerRGB, Laye- rImagee LayerSkeletonBone para exibir, respectivamente, o sensor RGB do Kinect, as imagens desejadas, e capturar as coordenadas da mão do usuário. Além disso, reconhecedores da po- sição da mão do usuário foram implementados. Estes reconhecedores eram responsáveis por detectar se a mão do usuário está dentro da área do botão e detectar se o usuário clicou no botão.

1 p u b l i c c l a s s A c t i o n _ B u t t o n _ O k _ S e l e c t e d e x t e n d s A A c t i o n B u t t o n {

2 @ O v e r r i d e p u b l i c v o i d r u n ( ) {

3 S y s t e m . o u t . p r i n t l n ( " B o t ã o OK S e l e c i o n a d o ! " ) ;

4 }

5 }

Código-Fonte 4.11. Trecho de código exemplificando a implementação de uma ação

1 / / I n s t a n c i a n d o a A c t i o n e o b o t ã o OK 2 A c t i o n _ B u t t o n _ O k _ S e l e c t e d a c t = new A c t i o n _ B u t t o n _ O k _ S e l e c t e d ( ) ; 3 T T A i r B u t t o n ok = new T T A i r B u t t o n ( ) ; 4 ok . s e t T i t l e ( "OK" ) ; 5 / / A d i c i o n a n d o a a ç ã o a c t ao e s t a d o SELECTED do b o t ã o . 6 ok . a d d A c t i o n ( E S t a t e . SELECTED , a c t ) ; 7 ok . s e t L o c a t i o n ( 5 0 , 1 0 0 ) ; 8 ok . s e t S i z e ( 2 5 0 , 3 0 0 ) ;

9 / / I n s t a n c i a n d o o p a i n e l v i s u a l e a d i c i o n a n d o o b o t ã o 10 T T A i r L a y e r P a n e l msp = new T T A i r L a y e r P a n e l ( ) ; 11 msp . a d d L a y e r ( ok ) ; 12 ALayer r g b = n u l l; 13 Try { 14 r g b = new LayerRGB ( ) ; 15 }c a t c h ( E x c e p t i o n e ) { 16 S y s t e m . o u t . p r i n t l n ( " E r r o ao a d i c i o n a r o s e n s o r RGB do k i n e c t : " + e . g e t M e s s a g e ( ) ; ) ; 17 } 18 / / A d i c i o n a n d o a imagem do s e n s o r RGB do K i n e c t ao p a i n e l e i n s t a n c i a n d o o J F r a m e 19 msp . a d d L a y e r ( r g b ) ; 20 J F r a m e f r a m e = new J F r a m e ( ) ; 21 f r a m e . s e t S i z e ( 6 4 0 , 4 8 0 ) ; 22 / / A d i c i o n a n d o o p a i n e l e a imagem RGB ao f r a m e 23 f r a m e . add ( msp ) ; 24 f r a m e . s e t V i s i b l e (t r u e) ;

Código-Fonte 4.12. Trecho de código do TTAirButton para criar e associar uma ação ao estado do botão.

Eventos de comunicação são enviados indicando se houve mudança para o estado inicial, selecionado ou clicado. Na mudança de estado, caso exista alguma ação associada, ela será executada. Todas as ações devem implementar o método da classe abstrata AActionButton. Os Trechos de Códigos, 4.11 e 4.12, mostram exemplos de como criar uma nova ação a ser executada pela biblioteca e como instanciar e associar uma ação ao botão.

A Figura 4.20 ilustra o resultado final da aplicação em execução. Nela, é exibida a imagem do botão sobreposta à imagem do sensor RGB. No exemplo, é possível observar o usuário in- teragindo com o botão virtual em três momentos. A imagem da esquerda mostra o momento em que o usuário visualiza o botão. A do meio mostra o usuário posicionando sua mão direita dentro do botão virtual (esta interação faz com que a biblioteca mude a imagem exibida para dar a impressão que o botão foi selecionado). Por fim, à direita, o usuário estende seu braço, reduzindo a distância entre sua mão e o ponto de referência (coordenadas do pescoço do usuá- rio), disparando o evento de clique. Na sequência, a biblioteca altera a imagem do botão para dar a sensação de que foi selecionado.

Figura 4.20. Execução da aplicação utilizando a biblioteca TTAirButton. Na esquerda o botão é exibido em seu estado inicial. No meio, o botão foi selecionado. Na direita, o botão é clicado.

4.8 CONSIDERAÇÕES FINAIS

Este capítulo apresenta toda a arquitetura do framework TTAir-Touch The Air, que consolida as Fases 6 e 7, além de concretizar os conceitos da metodologia 3W1H, descrita no Capítulo 3. Como por exemplo, os conceitos relacionados com a associação das interações com as reações, os reconhecedores de interações, as regras de comportamento do ambiente, os contextos e suas transições.

A arquitetura do TTAir apresentada é dividida em camadas (Acesso a Dados, Processa- mento e Ação), extraídas a partir da observação dos trabalhos pesquisados no Capítulo2. No que diz respeito ao reuso e padronização, mostra maneiras de resolver e padronizar as tarefas comumente executadas por desenvolvedores desta área. Exemplifica como reutilizar as imple- mentações das reações (Actions) e dos reconhecedores de interações (Regognizers). Permite a troca de experiências entre desenvolvedores que utilizem o TTAir como base.

No tocante à associação e configuração de todo o comportamento do ambiente, são apresen- tadas funcionalidades que permitem a mudança das associações interação/reação, dos contextos e das transições entre os contextos. Estas funcionalidades e todas as anotações do comporta- mento desejado para o ambiente, estão descritas em arquivo XML. O TTAir possibilita a leitura e reconfiguração dos objetos em memória, através desse arquivo XML, em tempo de execu- ção. Somado a isso, é possível monitorar todo o acontecimento na execução do ambiente por meio dos arquivos de LOG. Este fato permite que o desenvolvedor experimente diversas confi- gurações de ambiente e acompanhe o real acontecimento da sua execução. Para efetuar testes rápidos e prototipação de modificação das cadeias de comportamento do ambiente, é disponi- bilizada uma IDE Web. Esta IDE Web (Anexo A), permite a configuração, alteração de todo o XML de comportamento de forma gráfica e mais intuitiva para o projetista.

Referente às formas de apresentação/visualização das informações, são apresentadas di- versas camadas de abstração e Widgets que deixam transparente para o desenvolvedor toda a complexidade de montagens e exibição em tela. O TTAir permite a sobreposição das camadas de visualização e a navegação entre tais camadas, podendo deixá-las invisíveis, configurar o tempo em que está visível ou até trocar a ordem da pilha de sobreposição, por exemplo.

A parte da camada de acesso é apresentada como uma abstração dos dispositivos, sensores e banco de dados, pois este capítulo exemplifica maneiras de acessar sensores diferentes e dis- positivos distintos, utilizando poucas linhas de código. Caso sejam utilizadas as camadas de visualização, disponíveis no módulo de apresentação, o acesso aos sensores é 100% transpa- rente para o desenvolvedor.

Para avaliar a aplicabilidade do framework TTAir, foi realizado um experimento com alunos com faixa etária entre 15 e 17 anos, dos cursos integrados na área de informática e de auto- mação do Instituto Federal de Sergipe. O experimento foi iniciado com uma explanação geral da arquitetura do TTAir e de exemplos simples de uso. Em seguida, foi solicitado aos alunos o desenvolvimento de aplicações a partir dos recursos oferecidos pelo framework. Todo o de-

senvolvimento foi acompanhado pelos autores do TTAir no laboratório de pesquisa do Instituto Federal de Sergipe. No laboratório, existiam 15 computadores com 4Gb de memória, todos equipados com o Kinect XBox, da Microsoft.

Após o experimento, alguns resultados se demonstraram interessantes: (i) Os alunos mostraram- se bastante motivados com a tarefa, gerando aplicações, num intervalo de até 20 horas (em 5 aulas com duração de 4 horas por dia), no laboratório de pesquisa5; (ii) Existem fortes indí- cios de que os recursos oferecidos pelo framework reduzem o trabalho dos desenvolvedores, tornando mais simples e eficiente a tarefa de construir ambientes virtuais interativos. Uma das aplicações produzidas, a partir desse experimento, foi a TTAir Lamp. Esta aplicação permite que o usuário controle uma lâmpada, clicando em uma imagem virtual. Todo o processo de construção e artefatos produzidos é detalhado no Capítulo 5.

Em suma, questões práticas levantadas no Capítulo 2 - Como guiar a construção de ambien- tes interativos de maneira estruturada e metodológica? e Como aproveitar componentes/técnicas já implementados por outros e aplicar na concepção do ambiente interativo? - são respondidas neste capítulo. Além disso, é colocada em prática a abordagem proposta no Capítulo 3, auto- matizando muitas das etapas relacionadas à implementação, facilitando o reuso de código na concepção e prototipagem de aplicações para ambientes interativos. A avaliação experimental feita a partir de exemplos de uso, descritos no Capítulo 5, permite afirmar que existem fortes indícios de que o framework TTAir facilita o desenvolvimento de aplicações virtuais intera- tivas, assim como reduz a quantidade de linhas de código para se executar tarefas típicas de desenvolvimento destas aplicações.

Por possuir características genéricas em sua arquitetura e concepção, acredita-se que a so- lução apresentada possa ser aplicada em diversas áreas da computação, tais como hand-gesture recognition, human-activity recognition, body biometrics estimation, 3D surface reconstruction e immersive systems, dentre outras. Entretanto, são necessários mais testes para uma afirmação consistente.

Por fim, construir ambientes interativos seguindo a arquitetura e os conceitos propostos pelo frameworkse mostra mais produtivo em termos de tempo e reuso de código, além de possibilitar uma colaboração e troca de experiências com cientistas de áreas distintas que utilizem a mesma arquitetura como base de seus experimentos.

5

Neste capítulo, serão detalhados os estudos de casos envolvendo as principais contribuições desta pesquisa e apresentada uma avaliação prática com profissionais de mercado, a respeito da utilização e aceitação da aborda- gem 3W1H no processo de construção de um estudo de caso de ambiente interativo.

ESTUDOS DE CASO

Neste capítulo, serão detalhados os estudos de casos envolvendo as principais contribuições desta pesquisa: a abordagem 3W1H (Capítulo 3) e o framework TTAir (Capítulo 4). Ao final deste capítulo (Secção 5.5), é apresentada uma avaliação prática com profissionais de mercado a respeito da utilização e aceitação da abordagem 3W1H no processo de construção de um estudo de caso de ambiente interativo.

Os estudos de caso aqui detalhados são:

i) O TTAirTV, um exemplo de TV Interativa cujo objetivo é possibilitar que um usuário controle a televisão com gestos manuais;

ii) O TTAirLamp, que tem como objetivo controlar uma lâmpada através de gestos manuais, simulando um ambiente de automação residencial;

iii) O TTAirHouse, que tem como finalidade auxiliar o aprendizado e motivar alunos e pes- quisadores a aplicarem a abordagem 3W1H proposta e a utilizarem as funcionalidades do framework TTAir;

iv) Ambiente Interativo com Efeitos Multisensoriaisque reúne os conceitos da abordagem 3W1H, utiliza-se do framework TTAir para produzir efeitos sensoriais em conformidade com o padrão MPEG-V.

Todos estes estudos de caso serão descritos do decorrer deste capítulo. Além deles, ou- tros experimentos também foram produzidos e apresentados em congressos satélites e feiras científicas voltadas para alunos do Instituto Federal1.

1Os detalhes, desses e outros estudos de caso podem ser encontrados através do site do grupo de pesquisa

<http://www.touchair.com.br/>

5.1 TTAIRTV: UM EXEMPLO DE TV INTERATIVA

O primeiro estudo de caso corresponde a um cenário real de interação com a TV por gestos, similar aos apresentados pela indústria [124, 125]. Neste ambiente o usuário pode interagir com a TV através de gestos manuais, executando todos os comandos básicos de um controle remoto, mas sem a necessidade de apertar seus botões.

A seguir, serão apresentados todos os artefatos levantados em cada uma das etapas propostas pela abordagem 3W1H e por fim, o resultado final da real implementação e funcionamento deste ambiente.