説明

バーコード読取装置、およびバーコード読取方法

【課題】一方向の走査によって、精度良く1次元バーコードを読み取り可能なバーコード読取装置を提供する。
【解決手段】レーザ光700による走査によって1次元バーコード810を読み取る第2ユニット40と、レーザ光700の照射位置を走査の方向に対して垂直となる方向に移動させる第1ユニット30とを備える。第1ユニット30は、第2ユニット40による読取エラーが発生したことに基づき、レーザ光700の照射位置を移動させる。第2ユニット40は、照射位置の移動に基づき、再度、1次元バーコード810を読み取る。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、1次元バーコードを読み取るバーコード読取装置、および当該バーコード読取装置におけるバーコード読取方法に関する。
【背景技術】
【0002】
従来、1次元バーコードを読み取るバーコード読取装置が知られている。
特許文献1には、上記バーコード読取装置として、バーコード読取用スキャナが開示されている。当該バーコード読取用スキャナは、レーザーダイオードからの光ビームをバーコードラベルに照射する。バーコード読取用スキャナは、バーコードラベルによる反射光をフォトダイオードによって光電変換する。バーコード読取用スキャナは、当該光電変換により、デコード用の信号を得る。バーコード読取用スキャナは、レーザーダイオードによる主走査方向に直交する方向に副走査用駆動部による副走査を行い、さらに副走査位置に同期させて光源の発光制御及び受光素子の制御を制御回路によって行う。
【0003】
特許文献2には、上記バーコード読取装置として、文字およびバーコードが印刷された帳票から当該文字およびバーコードを読み取る光学的文字読取装置が開示されている。当該光学的文字読取装置は、少なくとも、スキャナと、バーコード読取部と、文字認識部とを備える。
【0004】
上記スキャナは、上記帳票のイメージを検出する。検出されたイメージはシートバッファに格納される。上記バーコード読取部は、バーコード及びバーコード対応文字を包含するように予め設定された印刷範囲情報に基づいて、帳票に印刷されたバーコード及びバーコード対応文字の位置情報を求める。バーコード読取部は、当該位置情報に基づいてバーコードのイメージ上に、バーコード全体に亘って複数の走査線を設定する。バーコード読取部は、1つの走査線を走査してバーコードの読み取りを行う。バーコード読取部は、読み取りが誤りの場合は、未走査の他の走査線を走査してバーコードの読み取りを行う。上記文字認識部は、バーコードの読み取りが全て誤りの場合は、バーコード対応文字の認識を行う。
【0005】
特許文献3には、1つのミラーにて主走査および副走査を行う圧電曲げ駆動式2次元光スキャナが開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平6−20080号公報
【特許文献2】特開平9−237312号公報
【非特許文献】
【0007】
【非特許文献1】OMRON TECHNICS Vol.47(通巻156号)2006, Page 73
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1のバーコード読取用スキャナは、1本のレーザ光によって主走査を行う際に、同時に主走査とは直交する方向に走査を行うことによって、ゴミ等の付着による読取エラーを防止している。つまり、バーコード読取用スキャナは、主走査の途中で直行方向への走査を行う。このため、バーコード読取用スキャナでは、主走査のスキャン処理に加えて、上記直交方向の走査のスキャン処理が必要となる。それゆえ、バーコード読取用スキャナでは、複雑なデータ処理が必要となる。また、バーコード読取用スキャナでは、このように複雑なデータ処理が必要となるため、主走査のスキャン処理のみを行う構成のスキャナに比べて、電力消費が大きくなる。
【0009】
特許文献2の光学的文字読取装置は、バーコードが汚れていて認識できない場合、代わりにバーコードと並んで印刷されている文字の認識を行う。したがって、光学的文字読取装置では、文字を認識する機能を備えることが必要となる。
【0010】
本願発明は、上記問題点に鑑みなされたものであって、その目的は、一方向の走査によって、精度良く1次元バーコードを読み取り可能なバーコード読取装置、および当該バーコード読取装置のバーコード読取方法を提供することにある。
【課題を解決するための手段】
【0011】
本発明のある局面に従うと、バーコード読取装置は、レーザ光による走査によって1次元バーコードを読み取るバーコード読取装置である。バーコード読取装置は、レーザ光による走査によって1次元バーコードを読み取る読取手段と、レーザ光の照射位置を走査の方向に対して垂直となる方向に移動させる移動手段とを備える。移動手段は、読取手段による読取エラーが発生したことに基づき、レーザ光の照射位置を移動させる。読取手段は、照射位置の移動に基づき、再度、1次元バーコードを読み取る。
【0012】
好ましくは、読取手段は、照射位置の移動に基づき、走査の方向の向きを逆にする。
好ましくは、照射位置の移動の方向は予め定められた向きである。
【0013】
好ましくは、バーコード読取装置は、レーザ光を発振するレーザ装置と、レーザ装置から発振されたレーザ光を反射する第1ミラーと、第1ミラーで反射されたレーザ光を反射して、当該レーザ光をバーコード読取装置から出射させる第2ミラーと、第2ミラーを駆動する第2ミラー駆動装置とをさらに備える。移動手段は、第1ミラーを駆動する第1ミラー駆動装置を含む。第2ミラーの駆動により、照射位置を走査の方向に移動させる。第1ミラーの駆動により、照射位置を垂直となる方向に移動させる。
【0014】
本発明の他の局面に従うと、バーコード読取方法は、レーザ光による走査によって1次元バーコードを読み取るバーコード読取方法である。バーコード読取方法は、レーザ光による走査によって1次元バーコードを読み取るステップと、読み取るステップにおいて読取エラーが発生したことに基づき、レーザ光の照射位置を走査の方向に対して垂直となる方向に移動させるステップと、照射位置の移動に基づき、再度、1次元バーコードを読み取るステップとを備える。
【発明の効果】
【0015】
一方向の走査によって、精度良く1次元バーコードを読み取り可能となるといった効果を奏する。
【図面の簡単な説明】
【0016】
【図1】ハンディーターミナルの外観を示した図である。
【図2】ハンディーターミナルの動作概要を説明するための図である。
【図3】ハンディーターミナルのブロックを示したブロック図である。
【図4】第1ミラーと第2ミラーとの配置を説明するための図である。
【図5】第2ミラーの回転を説明するための図である。
【図6】第1ミラーの回転を説明するための図である。
【図7】ハンディーターミナルのバーコード読取処理の流れを示したフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。本実施の形態では、バーコード読取装置の一例として、ハンディーターミナル(データ収集端末)を挙げて説明する。
【0018】
<装置の外観>
図1は、ハンディーターミナルの外観を示した図である。図1を参照して、ハンディーターミナル1は、ディスプレイ60と、入力デバイス70とを備える。入力デバイス70は、テンキー71と、コマンドキー72と、トリガーキー73とを含む。
【0019】
ディスプレイ60は、各種の情報を表示する。ディスプレイ60が表示する情報の例については後述する。テンキー71は、ユーザが数字等を入力するための操作キーである。コマンドキー72は、たとえばカーソルを移動させる処理等のコマンドを入力するための操作キーである。トリガーキー73は、操作(スキャン)を開始する指示を入力するための操作キーである。
【0020】
ハンディーターミナル1は、ユーザによってトリガーキー73が選択されると、レーザ光を照射することにより読取対象物である1次元バーコードの走査を行う。なお、以下では、1次元バーコードを「バーコード」と称する。
【0021】
<動作の概要>
図2は、ハンディーターミナル1の動作概要を説明するための図である。図2(a)は、ハンディーターミナル1によりバーコード810を読み取る際の処理の概要を示した図である。図2(b)は、図2(a)のバーコード810を拡大した図である。
【0022】
図2(a)を参照して、バーコード810を読み取る場合、ユーザは、ハンディーターミナル1を持った手900を移動させ、ハンディーターミナル1のレーザ光の照射面(図示せず)を、バーコード810の方向に向ける。なお、バーコード810は、紙などの媒体800にプリントされている。
【0023】
なお、以下では、ハンディーターミナル1が照射するレーザ光を、「レーザ光700」と称する。また、レーザ光700のうち、上記照射面に対して予め定められた方向に出射するレーザ光については、たとえば、レーザ光700A、700B、700C、700Dといったように、参照符号「700」の後に記号を付す。
【0024】
レーザ光の照射面(図示せず)をバーコード810の方向に向けた状態において、ユーザによってトリガーキー73の選択がなされると、ハンディーターミナル1は、レーザ光を照射することによってバーコード810の読み取りを開始する。
【0025】
図2(a)および図2(b)を参照して、ハンディーターミナル1は、トリガーキー73が選択されると、レーザ光700Aを媒体800の位置851に照射する。なお、位置851は、ハンディーターミナル1の位置と媒体800との位置関係で定まる位置である。その後、ハンディーターミナル1は、レーザ光700の照射位置を直線的に順次変更して、バーコード810を走査する。最終的には、ハンディーターミナル1は、レーザ光700Bを媒体800の位置852に照射する。当該走査におけるレーザ光700の媒体800上の軌跡750は、位置851と位置852とを結ぶ直線となる。なお、位置852も、位置851と同様、ハンディーターミナル1の位置と媒体800との位置関係で定まる位置である。
【0026】
ここで、バーコード810にコードの欠落箇所や不鮮明な箇所等の不良箇所811があって、軌跡750が当該不良箇所811等と交わる場合(すなわち、レーザ光700が不良箇所を走査する場合)、バーコード810の読み取りエラーが生じてしまう。
【0027】
そこで、ハンディーターミナル1は、読取エラーが発生した場合、レーザ光700の照射位置を上記走査の方向に対して垂直となる方向に移動させる。具体的には、ハンディーターミナル1は、レーザ光700の照射角度を予め定められた角度だけ変更し、上記走査方向に対して垂直となる方向にレーザ光700の照射位置を移動させる。具体的には、ハンディーターミナル1は、レーザ光700の照射位置を位置852から位置861に移動させる。
【0028】
なお、ハンディーターミナル1は、位置852から位置861への移動の間、レーザ光を照射し続けてもよいし、あるいは、レーザ光の照射を停止してもよい。レーザ光を照射し続ける場合には、後述するメインコントローラ10(図3参照)は、読み取ったデータを認識する処理は行わない。
【0029】
ハンディーターミナル1は、レーザ光700Cを媒体800の位置861に照射した後、レーザ光700の照射位置を直線的に順次変更して、バーコード810を再度走査する。最終的には、ハンディーターミナル1は、レーザ光700Dを媒体800の位置862に照射する。当該再度の走査におけるレーザ光700の媒体800上の軌跡760は、位置861と位置862とを結ぶ直線となる。なお、ハンディーターミナル1と媒体800との位置関係が最初の走査と次の走査とで変わらない場合、軌跡760は、軌跡750と平行となる。
【0030】
ハンディーターミナル1は、再度の走査によってバーコードの読み取りに成功した場合、以降の走査は行わない。一方、ハンディーターミナル1は、上記再度の走査でも読み取りエラーが発生した場合、走査位置をさらにずらして走査を行う。ハンディーターミナル1は、バーコード810の読み取りに成功するまで、上記走査を繰り返す。
【0031】
このように、ハンディーターミナル1は、バーコード810の長さ方向(一方向)の1回以上の走査によって、精度良くバーコード810を読み取ることが可能となる。なお、「バーコードの長さ方向」とは、一方のクワイエットゾーン(マージン)から他方のクワイエットゾーンへの方向である。なお、クワイエットゾーンとは、バーコードシンボルの両端の余白エリアである。
【0032】
以下、このようなハンディーターミナル1を実現するための具体的な構成について、説明する。なお、以下では、「方向」とは、第1の向きと、当該第1の向きとは反対向きの第2の向きとの両方を含む概念である。たとえば、図2(b)では、バーコードの長さ方向は、左端側に記した数字の「4」から右端側に記した「9」に向かう向きと、右端側に記した「9」から左端側に記した数字の「4」に向かう向きとを含む。
【0033】
<具体的構成>
図3は、ハンディーターミナル1のブロックを示したブロック図である。図3を参照して、ハンディーターミナル1は、メインコントローラ10と、レーザ装置20と、第1ユニット30と、第2ユニット40と、ハーフミラー50と、ディスプレイ60と、入力デバイス70と、ROM(Read Only Memory)80と、RAM(Random Access Memory)90とを備えている。
【0034】
(メインコントローラ10について)
メインコントローラ10は、ハンディーターミナル1の動作を制御する。具体的には、メインコントローラ10は、レーザ装置20と第1ユニット30と第2ユニット40との動作を制御する。また、メインコントローラ10は、ディスプレイ60に情報を表示させる。さらに、メインコントローラ10は、入力デバイス70から入力されたデータに基づいたデータ処理を行う。また、メインコントローラ10は、ROM80からデータを読み出す。さらに、メインコントローラ10は、RAM90にデータを書き込むとともに、RAM90からデータを読み出す。また、メインコントローラ10は、閾値比較部11と、バーコード認識部12とを含む。閾値比較部11の機能と、バーコード認識部12の機能とは、後述する。
【0035】
(レーザ装置20について)
レーザ装置20は、レーザ光を発振する。レーザ装置20は、レーザ制御部21と、照射部22と、受光部23とを含む。
【0036】
レーザ制御部21は、レーザ装置20の動作を制御する。レーザ制御部21は、メインコントローラ10から所定の指示を受け付けた場合、レーザ光を照射する指示を照射部22に対して出す。なお、「所定の指示」とは、入力デバイス70のトリガーキー73が選択されたことに基づく指示である。
【0037】
照射部22は、レーザ制御部21からの上記指示を受け付けた場合、予め定められた向きに、レーザ光を照射する。
【0038】
受光部23は、照射部22が照射したレーザ光であって、かつバーコード810が記された媒体800によって反射したレーザ光を受光する。受光部23は、受光したレーザ光の強度(アナログ値)をA/D(Analog to Digital)変換する。受光部23は、デジタル化した数値情報を、メインコントローラ10に送る。
【0039】
(第1ユニット30について)
第1ユニット30は、第1サブコントローラ31と、第1ミラー駆動装置32と、第1ミラー装置33とを含む。第1サブコントローラ31は、メモリ310を含む。第1ミラー装置33は、第1ミラー331と、第1回転台332とを含む。なお、説明の便宜上、「第1ユニット」という表現を用いているが、第1サブコントローラ31と第1ミラー駆動装置32と第1ミラー装置33とは、ユニット化されている必要はない。
【0040】
第1ユニット30は、レーザ装置20から発振されたレーザ光700の照射位置を、走査の方向(図2参照)に対して垂直となる方向に移動させる。より詳しくは、第1ユニット30は、第2ユニット40によるバーコードの読取エラーが発生したことに基づき、レーザ光700の照射位置を移動させる。
【0041】
第1サブコントローラ31は、第1ミラー駆動装置32の動作を制御する。メモリ310には、初期位置情報311と、終端位置情報312と、現在位置情報313とが格納されている。当該各情報311〜313については、後述する。
【0042】
第1ミラー駆動装置32は、第1サブコントローラ31の指示に基づき、第1回転台332を回転させる。第1ミラー駆動装置32は、磁力により第1回転台332を回転させる。第1回転台332の回転方向については、後述する。
【0043】
第1ミラー331は、レーザ装置20から発振されたレーザ光700を反射する。より詳しくは、第1ミラー331は、ハーフミラー50を通過したレーザ光700を、第2ユニット40の後述する第2ミラー431の方向へ反射する。また、第1ミラー331は、バーコード810がプリントされた媒体800によって反射したレーザ光700であって、その後に第2ミラー431で反射したレーザ光700を、ハーフミラー50の方向に反射する。
【0044】
第1回転台332は、第1ミラー331を支持するとともに、第1回転台332の回転に従って第1ミラー331を予め定められた方向に回転させる。
【0045】
つまり、第1ミラー駆動装置32は、第1回転台332の回転に伴い、第1ミラー331を駆動する。具体的には、第1ミラー駆動装置32は、第1ミラー331を回転駆動する。当該第1ミラー331の駆動により、レーザ光700の照射位置を走査方向に垂直となる方向に移動させることができる。なお、第1ミラー331の駆動については、後述する(図6)。
【0046】
(第2ユニット40について)
第2ユニット40は、第2サブコントローラ41と、第2ミラー駆動装置42と、第2ミラー装置43とを含む。第2サブコントローラ41は、メモリ410を含む。第2ミラー装置43は、第2ミラー431と、第2ミラー431を支持するとともに第2ミラー431を予め定められた方向に回転させる第2回転台432とを含む。なお、説明の便宜上、「第2ユニット」という表現を用いているが、第2サブコントローラ41と第2ミラー駆動装置42と第2ミラー装置43とは、ユニット化されている必要はない。
【0047】
第2ユニット40は、レーザ光700による走査によってバーコード810を読み取る。また、読取エラーが発生して、第1ユニット30の第1ミラー331が移動したことに基づき、第2ユニット40は、再度、バーコード810を読み取る。
【0048】
第2サブコントローラ41は、第2ミラー駆動装置42の動作を制御する。メモリ410には、初期位置情報411と、終端位置情報412と、現在位置情報413と、移動向き情報414とが格納されている。当該各情報411〜414については、後述する。
【0049】
第2ミラー駆動装置42は、第2サブコントローラ41の指示に基づき、第2回転台432を回転させる。第2ミラー駆動装置42は、磁力により第2回転台432を回転させる。第2回転台432の回転方向については、後述する。
【0050】
第2ミラー431は、第1ミラー331で反射したレーザ光700を、さらに反射する。より詳しくは、第2ミラー431は、第1ミラー331で反射したレーザ光700を、ハンディーターミナル1におけるレーザ光の照射面の方向に反射する。当該反射により、レーザ光はハンディーターミナル1の外部に出射する。また、第2ミラー431は、バーコード810がプリントされた媒体800によって反射したレーザ光700を、第1ミラー331の方向に反射する。
【0051】
第2回転台432は、第2ミラー431を支持するとともに、第2回転台432の回転に従って第2ミラー431を予め定められた方向に回転させる。
【0052】
より詳しくは、第2ミラー駆動装置42は、第2回転台432の回転に伴い、第2ミラー431を駆動する。具体的には、第2ミラー駆動装置42は、第2ミラー431を回転駆動する。当該第2ミラー431の駆動により、レーザ光700の照射位置を走査の方向に移動させる。なお、第2ミラー431の駆動については、後述する(図5)。
【0053】
(ハーフミラー50について)
ハーフミラー50は、レーザ装置20の照射部22から出射したレーザ光700を透過する。また、ハーフミラー50は、媒体800により反射したレーザ光700であって、かつ第2ミラー431および第1ミラー331で反射したレーザ光700を、レーザ装置20の受光部23の方向に反射する。
【0054】
(ディスプレイ60・入力デバイス70について)
ディスプレイ60は、メインコントローラ10の制御により、RAM80に格納されている情報等を表示する。たとえば、ディスプレイ60は、後述する商品情報を表示する。ディスプレイ60は、たとえば、液晶ディスプレイ、有機EL(Electro-Luminescence)ディスプレイである。
【0055】
入力デバイス70は、上述したように、テンキー71と、コマンドキー72と、トリガーキー73とを備える。これらの各キー71〜73は、ハードキーである。ただし、各キー71〜73は、ハードキーに限定されず、ソフトウェアキーであってもよい。この場合、ハンディーターミナル1は、入力デバイス70を、タッチパネル付きディスプレイで実現すればよい。なお、タッチパネル付きディスプレイを用いる場合、ディスプレイ60の機能を、当該タッチパネル付きディスプレイで実現できる。さらに、タッチパネル付きディスプレイとして、光センサ液晶内蔵ディスプレイを用いてもよい。
【0056】
(ROM80・RAM81について)
ROM80は、不揮発性のメモリである。ROM80は、制御プログラム81と、バーコード認識情報82とを予め格納している。制御プログラム81は、ハンディーターミナル1の動作を制御するプログラムである。メインコントローラ10は、制御プログラム81をROM80から読み出し、当該制御プログラム81を実行する。バーコード認識情報82については、後述する。
【0057】
RAM90は、本実施の形態では、ROM80と同様、不揮発性のメモリである。RAM90は、関連付情報91を予め格納している。また、RAM90は、読み取りデータ92と、認識結果93とを格納する。
【0058】
関連付情報91は、バーコードナンバーと商品情報とを対応付けた情報である。関連付情報91では、たとえば、バーコードナンバーの「0001」と、商品情報の「みかん¥50」とが関連付けられている。読み取りデータ92と認識結果93とについては、後述する。
【0059】
(認識処理について)
メインコントローラ10は、受光部23からデジタル化された数値情報を取得する。メインコントローラ10の閾値比較部11は、当該数値情報を、予め定められた閾値と比較することにより、「0」と「1」とのデータ列に変更する。なお、閾値は、ROM80またはRAM90に予め格納されている。
【0060】
閾値比較部11は、上記データ列を、読み取りデータ92としてRAM90に格納する。
【0061】
バーコード認識部12は、上記データ列のRAM90への格納が終了した後に、認識処理を実行する。バーコード認識部12は、RAM90に格納されたデータ列と、ROM80に格納されたバーコード認識情報とを比較し、バーコードナンバーを認識する。そして、バーコード認識部12は、認識結果93である上記認識したバーコードナンバーをRAM93に格納する。
【0062】
メインコントローラ10は、認識結果93に基づいて、関連付情報のバーコードナンバーを検索する。メインコントローラ10は、関連付情報91において当該検索したバーコードナンバーに関連付けされた商品情報を、ディスプレイ60に表示させる。メインコントローラ10は、たとえば、「みかん¥50」といった情報をディスプレイ60に表示させる。
【0063】
<ミラーの回転方向>
図4は、第1ミラー331と第2ミラー431との配置を説明するための図である。図4を参照して、第1ミラー装置33では、第1回転台332の回転軸339(図6参照)の軸方向と、第1ミラー331の鏡面の垂線とが平行とはならないように、第1ミラー331が第1回転台332に対して配置されている。第1回転台332の回転に伴い、第1ミラー331の垂線の向きは変化する。第1ミラー331は、当該垂線の変化によって、レーザ光700を下向きに反射する、あるいはレーザ光700を上向きに反射する。なお、「下向き」および「上向き」については、後述する(図6)。
【0064】
第2ミラー装置43では、第2回転台432の回転軸439(図5参照)の軸方向と、第2ミラー431の鏡面の垂線とが垂直となるよう、第2ミラー431が第2回転台432に対して配置されている。第2回転台432の回転に伴い、第2ミラー431の垂線の向きは、XY平面内で変化する。第2ミラー431は、当該垂線の変化によって、レーザ光700を左向きに反射する、あるいはレーザ光700を右向きに反射する。なお、「左向き」および「右向き」については、後述する(図5)。
【0065】
また、以下では、第1ミラー331における鏡面の垂線とXY平面とが平行である場合における第1ミラー331の位置を、「中間位置M1」と称する。さらに、図4のように、XY平面における第2ミラー431における鏡面の垂線の傾きが「1」である第2ミラーの位置を、「中間位置M2」と称する。
【0066】
図5は、第2ミラー431の回転を説明するための図である。図5を参照して、たとえばレーザ光700Aを照射している状態において、第2回転台432がBの向きに回転すると、レーザ光700の進路は、第2回転台432の回転角度(つまり、第2ミラー431の回転角度)に応じて変化する。具体的には、レーザ光700の進路は、Z軸方向へは変化することなく、XY平面内で変化する。第2回転台432がBの向きに所定の角度回転すると、第2ミラー431がレーザ光700Bを照射している状態となる。
【0067】
ハンディーターミナル1は、レーザ光700をレーザ光700Aの位置からレーザ光700Bの位置までレーザ光を照射させた状態で変化させることにより、1回目のバーコード810の走査を行う。当該走査においては、レーザ光700Aを照射する、第2ミラー431の位置を、「第1位置」と称する。また、当該走査において、レーザ光700Bを照射する、第2ミラー431の位置を、「第2位置」と称する。
【0068】
一方、レーザ光700Bを照射している状態において、第2回転台432が回転軸439を中心にAの向きに回転すると、レーザ光700の進路は、第2回転台432の回転角度に応じて変化する。第2回転台432がAの向きに所定の角度回転すると、第2ミラー431がレーザ光700Aを照射している状態となる。
【0069】
ハンディーターミナル1は、レーザ光700をレーザ光700Bの位置からレーザ光700Aの位置まで変化させることにより、2回目のバーコード810の走査を行う。なお、2回目の走査は、1回目の走査でエラーが生じたときに行われる。また、走査は、読み取りに成功するまで、行われる。
【0070】
上記1回目の走査では、第1位置が、レーザ光700の照射を開始する位置(以下、「開始位置」)となり、第2位置が、レーザ光700の照射を終了する位置(以下、「終端位置」)となる。また、上記第2回目の走査では、第1位置が、終端位置となり、第2位置が開始位置となる。開始位置と終端位置とは、次の走査において入れ替わる。
【0071】
第2サブコントローラ41は、現在の走査における、初期位置(詳しくは、初期位置の値)を示した初期位置情報411(図3参照)と、終端位置(詳しくは、終端位置の値)を示した終端位置情報412を格納する。さらに、第2サブコントローラ41は、1回の走査が終了すると、初期位置の値と終端位置の値とを交換する。すなわち、初期位置の値と終端位置の値とを、互いに入れ替える。ここで、初期位置の値、終端位置の値とは、第2ミラー431の位置を特定するための値である。たとえば、当該値は、第2回転台432の回転角を示す値である。
【0072】
たとえば、ある走査における初期位置情報411の値が「+15°」であって、終端位置情報412の値が「−15°」である場合、第2サブコントローラ41は、次の走査では、初期位置情報411の値を「−15°」とし、かつ終端位置情報412の値を「+15°」とする。なお、この場合、上記中間位置M2の値は、「0」となる。
【0073】
また、第2サブコントローラ41は、現在の第2ミラー431の位置を特定する現在位置情報413を格納する。さらに、第2サブコントローラ41は、レーザ光700の移動の向きを示した移動向き情報414を格納する。
【0074】
なお、以下では、説明の便宜上、第2ミラー431の回転方向のうち上記Aの向きを、「右向き」とも称する。また、第2ミラー431の回転方向のうち上記Bの向きを、「左向き」とも称する。
【0075】
第2サブコントローラ41は、走査時におけるレーザ光700の移動の向きを示す移動向き情報414をさらに格納する。第2サブコントローラ41は、開始位置と終端位置との値が入れ替わるたびに、移動向き情報414を更新する。第2サブコントローラ41は、たとえば初期位置情報の値が「+15°」である場合、移動向き情報の値を「左向き」を示す値とする。一方、第2サブコントローラ41は、初期位置情報の値が「−15°」である場合、移動向き情報414の値を「右向き」を示す値とする。
【0076】
第2サブコントローラ41は、移動向き情報414に従って、第2ミラー431の回転方向を決定する。第2サブコントローラ41は、たとえば移動向き情報414が「左」を示すとき、第2ミラー431をB方向に回転させる。
【0077】
図6は、第1ミラー331の回転を説明するための図である。図6を参照して、たとえばレーザ光700Bを照射している状態において、第1回転台332がD方向に回転すると、レーザ光700の進路は第1回転台332の回転角度(つまり、第1ミラー331の回転角度)に応じて変化する。具体的には、レーザ光700の進路は、Z軸方向へは変化する。第1回転台332がBの向きに所定の角度回転すると、第1ミラー331がレーザ光700Cを照射している状態となる。
【0078】
ハンディーターミナル1は、レーザ光700をレーザ光700Bの位置からレーザ光700Cの位置まで変化させることによって、図2に示したとおり、バーコード810の走査位置を変更する。
【0079】
たとえばレーザ光700がレーザ光700Cの位置にある状態において、第1回転台332が回転軸339を中心にC方向に回転すると、レーザ光700の位置は、レーザ光700Bの方向へ移動することになる。
【0080】
第2ミラー431による1回目の走査が行われ、読取エラーが発生した場合、第1サブコントローラ31は、所定の角度、予め定められた向き(たとえば、Dの向き)に第1回転台332を回転させる。また、第1回転台332の当該移動後に第2ミラー431による2回目の走査が行われ、この回においても読取エラーが発生した場合、第1サブコントローラ31は、再度、所定の角度、上記予め定められた向きに第1回転台332を回転させる。第1サブコントローラ31は、バーコード810の読み取りに成功するまで、当該動作を繰り返す。
【0081】
第1サブコントローラ31は、予め定められた角度だけ第1回転台332を回転させることより第1ミラー331が予め定められた終端位置まで達すると、上記予め定められた向きとは反対の向き(たとえば、Cの向き)に、第1ミラー331が予め定められた初期位置となるまで第1回転台332を回転させる。
【0082】
第1サブコントローラ31は、第1ミラー331の初期位置を特定する初期位置情報311(図3参照)と、第1ミラー331の終端位置を特定する終端位置情報312とを予め格納している。さらに、第1サブコントローラ31は、現在の第1ミラー331の位置を特定する現在位置情報313を格納する。なお、初期位置情報311、終端位置情報312、および現在位置情報313は、たとえば、第1回転台332の回転角を示す値で示される。一例として、第1ミラー331の初期位置情報311の値が「+10°」であって、終端位置情報312の値が「−10°」である。なお、この場合、上記中間位置M1の値は、「0」となる。
【0083】
なお、以下では、説明の便宜上、第1ミラー331の回転方向のうち上記Cの向きを、「上向き」とする。また、第1ミラー331の回転方向のうち上記Dの向きを、「下左向き」とする。
【0084】
<制御構造>
図7は、ハンディーターミナル1のバーコード読取処理の流れを示したフローチャートである。なお、以下のフローは、図2に示す位置852から位置861への移動の間、レーザ光700の照射を停止する場合の処理を示している。この場合、上述したように、メインコントローラ10は、読み取ったデータを認識する処理は行わない。
【0085】
図7を参照して、ステップS2において、ハンディーターミナル1は、トリガーキー73が選択されたか否かを判断する。ステップS4において、ハンディーターミナル1は、初期位置情報411に基づいて、第2ミラー431の位置を初期位置に設定する。ステップS6において、ハンディーターミナル1は、初期位置情報311に基づいて、第1ミラー331の位置を初期位置に設定する。ステップS8において、ハンディーターミナル1は、レーザ光の照射を開始する。ステップS10において、ハンディーターミナル1は、受光部23にて媒体800によって反射された反射光を受光する。
【0086】
ステップS12において、ハンディーターミナル1は、受光値を閾値にて判断する。すなわち、ステップS12において、ハンディーターミナル1は、デジタル化された数値情報を、予め定められた閾値と比較することにより、「0」と「1」とのデータ列に変更する。ステップS14において、ハンディーターミナル1は、判断結果を記憶する。すわなち、ステップS14において、ハンディーターミナル1は、上記データ列を、読み取りデータ92としてRAM90に格納する。
【0087】
ステップS16において、ハンディーターミナル1は、移動向き情報414に基づいて、移動の向きが左向きであるか否かを判断する。左向きであると判断した場合(ステップS16においてYES)、ステップS18において、ハンディーターミナル1は、第2ミラー431を左向きに予め定められた角度だけ回転する。一方、ハンディーターミナル1は、左向きでないと判断した場合(ステップS16においてNO)、ステップS34において第2ミラー431を右向きに予め定められた角度だけ回転する。
【0088】
ステップS20において、ハンディーターミナル1は、終端位置情報412に基づいて、第2ミラー431が終端位置に到達しているか否かを判断する。ハンディーターミナル1は、終端位置に到達したと判断した場合(ステップS20においてYES)、ステップS22において、ステップS14で記憶したデータ(判断結果)を認識処理する。すなわち、ハンディーターミナル1は、ステップS22において、RAM90に格納されたデータ列と、ROM80に格納されたバーコード認識情報とを比較し、バーコードナンバーを認識する。ハンディーターミナル1は、終端位置に到達していないと判断した場合(ステップS20においてNO)、処理を、ステップS10に進める。
【0089】
ステップS24において、ハンディーターミナル1は、認識に成功したか否かを判断する。ハンディーターミナル1は、認識に成功したと判断した場合(ステップS24においてYES)、ステップS26においてレーザ光700の照射を停止する。ステップS28において、ハンディーターミナル1は、認識結果93に基づいてバーコードナンバーを検索する。
【0090】
ステップS30において、ハンディーターミナル1は、関連付情報91において、当該検索したバーコードナンバーが存在するか否かを判断する。ハンディーターミナル1は、存在すると判断した場合(ステップS30においてYES)、ステップS32において、関連付情報91において当該検索したバーコードナンバーに関連付けされた商品情報をディスプレイ60に表示する。ハンディーターミナル1は、存在しないと判断した場合(ステップS30においてNO)、ステップS46において、ディスプレイ60にエラー表示をする。
【0091】
ところで、ハンディーターミナル1は、上記認識に成功していない(ステップS24においてNO)と判断した場合、ステップS36において、走査の初期位置の値と当該走査の終端位置の値とを交換する。ステップS38において、ハンディーターミナル1は、移動の向きを逆向きに変更する。すなわち、ハンディーターミナル1は、ステップS38において、上述したように、移動向き情報414を更新する。
【0092】
ステップS40において、ハンディーターミナル1は、現在位置情報313に基づき、第1ミラー331が終端位置であるか否かを判断する。ハンディーターミナル1は、終端位置であると判断した場合(ステップS40においてYES)、ステップS42において、第1ミラー331を上向きに回転させ、第1ミラー331を初期位置に設定する。一方、ハンディーターミナル1は、終端位置でないと判断した場合(ステップS40においてNO)、ステップS44において、第1ミラー331を下向きに予め定められた角度回転する。
【0093】
以上のような処理によって、ハンディーターミナル1は、一方向の走査によって、精度良く1次元バーコードを読み取り可能となる。また、ハンディーターミナル1では、再度の走査を行うときにも、ユーザはハンディーターミナル1の位置を動かす必要がない。ハンディーターミナル1では、ユーザがハンディーターミナル1の位置(媒体800に対する位置)を移動させることなく、プリント品質の悪いバーコードを読み取ることが可能となる。
【0094】
また、ハンディーターミナル1は、読取エラーが生じたことに基づき走査の向き逆向きにする(たとえば左向きへの走査の後は右向きへ走査を行う)ため、左向き(または右向き)のみにしか走査を行わないハンディーターミナルに比べて、バーコードの読取を早く行うことができる。
【0095】
<変形例>
(1)上記においては、ハンディーターミナル1は、図2に示したように、位置851から位置852へと左向きの走査を行った後、位置861から位置862へと右向きの走査を行った。しかしながら、走査の向きは当該向きに限定されず、たとえば、位置851から位置852へと走査を行った後に、位置862から位置861へと再度の走査を行うようにハンディーターミナル1を構成してもよい。すなわち、走査の向きを、1つの向き(右向きまたは左向き)としてもよい。
【0096】
(2)ハンディーターミナル1は、読取エラーが発生した場合、照射位置を位置852から位置861移動させた。すなわち、ハンディーターミナル1は、読取エラーが発生した場合、第2ミラー431を下向きに回転させた。しかしながら、読取エラー発生時における第2ミラー431の回転は、これに限定されるものではない。たとえば、読取エラー発生時に第2ミラー431を上向きに回転させるようにハンディーターミナル1を構成してもよい。
【0097】
(3)上記においては、第1ミラー駆動装置32と第2ミラー駆動装置42とは、磁力により、それぞれ第1回転台332と第2回転台432とを回転させた。しかしながら、当該回転を磁力で行う構成に限定されるものではない。たとえば、第1ミラー駆動装置32と第2ミラー駆動装置42とは、圧電素子によって、第1回転台332と第2回転台432とを回転させてもよい。また、非特許文献1に示した技術を用いて、1つのミラーにて、上述した上下方向および左右方向のミラー駆動を実現してもよい。
【0098】
(4)上記においては、バーコード読取装置の一例としてハンディーターミナルを例に挙げて説明したが、バーコード読取装置は、入力デバイスおよびディスプレイを備えていないバーコードリーダであってもよい。
【0099】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0100】
1 ハンディーターミナル、10 メインコントローラ、11 閾値比較部、12 バーコード認識部、20 レーザ装置、21 レーザ制御部、22 照射部、23 受光部、30 第1ユニット、31 第1サブコントローラ、32 第1ミラー駆動装置、33 第1ミラー装置、40 第2ユニット、41 第2サブコントローラ、42 第2ミラー駆動装置、43 第2ミラー装置、50 ハーフミラー、60 ディスプレイ、70 入力デバイス、73 トリガーキー、331 第1ミラー、332 第1回転台、339 回転軸、431 第2ミラー、432 第2回転台、439 回転軸、700 レーザ光、700A レーザ光、700B レーザ光、700C レーザ光、700D レーザ光、800 媒体、810 バーコード、811 不良箇所。

