Visão geral do Kinect e do Kinect SDK16/06/2011 - 22:33

Nessa quinta-feira (dia 16) a Microsoft liberou o SDK do Kinect para Windows. Eu acompanhei o evento de lançamento durante o dia e anotei vários pontos interessantes sobre o Kinect (que até então não tinham sido bem explicados) e sobre SDK que apesar de ainda estar na versão beta, ja está incrível!

O Kinect for Windows SDK Beta está disponível para download nesse link – http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx

Para iniciar o desenvolvimento de alguma aplicativo usando o Kinect, é necessário ter o Visual Studio 2010 (pode ser até o Express) e também o Kinect. Não existe ainda um emulador do aparelho. Mas  para quem não quer apenas testar o SDK sem o VS 2010, existem alguns exemplos que vem junto com o pacote.

O Kinect em detalhes

  • Câmera RGB – Uma câmera com  resolução de 640×480 e 30 frames por segundo.
  • Sensor de profundidade 3D  – É a combinação de um projetor (no lado esquerdo) que produz feixes de luz infravermelho e um sensor de profundidade (no lado direito). O sensor calcula a distância de um ponto em particular baseado no reflexo da luz infravermelha produzida pelo projetor.
  • Inclinação motorizada – Permite ajustar a inclinação da câmera para cima ou para baixo em 27 graus. Isso permite que a câmera tenha melhor visão do jogador.
  • Multi-Array Microphone – Quatro microfones sincronizados para parecer como se fosse apenas um microfone no Windows.

O que o Kinect SDK instala no computador

Quando o SDK é instalado em um computador com Windows 7 e o Kinect é plugado via USB, é possível ver os “drivers” do Kinect no Gerenciador de Dispositivos (Device Manager) como está na figura abaixo:

Para quem tem o Visual Studio 2010 no computador, assim que instalado o SDK já é possível adicionar a classe Microsoft.Research.Kinect aos projetos. A Microsoft também recomenda utilizar Code4Fun Kinect Toolkit (http://c4fkinect.codeplex.com).

Câmera RGB

A Câmera RGB trás uma imagem de até 640×480. A câmera suporta até 30 quadros por segundo, mas não fornece dados na forma de streaming. Existe um evento que permite receber 30 imagens a cada segundo e assim o programador pode transformar em um vídeo se quiser.

Sensor de Profundidade

Antes de entrar sobre o que é possível fazer com o sensor de profundidade do Kinect, vamos ver como funciona o sensor.

No lado esquerdo do Kinect existe um projetor de luz infravermelha. Esse projetor projeta feixes de luz em forma de pontos como na foto abaixo:


Obviamente nós não vemos essa luz. O sensor no lado direito calcula a distancia de cada um desses pontos e forma uma imagem com profundidade, como essa que o SDK também permite obter:

Junto com a Câmera RGB também é possível detectar a distância de uma parte específica da imagem pela cor. Ações como detectar a cor da camisa do jogador por exemplo é praticamente simples.

A detecção do corpo é bem interessante. O Kinect detecta partes especificas do corpo como a cabeça, mão direita, mão esquerda, etc. Se um jogador por exemplo simular estar lançando uma flecha, o programador precisa calcular os dados das mãos e da cabeça do jogador para detectar essa ação.

Som

O computador trata o microfone do Kinect como um microfone comum. Tanto que depois que o Kinect SDK é instalado no Windows 7 é possível  no controle de Sons (Painel de Controle -> Sons) como se fosse um microfone comum.

Enfim o Kinect para o computador!

Com o lançamento oficial do SDK o Kinect passa ser mais do que uma ferramenta para jogos. Tanto que os exemplos que a Microsoft lançou até agora, poucos são de jogos. O que será que vem por aí… E você, está pronto para o desafio? ;-)

Programação .NET focada em interfaces gráficas?05/06/2011 - 01:55

Olá eu sou o Samuel Liques e começo a partir de hoje esse humilde blog sobre Programação em .NET focada em interfaces gráficas. Mas o que isso quer dizer???

Programação focada em interface vai além de um layout estático bonitinho feito por um designer. É na verdade tudo que precisa de programação para deixar uma interface mais rica. Um exemplo bem clássico seria os sites RIA (Rich Internet Applications) feitos em Flash, Silverlight ou em HTML5 que vemos por aí. Nesse grupo também entram os jogos eletrônicos, aplicativos para celular, etc.

Site interessante em Silverlight

Hoje em dia também está sendo muito adotado arquiqueturas tais como MVVM e MVC. A parte VIEW nessas arquiqueturas é separado e as vezes, quando se está trabalhando em equipe, um membro ou parte dessa equipe fica focada apenas nessa parte.  É possível também dizer que isso seria programação focada em interface gráfica.

Nesse blog vou focar em Silverlight, WPF, XNA, WP7 e também ASP.NET.  Também em algumas coisas relacionadas a Imagine Cup e comunidades.