Wiiリモコンで操作できるプレゼン・マシンの製作(2) ―― Wiiリモコンを動作させるためのミドルウェアを組み込む

渡邊 賢二


●ソース・ファイルの動的生成対応

 wminputでは,action_enum.cというソース・ファイルをaction_enum.txtとawkスクリプト・ファイルaction_enum.awkから生成しています(図3). Androidのビルド・システムでは,Android.mkのLOCAL_SRC_FILESに全てのソース・ファイルを指定しなければならないため,通常は動的にソース・ファイルを生成することができませんが,あるテクニックを使うとこれが可能となります.

 まず,ダミーのソース・ファイルを新規で用意し,動的に生成するソース・ファイルを「インクルード」指定します(図3の①).Android.mkのLOCAL_SRC_FLESにはダミーのソース・ファイルを指定します(図3の②).さらにAndroid.mkには動的にソース・ファイルを生成する処理を記述します(図3の③).これと同じような対処がWebkitなどで行われています.
 

図3 ソース・ファイルの動的生成対応の概要

 この修正はwminputのaction_enum.c,およびAndroid.mkで行っています.詳細はパッチ・ファイルを参照してください.


●config.hの準備

 Androidのビルド・システムはautoconf未対応のため,あらかじめconfig.hを用意する必要があります.以下にconfig.hを示します.



 


●wminputサービスの登録と起動処理追加

 Androidでは,プロセスやデーモンをサービスとして登録する必要があります.これに対応するため,以下のようにinit.rcにwminputサービスの登録処理と起動処理を追加します.


 


●inputデバイスのパーミッション変更

 wminptが生成する仮想inputデバイスは所有者のUID(Ubiquitous ID;個体識別情報)がrootとなるため,UIDがsystemであるEventHubからはアクセスすることができません.これに対応するため,inputデバイスが生成されるディレクトリのパーミッションをEventHubからもアクセス可能な値に変更します.


 


●ビルドとSDカードへのコピー

 変更を反映させるため,ビルド・ツリーのトップへ移動し,再ビルドします.

$ cd ~/mydroid 
$ make -j2 

 変更が加えられた個所のみがbuildされるので,"Install"と出力されたものだけを前回準備したSDカードにコピーすればよいのですが,念のため全てをコピーし直しておきましょう.

$ cd ~/mydroid/out/target/product/generic 
$ sudo cp -a root/* /media/LABEL2/  
$ sudo cp -a system/* /media/LABEL2/system/  
$ sudo cp -a data/* /media/LABEL2/data/    
$ sudo chown -R root.root /media/LABEL2/  
$ sudo chmod -R 777 /media/LABEL2/ 


●Androidの起動とペアリング

 wminputサービスを動作させる条件として,Androidのbluetooth機能が有効になっている必要があります.まず,前回記載した方法でAndroidを起動し,以下の手順でbluetoothを有効にしておきましょう.

  1. アプリケーション・ランチャから"Settings"を起動する
  2. Settingsメニューから"Wireless controls"の項目を選択する
  3. Wireless controlsメニューから"Bluetooth"の項目を選択し,チェックを付ける

 Wiiリモコンとペアリングするには,Android起動後にWiiリモコンの"1"ボタンと"2"ボタンを同時に押します(四つあるLEDが一つも光らなければ,電池を交換する).しばらくするとペアリングが完了し,Wiiリモコンでマウス・カーソルが操作できるようになります.マウス・カーソルはacc_ptr(3軸加速度センサ)を使用しての操作となるので,うまく動かすにはコツが必要かもしれません.十字キーやボタンについては,以下のとおりに割り当てました(写真2).
 


写真2  Wiiリモコンのキーの割り当て

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日