SPT1500 - バーコードスキャナ付きPalmIII


PalmOSの展開

PalmPilotとその後継機種は 個人向けPDAとして最近注目を集めていますが、 PalmOSは個人ユーザ向けPDA以外の、 物流業界やコンビニのようなバーティカル市場向けの 業務用端末としても展開がはかられています。 PalmOSにもとづいた製品には右のような ``Palm Computing Platform''というロゴを表示することが 許されます。 Palm Computing Platformにもとづく製品として、 CDMA携帯電話とPilotを組みあわせた Qualcomm社の pdQや、 バーコードリーダとPilotを組みあわせた SPT1500 などが発表されています。 今回はPalm Computing Platformにもとづいた レーザー式バーコードスキャナ内蔵携帯端末 SPT1500を紹介します。

SPT1500

SPT1500は、 バーコードリーダやプリンタなどのメーカである Symbol Technology社の製品で、 Symbol社のレーザ式小型バーコードリーダを PalmIIIの上部に合体させた形をしています。 日本では (株)オリンパスシンボルが 扱っています。

左の写真のように、 SPT1500はバーコードリーダを内蔵しているにも かかわらずサイズはPalmIIIをちょっとだけ 引き伸ばした程度の大きさで、 普通のPalmPilotとほぼ同じ感覚で使うことができます。

バーコードリーダを内蔵した携帯端末はSPT1500が最初ではなく、 コンビニや物流業界では 「ハンディターミナール」と称する各種の小型端末が 在庫管理などに従来から広く使われています。 従来のハンディターミナルは専用のOSとAPIを用いた 特定用途向けプログラムを組み込んで使われるのが普通です。 ユーザがプログラムを開発可能なハンディターミナルもありますが、 PalmOSほど開発環境がしっかりしたプラットフォームは、 Windows95などを採用した大型のものを除くと、 ほとんどありませんでした。 小型で操作しやすくプログラム開発環境が整ったSPT1500は 次世代のハンディターミナル/PDAとして非常に魅力的といえるので、 バーティカル市場で今後広く使われていく可能性を持っています。

内蔵アプリケーション

SPT1500は通常のPalmIIIと全く同じアプリケーションに加え、 デモ用アプリケーションとして、 バーコードを読みとる単純なアプリケーション「Barcode」と レーザーポインタのように使う「Pointer」が用意されています。
Barcode
SPT1500本体左右のボタンを押すとレーザ光が走査されてバーコードを読みとります。 これはモバイルプレス誌の裏表紙の番号を読みとった後でサインをしたところです。
Pointer
レーザ出力を絞ることにより、SPT1500はレーザポインタの ように使うことができます。 画面を見てもわかりませんが、 ボタンを押すとレーザ光が発射されます。
これらのアプリケーションはデモとしてしか役にはたちませんが、 SPT1500では開発したアプリケーションをフラッシュメモリに焼くことできるので、 特定用途向けの端末としてカスタマイズすることができます。

SPT1500のプログラミング

Pilot上でプログラムを作成するには、 Metrowerks社の CodeWarriorを使う方法と、 UNIXまたはWindows上のGCC(フリーのCコンパイラ)関連ツール群を 使う方法があります。 UNIXやDOSのようなコマンド行ベースのインタフェースに慣れた プログラマ(筆者を含む)は後者を好み、 VC++のような統合開発環境を好むプログラマは前者を選択することが 多いようです。 Symbol社はCodeWarrior用のライブラリとドキュメントを用意しているので 比較的簡単にPilotでバーコードを利用するプログラムを作ることが できるようになっています。 またGCC用のライブラリも将来公開予定とのことです。 ライブラリやサンプルプログラムは PalmPilot用CodeWarriorのCDに含まれています。 Symbol社は開発用のページも用意してあり、 デモ/サンプルプログラムも沢山紹介されています。

