日本Androidの会 出村 成和
家電製品や通信機器をはじめ、組み込み機器へのLinux搭載はますます広まっています。Linuxで組み込み機器を開発するには、機器だけでなく、Linuxのライブラリやデバイス、Linux上のアプリケーション開発などの知識や技術が必要です。本連載では、組み込み機器を実際に開発する作業を通して、これらの知識や技術を詳しく紹介します。
デバイスの開発には、組み込みLinuxで今注目の「Android」を使います。Androidは米Google社とOpen Handset Allianceが開発しているモバイル機器向けLinuxです。パソコンやカーナビなど各種機器への搭載も期待されています。本連載では、Androidのアプリケーション開発の知識や技術も解説していきます。
開発する機器は、「拡張現実感」(Augmented Reality:AR)を実現するデバイスです。拡張現実感とは、現実の状況にコンピュータを使って情報を付加して表すこと。具体的には、Webカメラで撮影した映像を解析処理し、その結果に応じた情報をプロジェクタで投影します(図1)。
ARデバイスは、デバイスを装着したユーザーが自分の手にダイヤルキーを投影して電話をかけたり、店頭に並んでいる商品の映像を認識し価格比較や性能比較を表示したり、といったことが想定されています*1。すなわち、現実には存在しない物をプロジェクタで投射し、現実世界を一層豊かに表現するためのデバイスです。米マサチューセッツ工科大学(MIT)のPattie Maes博士が提唱する「第六感デバイス」としても注目を集めています*2。
ARデバイスを作るには、Webカメラとモバイルプロジェクタ、モバイルデバイスを組み合わせます。本誌では、モバイルデバイスのマザーボードに、小型で低価格の「BeagleBoard」を使います。BeagleBoardは、BeagleBoard.orgが販売している小型のマザーボードです。わずか149ドルという低価格で、約8cm四方という手のひらサイズの基板上に、高性能プロセッサ「OMAP3」と豊富な外部インタフェースを備えています*3(図2)。
これらを使ってARデバイスを開発する手順は、図3のようになります。
ARデバイスの開発には、多くの知識を要求されて難しそうなイメージがあります。実際、一からすべて作るには膨大な知識量が要求されます。しかし、すでに先人たちが開発したハードウエアやソフトウエア、ライブラリがあるため、それらをうまく利用すればちょっとした知識でも開発可能です。これらの知識や技術を習得しながら、近未来デバイスを作成していきましょう。