mos
enviar para nosso método criado anteriormente.
Portanto, no método
que interpreta este evento é que devemos fazer uma chamada para o método
ExecutarRegraMaoDireitaAcimaDaCabeca!
A
primeira
alteração
em
nosso
código
é
inserir
a
linha
de
có-
digo
kinect.SkeletonFrameReady += KinectEvent;
no
método
InicializarSensor() entre a inicialização do rastreamento de esqueleto e
a inicialização do sensor. Você pode utilizar o Visual Studio para autogerar o
método que interpreta o evento. A única responsabilidade deste método é abrir o novo quadro que o Kinect está enviando e chamar nosso método de regra, conforme código a seguir.
private void KinectEvent(object sender, SkeletonFrameReadyEventArgs e)
{
using (SkeletonFrame quadroAtual = e.OpenSkeletonFrame())
{
if (quadroAtual != null)
{
ExecutarRegraMaoDireitaAcimaDaCabeca(quadroAtual);
13
2.3. Testando e depurando nossa aplicação
Casa do Código
}
}
}
Você pode notar que no código anterior verificamos se o quadro atual está nulo.
Isso ocorre quando não há informações sobre o novo quadro, ou seja, não há nenhum usuário em frente ao sensor.
Execute sua aplicação e veja o resultado! Agora oficialmente temos a primeira
aplicação utilizando o sensor Kinect e seu rastreamento de esqueleto, não é legal?
Figura 2.2: Aplicação sendo executada
2.3
Testando e depurando nossa aplicação
Você não terá muitas dificuldades em testar esta aplicação, basta posicionar-se em frente ao sensor e levantar o braço até que sua mão direita esteja acima de sua ca-beça, mas sem utilizar a ferramenta certa você pode ter um problema com depura-
ção. Como fazer a depuração da nossa aplicação de forma simples, sem precisar nos levantarmos da cadeira e fazer todos os gestos que gostaríamos de testar a cada novo 14
Casa do Código
Capítulo 2. Primeira aplicação com o sensor
teste?
A resposta para este problema foi instalada em seu computador junto com o SDK
indicado no começo deste livro, ela chama-se Kinect Studio. A aplicação Kinect Studio nos permite gravar ações para executar em um teste, sendo assim, podemos gravar o movimento apenas uma vez e testá-lo quantas vezes for necessário.
Após executar sua aplicação execute o Kinect Studio e note que será exibida uma janela. Esta janela deve conter sua aplicação listada, caso sua aplicação não esteja sendo apresentada, certifique-se de que ela realmente está em execução e pressione o botão Refresh, após ter feito isso a janela mostrada deve se parecer com a figura 2.3.
Figura 2.3: Conectando sua aplicação no Kinect Studio
Pressione o botão Connect e as quatro janelas que estavam ao fundo são mos-
tradas, na figura 2.4 as três janelas inferiores representam as visões do sensor. A janela Color Viewer não está apresentando nenhuma imagem porque não ativamos
a câmera de cores do Kinect em nossa aplicação.
Na janela superior estão os controles com os quais você pode gravar, abrir e executar arquivos com a extensão .xed. Através desta ferramenta você pode dar o play-back de seus testes gravados facilitando (e muito) a depuração e o teste de suas aplicações com o Kinect, não irei mais citar esta ferramenta, mas aconselho fortemente utilizá-la ao decorrer do livro.
15
2.4. Continuando
Casa do Código
Figura 2.4: Kinect Studio
2.4
Continuando
Com isso você já tem uma noção básica sobre o que é o sensor Kinect, qual seu hardware e como desenvolver e testar uma aplicação que utilize seus recursos. A partir desta etapa o livro irá separar as funcionalidades por capítulos intercalando entre a explicação do hardware e do software envolvido em cada uma destas funcionalidades e ao final de tudo iremos construir uma aplicação que agrega diversos conceitos que iremos ver.
16
Capítulo 3
Acelerômetro e Eixo Motorizado
Neste capítulo iremos entender como funciona o acelerômetro do Kinect e quando
podemos nos beneficiar com este recurso. Além disso, também será explicado sobre o campo de visão do sensor e sobre como podemos adaptar o seu foco utilizando
o recurso disponível no SDK para manipulação
do eixo motorizado o que torna
este componente, apesar de relativamente simples, muito importante para quem está pensando em uma aplicação NUI com o Kinect.
3.1
Acelerômetro
Um acelerômetro nada mais é que, como o nome já sugere, um sensor para medir a
aceleração sobre um objeto. O Kinect possui um acelerômetro capaz de fazer medidas nas três dimensões: X, Y e Z. Além disso ele está configurado para suportar um intervalo de 2g, onde g é a força que a gravidade implica sobre o sensor, isso permite que este pequeno sensor consiga informar a sua orientação em relação à gravidade.
Este sensor de aceleração possui uma sensibilidade para temperaturas, o valor de seus eixos pode variar em até três graus positiva ou negativamente. Para compensar 3.1. Acelerômetro
Casa do Código
este desvio é necessário fazer uma comparação entre o eixo Y do acelerômetro e os dados de profundidade.
Ok, mas em que um acelerômetro pode nos ajudar? Bom, esta pergunta pode