xbox-360-kinect

A algum tempo fiz um post falando como instalar o ubuntu na pandaboard, agora irei falar sobre o android, além disso também irei ensinar a instalar o kinect no android na panda.

A pandaboard é um kit de desenvolvimento ARM, ideal para desenvolvedores de sistemas embarcados devido a seus vários dispositivos de I/O, que vão desde portas USB a SLOT de expansão LCD, além disso ela conta com o um processador OMAP dual core. Ela tem seu boot através de cartão SD o qual podemos configura-lo com vários sistemas operacionais,algo que ensinamos em nosso post anterior no caso como dar bot com o ubuntu é neste ensinaremos como configurar um cartão com Android.

Criando um cartão de boot Android

Para que um cartão SD de boot na panda e necessário que contenha os arquivos de bootload, a kernel do SO e o próprio So, no caso de Android ainda é necessário um virtualização do cartão sd do dispositivo e um a partição userdata. E algumas situações e necessário gerar todos estes arquivos, mas felizmente a Linaro já nos oferece os arquivos de sua versão Android para download.

Então vamos começar, primeiramente nescessitamos instalar os pacotes da linaro, para isto faça os seguintes comandos:

[code]>$ sudo add-apt-repository ppa:linaro-maintainers/tools[/code]

 

[code]>$ sudo apt-get update[/code]

 

[code]>$ sudo apt-get install linaro-image-tools[/code]

Após isto é necessário fazer download dos arquivos no site da linaro, então vá na nesta pagina e http://releases.linaro.org/ e entre na versão mais novas, na entre nas abas, android, panda (no meu caso pegamos a versão 4.2.2, que estava na aba 13.05, nosso link final foi http://releases.linaro.org/13.05/android/panda) La baixe os seguintes arquivos, boot.tar.bz2, userdata.tar.bz2, system.tar.bz2,  eles contêm respectivamente os arquivos de boot do android, do usuário e do sistema.

Agora precisamos iremos instalar os arquivos no cartão, então coloque o cartão no pc e user o seguinte comando para para verificar aonde ele está:

[code]>$ dmesg[/code]

Ele ira de as saídas de debug de I/O sistema entre esta as dos dados de entrada do cartão, procure por umas saída /dev/<algo> que provavelmente deverá ser /dev/sda/ ou /dev/mmk0, este e o endereço de seu cartão SD.

Agora vamos instalar o ardroid no cartão, va na pasta aonde vc fez download do arquivos e faça o seguinte comando:

[code]>$ linaro-android-media-create –mmc /dev/sdc –dev panda –boot boot.tar.bz2 –system system.tar.bz2 –userdata userdata.tar.bz2[/code]

Você deverá perceber que o sistema ira montar várias novas partições, são as partições criadas para montar o android no cartão.

Agora vamos instalar os dados gráficos do linaro, para isso baixe o install-binaries-4.0.4.sh de permissão total a ele e o execute, com os seguintes comandos:

[code]>$ wget <a href="http://people.linaro.org/~vishalbhoj/install-binaries-4.0.4.sh">http://people.linaro.org/~vishalbhoj/install-binaries-4.0.4.sh</a>[/code]

 

[code]>$ chmod 777 install-binaries-4.0.4.sh[/code]

 

[code]>$ ./install-binaries-4.0.4.sh[/code]

Pronto agora temos o Android configurando no cartão SD, você já pode liga-lo na Panda caso queria, agora vamos ensinar a instalar os pacotes para o kinect nele.

Instando o kinect na Panda

Para o funcionamento do kinect necessitamos de um computador Linux como host, este devera ter os pacotes do OpenNI e o drive do kinect instalado, então inicialmente vamos ensiar a instalar-los.

Primeiros vamos criar uma pasta para trabalhos no home:

[code]>$ $HOME[/code]

 

[code]>$ mkdir work[/code]

La iremos fazer download dos pacotes de OpenNI, e nele faremos a instalação com pacote mais novo co OpenNI com ausilo do git, para isso precisamos de um pacote git especifico então faça:

[code]</pre>
>$apt-get install git ai32-libs
<pre>[/code]

Agora podemoss começar a instalação do OpenNi:

[code]>$ cd work[/code]

 

[code]>$ wget http://dl.google.com/android/ndk/android-ndk-r7c-linux-x86.tar.bz2[/code]

 

[code]>$ tar -jxvf android-ndk-r7c-linux-x86.tar.bz2[/code]

 