またSymbol社は SPT1500を用いたプログラミングのコンテストも開催していたようです。 このコンテストで上位入賞したものは ピザ屋のメニューをスキャンして注文を行なうソフトや ISBNや製品番号をスキャンして本やCDの管理をするソフトのように バーコードリーダの定番的なものでしたが、 「音符を順にスキャンして音楽を作るソフト」とか 「盲人糖尿病者のための糖度判別アプリ」 (コーラなどの製品番号をスキャンして糖度をユーザに知らせるらしい) など、かなり変わったアプリケーションも応募されて賞を獲っていたようです。

プログラム例

SPT1500のプログラムの例を下に示します。 メインルーチンPilotMain()から呼び出される StartApplication()の中で スキャナのライブラリの初期化等を行ないます。
ここではMainFormというウィンドウを使っていますが、 スキャナでデータを読みとると、スキャナ読取りイベント scanDecodeEvent が通知され、 ScanGetDecodedData()で読み取ったデータを 取得することができます。
Boolean StartApplication(void)
{
    Boolean scanok = false;
    if (ScanIsPalmSymbolUnit())   // SPT1500かチェック
    {
        if (ScanOpenDecoder()){  // スキャンライブラリオープン成功
            ScanCmdScanEnable(); // スキャナをイネーブル
            scanok = true;
        }
        else FrmAlert("Scanner open failed!");
    }
    else FrmAlert("Wrong hardware!");
    FrmGotoForm(MainForm);
    return scanok;
}

DWord PilotMain(Word cmd, Ptr cmdPBP, Word launchFlags)
{
    if(cmd == sysAppLaunchCmdNormalLaunch) // 通常起動かチェック
    {
        if(StartApplication()){
            EventLoop();
            StopApplication();
        }
    }
    return(0);
}

SPT1500の応用

商品や郵送物などを扱うために、 バーコードリーダは コンビニや物流業界などでは非常に活用されていますが、 一般のオフィスや家庭ではあまり使われていないため、 特殊な機械であると一般に考えられていると思います。 実際、PCの外部機器としてのバーコードリーダや SPT1500は秋葉原などの普通のショップでは売られていないようです。 しかし、バーコードは 紙や本のような「実世界の情報」と「計算機内の情報」を 簡単にリンクするための最も手軽な装置のひとつですから、 一般的な計算機とのインタフェース装置として今後多くの応用が考えられます。

キーボードやマウスのような計算機入出力装置を使うのではなく、 普通の紙や文房具などを計算機操作に利用しようという考え方が 「実世界指向インタフェース」と呼ばれ最近非常に注目を集めています。 実世界指向インタフェースを手軽に実現するために、 バーコード/バーコードリーダはかなり強力な武器になります。

オフィスでも家庭でも大量の実世界情報と計算機情報を扱っていますが、 これらはばらばらに扱われているのが普通です。 SPT1500のような機器を活用すれば、 紙や本のような実世界情報と計算機内の情報を うまく統合して管理することができるようになります。 SPT1500はPDAとしても使えるわけですし、 PDA兼情報管理端末としてオフィスや家庭でもバーコードや SPT1500をもっと活用することを考えてみてもよいと思います。 たとえば以下のようにして 手軽にSPT1500を活用することができるでしょう。

