(57)【要約】【課題】一方向の走査によって、精度良く１次元バーコードを読み取り可能なバーコード読取装置を提供する。【解決手段】レーザ光７００による走査によって１次元バーコード８１０を読み取る第２ユニット４０と、レーザ光７００の照射位置を走査の方向に対して垂直となる方向に移動させる第１ユニット３０とを備える。第１ユニット３０は、第２ユニット４０による読取エラーが発生したことに基づき、レーザ光７００の照射位置を移動させる。第２ユニット４０は、照射位置の移動に基づき、再度、１次元バーコード８１０を読み取る。【選択図】図３
2011107872.tif 000002
【特許請求の範囲】
【請求項１】
レーザ光による走査によって１次元バーコードを読み取るバーコード読取装置であって、
前記レーザ光による前記走査によって前記１次元バーコードを読み取る読取手段と、
前記レーザ光の照射位置を前記走査の方向に対して垂直となる方向に移動させる移動手段とを備え、
前記移動手段は、前記読取手段による読取エラーが発生したことに基づき、前記レーザ光の照射位置を移動させ、
前記読取手段は、前記照射位置の移動に基づき、再度、前記１次元バーコードを読み取る、バーコード読取装置。
【請求項２】
前記読取手段は、前記照射位置の移動に基づき、前記走査の方向の向きを逆にする、請求項１に記載のバーコード読取装置。
【請求項３】
前記照射位置の移動の方向は予め定められた向きである、請求項１または２に記載のバーコード読取装置。
【請求項４】
前記バーコード読取装置は、
前記レーザ光を発振するレーザ装置と、
前記レーザ装置から発振された前記レーザ光を反射する第１ミラーと、
前記第１ミラーで反射された前記レーザ光を反射して、当該レーザ光を前記バーコード読取装置から出射させる第２ミラーと、
前記第２ミラーを駆動する第２ミラー駆動装置とをさらに備え、
前記移動手段は、前記第１ミラーを駆動する第１ミラー駆動装置を含み、
前記第２ミラーの駆動により、前記照射位置を前記走査の方向に移動させ、
前記第１ミラーの駆動により、前記照射位置を前記垂直となる方向に移動させる、請求項１から３のいずれかに記載のバーコード読取装置。
【請求項５】
レーザ光による走査によって１次元バーコードを読み取るバーコード読取方法であって、
前記レーザ光による前記走査によって前記１次元バーコードを読み取るステップと、
前記読み取るステップにおいて読取エラーが発生したことに基づき、前記レーザ光の照射位置を前記走査の方向に対して垂直となる方向に移動させるステップと、
前記照射位置の移動に基づき、再度、前記１次元バーコードを読み取るステップとを備える、バーコード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１次元バーコードを読み取るバーコード読取装置、および当該バーコード読取装置におけるバーコード読取方法に関する。
【背景技術】
【０００２】
従来、１次元バーコードを読み取るバーコード読取装置が知られている。
特許文献１には、上記バーコード読取装置として、バーコード読取用スキャナが開示されている。当該バーコード読取用スキャナは、レーザーダイオードからの光ビームをバーコードラベルに照射する。バーコード読取用スキャナは、バーコードラベルによる反射光をフォトダイオードによって光電変換する。バーコード読取用スキャナは、当該光電変換により、デコード用の信号を得る。バーコード読取用スキャナは、レーザーダイオードによる主走査方向に直交する方向に副走査用駆動部による副走査を行い、さらに副走査位置に同期させて光源の発光制御及び受光素子の制御を制御回路によって行う。
【０００３】
特許文献２には、上記バーコード読取装置として、文字およびバーコードが印刷された帳票から当該文字およびバーコードを読み取る光学的文字読取装置が開示されている。当該光学的文字読取装置は、少なくとも、スキャナと、バーコード読取部と、文字認識部とを備える。
【０００４】
上記スキャナは、上記帳票のイメージを検出する。検出されたイメージはシートバッファに格納される。上記バーコード読取部は、バーコード及びバーコード対応文字を包含するように予め設定された印刷範囲情報に基づいて、帳票に印刷されたバーコード及びバーコード対応文字の位置情報を求める。バーコード読取部は、当該位置情報に基づいてバーコードのイメージ上に、バーコード全体に亘って複数の走査線を設定する。バーコード読取部は、１つの走査線を走査してバーコードの読み取りを行う。バーコード読取部は、読み取りが誤りの場合は、未走査の他の走査線を走査してバーコードの読み取りを行う。上記文字認識部は、バーコードの読み取りが全て誤りの場合は、バーコード対応文字の認識を行う。
【０００５】
特許文献３には、１つのミラーにて主走査および副走査を行う圧電曲げ駆動式２次元光スキャナが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−２００８０号公報
【特許文献２】特開平９−２３７３１２号公報
【非特許文献】
【０００７】
【非特許文献１】OMRON TECHNICS Vol.47（通巻156号）2006, Page 73
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１のバーコード読取用スキャナは、１本のレーザ光によって主走査を行う際に、同時に主走査とは直交する方向に走査を行うことによって、ゴミ等の付着による読取エラーを防止している。つまり、バーコード読取用スキャナは、主走査の途中で直行方向への走査を行う。このため、バーコード読取用スキャナでは、主走査のスキャン処理に加えて、上記直交方向の走査のスキャン処理が必要となる。それゆえ、バーコード読取用スキャナでは、複雑なデータ処理が必要となる。また、バーコード読取用スキャナでは、このように複雑なデータ処理が必要となるため、主走査のスキャン処理のみを行う構成のスキャナに比べて、電力消費が大きくなる。
【０００９】
特許文献２の光学的文字読取装置は、バーコードが汚れていて認識できない場合、代わりにバーコードと並んで印刷されている文字の認識を行う。したがって、光学的文字読取装置では、文字を認識する機能を備えることが必要となる。
【００１０】
本願発明は、上記問題点に鑑みなされたものであって、その目的は、一方向の走査によって、精度良く１次元バーコードを読み取り可能なバーコード読取装置、および当該バーコード読取装置のバーコード読取方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明のある局面に従うと、バーコード読取装置は、レーザ光による走査によって１次元バーコードを読み取るバーコード読取装置である。バーコード読取装置は、レーザ光による走査によって１次元バーコードを読み取る読取手段と、レーザ光の照射位置を走査の方向に対して垂直となる方向に移動させる移動手段とを備える。移動手段は、読取手段による読取エラーが発生したことに基づき、レーザ光の照射位置を移動させる。読取手段は、照射位置の移動に基づき、再度、１次元バーコードを読み取る。
【００１２】
好ましくは、読取手段は、照射位置の移動に基づき、走査の方向の向きを逆にする。
好ましくは、照射位置の移動の方向は予め定められた向きである。
【００１３】
好ましくは、バーコード読取装置は、レーザ光を発振するレーザ装置と、レーザ装置から発振されたレーザ光を反射する第１ミラーと、第１ミラーで反射されたレーザ光を反射して、当該レーザ光をバーコード読取装置から出射させる第２ミラーと、第２ミラーを駆動する第２ミラー駆動装置とをさらに備える。移動手段は、第１ミラーを駆動する第１ミラー駆動装置を含む。第２ミラーの駆動により、照射位置を走査の方向に移動させる。第１ミラーの駆動により、照射位置を垂直となる方向に移動させる。
【００１４】
本発明の他の局面に従うと、バーコード読取方法は、レーザ光による走査によって１次元バーコードを読み取るバーコード読取方法である。バーコード読取方法は、レーザ光による走査によって１次元バーコードを読み取るステップと、読み取るステップにおいて読取エラーが発生したことに基づき、レーザ光の照射位置を走査の方向に対して垂直となる方向に移動させるステップと、照射位置の移動に基づき、再度、１次元バーコードを読み取るステップとを備える。
【発明の効果】
【００１５】
一方向の走査によって、精度良く１次元バーコードを読み取り可能となるといった効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】ハンディーターミナルの外観を示した図である。
【図２】ハンディーターミナルの動作概要を説明するための図である。
【図３】ハンディーターミナルのブロックを示したブロック図である。
【図４】第１ミラーと第２ミラーとの配置を説明するための図である。
【図５】第２ミラーの回転を説明するための図である。
【図６】第１ミラーの回転を説明するための図である。
【図７】ハンディーターミナルのバーコード読取処理の流れを示したフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。本実施の形態では、バーコード読取装置の一例として、ハンディーターミナル（データ収集端末）を挙げて説明する。
【００１８】
＜装置の外観＞
図１は、ハンディーターミナルの外観を示した図である。図１を参照して、ハンディーターミナル１は、ディスプレイ６０と、入力デバイス７０とを備える。入力デバイス７０は、テンキー７１と、コマンドキー７２と、トリガーキー７３とを含む。
【００１９】
ディスプレイ６０は、各種の情報を表示する。ディスプレイ６０が表示する情報の例については後述する。テンキー７１は、ユーザが数字等を入力するための操作キーである。コマンドキー７２は、たとえばカーソルを移動させる処理等のコマンドを入力するための操作キーである。トリガーキー７３は、操作（スキャン）を開始する指示を入力するための操作キーである。
【００２０】
ハンディーターミナル１は、ユーザによってトリガーキー７３が選択されると、レーザ光を照射することにより読取対象物である１次元バーコードの走査を行う。なお、以下では、１次元バーコードを「バーコード」と称する。
【００２１】
＜動作の概要＞
図２は、ハンディーターミナル１の動作概要を説明するための図である。図２（ａ）は、ハンディーターミナル１によりバーコード８１０を読み取る際の処理の概要を示した図である。図２（ｂ）は、図２（ａ）のバーコード８１０を拡大した図である。
【００２２】
図２（ａ）を参照して、バーコード８１０を読み取る場合、ユーザは、ハンディーターミナル１を持った手９００を移動させ、ハンディーターミナル１のレーザ光の照射面（図示せず）を、バーコード８１０の方向に向ける。なお、バーコード８１０は、紙などの媒体８００にプリントされている。
【００２３】
なお、以下では、ハンディーターミナル１が照射するレーザ光を、「レーザ光７００」と称する。また、レーザ光７００のうち、上記照射面に対して予め定められた方向に出射するレーザ光については、たとえば、レーザ光７００Ａ、７００Ｂ、７００Ｃ、７００Ｄといったように、参照符号「７００」の後に記号を付す。
【００２４】
レーザ光の照射面（図示せず）をバーコード８１０の方向に向けた状態において、ユーザによってトリガーキー７３の選択がなされると、ハンディーターミナル１は、レーザ光を照射することによってバーコード８１０の読み取りを開始する。
【００２５】
図２（ａ）および図２（ｂ）を参照して、ハンディーターミナル１は、トリガーキー７３が選択されると、レーザ光７００Ａを媒体８００の位置８５１に照射する。なお、位置８５１は、ハンディーターミナル１の位置と媒体８００との位置関係で定まる位置である。その後、ハンディーターミナル１は、レーザ光７００の照射位置を直線的に順次変更して、バーコード８１０を走査する。最終的には、ハンディーターミナル１は、レーザ光７００Ｂを媒体８００の位置８５２に照射する。当該走査におけるレーザ光７００の媒体８００上の軌跡７５０は、位置８５１と位置８５２とを結ぶ直線となる。なお、位置８５２も、位置８５１と同様、ハンディーターミナル１の位置と媒体８００との位置関係で定まる位置である。
【００２６】
ここで、バーコード８１０にコードの欠落箇所や不鮮明な箇所等の不良箇所８１１があって、軌跡７５０が当該不良箇所８１１等と交わる場合（すなわち、レーザ光７００が不良箇所を走査する場合）、バーコード８１０の読み取りエラーが生じてしまう。
【００２７】
そこで、ハンディーターミナル１は、読取エラーが発生した場合、レーザ光７００の照射位置を上記走査の方向に対して垂直となる方向に移動させる。具体的には、ハンディーターミナル１は、レーザ光７００の照射角度を予め定められた角度だけ変更し、上記走査方向に対して垂直となる方向にレーザ光７００の照射位置を移動させる。具体的には、ハンディーターミナル１は、レーザ光７００の照射位置を位置８５２から位置８６１に移動させる。
【００２８】
なお、ハンディーターミナル１は、位置８５２から位置８６１への移動の間、レーザ光を照射し続けてもよいし、あるいは、レーザ光の照射を停止してもよい。レーザ光を照射し続ける場合には、後述するメインコントローラ１０（図３参照）は、読み取ったデータを認識する処理は行わない。
【００２９】
ハンディーターミナル１は、レーザ光７００Ｃを媒体８００の位置８６１に照射した後、レーザ光７００の照射位置を直線的に順次変更して、バーコード８１０を再度走査する。最終的には、ハンディーターミナル１は、レーザ光７００Ｄを媒体８００の位置８６２に照射する。当該再度の走査におけるレーザ光７００の媒体８００上の軌跡７６０は、位置８６１と位置８６２とを結ぶ直線となる。なお、ハンディーターミナル１と媒体８００との位置関係が最初の走査と次の走査とで変わらない場合、軌跡７６０は、軌跡７５０と平行となる。
【００３０】
ハンディーターミナル１は、再度の走査によってバーコードの読み取りに成功した場合、以降の走査は行わない。一方、ハンディーターミナル１は、上記再度の走査でも読み取りエラーが発生した場合、走査位置をさらにずらして走査を行う。ハンディーターミナル１は、バーコード８１０の読み取りに成功するまで、上記走査を繰り返す。
【００３１】
このように、ハンディーターミナル１は、バーコード８１０の長さ方向（一方向）の１回以上の走査によって、精度良くバーコード８１０を読み取ることが可能となる。なお、「バーコードの長さ方向」とは、一方のクワイエットゾーン（マージン）から他方のクワイエットゾーンへの方向である。なお、クワイエットゾーンとは、バーコードシンボルの両端の余白エリアである。
【００３２】
以下、このようなハンディーターミナル１を実現するための具体的な構成について、説明する。なお、以下では、「方向」とは、第１の向きと、当該第１の向きとは反対向きの第２の向きとの両方を含む概念である。たとえば、図２（ｂ）では、バーコードの長さ方向は、左端側に記した数字の「４」から右端側に記した「９」に向かう向きと、右端側に記した「９」から左端側に記した数字の「４」に向かう向きとを含む。
【００３３】
＜具体的構成＞
図３は、ハンディーターミナル１のブロックを示したブロック図である。図３を参照して、ハンディーターミナル１は、メインコントローラ１０と、レーザ装置２０と、第１ユニット３０と、第２ユニット４０と、ハーフミラー５０と、ディスプレイ６０と、入力デバイス７０と、ＲＯＭ（Read Only Memory）８０と、ＲＡＭ（Random Access Memory）９０とを備えている。
【００３４】
（メインコントローラ１０について）
メインコントローラ１０は、ハンディーターミナル１の動作を制御する。具体的には、メインコントローラ１０は、レーザ装置２０と第１ユニット３０と第２ユニット４０との動作を制御する。また、メインコントローラ１０は、ディスプレイ６０に情報を表示させる。さらに、メインコントローラ１０は、入力デバイス７０から入力されたデータに基づいたデータ処理を行う。また、メインコントローラ１０は、ＲＯＭ８０からデータを読み出す。さらに、メインコントローラ１０は、ＲＡＭ９０にデータを書き込むとともに、ＲＡＭ９０からデータを読み出す。また、メインコントローラ１０は、閾値比較部１１と、バーコード認識部１２とを含む。閾値比較部１１の機能と、バーコード認識部１２の機能とは、後述する。
【００３５】
（レーザ装置２０について）
レーザ装置２０は、レーザ光を発振する。レーザ装置２０は、レーザ制御部２１と、照射部２２と、受光部２３とを含む。
【００３６】
レーザ制御部２１は、レーザ装置２０の動作を制御する。レーザ制御部２１は、メインコントローラ１０から所定の指示を受け付けた場合、レーザ光を照射する指示を照射部２２に対して出す。なお、「所定の指示」とは、入力デバイス７０のトリガーキー７３が選択されたことに基づく指示である。
【００３７】
照射部２２は、レーザ制御部２１からの上記指示を受け付けた場合、予め定められた向きに、レーザ光を照射する。
【００３８】
受光部２３は、照射部２２が照射したレーザ光であって、かつバーコード８１０が記された媒体８００によって反射したレーザ光を受光する。受光部２３は、受光したレーザ光の強度（アナログ値）をＡ／Ｄ（Analog to Digital）変換する。受光部２３は、デジタル化した数値情報を、メインコントローラ１０に送る。
【００３９】
（第１ユニット３０について）
第１ユニット３０は、第１サブコントローラ３１と、第１ミラー駆動装置３２と、第１ミラー装置３３とを含む。第１サブコントローラ３１は、メモリ３１０を含む。第１ミラー装置３３は、第１ミラー３３１と、第１回転台３３２とを含む。なお、説明の便宜上、「第１ユニット」という表現を用いているが、第１サブコントローラ３１と第１ミラー駆動装置３２と第１ミラー装置３３とは、ユニット化されている必要はない。
【００４０】
第１ユニット３０は、レーザ装置２０から発振されたレーザ光７００の照射位置を、走査の方向（図２参照）に対して垂直となる方向に移動させる。より詳しくは、第１ユニット３０は、第２ユニット４０によるバーコードの読取エラーが発生したことに基づき、レーザ光７００の照射位置を移動させる。
【００４１】
第１サブコントローラ３１は、第１ミラー駆動装置３２の動作を制御する。メモリ３１０には、初期位置情報３１１と、終端位置情報３１２と、現在位置情報３１３とが格納されている。当該各情報３１１〜３１３については、後述する。
【００４２】
第１ミラー駆動装置３２は、第１サブコントローラ３１の指示に基づき、第１回転台３３２を回転させる。第１ミラー駆動装置３２は、磁力により第１回転台３３２を回転させる。第１回転台３３２の回転方向については、後述する。
【００４３】
第１ミラー３３１は、レーザ装置２０から発振されたレーザ光７００を反射する。より詳しくは、第１ミラー３３１は、ハーフミラー５０を通過したレーザ光７００を、第２ユニット４０の後述する第２ミラー４３１の方向へ反射する。また、第１ミラー３３１は、バーコード８１０がプリントされた媒体８００によって反射したレーザ光７００であって、その後に第２ミラー４３１で反射したレーザ光７００を、ハーフミラー５０の方向に反射する。
【００４４】
第１回転台３３２は、第１ミラー３３１を支持するとともに、第１回転台３３２の回転に従って第１ミラー３３１を予め定められた方向に回転させる。
【００４５】
つまり、第１ミラー駆動装置３２は、第１回転台３３２の回転に伴い、第１ミラー３３１を駆動する。具体的には、第１ミラー駆動装置３２は、第１ミラー３３１を回転駆動する。当該第１ミラー３３１の駆動により、レーザ光７００の照射位置を走査方向に垂直となる方向に移動させることができる。なお、第１ミラー３３１の駆動については、後述する（図６）。
【００４６】
（第２ユニット４０について）
第２ユニット４０は、第２サブコントローラ４１と、第２ミラー駆動装置４２と、第２ミラー装置４３とを含む。第２サブコントローラ４１は、メモリ４１０を含む。第２ミラー装置４３は、第２ミラー４３１と、第２ミラー４３１を支持するとともに第２ミラー４３１を予め定められた方向に回転させる第２回転台４３２とを含む。なお、説明の便宜上、「第２ユニット」という表現を用いているが、第２サブコントローラ４１と第２ミラー駆動装置４２と第２ミラー装置４３とは、ユニット化されている必要はない。
【００４７】
第２ユニット４０は、レーザ光７００による走査によってバーコード８１０を読み取る。また、読取エラーが発生して、第１ユニット３０の第１ミラー３３１が移動したことに基づき、第２ユニット４０は、再度、バーコード８１０を読み取る。
【００４８】
第２サブコントローラ４１は、第２ミラー駆動装置４２の動作を制御する。メモリ４１０には、初期位置情報４１１と、終端位置情報４１２と、現在位置情報４１３と、移動向き情報４１４とが格納されている。当該各情報４１１〜４１４については、後述する。
【００４９】
第２ミラー駆動装置４２は、第２サブコントローラ４１の指示に基づき、第２回転台４３２を回転させる。第２ミラー駆動装置４２は、磁力により第２回転台４３２を回転させる。第２回転台４３２の回転方向については、後述する。
【００５０】
第２ミラー４３１は、第１ミラー３３１で反射したレーザ光７００を、さらに反射する。より詳しくは、第２ミラー４３１は、第１ミラー３３１で反射したレーザ光７００を、ハンディーターミナル１におけるレーザ光の照射面の方向に反射する。当該反射により、レーザ光はハンディーターミナル１の外部に出射する。また、第２ミラー４３１は、バーコード８１０がプリントされた媒体８００によって反射したレーザ光７００を、第１ミラー３３１の方向に反射する。
【００５１】
第２回転台４３２は、第２ミラー４３１を支持するとともに、第２回転台４３２の回転に従って第２ミラー４３１を予め定められた方向に回転させる。
【００５２】
より詳しくは、第２ミラー駆動装置４２は、第２回転台４３２の回転に伴い、第２ミラー４３１を駆動する。具体的には、第２ミラー駆動装置４２は、第２ミラー４３１を回転駆動する。当該第２ミラー４３１の駆動により、レーザ光７００の照射位置を走査の方向に移動させる。なお、第２ミラー４３１の駆動については、後述する（図５）。
【００５３】
（ハーフミラー５０について）
ハーフミラー５０は、レーザ装置２０の照射部２２から出射したレーザ光７００を透過する。また、ハーフミラー５０は、媒体８００により反射したレーザ光７００であって、かつ第２ミラー４３１および第１ミラー３３１で反射したレーザ光７００を、レーザ装置２０の受光部２３の方向に反射する。
【００５４】
（ディスプレイ６０・入力デバイス７０について）
ディスプレイ６０は、メインコントローラ１０の制御により、ＲＡＭ８０に格納されている情報等を表示する。たとえば、ディスプレイ６０は、後述する商品情報を表示する。ディスプレイ６０は、たとえば、液晶ディスプレイ、有機ＥＬ（Electro-Luminescence）ディスプレイである。
【００５５】
入力デバイス７０は、上述したように、テンキー７１と、コマンドキー７２と、トリガーキー７３とを備える。これらの各キー７１〜７３は、ハードキーである。ただし、各キー７１〜７３は、ハードキーに限定されず、ソフトウェアキーであってもよい。この場合、ハンディーターミナル１は、入力デバイス７０を、タッチパネル付きディスプレイで実現すればよい。なお、タッチパネル付きディスプレイを用いる場合、ディスプレイ６０の機能を、当該タッチパネル付きディスプレイで実現できる。さらに、タッチパネル付きディスプレイとして、光センサ液晶内蔵ディスプレイを用いてもよい。
【００５６】
（ＲＯＭ８０・ＲＡＭ８１について）
ＲＯＭ８０は、不揮発性のメモリである。ＲＯＭ８０は、制御プログラム８１と、バーコード認識情報８２とを予め格納している。制御プログラム８１は、ハンディーターミナル１の動作を制御するプログラムである。メインコントローラ１０は、制御プログラム８１をＲＯＭ８０から読み出し、当該制御プログラム８１を実行する。バーコード認識情報８２については、後述する。
【００５７】
ＲＡＭ９０は、本実施の形態では、ＲＯＭ８０と同様、不揮発性のメモリである。ＲＡＭ９０は、関連付情報９１を予め格納している。また、ＲＡＭ９０は、読み取りデータ９２と、認識結果９３とを格納する。
【００５８】
関連付情報９１は、バーコードナンバーと商品情報とを対応付けた情報である。関連付情報９１では、たとえば、バーコードナンバーの「０００１」と、商品情報の「みかん￥５０」とが関連付けられている。読み取りデータ９２と認識結果９３とについては、後述する。
【００５９】
（認識処理について）
メインコントローラ１０は、受光部２３からデジタル化された数値情報を取得する。メインコントローラ１０の閾値比較部１１は、当該数値情報を、予め定められた閾値と比較することにより、「０」と「１」とのデータ列に変更する。なお、閾値は、ＲＯＭ８０またはＲＡＭ９０に予め格納されている。
【００６０】
閾値比較部１１は、上記データ列を、読み取りデータ９２としてＲＡＭ９０に格納する。
【００６１】
バーコード認識部１２は、上記データ列のＲＡＭ９０への格納が終了した後に、認識処理を実行する。バーコード認識部１２は、ＲＡＭ９０に格納されたデータ列と、ＲＯＭ８０に格納されたバーコード認識情報とを比較し、バーコードナンバーを認識する。そして、バーコード認識部１２は、認識結果９３である上記認識したバーコードナンバーをＲＡＭ９３に格納する。
【００６２】
メインコントローラ１０は、認識結果９３に基づいて、関連付情報のバーコードナンバーを検索する。メインコントローラ１０は、関連付情報９１において当該検索したバーコードナンバーに関連付けされた商品情報を、ディスプレイ６０に表示させる。メインコントローラ１０は、たとえば、「みかん￥５０」といった情報をディスプレイ６０に表示させる。
【００６３】
＜ミラーの回転方向＞
図４は、第１ミラー３３１と第２ミラー４３１との配置を説明するための図である。図４を参照して、第１ミラー装置３３では、第１回転台３３２の回転軸３３９（図６参照）の軸方向と、第１ミラー３３１の鏡面の垂線とが平行とはならないように、第１ミラー３３１が第１回転台３３２に対して配置されている。第１回転台３３２の回転に伴い、第１ミラー３３１の垂線の向きは変化する。第１ミラー３３１は、当該垂線の変化によって、レーザ光７００を下向きに反射する、あるいはレーザ光７００を上向きに反射する。なお、「下向き」および「上向き」については、後述する（図６）。
【００６４】
第２ミラー装置４３では、第２回転台４３２の回転軸４３９（図５参照）の軸方向と、第２ミラー４３１の鏡面の垂線とが垂直となるよう、第２ミラー４３１が第２回転台４３２に対して配置されている。第２回転台４３２の回転に伴い、第２ミラー４３１の垂線の向きは、ＸＹ平面内で変化する。第２ミラー４３１は、当該垂線の変化によって、レーザ光７００を左向きに反射する、あるいはレーザ光７００を右向きに反射する。なお、「左向き」および「右向き」については、後述する（図５）。
【００６５】
また、以下では、第１ミラー３３１における鏡面の垂線とＸＹ平面とが平行である場合における第１ミラー３３１の位置を、「中間位置Ｍ１」と称する。さらに、図４のように、ＸＹ平面における第２ミラー４３１における鏡面の垂線の傾きが「１」である第２ミラーの位置を、「中間位置Ｍ２」と称する。
【００６６】
図５は、第２ミラー４３１の回転を説明するための図である。図５を参照して、たとえばレーザ光７００Ａを照射している状態において、第２回転台４３２がＢの向きに回転すると、レーザ光７００の進路は、第２回転台４３２の回転角度（つまり、第２ミラー４３１の回転角度）に応じて変化する。具体的には、レーザ光７００の進路は、Ｚ軸方向へは変化することなく、ＸＹ平面内で変化する。第２回転台４３２がＢの向きに所定の角度回転すると、第２ミラー４３１がレーザ光７００Ｂを照射している状態となる。
【００６７】
ハンディーターミナル１は、レーザ光７００をレーザ光７００Ａの位置からレーザ光７００Ｂの位置までレーザ光を照射させた状態で変化させることにより、１回目のバーコード８１０の走査を行う。当該走査においては、レーザ光７００Ａを照射する、第２ミラー４３１の位置を、「第１位置」と称する。また、当該走査において、レーザ光７００Ｂを照射する、第２ミラー４３１の位置を、「第２位置」と称する。
【００６８】
一方、レーザ光７００Ｂを照射している状態において、第２回転台４３２が回転軸４３９を中心にＡの向きに回転すると、レーザ光７００の進路は、第２回転台４３２の回転角度に応じて変化する。第２回転台４３２がＡの向きに所定の角度回転すると、第２ミラー４３１がレーザ光７００Ａを照射している状態となる。
【００６９】
ハンディーターミナル１は、レーザ光７００をレーザ光７００Ｂの位置からレーザ光７００Ａの位置まで変化させることにより、２回目のバーコード８１０の走査を行う。なお、２回目の走査は、１回目の走査でエラーが生じたときに行われる。また、走査は、読み取りに成功するまで、行われる。
【００７０】
上記１回目の走査では、第１位置が、レーザ光７００の照射を開始する位置（以下、「開始位置」）となり、第２位置が、レーザ光７００の照射を終了する位置（以下、「終端位置」）となる。また、上記第２回目の走査では、第１位置が、終端位置となり、第２位置が開始位置となる。開始位置と終端位置とは、次の走査において入れ替わる。
【００７１】
第２サブコントローラ４１は、現在の走査における、初期位置（詳しくは、初期位置の値）を示した初期位置情報４１１（図３参照）と、終端位置（詳しくは、終端位置の値）を示した終端位置情報４１２を格納する。さらに、第２サブコントローラ４１は、１回の走査が終了すると、初期位置の値と終端位置の値とを交換する。すなわち、初期位置の値と終端位置の値とを、互いに入れ替える。ここで、初期位置の値、終端位置の値とは、第２ミラー４３１の位置を特定するための値である。たとえば、当該値は、第２回転台４３２の回転角を示す値である。
【００７２】
たとえば、ある走査における初期位置情報４１１の値が「＋１５°」であって、終端位置情報４１２の値が「−１５°」である場合、第２サブコントローラ４１は、次の走査では、初期位置情報４１１の値を「−１５°」とし、かつ終端位置情報４１２の値を「＋１５°」とする。なお、この場合、上記中間位置Ｍ２の値は、「０」となる。
【００７３】
また、第２サブコントローラ４１は、現在の第２ミラー４３１の位置を特定する現在位置情報４１３を格納する。さらに、第２サブコントローラ４１は、レーザ光７００の移動の向きを示した移動向き情報４１４を格納する。
【００７４】
なお、以下では、説明の便宜上、第２ミラー４３１の回転方向のうち上記Ａの向きを、「右向き」とも称する。また、第２ミラー４３１の回転方向のうち上記Ｂの向きを、「左向き」とも称する。
【００７５】
第２サブコントローラ４１は、走査時におけるレーザ光７００の移動の向きを示す移動向き情報４１４をさらに格納する。第２サブコントローラ４１は、開始位置と終端位置との値が入れ替わるたびに、移動向き情報４１４を更新する。第２サブコントローラ４１は、たとえば初期位置情報の値が「＋１５°」である場合、移動向き情報の値を「左向き」を示す値とする。一方、第２サブコントローラ４１は、初期位置情報の値が「−１５°」である場合、移動向き情報４１４の値を「右向き」を示す値とする。
【００７６】
第２サブコントローラ４１は、移動向き情報４１４に従って、第２ミラー４３１の回転方向を決定する。第２サブコントローラ４１は、たとえば移動向き情報４１４が「左」を示すとき、第２ミラー４３１をＢ方向に回転させる。
【００７７】
図６は、第１ミラー３３１の回転を説明するための図である。図６を参照して、たとえばレーザ光７００Ｂを照射している状態において、第１回転台３３２がＤ方向に回転すると、レーザ光７００の進路は第１回転台３３２の回転角度（つまり、第１ミラー３３１の回転角度）に応じて変化する。具体的には、レーザ光７００の進路は、Ｚ軸方向へは変化する。第１回転台３３２がＢの向きに所定の角度回転すると、第１ミラー３３１がレーザ光７００Ｃを照射している状態となる。
【００７８】
ハンディーターミナル１は、レーザ光７００をレーザ光７００Ｂの位置からレーザ光７００Ｃの位置まで変化させることによって、図２に示したとおり、バーコード８１０の走査位置を変更する。
【００７９】
たとえばレーザ光７００がレーザ光７００Ｃの位置にある状態において、第１回転台３３２が回転軸３３９を中心にＣ方向に回転すると、レーザ光７００の位置は、レーザ光７００Ｂの方向へ移動することになる。
【００８０】
第２ミラー４３１による１回目の走査が行われ、読取エラーが発生した場合、第１サブコントローラ３１は、所定の角度、予め定められた向き（たとえば、Ｄの向き）に第１回転台３３２を回転させる。また、第１回転台３３２の当該移動後に第２ミラー４３１による２回目の走査が行われ、この回においても読取エラーが発生した場合、第１サブコントローラ３１は、再度、所定の角度、上記予め定められた向きに第１回転台３３２を回転させる。第１サブコントローラ３１は、バーコード８１０の読み取りに成功するまで、当該動作を繰り返す。
【００８１】
第１サブコントローラ３１は、予め定められた角度だけ第１回転台３３２を回転させることより第１ミラー３３１が予め定められた終端位置まで達すると、上記予め定められた向きとは反対の向き（たとえば、Ｃの向き）に、第１ミラー３３１が予め定められた初期位置となるまで第１回転台３３２を回転させる。
【００８２】
第１サブコントローラ３１は、第１ミラー３３１の初期位置を特定する初期位置情報３１１（図３参照）と、第１ミラー３３１の終端位置を特定する終端位置情報３１２とを予め格納している。さらに、第１サブコントローラ３１は、現在の第１ミラー３３１の位置を特定する現在位置情報３１３を格納する。なお、初期位置情報３１１、終端位置情報３１２、および現在位置情報３１３は、たとえば、第１回転台３３２の回転角を示す値で示される。一例として、第１ミラー３３１の初期位置情報３１１の値が「＋１０°」であって、終端位置情報３１２の値が「−１０°」である。なお、この場合、上記中間位置Ｍ１の値は、「０」となる。
【００８３】
なお、以下では、説明の便宜上、第１ミラー３３１の回転方向のうち上記Ｃの向きを、「上向き」とする。また、第１ミラー３３１の回転方向のうち上記Ｄの向きを、「下左向き」とする。
【００８４】
＜制御構造＞
図７は、ハンディーターミナル１のバーコード読取処理の流れを示したフローチャートである。なお、以下のフローは、図２に示す位置８５２から位置８６１への移動の間、レーザ光７００の照射を停止する場合の処理を示している。この場合、上述したように、メインコントローラ１０は、読み取ったデータを認識する処理は行わない。
【００８５】
図７を参照して、ステップＳ２において、ハンディーターミナル１は、トリガーキー７３が選択されたか否かを判断する。ステップＳ４において、ハンディーターミナル１は、初期位置情報４１１に基づいて、第２ミラー４３１の位置を初期位置に設定する。ステップＳ６において、ハンディーターミナル１は、初期位置情報３１１に基づいて、第１ミラー３３１の位置を初期位置に設定する。ステップＳ８において、ハンディーターミナル１は、レーザ光の照射を開始する。ステップＳ１０において、ハンディーターミナル１は、受光部２３にて媒体８００によって反射された反射光を受光する。
【００８６】
ステップＳ１２において、ハンディーターミナル１は、受光値を閾値にて判断する。すなわち、ステップＳ１２において、ハンディーターミナル１は、デジタル化された数値情報を、予め定められた閾値と比較することにより、「０」と「１」とのデータ列に変更する。ステップＳ１４において、ハンディーターミナル１は、判断結果を記憶する。すわなち、ステップＳ１４において、ハンディーターミナル１は、上記データ列を、読み取りデータ９２としてＲＡＭ９０に格納する。
【００８７】
ステップＳ１６において、ハンディーターミナル１は、移動向き情報４１４に基づいて、移動の向きが左向きであるか否かを判断する。左向きであると判断した場合（ステップＳ１６においてＹＥＳ）、ステップＳ１８において、ハンディーターミナル１は、第２ミラー４３１を左向きに予め定められた角度だけ回転する。一方、ハンディーターミナル１は、左向きでないと判断した場合（ステップＳ１６においてＮＯ）、ステップＳ３４において第２ミラー４３１を右向きに予め定められた角度だけ回転する。
【００８８】
ステップＳ２０において、ハンディーターミナル１は、終端位置情報４１２に基づいて、第２ミラー４３１が終端位置に到達しているか否かを判断する。ハンディーターミナル１は、終端位置に到達したと判断した場合（ステップＳ２０においてＹＥＳ）、ステップＳ２２において、ステップＳ１４で記憶したデータ（判断結果）を認識処理する。すなわち、ハンディーターミナル１は、ステップＳ２２において、ＲＡＭ９０に格納されたデータ列と、ＲＯＭ８０に格納されたバーコード認識情報とを比較し、バーコードナンバーを認識する。ハンディーターミナル１は、終端位置に到達していないと判断した場合（ステップＳ２０においてＮＯ）、処理を、ステップＳ１０に進める。
【００８９】
ステップＳ２４において、ハンディーターミナル１は、認識に成功したか否かを判断する。ハンディーターミナル１は、認識に成功したと判断した場合（ステップＳ２４においてＹＥＳ）、ステップＳ２６においてレーザ光７００の照射を停止する。ステップＳ２８において、ハンディーターミナル１は、認識結果９３に基づいてバーコードナンバーを検索する。
【００９０】
ステップＳ３０において、ハンディーターミナル１は、関連付情報９１において、当該検索したバーコードナンバーが存在するか否かを判断する。ハンディーターミナル１は、存在すると判断した場合（ステップＳ３０においてＹＥＳ）、ステップＳ３２において、関連付情報９１において当該検索したバーコードナンバーに関連付けされた商品情報をディスプレイ６０に表示する。ハンディーターミナル１は、存在しないと判断した場合（ステップＳ３０においてＮＯ）、ステップＳ４６において、ディスプレイ６０にエラー表示をする。
【００９１】
ところで、ハンディーターミナル１は、上記認識に成功していない（ステップＳ２４においてＮＯ）と判断した場合、ステップＳ３６において、走査の初期位置の値と当該走査の終端位置の値とを交換する。ステップＳ３８において、ハンディーターミナル１は、移動の向きを逆向きに変更する。すなわち、ハンディーターミナル１は、ステップＳ３８において、上述したように、移動向き情報４１４を更新する。
【００９２】
ステップＳ４０において、ハンディーターミナル１は、現在位置情報３１３に基づき、第１ミラー３３１が終端位置であるか否かを判断する。ハンディーターミナル１は、終端位置であると判断した場合（ステップＳ４０においてＹＥＳ）、ステップＳ４２において、第１ミラー３３１を上向きに回転させ、第１ミラー３３１を初期位置に設定する。一方、ハンディーターミナル１は、終端位置でないと判断した場合（ステップＳ４０においてＮＯ）、ステップＳ４４において、第１ミラー３３１を下向きに予め定められた角度回転する。
【００９３】
以上のような処理によって、ハンディーターミナル１は、一方向の走査によって、精度良く１次元バーコードを読み取り可能となる。また、ハンディーターミナル１では、再度の走査を行うときにも、ユーザはハンディーターミナル１の位置を動かす必要がない。ハンディーターミナル１では、ユーザがハンディーターミナル１の位置（媒体８００に対する位置）を移動させることなく、プリント品質の悪いバーコードを読み取ることが可能となる。
【００９４】
また、ハンディーターミナル１は、読取エラーが生じたことに基づき走査の向き逆向きにする（たとえば左向きへの走査の後は右向きへ走査を行う）ため、左向き（または右向き）のみにしか走査を行わないハンディーターミナルに比べて、バーコードの読取を早く行うことができる。
【００９５】
＜変形例＞
（１）上記においては、ハンディーターミナル１は、図２に示したように、位置８５１から位置８５２へと左向きの走査を行った後、位置８６１から位置８６２へと右向きの走査を行った。しかしながら、走査の向きは当該向きに限定されず、たとえば、位置８５１から位置８５２へと走査を行った後に、位置８６２から位置８６１へと再度の走査を行うようにハンディーターミナル１を構成してもよい。すなわち、走査の向きを、１つの向き（右向きまたは左向き）としてもよい。
【００９６】
（２）ハンディーターミナル１は、読取エラーが発生した場合、照射位置を位置８５２から位置８６１移動させた。すなわち、ハンディーターミナル１は、読取エラーが発生した場合、第２ミラー４３１を下向きに回転させた。しかしながら、読取エラー発生時における第２ミラー４３１の回転は、これに限定されるものではない。たとえば、読取エラー発生時に第２ミラー４３１を上向きに回転させるようにハンディーターミナル１を構成してもよい。
【００９７】
（３）上記においては、第１ミラー駆動装置３２と第２ミラー駆動装置４２とは、磁力により、それぞれ第１回転台３３２と第２回転台４３２とを回転させた。しかしながら、当該回転を磁力で行う構成に限定されるものではない。たとえば、第１ミラー駆動装置３２と第２ミラー駆動装置４２とは、圧電素子によって、第１回転台３３２と第２回転台４３２とを回転させてもよい。また、非特許文献１に示した技術を用いて、１つのミラーにて、上述した上下方向および左右方向のミラー駆動を実現してもよい。
【００９８】
（４）上記においては、バーコード読取装置の一例としてハンディーターミナルを例に挙げて説明したが、バーコード読取装置は、入力デバイスおよびディスプレイを備えていないバーコードリーダであってもよい。
【００９９】
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１００】
１  ハンディーターミナル、１０  メインコントローラ、１１  閾値比較部、１２  バーコード認識部、２０  レーザ装置、２１  レーザ制御部、２２  照射部、２３  受光部、３０  第１ユニット、３１  第１サブコントローラ、３２  第１ミラー駆動装置、３３  第１ミラー装置、４０  第２ユニット、４１  第２サブコントローラ、４２  第２ミラー駆動装置、４３  第２ミラー装置、５０  ハーフミラー、６０  ディスプレイ、７０  入力デバイス、７３  トリガーキー、３３１  第１ミラー、３３２  第１回転台、３３９  回転軸、４３１  第２ミラー、４３２  第２回転台、４３９  回転軸、７００  レーザ光、７００Ａ  レーザ光、７００Ｂ  レーザ光、７００Ｃ  レーザ光、７００Ｄ  レーザ光、８００  媒体、８１０  バーコード、８１１  不良箇所。
【図１】
2011107872.tif 000003
【図２】
2011107872.tif 000004
【図３】
2011107872.tif 000005
【図４】
2011107872.tif 000006
【図５】
2011107872.tif 000007
【図６】
2011107872.tif 000008
【図７】
2011107872.tif 000009