携帯型コード読取装置及びプログラム
【課題】光照射によるコード情報読取において、容易且つ効果的に省電力化を実現することである。
【解決手段】加速度を所定周期で検知する3軸加速度センサ21と、光を照射してコード情報を読み取るレーザスキャナ部20と、前記コード情報を読み取るアクティブ状態においてレーザスキャナ部20の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合にレーザスキャナ部20の光の照射をオフするCPU11と、を備える。
【解決手段】加速度を所定周期で検知する3軸加速度センサ21と、光を照射してコード情報を読み取るレーザスキャナ部20と、前記コード情報を読み取るアクティブ状態においてレーザスキャナ部20の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合にレーザスキャナ部20の光の照射をオフするCPU11と、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、携帯型コード読取装置及びプログラムに関する。
【背景技術】
【0002】
従来、商品等に付されたバーコードのコード情報を読み取るレーザスキャナが知られている。このレーザスキャナによるコード情報読取は、常時レーザ光及び照準光の照射をオンにして制限なく繰り返されていた。つまり、アイドル(待機)状態でも無駄に常時レーザ光及び照準光が照射されスキャン動作が繰り返されていた。
【0003】
上記無駄な光照射については、AC電源に有線で接続されているPOS端末のレーザスキャナでは消費電力が大きくなるだけであるが、電池駆動の携帯端末(携帯型のレーザスキャナ)では無駄な電力を消費するため、電池寿命が短くなる。
【0004】
上記消費電力を低減するため、加速度センサによりユーザが筐体を振ったことを感知すると照準光を照射開始し、トリガボタン押下で照準光の照射を終了するバーコード読取装置が考えられている(例えば、特許文献1参照)。
【特許文献1】特開2007−48044号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、上記従来のバーコード読取装置では、照準光の照射開始において、加速度センサから得られる加速度と所定閾値との単純な大小を判定しているのみであり、人間の不規則な操作を安定して特定することが、現実的には例外が多々発生しやすく困難であった。また、照準光の照射終了において、ユーザが意識してトリガボタンをいちいち押下する必要があり煩わしかった。さらに、照準光を照射したまま、ユーザが画面を参照したり、小休止すること等が発生するおそれがあり、十分に消費電力化が図れていなかった。
【0006】
本発明の課題は、光照射によるコード情報読取において、容易且つ効果的に省電力化を実現することである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、請求項1に記載の発明の携帯型コード読取装置は、
加速度を所定周期で検知する加速度検知手段と、
光を照射してコード情報を読み取る読取手段と、
前記コード情報を読み取るアクティブ状態において前記読取手段の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合に前記読取手段の光の照射をオフする制御手段と、を備える。
【0008】
請求項2に記載の発明は、請求項1に記載の携帯型コード読取装置において、
前記制御手段は、現在時点から所定の第1の時間前までの前記検知された加速度の第1の分散値を算出し、前記アクティブ状態において、前記第1の分散値が所定の第1の設定値より小さいか否かを判別し、前記第1の分散値が前記第1の設定値より小さい場合に、前記コード情報の読取を一時停止するスタンバイ状態に設定して前記読取手段の光の照射をオフする。
【0009】
請求項3に記載の発明は、請求項2に記載の携帯型コード読取装置において、
前記制御手段は、前記スタンバイ状態において、前記第1の分散値が所定の第2の設定値より大きいか否かを判別し、前記第1の分散値が前記第2の設定値より大きい場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする。
【0010】
請求項4に記載の発明は、請求項2又は3に記載の携帯型コード読取装置において、
前記制御手段は、現在時点から前記第1の時間より長い所定の第2の時間前までの前記検知された加速度の第2の分散値を算出し、前記アクティブ状態又は前記スタンバイ状態において、前記第2の分散値が所定の第3の設定値より小さいか否かを判別し、前記第2の分散値が前記第3の設定値より小さい場合に、前記コード情報の読取を停止するスリープ状態に設定して前記読取手段の光の照射をオフする。
【0011】
請求項5に記載の発明は、請求項4に記載の携帯型コード読取装置において、
前記制御手段は、現在時点から所定の第3の時間前までの前記検知された加速度の平均値を算出し、当該第3の時間の加速度の平均値から重力加速度方向に対して垂直な水平面に対する姿勢角度を算出し、前記スリープ状態において、前記姿勢角度の変化量が所定の第1の設定条件を満たし且つ所定の第4の時間継続されるか否かを判別し、前記変化量が前記第1の設定条件を満たし且つ前記第4の時間継続された場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする。
【0012】
請求項6に記載の発明は、請求項5に記載の携帯型コード読取装置において、
前記制御手段は、前記アクティブ状態において、前記算出された姿勢角度が所定の第2の設定条件を満たすか否かを判別し、前記姿勢角度が前記第2の設定条件を満たす場合に、前記光の照射方向が安全でないおそれがある安全範囲外姿勢状態に設定して前記読取手段の光の照射をオフし、前記安全範囲外姿勢状態において、前記算出された姿勢角度が所定の第3の設定条件を満たすか否かを判別し、前記姿勢角度が前記第3の設定条件を満たす場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする。
【0013】
請求項7に記載の発明のプログラムは、
コンピュータを、
加速度を所定周期で検知する加速度検知手段、
光を照射してコード情報を読み取る読取手段、
前記コード情報を読み取るアクティブ状態において前記読取手段の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合に前記読取手段の光の照射をオフする制御手段、
として機能させる。
【発明の効果】
【0014】
本発明によれば、光照射によるコード情報読取において、容易且つ効果的に省電力化が実現できる。
【発明を実施するための最良の形態】
【0015】
以下、添付図面を参照して本発明に係る好適な実施の形態を詳細に説明する。なお、本発明は、図示例に限定されるものではない。
【0016】
先ず、図1を参照して、本実施の形態の装置構成を説明する。図1に、本実施の形態のHT(Handy Terminal)1の内部構成を示す。
【0017】
本実施の形態の携帯型コード読取装置としてのHT1は、レーザ光照射により、商品等に付されたバーコードのコード情報を読み取る携帯型の装置である。図1に示すように、本実施の形態のHT1は、制御手段としてのCPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、ROM(Read Only Memory)13と、フラッシュメモリ14と、IO(Input Output)制御ブリッジ15と、通信部16と、操作部17と、表示部18と、タイマ19と、読取手段としてのレーザスキャナ部20と、加速度検知手段としての3軸加速度センサ21と、AD変換部22と、を備えて構成される。
【0018】
CPU11は、HT1の各部を中央制御する。CPU11は、ROM13に記憶されたシステムプログラム及びアプリケーションプログラムの中から指定されたプログラムを読み出してRAM12に展開し、この展開されたプログラムとの協働で各種処理を実行する。
【0019】
また、CPU11は、レーザスキャナ部20にバーコードイメージ(データ)を取得させ、そのバーコードイメージからバーコードのコード情報を読取る。このような、一連の動作をスキャン動作(コード情報の読取)とする。
【0020】
RAM12は、情報の読み書きが可能な揮発性のメモリであり、各種プログラムや各種データを格納するワークエリアを有する。
【0021】
ROM13は、情報の読み出し専用の不揮発性のメモリであり、各種プログラム及び各種データを記憶する。ROM13は、後述する設定プログラム、加速度データ取り込みプログラムと、スキャンプログラムと、を記憶する。
【0022】
フラッシュメモリ14は、情報の読み書きが可能な不揮発性のメモリである。フラッシュメモリ14は、設定情報等が記憶される。
【0023】
IO制御ブリッジ15は、CPU11、RAM12、ROM13、フラッシュメモリ14、通信部16、操作部17、表示部18、タイマ19、レーザスキャナ部20及びAD変換部22と接続され、各部の情報の送受信を介する。
【0024】
通信部16は、外部機器と有線通信や無線通信を行う。例えば、ケーブル、クレードル等を介した有線通信や、無線LAN(Local Area Network)等の無線通信である。
【0025】
操作部17は、数字キー、各種文字キー、メニューキー、電源キー等を有するキー入力部を備え、ユーザからのキー押下等の各種操作入力を受け付け、その操作情報をCPU11に出力する。表示部18は、LCD(Liquid Crystal Display)等により構成され、CPU11から入力される表示情報に基づいて、各種情報を表示する。操作部17及び表示部18は、一体的にタッチパネルが構成されるものとしてもよい。
【0026】
タイマ19は、所定周期の3軸加速度センサ21からの加速度データの取り込みタイミングをカウントし、取り込みたいタイミングになると割り込み信号をCPU11に出力する。また、タイマ19は、現在の時刻情報をCPU11に出力する。
【0027】
レーザスキャナ部20は、レーザ光発光部、受光部、ゲイン回路、2値化回路及び照準光発光部を備える。レーザスキャナ部20は、CPU11からの指示に従い、レーザ光発光部及び照準光発光部がレーザ光及び照準光を照射し、そのレーザ光がバーコード等で反射された反射光を受光部が受光してアナログの電気信号に変換してゲイン回路が増幅し、そのアナログ信号を所定閾値と比較して2値のデジタル信号に変換し、バーコードイメージ(データ)としてCPU11に出力する。
【0028】
3軸加速度センサ21は、HT1の筐体に対応する3軸方向の加速度を検知し、その加速度データのアナログの電気信号をAD変換部22に出力する。AD変換部22は、CPU11からの指示に従い、3軸加速度センサ21から入力される加速度データのアナログの電気信号をデジタル信号の加速度データに変換してCPU11に出力する。
【0029】
なお、HT1において、図1に示した各部は、後述する筐体2に覆われているものとする。また、HT1は、携帯型であり、その電源がバッテリ等であるものとするが、これに限定されるものではない。
【0030】
図2及び図3を参照して、RAM12に格納するデータの構成を説明する。図2に、リングバッファ121の構成を示す。図3に、HT1におけるX,Y,Z軸の一例を示す。
【0031】
3軸加速度センサ21により取得されるX軸、Y軸、Z軸(3軸)の加速度データをGx,Gy,Gzとする。加速度データGx,Gy,Gzは、所定周期で取り込まれ、図2に示すようなRAM12内のリングバッファ121に格納される。図3に示すように、Z軸をHT1の筐体2の正面に垂直な方向とし、X軸、Y軸を、筐体2の正面の平面を表す2軸とする。レーザスキャナ部20のレーザ光及び照準光は、例えば、Y軸、Z軸間の所定角度の方向に照射されるものとし、スキャン動作が、HT1の正面(XY平面)が地面に対して水平面にある場合に行われるものとする。しかし、この例に限定されるものではない。
【0032】
リングバッファ121は、N組(N:任意の整数)の加速度データGx,Gy,Gzをその取得時刻に対応付けて格納するとともに、先入れ先出し方式でリング状に循環して加速度データが更新される。Nの値は、リングバッファ121がオーバーフローしないように、十分大きな値をとっておくものとする。時刻t0は、現在時刻(最新の加速度データの取得時刻)である。時刻ts,t1,t2については、後述する。
【0033】
次に、図4〜図12を参照して、HT1の動作を説明する。先ず、図4及び図5を参照して、HT1の状態遷移を説明する。図4に、HT1の状態遷移を示す。図5に、時間に対する加速度の関係を示す。
【0034】
ユーザにより把持されて動かされるHT1について、3軸加速度センサ21により取得される加速度データに基づいて分散値及び姿勢角度を算出し、その分散値、姿勢角度(及び姿勢角度変化量)に応じて状態遷移がなされる。その状態遷移により、レーザスキャナ部20におけるレーザ光及び照準光照射が適宜オンオフされる。
【0035】
図4に示すように、HT1の状態としては、電源オフと、アクティブと、安全範囲外姿勢と、スタンバイと、スリープとが設定されている。アクティブ、安全範囲外姿勢、スタンバイ、スリープは、電源オン時の状態であり、順にHT_Stage10,11,20,40とする。
【0036】
アクティブとは、レーザスキャナ部20によりレーザ光及び照準光が常時照射されてスキャン動作が繰り返し実行されている状態である。安全範囲外姿勢とは、HT1の姿勢が大きく変化してレーザ光の照射方向が地面に対して水平近くになり、レーザ光が水平方向に照射される可能性がある状態である。このため、安全範囲外姿勢では、レーザスキャナ部20によるレーザ光及び照準光照射がオフされ、スキャナ動作もオフされる。
【0037】
スタンバイとは、スキャン動作中の小休止を示す状態であり、レーザスキャナ部20によるレーザ光及び照準光照射がオフされ、スキャナ動作もオフされる。ユーザは、スキャン動作の途中で、表示部18の画面を覗いたり、ほんの数秒間ただ漫然として大きな動作を停止することがよくある。その小休止状態をスタンバイとして積極的に抽出し、レーザ光照射をオフすることは、省電力化の面で有意義である。
【0038】
スリープとは、HT1が動かされていない状態であり、レーザスキャナ部20によるレーザ光及び照準光照射がオフされ、スキャナ動作もオフされる。連続したスキャン動作の途中で突発的な事象が起こったり、少し休憩しようとして、ユーザがHT1を近くの机上などに置きっぱなしにする行為は、人間ならば当たり前に行う行為であり、これに対応する状態をスリープとしている。
【0039】
図5を参照して、状態遷移に用いる分散値及び姿勢角度(及び姿勢角度変化量)の算出を説明する。図2でも示したように、時刻については、t0,ts,t1,t2を考える。図5に示すように、時刻t1は、現在の時刻t0から第1の時間としての所定時間ΔCnt1前の時刻である。時刻t2は、時刻t0から第2の時間としての所定時間ΔCnt2前の時刻であり、ΔCnt2>ΔCnt1である。時刻tsは、時刻t0から所定時間Δt前の加速度データの取得時刻である。
【0040】
ΔCnt1は、アクティブ⇔スタンバイの変化があるか否かを判定するための分散値の合計値Bg1を算出するための加速度データの分散値B1及び平均値Ag1における加速度データの取得対象の時間範囲を示す。ΔCnt1は、例えば2秒程度であるものとする。ΔCnt2は、スタンバイ→スリープ、アクティブ→スリープの変化があるか否かを判定するための分散値の合計値Bg2を算出するための加速度データの分散値B2及び平均値Ag2における加速度データの取得対象の時間範囲を示す。ΔCnt2は、例えば5秒程度であるものとする。
【0041】
第3の時間としての時間Δtは、水平面からのHT1のX軸,Y軸の変化量を示す姿勢角度変化量ΔXan,ΔYanにおける加速度データの取得対象の時間範囲を示す。
【0042】
分散値とは、変数(データ)がその期待値(平均値)からどれだけばらけているかを示す値である。つまり、加速度データの分布がその平均値に集まっていれば分散値が小さくなり、加速度データの分布がその平均値から離れていれば分散値が大きくなる。よって、加速度データの分散値が大きいと、HT1が動いているとみなすことができ、加速度データの分散値が小さいと、HT1が停止しているとみなすことができる。
【0043】
平均値Ag1,Ag2は、X,Y,Z軸それぞれについて算出され、Ag1=Agx1,Agy1,Agz1、Ag2=Agx2,Agy2,Agz2とする。平均値Ag1,Ag2は、次式(1),(2)により算出される。
【数1】
但し、i=x,y,zである。
【0044】
分散値B1,B2は、X,Y,Z軸それぞれについて算出され、B1=Bx1,By1,Bz1、B2=Bx2,By2,Bz2とする。分散値B1,B2は、次式(3),(4)により算出される。
【数2】
【0045】
また、分散値B1,B2の各合計値Bg1,Bg2は、次式(5),(6)により算出される。
Bg1=Bx1+By1+Bz1 …(5)
Bg2=Bx2+By2+Bz2 …(6)
以下、分散値B1,B2の合計値Bg1,Bg2を、分散値Bg1,Bg2という。
【0046】
アクティブ→スタンバイの変化があるか否かを判別するための分散値Bg1の閾値を第1の設定値としての設定値C1とする。Bg1<C1の場合に、アクティブ→スタンバイの変化があると判別するものとする。スタンバイ→スリープ、アクティブ→スリープの変化があるか否かを判別するための分散値Bg2の閾値を第3の設定値としての設定値C2とする。Bg2<C2の場合に、スタンバイ→スリープ、アクティブ→スリープの変化があると判別するものとする。スタンバイ→アクティブの変化があるか否かを判別するための分散値Bg1の閾値を第2の設定値としての設定値C3とする。Bg1>C3の場合に、スタンバイ→アクティブの変化があると判別するものとする。
【0047】
アクティブ⇔安全範囲外姿勢、スリープ→アクティブの変化があるか否かの判定をするための姿勢角度変化量ΔXan,ΔYanは、加速度Gx,Gyを用いて算出される。先ず、水平面は、次式(7)により表される。
Gx*X+Gy*Y+Gz*Z=0 …(7)
なお、水平面の法線ベクトルgは、(Gx,Gy,Gz)で表される。但し、HT1に重力のみが働いている場合である。
【0048】
直線X軸は、X=a,y=0,z=0(a:任意の数値)で表される。X軸の単位ベクトルは、(1,0,0)で表される。直線Y軸は、X=0,y=b,z=0(b:任意の数値)で表される。Y軸の単位ベクトルは、(0,1,0)で表される。また、ベクトルD=(Dx,Dy,Dz)、ベクトルE=(Ex,Ey,Ez)についての内積の公式によると、ベクトルD,Eの間の角度をθとすると、ベクトルD,Eの内積=Dx*Ex+Dy*Ey+Dz*Ez=|D|*|E|cosθと表される。
【0049】
よって、水平面及びX軸の間の角度(姿勢角度)Xanと、水平面及びY軸の間の角度(姿勢角度)Yanとは、それぞれ、次式(8),(9)により算出される。
【数3】
【0050】
なお、式(8),(9)において、(Gx2+Gx2+Gx2+Gz2)1/2の値は、重力加速度そのものになり固定値としてもよさそうであるが、実際には誤差成分の影響を軽減するため、その都度算出したほうが、よい精度の姿勢角度Xan,Yanが得られる。姿勢角度変化量ΔXan,ΔYanは、それぞれ、姿勢角度Xan,Yanの前回の値からの増加量である。
【0051】
スリープ→スタンバイの変化があるか否かは、姿勢角度変化量ΔXan,ΔYanが所定条件を満たし、且つ所定時間より多く継続したか否かにより判定される。この姿勢角度変化量ΔXan,ΔYanの所定条件を第1の設定条件としての設定条件Bとし、設定条件Bの継続時間の閾値を第4の時間としての設定値T0とする。設定値T0は、例えば、200〜300ms程度とする。
【0052】
アクティブ→安全範囲外姿勢の変化があるか否かは、姿勢角度Xan,Yanが所定条件を満たしたか否かにより判定される。この姿勢角度Xan,Yanの条件を第2の設定条件としての設定条件A0とする。設定条件A0は、例えば、レーザ光が水平方向に照射されるおそれがあるとみなせる姿勢角度Xan,Yanの範囲である。
【0053】
安全範囲外姿勢→アクティブの変化があるか否かは、姿勢角度Xan,Yanが所定条件を満たしたか否かにより判定される。この姿勢角度Xan,Yanの条件を第3の設定条件としての設定条件A1とする。設定条件A1は、例えば、レーザ光が水平方向に照射されるおそれがなくなったとみなせる姿勢角度Xan,Yanの範囲である。
【0054】
また、電源オフ(レーザ光及び照準光もオフ)の状態において、ユーザにより操作部17の電源キーが押下されて電源オンされると、アクティブの状態に遷移される。電源オンの状態(アクティブ、安全範囲外姿勢、スタンバイ、スリープ)において、ユーザにより操作部17の電源キーが押下されて電源オフされると、電源オフの状態に遷移される。
【0055】
次いで、図6〜図8を参照して、HT1において実行される設定処理を説明する。設定処理は、後述するスキャン処理で用いる設定情報(時刻、設定値、設定条件)を設定する処理である。図6に、設定処理の流れを示す。図7(a)に、設定画面181を示す。図7(b)に、設定画面182を示す。図8(a)に、設定画面183を示す。図8(b)に、設定画面184を示す。
【0056】
HT1において、例えば、電源オンの状態で操作部17に設定処理の実行指示が入力されたことをトリガとして、ROM13から読み出されて適宜RAM12に展開された設定プログラムと、CPU11との協働で設定処理が実行される。
【0057】
先ず、HT1の状態遷移に関する設定情報を設定するための設定画面が表示部18に表示され、その設定画面に対応する情報の入力が操作部17により受け付けられ、入力された情報に応じて設定情報(時刻t1,t2,ts(時間ΔCnt1, ΔCnt2, Δt)、設定値T0,C1,C2,C3、設定条件B,A0,A1)が生成される(ステップS11)。そして、ステップS11で生成された設定情報がフラッシュメモリ14に記憶され(ステップS12)、設定処理が終了する。
【0058】
例えば、ステップS11で表示される設定画面として図7(a)に示す設定画面181が表示される。設定画面181は、ユーザの性別(男、女)、世代(若年、成年、中年)、体型(やせ気味、標準、太り気味)、HT1の操作経験(浅い、普通、熟練)を入力可能である。例えば、ユーザによりHT1に与えられる加速度は、男>女、若年>成年>中年、やせ気味<標準<太り気味となり、操作時間が、浅い>普通>熟練となる。この入力情報に対応して、ユーザの個人差を考慮した適切な設定情報が生成される。
【0059】
設定画面181においては、ユーザを識別する登録番号の入力も可能である。登録番号と設定情報とを対応付けてフラッシュメモリ14に記憶することにより、HT1を複数のユーザで使用する場合にも、各ユーザに適切な設定情報を設定できる。
【0060】
また、設定画面181において、カスタマイズボタンを押下することにより、設定画面182が表示される。設定画面182の表示により、HT1を把持して実際にバーコード読取動作(状態:アクティブ)を行い、そのあと表示部18の画面を数秒間見るという動作(状態:スリープ)をユーザに促し、その動作中の加速度データを取得し、その取得した加速度データに基づいて設定情報を生成する。このため、アクティブ及びスリープに関し、ユーザにとって、さらに最適な設定情報を設定できる。設定画面182においても、登録番号の入力が可能である。
【0061】
また、ステップS11においては、図8(a)に示す設定画面183が表示されることとしてもよい。設定画面183では、作業場所(倉庫、屋内、屋外)、環境振動雑音(無し、少ない、多い)、作業人員(少ない、普通、多い)の選択入力が可能である。設定画面183では、机上等にHT1が置かれて完全に静止した状態(スリープ)での環境条件を入力する。このため、スリープに関し、ユーザにとって、さらに最適な設定情報を設定できる。設定画面183において、HT1を使用する場所を識別する設定条件番号の入力が可能であり、設定条件番号に設定情報を対応付けてフラッシュメモリ14に記憶させることが可能である。
【0062】
また、ステップS11においては、図8(b)に示す設定画面184が表示されることとしてもよい。設定画面184により、HT1を実際に机上等の普段置くところに置く動作(状態:スリープ)をブザー音が鳴るまでユーザに促し、その動作中の加速度データを取得し、その取得した加速度データに基づいて設定情報を生成する。設定画面184においても、設定条件番号の入力が可能である。但し、設定画面184の例は、HT1がブザー音出力部を備えてブザー音を出力する構成に対応するが、これに限定されるものではない。
【0063】
なお、フラッシュメモリ14(又はROM13)には、デフォルトの設定情報が予め記憶されているものとする。このため、設定処理が実行されていなくても、フラッシュメモリ14に記憶されているデフォルトの設定情報を用いて、スキャン処理が実行される。
【0064】
次いで、図9を参照して、HT1において実行される加速度データ取り込み処理を説明する。加速度データ取り込み処理は、HT1の加速度データを所定の周期で取り込む処理である。図9に、加速度データ取り込み処理の流れを示す。
【0065】
HT1において、例えば、タイマ19により加速度データ取り込みの所定周期がカウントされ、その取り込みの実行タイミングを示す割り込み信号がタイマ19から出力されてCPU11に入力されたことをトリガとして、ROM13から読み出されて適宜RAM12に展開された加速度データ取り込みプログラムと、CPU11との協働で加速度データ取り込み処理が実行される。
【0066】
先ず、3軸加速度センサ21及びAD変換部22により、X,Y,Z軸の加速度データGx,Gy,Gzが取得される(ステップS21)。そして、ステップS21で取得された加速度データGx,Gy,Gzが、最新の加速度データとして、タイマ19により取得される加速度データの取得時刻情報に対応付けられてRAM12のリングバッファ121に格納される(ステップS22)。
【0067】
そして、リングバッファ121の加速度データGx,Gy,Gzが更新された旨を示す加速度データ更新フラグがRAM12に格納されて設定され(ステップS23)、加速度データ取り込み処理が終了する。
【0068】
次いで、図10〜図12を参照して、HT1において実行されるスキャン処理を説明する。スキャン処理は、HT1における状態遷移を行い、その状態遷移に応じて、レーザスキャナ部20のレーザ光及び照準光の照射オンを含むスキャン動作と、レーザ光及び照準光の照射オフとを行う処理である。図10に、スキャン処理の流れを示す。図11に、図10のスキャン処理の続きの流れを示す。
【0069】
HT1において、例えば、操作部17の電源キーが押下入力されたことをトリガとして、ROM13から読み出されて適宜RAM12に展開されたスキャンプログラムと、CPU11との協働でスキャン処理が実行される。
【0070】
なお、以下の処理において、設定処理により設定された設定情報又はデフォルトの設定情報がフラッシュメモリ14から読み出されるものとする。また、登録番号に対応する設定情報がフラッシュメモリ14に記憶されており、予め、使用するユーザの登録番号が操作部17に入力された場合には、以下の処理において、入力された登録番号に対応する設定情報がフラッシュメモリ14から読み出されるものとする。
【0071】
先ず、状態変数HT_Stageが10に初期設定される(ステップS31)。そして、RAM12に記憶されるデータ更新フラグが参照され、データ更新フラグが設定され加速度データの更新があるか否かが判別される(ステップS32)。加速度データの更新がない場合(ステップS32;NO)、スキャン動作及び状態遷移とは別の処理が適宜実行され(ステップS33)、ステップS32に移行される。ステップS33では、例えば、状態変数HT_Stage=10でレーザスキャナ部20によりレーザ光及び照準光が照射されている場合に、スキャン動作が実行される。また、状態変数HT_Stage≠10でレーザスキャナ部20によりレーザ光及び照準光が照射されていない場合に、スキャン動作が停止される。
【0072】
加速度データの更新がある場合(ステップS32;YES)、RAM12に記憶されたデータ更新フラグがリセットされる(ステップS34)。そして、フラッシュメモリ14から時刻t1,t2が読み出され、RAM12から時刻t2〜t0間の3軸分の加速度データGx,Gy,Gzが読み出され、時刻t1〜t0間の3軸分の加速度データGx,Gy,Gzの平均値Agx1,Agy1,Agz1が算出され、時刻t2〜t0間の3軸分の加速度データGx,Gy,Gzの平均値Agx2,Agy2,Agz2が算出される(ステップS35)。ステップS35では、式(1),(2)に基づいて算出される。
【0073】
そして、時刻t1〜t0間の3軸分の加速度データGx,Gy,Gz、平均値Agx1,Agy1,Agz1を用いて、分散値Bx1,By1,Bz1が算出され、その合計値としての分散値Bg1が算出され、同じく時刻t2〜t0間の3軸分の加速度データGx,Gy,Gz、平均値Agx2,Agy2,Agz2を用いて、分散値Bx2,By2,Bz2が算出され、その合計値としての分散値Bg2が算出される(ステップS36)。ステップS36では、式(3)〜(6)に基づいて算出される。
【0074】
そして、フラッシュメモリ14から時刻tsが読み出され、時刻ts〜t0間の加速度データGx,Gy,Gzを用いてその3軸分の平均値が算出され、その3軸分の平均値を用いて2軸分の姿勢角度Xan,Yanが算出される(ステップS37)。ステップS37では、式(8),(9)に基づいて、加速度データの平均値がGx,Gy,Gzに代入されて算出される。
【0075】
そして、状態変数HT_Stageが10又は11であるか否かが判別される(ステップS38)。状態変数HT_Stageが10又は11である場合(ステップS38;YES)、状態変数HT_Stageが10であるか否かが判別される(ステップS39)。状態変数HT_Stageが10である場合(ステップS39;YES)、フラッシュメモリ14から設定条件A0が読み出され、ステップS37で算出された姿勢角度Xan,Yanが設定条件A0を満たすか否かが判別される(ステップS40)。
【0076】
姿勢角度Xan,Yanが設定条件A0を満たす場合(ステップS40;YES)、状態変数HT_Stageが11に設定される(ステップS41)。そして、フラッシュメモリ14から設定値C1が読み出され、ステップS36で算出された分散値Bg1が、Bg1<設定値C1を満たすか否かが判別される(ステップS42)。姿勢角度Xan,Yanが設定条件A0を満たさない場合(ステップS40;NO)、ステップS42に移行される。
【0077】
Bg1<C1を満たす場合(ステップS42;YES)、状態変数HT_Stageが20に設定される(ステップS43)。そして、フラッシュメモリ14から設定値C2が読み出され、ステップS36で算出された分散値Bg2が、Bg2<設定値C2を満たすか否かが判別される(ステップS44)。Bg1<C1を満たさない場合(ステップS42;NO)、ステップS44に移行される。
【0078】
Bg2<C2を満たす場合(ステップS44;YES)、ステップS37で算出された姿勢角度Xan,YanがRAM12に記憶され、状態変数HT_Stageが40に設定される(ステップS45)。そして、状態変数HT_Stageが10であるか否かが判別される(ステップS48)。Bg2<C2を満たさない場合(ステップS44;NO)、ステップS48に移行される。
【0079】
状態変数HT_Stageが10である場合(ステップS48;YES)、レーザスキャナ部20におけるレーザ光及び照準光の照射がオンされ(ステップS49)、ステップS32に移行される。状態変数HT_Stageが10でない場合(ステップS48;NO)、レーザスキャナ部20におけるレーザ光及び照準光の照射がオフされ(ステップS50)、ステップS32に移行される。
【0080】
状態変数HT_Stageが10でない場合(ステップS39;NO)、状態変数HT_Stageが11であり、フラッシュメモリ14から設定条件A1が読み出され、ステップS37で算出された姿勢角度Xan,Yanが設定条件A1を満たすか否かが判別される(ステップS46)。姿勢角度Xan,Yanが設定条件A1を満たす場合(ステップS46;YES)、状態変数HT_Stageが10に設定され(ステップS47)、ステップS48に移行される。姿勢角度Xan,Yanが設定条件A1を満たさない場合(ステップS46;NO)、ステップS48に移行される。
【0081】
状態変数HT_Stageが10又は11でない場合(ステップS38;NO)、状態変数HT_Stageが20であるか否かが判別される(ステップS51)。状態変数HT_Stageが20である場合(ステップS51;YES)、フラッシュメモリ14から設定値C3が読み出され、ステップS36で算出された分散値Bg1が、Bg1>設定値C3を満たすか否かが判別される(ステップS52)。
【0082】
Bg1>C3を満たす場合(ステップS52;YES)、状態変数HT_Stageが10に設定される(ステップS53)。そして、ステップS36で算出された分散値Bg2が、Bg2<設定値C2を満たすか否かが判別される(ステップS54)。Bg1>C3を満たさない場合(ステップS52;NO)、ステップS54に移行される。
【0083】
Bg2<C2を満たす場合(ステップS54;YES)、ステップS37で算出された姿勢角度Xan,YanがRAM12に記憶され、状態変数HT_Stageが40に設定され(ステップS55)、ステップS48に移行される。Bg2<C2を満たさない場合(ステップS56;NO)、ステップS48に移行される。
【0084】
状態変数HT_Stageが20でない場合(ステップS52;NO)、状態変数HT_Stageが40であり、フラッシュメモリ14から設定条件Bが読み出され、RAM12に前回記憶された姿勢角度Xan,Yanから(ステップS37で算出された)現在の姿勢角度Xan,Yanへの変化量(姿勢角度変化量ΔXan,ΔYan)が、設定条件Bを満たすか否かが判別される(ステップS56)。
【0085】
姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たす場合(ステップS56;YES)、フラッシュメモリ14から設定値T0が読み出され、タイマ19から出力される時刻情報に基づいて、姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たす継続時間がカウントされ、その継続時間が設定値T0を越えるか否かが判別される(ステップS57)。継続時間が設定値T0を越える場合(ステップS57;YES)、状態変数HT_Stageが10に設定され(ステップS58)、ステップS48に移行される。継続時間が設定値T0を越えない場合(ステップS57;NO)、ステップS48に移行される。姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たさない場合(ステップS56;NO)、ステップS48に移行される。
【0086】
図12に、実際のスキャン動作に対応する従来例及び本実施の形態におけるレーザ光及び照準光の照射を示す。図12に示すように、実際のスキャン動作がされる場合に、従来のレーザスキャナでは、常時オンモードが有効になっている間ずっと、レーザ光及び照準光が照射されている。これに対し、HT1におけるレーザスキャナ部20におけるレーザ光及び照準光の照射は、ほぼ実際にスキャン動作がなされる間のみになされ、省電力化が実現されていることが分かる。
【0087】
以上、本実施の形態によれば、HT1は、アクティブの状態に設定し、レーザスキャナ部20により検知された加速度データGx,Gy,Gzについて、時刻t1〜t0、t2〜t0間の加速度データの平均値Agx1,Agy1,Agz1,Agx2,Agy2,Agz2を算出し、時刻t1〜t0、t2〜t0間の加速度Gx,Gy,Gz及び平均値Agx1,Agy1,Agz1,Agx2,Agy2,Agz2から分散値Bg1,Bg2を算出する。そして、HT1は、アクティブの状態においてレーザスキャナ部20のレーザ光及び照準光の照射をオンする。
【0088】
そして、HT1は、アクティブの状態において、分散値Bg1が設定値C1より小さいか否かを判別し、分散値Bg1が設定値C1より小さい場合に、スタンバイ状態としてレーザ光及び照準光の照射をオフする。このため、スキャン動作を行わないスタンバイの状態において、レーザ光及び照準光の照射をオフして、容易且つ効果的にHT1の省電力化を実現できる。特に、スタンバイの状態において、ユーザの不規則な操作に対応してレーザ光及び照準光の照射をオフでき、練習や訓練をしていないユーザに対してもHT1の省電力化を実現できる。特に、HT1が電池駆動であるため、その電池寿命を延ばすことができる。
【0089】
そして、HT1は、アクティブ又はスタンバイの状態において、分散値Bg2が設定値C2より小さいか否かを判別し、分散値Bg2が設定値C2より小さい場合に、スリープの状態としてレーザ光及び照準光の照射をオフする。このため、スキャン動作を行わないスリープの状態においてレーザ光及び照準光の照射をオフして、容易且つ効果的にHT1の省電力化を実現できる。特に、スリープの状態において、机上にHT1を置きっぱなしにすること等に対応してレーザ光及び照準光の照射をオフでき、ユーザの不注意による使用状況に対してもHT1の省電力化を実現できる。
【0090】
また、HT1は、スタンバイの状態において、分散値Bg1が設定値C3より大きいか否かを判別し、分散値Bg1が設定値C3より大きい場合に、アクティブの状態としてレーザ光及び照準光の照射をオンする。このため、適切な動作タイミングで精度よくHT1のレーザ光及び照準光の照射をオンできる。
【0091】
また、HT1は、時刻ts〜t0間の加速度データの平均値を算出し、当該加速度データの平均値から水平面に対する姿勢角度Xan,Yanを算出し、スリープの状態において、姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たし且つ設定値T0継続されるか否かが判別され、姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たし且つ設定値T0継続された場合に、アクティブの状態としてレーザ光及び照準光の照射をオンする。このため、適切な動作タイミングで精度よくHT1のレーザ光及び照準光の照射をオンできる。特に、姿勢角度変化量を監視するため、単純な机の振動や瞬間的な衝撃でレーザ光及び照準光の照射をオンすることがないので、余分な電力消費を防ぎ、さらに効果的にHT1の省電力化を実現できる。
【0092】
また、HT1は、アクティブの状態において、姿勢角度Xan,Yanが設定条件A0を満たすか否かを判別し、姿勢角度Xan,Yanが設定条件A0を満たす場合に、安全範囲外姿勢の状態としてレーザ光及び照準光の照射をオフし、安全範囲外姿勢状態において、姿勢角度Xan,Yanが設定条件A1を満たす場合に、アクティブの状態としてレーザ光及び照準光の照射をオンする。このため、レーザ光により周囲の人間の目が傷つけられることを防ぐことができる。
【0093】
また、HT1は、安全範囲外姿勢の状態において、姿勢角度Xan,Yanが設定条件A1を満たすか否かを判別し、姿勢角度Xan,Yanが設定条件A1を満たす場合に、アクティブの状態としてレーザ光及び照準光の照射をオンする。このため、適切な動作タイミングで精度よくHT1のレーザ光及び照準光の照射をオンできる。
【0094】
なお、上記実施の形態における記述は、本発明に係る携帯型コード読取装置及びプログラムの一例であり、これに限定されるものではない。
【0095】
上記実施の形態では、設定処理においてユーザの手の動きを教示する構成例を説明したが、これに限定されるものではない。例えば、スキャン処理実行中に取得する加速度データに基づいて適切な設定情報を生成して更新していく学習機能を有する構成としてもよい。
【0096】
また、上記実施の形態におけるHT1の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。
【図面の簡単な説明】
【0097】
【図1】本発明に係る実施の形態のHTの内部構成を示すブロック図である。
【図2】リングバッファの構成を示す図である。
【図3】HTにおけるX,Y,Z軸の一例を示す図である。
【図4】HTの状態遷移を示す図である。
【図5】時間に対する加速度の関係を示す図である。
【図6】設定処理を示すフローチャートである。
【図7】(a)は、第1の設定画面を示す図である。(b)は、第2の設定画面を示す図である。
【図8】(a)は、第3の設定画面を示す図である。(b)は、第4の設定画面を示す図である。
【図9】加速度データ取り込み処理を示すフローチャートである。
【図10】スキャン処理を示すフローチャートである。
【図11】図10のスキャン処理の続きを示すフローチャートである。
【図12】実際のスキャン動作に対応する従来例及び本実施の形態におけるレーザ光及び照準光の照射を示す図である。
【符号の説明】
【0098】
11 CPU
12 RAM
13 ROM
14 フラッシュメモリ
15 IO制御ブリッジ
16 通信部
17 操作部
18 表示部
19 タイマ
20 レーザスキャナ部
21 3軸加速度センサ
22 AD変換部
【技術分野】
【0001】
本発明は、携帯型コード読取装置及びプログラムに関する。
【背景技術】
【0002】
従来、商品等に付されたバーコードのコード情報を読み取るレーザスキャナが知られている。このレーザスキャナによるコード情報読取は、常時レーザ光及び照準光の照射をオンにして制限なく繰り返されていた。つまり、アイドル(待機)状態でも無駄に常時レーザ光及び照準光が照射されスキャン動作が繰り返されていた。
【0003】
上記無駄な光照射については、AC電源に有線で接続されているPOS端末のレーザスキャナでは消費電力が大きくなるだけであるが、電池駆動の携帯端末(携帯型のレーザスキャナ)では無駄な電力を消費するため、電池寿命が短くなる。
【0004】
上記消費電力を低減するため、加速度センサによりユーザが筐体を振ったことを感知すると照準光を照射開始し、トリガボタン押下で照準光の照射を終了するバーコード読取装置が考えられている(例えば、特許文献1参照)。
【特許文献1】特開2007−48044号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、上記従来のバーコード読取装置では、照準光の照射開始において、加速度センサから得られる加速度と所定閾値との単純な大小を判定しているのみであり、人間の不規則な操作を安定して特定することが、現実的には例外が多々発生しやすく困難であった。また、照準光の照射終了において、ユーザが意識してトリガボタンをいちいち押下する必要があり煩わしかった。さらに、照準光を照射したまま、ユーザが画面を参照したり、小休止すること等が発生するおそれがあり、十分に消費電力化が図れていなかった。
【0006】
本発明の課題は、光照射によるコード情報読取において、容易且つ効果的に省電力化を実現することである。
【課題を解決するための手段】
【0007】
上記課題を解決するために、請求項1に記載の発明の携帯型コード読取装置は、
加速度を所定周期で検知する加速度検知手段と、
光を照射してコード情報を読み取る読取手段と、
前記コード情報を読み取るアクティブ状態において前記読取手段の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合に前記読取手段の光の照射をオフする制御手段と、を備える。
【0008】
請求項2に記載の発明は、請求項1に記載の携帯型コード読取装置において、
前記制御手段は、現在時点から所定の第1の時間前までの前記検知された加速度の第1の分散値を算出し、前記アクティブ状態において、前記第1の分散値が所定の第1の設定値より小さいか否かを判別し、前記第1の分散値が前記第1の設定値より小さい場合に、前記コード情報の読取を一時停止するスタンバイ状態に設定して前記読取手段の光の照射をオフする。
【0009】
請求項3に記載の発明は、請求項2に記載の携帯型コード読取装置において、
前記制御手段は、前記スタンバイ状態において、前記第1の分散値が所定の第2の設定値より大きいか否かを判別し、前記第1の分散値が前記第2の設定値より大きい場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする。
【0010】
請求項4に記載の発明は、請求項2又は3に記載の携帯型コード読取装置において、
前記制御手段は、現在時点から前記第1の時間より長い所定の第2の時間前までの前記検知された加速度の第2の分散値を算出し、前記アクティブ状態又は前記スタンバイ状態において、前記第2の分散値が所定の第3の設定値より小さいか否かを判別し、前記第2の分散値が前記第3の設定値より小さい場合に、前記コード情報の読取を停止するスリープ状態に設定して前記読取手段の光の照射をオフする。
【0011】
請求項5に記載の発明は、請求項4に記載の携帯型コード読取装置において、
前記制御手段は、現在時点から所定の第3の時間前までの前記検知された加速度の平均値を算出し、当該第3の時間の加速度の平均値から重力加速度方向に対して垂直な水平面に対する姿勢角度を算出し、前記スリープ状態において、前記姿勢角度の変化量が所定の第1の設定条件を満たし且つ所定の第4の時間継続されるか否かを判別し、前記変化量が前記第1の設定条件を満たし且つ前記第4の時間継続された場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする。
【0012】
請求項6に記載の発明は、請求項5に記載の携帯型コード読取装置において、
前記制御手段は、前記アクティブ状態において、前記算出された姿勢角度が所定の第2の設定条件を満たすか否かを判別し、前記姿勢角度が前記第2の設定条件を満たす場合に、前記光の照射方向が安全でないおそれがある安全範囲外姿勢状態に設定して前記読取手段の光の照射をオフし、前記安全範囲外姿勢状態において、前記算出された姿勢角度が所定の第3の設定条件を満たすか否かを判別し、前記姿勢角度が前記第3の設定条件を満たす場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする。
【0013】
請求項7に記載の発明のプログラムは、
コンピュータを、
加速度を所定周期で検知する加速度検知手段、
光を照射してコード情報を読み取る読取手段、
前記コード情報を読み取るアクティブ状態において前記読取手段の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合に前記読取手段の光の照射をオフする制御手段、
として機能させる。
【発明の効果】
【0014】
本発明によれば、光照射によるコード情報読取において、容易且つ効果的に省電力化が実現できる。
【発明を実施するための最良の形態】
【0015】
以下、添付図面を参照して本発明に係る好適な実施の形態を詳細に説明する。なお、本発明は、図示例に限定されるものではない。
【0016】
先ず、図1を参照して、本実施の形態の装置構成を説明する。図1に、本実施の形態のHT(Handy Terminal)1の内部構成を示す。
【0017】
本実施の形態の携帯型コード読取装置としてのHT1は、レーザ光照射により、商品等に付されたバーコードのコード情報を読み取る携帯型の装置である。図1に示すように、本実施の形態のHT1は、制御手段としてのCPU(Central Processing Unit)11と、RAM(Random Access Memory)12と、ROM(Read Only Memory)13と、フラッシュメモリ14と、IO(Input Output)制御ブリッジ15と、通信部16と、操作部17と、表示部18と、タイマ19と、読取手段としてのレーザスキャナ部20と、加速度検知手段としての3軸加速度センサ21と、AD変換部22と、を備えて構成される。
【0018】
CPU11は、HT1の各部を中央制御する。CPU11は、ROM13に記憶されたシステムプログラム及びアプリケーションプログラムの中から指定されたプログラムを読み出してRAM12に展開し、この展開されたプログラムとの協働で各種処理を実行する。
【0019】
また、CPU11は、レーザスキャナ部20にバーコードイメージ(データ)を取得させ、そのバーコードイメージからバーコードのコード情報を読取る。このような、一連の動作をスキャン動作(コード情報の読取)とする。
【0020】
RAM12は、情報の読み書きが可能な揮発性のメモリであり、各種プログラムや各種データを格納するワークエリアを有する。
【0021】
ROM13は、情報の読み出し専用の不揮発性のメモリであり、各種プログラム及び各種データを記憶する。ROM13は、後述する設定プログラム、加速度データ取り込みプログラムと、スキャンプログラムと、を記憶する。
【0022】
フラッシュメモリ14は、情報の読み書きが可能な不揮発性のメモリである。フラッシュメモリ14は、設定情報等が記憶される。
【0023】
IO制御ブリッジ15は、CPU11、RAM12、ROM13、フラッシュメモリ14、通信部16、操作部17、表示部18、タイマ19、レーザスキャナ部20及びAD変換部22と接続され、各部の情報の送受信を介する。
【0024】
通信部16は、外部機器と有線通信や無線通信を行う。例えば、ケーブル、クレードル等を介した有線通信や、無線LAN(Local Area Network)等の無線通信である。
【0025】
操作部17は、数字キー、各種文字キー、メニューキー、電源キー等を有するキー入力部を備え、ユーザからのキー押下等の各種操作入力を受け付け、その操作情報をCPU11に出力する。表示部18は、LCD(Liquid Crystal Display)等により構成され、CPU11から入力される表示情報に基づいて、各種情報を表示する。操作部17及び表示部18は、一体的にタッチパネルが構成されるものとしてもよい。
【0026】
タイマ19は、所定周期の3軸加速度センサ21からの加速度データの取り込みタイミングをカウントし、取り込みたいタイミングになると割り込み信号をCPU11に出力する。また、タイマ19は、現在の時刻情報をCPU11に出力する。
【0027】
レーザスキャナ部20は、レーザ光発光部、受光部、ゲイン回路、2値化回路及び照準光発光部を備える。レーザスキャナ部20は、CPU11からの指示に従い、レーザ光発光部及び照準光発光部がレーザ光及び照準光を照射し、そのレーザ光がバーコード等で反射された反射光を受光部が受光してアナログの電気信号に変換してゲイン回路が増幅し、そのアナログ信号を所定閾値と比較して2値のデジタル信号に変換し、バーコードイメージ(データ)としてCPU11に出力する。
【0028】
3軸加速度センサ21は、HT1の筐体に対応する3軸方向の加速度を検知し、その加速度データのアナログの電気信号をAD変換部22に出力する。AD変換部22は、CPU11からの指示に従い、3軸加速度センサ21から入力される加速度データのアナログの電気信号をデジタル信号の加速度データに変換してCPU11に出力する。
【0029】
なお、HT1において、図1に示した各部は、後述する筐体2に覆われているものとする。また、HT1は、携帯型であり、その電源がバッテリ等であるものとするが、これに限定されるものではない。
【0030】
図2及び図3を参照して、RAM12に格納するデータの構成を説明する。図2に、リングバッファ121の構成を示す。図3に、HT1におけるX,Y,Z軸の一例を示す。
【0031】
3軸加速度センサ21により取得されるX軸、Y軸、Z軸(3軸)の加速度データをGx,Gy,Gzとする。加速度データGx,Gy,Gzは、所定周期で取り込まれ、図2に示すようなRAM12内のリングバッファ121に格納される。図3に示すように、Z軸をHT1の筐体2の正面に垂直な方向とし、X軸、Y軸を、筐体2の正面の平面を表す2軸とする。レーザスキャナ部20のレーザ光及び照準光は、例えば、Y軸、Z軸間の所定角度の方向に照射されるものとし、スキャン動作が、HT1の正面(XY平面)が地面に対して水平面にある場合に行われるものとする。しかし、この例に限定されるものではない。
【0032】
リングバッファ121は、N組(N:任意の整数)の加速度データGx,Gy,Gzをその取得時刻に対応付けて格納するとともに、先入れ先出し方式でリング状に循環して加速度データが更新される。Nの値は、リングバッファ121がオーバーフローしないように、十分大きな値をとっておくものとする。時刻t0は、現在時刻(最新の加速度データの取得時刻)である。時刻ts,t1,t2については、後述する。
【0033】
次に、図4〜図12を参照して、HT1の動作を説明する。先ず、図4及び図5を参照して、HT1の状態遷移を説明する。図4に、HT1の状態遷移を示す。図5に、時間に対する加速度の関係を示す。
【0034】
ユーザにより把持されて動かされるHT1について、3軸加速度センサ21により取得される加速度データに基づいて分散値及び姿勢角度を算出し、その分散値、姿勢角度(及び姿勢角度変化量)に応じて状態遷移がなされる。その状態遷移により、レーザスキャナ部20におけるレーザ光及び照準光照射が適宜オンオフされる。
【0035】
図4に示すように、HT1の状態としては、電源オフと、アクティブと、安全範囲外姿勢と、スタンバイと、スリープとが設定されている。アクティブ、安全範囲外姿勢、スタンバイ、スリープは、電源オン時の状態であり、順にHT_Stage10,11,20,40とする。
【0036】
アクティブとは、レーザスキャナ部20によりレーザ光及び照準光が常時照射されてスキャン動作が繰り返し実行されている状態である。安全範囲外姿勢とは、HT1の姿勢が大きく変化してレーザ光の照射方向が地面に対して水平近くになり、レーザ光が水平方向に照射される可能性がある状態である。このため、安全範囲外姿勢では、レーザスキャナ部20によるレーザ光及び照準光照射がオフされ、スキャナ動作もオフされる。
【0037】
スタンバイとは、スキャン動作中の小休止を示す状態であり、レーザスキャナ部20によるレーザ光及び照準光照射がオフされ、スキャナ動作もオフされる。ユーザは、スキャン動作の途中で、表示部18の画面を覗いたり、ほんの数秒間ただ漫然として大きな動作を停止することがよくある。その小休止状態をスタンバイとして積極的に抽出し、レーザ光照射をオフすることは、省電力化の面で有意義である。
【0038】
スリープとは、HT1が動かされていない状態であり、レーザスキャナ部20によるレーザ光及び照準光照射がオフされ、スキャナ動作もオフされる。連続したスキャン動作の途中で突発的な事象が起こったり、少し休憩しようとして、ユーザがHT1を近くの机上などに置きっぱなしにする行為は、人間ならば当たり前に行う行為であり、これに対応する状態をスリープとしている。
【0039】
図5を参照して、状態遷移に用いる分散値及び姿勢角度(及び姿勢角度変化量)の算出を説明する。図2でも示したように、時刻については、t0,ts,t1,t2を考える。図5に示すように、時刻t1は、現在の時刻t0から第1の時間としての所定時間ΔCnt1前の時刻である。時刻t2は、時刻t0から第2の時間としての所定時間ΔCnt2前の時刻であり、ΔCnt2>ΔCnt1である。時刻tsは、時刻t0から所定時間Δt前の加速度データの取得時刻である。
【0040】
ΔCnt1は、アクティブ⇔スタンバイの変化があるか否かを判定するための分散値の合計値Bg1を算出するための加速度データの分散値B1及び平均値Ag1における加速度データの取得対象の時間範囲を示す。ΔCnt1は、例えば2秒程度であるものとする。ΔCnt2は、スタンバイ→スリープ、アクティブ→スリープの変化があるか否かを判定するための分散値の合計値Bg2を算出するための加速度データの分散値B2及び平均値Ag2における加速度データの取得対象の時間範囲を示す。ΔCnt2は、例えば5秒程度であるものとする。
【0041】
第3の時間としての時間Δtは、水平面からのHT1のX軸,Y軸の変化量を示す姿勢角度変化量ΔXan,ΔYanにおける加速度データの取得対象の時間範囲を示す。
【0042】
分散値とは、変数(データ)がその期待値(平均値)からどれだけばらけているかを示す値である。つまり、加速度データの分布がその平均値に集まっていれば分散値が小さくなり、加速度データの分布がその平均値から離れていれば分散値が大きくなる。よって、加速度データの分散値が大きいと、HT1が動いているとみなすことができ、加速度データの分散値が小さいと、HT1が停止しているとみなすことができる。
【0043】
平均値Ag1,Ag2は、X,Y,Z軸それぞれについて算出され、Ag1=Agx1,Agy1,Agz1、Ag2=Agx2,Agy2,Agz2とする。平均値Ag1,Ag2は、次式(1),(2)により算出される。
【数1】
但し、i=x,y,zである。
【0044】
分散値B1,B2は、X,Y,Z軸それぞれについて算出され、B1=Bx1,By1,Bz1、B2=Bx2,By2,Bz2とする。分散値B1,B2は、次式(3),(4)により算出される。
【数2】
【0045】
また、分散値B1,B2の各合計値Bg1,Bg2は、次式(5),(6)により算出される。
Bg1=Bx1+By1+Bz1 …(5)
Bg2=Bx2+By2+Bz2 …(6)
以下、分散値B1,B2の合計値Bg1,Bg2を、分散値Bg1,Bg2という。
【0046】
アクティブ→スタンバイの変化があるか否かを判別するための分散値Bg1の閾値を第1の設定値としての設定値C1とする。Bg1<C1の場合に、アクティブ→スタンバイの変化があると判別するものとする。スタンバイ→スリープ、アクティブ→スリープの変化があるか否かを判別するための分散値Bg2の閾値を第3の設定値としての設定値C2とする。Bg2<C2の場合に、スタンバイ→スリープ、アクティブ→スリープの変化があると判別するものとする。スタンバイ→アクティブの変化があるか否かを判別するための分散値Bg1の閾値を第2の設定値としての設定値C3とする。Bg1>C3の場合に、スタンバイ→アクティブの変化があると判別するものとする。
【0047】
アクティブ⇔安全範囲外姿勢、スリープ→アクティブの変化があるか否かの判定をするための姿勢角度変化量ΔXan,ΔYanは、加速度Gx,Gyを用いて算出される。先ず、水平面は、次式(7)により表される。
Gx*X+Gy*Y+Gz*Z=0 …(7)
なお、水平面の法線ベクトルgは、(Gx,Gy,Gz)で表される。但し、HT1に重力のみが働いている場合である。
【0048】
直線X軸は、X=a,y=0,z=0(a:任意の数値)で表される。X軸の単位ベクトルは、(1,0,0)で表される。直線Y軸は、X=0,y=b,z=0(b:任意の数値)で表される。Y軸の単位ベクトルは、(0,1,0)で表される。また、ベクトルD=(Dx,Dy,Dz)、ベクトルE=(Ex,Ey,Ez)についての内積の公式によると、ベクトルD,Eの間の角度をθとすると、ベクトルD,Eの内積=Dx*Ex+Dy*Ey+Dz*Ez=|D|*|E|cosθと表される。
【0049】
よって、水平面及びX軸の間の角度(姿勢角度)Xanと、水平面及びY軸の間の角度(姿勢角度)Yanとは、それぞれ、次式(8),(9)により算出される。
【数3】
【0050】
なお、式(8),(9)において、(Gx2+Gx2+Gx2+Gz2)1/2の値は、重力加速度そのものになり固定値としてもよさそうであるが、実際には誤差成分の影響を軽減するため、その都度算出したほうが、よい精度の姿勢角度Xan,Yanが得られる。姿勢角度変化量ΔXan,ΔYanは、それぞれ、姿勢角度Xan,Yanの前回の値からの増加量である。
【0051】
スリープ→スタンバイの変化があるか否かは、姿勢角度変化量ΔXan,ΔYanが所定条件を満たし、且つ所定時間より多く継続したか否かにより判定される。この姿勢角度変化量ΔXan,ΔYanの所定条件を第1の設定条件としての設定条件Bとし、設定条件Bの継続時間の閾値を第4の時間としての設定値T0とする。設定値T0は、例えば、200〜300ms程度とする。
【0052】
アクティブ→安全範囲外姿勢の変化があるか否かは、姿勢角度Xan,Yanが所定条件を満たしたか否かにより判定される。この姿勢角度Xan,Yanの条件を第2の設定条件としての設定条件A0とする。設定条件A0は、例えば、レーザ光が水平方向に照射されるおそれがあるとみなせる姿勢角度Xan,Yanの範囲である。
【0053】
安全範囲外姿勢→アクティブの変化があるか否かは、姿勢角度Xan,Yanが所定条件を満たしたか否かにより判定される。この姿勢角度Xan,Yanの条件を第3の設定条件としての設定条件A1とする。設定条件A1は、例えば、レーザ光が水平方向に照射されるおそれがなくなったとみなせる姿勢角度Xan,Yanの範囲である。
【0054】
また、電源オフ(レーザ光及び照準光もオフ)の状態において、ユーザにより操作部17の電源キーが押下されて電源オンされると、アクティブの状態に遷移される。電源オンの状態(アクティブ、安全範囲外姿勢、スタンバイ、スリープ)において、ユーザにより操作部17の電源キーが押下されて電源オフされると、電源オフの状態に遷移される。
【0055】
次いで、図6〜図8を参照して、HT1において実行される設定処理を説明する。設定処理は、後述するスキャン処理で用いる設定情報(時刻、設定値、設定条件)を設定する処理である。図6に、設定処理の流れを示す。図7(a)に、設定画面181を示す。図7(b)に、設定画面182を示す。図8(a)に、設定画面183を示す。図8(b)に、設定画面184を示す。
【0056】
HT1において、例えば、電源オンの状態で操作部17に設定処理の実行指示が入力されたことをトリガとして、ROM13から読み出されて適宜RAM12に展開された設定プログラムと、CPU11との協働で設定処理が実行される。
【0057】
先ず、HT1の状態遷移に関する設定情報を設定するための設定画面が表示部18に表示され、その設定画面に対応する情報の入力が操作部17により受け付けられ、入力された情報に応じて設定情報(時刻t1,t2,ts(時間ΔCnt1, ΔCnt2, Δt)、設定値T0,C1,C2,C3、設定条件B,A0,A1)が生成される(ステップS11)。そして、ステップS11で生成された設定情報がフラッシュメモリ14に記憶され(ステップS12)、設定処理が終了する。
【0058】
例えば、ステップS11で表示される設定画面として図7(a)に示す設定画面181が表示される。設定画面181は、ユーザの性別(男、女)、世代(若年、成年、中年)、体型(やせ気味、標準、太り気味)、HT1の操作経験(浅い、普通、熟練)を入力可能である。例えば、ユーザによりHT1に与えられる加速度は、男>女、若年>成年>中年、やせ気味<標準<太り気味となり、操作時間が、浅い>普通>熟練となる。この入力情報に対応して、ユーザの個人差を考慮した適切な設定情報が生成される。
【0059】
設定画面181においては、ユーザを識別する登録番号の入力も可能である。登録番号と設定情報とを対応付けてフラッシュメモリ14に記憶することにより、HT1を複数のユーザで使用する場合にも、各ユーザに適切な設定情報を設定できる。
【0060】
また、設定画面181において、カスタマイズボタンを押下することにより、設定画面182が表示される。設定画面182の表示により、HT1を把持して実際にバーコード読取動作(状態:アクティブ)を行い、そのあと表示部18の画面を数秒間見るという動作(状態:スリープ)をユーザに促し、その動作中の加速度データを取得し、その取得した加速度データに基づいて設定情報を生成する。このため、アクティブ及びスリープに関し、ユーザにとって、さらに最適な設定情報を設定できる。設定画面182においても、登録番号の入力が可能である。
【0061】
また、ステップS11においては、図8(a)に示す設定画面183が表示されることとしてもよい。設定画面183では、作業場所(倉庫、屋内、屋外)、環境振動雑音(無し、少ない、多い)、作業人員(少ない、普通、多い)の選択入力が可能である。設定画面183では、机上等にHT1が置かれて完全に静止した状態(スリープ)での環境条件を入力する。このため、スリープに関し、ユーザにとって、さらに最適な設定情報を設定できる。設定画面183において、HT1を使用する場所を識別する設定条件番号の入力が可能であり、設定条件番号に設定情報を対応付けてフラッシュメモリ14に記憶させることが可能である。
【0062】
また、ステップS11においては、図8(b)に示す設定画面184が表示されることとしてもよい。設定画面184により、HT1を実際に机上等の普段置くところに置く動作(状態:スリープ)をブザー音が鳴るまでユーザに促し、その動作中の加速度データを取得し、その取得した加速度データに基づいて設定情報を生成する。設定画面184においても、設定条件番号の入力が可能である。但し、設定画面184の例は、HT1がブザー音出力部を備えてブザー音を出力する構成に対応するが、これに限定されるものではない。
【0063】
なお、フラッシュメモリ14(又はROM13)には、デフォルトの設定情報が予め記憶されているものとする。このため、設定処理が実行されていなくても、フラッシュメモリ14に記憶されているデフォルトの設定情報を用いて、スキャン処理が実行される。
【0064】
次いで、図9を参照して、HT1において実行される加速度データ取り込み処理を説明する。加速度データ取り込み処理は、HT1の加速度データを所定の周期で取り込む処理である。図9に、加速度データ取り込み処理の流れを示す。
【0065】
HT1において、例えば、タイマ19により加速度データ取り込みの所定周期がカウントされ、その取り込みの実行タイミングを示す割り込み信号がタイマ19から出力されてCPU11に入力されたことをトリガとして、ROM13から読み出されて適宜RAM12に展開された加速度データ取り込みプログラムと、CPU11との協働で加速度データ取り込み処理が実行される。
【0066】
先ず、3軸加速度センサ21及びAD変換部22により、X,Y,Z軸の加速度データGx,Gy,Gzが取得される(ステップS21)。そして、ステップS21で取得された加速度データGx,Gy,Gzが、最新の加速度データとして、タイマ19により取得される加速度データの取得時刻情報に対応付けられてRAM12のリングバッファ121に格納される(ステップS22)。
【0067】
そして、リングバッファ121の加速度データGx,Gy,Gzが更新された旨を示す加速度データ更新フラグがRAM12に格納されて設定され(ステップS23)、加速度データ取り込み処理が終了する。
【0068】
次いで、図10〜図12を参照して、HT1において実行されるスキャン処理を説明する。スキャン処理は、HT1における状態遷移を行い、その状態遷移に応じて、レーザスキャナ部20のレーザ光及び照準光の照射オンを含むスキャン動作と、レーザ光及び照準光の照射オフとを行う処理である。図10に、スキャン処理の流れを示す。図11に、図10のスキャン処理の続きの流れを示す。
【0069】
HT1において、例えば、操作部17の電源キーが押下入力されたことをトリガとして、ROM13から読み出されて適宜RAM12に展開されたスキャンプログラムと、CPU11との協働でスキャン処理が実行される。
【0070】
なお、以下の処理において、設定処理により設定された設定情報又はデフォルトの設定情報がフラッシュメモリ14から読み出されるものとする。また、登録番号に対応する設定情報がフラッシュメモリ14に記憶されており、予め、使用するユーザの登録番号が操作部17に入力された場合には、以下の処理において、入力された登録番号に対応する設定情報がフラッシュメモリ14から読み出されるものとする。
【0071】
先ず、状態変数HT_Stageが10に初期設定される(ステップS31)。そして、RAM12に記憶されるデータ更新フラグが参照され、データ更新フラグが設定され加速度データの更新があるか否かが判別される(ステップS32)。加速度データの更新がない場合(ステップS32;NO)、スキャン動作及び状態遷移とは別の処理が適宜実行され(ステップS33)、ステップS32に移行される。ステップS33では、例えば、状態変数HT_Stage=10でレーザスキャナ部20によりレーザ光及び照準光が照射されている場合に、スキャン動作が実行される。また、状態変数HT_Stage≠10でレーザスキャナ部20によりレーザ光及び照準光が照射されていない場合に、スキャン動作が停止される。
【0072】
加速度データの更新がある場合(ステップS32;YES)、RAM12に記憶されたデータ更新フラグがリセットされる(ステップS34)。そして、フラッシュメモリ14から時刻t1,t2が読み出され、RAM12から時刻t2〜t0間の3軸分の加速度データGx,Gy,Gzが読み出され、時刻t1〜t0間の3軸分の加速度データGx,Gy,Gzの平均値Agx1,Agy1,Agz1が算出され、時刻t2〜t0間の3軸分の加速度データGx,Gy,Gzの平均値Agx2,Agy2,Agz2が算出される(ステップS35)。ステップS35では、式(1),(2)に基づいて算出される。
【0073】
そして、時刻t1〜t0間の3軸分の加速度データGx,Gy,Gz、平均値Agx1,Agy1,Agz1を用いて、分散値Bx1,By1,Bz1が算出され、その合計値としての分散値Bg1が算出され、同じく時刻t2〜t0間の3軸分の加速度データGx,Gy,Gz、平均値Agx2,Agy2,Agz2を用いて、分散値Bx2,By2,Bz2が算出され、その合計値としての分散値Bg2が算出される(ステップS36)。ステップS36では、式(3)〜(6)に基づいて算出される。
【0074】
そして、フラッシュメモリ14から時刻tsが読み出され、時刻ts〜t0間の加速度データGx,Gy,Gzを用いてその3軸分の平均値が算出され、その3軸分の平均値を用いて2軸分の姿勢角度Xan,Yanが算出される(ステップS37)。ステップS37では、式(8),(9)に基づいて、加速度データの平均値がGx,Gy,Gzに代入されて算出される。
【0075】
そして、状態変数HT_Stageが10又は11であるか否かが判別される(ステップS38)。状態変数HT_Stageが10又は11である場合(ステップS38;YES)、状態変数HT_Stageが10であるか否かが判別される(ステップS39)。状態変数HT_Stageが10である場合(ステップS39;YES)、フラッシュメモリ14から設定条件A0が読み出され、ステップS37で算出された姿勢角度Xan,Yanが設定条件A0を満たすか否かが判別される(ステップS40)。
【0076】
姿勢角度Xan,Yanが設定条件A0を満たす場合(ステップS40;YES)、状態変数HT_Stageが11に設定される(ステップS41)。そして、フラッシュメモリ14から設定値C1が読み出され、ステップS36で算出された分散値Bg1が、Bg1<設定値C1を満たすか否かが判別される(ステップS42)。姿勢角度Xan,Yanが設定条件A0を満たさない場合(ステップS40;NO)、ステップS42に移行される。
【0077】
Bg1<C1を満たす場合(ステップS42;YES)、状態変数HT_Stageが20に設定される(ステップS43)。そして、フラッシュメモリ14から設定値C2が読み出され、ステップS36で算出された分散値Bg2が、Bg2<設定値C2を満たすか否かが判別される(ステップS44)。Bg1<C1を満たさない場合(ステップS42;NO)、ステップS44に移行される。
【0078】
Bg2<C2を満たす場合(ステップS44;YES)、ステップS37で算出された姿勢角度Xan,YanがRAM12に記憶され、状態変数HT_Stageが40に設定される(ステップS45)。そして、状態変数HT_Stageが10であるか否かが判別される(ステップS48)。Bg2<C2を満たさない場合(ステップS44;NO)、ステップS48に移行される。
【0079】
状態変数HT_Stageが10である場合(ステップS48;YES)、レーザスキャナ部20におけるレーザ光及び照準光の照射がオンされ(ステップS49)、ステップS32に移行される。状態変数HT_Stageが10でない場合(ステップS48;NO)、レーザスキャナ部20におけるレーザ光及び照準光の照射がオフされ(ステップS50)、ステップS32に移行される。
【0080】
状態変数HT_Stageが10でない場合(ステップS39;NO)、状態変数HT_Stageが11であり、フラッシュメモリ14から設定条件A1が読み出され、ステップS37で算出された姿勢角度Xan,Yanが設定条件A1を満たすか否かが判別される(ステップS46)。姿勢角度Xan,Yanが設定条件A1を満たす場合(ステップS46;YES)、状態変数HT_Stageが10に設定され(ステップS47)、ステップS48に移行される。姿勢角度Xan,Yanが設定条件A1を満たさない場合(ステップS46;NO)、ステップS48に移行される。
【0081】
状態変数HT_Stageが10又は11でない場合(ステップS38;NO)、状態変数HT_Stageが20であるか否かが判別される(ステップS51)。状態変数HT_Stageが20である場合(ステップS51;YES)、フラッシュメモリ14から設定値C3が読み出され、ステップS36で算出された分散値Bg1が、Bg1>設定値C3を満たすか否かが判別される(ステップS52)。
【0082】
Bg1>C3を満たす場合(ステップS52;YES)、状態変数HT_Stageが10に設定される(ステップS53)。そして、ステップS36で算出された分散値Bg2が、Bg2<設定値C2を満たすか否かが判別される(ステップS54)。Bg1>C3を満たさない場合(ステップS52;NO)、ステップS54に移行される。
【0083】
Bg2<C2を満たす場合(ステップS54;YES)、ステップS37で算出された姿勢角度Xan,YanがRAM12に記憶され、状態変数HT_Stageが40に設定され(ステップS55)、ステップS48に移行される。Bg2<C2を満たさない場合(ステップS56;NO)、ステップS48に移行される。
【0084】
状態変数HT_Stageが20でない場合(ステップS52;NO)、状態変数HT_Stageが40であり、フラッシュメモリ14から設定条件Bが読み出され、RAM12に前回記憶された姿勢角度Xan,Yanから(ステップS37で算出された)現在の姿勢角度Xan,Yanへの変化量(姿勢角度変化量ΔXan,ΔYan)が、設定条件Bを満たすか否かが判別される(ステップS56)。
【0085】
姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たす場合(ステップS56;YES)、フラッシュメモリ14から設定値T0が読み出され、タイマ19から出力される時刻情報に基づいて、姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たす継続時間がカウントされ、その継続時間が設定値T0を越えるか否かが判別される(ステップS57)。継続時間が設定値T0を越える場合(ステップS57;YES)、状態変数HT_Stageが10に設定され(ステップS58)、ステップS48に移行される。継続時間が設定値T0を越えない場合(ステップS57;NO)、ステップS48に移行される。姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たさない場合(ステップS56;NO)、ステップS48に移行される。
【0086】
図12に、実際のスキャン動作に対応する従来例及び本実施の形態におけるレーザ光及び照準光の照射を示す。図12に示すように、実際のスキャン動作がされる場合に、従来のレーザスキャナでは、常時オンモードが有効になっている間ずっと、レーザ光及び照準光が照射されている。これに対し、HT1におけるレーザスキャナ部20におけるレーザ光及び照準光の照射は、ほぼ実際にスキャン動作がなされる間のみになされ、省電力化が実現されていることが分かる。
【0087】
以上、本実施の形態によれば、HT1は、アクティブの状態に設定し、レーザスキャナ部20により検知された加速度データGx,Gy,Gzについて、時刻t1〜t0、t2〜t0間の加速度データの平均値Agx1,Agy1,Agz1,Agx2,Agy2,Agz2を算出し、時刻t1〜t0、t2〜t0間の加速度Gx,Gy,Gz及び平均値Agx1,Agy1,Agz1,Agx2,Agy2,Agz2から分散値Bg1,Bg2を算出する。そして、HT1は、アクティブの状態においてレーザスキャナ部20のレーザ光及び照準光の照射をオンする。
【0088】
そして、HT1は、アクティブの状態において、分散値Bg1が設定値C1より小さいか否かを判別し、分散値Bg1が設定値C1より小さい場合に、スタンバイ状態としてレーザ光及び照準光の照射をオフする。このため、スキャン動作を行わないスタンバイの状態において、レーザ光及び照準光の照射をオフして、容易且つ効果的にHT1の省電力化を実現できる。特に、スタンバイの状態において、ユーザの不規則な操作に対応してレーザ光及び照準光の照射をオフでき、練習や訓練をしていないユーザに対してもHT1の省電力化を実現できる。特に、HT1が電池駆動であるため、その電池寿命を延ばすことができる。
【0089】
そして、HT1は、アクティブ又はスタンバイの状態において、分散値Bg2が設定値C2より小さいか否かを判別し、分散値Bg2が設定値C2より小さい場合に、スリープの状態としてレーザ光及び照準光の照射をオフする。このため、スキャン動作を行わないスリープの状態においてレーザ光及び照準光の照射をオフして、容易且つ効果的にHT1の省電力化を実現できる。特に、スリープの状態において、机上にHT1を置きっぱなしにすること等に対応してレーザ光及び照準光の照射をオフでき、ユーザの不注意による使用状況に対してもHT1の省電力化を実現できる。
【0090】
また、HT1は、スタンバイの状態において、分散値Bg1が設定値C3より大きいか否かを判別し、分散値Bg1が設定値C3より大きい場合に、アクティブの状態としてレーザ光及び照準光の照射をオンする。このため、適切な動作タイミングで精度よくHT1のレーザ光及び照準光の照射をオンできる。
【0091】
また、HT1は、時刻ts〜t0間の加速度データの平均値を算出し、当該加速度データの平均値から水平面に対する姿勢角度Xan,Yanを算出し、スリープの状態において、姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たし且つ設定値T0継続されるか否かが判別され、姿勢角度変化量ΔXan,ΔYanが設定条件Bを満たし且つ設定値T0継続された場合に、アクティブの状態としてレーザ光及び照準光の照射をオンする。このため、適切な動作タイミングで精度よくHT1のレーザ光及び照準光の照射をオンできる。特に、姿勢角度変化量を監視するため、単純な机の振動や瞬間的な衝撃でレーザ光及び照準光の照射をオンすることがないので、余分な電力消費を防ぎ、さらに効果的にHT1の省電力化を実現できる。
【0092】
また、HT1は、アクティブの状態において、姿勢角度Xan,Yanが設定条件A0を満たすか否かを判別し、姿勢角度Xan,Yanが設定条件A0を満たす場合に、安全範囲外姿勢の状態としてレーザ光及び照準光の照射をオフし、安全範囲外姿勢状態において、姿勢角度Xan,Yanが設定条件A1を満たす場合に、アクティブの状態としてレーザ光及び照準光の照射をオンする。このため、レーザ光により周囲の人間の目が傷つけられることを防ぐことができる。
【0093】
また、HT1は、安全範囲外姿勢の状態において、姿勢角度Xan,Yanが設定条件A1を満たすか否かを判別し、姿勢角度Xan,Yanが設定条件A1を満たす場合に、アクティブの状態としてレーザ光及び照準光の照射をオンする。このため、適切な動作タイミングで精度よくHT1のレーザ光及び照準光の照射をオンできる。
【0094】
なお、上記実施の形態における記述は、本発明に係る携帯型コード読取装置及びプログラムの一例であり、これに限定されるものではない。
【0095】
上記実施の形態では、設定処理においてユーザの手の動きを教示する構成例を説明したが、これに限定されるものではない。例えば、スキャン処理実行中に取得する加速度データに基づいて適切な設定情報を生成して更新していく学習機能を有する構成としてもよい。
【0096】
また、上記実施の形態におけるHT1の各構成要素の細部構成及び細部動作に関しては、本発明の趣旨を逸脱することのない範囲で適宜変更可能であることは勿論である。
【図面の簡単な説明】
【0097】
【図1】本発明に係る実施の形態のHTの内部構成を示すブロック図である。
【図2】リングバッファの構成を示す図である。
【図3】HTにおけるX,Y,Z軸の一例を示す図である。
【図4】HTの状態遷移を示す図である。
【図5】時間に対する加速度の関係を示す図である。
【図6】設定処理を示すフローチャートである。
【図7】(a)は、第1の設定画面を示す図である。(b)は、第2の設定画面を示す図である。
【図8】(a)は、第3の設定画面を示す図である。(b)は、第4の設定画面を示す図である。
【図9】加速度データ取り込み処理を示すフローチャートである。
【図10】スキャン処理を示すフローチャートである。
【図11】図10のスキャン処理の続きを示すフローチャートである。
【図12】実際のスキャン動作に対応する従来例及び本実施の形態におけるレーザ光及び照準光の照射を示す図である。
【符号の説明】
【0098】
11 CPU
12 RAM
13 ROM
14 フラッシュメモリ
15 IO制御ブリッジ
16 通信部
17 操作部
18 表示部
19 タイマ
20 レーザスキャナ部
21 3軸加速度センサ
22 AD変換部
【特許請求の範囲】
【請求項1】
加速度を所定周期で検知する加速度検知手段と、
光を照射してコード情報を読み取る読取手段と、
前記コード情報を読み取るアクティブ状態において前記読取手段の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合に前記読取手段の光の照射をオフする制御手段と、を備える携帯型コード読取装置。
【請求項2】
前記制御手段は、現在時点から所定の第1の時間前までの前記検知された加速度の第1の分散値を算出し、前記アクティブ状態において、前記第1の分散値が所定の第1の設定値より小さいか否かを判別し、前記第1の分散値が前記第1の設定値より小さい場合に、前記コード情報の読取を一時停止するスタンバイ状態に設定して前記読取手段の光の照射をオフする請求項1に記載の携帯型コード読取装置。
【請求項3】
前記制御手段は、前記スタンバイ状態において、前記第1の分散値が所定の第2の設定値より大きいか否かを判別し、前記第1の分散値が前記第2の設定値より大きい場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする請求項2に記載の携帯型コード読取装置。
【請求項4】
前記制御手段は、現在時点から前記第1の時間より所定の長い第2の時間前までの前記検知された加速度の第2の分散値を算出し、前記アクティブ状態又は前記スタンバイ状態において、前記第2の分散値が所定の第3の設定値より小さいか否かを判別し、前記第2の分散値が前記第3の設定値より小さい場合に、前記コード情報の読取を停止するスリープ状態に設定して前記読取手段の光の照射をオフする請求項2又は3に記載の携帯型コード読取装置。
【請求項5】
前記制御手段は、現在時点から所定の第3の時間前までの前記検知された加速度の平均値を算出し、当該第3の時間の加速度の平均値から重力加速度方向に対して垂直な水平面に対する姿勢角度を算出し、前記スリープ状態において、前記姿勢角度の変化量が所定の第1の設定条件を満たし且つ所定の第4の時間継続されるか否かを判別し、前記変化量が前記第1の設定条件を満たし且つ前記第4の時間継続された場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする請求項4に記載の携帯型コード読取装置。
【請求項6】
前記制御手段は、前記アクティブ状態において、前記算出された姿勢角度が所定の第2の設定条件を満たすか否かを判別し、前記姿勢角度が前記第2の設定条件を満たす場合に、前記光の照射方向が安全でないおそれがある安全範囲外姿勢状態に設定して前記読取手段の光の照射をオフし、前記安全範囲外姿勢状態において、前記算出された姿勢角度が所定の第3の設定条件を満たすか否かを判別し、前記姿勢角度が前記第3の設定条件を満たす場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする請求項5に記載の携帯型コード読取装置。
【請求項7】
コンピュータを、
加速度を所定周期で検知する加速度検知手段、
光を照射してコード情報を読み取る読取手段、
前記コード情報を読み取るアクティブ状態において前記読取手段の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合に前記読取手段の光の照射をオフする制御手段、
として機能させるためのプログラム。
【請求項1】
加速度を所定周期で検知する加速度検知手段と、
光を照射してコード情報を読み取る読取手段と、
前記コード情報を読み取るアクティブ状態において前記読取手段の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合に前記読取手段の光の照射をオフする制御手段と、を備える携帯型コード読取装置。
【請求項2】
前記制御手段は、現在時点から所定の第1の時間前までの前記検知された加速度の第1の分散値を算出し、前記アクティブ状態において、前記第1の分散値が所定の第1の設定値より小さいか否かを判別し、前記第1の分散値が前記第1の設定値より小さい場合に、前記コード情報の読取を一時停止するスタンバイ状態に設定して前記読取手段の光の照射をオフする請求項1に記載の携帯型コード読取装置。
【請求項3】
前記制御手段は、前記スタンバイ状態において、前記第1の分散値が所定の第2の設定値より大きいか否かを判別し、前記第1の分散値が前記第2の設定値より大きい場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする請求項2に記載の携帯型コード読取装置。
【請求項4】
前記制御手段は、現在時点から前記第1の時間より所定の長い第2の時間前までの前記検知された加速度の第2の分散値を算出し、前記アクティブ状態又は前記スタンバイ状態において、前記第2の分散値が所定の第3の設定値より小さいか否かを判別し、前記第2の分散値が前記第3の設定値より小さい場合に、前記コード情報の読取を停止するスリープ状態に設定して前記読取手段の光の照射をオフする請求項2又は3に記載の携帯型コード読取装置。
【請求項5】
前記制御手段は、現在時点から所定の第3の時間前までの前記検知された加速度の平均値を算出し、当該第3の時間の加速度の平均値から重力加速度方向に対して垂直な水平面に対する姿勢角度を算出し、前記スリープ状態において、前記姿勢角度の変化量が所定の第1の設定条件を満たし且つ所定の第4の時間継続されるか否かを判別し、前記変化量が前記第1の設定条件を満たし且つ前記第4の時間継続された場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする請求項4に記載の携帯型コード読取装置。
【請求項6】
前記制御手段は、前記アクティブ状態において、前記算出された姿勢角度が所定の第2の設定条件を満たすか否かを判別し、前記姿勢角度が前記第2の設定条件を満たす場合に、前記光の照射方向が安全でないおそれがある安全範囲外姿勢状態に設定して前記読取手段の光の照射をオフし、前記安全範囲外姿勢状態において、前記算出された姿勢角度が所定の第3の設定条件を満たすか否かを判別し、前記姿勢角度が前記第3の設定条件を満たす場合に、前記アクティブ状態に設定して前記読取手段の光の照射をオンする請求項5に記載の携帯型コード読取装置。
【請求項7】
コンピュータを、
加速度を所定周期で検知する加速度検知手段、
光を照射してコード情報を読み取る読取手段、
前記コード情報を読み取るアクティブ状態において前記読取手段の光の照射をオンし、所定時間の前記検知された加速度の平均値及び当該平均値を用いた分散値を算出し、当該分散値と所定の設定値とを比較し、その比較結果に応じて、前記アクティブ状態でない状態に遷移した場合に前記読取手段の光の照射をオフする制御手段、
として機能させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−277033(P2009−277033A)
【公開日】平成21年11月26日(2009.11.26)
【国際特許分類】
【出願番号】特願2008−127925(P2008−127925)
【出願日】平成20年5月15日(2008.5.15)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
【公開日】平成21年11月26日(2009.11.26)
【国際特許分類】
【出願日】平成20年5月15日(2008.5.15)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】
[ Back to top ]