【特許請求の範囲】
【請求項1】
レーザ光による走査によって1次元バーコードを読み取るバーコード読取装置であって、
前記レーザ光による前記走査によって前記1次元バーコードを読み取る読取手段と、
前記レーザ光の照射位置を前記走査の方向に対して垂直となる方向に移動させる移動手段とを備え、
前記移動手段は、前記読取手段による読取エラーが発生したことに基づき、前記レーザ光の照射位置を移動させ、
前記読取手段は、前記照射位置の移動に基づき、再度、前記1次元バーコードを読み取る、バーコード読取装置。
【請求項2】
前記読取手段は、前記照射位置の移動に基づき、前記走査の方向の向きを逆にする、請求項1に記載のバーコード読取装置。
【請求項3】
前記照射位置の移動の方向は予め定められた向きである、請求項1または2に記載のバーコード読取装置。
【請求項4】
前記バーコード読取装置は、
前記レーザ光を発振するレーザ装置と、
前記レーザ装置から発振された前記レーザ光を反射する第1ミラーと、
前記第1ミラーで反射された前記レーザ光を反射して、当該レーザ光を前記バーコード読取装置から出射させる第2ミラーと、
前記第2ミラーを駆動する第2ミラー駆動装置とをさらに備え、
前記移動手段は、前記第1ミラーを駆動する第1ミラー駆動装置を含み、
前記第2ミラーの駆動により、前記照射位置を前記走査の方向に移動させ、
前記第1ミラーの駆動により、前記照射位置を前記垂直となる方向に移動させる、請求項1から3のいずれかに記載のバーコード読取装置。
【請求項5】
レーザ光による走査によって1次元バーコードを読み取るバーコード読取方法であって、
前記レーザ光による前記走査によって前記1次元バーコードを読み取るステップと、
前記読み取るステップにおいて読取エラーが発生したことに基づき、前記レーザ光の照射位置を前記走査の方向に対して垂直となる方向に移動させるステップと、
前記照射位置の移動に基づき、再度、前記1次元バーコードを読み取るステップとを備える、バーコード読取方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2011−107872(P2011−107872A)
【公開日】平成23年6月2日(2011.6.2)
【国際特許分類】
【出願番号】特願2009−260796(P2009−260796)
【出願日】平成21年11月16日(2009.11.16)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】