© Casa do Código
Todos os direitos reservados e protegidos pela Lei nº9.610, de 10/02/1998.
Nenhuma parte deste livro poderá ser reproduzida, nem transmitida, sem auto-
rização prévia por escrito da editora, sejam quais forem os meios: fotográficos, eletrônicos, mecânicos, gravação ou quaisquer outros.
Casa do Código
Livros para o programador
Rua Vergueiro, 3185 - 8º andar
04101-300 Vila Mariana São Paulo SP Brasil
Casa do Código
Sumário
Sumário
1
Introdução à Interfaces Naturais
1
1.1
Apresentando o Kinect . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
1.2
O que você encontrará neste livro . . . . . . . . . . . . . . . . . . . . .
5
1.3
Antes de começar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2
Primeira aplicação com o sensor
7
2.1
Criando o projeto AuxiliarKinect . . . . . . . . . . . . . . . . . . . . .
9
2.2
Criando a regra de nossa aplicação . . . . . . . . . . . . . . . . . . . .
11
2.3
Testando e depurando nossa aplicação . . . . . . . . . . . . . . . . . .
14
2.4
Continuando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
3
Acelerômetro e Eixo Motorizado
17
3.1
Acelerômetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
3.2
Eixo Motorizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
4
Fluxo de Cores
27
4.1
Formatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2
Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
4.3
Refatoração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
5
Fluxo de Profundidade
49
5.1
Formatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.2
Entendendo um pouco mais sobre a profundidade . . . . . . . . . . . 50
5.3
Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
i
Sumário
Casa do Código
6
Fluxo de Esqueleto do Usuário
63
6.1
Esqueleto do Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.2
Desenhando o Esqueleto do Usuário . . . . . . . . . . . . . . . . . . . 66
7
Rastreando e Identificando Movimentos
83
7.1
Iniciando a Estrutura Base para Detectar Movimentos . . . . . . . . . 84
7.2
Utilizando Poses em Nossa Aplicação . . . . . . . . . . . . . . . . . . . 89
7.3
Finalizando a Estrutura Base para Detectar Movimentos . . . . . . . . 104
7.4
Utilizando Gestos em Nossa Aplicação . . . . . . . . . . . . . . . . . . 116
8
Interagindo com a aplicação através do KinectInteractions
119
8.1
Principais Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.2
Melhorando Nossa Aplicação com os Controles do KinectInteractions 121
8.3
Utilizando o Fluxo de Interação . . . . . . . . . . . . . . . . . . . . . . 127
9
Utilizando os Microfones do Sensor
143
9.1
Inicializando a Fonte de Áudio e Detectando a Direção do Som . . . 144
9.2
Detectando Comandos de voz . . . . . . . . . . . . . . . . . . . . . . . 149
9.3
Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
ii
Capítulo 1
Introdução à Interfaces Naturais
Formas inovadoras de interação com o usuário têm sido propostas por interfaces focadas ao paradigma de interface natural ao longo dos anos. Os softwares em diversas áreas não devem exigir que o usuário tenha grande conhecimento em computação
para usá-lo, devem sempre buscar por simplicidade e facilidade.
A primeira interface com o usuário a aparecer foi a CLI (Command Line Inter-
face) que utiliza comandos de entrada textuais específicas para desempenhar funções em um aplicativo, algo
que exigia uma grande curva de aprendizado. Algum tempo
depois surgiu a famosa GUI (Graphical User Interface) que utiliza janelas gráficas, mouse, botões e diversos outros componentes visuais, arrisco dizer que graças à GUI os computadores conseguiram atingir tantas pessoas e se popularizar tão rápido.
Hoje em dia este conceito é o mais utilizado em sistemas operacionais e aplicações.
Devido à quantidade de usuários e demanda por aplicações cada vez mais intui-
tivas e simples surgiu o conceito de NUI (Natural User Interface) ou simplesmente interfaces naturais. Este tipo de interface foca em utilizar uma linguagem natural para a interação humana com o aplicativo, como gestos, poses e comandos de voz.
1.1. Apresentando o Kinect
Casa do Código
1.1
Apresentando o Kinect
Como proposta de interface natural inicialmente focada para a área de jogos, a empresa Microsoft em parceria com a empresa israelita PrimeSense construiu o sensor de movimentos que hoje é chamado de Kinect. O hardware do Kinect teve boa parte herdado pelo hardware do PrimeSense. Na figura 1.1 podemos visualizar o irmão
mais velho do Kinect.
Figura 1.1: Sensor da PrimeSense
O Kinect certamente causou uma revolução na área de interações com jogos,
pois a partir de agora, não é mais necessário utilizar um controle: o sensor capta movimentos e comandos de voz do usuário, abrindo um leque de possibilidades totalmente novo, utilizando a linguagem natural para a interação com os jogos.