Freescale JM Badge Boardを使ってSensor and Locationプラットフォームを動かす ―― センサ応用システムの開発を助けるWindows 7の新機能
●Sensor and Locationプラットフォームの動作を確認する
以下に,Sensor and Locationプラットフォームの動作確認手順を示します.Administrator権限で実行します.
1) ファームウェアの更新
デモ・プログラムの更新時と同じく,Badgeボードの電源をOFF状態にして,WindowsパソコンのUSBコネクタに接続して,ファームウェアを更新します.書き込むのはFirmware\BinariesフォルダにあるBadgeSensorsGreenBootloader.S19です.ファームウェアの書き込みが終わったら,必ずUSBコネクタを切り離して,電源SWをONしてOFFします.Firmware\Sourcesフォルダにはこのファームウェアのソース・コードがありますが,デモ・プログラムと同じ問題があり,そのままではCodeWarrior V6.3で利用できません.
2) デバイス・ドライバのインストール
Sensor Development Kitのルート・ディレクトリにあるSensorKitDriverInstaller.exeを起動して,デバイス・ドライバのインストールを開始します.「Please connect the Sensor Development Kit Board to your computer, and then click OK.」のメッセージが出たら,BadgeボードをUSBケーブルで接続します.Windowsセキュリティの「ドライバーソフトウェアの発行元を検証できません」の警告メッセージが出る場合は,「このドライバーソフトウェアをインストールします」をクリックします.「次のセンサを有効にしますか?」とのメッセージが出る場合は,「有効にする」をクリックします.しばらくすると,Sensor Development Kitドライバのインストールが完了します.実はデバイス・ドライバは,動作するWindowsのアーキテクチャがx86(32ビット)なのか,amd64(64ビット)なのかによって,各サブフォルダに入っているドライバを使い分ける必要があるのですが,SensorKitDriverInstaller.exeではこれを自動的に判定して,最適なドライバをインストールするようになっています.
3) センサの有効化
ドライバをインストールしただけではまだ,センサは使えません.コントロール・パネルをアイコン表示に切り替え,「位置センサーとその他のセンサー」を開き,「Sensor Development Kit センサー」の有効チェックボックスをチェックして適用します.このとき,「ユーザー設定の変更」をクリックして,このセンサのユーザごとのアクセス権を設定することも可能です.インストールされたセンサの状態は,デバイス・マネージャのセンサ・クラスでも確認できます.
4) アプリケーションの起動
Sensor Development Kitの\Tools\DiagnosticTool\BinariesフォルダにあるSensorDevKitDiagnosticApp.exeを起動すると,Badgeボードが持つ3種類のセンサ(3軸加速度センサ,照度センサ,タッチSW)の状態をリアルタイムにグラフィックス表示するアプリケーションが立ち上がります.Badgeボードを傾けたり,明るい場所に移動したり,タッチSWに触れて変化を確認してみてください(図4).
図4 Sensor Diagnostic Applicationの表示例
●アプリケーションを実行する
ノート・パソコンにBadgeボードを接続している場合,Badgeボード上の照度センサに反応して液晶ディスプレイの明るさが変わることがあります.これは照度センサに対応したSensor and Locationプラットフォーム・ベースのディスプレイ制御機構がWindows 7の標準サービスとして起動しているからです.
実は,今回書き込んだファームウェアであるBadgeSensorsGreenBootloader.S19にも,デモ・プログラムと同様のメニューがかなり入っています.E7ボタンの「Side Ball」ゲームとマウス・モード,音楽モードがありません.USBモードで接続した場合の動作はWindowsセンサ・モード専用になります.
Sensor Diagnostic ApplicationはVC++(Visual C++)で記述されていますが,このサンプル・プログラムをビルドするためには,VC++ 2008 SP1を使用するか,VC++2010を使用する必要があります.さらに,VC++ 2008 SP1を使用してビルドする場合,Windows 7 Platform SDK(Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1)をインストールしておく必要があります.
このようなSensor APIを利用したセンサ・アプリケーションは,VB(Visual Basic)やC#などのマネージド・コードでも開発が可能です.Windows API Code Packを利用することで,VBやC#を使用してより簡単にセンサ・アプリケーションを開発することが可能です.図5と図6に,Badgeボードを使用してWindows API Code Packに含まれるサンプル・アプリケーションを動作させたときの様子を示します.
図5 AccelerationMeasurement.exeの実行画面
図6 AmbientLightMeasurement.exeの実行画面
センサ・ドライバをビルドするためには,WDK 7.0.0以降のWindows Driver Kitが必要です.Badgeボード用のドライバは,WDKにはセンサ・ドライバのサンプルとして含まれていませんが,WDKに含まれるほかのサンプル・ドライバ(SensorSkelton,TimeSensor)と同様に,UMDFのドライバとしてビルドできます.
●雑誌やセミナを参考に
CQ 出版社のInterface 2010年2月号では,「特集 Windows 7時代のデバイス・ドライバ開発」と題して,Sensor and Locationプラットフォーム・ベースを含むWindowsデバイス・ドライバの最新情報について解説しています.また,2009年5月号に付属するARMマイコン基板(CQ-FRK-NXP-ARM)を利用したBadgeボード互換のセンサ・ドライバの開発手順を示しています.
また,CQエレクトロニクス・セミナでは,「実習・Windows 7時代のデバイス・ドライバ開発入門」というコースを開催しています.このコースでは,新しいドライバ・アーキテクチャであるWDF/UMDFに関して解説し,実際にBadgeボードを使用してUMDFのドライバをビルド,修正,デバッグする手順を実習しています.
ひだか・あとむ
(株)デバイスドライバーズ
Microsoft MVP for Driver & Kernel Development (Jul 2009 - Jun 2010)