以下、本発明の実施形態について、図面を参照して説明する。図1及び図2を参照して、本実施形態に係る手書入力システム1の概要を説明する。以下の説明では、図1の左上側、右下側、上側、下側、右上側、左下側を、各々、読取装置2の左側、右側、前側、後側、上側、下側と定義して説明する。また読取装置2の左右方向及び上下方向を、夫々、X軸方向及びY軸方向と定義して説明する。
図1に示すように、手書入力システム1は、読取装置2、電子ペン3、PC19等を主に備える。読取装置2は、折り畳んで携行可能な、薄型軽量の手書き入力装置である。手書入力システム1では、ユーザは電子ペン3を用いて、読取装置2に固定された紙媒体100の用紙111に線画を筆記する。線画は、線、文字、数値、記号、及び図形等を含む。読取装置2は、電子ペン3の位置を検出する。読取装置2は、経時的に検出された電子ペン3の複数の位置に基づいて、電子ペン3の軌跡を特定する。PC19は、読取装置2で特定された電子ペン3の軌跡のデータ(以下、ストロークデータという。)に基づいて、用紙111に筆記された線画を電子化した画像ファイルを作成し、記憶する。
図2に示すように、読取装置2は、左右一対の左読取装置2L、右読取装置2R、フラットケーブル6、及びカバー4を構成の主体とする。左読取装置2L及び右読取装置2Rは、矩形薄板状であり、カバー4の前面に左右方向に見開き可能に配置されている。左読取装置2L及び右読取装置2Rは、フラットケーブル6によって電気的に接続されている。右読取装置2Rは、3つのLED5を上端に備える。LED5は、例えば、読取装置2の状態、電池27の電力残量等をユーザに通知可能である。右読取装置2Rは、カバー4は、袋状の袋部4Aを左側に備える。左読取装置2Lは、袋部4A内に差し込まれることでカバー4に着脱可能に装着される。右読取装置2Rは、両面テープ及び粘着性を有する樹脂フィルム等によって、カバー4の右前面に貼り付けられる。
読取装置2の前面には紙媒体100が着脱可能に装着される。図1に示すように、紙媒体100は、左右方向に見開き可能な冊子状である。紙媒体100では、一対の表紙(表表紙110L及び裏表紙110R)と複数の用紙111が、各々の縁部の一部で綴じられている。一例として、紙媒体100はA5サイズのノートである。用紙111に予め印刷された図柄のレイアウト等を示すフォーマットは、紙媒体100の種別毎又は用紙111のページ毎に異なる。紙媒体100は、表表紙110L及び左側の用紙111が左読取装置2Lの上面に載置され、且つ、裏表紙110R及び右側の用紙111が右読取装置2Rの上面に載置されるように、読取装置2上に装着される。本実施形態では、紙媒体100は、両面テープ及び粘着性を有する樹脂フィルム等によって、紙媒体100が読取装置2に位置決めされた状態で装着される。ユーザは電子ペン3を用いて紙媒体100の用紙111に線画を筆記できる。
電子ペン3は、公知の電磁誘導式の電子ペンであり、筒体30、芯体31、コイル32、可変容量コンデンサ33、基板34、コンデンサ35、及びインク収納部36を主に備える。筒体30は、円柱状の形状を有し、芯体31の一部、コイル32、可変容量コンデンサ33、基板34、コンデンサ35、及びインク収納部36を内部に収容する。芯体31は、電子ペン3の先端部(図1では下側)に設けられている。芯体31は図示外の弾性部材によって、電子ペン3の先端側に付勢されている。芯体31の先端部は、筒体30の外部に突出している。芯体31の後端側(図1では上側)は、インクが収納されているインク収納部36に接続されている。インク収納部36は、芯体31にインクを供給する。ユーザが電子ペン3を用いて用紙111に筆記すると、インクによって用紙111に線画が形成される。
コイル32は、インク収納部36の周囲に巻回された状態で、芯体31と可変容量コンデンサ33との間に保持されている。可変容量コンデンサ33は、基板34によって電子ペン3の内部に固定されている。基板34には、コンデンサ35が搭載されている。コンデンサ35及び可変容量コンデンサ33はコイル32に並列に接続され、周知の共振(同調)回路を構成する。
PC19は、汎用のノート型のパーソナルコンピュータである。PC19は、入力部191及びディスプレイ192を備える。入力部191は、各種指示を入力するために使用される。ディスプレイ192は、画像を表示する。手書入力システム1では、PC19としてパーソナルコンピュータの代わりに周知の情報端末(タブレットPC、及びスマートフォン等)が用いられてもよい。
図3を参照して、手書入力システム1の電気的構成を説明する。まず、読取装置2の電気的構成と、読取装置2がストロークデータを取得する原理の概要とを説明する。読取装置2は、センサ基板7L,7R、メイン基板20、及びセンサ制御基板28,29を備える。センサ基板7L,7Rは、夫々、左読取装置2L、右読取装置2R内に設けられる。
メイン基板20は、CPU21、RAM22、フラッシュROM23、無線通信部24、USBジャック25、及び電源回路26を備えている。RAM22、フラッシュROM23、無線通信部24、USBジャック25は、CPU21に電気的に接続されている。CPU21は、読取装置2の制御を行う。RAM22は、演算データ等の各種データを一時的に記憶する。フラッシュROM23には、CPU21が読取装置2を制御するために実行する各種プログラム、及び出力情報テーブル95(図4参照)が記憶されている。また、フラッシュROM23にはストロークデータ等が記憶される。無線通信部24は、外部の電子機器と近距離無線通信を実行するためのコントローラである。
USBジャック25は、USBプラグ(図示外)が抜き差しされるジャックである。CPU21は、USBジャック25に抜き差しされるUSBプラグを介して外部機器と電気的に接続可能である。CPU21は、3つのLED5に電気的に接続されている。CPU21は、読取装置2の状態に応じて3つのLED5を発光させる。電源回路26は、電池27に電気的に接続されている。図示しないが、電源回路26は電池27から出力される電圧を、各電気的構成用の電圧に調整し、各電気的構成に電力を供給する。CPU21は、電源回路26を制御して、電力を供給する電気的構成を選択することができる。
センサ基板7L、7Rには、X軸方向及びY軸方向の各々に細長いループコイルが多数配列されている。センサ基板7Lは、センサ制御基板28のASIC28Aに電気的に接続されている。ASIC28Aは、電子ペン3による筆記動作がセンサ基板7L上で行われた場合に、筆記動作に基づいて座標情報を検出し、ストロークデータを作成する処理を実行する。ストロークデータには、軌跡上の複数の位置を示す複数の座標情報が含まれる。センサ基板7Rは、センサ制御基板29のASIC29Aに電気的に接続されている。ASIC29Aは、電子ペン3による筆記動作がセンサ基板7R上で行われた場合に、筆記動作に基づいて座標情報を検出し、ストロークデータを作成する処理を実行する。ASIC28A,29Aのうち、マスター側のASIC28AはCPU21に直接接続され、スレーブ側のASIC29AはASIC28Aを介してCPU21に接続されている。
センサ基板7L,7R上で電子ペン3による筆記動作が行われた場合にストロークデータが取得される原理を、概略的に説明する。CPU21はASIC28A,29Aを制御して、センサ基板7L,7Rの各々のループコイルに、一本ずつ特定の周波数の電流(励磁用送信電流)を流す。これにより、センサ基板7L,7Rの各々のループコイルから磁界が発生する。この状態で、例えばユーザが電子ペン3を用いて、読取装置2に固定された紙媒体100の用紙111に線画を筆記する動作を行うと、電子ペン3はセンサ基板7L,7Rに近接する。そのため、電子ペン3の共振回路は電磁誘導によって共振し、誘導磁界を生じる。
次に、CPU21はASIC28A,29Aを制御して、センサ基板7L,7Rの各々のループコイルからの磁界の発生を停止させる。センサ基板7L,7Rの各々のループコイルは、電子ペン3の共振回路から発せられる誘導磁界を受信する。CPU21はASIC28A,29Aを制御して、センサ基板7L,7Rの各々のループコイルに流れる信号電流(受信電流)を検出させる。ASIC28A,29Aがこの動作を全てのループコイルについて一本ずつ実行することで、受信電流に基づいて電子ペン3の位置が座標情報として検出される。
さらに、電子ペン3を用いて用紙111に線画を筆記する動作が行われている状態では、芯体31に筆圧が付与される。コイル32のインダクタンスは、芯体31に付与される筆圧に応じて変化する。これにより、芯体31に付与される筆圧に応じて、電子ペン3の共振回路の共振周波数が変化する。CPU21は、共振周波数の変化(位相変化)を検出して、電子ペン3に付与された筆圧を特定する。つまりCPU21は、特定した筆圧によって、紙媒体100の用紙111に線画が筆記されている状態であるか否かを判断できる。CPU21は、用紙111に線画が筆記されていると判断した場合、電子ペン3の軌跡を示すストロークデータを取得し、RAM22又はフラッシュROM23に記憶する。
次に、PC19の電気的構成について説明する。PC19は、CPU41、ハードディスクドライブ(HDD)42、RAM43、無線通信部44、入力回路45、出力回路46、入力部191、及びディスプレイ192を主に備える。CPU41は、PC19の制御を行う。CPU41は、ハードディスクドライブ(HDD)43、RAM43、無線通信部44、入力回路45、及び出力回路46と電気的に接続している。HDD42には、CPU41が実行する各種プログラムが記憶される。
PC19は、図示外の媒体読取装置(例えば、CD−ROMドライブ)を備える。PC19は、記憶媒体(例えば、CD−ROM)に記憶されているプログラムを、媒体読取装置で読み取ってHDD42にインストールできる。また、PC19に接続されている外部機器(図示外)またはネットワークからプログラムを受信して、HDD42にインストールしてもよい。
RAM43は、種々の一時データを記憶する。無線通信部44は、外部の電子機器と無線通信を実行するためのコントローラである。入力回路45は、CPU41へ入力部191(例えば、マウス、キーボード、タッチパネルなど)からの指示を送る制御を行う。出力回路46は、CPU41からの指示に応じてディスプレイ192に画像を表示する制御を行う。
CPU41は、無線通信部44を介して読取装置2との間で近距離無線通信を実行する。読取装置2のフラッシュROM23に記憶されているストロークデータは、読取装置2からPC19に転送される。CPU41は、読取装置2から転送されたストロークデータをRAM43又はHDD42に記憶する。なお、読取装置2からPC19に対してストロークデータが転送される場合の通信は、無線通信に限定されず有線通信であってもよい。
CPU41は、RAM43又はHDD42に記憶したストロークデータに基づく文字列を特定することも可能である。この場合、CPU41は、Optical Character Recognition(OCR)処理を実行する。
読取装置2が設定される状態について説明する。読取装置2は、動作状態、スリープ状態、パワーオフ状態に設定される。本実施形態では、動作状態とは、読取装置2の機能の全てを使用可能な状態であり、読取装置2の電気的構成(図3参照)の全ての電気的構成に電力が供給されている状態であるとする。スリープ状態は、動作状態より消費電力が小さい。本実施形態では、スリープ状態は、CPU21において、メイン処理におけるS32〜S40(図6参照)を行うために必要な回路ブロック以外の回路ブロックに、電力が供給されていない状態であるとする。少なくとも、センサ基板7L,7R、ASIC28A,29A、及び無線通信部24は、電力が供給されているので動作可能である。LED5には電力が供給されているので、読取装置2の外観は、動作状態にある場合と同じである。パワーオフ状態は、スリープ状態より消費電力が小さい。本実施形態では、パワーオフ状態は、読取装置2が動作不能な状態ではあり、電池27からの電力が電源回路26以外の回路に供給されていない状態である。このため、センサ基板7L,7R、ASIC28A,29A、及び無線通信部24は、電力が供給されておらず、動作不能である。ユーザが電源スイッチ(図示略)をオンすると、CPU21に電源が供給され、読取装置2が動作状態に設定される。
図4を参照して、出力情報テーブル95について説明する。出力情報テーブル95は、フラッシュROM23に記憶されている。出力情報テーブル95では、複数種類の出力情報について、スリープカウントリセット要因情報であるか否か、及びパワーオフカウントリセット要因情報であるか否かが登録されている。図4では、出力情報を出力する回路が対応付けられているが、説明のために記載しているものであり、実際には、出力情報を出力する回路は対応付けられていなくてもよい。なお、出力情報を出力する回路を出力情報テーブル95に対応付けてもよい。
出力情報は、CPU21以外の回路から出力され、CPU21によって取得される情報である。ペンダウン信号は、筆記しようとするユーザが電子ペン3を用紙111に接触させてセンサ基板7L,7Rにおいて座標情報が検出された場合に、ASIC28A,29Aから出力される信号である。ペンアップ信号は、ユーザが電子ペン3を用紙111から離してセンサ基板7L、7Rにおいて座標情報が検出されなくなった場合に、ASIC28A,29Aから出力される信号である。
ステータスリクエスト、ファイル一覧リクエスト、本体情報リクエスト、及びデータ受信リクエストは、PC19から送信され、無線通信部24において受信されてCPU21に出力された出力情報である。ステータスリクエストは、PC19が読取装置2に対して、ステータス情報(例えば、読取装置2において設定されている各種設定の情報等)の送信を要求する出力情報である。ファイル一覧リクエストは、PC19が読取装置2に対して、フラッシュROM23に記憶されているファイルの一覧の送信を要求する出力情報である。本体情報リクエストは、PC19が読取装置2に対して、読取装置2の本体情報(例えば、機種品番等)の送信を要求する出力情報である。データ受信リクエストは、PC19が読取装置2にデータを送信する場合に、データを受信するように要求する出力情報である。
本実施形態では、USBジャック25にUSBプラグが差し込まれた場合、USBジャック25の1つの端子に接続されている回路(図示外)が、グランドレベルの電圧のLow信号を出力する。USBジャック25からUSBプラグが抜き取られた場合、USBジャック25の1つの端子に接続されている回路が、Low信号より電圧が高いHigh信号を出力する。USB抜き取り信号は、USBジャック25にUSBプラグが差し込まれている状態からUSBプラグが引き抜かれた場合に、High信号からLow信号に変化する信号である。USB差し込み信号は、USBジャック25にUSBプラグが差し込まれていない状態からUSBプラグが差し込まれた場合に、Low信号からHigh信号に変化する信号である。
スリープカウントリセット要因情報は、スリープ状態に設定する時間(後述する時間CNT_SLEEP)をリセットする要因とする出力情報であることを示す。CPU21は、取得した出力情報がスリープカウントリセット要因情報である場合には、スリープ状態に設定する時間をリセットする。ペンダウン信号、ペンアップ信号、データ受信リクエスト、USB抜き取り信号、及びUSB差し込み信号は、スリープカウントリセット要因情報である。
パワーオフカウントリセット要因情報は、パワーオフ状態に設定する時間(後述する時間CNT_POWER)をリセットする要因とする出力情報であることを示す。CPU21は、取得した出力情報がパワーオフカウントリセット要因情報である場合には、パワーオフ状態に設定する時間をリセットする。ペンダウン信号、データ受信リクエスト、USB抜き取り信号、及びUSB差し込み信号は、パワーオフカウントリセット要因情報である。
復帰要因情報は、スリープ状態にある読取装置2を動作状態に復帰させる要因とする出力情報であることを示す。CPU21は、取得した出力情報が復帰要因情報である場合には、スリープ状態にある読取装置2を動作状態に設定する。ペンダウン信号、ステータスリクエスト、ファイル一覧リクエスト、本体情報リクエスト、データ受信リクエスト、USB差し込み信号は、復帰要因情報である。なお、例えば、読取装置2がスリープ状態である場合に、PC19が要求する情報を受信した無線通信部24が、CPU21に動作状態に設定するように指示するWAKEUP信号を出力するようにしてもよい。この場合、WAKEUP信号が復帰要因情報である。
図5〜図7を参照して、読取装置2のCPU21によって実行されるメイン処理について説明する。CPU21は、読取装置2の電源がONされた場合に、フラッシュROM23に記憶されたプログラムに基づいて動作することで、メイン処理を開始する。
メイン処理では、CPU21は、読取装置2を動作状態に設定する(S11)。次いで、CPU21は、時間CNT_SLEEP、時間CNT_POWER、時間CNT_DELAY_SLEEP、時間CNT_DELAY_POWER、時間CNT_BATTERYを「0」に設定する(S12)。また、CPU21は、フラグFLG_SLEEPとフラグFLG_POWERとを「FALSE」に設定する(S12)。時間CNT_SLEEPは、動作状態からスリープ状態に移行する時間をカウントするための変数である。本実施形態では、時間CNT_SLEEPが第一所定時間(例えば、30秒)に達した場合に、スリープ状態に設定される。時間CNT_POWERは、スリープ状態からパワーオフ状態に移行する時間をカウントするための変数である。本実施形態では、時間CNT_POWERが第三所定時間(例えば、15分)に達した場合に、パワーオフ状態に設定される。
時間CNT_DELAY_SLEEPは、スリープ状態に設定される直前に出力情報が取得された場合に、出力情報に対応する処理を行う時間を確保するための時間をカウントする変数である。時間CNT_DELAY_POWERは、パワーオフ状態に設定される直前に出力情報が取得された場合に、出力情報に対応する処理を行う時間を確保するための時間をカウントする変数である。フラグFLG_SLEEPは、時間CNT_DELAY_SLEEPをカウントしているか否かを示すフラグである。フラグFLG_SLEEPは、時間CNT_DELAY_SLEEPがカウントされている場合、「TRUE」に設定され、カウントされていない場合「FALSE」に設定される。フラグFLG_POWERは、時間CNT_DELAY_POWERをカウントしているか否かを示すフラグである。フラグFLG_POWERは、時間CNT_DELAY_POWERがカウントされている場合、「TRUE」に設定され、カウントされていない場合「FALSE」に設定される。
なお、以下の説明では、時間を計測する場合、時間をインクリメントし、「1」ずつ加算していく。本実施形態では、インクリメントする「1」は、実時間の「0.1」秒に相当するとする。なお、時間の計測の仕方は一例であり、例えば、時刻を計測する電子部品(例えば、リアルタイムクロック)の出力値を取得し、計測の初めから終わりまでの差分を算出して時間を計測してもよい。
PC19が要求する情報(ステータスリクエスト等)が受信されておらず、ユーザによる読取装置2への操作及び電子ペン3による書き込みが行われない場合に、動作状態からスリープ状態を介して、パワーオフ状態に設定される場合を第一具体例として説明する。
CPU21は、時間CNT_SLEEPが第一所定時間以上であるか否かを判断する(S13)。本実施形態では、第一所定時間は30秒であるとする。時間CNT_SLEEPが第一所定時間以上ではない場合(S13:NO)、出力情報が取得されたか否かが判断される(S14)。PC19が要求する情報が受信されておらず、ユーザによる読取装置2への操作及び電子ペン3による書き込みが行われない場合、出力情報が取得されない。
出力情報が取得されない場合(S16:NO)、CPU21は、フラグFLG_SLEEPが「TRUE」であるか否かを判断する(S17)。フラグFLG_SLEEPが「TRUE」でない場合(S17:NO)、CPU21は、時間CNT_SLEEPをインクリメントする(S19)。CPU21は、フラグFLG_POWERが「TRUE」であるか否かを判断する(S20)。フラグFLG_POWERが「TRUE」でない場合(S20:NO)、CPU21は、時間CNT_POWERをインクリメントする(S22)。CPU21は、時間CNT_POWERが第三所定時間以上であるか否かを判断する。本実施形態では、第三所定時間は、15分であるとする。時間CNT_POWERが第三所定時間以上でない場合(S23:NO)、CPU21は処理をS13に戻す。
PC19が要求する情報(ステータスリクエスト等)が受信されておらず、ユーザによる読取装置2への操作及び電子ペン3による書き込みが行われない場合、CPU21は、S13:NO、S16:NO、S17:NO、S19、S20:NO、S22、S23:NOの処理を繰り返す。S19によってCNT_SLEEPがインクリメントされ、時間CNT_SLEEPが第一所定時間以上になると(S13:YES)、CPU21は、フラグFLG_SLEEPが「TRUE」であるか否かを判断する(S14)。
フラグFLG_SLEEPが「FALSE」である場合(S14:NO)、CPU21は、時間CNT_SLEEP、時間CNT_DELAY_SLEEP、及び時間CNT_DELAY_POWERを「0」に設定し、フラグFLG_SLEEP及びフラグFLG_POWERを「FALSE」に設定する(S24)。次いで、図6に示すように、CPU21は、読取装置2をスリープ状態に設定する(S31)。CPU21は、時間CNT_BATTERYを「0」に設定する(S32)。CPU21は、時間CNT_BATTERYが第五所定時間以上であるか否かを判断する(S33)。時間CNT_BATTERYが第五所定時間以上でない場合(S33:NO)、CPU21は、復帰要因の出力情報を取得したか否かを判断する(S34)。復帰要因の出力情報が取得されていない場合(S34:NO)、CPU21は、時間CNT_BATTERYをインクリメントする(S35)。
CPU21は、時間CNT_POWERをインクリメントする(S36)。CPU21は、S23(図5参照)と同様に、時間CNT_POWERが第三所定時間以上であるか否かがを判断する(S37)。時間CNT_POWERが第三所定時間より小さい場合(S37:NO)、CPU21は処理をS33に戻す。
時間CNT_BATTERYが第五所定時間以上となった場合(S33:YES)、CPU21は、電池27の電力残量を検出する(S38)。CPU21は、S38で検出した電池27の電力残量に基づき、LED5の状態を変更するか否かを判断する(S39)。本実施形態では、電池27の電力残量によってLED5の状態が3段階に変更されるとする。電池27の電力残量が最大値以下、最大値の2/3以上の範囲では、3つのLED5が発光される。電池27の電力残量が最大値の2/3未満、1/3以上の範囲では、2つのLED5が発光される。電池27の電力残量が最大値の1/3未満、0以上の範囲では、1つのLED5が発光される。LED5の状態を変更しない場合(S39:NO)、CPU21は処理をS32に戻す。LED5の状態を変更する場合(S39:NO)、CPU21は、LED5の状態を変更する(S40)。本実施形態では、発光されるLED5の数が変更される。CPU21は処理をS32に戻す。
このように、読取装置2がスリープ状態であっても、CPU21は、時間CNT_BATTERYが第五所定時間以上となると(S33:YES)、電池27の電力残量を検出し(S38)、検出結果を出力できる(S40)。このため、スリープ状態において常に電池27の電力残量を検出する場合に比べて、読取装置2の消費電力を低減できる。
PC19が要求する情報が受信されておらず、ユーザによる読取装置2への操作及び電子ペン3による書き込みが行われない場合、CPU21は、S33:NO、S34:NO、S35、S36、S37:NOの処理を繰り返す。そして、CPU21は、時間CNT_BATTERYが第五所定時間以上になる度に(S33:YES)、S38〜S40の処理を実行する。時間CNT_POWERが第三所定時間以上になった場合(S37:YES)、CPU21は読取装置2を動作状態に設定する(S41)。次いで、図5に示すように、CPU21は、読取装置2をパワーオフ状態に設定する(S27)。なお、S41で動作状態に設定したのは、読取装置2を一旦動作状態に設定して、パワーオフ状態に設定する処理を実行するためであり、例えば、読取装置2を動作状態に設定することなく、パワーオフ状態に設定できるようにしてもよい。次いで、CPU21は、メイン処理を終了する。以上のように、第一具体例では、PC19が要求する情報が受信されておらず、ユーザによる読取装置2への操作及び電子ペン3による書き込みが行われない場合、スリープ状態に設定された後、パワーオフ状態に設定される。このため、スリープ状態又はパワーオフ状態に設定されない場合に比べて、読取装置2の消費電力を低減することができる。
次に、動作状態に設定された後、スリープ状態に設定される前に、ユーザが電子ペンで用紙111に記入を行う場合を第二具体例として説明する。時間CNT_SLEEPが第一所定時間以上になる前に(S13:NO)、ユーザが電子ペンで用紙111に筆記すると、ペンダウン信号が出力される。ペンダウン信号を取得したCPU21は、出力情報を取得したと判断し(S16:YES)、図7に示すように、フラッシュROM23に記憶された出力情報テーブル95を参照し、S16又はS34(後述)で取得した出力情報が、スリープカウントリセット要因情報であるか否かを判断する(S51)。ペンダウン信号は、スリープカウントリセット要因情報であると判断され(S51:YES)、CPU21は、時間CNT_SLEEPと時間CNT_DELAY_SLEEPとを「0」にリセットし、フラグFLG_SLEEPを「FALSE」に設定する(S52)。
CPU21は、フラッシュROM23に記憶された出力情報テーブル95を参照し、S16又はS34(後述)で取得した出力情報が、パワーオフカウントリセット要因情報であるか否かを判断する(S55)。ペンダウン信号は、パワーオフカウントリセット要因情報であると判断され(S55:YES)、CPU21は、時間CNT_SLEEPと時間CNT_DELAY_POWERとを「0」にリセットし、フラグFLG_SLEEPを「FALSE」に設定する。図6に示すように、CPU21は、S17以降の処理を実行する。
第二具体例では、出力情報がスリープカウントリセット要因情報である場合には(S51:YES)、時間CNT_SLEEPが「0」にリセットされる(S52)。ユーザが電子ペン3を使用して用紙111に筆記した場合、スリープカウントリセット要因情報の1つであるペンダウン信号が出力されるので、時間CNT_SLEEPが「0」にリセットされる(S52)。このため、このため、読取装置2がスリープ状態に設定されず、ユーザは動作状態にある読取装置2を使用して継続して筆記することができる。
次に、読取装置2が、スリープ状態に設定された後、ユーザが電子ペンで用紙111に記入し、動作状態に復帰する場合を第三具体例として説明する。図6に示すように、S31においてスリープ状態に設定されると、S32〜S40の処理が繰り返される。時間CNT_POWERが第三所定時間以上になる前に(S37:NO)、ユーザが電子ペンで用紙111に筆記すると、ペンダウン信号が出力される。出力情報テーブル95(図4参照)において、ペンダウン信号は、復帰要因の出力情報であるので(S34:YES)、CPU21は、読取装置2をスリープ状態から動作状態に設定する(S42)。
次いで、図7に示すように、CPU21は、取得した出力情報がスリープカウントリセット要因情報であるか否かを判断する(S51)。出力情報テーブル95(図4参照)において、ペンダウン信号はスリープカウントリセット要因情報とパワーオフカウントリセット要因情報である。このため、CPU21は、S51:YES、S52、S55:YES、S56の処理を実行し、図5に示すように処理をS17に進める。
第三具体例では、読取装置2がスリープ状態である場合において、出力情報が取得された場合(S34:YES)、動作状態に設定される(S42)。また、出力情報がパワーオフカウントリセット要因情報である場合には(S55:YES)、時間CNT_POWERが「0」にリセットされる(S56)。ユーザが電子ペン3を使用して用紙111に筆記した場合、パワーオフカウントリセット要因情報の1つであるペンダウン信号が出力されるので、時間CNT_POWERが「0」にリセットされる(S56)。このため、読取装置2がパワーオフ状態に設定されず、ユーザは動作状態にある読取装置2を使用して継続して筆記することができる。
次に、読取装置2が動作状態である場合において、時間CNT_SLEEPの値が20秒のときに、スリープカウントリセット要因情報ではない出力情報が取得された場合を第四具体例として説明する。第四具体例では、スリープカウントリセット要因情報ではない出力情報は、ステータス情報リクエストであるとする。
ステータス情報リクエストが無線通信部24によって受信されると、無線通信部24からステータス情報リクエストがCPU21に出力される。CPU21は、出力情報を取得したと判断する(S16:YES)。ステータス情報リクエストは、スリープカウントリセット要因情報ではなく、パワーオフカウントリセット要因情報でもない(図4参照)。このため、CPU21は、スリープカウントリセット要因情報ではないと判断する(S51:NO)。次いで、CPU21は、時間CNT_DELAY_SLEEPをカウントするか否かを判断する(S53)。本実施形態では、CPU21は、動作状態において出力情報を取得し(S16:YES)、且つ、時間CNT_SLEEPが第一所定時間の直前2秒間(本実施形態では、時間CNT_SLEEPが28秒以上、30秒以下)の範囲にある場合に、時間CNT_DELAY_SLEEPをカウントすると判断する。第四具体例では、時間CNT_SLEEPの値は20秒であるので、CPU21は、時間CNT_SLEEPをカウントしないと判断し(S53:NO)、取得した出力情報がパワーオフカウントリセット要因情報ではないと判断する(S55:NO)。
次いで、CPU21は、時間CNT_DELAY_SLEEPをカウントするか否かを判断する(S57)。本実施形態では、CPU21は、スリープ状態において出力情報を取得し(S34:YES)、且つ、時間CNT_POWERが第二所定時間の直前2秒間(本実施形態では、時間CNT_POWERが14分58秒以上、15分以下)の範囲にある場合に、時間CNT_DELAY_POWERをカウントすると判断する。第四具体例では、CPU21は、時間CNT_SLEEPをカウントしないと判断し(S57:NO)、処理をS17に進める。
CPU21は、S13:NO、S16:NO、S17:NO、S19、S20:NO、S22、S23:NOの処理を繰り返す。第四実施形態では、S52(図7参照)が実行されていないため、時間CNT_SLEEPが「0」にリセットされていない。このため、CPU21は、20秒からの続きの時間をカウントする(S19)。時間CNT_SLEEPが第一所定時間以上になると(S13:YES)、フラグFLG_SLEEPが「TRUE」ではないので(S14:NO)、CPU21は、読取装置2を動作状態からスリープ状態に設定する(S31)。
第四具体例では、出力情報がスリープカウントリセット要因情報ではないので(S51:NO)、S52が実行されず、時間CNT_SLEEPが「0」にリセットされない。このため、S16において出力情報が取得されても、第一所定時間経過後に読取装置2がスリープ状態に設定される(S13:YES、S31)。よって、CPU21が出力情報を取得する度に時間CNT_SLEEPがリセットされてスリープ状態に設定されない場合に比べて、読取装置2の消費電力を低減できる。
次に、読取装置2が動作状態であり、スリープ状態に設定される1秒前に、スリープカウントリセット要因情報ではない出力情報が取得された場合を第五具体例として説明する。第五具体例では、スリープカウントリセット要因情報ではない出力情報は、PC19からのステータス情報リクエストであるとする。
ステータス情報リクエストが無線通信部24によって受信されると、無線通信部24からステータス情報リクエストがCPU21に出力される。CPU21は、出力情報を取得したと判断する(S16:YES)。ステータス情報リクエストは、スリープカウントリセット要因情報ではなく、パワーオフカウントリセット要因情報でもない(図4参照)。このため、CPU21は、スリープカウントリセット要因情報ではないと判断する(S51:NO)。第五具体例では、CPU21は、動作状態において出力情報を取得し(S16:YES)、且つ、時間CNT_SLEEPが第一所定時間の直前2秒間の範囲にあるので、時間CNT_DELAY_SLEEPをカウントすると判断する(S53:YES)。CPU21は、時間CNT_DELAY_SLEEPを「0」に設定し、フラグFLG_SLEEPを「TRUE」に設定する。
次いで、CPU21は、パワーオフカウントリセット要因情報ではないと判断し(S55:NO)、時間CNT_DELAY_POWERをカウントしないと判断する(S57:NO)。CPU21は、フラグFLG_SLEEPが「TRUE」であると判断し(S17:YES)、時間CNT_DELAY_SLEEPをインクリメントする(S18)。すなわち、S18は、S51においてスリープカウントリセット要因情報ではないと判断された場合に(S51:NO)、時間CNT_DELAY_SLEEPを計測する処理である。CPU21は、処理をS19に進める。
CPU21は、時間CNT_SLEEPが第一所定時間以上になるまで、S13:NO、S16:NO、S17:YES、S18、S19、S20:NO、S22、S23:NOの処理を繰り返す。時間CNT_SLEEPが第一所定時間以上になると(S13:YES)、CPU21は、フラグFLG_SLEEPが「TRUE」であると判断する(S14:YES)。CPU21は、時間CNT_DELAY_SLEEPが第二所定時間以上であるか否かを判断する(S15)。本実施形態では、一例として、第二所定時間は2秒であるとする。
時間CNT_DELAY_SLEEPが第二所定時間より小さい場合(S15;NO)、CPU21は、処理をS16に進める。CPU21は、時間CNT_DELAY_SLEEPが第二所定時間以上になるまで、S13:YES、S14:NO、S15:NO、S16:NO、S17:YES、S18、S19、S20:NO、S22、S23:NOの処理を繰り返す。時間CNT_DELAY_SLEEPが第二所定時間以上になると(S15:YES)、CPU21は、S24の処理を行い、読取装置2をスリープ状態に設定する(S31)。すなわち、第五具体例では、時間CNT_SLEEPが第一所定時間以上である場合(S13:YES)、且つ、時間CNT_DELAY_SLEEPが第二所定時間以上である場合に(S15:YES)、読取装置2をスリープ状態に設定している(S31)。
第五具体例に示すように、時間CNT_SLEEPが第一所定時間以上になる直前にスリープカウントリセット要因情報でない出力情報が取得されても、時間CNT_DELAY_SLEEPが第二所定時間以上になるまでは、読取装置2がスリープ状態に設定されない(S15:NO)。このため、読取装置2のCPU21は、第二所定時間の間に、出力情報に対応する処理を行うことができる。第五具体例では、出力情報はステータス情報リクエストであるので、第二所定時間の間にステータス情報をPC19に送信することができる。よって、出力情報に対応する処理の途中で読取装置2がスリープ状態に設定されることを防止できる。
次に、読取装置2がスリープ状態である場合において、時間CNT_POWERの値が3分のときに、パワーオフカウントリセット要因情報でない出力情報が取得された場合を第六具体例として説明する。第六具体例では、スリープカウントリセット要因情報でない出力情報は、ステータス情報リクエストであるとする。
ステータス情報リクエストが無線通信部24によって受信されると、無線通信部24からステータス情報リクエストがCPU21に出力される。CPU21は、復帰要因の出力情報を取得したと判断し(S34:YES)、読取装置2をスリープ状態から動作状態に設定する(S42)。ステータス情報リクエストは、スリープカウントリセット要因情報ではなく、パワーオフカウントリセット要因情報でもない(図4参照)。このため、図7に示すように、CPU21は、取得した出力情報がスリープカウントスリット要因でないと判断する(S51:NO)。CPU21は、時間CNT_DELAY_SLEEPをカウントしないと判断し(S53:NO)、取得した出力情報がパワーオフカウントリセット要因でないと判断する(S55:NO)。
第六具体例では、時間CNT_POWERが第二所定時間の直前2秒間の範囲にないので、CPU21は、時間CNT_DELAY_POWERをカウントしないと判断し、(S57:NO)、処理をS17に進める。
CPU21は、S13:NO、S16:NO、S17:NO、S19、S20:NO、S22、S23:NOの処理を繰り返す。時間CNT_SLEEPが第一所定時間以上になると(S13:YES)、CPU21は、読取装置2を再びスリープ状態に設定する(S31)。CPU21は、S33〜S40の処理を繰り返す。第六具体例では、S56(図7参照)が実行されていないため、時間CNT_POWERが「0」にリセットされていない。このため、CPU21は、S22及びS36において、時間3分からの続きの時間をカウントする。時間CNT_POWERが第三所定時間以上になると(S37:YES)、CPU21は、読取装置2を動作状態に設定する(S41)。次いで、図5に示すように、CPU21は、読取装置2をパワーオフ状態に設定する(S27)。CPU21は、メイン処理を終了する。
第六具体例では、出力情報がパワーオフカウントリセット要因情報でないので(S55:NO)、S56が実行されず、時間CNT_POWERが「0」にリセットされない。このため、S34において出力情報が取得されても、第三所定時間経過後に、読取装置2がパワーオフ状態に設定される。よって、CPU21が出力情報を取得する度に時間CNT_POWERをリセットしてパワーオフ状態に設定されない場合に比べて、読取装置2の消費電力を低減できる。
なお、第六具体例では、時間CNT_POWERの値が3分のときに、パワーオフカウントリセット要因情報でない出力情報が取得される例を示した。しかし、例えば、時間CNT_POWERの値が14分40秒のときに、パワーオフカウントリセット要因情報でない出力情報が取得された場合(S34:YES)、時間CNT_SLEEPが第一所定時間(30秒)以上になる前に(S13:NO)、時間CNT_POWERが第三所定時間(15分)以上となる(S23:YES)。この場合、CPU21は、フラグFLG_POWERが「TRUE」であるか否かを判断する(S25)。S58が実行されておらず、フラグFLG_POWERが「FALSE」であるので、CPU21は、フラグFLG_POWERが「TRUE」でないと判断し(S25:NO)、読取装置2をパワーオフ状態に設定する(S27)。この場合でも、第六具体例の場合と同様に、読取装置2の消費電力を低減できる。
次に、読取装置2がスリープ状態であり、パワーオフ状態に設定される1秒前に、パワーオフカウントリセット要因情報ではない出力情報が取得された場合を第七具体例として説明する。第七具体例では、パワーオフカウントリセット要因情報ではない出力情報は、ステータス情報リクエストであるとする。
ステータス情報リクエストが無線通信部24によって受信されると、無線通信部24からステータス情報リクエストがCPU21に出力される。CPU21は、復帰要因の出力情報を取得したと判断し(S34:YES)、読取装置2をスリープ状態から動作状態に設定する(S42)。ステータス情報リクエストは、スリープカウントリセット要因情報ではなく、パワーオフカウントリセット要因情報でもない(図4参照)。このため、図7に示すように、CPU21は、取得した出力情報がスリープカウントスリット要因でないと判断する(S51:NO)。CPU21は、時間CNT_DELAY_SLEEPをカウントしないと判断し(S53:NO)、取得した出力情報がパワーオフカウントリセット要因でないと判断する(S55:NO)。
スリープ状態において出力情報が取得され(S34:YES)、且つ、時間CNT_POWERが第二所定時間の直前2秒間の範囲にあるので、CPU21は、時間CNT_DELAY_POWERをカウントすると判断する(S57:YES)。CPU21は、時間CNT_DELAY_POWERを「0」に設定し、フラグFLG_POWERを「TRUE」に設定する(S58)。次いで、CPU21は、フラグFLG_SLEEPが「TRUE」でないと判断し(S17:NO)、フラグFLG_POWERが「TRUE」であると判断する(S20:YES)。CPU21は、時間CNT_DELAY_POWERをインクリメントする(S21)。すなわち、S21は、S55においてパワーオフカウントリセット要因情報でないと判断された場合に(S55;NO)、時間CNT_DELAY_POWERを計測する処理である。CPU21は、処理をS22に進める。
CPU21は、時間CNT_POWERが第三所定時間以上になるまで、S13:NO、S16:NO、S17:NO、S19、S20:YES、S21、S22、S23:NOの処理を繰り返す。時間CNT_POWERが第三所定時間以上になると(S23:YES)、CPU21は、フラグFLG_POWERが「TRUE」であると判断する(S25:YES)。CPU21は、時間CNT_DELAY_POWERが第四所定時間以上であるか否かを判断する(S26)。本実施形態では、一例として、第四所定時間は2秒であるとする。
時間CNT_DELAY_POWERが第四所定時間より小さい場合(S26:NO)、CPU21は、処理をS13に戻す。CPU21は、時間CNT_DELAY_POWERが第四所定時間以上になるまで、S13:NO、S16:NO、S17:NO、S19、S20:YES、S21、S22、S23:YES,S25:YES,S26:NOの処理を繰り返す。時間CNT_DELAY_POWERが第四所定時間以上になると(S26:YES)、CPU21は、読取装置2をパワーオフ状態に設定する(S27)。次いで、CPU21は、メイン処理を終了する。第七具体例では、時間CNT_POWERが第三所定時間以上である場合(S23:YES)、且つ、時間CNT_DELAY_POWERが第四所定時間以上である場合に(S26:YES)、読取装置をパワーオフ状態設定している(S27)。
第七具体例に示すように、時間CNT_POWERが第三所定時間以上になる直前にパワーオフカウントリセット要因情報でない出力情報が取得されても、時間CNT_DELAY_POWERが第四所定時間以上になるまでは、読取装置2がパワーオフ状態に設定されない(S26:NO)。このため、読取装置2のCPU21は、第四所定時間の間に、出力情報に対応する処理を行うことができる。第七具体例では、ステータス情報リクエストが取得されているので、第四所定時間の間にステータス情報をPC19に送信することができる。よって、出力情報に対応する処理の途中で読取装置2がパワーオフ状態に設定されることを防止できる。
以上のように、本実施形態のメイン処理が実行される。本実施形態において、読取装置2は本発明の「入力装置」の一例である。スリープ状態は本発明の「第一低電力状態」の一例である。パワーオフ状態は本発明の「第二低電力状態」の一例である。時間CNT_SLEEPは本発明の「第一時間」の一例である。時間CNT_DELAY_SLEEPは本発明の「第二時間」の一例である。時間CNT_POWERは本発明の「第三時間」の一例である。時間CNT_DELAY_POWERは本発明の「第四時間」の一例である。時間CNT_BATTERYは本発明の「第五時間」の一例である。左読取装置2L及び右読取装置2Rは本発明の「載置部」の一例である。電子ペン3は本発明の「筆記手段」の一例である。センサ基板7L,7R及びASIC28A,29Aは本発明の「検出部」の一例である。PC19は本発明の「外部機器」の一例である。無線通信部24は本発明の「通信部」の一例である。ASIC28A,29Aから出力されるペンダウン信号は本発明の「第一情報」の一例である。無線通信部24から出力されるステータスリクエスト、ファイル一覧リクエスト、本体情報リクエスト、及びデータ受信リクエストは本発明の「要求情報」及び「第二情報」の一例である。
S16及びS34の処理を行うCPU21は本発明の「出力情報取得手段」の一例である。S19の処理を行うCPU21は本発明の「第一計測手段」の一例である。S31の処理を行うCPU21は本発明の「第一状態設定手段」の一例である。スリープカウントリセット要因情報情報は本発明の「第一リセット要因情報」の一例である。パワーオフカウントリセット要因情報は本発明の「第二リセット要因情報」の一例である。フラッシュROM23は本発明の「第一記憶手段」及び「第二記憶手段」の一例である。S51の処理を行うCPU21は本発明の「第一リセット判断手段」の一例である。S52の処理において時間CNT_SLEEPを「0」にリセットする処理を行うCPU21は本発明の「第一リセット手段」の一例である。
S18の処理を行うCPU21は本発明の「第二計測手段」の一例である。S22及びS36の処理を行うCPU21は本発明の「第三計測手段」の一例である。S27の処理を行うCPU21は本発明の「第二状態設定手段」の一例である。S55の処理を行うCPU21は本発明の「第二リセット判断手段」の一例である。S56の処理において時間CNT_POWERを「0」にリセットする処理を行うCPU21は本発明の「第二リセット手段」の一例である。S42の処理を行うCPU21は本発明の「第三状態設定手段」の一例である。S21の処理を行うCPU21は本発明の「第四計測手段」の一例である。S35の処理を行うCPU21は本発明の「第五計測手段」の一例である。S38の処理を行うCPU21は本発明の「電池残量検出手段」の一例である。S40の処理を行うCPU21は本発明の「出力手段」の一例である。
なお、本発明は上記の実施形態に限定されるものではなく、種々の変更が可能である。例えば、本発明の第一低電力状態は、動作状態よりも消費電力が小さく、少なくとも、センサ基板7L,7R、ASIC28A,29A、及び無線通信部24が動作可能な状態であればよく、本実施形態のようなスリープ状態でなくてもよい。また、例えば、第一低電力状態ではLED5が点灯されていなくてもよい。
また、本発明の第二低電力状態は、第一低電力状態よりも消費電力が小さく、少なくとも、センサ基板7L,7R、ASIC28A,29A、及び無線通信部24が動作不能な状態であればよく、本実施形態のようなパワーオフ状態でなくてもよい。
また、出力情報は、出力情報テーブル95(図4参照)に示した出力情報に限定されない。例えば、電池27を読取装置2に差し込んだ時に電源回路26から出力される差し込み信号が、出力情報であってもよい。
また、ASIC28A,29Aが出力する出力情報は、ペンダウン信号及びペンアップ信号であったが、これに限定されない。例えば、ストロークデータ、又はストロークデータを構成する座標データが、出力情報であってもよい。
また、無線通信部24が出力する出力情報は、ステータスリクエストなど、外部機器であるPC19が要求する情報であったが、これに限定されない。例えば、PC19が要求する情報を無線通信部24が受信した場合に、無線通信部24がHigh信号を出力した後、PC19が要求する情報を出力するように構成した場合、出力情報がHigh信号であってもよい。そして、CPU21は、この場合、出力情報テーブル95において、High信号を、スリープカウントリセット要因情報ではなく、パワーオフカウントリセット要因情報ではなく、復帰要因情報であると設定してもよい。
また、電池27の電力残量は、発光するLED5の数を変更することで出力されているが(S40)、例えば、LED5の色が変更されてもよい。また、例えば、読取装置2にディスプレイを設け、ディスプレイに電池27の電力残量を表示してもよい。また、スリープ状態において時間CNT_BATTERYを計測し(S36)、時間CNT_BATTERYが第五所定時間以上になった場合に(S33:YES)、電池27の電力残量が検出され(S38)、出力されていたが(S40)、スリープ状態で電池27の電力残量は検出されなくてもよい。
また、時間CNT_SLEEPが第一所定時間以上になる直前にスリープカウントリセット要因情報でない出力情報が取得されても、時間CNT_DELAY_SLEEPが第二所定時間以上になるまでは、読取装置2がスリープ状態に設定されない(S15:NO)。しかし、時間CNT_SLEEPが第一所定時間以上になる直前にスリープカウントリセット要因情報でない出力情報が取得された場合に、時間CNT_DELAY_SLEEPが計測されることなく、スリープ状態に設定されてもよい。
また、時間CNT_POWERが第三所定時間以上になる直前にパワーオフカウントリセット要因情報でない出力情報が取得されても、時間CNT_DELAY_POWERが第四所定時間以上になるまでは、読取装置2がパワーオフ状態に設定されない(S26:NO)。しかし、時間CNT_POWERが第三所定時間以上になる直前にパワーオフカウントリセット要因情報でない出力情報が取得された場合に、時間CNT_DELAY_POWERが計測されることなく、パワーオフ状態に設定されてもよい。また、時間CNT_POWERが第三所定時間以上となる場合に(S23:YES、又はS37:YES)、パワーオフ状態に設定されているが(S27)、例えば、パワーオフ状態に設定されなくてもよい。