紙の資料の管理
計算機内の文書を紙に印刷するのは簡単ですが、 印刷された紙からもとの文書を探すのに苦労したことはないでしょうか。 文書を紙に印刷するとき必ずバーコードで元ファイルを示すようにしておけば、 紙の資料からもとファイルをすぐに参照することができるようになります。
ホームAVサーバの管理
手持ちのCDやビデオを 家庭のサーバPCのハードディスクに格納しておいて 家の中のどこからでも観賞できるようにするというのが 近い将来流行しそうですが、 大量のコンテンツをサーバに格納すると、 曲やビデオを選ぶのが大変になってきます。 曲やビデオをバーコードつきの冊子として印刷しておけば 冊子をスキャンするだけで聞きたい曲を選ぶことが できるでしょう。
蔵書の管理
本を箱に詰めて整理しようとすると、 どこに何を入れたかわからなくなって大変ですが、 ISBNをバーコードで読みながら整理することにすれば 所在がすぐにわかります。
情報収集
立ち読みして面白いと思った本のISBNを取得したり、 興味を持った製品のJAN(バーコードで示される製品番号)を取得したりしておいて、 あとでWebで詳しく調べるといったことができるでしょう。 CDや書籍などに印刷されているバーコードから Web経由で情報を引き出す試みは始まりつつありますし、 今後は一般的なサービスとして普及するようになるでしょう。
Webアクセス
バーコードで表現した番号からURLへの変換表を用意しておけば、 バーコードから直接Webページを参照することができるように なるでしょう。
これらの応用では、 バーコードリーダで取得した情報を端末内だけで使うのでは あまり意味がなく、 外部の情報とリンクして始めて便利になることが多いと考えられます。 Pilotの場合、シリアル端子/Cradleや赤外線経由でパソコンやインターネットに 比較的簡単に接続することができますし、 「 リモコンコン」のようなソフトと組みあわせて使えば 家電製品を直接リモコン制御することもできるようになるでしょう。 従来のハンディターミナルでは 各種通信のためのハードウェアやライブラリが揃っていないために、 各種の機器と統合的に通信する アプリケーションを作ることは困難でしたが、 Pilotのように開発環境や通信ライブラリがととのった端末では 容易に統合的システムを開発することが可能です。

新しい応用

バーコードつき携帯端末を使えば、 今までにない以下のようなアプリケーションも考えられるでしょう。
IDベースのコミュニケーション
バーコードリーダとインターネットという新しい組みあわせにより 様々な新しいアプリケーションを作り出すことができるかもしれません。 たとえば、インターネット上には各種の掲示板やチャットルームがあり 各種の話題に関して議論が行なわれていますが、 IDと対応がつく話題の場合には バーコードリーダを使って掲示板やチャットに参加できれば 面白いかもしれません。 たとえばある本に関して議論をしたい場合、 本のISBNをスキャンするだけでその本や著者に関する掲示板に アクセスできるとよいでしょう。
紙GUI
バーコードリーダはを貼った紙を使ってGUI操作を行なうことができます。 普通のバーコードはGUIのボタンのように使うことができますし、 加速度センサと併用すれば、 バーコードリーダで読み取った後の動きによって バーコードリーダを スライダやメニューのかわりに使うこともできます。 加速度センサをPilotに内蔵することにより このような「紙GUI」を実現することができるでしょう。

バーコード関連情報

ひとくちにバーコードといっても何種類ものコード体系があり、 SPT1500はUPC, CODE-39, CODABARなど各種の規格をサポートしています。 バーコード関連の情報は barcode.co.jpに 詳しい各種の情報が掲載されています。 また、 毎年秋に ScanTechという 展示会が開催され、 数多くの興味深いバーコード関連製品が展示されています。 昨年のScanTechを見た印象では、 バーコードはまだまだ特定の業界でしか活用しておらず 参加者もかなり限られていたようですが、 今後さらに一般的に普及していくのではないかと考えられます。

SPT500の購入方法

SPT1500は現在秋葉原などのショップで個人向けには販売されておらず、 (株)オリンパスシンボル から直接購入しなければなりません。 しかし前述のようにSPT1500は一般用途にも非常に多きな可能性を 持っている製品ですので、今後は一般の販売経路も増えてくることを 期待したいと思います。

おわりに

そもそもバーコードリーダというものは 物質に印刷された英数字を高速に読み取る機能を提供しているだけであり、 バーコードリーダが無ければ絶対に使えないアプリケーションが あるわけではない(手で数字を打ち込んでも同じことができる)のですが、 バーコードをスキャンする手間と数字を打ち込むのの手間の違いは、 Webページ上のリンクをクリックするのとURLを打ち込むのの 違いに匹敵するでしょう。 SPT1500の普及などによりバーコードが 様々なインタフェースに活用されていけばと思います。