labs.beatcraft.com
bc9/Software/Android

sensors for bc9

Android 上から bc9 ベースボードの加速度センサー、地磁気センサーを使用する手順を記載します。

必要要件

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) が使用可能にしてある前提です。

手順

glue code のビルドと配置

添付の filebc9-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 起動 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 アプリケーションから各センサーを利用する準備ができました。

アプリケーションのビルドと展開

デモ用のアプリケーションには2種類あります。

加速度センサーデモ用アプリケーション

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つのパターンが出ます。
実機を振るとバックグラウンドが黄色く光ります。
sensor01.png

コンパスデモアプリケーション

android-30days-apps から 21day.apk をダウンロードし、以下のようにしてインストールします。

$ cd ~/
$ export ASBHOST=192.168.0.144
$ adb kill-server
$ adb start-server
$ adb install 21day.apk

正常にインストールできたら android のアプリケーションランチャーから Compass を起動して下さい。
コンパスアプリケーションが起動し北の方角を示します。
compass.png


添付ファイル: filecompass.png 1045件 [詳細] filesensor01.png 1041件 [詳細] filebc9-sensors.tar.gz 1090件 [詳細]

BC::labsへの質問は、bc9-dev @ googlegroups.com までお願い致します。
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2009-12-07 (月) 22:16:41 (2907d)