[code]>$ cd android-ndk-r7c[/code]

 

[code]>$ export PATH=$PATH:$PWD[/code]

 

[code]>$ cd sources[/code]

 

[code]>$ git clone https://github.com/OpenNI/OpenNI.git[/code]

 

[code]>$ cd OpenNI/Platform/Android/jni[/code]

 

[code]>$ndk-build[/code]

Pronto agora já baixamos e compilamos os OPenNI, está na hora de instalarmos o drive do kinect, ele será instalando no inicio da pasta que criamos para trabalharmos, e sera compiladas com auxilio do OpenNi, isto se dará com os seguintes comandos:

[code]>$ export NDK_MODULE_PATH=$HOME/work/android-ndkr7c/sources/OpenNI/Platform/Android/jni[/code]

 

[code]>$ cd $HOME[/code]

 

[code]>$ cd work[/code]

 

[code]>$git clone https://github.com/ph4m/SensorKinect.git[/code]

 

[code]>$ cd SensorKinect[/code]

 

[code]>$git checkout faf4994fceba82e6fbd3dad16f79e4399be0c184[/code]

 

[code]>$ cd Platform/Android/jni[/code]

 

[code]>$ndk-build[/code]

Pronto nosso computador host já conta dos programas e necessários, agora vamos passar os dados para a arquivos necessários para a panda, eles serão um conjuntos de bibliotecas e alguns arquivos xml, todos estes arquivos já estão contidos no seu computador host após compilação dos OpenNi e do drive do kinect, nestes endereços:

~/work/android-ndk-r7c/sources/OpenNI/Platform/Android/libs/armeabi-v7a/libOpenNI.jni.so
~/work/android-ndk-r7c/sources/OpenNI/Platform/Android/libs/armeabi-v7a/libnimCodecs.so
~/work/android-ndk-r7c/sources/OpenNI/Platform/Android/libs/armeabi-v7a/libnimRecorder.so
~/work/android-ndk-r7c/sources/OpenNI/Platform/Android/libs/armeabi-v7a/libXnFormats.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnCore.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnDDK.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnDeviceFile.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnDeviceSensorV2.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libXnFormats.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libOpenNI.so
~/work/SensorKinect/Platform/Android/libs/armeabi-v7a/libusb.so

No caso de alguns deste arquivos não estarem nos locais indicados ou também para facilitar a procura também podemos cosigui-los pelo seguinte link http://www.hirotakaster.com/download/kinect/bin.tar.gz.

Agora copie todos estes arquivos para a pasta /system/lib, do cartão no qual instalamos o Android, após isto também precisaremos copiar alguns arquivos para a pastas /userdata/ni, do arquivo cartão do android, caso ela exista crie-a (com o comando mkdir) os são:

-GlobalDefaultsKinect.ini

– SamplesConfig.xml

– licenses.xml

-modules.xml

E podem ser conseguidos pelo seguinte link http://www.hirotakaster.com/download/kinect/data.ni.tar.gz;

Pronto, temos o tudo nescessario para rodar o kinect na panda, vamos colocar novamente o cartão nela de ligar-la, porem ainda necessitamos conecta-la com o computador host. Isto pode ser feito pelo adb através de cabo USB-MSUB, porem para conseguirmos utilizar o adb em nosso computador host precisamos da platorma sdk do android instalado nele, podemos ter ela pelo link http://developer.android.com/sdk/index.html ou nos através do arquivos do eclipse.

Após istos vamos configurar o adb para reconher a panda, então conecta-a ao computador pelo cabo USB-MSB, e faça os seguintes comando:

vamos na pasta ~/android-sdks/platform-tools  criar o servidor de coneção com o dispositivo:

[code]>$ adb kill-server[/code]

 

[code]>$ sudo ./adb start-server[/code]

 

[code]>$ adb devices[/code]

Caso este ultimo comando aperece a panda como depositivo podemos fazer entre em contando com ela pelo seguinte comando:

[code]>$ adb shell[/code]

Agora em nossa tela teremos uma shell do android instalando na panda, concte o kinect a ela e vamos entra na pasta “ni” aonde colocar os dados xml, e de o seguinte comando:

[code]>$ Sample-SimpleRead[/code]

Pronto! se tudo tiver dados certo o teremos de saída na tela agora são as saídas do kinect.

Logo deveremos disponibilizar post com uma manipulação destes dados para criação de apks com uso do kinect.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*
*
Website