特集:Windows Embedded CE開発入門

特集:Windows Embedded CE開発入門

“Phidgets”で簡単ハードウェア開発
〜 Imagine Cup 組み込み開発部門に向けて 〜

佐藤 晶則  2010/9/29

Imagine Cup 2009 組み込み開発部門で世界大会に出場した経験を持つ筆者が、これからImagine Cupにチャレンジしようとしている皆さんや、組み込み開発初心者の方に向け、Phidgetsを用いた組み込み開発についてやさしく解説します。(編集部)

- PR -

――皆さんはじめまして。本特集は、筆者自身が出場したImagine Cup 2009 組み込み開発部門での経験と知識を基に、これからImagine Cupにチャレンジしようとしている皆さんや組み込み開発初心者のために書いたものです。本特集が、Imagine Cupや今回紹介する「Phidgets」に興味のある皆さんのお役に立てれば幸いです。

 読者の皆さんの中には、「組み込み」と聞いて、

「ソフトウェアは作れるけど、ハードウェアの知識がないしなぁ……」

と、ハードウェアに苦手意識を持っている方もいるのではないでしょうか。

 確かに組み込みデバイスを作る際には、ソフトウェアとハードウェアの両面からアプローチする必要があります。また、ソフトウェア上でハードウェアの情報を得るために必須の「デバイスドライバ」などの知識・技術も必要になるでしょう。こう考えると、苦手意識が芽生えるのも無理はありません。

 しかし、最近ではハードウェアが高性能化し、デバイスドライバなどの知識がなくても使えるハードウェアがたくさん存在しています。その一例として、今回は「PhidgetInterfaceKit」という、「デジタルI/O」と「A/Dコンバータ」の機能を持ち、PCから操作が可能なハードウェアを紹介したいと思います(図1)

 本特集では、マイクロソフトの組み込みOS「Windows Embedded CE」にPhidgetsを導入し、センサを用いた簡単なサンプルアプリケーションを作成するまでの流れを解説します。

「PhidgetInterfaceKit」と「PhidgetTextLCD 20X2」
図1 「PhidgetInterfaceKit」と「PhidgetTextLCD 20X2」……裏側にLCDが付いているので、文字も表示可能。LCDがないタイプもある
出典:PhidgetsのWebサイト

関連リンク:
1203-PhidgetTextLCD 20X2:White:Integrated PhidgetInterfaceKit 8/8/8
http://www.phidgets.com/products.php?category=15&product_id=1203

PhidgetInterfaceKitについて

 Phidgetsは、USB接続が可能なため簡単にPCにつなげられます。また、Imagine Cup 組み込み開発部門で使用した「Windows Embedded CE 6.0」用のドライバもメーカー側が用意してくれています。つまり、接続して既存のドライバをインストールしさえすれば、すぐに使えるのです。さらに、さまざまなプログラミング言語のサンプルコードやライブラリも用意されています。これらをうまく活用すれば、開発の手間やコストも削減できるはずです。

関連リンク:
Programming Resources:サンプルコード、ライブラリ
http://www.phidgets.com/programming_resources.php

 また、Phidgetsには今回紹介するInterfaceKitだけでなく、加速度センサや磁気センサなど、さまざまなセンサも用意されています。モータなどもありますから、何かロボットのようなものを作って動かすことも可能です。詳しくは、PhidgetsのWebサイトに紹介されていますので、興味のある方はそちらも併せてご覧ください。

 では、今回使用するPhidgetsのInterfaceKitでは、具体的にどんなことができるのでしょうか。まずは、InterfaceKitが持つデジタルI/OとA/Dコンバータの機能について簡単に説明します。

 デジタルI/Oの機能では、デジタル信号(0または5Vの電気信号)を入出力できます。スイッチが押されたことを検知したり、LEDを付けたり消したりできます。これだけでも、スイッチの付いたパネルのようなものを作って、押されたスイッチに応じてPC側のソフトウェアを動かすといったことができそうです。またその逆で、PC側のソフトウェアで何かの処理を行い、それが完了したらLEDを光らせるといったこともできそうですね。

 続いて、A/Dコンバータの機能について説明します(なお、本特集ではこの機能を使ってアプリケーションを開発します)。

 A/Dコンバータとは、“Analog/Digital Converter”の略で、日本語では“アナログ/デジタル変換器”と呼ばれます。前述のデジタルI/Oは、0または5Vの信号しか読めないのに対し、A/Dコンバータはアナログ信号(0〜5Vの任意の電圧)を読むことができます。具体的には、アナログ信号を2進数の数値(デジタル値)に変換して認識します。このとき、何ビットの2進数に変換するかによって、そのA/Dコンバータの性能が決まります。この性能を「分解能」といいます。Phidgetsの分解能は10ビットですので、0〜5Vの電圧の変化を1024段階でとらえることになります。これは、PhidgetsのA/Dコンバータを用いたプログラミングを行う際に重要となりますので、ぜひ覚えておいてください。

 このA/Dコンバータを使うと、アナログ出力のセンサのデータを読むことができます。実は、わたしがImagine Cup 2009に出場したときに製作した糸巻き型メジャーは、このA/Dコンバータでデータを読んでいます。糸巻きには「可変抵抗器(ボリューム)」が付いていて、メジャーを伸ばした分だけ可変抵抗器が回転して電圧が変化するという仕組みです。

Phidgetsの導入

 では、ここから具体的にWindows Embedded CEにPhidgetsを導入する方法について説明していきたいと思います。とはいっても、実はドライバをインストールするだけなんですが、1点、OSのビルドに関して注意が必要です。

 PhidgetsのWindows Embedded CE用のドライバは、CABファイルで提供されています。この形式のファイルでインストールを行うためには、OSビルドの時点で「CABファイルインストーラ/アンインストーラ」の機能を追加しておく必要があります。この点は注意してください。

 OSが準備できたら、PhidgetsのWebサイトから「Phidget 21 Installer」をダウンロードし、ターゲットプラットフォーム(Windows Embedded CE機)にインストールしてください。なお、本特集では「Phidget 21 Installer(x86)」をダウンロード、インストールした前提で進めていきます。

 Phidgetsのインストールが完了したら、ターゲット側の準備はこれで終了です。

注:本稿ではOSのビルド手順については詳しく触れません。Windows Embedded CEを搭載したターゲットプラットフォームがあらかじめ用意されているものとします。筆者は、Imagine Cup 組み込み開発部門の標準プラットフォームである「eBox-3310」を使用しています。また、OSのバージョンはR2、R3など何でも構いません。また、次回のImagine Cup 2011では、Windows Embedded CEの後継に当たる「Windows Embedded Compact 7」の使用が求められていますが、Phidgetsの導入と使い方に関しては、基本的に以前のWindows Embedded CEと変わらないはずです。

関連リンク:
連載記事「ココが変わったWindows Embedded CE 6.0 R2」
http://monoist.atmarkit.co.jp/fembedded/winembedded/index/wince60r2.html
連載記事「ココが変わったWindows Embedded CE 6.0 R3」
http://monoist.atmarkit.co.jp/fembedded/winembedded/index/wince60r3.html
最新! Windows Embedded Compact 7の概要
http://monoist.atmarkit.co.jp/fembedded/winembedded/wec7/wec7_01a.html

>>次ページからPhidgetsのプログラミングについて解説する!

  • 全記事インデックス
  • 組み込み開発トップ
  • MONOistトップ

スキルアップ/キャリアアップ(JOB@IT)

スポンサーからのお知らせ

- PR -
@IT Sepcial

@IT MONOist 求人情報

- PR -