[[labs.beatcraft.com]]~
[[bc9/Software/Android]]~

#contents

*sensors for bc9 [#e5d43b94]
Android 上から bc9 ベースボードの加速度センサー、地磁気センサー、方位センサーを使用する手順を記載します。~
Android 上から bc9 ベースボードの加速度センサー、地磁気センサーを使用する手順を記載します。~

*必要要件 [#yf1d33e0]
Android 上からセンサーを利用するためには、[[bc9/Software/Android/kernel2.6.29-bc9-r7]] の手順に従って kernel を更新し~
各センサー用の device driver が機能している必要があります。~

この sensors for bc9 の記述は~
・kernel 2.6.29-bc9-r7~
・android-1.5r3 + ALSA + wifi~
の組み合わせでビルド作業と動作確認を行っています。~

ビルドには 2.6.29-bc9-r7 kernel の header が必要になります。~
以下の記述では bc9-android-sdk の kernel source の場所を前提にしています。

android-1.5r3 の source も必要になりますが、android 全体を再ビルドする必要はありません。

また、android-sdk をインストールして PATH が設定してあり、~
adb([[Android Debug Bridge:http://developer.android.com/intl/ja/guide/developing/tools/adb.html]]) が使用可能にしてある前提です。


*手順 [#g88de642]
**glue code のビルドと配置 [#h0544650]
添付の &ref(bc9-sensors.tar.gz); をダウンロードし展開します。~
 $ tar xvfz bc9-sensors.tar.gz
 $ cd bc9-sensors
 $ ls
 gluecode project
glucode/ を ~/android-1.5r3/hardware/libhardware/modules/ にコピーします。
 $ cp -a glucode ~/android-1.5r3/hardware/libhardware/modules/
sensors/ にある Android.mk の LINUX_KERNEL_ROOT の PATH を自分の Linux kernel のルートを指すように書き換えます。
 $ cd ~/android-1.5r3/hardware/libhardware/modules/sensors/
 $ vim Android.mk
 LINUX_KERNEL_ROOT := /home/beat/kernel_work/linux-android-2.6.29-bc9-r7
以下のようにして Android の部分ビルドができる準備をします。
 $ cd ~/android-1.5r3/build/
 $ source envsetup.sh
ビルドします。
 $ cd ~/android-1.5r3/hardware/libhardware/modules/sensors/
 $ mm
android-1.5r3/out/target/product/generic/obj/SHARED_LIBRARIES/sensors.default_intermediates/LINKED/ に~
ライブラリ sensors_default.so が生成されます。~
~
''' 注:センサー類は gps とは異なり、 libhardware 以下の hal モジュールとして実装するようになっています。 '''  ~
''' これは共有ライブラリとして /system/hw/lib 以下に置かれ、はじめて必要になった際に dlopen(2) されます。 ''' ~
''' GPS は libhardware_legacy に置かれ、android のロード時に全て静的にロードされていました。 ''' ~
''' GPS については[[こちら>bc9/Software/Android/gps]]を参照してください。 ''' ~
~
生成されたライブラリを bc9 起動 microSD の android-root/system/hw/lib/ にコピーします。~
microSD の第1パーティション(FAT16)、第2パーティション(EXT3)がそれぞれ作業用PC の /media/disk、/media/disk-1 に ~
マウントされている前提で、~
 $ sudo cp -a android-1.5r3/out/target/product/generic/obj/SHARED_LIBRARIES/sensors.default_intermediates/LINKED/sensors_default.so /media/disk-1/android-root/system/hw/lib/
これで android アプリケーションから各センサーを利用する準備ができました。~

** アプリケーションのビルドと展開 [#qf914430]
デモ用のアプリケーションには2種類あります。~

***加速度センサーデモ用アプリケーション [#h1574919]
bc9-sensors/ の project/ を eclipse で import してビルドすると、project/bin/ に SensorApp.apk が生成されます。~
以下のようにしてビルド作業用 PCから adb 接続し adb install します。~
 $ cd ~/bc9-sensors/project/bin/
 $ export ASBHOST=192.168.0.144
 $ adb kill-server
 $ adb start-server
 $ adb install SensorApp.apk
正常にインストールできたら android のアプリケーションランチャーから BC9-Sensors を起動してください。~
bc9 実機の姿勢によって「縦」「横」「水平」の3つのパターンが出ます。~
実機を振るとバックグラウンドが黄色く光ります。~
&ref(sensor01.png);

***コンパスデモアプリケーション [#oea133df]
[[android-30days-apps:http://code.google.com/p/android-30days-apps/]] から 21day.apk をダウンロードし、以下のようにしてインストールします。~
 $ cd ~/
 $ export ASBHOST=192.168.0.144
 $ adb kill-server
 $ adb start-server
 $ adb install 21day.apk
正常にインストールできたら android のアプリケーションランチャーから Compass を起動して下さい。~
コンパスアプリケーションが起動し北の方角を示します。~
&ref(compass.png);

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS