(57)【特許請求の範囲】
【請求項１】
コンピュータに対しユーザ入力を提供する方法であって、
第１の所定パターンをその上に配置して有するある表面の第１部分上に、ユーザ入力デバイスを置くステップと、
前記第１所定パターンを示す第１のイメージを検出するステップと、
前記第１イメージの検出を示す第１のパターン情報を前記コンピュータに供給するステップと、
第２の所定パターンをその上に有する前記表面の第２部分上に、前記ユーザ入力デバイスを置くステップと、
前記第２所定パターンを示す第２のイメージを検出するステップと、
前記第２イメージの検出を示す第２のパターン情報を前記コンピュータに供給するステップと、
前記表面に対する前記ユーザ入力デバイスの移動を示すコンピュータに位置情報を供給するステップであって、前記位置情報はコンピューター・スクリーン上にカーソルを置くのに使用される、供給するステップと、
前記第１および第２のパターン情報に基づき前記コンピュータを制御するステップであって、前記第１イメージの検出から前記第２イメージの検出への変化に基づき、前記コンピュータの動作モードを変更する、制御するステップと、
を含み、
前記ユーザ入力は、位置情報を含み、
前記制御するステップは、前記ユーザ入力デバイスが前記第１または第２のイメージを検出したかどうかに基づき、前記表面に対して前記ユーザ入力デバイスの移動を示す相対位置情報から、前記表面について前記ユーザ入力デバイスの絶対位置を示す絶対位置情報に、前記位置情報を変更するステップを含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、前記制御するステップは、前記第１イメージの検出から前記第２イメージの検出への変化に基づき前記コンピュータの稼働モードを変更するステップを含むことを特徴とする方法。
【請求項３】
請求項１記載の方法において、前記の第１イメージを検出するステップは、前記第１イメージをイメージ検出器で捕捉するステップと、前記第１イメージを示す情報をイメージ記憶装置内に格納した第１記憶イメージを示す情報と突き合わせるステップとを含むことを特徴とする方法。
【請求項４】
請求項３記載の方法において、前記の動作モードを変更するステップは前記第１記憶イメージと関連したモード値を供給するステップであって、前記モード値は前記コンピュータの第１の動作モードを示す、供給するステップから成ることを特徴とする方法。
【請求項５】
請求項１記載の方法において、前記の第２イメージを検出するステップは、前記第２イメージをイメージ検出器で捕捉するステップと、前記第２イメージを示す情報をイメージ記憶装置内に格納した第２記憶イメージを示す情報と突き合わせるステップとから成ることを特徴とする方法。
【請求項６】
請求項５記載の方法において、前記の動作モードを変更するステップは、前記第２記憶イメージと関連したモード値を供給するステップであって、該モード値は前記コンピュータの第２の動作モードを示す、供給するステップとから成ることを特徴とする方法。
【発明の詳細な説明】
【０００１】
発明の背景
本発明は、コンピュータ・システム用の入力デバイスに関するものである。詳細には、本発明は、入力デバイスの動きに基づいてコンピュータ・システムに対し位置情報を提供するための入力デバイスに関している。
【０００２】
マウスのような従来のコンピュータ入力デバイスは、ハウジングを含み、このハウジング内にはボールが装着されている。このボールは、在来の方法で構成し、通常の作業位置では、ボールが作業表面に係合し、そして作業表面上でのマウスのユーザによる移動に基づいて回転するようにしている。あるいはまた、このボールは、トラックボールとして設け、このボールがユーザの指による操作で回転するようにすることもできる。いずれの場合でも、位置エンコーダを使用することにより、マウス内でのこのボールの位置を検出し、そしてこの回転を示す位置情報をコンピュータに提供するようになっている。多くの場合、この位置情報は、コンピュータのディスプレイ・スクリーン上での視覚的イメージ（例えばマウス・カーソル）の動きを制御するのに使用している。
【０００３】
また、１つの従来技術のデバイスでは、あるマウスは、上述のトラックボールで構成されている。このトラックボールは、均一の所定のイメージが予めプリントされている。トラックボール上のこのイメージを検出しこのイメージの動きを検出するのに、電荷結合デバイスを使用している。この予め定められたイメージの動きを使って、コンピュータに対し位置情報を供給する。
【０００４】
しかし、電荷結合デバイス構成を使用するこの従来のコンピュータ・マウスは、多くの相当な欠点を有している。第１に、電荷結合デバイスの反応時間がかなり遅いことである。加えて、電荷結合デバイスからのイメージ信号を処理することは、計算処理上きつく、したがって比較的大きくかつ高価なプロセッサを要する。また、電荷結合デバイスは、飽和に高度に敏感である。言い換えれば、周囲光が可変の場合、電荷結合デバイスは、良好には動作しない。加えて、比較的明るい光のような余分な光源をイメージ生成面に向けた場合、電荷結合デバイスは、すぐに飽和してしまうことがあり、したがってそれらの性能がすぐに低下してしまうことがある。
【０００５】
さらに、カリフォルニア（ＣＡ）のマウス・システムズ社（Mouse Systems）から市販されている別の従来のコンピュータ・マウスは、マウスにＬＥＤを備えて含み、このＬＥＤを、所定の均一なパターンをその上に有するマウス・パッドと共に使用するものであった。このパターンは、青と赤の線の均一なグリッドで形成したものである。ＬＥＤからの放出光は、マウス・パッドから検出器へと反射され、そして検出器はアナログ出力信号を発生するようになっている。この信号は、それら異なった色のグリッド線に対応するピークをもつ波形である。この波形から、それら線をカウントし補間することによって位置情報を得るようにしている。このようなマウス・システムは、特殊な均一のパターンをその上に実施したマウス・パッドを必要とするものである。
【０００６】
さらに、代表的なマウス・ポインティング・デバイスは、固定のスケールおよび解像度を使用して操作するものである。固定のスケールとは、コンピュータ・スクリーン上でカーソル・イメージをある所与の数のピクセル分だけ移動させるには、マウスを常にある所与の距離だけ作業表面上で移動させなければならない、ということを意味する。例えば、２００ドット／インチ（dpi）の解像度をもつコンピュータ・スクリーン上でカーソルを２００ピクセル分移動させるには、マウスは、例えば２インチ（５ｃｍ）のように作業表面上である固定の距離だけ動かさなければならない。マウスを２インチ動かす度に、どのような表面の上であろうとも、その動きが常に２００ピクセル分のカーソル・イメージの動きに対応することになる。
【０００７】
固定の解像度とは、マウスの検出可能な最も短い離散的な移動が、コンピュータ・スクリーン上のカーソル位置をたった１つのピクセル分だけ変えることになる、コンピュータ・スクリーンの解像度を指す。例えば、在来のある種のマウスは、一般に２００−４００dpiの範囲の解像度をもっている。このことは、位置エンコーディング機構が検出可能なマウスの最も短い離散的移動が、ディスプレイ・スクリーン上のカーソル位置を、２００−４００dpiの範囲の解像度をもつスクリーンに関してたった１つのピクセル分だけ変化させる、ということを意味している。しかし、コンピュータ・スクリーンがそれより高い解像度、例えば１２００dpiを有する場合、マウスのこの検出可能で最も短い離散的移動は、このディスプレイ・スクリーン上では、カーソル・イメージを４−６ピクセル分移動させることになる。高度に精密な位置エンコーディング機構を有するある種の現行のマウスでは、１２００dpiの解像度を実現することができる。
【０００８】
上述のように、従来のマウス位置決めデバイスのスケールおよび解像度は、固定とされている。このスケールまたは解像度を変えるには、ユーザは通常、別の異なったマウス・ドライバをロードし、このマウス・ドライバで、マウスの振る舞いを修正してその解像度を変えたりあるいはそのスケールを変えたりすることが必要となる。あるいは、ユーザは、別の制御パネル・アプレットを使用して、そのソフトウェア・デバイス・ドライバをトリガして、そのスケールおよび解像度を変化させることもできる。制御アプレットを使用してスケールまたは解像度を変化させることは、きわめて面倒なものである。
【０００９】
ある種のアプリケーションでは、スクリーン上で選択すべきアイテムは、かなり小さい。したがって、高い解像度のモニタを使ったときには、アイテムを選択することが難しくなることがある。場合によっては、たった１つのピクセル・オフセットが、選択を１つの目標とするアイテム（またはオプション）から別のものへと変えることもある。このようなアプリケーションでのこの難しさを克服するのに使える１つの方法は、コンピュータ・スクリーンの解像度および拡大率をその通常のレベルに維持し、そしてポインティング・デバイスの解像度を下げることである。しかし、上記のように、ポインティング・デバイスの解像度を変化させる従来の方法は、かなり面倒なものであり、ユーザが１つのアプリケーション内で作業している間に解像度を何回も変えたいときには特にそうである。
【００１０】
発明の摘要
コンピュータ入力デバイスは、ある表面上のイメージを検出する。このコンピュータ入力デバイスは、このデバイスが１つの所定のパターンの読み取りから別の所定のパターンの読み取りへと切り換わったとき、変更イベントを示す入力情報を生成する。本発明はまた、この入力デバイスまたはその上に所定のパターンを有するプリント可能な媒体を使用する方法にも向けることができる。
【００１１】
例示的な実施形態の詳細な説明
本発明は、位置情報を発生しそしてこの情報をコンピュータ・システムに供給するためのユーザ入力デバイスを提供する。この位置情報は、ユーザ入力デバイスあるいはこれの一部分の検出した動きに基づいて生成する。この動きは、ある表面上の、ユーザ入力デバイスに対し相対的に可動のパターンまたはイメージを識別し、そしてこのパターンの相対的な動きをモニタすることによって検出する。
【００１２】
概観
図１およびこれに関連する記載は、本発明を実施できる１つの適当な計算環境の簡潔で一般的な説明を提供することを意図したものである。尚必要ではないが、本発明について、少なくとも部分的には、パーソナル・コンピュータあるいはその他の計算デバイスで実行されるプログラム・モジュールのようなコンピュータ実行可能の命令の一般的なコンテキストで説明をする。一般に、プログラム・モジュールは、ルーチン・プログラム、オブジェクト、コンポーネント、データ構造等の特定のタスクを実行しあるいは特定の抽象的なデータ・タイプを具体化するものを含む。さらに、当業者には分かるように、本発明は、他のコンピュータ・システム・コンフィギュレーション（ハンドヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースまたはプログラマブルな民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ等を含む）で実施することもできる。本発明はまた、通信ネットワークを介してリンクしたリモートの処理デバイスによりタスクを実行するようになった、分散型計算環境において適用可能である。分散型計算環境においては、プログラム・モジュールは、ローカルおよびリモートのメモリ・ストレージ・デバイスに配置することもできる。
【００１３】
図１を参照すると、本発明のための１つの例示的環境は、従来のパーソナル・コンピュータ２０の形態の汎用計算デバイスを含み、処理ユニット２１、システム・メモリ２２、およびシステム・メモリ２２を含む種々のシステム・コンポーネントを処理ユニット２１に結合するシステム・バス２３を含む。システム・バス２３は、種々のバス・アーキテクチャのいずれかを用いたメモリ・バスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含む、数種類のバス構造のいずれでもよい。システム・メモリは、リード・オンリ・メモリ（ＲＯＭ）２４、およびランダム・アクセス・メモリ（ＲＡＭ）２５を含む。起動中等においてパーソナル・コンピュータ２０内のエレメント間の情報転送に供する基本ルーチンを収容する基本入出力システム（ＢＩＯＳ）２６は、ＲＯＭ２４に格納する。また、パーソナル・コンピュータ２０は、図示しない磁気ハード・ディスクの読み取りおよび書き込みを行う磁気ハード・ディスク・ドライブ２７、リムーバブル磁気ディスク２９の読み取りおよび書き込みを行う磁気ディスク・ドライブ２８、並びにＣＤ−ＲＯＭまたはその他の光媒体のようなリムーバブル光ディスク３１の読み取りおよび書き込みを行う光ディスク・ドライブ３０も含むことができる。ハード・ディスク・ドライブ２７、磁気ディスク・ドライブ２８、および光ディスク・ドライブ３０は、ハード・ディスク・ドライブ・インターフェース３２、磁気ディスク・ドライブ・インターフェース３３、および光ディスク・ドライブ・インターフェース３４によって、それぞれシステム・バス２３に接続してある。これらのドライブおよびそれに関連するコンピュータ読み取り可能媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、およびパーソナル・コンピュータ２０用のその他のデータの不揮発性格納を提供する。
【００１４】
ここに記載した例示的環境は、ハード・ディスク、リムーバブル磁気ディスク２９およびリムーバブル光ディスク３１を採用するが、当業者には分かるように、磁気カセット、フラッシュ・メモリ・カード、デジタル・ビデオ・ディスク、ベルヌーイ・カートリッジ、ランダム・アクセス・メモリ（ＲＡＭ）、リード・オンリ・メモリ（ＲＯＭ）のような、コンピュータによるアクセス可能なデータを格納することができる、他の種類のコンピュータ読み取り可能媒体も、この例示的動作環境において使用可能である。
【００１５】
多数のプログラム・モジュールは、ハード・ディスク、磁気ディスク２９、光ディスク３１、ＲＯＭ２４またはＲＡＭ２５上に格納することができ、これらは、オペレーティング・システム３５、１つ以上のアプリケーション・プログラム３６、その他のプログラム・モジュール３７、およびプログラム・データ３８を含む。ユーザは、キーボード４０およびポインティング・デバイス４２のような入力デバイスによって、コマンドおよび情報をパーソナル・コンピュータ２０に入力することができる。他の入力デバイス（図示せず）として、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ（satellite dish）、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、システム・バス２３に結合したシリアル・ポート・インターフェース４６を介して、処理ユニット２１に接続するが、サウンド・カード、パラレル・ポート、ゲーム・ポートまたはユニバーサル・シリアル・バス（ＵＳＢ：universal serial bus）のようなその他のインターフェースによって接続することも可能である。モニタ４７または別の種類のディスプレイ・デバイスも、ビデオ・アダプタ４８のようなインターフェースを介して、システム・バス２３に接続する。このモニタ４７に加えて、パーソナル・コンピュータは、通常、スピーカ４５やプリンタ（図示せず）のような、その他の周辺出力デバイスを含む。
【００１６】
パーソナル・コンピュータ２０は、リモート・コンピュータ４９のような１つ以上のリモート・コンピュータへの論理接続を用いて、ネットワーク環境で動作させることも可能である。リモート・コンピュータ４９は、別のパーソナル・コンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の一般的なネットワーク・ノードとすることができ、これは通常、パーソナル・コンピュータ２０に関して先に記載したエレメントの多くまたは全てを含むが、メモリ・ストレージ・デバイス５０だけを図１に示す。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）５１およびワイド・エリア・ネットワーク（ＷＡＮ）５２を含む。このようなネットワーク環境は、オフィスの企業規模のコンピュータ・ネットワーク、イントラネットおよびインターネットでは一般的である。
【００１７】
ＬＡＮネットワーク環境で用いる場合、パーソナル・コンピュータ２０は、ネットワーク・インターフェースまたはアダプタ５３を介して、ローカル・エリア・ネットワーク５１に接続する。ＷＡＮネットワーク環境で用いる場合、パーソナル・コンピュータ２０は通常モデム５４またはインターネットのようなワイド・エリア・ネットワーク５２を通じて通信を確立するその他の手段を含む。モデム５４は、内蔵型でも外付け型でもよく、シリアル・ポート・インターフェース４６を介してシステム・バス２３に接続する。ネットワーク環境では、パーソナル・コンピュータ２０に関連して図示したプログラム・モジュールまたはその一部を、リモート・メモリ・ストレージ・デバイスに格納することも可能である。理解されるように、図示したこのネットワーク接続は一例であり、これらコンピュータ間に通信リンクを確立するその他の手段も使用することは可能である。
【００１８】
本発明を良く理解できるようにするため、ここで、マウス・メッセージ処理の簡単な説明を行う。図２Ａは、本発明の１実施形態による入力デバイス４２と共に使用するコンピュータ２０の機能ブロック図である。マウス４２は、図示のように、右および左のボタンと、そしてこれらの間の押し下げ可能でかつ回転可能なホイール１０３とを有している。図２Ａに示したコンピュータ２０のブロック図は、図１に関して説明したアイテムの多くを含んでおり、これらアイテムにも同様に付番してある。しかし、図２Ａのブロック図は、マウス・メッセージを処理する際に使用する多数のコンポーネントもより詳細に示している。コンピュータ２０は、マウス・ドライバ６０と、メッセージ・フック・プロシージャ６２と、フォーカス・アプリケーション６４とを含んでいる。図２Ａに示したコンピュータ・システム２０における入力デバイス４２の動作を良く理解できるようにするため、このシステムのコンポーネントについて、図２Ｂに示したデータ構造で説明する。
【００１９】
図２Ｂは、行列フォーマットの４バイト・マウス・パケット６６を示しており、バイト６８，７０，７２，７４は行で示し、そして各バイトの個々のビットは列で示している。バイト６８は、入力デバイス４２が供給する第１のバイトであり、そしてバイト７０が第２バイト、バイト７２は第３バイト、そしてバイト７４は第４バイトである。ビット列は、最下位ビットが右端で最上位ビットが左端となるように編成している。このため、列７６は、４つのバイトの各々の最下位ビットを含み、列７８は、４つのバイトの最上位ビットを含んでいる。
【００２０】
マウス・パケット６６内では、第１バイト６８は、左ボタン・ビット８０と、右ボタン・ビット８２と、中間ボタン・ビット８４とを含んでいる。左ボタン・ビット８０における１は、左ボタンが押し下げられていることを示し、左ボタン・ビット８０における０は、左ボタンが押し下げられていないことを示す。同様に、右ボタン・ビット８２または中間ボタン・ビット８４における１は、右ボタンまたは中間ボタンが押し下げられていることを示し、これらビットにおける０は、それらの対応するボタンが押し下げられていないことを示す。
【００２１】
第４ビット８６は、１にセットしている。
バイト６８の第５ビット８８は、バイト７０で完成する９ビットの符号付き値の第９ビットである。ビット８８とバイト７０の組み合わせが生成するこの９ビット値は、Ｘ座標に沿ったマウス移動の方向および大きさを表す。この９ビット値は、２の補数のフォーマットであるため、ビット８８は、マウス移動の方向を示し、それにより、これがゼロの値を有する場合に、マウス移動が正のＸ方向であり、そしてこれが１の値を有する場合にはマウス移動が負のＸ方向であるようにしている。
【００２２】
第１バイト６８の第６ビット９０は、バイト７２で完成する９ビットの符号付き値の第９ビットである。ビット９０と第３バイト７２との組み合わせは、マウスのＹ座標に沿った動きの大きさおよび方向を示す値を生成する。この値は２の補数の符号付き値であるため、ビット９０は、Ｙ座標に沿った移動の方向を示し、それにより、これが１の値を有する場合に、マウス移動が負のＹ方向であり、そしてこれが０の値を有する場合にはマウス移動が正のＹ方向であるようにしている。
【００２３】
第１バイト６８の第７ビット９２と第８ビット９４とは、ビット８８とバイト７０そしてビット９０とバイト７２とが形成する各９ビット値が、オーバーフロー状態を受けているかどうかを示す。これは、マウスが９ビットより多い移動を検出したときに起きる。この状態においては、それら各９ビット値は、移動方向に対しその最大値にセットされるべきである。
【００２４】
第４バイト７４の最下位４ビット９６，９８，１００，１０１は、ホイール１０３（図２Ａに示す）の移動の方向および大きさを表す。これらビット９６−１０１が表す値は、符号付きの値であって、正の値はユーザ方向へのホイールの動きを、そして負の値はユーザから離れる方向のホイールの動きを示す。
【００２５】
ビット１０５と１０７とは、バイト７４の第５ビットと第６ビットであり、これらは、それぞれマウス４２の左ボタンと右ボタンに対応するスイッチの閉成を示す。したがって、ビット１０５が１の値を有するときは、左ボタンに関連したスイッチが閉じていて、対応するマウス・ボタンが押し下げられていることを示す。ビット１０７は、同様の形式でマウス右ボタンに関連したスイッチの閉成を反映する。
【００２６】
第４バイト７４のビット１０９とビット１１１とは、後の使用のため確保してあり、したがってゼロにセットしている。当業者には分かるように、図２Ｂに示したマウス・パケット６６と後述のシリアル・インターフェース４６とは、ＰＳ／２およびシリアル・マウス接続で使用する。ユニバーサル・シリアル・バス（ＵＳＢ）接続に対しては、このマウス情報は、マウス用の公に入手可能なＵＳＢプロトコルを使用してマウス・ドライバに送る。
【００２７】
在来のマウス・メッセージの処理を説明するため、図２Ａと図２Ｂの両方を参照する。マウス・メッセージを開始させるため、ユーザは最初にマウス４２を操作する。この操作に基づいて、マウス４２は、マウス・パケットを生成し、このパケットをシリアル・インターフェース４６に渡し、またこれは操作イベントを示す。シリアル・インターフェース４６がマウス・パケット６６を受けると、これは、マウス・パケット６６内のシリアル情報を１組のパラレル・パケットに変換し、そしてこのパラレル・パケットをマウス・ドライバ６０に供給する。マウス・ドライバ６０は、この操作イベントに基づいてマウス・メッセージを作成する。マウス・メッセージのこの作成は、既存のマウスがマウス・メッセージを作成する方法と同じである。
【００２８】
次に、このマウス・メッセージは、オペレーティング・システム３５に送る。１つの例示的実施形態においては、オペレーティング・システム３５は、“WINDOWS NT（登録商標）”、“WINDOWS95（登録商標）”または“WINDOWS98（登録商標）”のブランドのオペレーティング・システムである（ワシントン州レドモンドのMicrosoft社が提供）。オペレーティング・システム３５は、マウス・メッセージ・フック・リフトを含み、これは、一連のマウス・メッセージ・フック・プロシージャ６２を識別する。オペレーティング・システム３５がこのマウス・メッセージをマウス・ドライバ６０から受けると、これは、マウス・メッセージ・フック・リフトを調べて、任意のマウス・メッセージ・フック・プロシージャがそれ自身をオペレーティング・システム３５に登録しているかどうか判定する。少なくとも１つのマウス・メッセージ・フック・プロシージャががそれ自身をオペレーティング・システム３５に登録している場合、オペレーティング・システム３５は、そのマウス・メッセージを、そのリスト上の最初に現れる登録されたマウス・メッセージ・フック・プロシージャ６２に渡す。
【００２９】
コールされたこのマウス・メッセージ・フックは、実行してある値をオペレーティング・システム３５に戻し、これによりオペレーティング・システムにそのマウス・メッセージを次に登録されたマウス・メッセージ・フックに渡すように命令する。
【００３０】
このマウス・メッセージは、例えば、コンピュータ２０において現在フォーカス中のウィンドウを所有するあるアプリケーションに対するコマンドを表す。この場合、メッセージ・フック・プロシージャ６２は、そのコマンドをフォーカス・ウィンドウのアプリケーションに発する。これに応答して、このフォーカス・ウィンドウのアプリケーション６４は、その所望の機能を実行する。
【００３１】
メッセージ・フック・プロシージャ６２がコマンドをフォーカス・アプリケーション６４に発した後、メッセージ・フック・プロシージャ６２は、このマウス・メッセージをメッセージ・チェーンから除去することにより、このマウス・メッセージを使い果たす。これは、ある値をオペレーティング・システム３５に戻すことにより行い、そしてこの値は、オペレーティング・システムに対し、マウス・メッセージをどのような他のメッセージ・フック・プロシージャにも渡すべきでないということを示す。
【００３２】
図３は、本発明の１実施形態による、マウス４２のようなオペレータ入力デバイスを示す、一部ブロック形式で一部図式でのより詳細な図である。マウス４２は、ハウジング１０２と、電磁的輻射源１０４（これは、単にＬＥＤのような光源とすることができる）と、ハウジング１０２の底に定めたアパーチャ１０６と、レンズ１０８と、イメージまたはパターンの検出器１１０と、コントローラ１１２と、電流ドライバ１１４とを含んでいる。図３において、マウス４２は、作業表面１１６に対し相対的に支持されているように示している。パターン検出器１１０は、任意の適当な検出器であって、その上に照射する電磁的輻射により運ばれる情報からイメージあるいはパターンを検出しそしてそれを表す信号を供給することができるものとすればよく、そして例えば、以下に詳細に説明する人工網膜パターン検出器とすることができる。
【００３３】
光源１０４は、任意の適当な電磁輻射源とすることができ、そしてこれは、パターンまたはイメージ上に照射するための輻射を提供するのに使用でき、そして次にパターン検出器１１０で検出することができる。１つに例示的実施形態においては、光源１０４は、ＬＥＤ１１８とレンズ１２０を含む。ＬＥＤ１１８から放出された輻射は、レンズ１２０を通って伝達されることにより、ハウジング１０２内のアパーチャ１０６を通過しそして作業表面１１６上に入射し、そしてこの作業表面１１６は、その上に所定のパターンまたはイメージを有することができる。次に、この光は、作業表面１１６からレンズ１０８の方に反射される。レンズ１０８は、表面１１６から反射された輻射を集め、そしてこれをイメージ検出器１１０（例えば、人工網膜）に向ける。尚、レンズ１０８は、ＬＥＤ１１８とイメージ検出器１１０のいずれかあるいは両方にレンズを設ければ、省くことができる。同様に、このレンズは、輻射を検出器が検出可能であれば、単に省き、これによって、イメージまたはパターンをレンズなしで検出するようにすることができる。
【００３４】
イメージ検出器１１０は、作業表面１１６上のイメージまたはパターンを表すイメージ信号を発生する。イメージ信号は、コントローラ１１２に供給し、そしてこれは、１実施形態においては、このイメージ信号に基づいて位置情報を計算する。この位置情報は、以下に詳細に説明するように、作業表面１１６に対し相対的なマウス４２の動きを示す。位置情報は、コントローラ１１２が、情報パケットの形態で、ケーブル（図示せず）のような出力を介して、図１および図２Ａに示したコンピュータ２０に供給する。マウス４２はまた、コントローラ１１２からの出力を、赤外線、紫外線、または無線周波数リンクのような無線伝送リンクを通して供給する。例示的な実施形態においては、コントローラ１１２が供給するこの位置情報は、シリアル・インターフェース、ユニバーサル・シリアル・バス（ＵＳＢ）インターフェース、あるいは任意のその他のインターフェース・フォーマットのような在来のフォーマットにしたがって提供する。
【００３５】
イメージ検出器１１０は、１実施形態では、三菱電機株式会社製造の人工網膜であり、そしてこれは、既知の方法で動作する可変感度光検出器（ＶＳＰＤ）の２次元アレイを含む。簡潔には、このＶＳＰＤは、集積された並置のダイオード対であって半絶縁のＧａＡｓ層（ｐｎ−ｎｐ構造）により分離したもので形成されている。１実施形態では、このアレイは、３２×３２エレメントのアレイであるが、希望に応じてこれより多くしたりあるいは少なくしたりすることができる。光検出器電流は、印加された電圧に対しその符号と大きさとの両方に依存する。このようなＶＳＰＤは、アナログ・メモリ効果を示し、これは、ある電圧が光書込パルスの存在の下で印加されたときに導電性情報を記憶する。この情報は、光読出パルスを注入することにより検索できる。
【００３６】
このようなデバイスにおけるイメージ処理は、光マトリックス−ベクトル乗算に基づいている。ある入力イメージは、このデバイス上に重みマトリックスとして投射される。全てのＶＳＰＤは、行に沿って接続された１つの電極を有して、感度制御ベクトルを発生する。このため、ＶＳＰＤ感度は、ある一定の範囲内で各行において任意の値にセットすることができる。加えて、残りのＶＳＰＤ電極は、列に沿って接続して、重みマトリックスに感度制御ベクトルを乗算したマトリックス・ベクトル積により定まる出力電流ベクトルを発生する。
【００３７】
例示的実施形態においては、イメージ検出器１１０は、エッジ抽出動作を実行するように制御する。２つの隣接する検出器行の感度は、＋１と−１とにそれぞれセットする一方で、他の全ての感度は０にセットする。この実施形態では、出力電流は、それら２つの活性の行の光感度の差に比例する。制御電圧パターンを循環形式（０，＋１，−１，０，０，等）でシフトさせることにより、入力イメージの水平エッジを検知する。したがって、本システムは、時間シーケンシャルでかつ半平行モードで動作する。
【００３８】
１つの例示的実施形態においては、マウス４２はまた、光源１０４に結合した電流ドライバ１１４も含んでいる。この実施形態では、コントローラ１１２は、間欠的に、光源１０４が発生した輻射の強度を検知し、そして光源１０４に供給する電流を電流ドライバ１１４を介して調節する。言い換えれば、検知した感度が所望の範囲より低い場合、コントローラ１１２は、電流ドライバ１１４にフィードバック信号を供給して、光源１０４に供給する電流をブーストすることにより、光源１０４から放出される電磁輻射の強度を増加させる。他方、もし輻射のこの強度が所望の範囲よりも高い場合、コントローラ１１２は、フィードバック信号を電流ドライバ１１４に供給して、光源１０４に供給する電流を減少させることにより、光源１０４から放出される輻射の強度を低下させる。このことは、例えばマウス４２の全体の電力消費を低くするために行うことができる。
【００３９】
図４と図５Ａ−図５Ｂとは、本発明の１つの形態によるマウス４２の動作を示している。コントローラ１１２は、Ａ／Ｄコンバータ１２２と、制御コンポーネント１２４と、イメージ・マッチング・コンポーネント１２６と、イメージ・テーブル１２８とを備えている。図４はまた、イメージ検出器１１０を示しており、これは、３２×３２のＶＳＰＤ（ピクセル）アレイ１２３を示しており、そしてこれに対し表面１１６からのイメージを向ける。イメージ検出器１１０のビュー・エリア１２３全体は、３２×３２ピクセル・アレイと一致する。しかし、全ビュー・エリア１２３内に定めているのは、サンプル・エリア１２５である。サンプル・エリア１２５は、ビュー・エリアよりも小さく、そして１つの例示的実施形態においては、ビュー・エリア１２３の中心１２７をほぼ中心とするおよそ１０ピクセル×１０ピクセルのエリアを含む。図４に示した実施形態では、表面１１６上のイメージは単にグリッド・パターンである。
【００４０】
動作については、コントローラ１１２は、先ず、光源１０４を活性化することにより、輻射が作業表面１１６上に当たるようにする。マウス４２は、所定のパターン（例えばグリッド・パターン）を有するあるいは所定のパターンのない表面で動作することができる。例えば、実質上いずれの表面も、顕微鏡的レベルのみであっても、何等かの不規則あるいは表面凹凸を有している。市販の人工網膜は、光源が十分に強力であれば、数ミクロンのサイズしかないイメージも分解することができる。したがって、この輻射は、表面１１６から反射されて、ビュー・エリア１２３上に当たり、表面１１６上の所定のパターンあるいは表面１１６上の表面凹凸が形成するイメージまたはパターンのいずれかを表す情報をそれと共に運ぶ。
【００４１】
コントローラ１１２が表面１１６上の所定のパターンを求めない実施形態においては、表面１１６の表面凹凸が形成するパターンを表すアナログ信号をＡ／Ｄコンバータ１２２に供給する。Ａ／Ｄコンバータ１２２は、この信号をデジタル値に変換し、そしてこの値は、制御コンポーネント１２４に供給する。制御コンポーネント１２４は、上述のエッジ抽出アルゴリズムのような任意の数の適当なアルゴリズムの内の１つを実行して、サンプル・エリア１２５に反射された表面１１６からのパターンまたはイメージを識別する。この情報は、制御コンポーネント１２４がこれに関連したメモリに格納する。次に、制御コンポーネント１２４は、所定のタイムアウト期間の間待機し、この期間は、例示として、表面１１６上におけるマウスの最大予測速度に基づいて定める。１つの例示的実施形態においては、このタイムアウト持続期間は、およそ１−１０ミリ秒である。
【００４２】
このタイムアウト期間後、制御コンポーネント１２４は、光源１０４を（これが不活性化されている場合には）再活性化し、そしてサンプル・エリア１２５内のイメージが移動したかどうか判定する。サンプル・エリア１２５内のイメージの移動は、マウス４２と表面１１６との間の相対的移動を示す。検出した移動に基づき、制御コンポーネント１２４は、位置情報を、慣行的でしかも受け入れ可能なフォーマット（例えば、図２Ｂに示したパケット６６）で、（ケーブルを通してのように）出力に提供する。この情報は、コンピュータ・ディスプレイ上のマウス・カーソルの移動を含む、任意の数の事に対し使用する。
【００４３】
ビュー・エリア１２３内のイメージまたはパターンの移動の後に、サンプル・エリア１２５内の新たなイメージまたはパターンを検出する。この新たなイメージを示すイメージ・データは、次に、制御コンポーネント１２４が格納する。次に、制御コンポーネント１２４は再び、もう一回タイムアウト期間の間待機し、そしてこの新イメージが移動したかどうか判定する。このプロセスは続行して、マウス４２が、マウス４２と作業表面１１６の相対的移動を示す位置情報を提供し続ける。
【００４４】
サンプル・エリア１２５内のイメージの移動の検出は、多くの様式で行うことができる。そのような技術には、クロス相関（cross-correlation）、サーキュラー・ハーモニクス（circular harmonics）、パターン・モーメント特性（pattern moment characteristics）、コード・ヒストグラム検出（chord histogram detection）が含まれる。表面１１６に対するマウス４２の回転移動もまた、所望ならば検出することができる。１つの例示的実施形態においては、レンズ１２０を、細長いあるいは楕円のパターンの輻射を送出するような形状にする。したがって、マウスを回転させた場合、楕円形状の回転も検出することができる。これら技術は全て、前記の同時係属中の米国特許出願に詳細に記述されている。
【００４５】
コントローラ１１２はまた、ビュー・エリア１２３内の所定のパターン（例えばグリッド・パターン）を検出し、そしてマウス４２に対するその所定のパターンの動きを検出するように構成することができる。例えば、図５Ａおよび図５Ｂは、サンプル・エリア１２５内の所定のパターンの動きを示している。図５Ａおよび図５Ｂに示したこの実施形態では、所定のグリッド・パターン（簡単のため垂直線のみを示す）は、交互の青線と赤線とで形成することにより、イメージ検出器１１０に反射された輻射が、青または赤のグリッド線がサンプル・エリア１２５内にあるかどうかの情報を運ぶ。もちろん、この交互のグリッド線は、異なった陰影の交互の厚さで形成したり、あるいは制御コンポーネント１２４がこれがイメージを検出したときに交互のグリッド線を識別できるようにするその他の区別できる特性を有するようにすることができる。
【００４６】
図５Ａにおいては、２つの青の線１３２と１３４とが、サンプル・エリア１２５内にあり、そして１つの赤の線１３６が、青線１３２と１３４との間でサンプル・エリア１２５内にある。マウスの移動の後、新たなパターンが、図５Ｂに示すように、サンプル・エリア１２５内にあることになる。この新たなパターンは、線１３２，１３４，１３６がサンプル・エリア１２５に対し左にシフトしており、そして別の赤線１３８がサンプル・エリア１２５の右に入っていることを示している。
【００４７】
イメージ検出器１１０のサンプル・レートは、例示として、同じくマウスの予測される最大速度に基づいて十分高く、このため、マウス４２は、新たなイメージが取得されるまでに１つのフルのグリッド間隔を移動させることができない。１つの例示的実施形態においては、制御コンポーネント１２４は、グリッド線間の所定の一定の距離を仮定している。そのようにして、制御コンポーネント１２４は、マウス４２が表面１１６に対し相対的に移動した距離および方向を判定するには、単に、サンプル・エリア１２５を通るグリッド線の数と、それらグリッド線の動きの方向とを追跡することが必要となるだけである。もちろん、これは、例示として、Ｘ方向とＹ方向の両方におけるグリッド線に対し行う。次に、制御コンポーネント１２４は、図２Ｂに示したものと同様に、表面１１６に対するマウス４２の動きを示すマウス・パケットを発生する。
【００４８】
可変解像度動作
図６は、マウス・パッドまたは表面１１６を示し、これは、その上に４つの異なったゾーン１４０，１４２，１４４，１４６を配置している。表面１１６上のゾーン１４０は、その上に所定のパターンを有していない。セクション１４２は、均一に離間したグリッド線から成るグリッド線パターンを有している。ゾーン１４４は、高い解像度のグリッド線パターンを有し、これにおいては、グリッド線は均一に離間しているがゾーン１４２におけるよりも密に離間させてある。ゾーン１４６もまた、グリッド線パターンを有するが、このパターンは非直交であり、グリッド線間の間隔がゾーン１４６の一方の側からゾーン１４６の他方の側に向かって変化している。ゾーン１４０−１４６により、マウス４２は、デバイス・ドライバを変える必要なく、かつ制御パネル・アプレットを呼び出さなくても、可変解像度形式で動作することができる。
【００４９】
マウス４２がゾーン１４０上にあるとき、制御コンポーネント１２４は、上述のようにランダムな（あるいはいずれにしても非所定の）パターンに基づいて位置情報を提供する。言い換えれば、制御コンポーネント１２４は、ゾーン１４０内の表面凹凸に基づきサンプル・エリア１２５内で識別するパターンまたはイメージの周期的な“スナップショット”を取り、そしてこれらイメージのサンプル・エリア１２５に対する動きを判定することにより位置情報を提供する。
【００５０】
しかし、マウス４２が解像度ゾーン１４２上を動くとき、制御コンポーネント１２４は、マウス４２の下のグリッド線構造を識別する。これらグリッド線は図示のように表面１１６の表面凹凸よりもはるかに著しいため、制御コンポーネント１２４は、マウス４２がその上に所定パターンを有するゾーン上にあることを容易に識別することができる。したがって、マウス４２がゾーン１４２上にあるとき、制御コンポーネント１２４は、図５Ａおよび図５Ｂで上述のイメージを単に処理し、両軸に沿ってサンプル・エリア１２５を通過するグリッド線をカウントして、マウス４２の動きを判定する。
【００５１】
同様に、マウス４２が高解像度ゾーン１４４上を動くとき、制御コンポーネント１２４は、マウス４２がその上に所定パターンを有するゾーン上にあることを迅速に判定することができ、そしてゾーン１４２で述べたモードで動作する。ここで、制御コンポーネント１２４がグリッド線間の所定の距離を仮定するように構成していることを思い起こされたい。ゾーン１４４内のグリッド線は均一に離間しているが、これらは、ゾーン１４２のものよりもはるかに密に離間している（例えば、ゾーン１４４内のグリッド線は、ゾーン１４２内のグリッド線のものの半分の間隔を有する）。制御コンポーネント１２４は、単に、サンプル・エリア１２５を通過するグリッド線の数をカウントする。したがって、ゾーン１４４に対するマウス４２の所与の移動量に関しては、制御コンポーネント１２４は、ゾーン１４２に対するマウス４２のその同じ相対的移動量の２倍だけマウス４２が移動したことを示す位置情報を提供する。マウス４２をゾーン１４２からゾーン１４４に単に動かすことにより、ユーザは、マウス４２のスケールを効果的に半分にし、かつその解像度を２倍にすることができ、これには、どのようなソフトウェアの変更もまた制御パネルへのアクセスも要らない。
【００５２】
また、ゾーン１４６も、グリッド・パターンをその上に有している。しかし、ゾーン１４２および１４４とは異なり、ゾーン１４６内のグリッド線間の間隔は、このゾーンを横切る方向に変化している。図６に示したように、ゾーン１４６の中央領域内のグリッド線の間隔は、最も大きいが、ゾーン１４６の両端（また上から下）におけるグリッド線間の間隔は、ゾーン１４６の縁に向かって減少している。ゾーン１４２および１４４に関して説明したように、制御コンポーネント１２４は、マウス４２がその上に所定パターンを有する領域上にあることを検出する。マウス４２の解像度およびスケールは、ゾーン１４６を横切って移動させるにつれ、ゾーン１４６内のグリッド線の間隔の変化に基づいて変化する。したがって、ユーザは、単にマウスをゾーン１４６上に置くことにより、マウス４２を可変スケールで可変解像度の入力デバイスに変換することができ、同じくこれには、デバイス・ドライバに対し何等変更をすることが要らず、また制御パネル・アプレットを呼び出すことも要らない。
【００５３】
特別のコード化したイメージの検出
コントローラ１１２は、例示として、イメージ検出器１１０と共に、表面１１６上の実質上任意のイメージを、これが所定のイメージであるかあるいは表面の凹凸を示すランダムなイメージであるかに拘わらず検出するように構成している。したがって、マウス・コントローラ１１２とイメージ検出器１１０とは、特別にコード化したイメージを検出することができ、このイメージは、特別な意味を有し、そして表面１１６上に配置している。
【００５４】
図７は、非常に単純なコード化パターンを示しており、これは、表面１１６上の所与のゾーンにおいて繰り返すことができる。１つの例示的実施形態においては、このコード化パターンは、制御コンポーネント１２４が図８に示した簡単な投射技術を使って識別する。イメージ・センサ１１０内のピクセル・アレイは、これを制御することにより、各行および各列内の活性のピクセルの和を表す出力を提供することができる。この情報は、図８に示したＸＹ軸に投射する。
【００５５】
言い換えれば、図７および図８に示したパターンは、反転三角形パターンであり、これは、検出器アレイに反射されたとき、そのベースの３つのピクセルと、その反転頂点端部の１つを活性化する。このパターンは、単一の軸に投射しそしてＸ軸の電圧信号１５０とＹ軸の電圧信号１５２により表すことができる。信号１５０は、ビュー・エリア内に活性ピクセルがないことを示す第１のレベル１５４を有する。また、信号１５０は、ビュー・エリア内の単一の活性ピクセルを示す第２のレベル１５６も有する。さらに、信号１５０は、ビュー・エリア内の２つの活性ピクセルを示す第３のレベル１５８を有する。このように、信号レベル１５４，１５６，１５８は、Ｘ軸に投射されたとき、このイメージに関連した活性のピクセルが発生する信号の和を表す。
【００５６】
信号１５２は、Ｙ軸へのイメージの投射を示している。信号１５２は、３つの活性ピクセルを示す第１のレベル１６０と、２つの活性ピクセルおよび１つの活性ピクセルをそれぞれ示す第２および第３のレベル１６２，１６４を有する。
【００５７】
これらデジタル化された信号を受けると、制御コンポーネント１２４は、そのコード化パターンを識別し、そしてこれをマッチング・コンポーネント１６６に供給する。マッチング・コンポーネント１６６は、イメージ・テーブル１２８にアクセスし、このテーブルをコントローラ１１２が認識することができる。マッチング・コンポーネント１２６は、任意の適当なそして好ましくは簡単なマッチング・アルゴリズムを使って、制御コンポーネント１２４が識別したイメージを、イメージ・テーブル１２８に格納した所定のコード化イメージと突き合わせする。例示として、イメージ・テーブル１２８は、認識すべきイメージを示すデータを格納するだけでなく、その認識したイメージに関連した値も含み、そしてこれは、この所望の情報をコンピュータ２０に戻す際に制御コンポーネント１２４が発生するマウス・パケットにおいて使用することができる。
【００５８】
マウス・パケットを発生するには、制御コンポーネント１２４は、好ましくは、図９に番号１７０で全体を示した新たなマウス・パケットを生成する。パケット１７０は、図２Ｂに示したパケット６６と同様であるが、ただし、これは、情報の追加バイト１７２を含む。バイト１７２は、パケット１７０内の他のバイトにおけるのと同じように、好ましくは、８ビットの情報を含み、これは、制御コンポーネント１２４が確かにイメージ・テーブル１２８内にある所定のイメージを認識したこと、また識別したこのコード化パターンと関連した値もイメージ・テーブル１２８に含むこと、をエンコードするのに使用する。
【００５９】
１例として、図７に示したコード化パターンは、表面１１６上に繰り返し配置して、コンピュータ２０がある一定のモードで動作することあるいはモードを変更することを示すようにすることができる。１つの例示的実施形態においては、図７に示したこのコード化パターンを検出したとき、イメージ・テーブル１２８内のこのパターンに関連した機能／モード変更値は、コンピュータ２０が視力低下モード（vision impaired mode）で動作することを示し、このモードでは、全てのフォントを、大幅にそのサイズを公称のレベルよりも上に大きくする。
【００６０】
図１０Ａと図１０Ｂとは、このような環境下でのマウス４２とコンピュータ２０の動作を示すフロー図を示している。先ず、ユーザは、ブロック１７４で示すようにマウスを操作する。言い換えれば、ユーザは、単にマウスを、繰り返しのコード化パターンを含む表面１１６のある領域あるいはゾーン上で動かすかあるいは置く。次に、イメージ・センサ１１０は、このイメージを検出し、そして検出したイメージを示すデータを制御コンポーネント１２４に渡す。次に、制御コンポーネント１２４は、このイメージを上述のように識別し、そしてこのイメージをマッチング・コンポーネント１２６に渡す。このことは、ブロック１７６と１７８とに示している。
【００６１】
マッチング・コンポーネント１２６は、イメージ・テーブル１２８にアクセスし、そして識別したイメージを（可能であれば）イメージ・テーブル１２８に含まれたイメージと突き合わせる。これは、ブロック１２８で示している。マッチング・コンポーネント１２６は次に、イメージ・テーブル１２８からの突き合わせたイメージに関連した機能／モード変更値を制御コンポーネント１２４に渡す。さらに、制御コンポーネント１２４は、マウス・パケットを生成し、このパケットのバイト５にはその機能／モード変更値を含んでいる。これは、ブロック１８２で示している。
【００６２】
次に、制御コンポーネント１２４は、ブロック１８４で示すように、このパケットをシリアル・インターフェース４６に渡す。シリアル・インターフェース４６は、このシリアル・マウス・パケットをパラレル・マウス・パケット情報に変換し、そしてこの情報をマウス・ドライバ６０に供給する。マウス・ドライバ６０は、バイト５のこの情報を調べ、そしてその機能／モード変更情報（これはさらに識別した所定コード化パターンに基づく）に基づきマウス・メッセージを作成する。これは、ブロック１８６と１８８とで示している。マウス・ドライバ６０は、ブロック１９０で示すように、このマウス・メッセージをオペレーティング・システム３５に渡す。
【００６３】
ここで注意されたいのは、マウス・メッセージを、オペレーティング・システムに対し向けた特別なメッセージとすることができることである。例えば、視力低下モードで動作させるため、このマウス・メッセージでオペレーティング・システムに対し、フォント・サイズを増大させることが必要であることを示すことができる。マウス・メッセージが特別なメッセージであるかどうかの判定は、ブロック１９２で示している。マウス・メッセージがオペレーティング・システムに対し向けたメッセージである場合、オペレーティング・システムは、必要なステップを取って、マウス・メッセージ内の情報に基づきコンピュータ２０の動作モードを変更する。これは、ブロック１９４で示している。コンピュータ２０が視力低下モードに変更すべきである場合、オペレーティング・システムは、ＡＰＩをコールする等により、所望のレベルへのフォント・サイズの制御パネル変更を呼び出す。次に、オペレーティング・システムは、このマウス・メッセージを使い果たす。これは、ブロック１９４と１９６で示している。
【００６４】
ブロック１９２において、マウス・メッセージがオペレーティング・システムに向けた特別なメッセージではないと判定した場合、オペレーティング・システムは、単に、このマウス・メッセージを登録マウス・メッセージ・フックに渡す。これは、ブロック１９８で示す。このメッセージ・フックは、そのマウス・メッセージに含まれた情報を利用するように構成されたアプリケーションが登録することができる。このような情報は、例えば、あるコマンドを、コンピュータ２０において現在フォーカス中のウィンドウを所有するアプリケーションに渡すべきことを示すことができる。したがって、メッセージ・フックは、ブロック２００と２０２とで示すように、そのフォーカスを識別することにより実行する。次に、メッセージ・フックは、その所望のコマンドをフォーカス・アプリケーションに発し、そしてこのマウス・メッセージを使い果たす。これは、ブロック２０４と１９６とにより示している。
【００６５】
上記の説明はコンピュータ２０の動作モードを通常の視力モードから視力低下モードに変更することに関して進めてきたが、この技術は、コンピュータ２０の動作モードに対する実質上どのような変更に対しても使用することができる。フォント・サイズの変更は、単に１つの例に過ぎない。また、注意されたいことは、マウス４２は表面１１６上のコード化イメージを識別することができるが、同時にまた、サンプル・エリア１２３内のコード化イメージの動きに基づいて、あるいはサンプル・エリア１２３内の表面１１６の表面凹凸が作成するイメージの動きに基づいて（これらの双方について上述）、位置情報を供給することができることである。この場合、マウス・パケット１７０は、バイト５に含まれた情報を含むだけでなく、Ｘ方向およびＹ方向におけるマウス４２の動きを示す位置情報を含む。もちろん、マウス４２はまた、マウス４２上のボタンの作動およびホイールの回転を示す情報を、パケット１７０において同時に提供することもできる。
【００６６】
さらに、両側に異なったコード化メッセージを含むマウス・パッドを、例示として使用する。言い換えれば、低下視力コードは、このマウス・パッドの一方の側に提供し、そしてマウス・パッドの全表面を横切って、図６に示したものような種々のゾーンを有するグリッド線に沿い繰り返すことができる。この場合、マウス・パッドの単一の側は、コンピュータ２０に対し、視力低下モードで動作することを示す支持を提供し、そしてまたユーザに対し、図６に関して上述した可変解像度能力を提供する。これと同時に、マウス・パッドの反対側は、視力低下コード化シンボルをその上に有さずに同じ可変解像度ゾーン（または任意のその他の適当なパターン）を含むことができる。このため、ユーザが視力低下である場合、ユーザは、単にマウス・パッドを裏返し、マウス４２をこのパッド上に置き、そしてコンピュータ２０は、自動的に視力低下モードにスイッチすることになる。
【００６７】
本発明はまた、他の所望の機能を実現するのに使用することができる。例えば、マウス４２は、ユーザＩＤまたはパスワードを入力してログオン動作を実行するためのユーザ入力デバイスとして使用することもできる。図１１は、図４に示したのと同様のブロック図であり、そして同様のアイテムには対応する番号を付してある。しかし、図１１は、異なったイメージ２１０を示しており、これは、表面１１６上に配置している。図１１に示した実施形態においては、イメージ２１０は、バーコードとして示している。しかし、任意の他の認識可能なイメージを使用することができる。イメージ２１０は、１実施形態においては、個人化されたマウス・パッド、またはユーザがセキュリティ目的のため保持するＩＤバッジあるいは別の同様の個人化されたアイテム上に配置する。
【００６８】
在来のコンピュータ・システムのあるものにおいては、ログオン・プロシージャは、ユーザがこのコンピュータ・システムのある種の面にアクセスを許可される前に要求される。コンピュータをブートアップするとき、ブートアップ・シーケンスは、オペレーティング・システムがログオン・アプリケーションをコールし、そしてこのアプリケーションがユーザ・インターフェースを生成して、ユーザがネームあるいはＩＤ番号並びにパスワードのような識別情報を入力するのを要求するようにできる。このユーザ入力情報に基づき、このログオン・アプリケーションは、このユーザに対し、このコンピュータ・システムの完全なアクセス、部分的のみのアクセス（異なったレベルのセキュリティが実施されている場合）を許可するか、あるいはアクセスを全く許可しない（例えば、ユーザ入力情報が、このユーザがこのシステムに対しどのようなアクセスも有することが認可されていない場合）。
【００６９】
例えば、ある種の財務アプリケーションあるいは請求書作成アプリケーションは、認可されたユーザのみが極秘の財務情報を含むある種のデータベースへのアクセスを有するのを許可する。同様に、ネットワーク環境においては、ある種のログオン・アプリケーションは、ユーザの識別およびセキュリティ・レベルに基づいてネットワーク・ドライブへのアクセスを管理することになる。さらに、“WINDOWS”ブランドのオペレーティング・システムを利用するシステムに実施された自動ログオン・プロシージャは、ユーザに対し、ログオン・プロシージャを実行する前にこのコンピュータを（CTL-ALT-DELキー・シーケンスを実行すること等により）リブートするのを要求する。このようなログオン動作は、少々煩わしくなることがある。
【００７０】
したがって、本発明は、単にマウス４２をユーザの個人的なログオン情報を含むコード化イメージ上に置くことにより、あるいはマウス４２をユーザの個人的なログオン情報をエンコードしたイメージ（例えば、イメージ２１０において示したバーコード）を横切るように走査することにより、ログオンを行うことができるシステムを提供する。
【００７１】
このコード化イメージが十分に小さくて、マウス４２を動かさなければコントローラ１１２が認識できないような場合（すなわち、その全体がビュー・エリア１２３内に現れる程十分に小さい場合）、このイメージは、上述のように、任意の他のコード化イメージと同じように単に処理する。言い換えれば、このイメージをイメージ検出器１１０で捕捉し、Ａ／Ｄコンバータ１２２に供給し、そしてこのコンバータは、このイメージ信号をデジタル信号に変換し、そしてこれを制御コンポーネント１２４に渡す。次に、制御コンポーネント１２４は、このイメージを識別し、そしてこれをマッチング・コンポーネント１２６に供給し、そしてこのコンポーネントは、この識別したイメージをイメージ・テーブル１２８内に格納した対応するイメージと突き合わせする。この場合、イメージ・テーブル１２８はまた、ユーザのログオン情報として、そのイメージを識別する関連のイメージ値も含む。
【００７２】
この情報は、制御コンポーネント１２４に供給し戻し、そしてこの制御コンポーネント１２４は、マウス・パケットを生成し、このマウス・パケットをシリアル・インターフェース４６を介してマウス・ドライバ６０に供給する。マウス・ドライバ６０は、さらに、マウス・メッセージを生成し、これは、オペレーティング・システム３５に送る。オペレーティング・システム３５がログオン動作を取り扱う実施形態においては、このマウス・メッセージは、オペレーティング・システム３５に対する特別なマウス・メッセージとして示す。別個のアプリケーションがログオン・プロシージャを取り扱う別の実施形態においては、このマウス・メッセージは、登録メッセージ・フック・プロシージャ６２に渡すべき通常マウス・メッセージとして単に示す。この場合、オペレーティング・システム３５は、このマウス・メッセージを、ログオン・アプリケーションに到達するまで、メッセージ・フック・プロシージャに渡す。このログオン・アプリケーションは、コマンドをコンピュータ２０の他のコンポーネントに発して、コンピュータ２０を、ユーザに対し所望のレベルのアクセスを許可するように、あるいはこのユーザ・アクセスを拒否しそして単にエラー・メッセージをユーザに発するように構成する。
【００７３】
マウス４２がイメージ２１０を（イメージ２１０がバーコードである場合のように）横切るように走査させる実施形態においては、動作は、概して図１２Ａおよび図１２Ｂに示すフロー図により示している。手始めに注意するに値することは、マウス４２が、ユーザがログオン・モードをエンターしたいことを示すセレクト入力（例えば、ボタンの１つの押し下げ）をユーザから受けるように構成することができることである。
【００７４】
次に、ユーザは、ブロック２１２に示すように、イメージ２１０を横切るようにマウス４２を走査させる。イメージ２１０の横切るマウス４２の走査により、離散的イメージの１つのシーケンスが生成され、これらは、バーコード・イメージ２１０にエンコードされた情報を示す。イメージ検出器１１０は、このイメージ・シーケンスを捕捉し、そしてこれを、さらにＡ／Ｄコンバータ１２２に供給し、そしてこのコンバータは、このイメージ・シーケンスを表すデジタル情報を制御コンポーネント１２４に供給する。これは、ブロック２１４で示している。
【００７５】
制御コンポーネント１２４は、ブロック２１６で示すように、そのイメージ・シーケンス内の各イメージを識別し、そしてこのイメージ・シーケンスをマッチング・コンポーネント１２６に供給する。マッチング・コンポーネント１２６は、ブロック２１８で示すように、このイメージ・シーケンスをイメージ・テーブル１２８に格納されたあるイメージ・シーケンスと突き合わせする。制御コンポーネント１２４は、それに関連の情報をイメージ・テーブル１２８から受け、そしてその一致したイメージ・シーケンスに関連したログオン情報を含むマウス・パケットを生成する。これは、ブロック２２０で示している。制御コンポーネント１２４は、ブロック２２２で示すように、このマウス・パケットをシリアル・インターフェース４６に渡す。次に、シリアル・インターフェース４６は、ブロック２２４に示すように、このシリアル・マウス・パケットをパラレルのマウス・パケット情報に変換し、そしてこのパラレル・マウス・パケット情報をマウス・ドライバ６０に供給する。
【００７６】
ドライバ６０は、ブロック２２６で示すように、受けたログオン・イベント情報に基づきマウス・メッセージを作成し、そしてブロック２２８で示すように、このマウス・メッセージをオペレーティング・システム３５に渡す。ログオン・プロシージャをオペレーティング・システム３５とは別個のアプリケーションが取り扱うべき実施形態においては、このログオン・アプリケーションは、既にそれ自身をオペレーティング・システム３５に、マウス・メッセージ・フックとして登録していなければならない。これは、ブロック２３０で示している。
【００７７】
次に、オペレーティング・システム３５は、ブロック２３２で示すように、このマウス・メッセージを次の登録されたマウス・メッセージ・フックに渡し、そしてこのメッセージ・フック・プロシージャをブロック２３４で示すように実行する。１つの例示的実施形態においては、このメッセージ・フックは、単に、そのログオン・アプリケーションに対しコマンドを発して、このログオン・アプリケーションそのマウス・メッセージ内の識別およびパスワード情報を検証するよう要求する。これは、ブロック２３６で示している。次に、コマンドをそのログオン・アプリケーションから発して、コンピュータ２０が適当なアクセスをユーザに対し許可するように構成する。これは、ブロック２３８で示している。このとき、ログオン・アプリケーションに関連したこのメッセージ・フックは、ブロック２４０で示すように、このマウス・メッセージを使い果たす。ここで注意されたいのは、以上の説明は、ログオン動作に関して進めてきたが、当業者には認識されるように、本発明により実現する技術は、任意の所望の機能を実行するために、あるいは任意の他のアプリケーションにもコマンドを発するためにも使用することができる。
【００７８】
カスタム・テンプレートの生成
本発明はまた、カスタム・テンプレートまたはプリントした表面１１６を生成するのに使用することができ、これは、その上にカスタム化したコード化イメージを含み（紙、マイラー等にプリント）、これは、本システムを、特別なユーザあるいは特定のニーズに対しカスタム化するように作用する。例えば、ある種のゲーム・アプリケーションは、ユーザがゲームのより高いレベルに到達するにつれ、追加的な機能をみせる。言い換えれば、ユーザがある一定のスコアに達するかあるいはある一定のスクリーンを渡ると、ゲーム・アプリケーションは、追加的な“命（lives）”または“弾薬（ammunition）”を提供するか、あるいはユーザに対し、追加的な“武器（weapons）”またはその他のゲーム中で使用できるツールあるいは道具（instrument）に対するアクセスを提供する。同様に、ある種のこのようなアプリケーションにおいては、ユーザがある一定のレベルに達すると、アプリケーションは、既存のツールあるいは道具の利用を通して異なった応答をトリガする。本発明は、このようなゲームの機能を増強するのに使用することができる。
【００７９】
機能の増強のため、このアプリケーションを、表面１１６上に配置するためのカスタム化したテンプレートをプリントアウトするように構成する。このテンプレートは、カスタム化したエンコード化イメージを含み、これをマウス４２が読み取り、そしてこの結果マウス・メッセージの作成をもたらし、このメッセージは、本アプリケーションが解釈することによって、本アプリケーションの機能を変更する。このプロセスは、図１３に示したフロー図で全体を示している。
【００８０】
先ず初めに、このアプリケーションは、トリガ・イベントを受けて、カスタム化したエンコード化イメージを含む新たなカスタム化テンプレートをプリントする。これは、ブロック２４２で示している。上述のように、このイベントは、単に、ユーザがゲームにおいて所定のレベルに達したこととすることができる。また、このトリガ・イベントは、このアプリケーションがユーザに対し明かした秘密のコードをユーザがエンターしたかあるいはそれを走査したことに対応させることができる。ユーザがそのような秘密コードをマウス４２で走査する実施形態においては、このコードは、図１０Ａおよび図１０Ｂに関して上述したプロトコルを（例えば）使ってこのアプリケーションに送る。
【００８１】
次に、このアプリケーションは、コマンドを発することにより、このアプリケーションに特有のカスタム化したテンプレートをプリントアウトする。これは、ブロック２４４で示している。また、もちろん、本アプリケーションは、オペレーティング・システム３５に対し、任意のその他の所要のマウス・メッセージ・フックを登録して、これが新たなテンプレート上のカスタム化したコード化イメージを示す情報を含むマウス・メッセージを受けるようにしなければならない。この新たなテンプレートは、次に表面１１６上に置き、そしてユーザが使用する。
【００８２】
ここで注意すべきことは、上記説明はゲーム・アプリケーションに関して進めてきたが、本発明は、これに限定されない。当業者には認識されるように、本発明は、あるアプリケーションに対しカスタム化された任意のテンプレートを、これが使用されるアプリケーションに無関係にプリントアウトするために利用することができる。
【００８３】
マウス４２の絶対位置デバイスとしての使用
また、本発明は、マウス４２を相対位置デバイスを絶対位置デバイスに選択的に変換するのに利用することができる。これは、図１４に示している。図１４は、マウス・パッドまたはテンプレート２４８を示しており、これは、その上に３つの別個のゾーン２５０，２５２，２５４を有している。１実施形態においては、ゾーン２５０は、その上に全く所定パターンを有していないか、あるいはグリッド構造パターン、もしくは図５Ａおよび図５Ｂで説明したのと同様のその他の類似のパターンを有する。このため、マウス４２がゾーン２５０上にあるとき、これは、単に、相対位置決めデバイスとして作用する。
【００８４】
ゾーン２５２は、その上に繰り返しのコードが配置されている。言い換えれば、ゾーン２５２は、多数のセル２５６を有し、その各セルが、同じコード化シンボル２５８を含んでいる。ゾーン２５２内のこの繰り返しのコード化領域は、上述のように、コンピュータ２０を所望の動作モードに置くのに使用したり、またマウス４２のゾーン２５２上での動きに対応する相対位置情報を生成するのに使用することができる。
【００８５】
しかし、テンプレート２４８はまた、ゾーン２５４も含み、これは、複数のセル２６０を含んでいて、その各々は、固有コード化イメージ２６２でエンコードしている。セル２６０内の各コード化イメージ２６２は、他のセル２６０内の他のエンコードされたイメージ２６２とは異なっているため、ゾーン２５４上でのマウス４２の配置は、マウス４２を絶対位置決めデバイスに変換するのに使用することができる。
【００８６】
固有コード化イメージ２６２の各々は、イメージ・テーブル１２８に格納している。このコード化イメージの各々はまた、（イメージ・テーブル１２８内に）それに関連した値を有し、これは、ゾーン２５４内のマウス４２の絶対位置を示す。したがって、コード化イメージ２６２を制御コンポーネント１２４が識別すると、これをマッチング・コンポーネント１２６に渡し、そしてこれは、このコード化イメージを、イメージ・テーブル１２８内の対応するイメージと突き合わせる。次に、イメージ・テーブル１２８は、絶対位置情報を制御コンポーネント１２４に提供し、そしてこのコンポーネントは、コンピュータ２０に渡すマウス・パケットを生成し、このパケットは、絶対位置情報を含む。この絶対位置情報は、コンピュータ２０のディスプレイ・スクリーン上のカーソルを所定の位置に置くのに使用することができ、その位置は、マウス４２の相対移動に無関係に絶対位置情報に対応している。このようにして、マウス４２は、テンプレート２４８からピックアップし、そしてゾーン２５４内の別の場所に降ろすことができる。降ろしたとき、カーソルは、マウスが置かれたゾーン２５４から読み取った絶対位置に対応するディスプレイ・スクリーン上の別の位置に動くことになる。
【００８７】
イメージ・テーブル１２８内のイメージの生成
理解されるように、識別したイメージをイメージ・テーブル１２８内にあるイメージと突き合わせる前に、それらイメージを何らかの方法で生成しそしてイメージ・テーブル１２８内に配置しなければならない。図１５Ａ、図１５Ｂおよび図１６は、これを行う多くの実施形態を示している。
【００８８】
初めに、それらイメージは、予め形成したイメージとすることができ、そしてこれらは単にコンピュータ２０にロードする。これら予め形成したイメージは、次にコントローラ１１２内の制御コンポーネント１２４にダウンロードし、そしてこれは、それらイメージをイメージ・テーブル１２８内に配置する。イメージのこのダウンロードは、任意の適当なプロトコルを使って行うことができる。例えば、コンピュータ２０内のイメージ・ロード・コンポーネントは、コンピュータ２０内のその予め形成のイメージにアクセスしそしてイメージ・パケットを生成し、これをオペレーティング・システム３５に渡す。この場合、マウス・ドライバ６０には、イメージ・パケット伝送コンポーネントを設け、これは、オペレーティング・システム３５からそのイメージ・パケットを受け、そしてパラレルのこれらをシリアル・インターフェース４６に供給する。シリアル・インターフェース４６は次に、これらパケットをシリアル化し、そしてこれらを、適当なリンクを通して制御コンポーネント１２４に供給し、このコンポーネントは、これらイメージをイメージ・テーブル１２８内に単に置く。これらイメージは次に、イメージ検出器１１０が捕捉し制御コンポーネント１２４が識別したイメージとの突き合わせにおいて、マッチング・コンポーネント１２６が使用する。
【００８９】
予め形成したイメージは、１つの例示的実施形態においては、実質上任意の形態を取ることができ、これらは、向き補償用コードである。例えば、これらコードは、表面１１６の平面内においてマウス４２のこれが配置される角度方向とは無関係に、制御コンポーネント１２４が認識可能となる。したがって、ユーザが、マウス４２を表面１１６に対し相対的に移動させるときに、マウス４２を表面１１６の平面においてわずかに回転させた場合、このコード化イメージは、マウス４２の特定の向きに無関係に識別することができるように構成する。
【００９０】
図１５Ｂは、そのようなコード化イメージの１つの例示的実施形態である。図１５Ｂは、コード化イメージ２６４を示しており、これは、一対の同心円２６６および２６８と、そして向きマーカ２７０とを含んでいる。イメージ２６４はまた、複数のコード化イメージ・セル２７２を含み、これらは、コード化メッセージ２６４が示す情報を含む。イメージ２６４を示すイメージ信号を制御コンポーネント１２４に提供すると、制御コンポーネント１２４は、単純なアルゴリズムを使って、同心円２６６および２６８とマーカ２７０とを識別する。マーカ２７０の場所に基づき、制御コンポーネント１２４は、マウス４２に対するイメージ２６４の向きを容易に判定することができ、そして判定したとき、セル２７２内の情報に関してイメージ２６４の残りを調べることに進むことができる。
【００９１】
このような向き補償用コードの多様なものが使用でき、また向き補償用コードが本発明の全ての実施形態において使用されることが必ずしも必要ではないが、ある種のこのような向き補償用コードは、市販されており、そして用語ＵＳＳ−ＭａｘｉＣｏｄｅシステムと呼ばれている。このシステムを利用するコードはまた、ある種のフォールトトレランス特性を示し、これは、望ましいことがある。
【００９２】
コード化イメージを予め形成しそしてコンピュータ２０からマウス４２にダウンロードすることができるだけでなく、これらは、コンピュータ・システム２０とマウス４２が学習することもできる。図１５Ａは、コンピュータ２０を示す機能ブロック図である。図１５Ａは、図２Ａと同様であり、したがって同様のアイテムには対応する番号を付してある。しかし、図１５Ａは、コンピュータ２０に学習モード・コンポーネント２７４も設けていることを示している。学習モード・コンポーネント２７４は、例示として、学習モード・アプリケーションと関連しており、そしてこのアプリケーションは、オペレーティング・システム３５にメッセージ・フックを登録している。
【００９３】
図１６は、学習モードにおけるマウス４２とコンピュータ２０の動作を示している。先ず、ユーザは、この学習モードを開始させる。これは、単に、マウスをマウス・パッド上の予めコード化したパターン上に置くか、マウスの作動ボタンを押すか、あるいはキーボード上の１つのキーまたはキー・シーケンスを押すことにより行うことができる。学習モード開始に応答して、オペレーティング・システム３５は、学習モード・コンポーネント２７４をコールし、そしてこれは、ユーザに対しユーザ・インターフェースを提供してこの特定の機能またはモードの変更を示し、これは、マウス４２が捕捉し学習する次のコード化イメージに割り当てる。この機能／モード変更の指定における学習モードの開始は、図１６のブロック２７６および２７８で示している。
【００９４】
次に、ユーザは、表面１１６上のある選択した領域上をマウスで走査し、この領域は、捕捉すべきコード化イメージを含んでいる。代替的には、ユーザは、単に、マウス４２をその領域上に配置することができるが、それは、コード化イメージが表面１１６上で繰り返されそして互いに十分に近接していて、ユーザがマウス４２をどこに置こうとも、そのコード化イメージの少なくとも１つをイメージ検出器１１０が捕捉することになるような場合である。これは、ブロック２８０で示している。
【００９５】
次に、これらイメージは、イメージ検出器１１０で捕捉し、そしてこのイメージを示すイメージ・データは、マウス４２内の制御コンポーネント１２４が提供する。マウス・パケットは、シリアル・インターフェース４６にそしてマウス・ドライバ６０に伝送し、そしてこのドライバで、そのイメージ・データを担持したマウス・メッセージを生成しそしてオペレーティング・システム３５に供給する。これは、ブロック２８２および２８４で示している。オペレーティング・システム３５は、このマウス・メッセージをメッセージ・フック・プロシージャに送り、そしてこのプロシージャは、オペレーティング・システム３５に登録してあって、これによりマウス・メッセージが最終的に、学習モード・コンポーネント２７４に供給されるようにする。これは、ブロック２８６で示している。
【００９６】
学習モード・コンポーネント２７４は、このイメージの特徴付けを、このイメージにパターン・キーまたはパターン署名キーを割り当てることにより行い、そしてこれは、そのイメージを識別する際に制御コンポーネント１２４が、そしてマッチング・コンポーネント１２６がそのイメージをイメージ・テーブル１２８に格納された他のイメージと突き合わせる際に使用することができる。これは、ブロック２８６と２８８で示している。次に、学習モード・コンポーネント２７４は、生成されたそのパターン・キーを、コード化イメージが表すべき機能またはモードの変更を表す値と関連付ける。この値は、イメージ・キーと関連付けて、マウス４２内のイメージ・テーブル１２８におけるエントリのためのイメージ・テーブル・エントリを形成する。これは、ブロック２９０で示している。
【００９７】
次に、このイメージ・テーブル・エントリは、マウス４２に伝送し戻し、これは、予め形成したコード化イメージをマウス４２からコンピュータ２０に送るために設計したもののような、任意の適当なプロトコルを使用して行う。これは、ブロック２９２で示している。マウス４２に送ったこのイメージ・テーブル・エントリはまた、コンピュータ２０のあるメモリ・ロケーションにも送り、これにより、これらが、後で、例えば１つのマウスをコンピュータ２０の操作の間に別のマウスに切り換えるときに、別のマウス４２にダウンロードできるようにする。
【００９８】
ここで注意すべきであるが、学習モードのこの説明は、所与の機能に関連付けるべき単一のイメージの捕捉のみに関して進めたが、他の方法も使用することができる。例えば、学習モード・コンポーネントは、ユーザに対し、学習すべき同じコード化イメージ上にマウスを再び置くように指図することにより、同じコード化イメージの２つのインスタンスを捕捉できるようにする。これら２つのインスタンスは、次に、学習モード・コンポーネント２７４によって平均化することによって、学習すべきそれらコード化イメージを示す平均値を得るようにする。このプロセスは、例示として多数の回数繰り返すことにより、イメージ捕捉プロセスに関するノイズまたは他の異常の影響を低減するのに役立つようにする。
【００９９】
結び
以上から分かるように、本発明は、パターン情報をコンピュータに供給することができる機構を提供する。このパターン情報は、広範な目的のためにコンピュータが使用することができる。コンピュータは、このコンピュータの稼働特性をそのパターン情報に基づいて変更することができるように構成することができる。稼働特性は、コンピュータがどのように動作するかについての実質上いかなる変更も表すことができる。稼働特性のこの変更は、表面１１６から読み取ったイメージ（これは、部分的なイメージまたはパターンを含む）に基づき生成される変更イベントと呼ぶことができる。変更イベントは、例えば、コンピュータ入力デバイスの振る舞い上の特性における変更、これがアタッチされるコンピュータの稼働モード、コンピュータのオペレーティング・システムの稼働特性、アプリケーションへのコマンド、もしくはユーザ識別情報の入力を反映することができる。変更イベントは、マウスのような光トラッキング・デバイスが表面１１６上に設けられたテンプレートまたはパターンから“読み取った”ものに基づいて生成しそしてコンピュータ２０に供給されるため、本発明は、ソフトウェア・ドライバあるいは制御パネル・アプレットを操作しあるいは呼び出して上記のような変更をすることが必要であった従来のシステムにおける顕著な欠点を克服するものである。
【０１００】
以上、本発明について、好ましい実施形態を参照して説明したが、当業者には理解されるように、本発明の要旨および範囲から逸脱せずに形態および詳細において変更を行うことができる。
【図面の簡単な説明】
【図１】  図１は、本発明にしたがい入力デバイスを実施するための例示的な環境のブロック図である。
【図２】  図２Ａは、本発明の１実施形態において使用したコンピュータおよび入力ポインティング・デバイスの機能的ブロック図。
図２Ｂは、コンピュータへの伝送のため、入力ポインティング・デバイスが発生する情報の１つのパケットを示す。
【図３】  図３は、本発明の１実施形態による、コンピュータ入力デバイスを、一部断面で一部ブロック図形態で示す。
【図４】  図４は、図３に示したポインティング・デバイスを、所定のパターンをその上に有するマウス・パッドまたは作業表面と連携して使用することを示すブロック図。
【図５】  図５Ａは、図４に示した所定パターンの認識における入力デバイスの動作を示す。
図５Ｂは、図４に示した所定パターンの認識における入力デバイスの動作を示す。
【図６】  図６は、入力デバイスに対し、可変の解像度を提供するため、その上に配置した種々の所定パターンを有するマウス・パッドまたは作業表面を示す。
【図７】  図７は、所定のコード化したイメージをその上に有するマウス・パッドまたは作業表面の図。
【図８】  図８は、Ｘ−Ｙ座標系上における所定コード化イメージの投影を示す図。
【図９】  図９は、本発明の１実施形態による入力デバイスが発生する情報の１つのパケットを示す。
【図１０】  図１０Ａは、図９に示したデータ・パケットを使用する本発明の１実施形態による入力デバイスの動作を示すフロー図を示す。
図１０Ｂは、図９に示したデータ・パケットを使用する本発明の１実施形態による入力デバイスの動作を示すフロー図を示す。
【図１１】  図１１は、本発明の別の実施形態にしたがい、特別なメッセージをコンピュータに提供する入力デバイスの使用を示すブロック図。
【図１２】  図１２Ａは、図１１に示した入力デバイスの動作を示すフロー図を示す。
図１２Ｂは、図１１に示した入力デバイスの動作を示すフロー図を示す。
【図１３】  図１３は、本発明の別の実施形態による入力デバイスと連携してのアプリケーションの動作を示すフロー図であり、これにおいて、このアプリケーションは、その上に配置されたアプリケーション特有のイメージを有するシートを発生する。
【図１４】  図１４は、種々のパターンまたはイメージをその上に配置した別のマウス・パッドまたは作業表面を示す。
【図１５】  図１５Ａは、本発明の別の実施形態による学習モードでの入力デバイスの使用を示す機能的ブロック図。
図１５Ｂは、向き補償コードの１つの例示的実施形態を示す。
【図１６】  図１６は、本発明の１実施形態による学習モードでの入力デバイスおよびコンピュータの動作を示すフロー図。
【図１】
0004994532.tif 000002
【図２】
0004994532.tif 000003
0004994532.tif 000004
【図３】
0004994532.tif 000005
【図４】
0004994532.tif 000006
【図５Ａ】
0004994532.tif 000007
【図５Ｂ】
0004994532.tif 000008
【図６】
0004994532.tif 000009
【図７】
0004994532.tif 000010
【図８】
0004994532.tif 000011
【図９】
0004994532.tif 000012
【図１０】
0004994532.tif 000013
0004994532.tif 000014
【図１１】
0004994532.tif 000015
【図１２】
0004994532.tif 000016
0004994532.tif 000017
【図１３】
0004994532.tif 000018
【図１４】
0004994532.tif 000019
【図１５】
0004994532.tif 000020
0004994532.tif 000021
【図１６】
0004994532.tif 000022