光学的振幅検出方法及び振幅制御方法
【課題】ばねを用いて一方向の反復移動による走査駆動させる走査ミラーを搭載する光走査モジュールは、その振れ角度(走査角)を制御するために専用のセンサや調整機構を設けている。
【解決手段】走査ミラー内の走査方向に沿った出射ミラー面の両側に反射散乱面を設けて、それらの反射散乱面からの反射光を検出して走査ミラーの振れ角度を光学的に検出し、反射散乱面が破損され得る角度を下回るように制御する光学的振幅検出方法及び振幅制御方法である。
【解決手段】走査ミラー内の走査方向に沿った出射ミラー面の両側に反射散乱面を設けて、それらの反射散乱面からの反射光を検出して走査ミラーの振れ角度を光学的に検出し、反射散乱面が破損され得る角度を下回るように制御する光学的振幅検出方法及び振幅制御方法である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報を光学的に読み取る光走査モジュールにおける光学的振幅検出方法及び振幅制御方法に関する。
【背景技術】
【0002】
一般に、バーコード等のシンボル情報を光学的に読み取る装置には、光源として半導体レーザ素子を用いて、出射された光束(レーザ光)を走査させてバーコードに照射し、その戻り光から情報を得る光走査モジュールがある。近年の携帯電子機器に搭載するための、小型の光走査モジュールが普及している。バーコードを筆頭とするシンボル情報は、通常、光学的に情報が認識可能な記号化された情報であるが、他にも、画面化された自動車や人物等の陰影情報や、走査型レーザ顕微鏡により観測したい試料等における物体情報であってもよい。
【0003】
これらのレーザ光を走査させる公知な方式としては、一枚のミラーを揺動させる走査ミラー方式や、多面ミラー(ポリゴンミラー)を回転させる方式が知られている。例えば、特許文献1には、板ばねと走査ミラーを用いた走査機構が提案されている。また特許文献2は、同様に走査ミラー等を用いた走査機構であるが、駆動部分の共振現象を利用して振幅制御する方式である。ポリゴンミラーを回転させる方式は、回転モータを別途配置する必要があり駆動部が大型化するため、POSレジスタなどの据え置き型の電子機器に搭載されている。
【0004】
これに対して、上述の走査ミラー方式は、マグネットと駆動コイルを配置することで走査機構を構成できるため、小型軽量化を実現するものとして有利であった。そのため、携帯機器へ搭載する光走査モジュールとしては、走査ミラー方式が一般に普及している。
【0005】
こうした光走査モジュールは、電子機器のうち、携帯情報端末などの情報機器へのデータ入力の用途に適しており、機器内に組み込まれ、物流、製造業、小売業等に広く普及している。また、同光走査モジュールを物体認識センサとして用いることで、例えば、車間センサや安全・防犯装置等への応用も可能となっている。
【特許文献1】米国特許番号US6,360,949
【特許文献2】米国特許番号US6,981,645
【発明の開示】
【発明が解決しようとする課題】
【0006】
前述した光走査モジュールにおいては、その機構上、温度・湿度等の外部環境の変化により、走査角(出射光が走査する角度)の変化や材料の経時変化が生じている。例えば、特許文献1、2等によれば、共振ばね等を利用している。温度又は湿度などの外部環境の変化や、ばね材料の製造ロット、長年の使用等により、共振ばねのヤング率やポアソン比等の材料特性は変化する。さらに、共振ばねの摩擦粘性係数も変化する。さらに、ばね等の吸水膨張係数、温度による線膨張係数等に応じて形状も変化する。そのため、同じ大きさの駆動パルスを与えたとしても走査ミラーの揺動角が変動するという問題があった。
【0007】
特に、設計仕様で決められた所定の範囲の揺動角を越えるような揺動を走査ミラーに行わせると、衝撃により光走査モジュールが損傷したり正常な信号が取得できなくなるという不具合がある。このような背景により、走査モジュールには、走査ミラーの振幅、すなわち揺動角が所定の範囲を超えないようにするため、検出コイルなどの揺動角度検出機構を設けている。この揺動角度検出機構で走査ミラーの揺動角度を検出し、所定の範囲の揺動角度を超えるようであれば、走査ミラーの揺動角度が小さくなるように制御することで、光走査モジュールの信頼性や耐久性を高めている。
【0008】
しかしながら、揺動角度検出機構として専用のセンサや調整機構を設けることから、部品点数が増加し、結果的に製品コストが上昇し、製品を小型化することが難しくなってしまうという問題があった。
【0009】
そこで本発明は、簡易な構成で且つ安価なコストで走査ミラーの揺動角度範囲を検出し、この揺動角度範囲制御する光学的振幅検出方法及び振幅制御方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明に従う実施形態は、走査ミラーを揺動するミラー駆動部と、前記走査ミラーに設けられ、光源部から出射されたレーザ光を走査対象に向けて反射する第1の反射面を有する出射ミラー部と、前記走査ミラーの前記出射ミラー部の周囲に設けられ、前記走査対象を含む外部からの戻り光を集光し、且つ反射する第2の反射面を有する戻りミラー部と、前記戻りミラー部で集光されて反射された戻り光を受光する受光部と、前記走査ミラーが所定の角度を超える揺動角に達して前記光源部からのレーザ光が前記出射ミラー部から外れて照射された際に、該外れたレーザ光が照射される位置に形成される第3の反射面と、を有する光学的走査装置における出射ミラー部の揺動角検出方法において、前記光源から前記レーザ光を発光させる発光ステップと、前記ミラー駆動部に駆動力を与えて、前記出射ミラー部を揺動させるミラー揺動ステップと、前記受光部によって戻り光を受光するステップと、前記受光部での受光量から、第3の反射面からの反射光の有無を検出する検出ステップと、を有する揺動角検出方法を提供する。
【0011】
また、光源部から発せられたレーザ光を走査対象に向けて反射させる第1の反射面を有する出射ミラー部と、前記出射ミラー部を揺動するミラー駆動部と、前記走査対象を含む外部からの戻り光を集光させ、且つ反射させる第2の反射面を有する戻りミラー部と、前記戻りミラー部で集光及び反射させられた前記戻り光を受光する受光部と、前記出射ミラー部が所定の角度を超える揺動角に達した際に、前記光源部からのレーザ光が照射される位置に形成される第3の反射面と、を有する光学的走査装置における前記出射ミラー部の揺動角検出方法において、前記光源部からレーザ光を発光させる発光ステップと、前記ミラー駆動部を駆動させて、前記出射ミラー部を揺動させるミラー揺動ステップと、前記戻り光を受光する受光ステップと、受光した前記戻り光の光量から、前記第3の反射面からの反射光の有無を検出する検出ステップと、前記第3の反射面からの反射光の有無に応じて、前記ミラー駆動部の駆動力を制御する駆動制御ステップと、を有し、出射ミラー部の揺動角を制御する揺動角制御方法を提供する。
【発明の効果】
【0012】
本発明によれば、簡易な構成で且つ安価なコストで走査ミラーの揺動角度範囲を検出し、この揺動角度範囲制御する光学的振幅検出方法及び振幅制御方法を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して本発明の実施形態について詳細に説明する。
まず、図1A,1Bに示す本発明の第1の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現する光走査モジュールの概要について説明する。この光走査モジュール1は、大別して、基材となるハウジング2(2a,2b)、光源部4、走査ミラー12、駆動部3、折り返しミラー部5、受光部6、制御部として機能する回路基板8及び、外部出力端子9等により構成される。
【0014】
この光走査モジュール1において実現された外寸は、16.387cm3(1立方インチ)以下程度の容積である。この光走査モジュール1は、光学読み取り機能の1ユニットとして、種々の電子機器に搭載できるように、例えば、ハウジング2a下面に固定用ねじ穴等が形成される。搭載可能な電子機器としては、例えば、携帯端末機器、ハンドヘルドスキャナ、POSコンピュータ及び通信機器等があり、それぞれに筐体内に搭載され、その機器の制御部により制御される。
【0015】
次に、光走査モジュール1の構成について詳細について説明する。図2には、図1Aに示した光走査モジュールにおける光学部品を抜粋して示している。
【0016】
光源部4は、ハウジング2aに実装されており、光束(ビーム光)としてレーザ光を発生させる半導体レーザ素子23、コリメータレンズ24及び出射開口部26等により構成される。半導体レーザ素子23は、波長約650nmのレーザ光を発生し、レーザ光はコリメータレンズ24及び出射開口部26を経由することで整形される。コリメータレンズ24と出射開口部26の形状は、読み取り対象となるバーコード等のシンボルマークや読み取り距離に応じて、読み取りが最適となるように調整及び設定されている。具体的には、レーザ光のビームウェストまでの距離が出射開口部から200mm程度、ビームウェストの直径が0.3mm以下程度となるように調整されている。
【0017】
折り返しミラー25は、その反射面が出射開口部26を経由して整形されたレーザ光の光軸に対して所定角度をなすように、ハウジング2aに対して固定され、当該レーザ光を走査ミラー12に向けて反射させる。
走査ミラー12は、駆動部3と軸受部10と一体的に接合されており、ハウジング2aに植設された回転軸11を中心に回転自在となっている。
【0018】
図3Aに示すように、走査ミラー12の前面には、その中央付近に平面で矩形形状の出射ミラー面(第1の反射面)13と、その出射ミラー面13を取り囲むように、非球面で且つ凹面状に湾曲した集光ミラー面12a(第2の反射面)とが形成されている。さらに、出射ミラー面13の揺動方向両端(図3Aにおいて、出射ミラー面13の左右端)に、本実施形態の特徴となる微細な凹凸を有する反射散乱面(第3の反射面)14a,14bが形成されている。
【0019】
揺動されている出射ミラー面13は、折り返しミラー25から入射されたレーザ光を読み取り対象となるシンボルマークに向けて走査光として出射する。集光ミラー面12aは、シンボルマークで反射された戻り光を集光させて、その光束を後段の光検出器32に向けて反射させる。集光ミラー面12aは、反射光を集光させた焦点が光検出器32の受光面の近傍に位置するように、その凹面状態が加減されている。
【0020】
反射散乱面14a,14bは、折り返しミラー25からレーザ光が入射したときに、その表面に形成された微細な凹凸により、四方へ散乱するように反射させる。つまり、出射ミラー面13は、レーザ光を光束のまま反射させて、シンボルマークに出射することに対して、反射散乱面14a,14bは、レーザ光を散乱光として反射している。
【0021】
また、図3Bに示すように、走査ミラー12の背面には、ハウジング2aに植設された回動軸11と嵌合し、回動軸11にまわりに所定の回動範囲で摺動自在に支持されるすべり軸受10が設けられている。
【0022】
出射ミラー面13は、軸受(走査ミラーの回動中心)10に対してオフセットされて形成されているため、出射ミラー面13の角度を変化させようと走査ミラー12を回動させると、出射ミラー面13の位置は徐々にずれていてくことになる。このため、出射レーザ光が出射ミラー面13に照射されていても、走査ミラー12の揺動角が所定の範囲(ここでは、走査ミラーを安定して操作でき、且つ、破損しない程度と定義する)よりも大きく揺動した場合には、出射ミラー面13から出射レーザ光のスポットが外れるようにしている。つまり、出射ミラー面13の横幅(図3Cの左右方向)の長さは、走査ミラー12の揺動角が所定の範囲内で回動している間、出射レーザ光スポットが出射ミラー面13から外れない程度の長さに設定している。
【0023】
走査ミラー12は、射出成型により、出射ミラー面13、集光ミラー面12a、反射散乱面14a,14b等を一体的に形成した樹脂成形部品として構成されている。尚、走査ミラー12の後方には、さらに、軸受10と、走査ミラー12に回動軸11まわりの回動力を伝えるための駆動部3が接着により固定されている。
【0024】
この駆動部3は、図3Dに示すように、駆動コイル16と、板ばね19と、支持ばね保持部材17、ヨーク上に配置されたマグネット18と、により構成される。本実施形態では、走査ミラー12側に駆動コイル16を、ハウジング2a側にマグネット18をそれぞれ固定し、駆動コイル16に後述する回路基板より所定の駆動パルスを印加することで電磁力を発生させて走査ミラー12を揺動させる、いわゆるムービングコイル方式の駆動モータである。反対に、走査ミラー側にマグネット、ハウジング側に駆動コイルを配置した、いわゆるムービングマグネット方式の駆動モータといった公知の駆動モータも採用することが可能である。
【0025】
このように、駆動部3におけるマグネット18と駆動コイル16の位置を適正に配置し、且つ所定の駆動パルスを駆動コイルに印加することで、駆動部3にトルクが発生し、走査ミラー12を回動(揺動)させることができる。出射ミラー面13で反射して出射されたレーザ光(出射光)は、図1Bに示すハウジング2aに設けられた走査開口面L(図2参照)を通過して外部に出射される。この出射ミラー面13で反射されるレーザ光の光軸方向が走査開口面の垂線方向に対して略一致するときの走査ミラーの角度を基準(揺動角0°、かつ、走査角0°)として、その基準からの走査ミラーの機械的な回動角度を揺動角と称する。揺動角は、ある基準位置からの走査ミラーの機械的な角度変動量であるのに対し、出射角は、出射光の光学的な角度変動量を示す。幾何光学によれば光の入射角と反射角は一致するので、走査角は揺動角の2倍となる。例えば図1Aで、走査ミラーを基準位置から±10度回転させると、出射光(走査光)は±20度変動する。
【0026】
また図2に示す走査開口面L(走査幅)は、出射ミラー面13が揺動する角度により規定され、その角度は衝突による走査ミラー12及び駆動部3への破損を防止する範囲内に設定されている。
【0027】
ここで反射散乱面14a,14bについて、さらに詳細に説明する。
図3B,3Cにおいて、走査ミラー12は、Z軸方向に沿って延びる軸11を中心に揺動可能とする。よって、出射ミラー面13と集光ミラー面12aが揺動する方向は、Y軸方向に沿った左右となる。出射ミラー面13と集光ミラー面12aの揺動方向における境界部分15a,15bを越えて反射散乱面14a,14bが設けられている。
【0028】
より詳細に説明すると、図3Aにおいて、平坦な出射ミラー面13が集光ミラー面12aから突出するように形成されている。その出射ミラー面13と集光ミラー面12aとの間を、出射ミラー面13の垂線に対する角度θ、例えば30°を超える程度の傾斜で繋がるように形成される平坦な面が反射散乱面14a,14bとなる。この反射散乱面14a,14bの表面は、微細な凹凸に加工されている。
【0029】
走査ミラー12を樹脂成形で形成する際に用いる金型構造において、成型時に金型から走査ミラー12を離型する方向が、出射ミラー面13に対して略90°となるように設定されている。このとき、集光ミラー面12aに対して凸形状となっている出射ミラー面13の部分の周囲については、離型性を高めるため、30°以上の抜き勾配としての傾斜部を施している。そして、この傾斜部の表面には砂目地状の加工が施されている。
【0030】
本実施形態では、走査ミラーの成型後に、出射ミラー面13と集光ミラー面12aと抜き勾配の傾斜部にそれぞれ、金の真空蒸着を施し、この抜き勾配の傾斜部における傾斜面を反射散乱面14a,14bとして利用している。
【0031】
この走査ミラー12が揺動している際に、半導体レーザ素子23からのレーザ光が入射されると、図3Cに示すように、レーザ光のスポットは出射ミラー面13内を移動する。このレーザ光のスポットは、走査ミラー12が設計仕様で決められている所定の角度範囲内で揺動していれば継続される。しかし、外部からの衝撃や外部の環境変化など何らかの理由で走査ミラー12が所定の角度範囲を超えて回動した場合には、レーザ光のスポットは、出射ミラー面13の外側に設けられた反射散乱面14a,14bに照射される。
受光部6は、ハウジング2a上に固定されており、バンドパスフィルタ33と受光開口部31と光検出器32等により構成される。
【0032】
バンドパスフィルタ33は、半導体レーザ素子23から出射されるレーザ光の波長を基準として設定される。本実施形態では、波長が650nm近傍の光のみを通過させるように設定されている。このため、読み取り対象となるシンボルマークで反射した光(戻り光)は、レーザ光のみがバンドパスフィルタ33を透過し、それ以外の波長の光は遮断される。
【0033】
これにより、戻り光のみがバンドパスフィルタ33を通過し、受光開口面31を経由して光検出器32に入射する。光検出器32は、光電変換面を有し、入射する光の強弱に応じた光電流を生成する。光検出器32は、図4に示す基板上に形成される制御部である電気回路41に接続されている。光検出器32により生成された光電流は、電気回路41に取り込まれて、電流/電圧変換や増幅、復号処理等、種々の処理がなされる。尚、光検出器32に入射する光の強弱は、シンボルマーク等の読み取り対象物の反射率や形状の陰影の情報に対応している。
【0034】
従って、戻り光から生成された信号レベルの変化が、予め設定された規格(信号レベル変化)と合致するか否かを判定することにより、バーコードとして印刷された情報を取得することができる。また情報だけではなく、物体の有無を検出することもできる。
【0035】
次に、本実施形態の光走査モジュールにおける回路構成について説明する。
図4は、本実施形態における基板上に形成される制御部である電気回路のブロック図である。
電気回路41には、光源部42、駆動部43及び、受光部44等が電気的に接続されている。さらに、電気回路41は図示しないコネクタ等を介して外部機器に接続可能であり、本実施形態ではコンピュータ51が接続される。光走査モジュール1とコンピュータ51との間で、プログラムやデータの通信を行っている。
【0036】
電気回路41は、光源回路45、駆動回路47、電流/電圧(I/V)変換回路48、アナログ/デジタル(A/D)変換回路49、走査制御回路46、復号回路50等を備えている。光源回路45は、走査制御回路46からの光源駆動信号OD1に基づき、光源部42の半導体レーザ素子23に対して光源駆動電圧VE1を印加し、レーザ光を発光させる。駆動回路47は、走査制御回路46からの駆動信号DR1に基づき、走査ミラー12の駆動部43に対して駆動パルスDP1を印加し、走査ミラー12を揺動させる。電流/電圧変換回路48は、受光部44の光検出器32が受光した際に発生する光電流PI1を電圧に変換し、アナログ/デジタル変換回路49は、その電圧をデジタル信号DS1に変換する。
【0037】
走査制御回路46は、デジタル・シグナル・プロセッサ(DSP)等からなり、上述した光源部42、駆動部43などの構成部位全体を制御する。復号回路50は、マイクロプロセッサや不揮発メモリ等により構成される。例えば、戻り光から生成された光電流PI1の信号の取り込みや、その信号に基づくバーコード情報の復号などの所望する機能を実現するためのソフトウェアを電気回路の外部機器(例えば、コンピュータ51)から書き込むことができる。
【0038】
このように構成された電気回路41において、コンピュータ51から読み取りを指示するトリガー信号TG1が入力されると、復号回路50から走査開始信号SE1が走査制御回路46に出力される。走査制御回路46は駆動回路47に対して駆動信号DR1を出力する。駆動回路47は、この駆動信号DR1に基づいて駆動パルスDP1を駆動部43に出力して駆動部43に対して駆動力を発生させる。この駆動力により、走査ミラー12が回動軸11周りに反復的に揺動する。
【0039】
また、走査制御回路46は、光源回路45に対して光源駆動信号OD1を出力する。光源回路45は光源駆動信号OD1に基づいて、光源駆動電圧VE1を光源部42の半導体レーザ素子23に出力する。半導体レーザ素子23は、印加された光源駆動電圧VE1に基づいてレーザ光を発生する。
【0040】
バーコード等の読み取り対象物からの反射光は、戻り光として、受光部44の光検出器32によって受光され、反射光の光強度に応じた電流が発生する。この電流は、電流/電圧変換回路48にて電圧値に変換され、アナログ/デジタル変換回路49にてデジタル値に変換される。そして、復号回路50にて、情報が復号化される。
【0041】
本実施形態の光走査モジュールにおける走査ミラーの制御方法について説明する。
図5Aでは、走査ミラー12が基準位置(回動角度0°)にあるときの出射レーザ光の光軸を示している。この走査ミラーが基準位置にあるときは、上述したように、出射ミラー面13で反射される出射レーザ光の光軸は、走査開口面Lの垂直方向に一致している。
【0042】
この状態で、図6に示すように、走査ミラー12の駆動部3にW1、W2で示される正負の駆動パルス(幅)を交互に印加することで、走査ミラー12が揺動して左スキャンさせたり(図5B)、右スキャンさせたりする(図5C)ことができる。このようなスキャン状態で、出射ミラー13で反射され出射される出射レーザ光は、直線上を左右に往復走査する。
【0043】
しかし図5Aに示すように、出射ミラー面13と走査ミラー12の回動軸11には、一定の距離のオフセットが生じている。このため、走査ミラー12の回動に伴い、出射ミラー面13上において出射レーザ光の入射位置(光スポット)が移動することとなる。
【0044】
図6に示したように、パルス幅W1、W2で正負を変えた駆動パルスを駆動コイル20与えると、図5B、図5Cに示したように、反時計周りの左スキャン、時計周りの右スキャンが生じる。その結果、図8に示すように、出射光の走査角は反復的に変動する。駆動部3の質量により慣性モーメントを有することから、走査角[度]の変動は駆動パルスの変動に対して位相遅れが発生する。しかしながら、走査制御回路46によって、その位相遅れを調整することが可能であり、駆動部分の慣性モーメントに応じて適正に補正された値となっている。
【0045】
この補正により、駆動パルスとデータの取り込みのタイミング(後述する有効走査領域に相当するタイミング)が適正に維持され、安定的にデータを取り込むことができる。また、これとは反対に有効走査領域以外に相当するタイミングについても、位相遅れの値を適宜設定することで、把握することが可能となる。
【0046】
図7A(a)〜図7A(e)は、走査開口面側から走査ミラー12を見た図であって、基準位置から左スキャンして、また基準位置に戻ってくるまでの出射レーザ光のスポット13aを示している。図7A(a)〜図7A(e)に示すように、出射レーザ光のスポット13aは、出射ミラー面13上を反復するように移動する。尚、正常な状態であれば、右スキャンに振り切った場合でも、出射レーザ光のスポット13aは出射ミラー面13の端からはみ出て、反射散乱面14aに達することはない。
【0047】
図8は、走査ミラー12に正負の駆動パルスを与えたときの、走査角度と時間との関係を示している。ここで、走査角度が20°から−20°までの変位が図5Bに示す左スキャンであり、走査角度−20°から20°までの変位が図5Cに示す右スキャンに対応する。
【0048】
そして、図9には、図8で示すように走査ミラー12を反復的に揺動させたときの光検出器32の受光量の時間変化を示している。この図から分かるように、左スキャン及び右スキャンのそれぞれの中央、即ち、基準位置における光検出器32の受光量は大きく、左スキャンの始端(右スキャンの終端)と、左スキャンの終端(右スキャンの始端)といった、走査角度の絶対値が大きいときの光検出器32の受光量は小さくなる。
【0049】
これは、読み取り対象となるバーコードは平坦な面であるため、走査角の絶対値が大きくなると、一般に光のけられやコサインn乗則など、周辺光量落ちと呼ばれる現象が生じる。そのため、走査範囲の中で中央付近においては、得られる光量が最大となり、走査範囲の両端において光量が減少する。
【0050】
さらに、反復的な振れとなる走査の両端では、走査方向が反転するように切り替えられる。つまり、その両端では、速度が停止するまで下がるため、適正な周波数の信号が得られない。これらの理由により、走査の両端は、バーコード等の読み取りに使うことができない。その結果、対象物からの反射光を取り込むのに、安定で有効な領域A1,A2が基準位置を中心に、各スキャンの中央近辺に存在することになる。以下、この領域を有効走査領域A1,A2と称する。
【0051】
図10は、図9に示された光量変化を光検出器で取り込んで、電流/電圧変換やアナログ/デジタル変換等の処理を行い、さらに、二値化した後の信号を示したものである。この二値化において、前述した有効走査領域A1,A2における戻り光から生成された信号が取り込まれるように閾値が設定されているものの、有効走査領域A1,A2における信号が「1」として判断されていることが分かる。これに対して、有効走査領域A1,A2以外、特に走査角度が大きくなる左スキャン及び右スキャンの始端、終端近辺で受光した戻り光から生成された信号は、受光量が小さいため、本来「1」と判断されるべきところが「0」と判断される。以上が、光走査モジュールが安定的に設計仕様通りに駆動しているときの状態である。
【0052】
しかし、実際の使用現場においては、光走査モジュールに対して、温度や湿度などの環境変化が影響して、走査ミラー12の走査角が大きく変動する場合がある。
【0053】
上述したように、温度や湿度等が変動して設計仕様の範囲を超えた場合や経年変化により駆動部3に含まれるバネ19の弾性が劣化するなどの変化が生じる。この変化は、これまでと同じ所定の駆動パルスを駆動部3に印加しているにも関わらず、正規な左右スキャンの端(走査方向の切り返し位置)で停止せずにオーバーランして、走査ミラー12の揺動角が所定以上に回動してしまう現象が発生する。
【0054】
図7B(a)〜図7B(e)は、このような現象が発生した場合における出射ミラー面13上の出射レーザ光のスポット13aの変動を示している。この図7Bは、図7Aと同様に、走査ミラーが基準位置から左スキャンを行い、最大揺動角度に達した後、再度、基準位置に復帰するまでの過程を示している。
【0055】
前述したように、回転軸中心と出射ミラー面13との間には、オフセットが設けられていることから、出射ミラー面13上におけるスポットの移動量は、揺動角の増減に対応する。つまり、揺動角が基準位置に対して最大となった時に、出射レーザ光のスポット13aも基準位置からの変動量が最大となる。
【0056】
図7B(c)には、最も走査ミラー12の揺動角度が大きくなった状態を示し、そのときの出射レーザ光のスポット13aは、出射ミラー面13から外側に外れ、出射ミラー面13の左エッジ15aを超えて反射散乱面14a上に至る。その出射レーザ光は、反射散乱面14aで発散的に反射され、その一部が受光部6の光検出器32にて受光される。この時の光検出器32の受光量は、対象物からの反射光を受光したときの受光量とは異なり、著しく大きな値となる。
【0057】
図11は、揺動角度が大きくなった場合の光検出器32の受光量変化を示す。尚、この図11において、走査角が大きくなったところに相当するボトム部分の信号が一部抜けて図示されていないが、これは信号値が大きく変化して、記載できる範囲を超えているため図示できないことを意味する。
【0058】
つまり、走査ミラー12の揺動角(走査角)が所定の範囲を超えると、反射散乱面14a,14bによる散乱光が光検出器32に直接取り込まれる。反射散乱面14a,14bと光検出器32の距離は近いため、光検出器32が受光する散乱光の光量は非常に多く、光信号の値は非常に大きな値となることを示している。他方、走査角が所定の範囲を超えない正常動作のときは、前述した図9の場合と同様の値をとる。
【0059】
このように、光検出器32で受光する光信号という観点からすると、走査角が所定の範囲を超えるか否かによって、光検出器32における光信号は大きく変動し、走査角の変化を検出するに十分な変動量となっている。つまり、本来安定している状態であれば、図9に示すように、各スキャンの始端及び/終端では光検出器の受光量が最も少なくなる部分(時間)であるのに対し、この散乱光が後述する光信号を二値化する際の閾値以上に光量が大きいため、散乱光が入射したか否かの判断を迅速に行うことができる。
【0060】
図12には、図11に示した光信号をアナログ/デジタル(A/D)変換して所定の閾値に基づき二値化した二値化信号を示している。また、図13は、駆動パルスとデジタル信号のタイミングと位相の遅れを概念的に示すタイミングチャートである。
【0061】
図12から分かるように、左スキャン、右スキャンの各終了端周辺を示す2値化信号“0”の中に、反射散乱面14a,14bからの反射光に相当する2値化信号“1”(それぞれ左エッジ検出信号B1、右エッジ検出信号B2と称する)が現れる。
【0062】
この左エッジ検出信号B1及び右エッジ検出信号B2を検出するには、左スキャンを実行させる駆動パルス及び右スキャンを実行させる駆動パルスからのディレイ量を調整することで、左スキャン終端、右スキャン終端の時間帯を特定する。そして、その時間帯において、左エッジ検出信号及び右エッジ信号が出現するか否かを検出すれば良い(図13参照)。
【0063】
次に、左エッジ検出信号B1と右エッジ検出信号B2の検出方法について説明する。
図13は、駆動パルスと二値化信号の関係を示すタイミングチャートである。走査ミラー12は停止している状態の時には、走査範囲の中位位置に停止しているため、図示したように駆動パルスを印加した後、左右のエッジ検出信号を得るまでには、時間の遅れ(位相の遅れD1)が生じている。
【0064】
駆動パルスW1,W2を与えると、走査ミラー12は、連続的に左スキャン及び右スキャンを行い、出射光がバーコード上を横切るように走査する。そして、バーコードからの反射光が光検出器32によって受光される。その反射光の受光量に応じた二値化信号は、有効走査領域A1,A2においてバーコードに関する情報として取得される。
【0065】
さらに、有効走査領域A1,A2のそれぞれの後に続くエッジ検出信号B1,B2により、走査ミラー12の挙動に関する情報が取得される。駆動パルスに対応するデジタル信号が取得されるまでには、位相の遅れD1が生じている。この位相の遅れD1については、走査制御回路内において、慣性モーメント等の駆動部の設計に基づいて値が適正になるように微調整を行う。従来技術においては、有効走査領域A1,A2以外の二値化信号部分の情報については、全く利用されていなかったが、本願発明では有効走査領域A1,A2以外の領域において、左エッジ検出信号と右エッジ検出信号を検出するために用いている。
【0066】
次に、走査制御回路の観点から、前述した左エッジ検出信号及び右エッジ検出信号の処理について詳細に説明する。
図4に示したように、電気回路41は走査制御回路46を有している。走査制御回路46は、デジタル・シグナル・プロセッサ(DSP)等からなり、不揮発メモリ、各種レジスタ等を有する。デジタル・シグナル・プロセッサの内部の不揮発メモリには、製品仕様等に基づいて、C言語やアセンブリ言語等で書かれたソフトウェアをコンパイルしたデータや調整値が書き込まれている。
【0067】
図14に示すフローチャート及び図4に示す構成を参照して、走査制御回路46の動作について説明する。
電気回路41に電源が投入されると、各回路が起動する。走査制御回路46は、まず、起動時に初期パラメータを設定した後(ステップS1)、前述した走査開始信号を監視して、トリガー信号の有無に応じた動作を行う(ステップS2)。
【0068】
次に、駆動パルスの生成処理を行う(ステップS3)。この処理は、具体的には、トリガー信号を受け取った場合、その直後から一定期間、前述した駆動パルスを生成して、駆動部3に印加して、走査ミラー12の回動動作を行う。その後、光源駆動信号が光源回路45に入力され、生成された光源駆動電圧が光源部42に供給される。光源部42は、レーザ光を走査ミラー12の出射ミラー面13に出射する。走査ミラー12は、走査駆動しており、出射ミラー面13から走査するレーザ光がバーコードに向かって照射される。
【0069】
次に、バーコードで反射したレーザ光を戻り光として取り込み、取得されたデータを出力する(ステップS4)。具体的には、図4において前述したように、外部のコンピュータ51等からトリガー信号を受け取ると、受光部44の光検出器32が検出した信号を取得して予め定めた閾値を参照して、二値化信号を生成する。さらに、駆動パルスのカウンタ値から一定時間D1だけ遅らせて、さらに有効走査領域の幅A1,A2を反映させて、復号開始信号を生成する。即ち、復号開始信号は、図13に示した有効走査領域のタイミングを復号回路50に知らせるための信号である。
【0070】
走査制御回路46から復号回路50に、復号開始信号と二値化信号が出力される。この位相遅れのパラメータD1は、前述したとおり、駆動パルスに対する走査ミラーの応答の遅れを設定するためのものである。具体的には、前述の走査ミラー部分の回動部分の慣性モーメントに対応して設定されたものであって、回動部分の機械設計が決まった段階で決まるパラメータである。この位相遅れの値D1は、予め適切に調整がなされている。そして、走査ミラーの左スキャン、右スキャンのタイミングに同期した信号が発生して、前述の有効走査領域のタイミングを復号回路に伝えるものである。復号回路は、二値化信号の取り込みのためのバッファ等を有する。
【0071】
図14に示したように、データの取り込み・出力(ステップS4)処理を行なった後、走査制御回路46は、操作の終了処理を行なう(ステップS5)。ここで終了するか否かの判断を行う(ステップS6)、引き続き、読み取りを行う場合には(NO)、ステップS2に戻り、走査開始信号の監視を行う。読み取りを終了する場合は(YES)、リターンをして制御を上位に返す。
【0072】
図15に示すフローチャートを参照して、復号回路50の動作について説明する。
復号回路50は、電源を投入した後、パラメータ及びバッファの初期化を行い(ステップS11)、さらに復号開始信号に対応する入カポートの状態を繰り返し取り込み、復号開始信号の状態を監視する(ステップS12)。
【0073】
次に、復号開始信号がオンされると、オン期間の間、二値化信号の時間変化をバッファに取り込み(ステップS13)、復号開始信号の入力ポートの状態がオフになったか否かを監視する(ステップS14)。ここで、オフになると(YES)、復号処理に移行する(ステップS15)。この復号処理は、バッファに取り込まれた二値化データに対して、復号を試みる。この復号処理は、走査有効領域以外の時間の範囲内程度に完了する。
【0074】
次に、適正に復号されたか否かを判断し(ステップS16)、適正に復号されたならば(YES)、復号回路はバーコード等の対象物から得られた情報を復号データとして外部のコンピュータ等に出力する(ステップS17)。一方、復号に成功しなかった場合には(NO)、ステップS11に戻り、その二値化信号を破棄して、データを初期化し、再度ステップS12における復号開始信号を監視する状態に戻る。
【0075】
以上説明した復号回路50の動作は、各処理が順次行われるように説明したが、実際には、これらの処理が同時又は並列的に実行することができる。例えば、走査制御回路46と復号回路50は、独立した集積回路であって、異なるクロックにより、各回路の処理は独自に並列的に実行される。駆動回路及び光源回路についても同様である。
【0076】
次に、図16に示すフローチャートを参照して、図14に示した走査制御回路46におけるパラメータの初期設定の動作について詳細に説明する。
【0077】
まず、左スキャン・右スキャンのための駆動パルス幅について、最小値W1_min,W2_min,最大値W1_max,W2_max,初期値W1_ini,W2_ini等が設定される。さらに、出力ポートも初期化されて回路基板の状態を一意に規定する(ステップS21)。他にも、処理状態の初期設定Status1=1、位相遅れD1の設定、二値化の閾値Th1の設定、有効走査領域幅A1,A2の設定、出力ポートの初期化などを行う。
【0078】
ここで駆動パルス幅W1,W2の値は、初期値W1_ini,W2_iniに設定される。この駆動パルスの幅は、図6で示したように、駆動コイルの印加電圧のパルス幅に対応している。そして、走査制御回路46のクロック数等から換算して、駆動パルスの周期L1やレーザ光の走査の周期が所望の値となるように各パラメータが適正に設定されている。駆動パルス幅の最小値、最大値は、駆動パルスの幅を変動させるとき、その範囲を制限するためのものである。
【0079】
次に、駆動パルス生成用の変数の設定を行う(ステップS22)。即ち、左エッジ検出フラグF1=0、右エッジ検出フラグF2=0、駆動パルスの出力状態を示すフラグP1=0、駆動パルスのパルス幅等を計るためのカウンタN1=0、さらに初期パルス幅の設定W1=W1_ini、W2=W2_ini等の駆動パルスの生成(図14に示すステップS3)に用いるパラメータが初期状態に設定される(ステップS23)。
【0080】
その後、データの取り込み・出力(図14に示すステップS4)のためのパラメータとして、データ取得用バッファ等のクリア及びデータ取り込みフラグCap1=0が初期化される(ステップS23)。さらに、処理状態を示すパラメータStatus1を次の状態に遷移するように番号(Status1→2)を書き換え(ステップS24)、リターンする。
【0081】
ここで、処理状態を示すパラメータStatus1について説明する。
図17に示すように、Status1は、0以上の整数値を取り、値に応じて走査制御回路46、即ち、光走査モジュールの状態が一意に規定されている。本実施形態においては、1:パラメータの初期化前の状態、2:トリガー信号待ちの状態、3:バーコードの読み取りを実行している状態、4:読み取りの走査を終了した状態、5:予備のパラメータに設定されている。各状態の詳細の一例においては、図17の説明の項に記載する。勿論、これらの設定に限定されるものではなく、設計や仕様に応じて適宜変更することは可能である。
【0082】
この例では、図14に示した各処理ルーチンにおいて、これらのパラメータを確認した後、各処理を実行する。例えば、処理状態Status1>1とならない限り、パラメータの初期化等が完了していないため、後段の処理には移行せず、誤動作等が防止される。
【0083】
次に、図18に示すフローチャートを参照して、図14に示したステップS2における走査開始信号の監視の動作について説明する。
まず、パラメータStatus1が1を越えた設定値か否かにより処理状態を判断する(ステップS31)。ここで判断した処理状態が1以下であれば(NO)、まだ初期設定が完了せず、後段の処理への移行は不適切であると判断して、図14におけるパラメータの初期設定にリターンする。一方、Status1が1を越えた設定値であり、初期設定は完了した状態で後段への移行が適切と判断されたならば(YES)、次に走査制御回路の入力ポートの状態を取得する(ステップS32)。具体的には、電圧レベルが閾値を超えていないか(Low)、超えているか(High)を取得して、内部のレジスタ等に保存する。
【0084】
次に、走査開始信号SE1の入力ポートの状態がオンか否かを判断する(ステップS33)。入力ポートがオンかオフかは、電圧レベルのHigh、Lowに対応しているが、限定されるものではなく、システムの設計により適宜、定義してもよい。ここで、走査開始信号がオン(SE1=1)であると判断された場合には(YES)、処理状態を示すパラメータStatus1を後段の状態(Status1=3)に移行し(ステップS34)、リターンする。一方、走査開始信号がオフである場合は(NO)、SE1を0に切り換えた後、終了処理を行う状態(Status1=4)に移行し(ステップS35)、リターンする。これにより、走査開始信号SE1を検出している期間のみ、後段の読み取り等の処理状態に移行する。
【0085】
次に、図19に示すフローチャートを参照して、図14に示したステップS32における駆動パルスの処理の動作について説明する。
まず、処理状態を示すパラメータStatus1を確認する。即ち、パラメータStatus1>2か否かを判断する(ステップS41)。この判断で、パラメータStatus1>2であれば(YES)、走査開始信号SE1を受信し処理状態が適正であると判断して、駆動パルスの生成処理(ステップS42)に移行し、後述する駆動パルスの生成処理後に、リターンする。一方、パラメータStatus1>2でなければ(NO)、走査開始信号SEは未受信で処理状態が適正ではないと判断して、駆動パルスを生成することなく、リターンする。
【0086】
ここで、図20に示すフローチャート、図6及び図7を参照して、図19に示したステップS41における駆動パルス生成について説明する。
駆動パルスの生成にあたり、前述した駆動パルスの周期L1、左スキャンの駆動パルス幅W1、右スキャンの駆動パルス幅W2、タイマ値N1等に相当するレジスタを予め定義する。これのパラメータは、ステップS1において、すでに電気回路41が起動すると共に初期化されているものとする。
【0087】
駆動パルスの生成処理は、まず、タイマ値N1が周期L1の前半(N1≧L1/2)であるか否かを判断する(ステップS51)。この判断でタイマ値N1が周期L1の前半であれば(YES)、タイマ値N1がL1/4−W1/2からL1/4+W1/2の間にあるか否かを判断する(ステップS52)。
【0088】
このステップS52の判断において、タイマ値N1がL1/4−W1/2からL1/4+W1/2の間にある場合は(YES)、駆動パルスの出力状態を示すパラメータP1を左スキャンの状態(P1=−1)に設定する(ステップS54)。即ち、タイマ値Nが周期の1/4である点を中心としてパルス幅W1の範囲にある時は、左スキャンパルス生成のための設定を行う。一方、ステップS52の判断において、タイマ値N1がL1/4−W1/2からL1/4+W1/2の間にはない場合は(NO)、駆動パルスの出力状態を示すパラメータP1をパルスなしの状態(P1=0)に設定する(ステップS55)。
【0089】
また、ステップS51の判断で、タイマ値N1が周期L1の前半ではない、即ち後半であれば(NO)、タイマ値N1が3L1/4−W2/2から3L1/4+W2/2の間にあるか否かを判断する(ステップS53)。
【0090】
この判断で、タイマ値N1が3L1/4−W2/2から3L1/4+W2/2の間にある場合には(YES)、駆動パルスの出力状態を示すパラメータP1を右スキャンの状態(P1=+1)に設定する(ステップS56)。一方、タイマ値N1が3L1/4−W2/2から3L1/4+W2/2の間にない場合には(NO)、駆動パルスの出力状態を示すパラメータP1を駆動パルスなしの状態(P1=0)に設定する(ステップS57)。
【0091】
即ち、次のようになる。
【0092】
(1)N1 ≦ L1/2 且つ L1/4-W1/2 ≦ N1 ≦ L1/4+W1/2 → P1=−1
(2)N1 ≦ L1/2 且つ N1< L1/4-W1/2 → P1=0
(3)N1 ≦ L1/2 且つ N1 > L1/4+W1/2 → P1=0
(4)N1 > L1/2 且つ 3L1/4-W2/2 ≦ N1 ≦ 3L1/4+W2/2 → P1=1
(5)N1 > L1/2 且つ N1 < 3L1/4-W2/2→ P1=0
(6)N1 > L1/2 且つ N1 > 3L1/4+W2/2 → P1=0
次に、パラメータP1を設定した後、駆動回路47から駆動部43に駆動パルスDP1を出力する(ステップS58)。即ち、駆動回路47は、2つのポートを用いて、図6に示したように、左スキャン(P1=−1)の状態と、右スキャン(P1=+1)の状態であれば、それぞれ駆動電圧が反転するように、また、それ以外の状態(P1=0)であれば駆動電圧がゼロとなるように駆動信号DR1を出力する。このように、状態が3つとなるため、電気回路41上において、2つの出力ポートの状態DR1に応じて駆動パルスDP1が生成される。
【0093】
さらに、タイマ値N1に1を加算した後(ステップS59)、そのタイマ値N1が周期L1の時間を越えたか否か判断する(ステップS60)。この判断で、タイマ値N1が周期L1の時間に満たない場合には(YES)、そのままリターンし、N1がL1以上であれば(NO)、タイマ値N1をクリア(N1=0)して(ステップS61)、制御フローを上位のフローチャートにリターンする。
【0094】
次に、図21に示すフローチャートを参照して、図14に示したステップS4におけるデータの取り込み・出力の処理について説明する。
まず、処理状態を示すパラメータStatus1を確認する。即ち、Status1>2か否かを判断する(ステップS71)。この判断において、Status1>2でなければ(NO)、まだ初期化が完了していない状態、又はトリガー信号を受け取っていない状態であり、データは出力しないものと判断し(NO)、処理を終了して制御を上位にリターンする。一方、Status1>2である場合は、データの取り込み処理が適正であると判断し(YES)、前述した光検出器32により生成されたデジタル信号を取得する(ステップS72)。
【0095】
具体的には、図4に示したように、受光部6から得られた光電流PI1は、電流/電圧変換や増幅やノイズ処理等が施された後、アナログ/デジタル変換が行われ、10ビットのデジタル信号DS1に変換される。10ビットのデジタル信号は、走査制御回路46のポートを介して取り込まれる。
【0096】
次に、前述した図16に示したステップS1の起動時のパラメータの初期設定処理において、二値化の閾値Th1が設定されている。10ビットのデジタル信号DS1は、適当な補正処理等を経た後、この閾値と大小関係を比較して、二値化処理が行われる(ステップS73)。この二値化信号BI1は、パラメータとして保持される。この二値化信号BI1は、前述した駆動パルスDP1の出力に対応していることから、対象物上でレーザ光のスポットを走査したときの反射光の強弱に対応している。
【0097】
次に、復号開始信号の生成処理を行う(ステップS74)。この生成処理は、タイマ値N1が有効走査領域A1,A2内に存在する場合には、復号開始信号の状態S01を変え、二値化信号BI1が有効となっている走査領域のタイミングを復号回路50に知らせるためのものである。具体的には、まず、図13に示したように、二値化信号のためのタイマ値N2=N1−D1を定義する。このタイマ値N2は、前述した駆動パルス用のタイマ値N1が位相遅れD1の値に一致したとき、N2=0となるように定義されている。
【0098】
後述する式において必要があれば、N2をN1−D1に置き換えればよい。
【0099】
位相遅れD1は、前述した駆動パルスに対する走査ミラー12の応答の遅れを調整するためのものである。即ち、図13に示したように、駆動パルスに対して、取得される二値化信号の周期は共通するものの、タイミングずれが生じている。そこで、位相の遅れD1を定義しておくことで、そのタイミングずれを内部的に補正するためのパラメータとしている。例えば、周期の1/4の遅れが発生している場合は、位相の遅れD1=(周期L1)/4として、この値近辺で微調整をすればよい。この値は、製品の出荷時に初期値として与えられている。有効走査領域A1,A2の値も、二値化信号の取り込みの範囲と位置が最適となるように初期値が設定されている。
【0100】
図13に示すように、走査有効領域は、タイマ値N2を基準とすると、周期L1となっており、周期L1の1/4倍、3/4倍に相当する位置を中心に、幅A1,A2を有している。従って、タイマ値N2が、L1/4−A1/2からL1/4+A1/2までの範囲にある場合はSO1=1に設定する。
【0101】
さらに、タイマ値N2が、3L1/4−A2/2から3L1/4+A2/2までの範囲にある場合は、SO1=1に設定する。それ以外の範囲にある場合は、SO1=0とする。即ち、タイマ値N2が周期L1の1/4倍の位置を中心とする有効走査領域A1の範囲にある場合には、対象物の左スキャン中であると見なして、復号開始信号をオンにする(SO1=1)。
【0102】
タイマ値N2が、L1/4−A1/2からL1/4+A1/2までの範囲にある場合はSO=1に設定する。 さらに、タイマ値N2が、3L1/4−A2/2から3L1/4+A2/2までの範囲にある場合は、SO1=1に設定する。それ以外の範囲にある場合は、SO1=0とする。即ち、次のようになる。
(1)L1/4-A1/2 ≦ N2 ≦ L1/4+A1/2 → SO1=1
(2)3L1/4-A2/2 ≦ N2 ≦ 3L1/4+A2/2 → SO1=1
(3)N2が上記(1),(2)の範囲以外 → SO1=0
また、タイマ値N2が周期L1の3/4倍の位置を中心とする有効走査領域A2の範囲にある場合には、対象物の右スキャン中であると見なして、復号開始信号をオンにする(SO1=1)。それ以外の範囲にある場合には、光信号は対象物からのものではないと見なして、復号開始信号をオフにする(SO1=0)。前述したように、復号回路50は、SO1の状態を監視しており、有効走査領域A1,A2のタイミングに合わせて、二値化信号を取得して後号処理を行う。
【0103】
次に、エッジ検出信号の取得処理を行う(ステップS75)。この取得処理においても、前述したタイマ値N2を参照して、左エッジ検出信号B1、右エッジ検出信号B2の取得を行う。具体的には、タイマ値N2が、L1/2−B3/2≦N2≦L1/2+B3/2の範囲内にあり且つ、前述した二値化信号BI1がオンしている場合(BI1=1)は、左エッジ検出フラグF1を+1にする。また、二値化信号BI1がオフしている場合には(BI1=0)は、左エッジ検出フラグを−1にする。
【0104】
ここで、B3は、サンプル数であって、D1等よりも小さな値である。初期値としてB3=0と設定されている。この値は、検出の感度を上げたい場合には、変更すればよい。例えば、B3=2とすると、左エッジ検出を3回繰り返して実施するため、検出の感度を上げることができる。また、タイマ値Mは、L1を超えた時点で原点0にリセットされ、二値化信号用のタイマ値N2=N1−D1も同時にリセットされる。尚、説明のため、計算式には、マイナス符号を用いたが、タイマ値N1は0からL1の値の範囲となるようにとる(周期L1を法とする剰余演算を行う)。
【0105】
従って、タイマ値N1の大小比較をするとき、タイマ値やタイマ値と比較する値が負になったり、L1を超えたりする場合は、適宜、L1の整数倍を加除することで、0〜L1の範囲内となるよう適正化するものとする。また、タイマ値N2が、−B3/2から+B3/2の範囲内にある場合であって、前述した二値化信号BI1がオンしている場合(BI1=1)は、右エッジ検出フラグF2に1を設定する。
【0106】
また、二値化信号がオフになっている場合には、右エッジ検出フラグF2に−1に設定する。即ち、この処理では、図13に示すように、タイマ値がエッジ検出信号の領域にある場合は、対応するフラグF1,F2の値を−1又は+1に設定する。
各フラグの初期値は0であって、タイマ値がエッジ検出信号の領域内に存在しない場合には、フラグF1,F2の値は変更しない。従って、エッジを検出した時のみ、これらの値を0以外の値に変更する。後述するが、パルス幅W1,W2を変更する時には、これらのフラグの値が0以外の値を取ったときのみ変更される。
【0107】
図13において、二値化信号に対して、タイマ値N2を基準にみると、周期L1の1/4倍、3/4倍を中心とした領域には有効走査領域A1,A2が存在し、周期L1の0/4倍、2/4倍を中心とした領域には、エッジ検出信号B1,B2が存在していることになる。従って、走査制御回路は、位相遅れD1と駆動パルスの周期L1を基準に、二値化信号BI1あるいはデジタル信号DI1を監視することで、対象物からの光信号と走査角の双方を検出して制御することが可能となる。
【0108】
次に、復号開始信号・二値化信号の出力処理(ステップS76)に移行する。このステップS76においては、図2に示したように、二値信号である前述したBI1の値と復号開始信号SO1の値に基づいて、それぞれ、二値化信号と復号開始信号の出力ポートの状態を変更して出力する。上位のルーチンにおいてこの処理が繰り返されると、対象物の輝度信号が、順次、復号回路50に転送されることになる。このデータの取り込み・出力処理を完了した後、制御フローを上位のフローチャートにリターンする。
【0109】
次に、図22に示すフローチャートを参照して、図14に示したステップS5における駆動パルス出力の終了処理について説明する。
まず、処理状態を示すパラメータStatus1を監視する(ステップS81)、具体的には、Status1≧4を判断する。前述したステップS2における走査開始信号の監視処理のように、走査開始信号は、常時、状態が監視されている。走査開始信号がオンしている間は、Status1=3に設定されている。従って、Status1≧4の条件を満たしていないため、何も処理がなされずに制御フローを上位のフローチャートにリターンする。
【0110】
一方、走査開始信号がオフされると、前述したように、Status1=4に切り替わったならば(YES)、出力ポートの処理を行う(ステップS82)。この処理は、復号開始信号と二値化信号の出力を初期状態(SO1=0、BI1=0)に戻して、復号回路の動作を終了させる。
【0111】
次に、終了処理に移行する(ステップS83)。この終了処理においては、パラメータの初期化等を行い、必要に応じて信号を出力する。例えば、前述した左エッジ検出信号及び右エッジ検出信号の状態に応じた電気信号を外部のコンピュータ51に出力する。これにより、外部のコンピュータ51から光走査モジュール1の走査角が所定の値に達していることをモニタすることができる。例えば、走査角が所定の値に達していない場合、外部のコンピュータ51の操作により必要なコマンドを送信して、光走査モジュール1における異常の有無を確認することができる。
【0112】
次に、処理状態を示すパラメータStatus1を2に戻す。即ち、前述したとおり、トリガー信号TG1の待ち状態となるように値を戻す(ステップS83)。この後、処理を終了して制御フローを上位のフローチャートにリターンする(ステップS84)。
【0113】
以上説明したように、走査ミラー12の揺動角を検出する専用の検出器(検出コイル等)を搭載しなくても、バーコードからの反射光を受光する光検出器を流用して、走査ミラー12が所定の角度以上に揺動したことを検出することが可能となる。つまり、走査制御回路46において、左エッジ検出信号と右エッジ検出信号の双方を検出したか、いずれか一方のみを検出したか、又はどちらも検出しなかったかを判断し、さらには、左エッジ検出信号や右エッジ検出信号のパルス幅がどの程度かなどを求める。これらの結果により、走査ミラー12の揺動角(走査角)が所定の角度範囲を超えたか否か、どちらに揺動したときに所定の角度範囲を超えたのか、所定の角度範囲をどれだけ超えたのかを検出することが可能となる。
【0114】
従って、従来の構成であれば、走査ミラーやその駆動部が所定の角度以上に大きくなると、破損等が発生する虞があるため、機械的にストッパを設けるなどの対応が必要であった。本実施形態においては、走査ミラーの振れ角度(角度範囲)を光学的に検出して、反射散乱面が破損され得る角度を下回るように制御することで容易に信頼性の高い光走査モジュールを実現することができる。角度検出に用いる反射面は出射ミラー面の両側に配置され、それらの位置検出もバーコードを読み取るための光検出器を用いているため、既存の構成部位に対して簡易な加工を施すだけで容易に実現させることができる。
【0115】
次に、本願発明の第2の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現する光走査モジュールの概要について説明する。
【0116】
図23に示すように、本実施形態は、前述した第1の実施形態とは、走査の終了処理(ステップS95)の最後のステップが追加された点が異なっている。即ち、図22においてリターンする前に、駆動パルス幅の調整処理が追加されている。
即ち、処理状態を示すパラメータStatus1を監視する(ステップS81)。走査開始信号がオフされ、Status1=4に切り替わったならば(YES)、復号開始信号と二値化信号の出力を初期状態(SO1=0、BI1=0)に戻して、復号回路の動作を終了させる出力ポートの処理を行う(ステップS82)。次に、パラメータの初期化等を行い、必要に応じて信号を出力する終了処理を行う(ステップS83)。その後、トリガー信号TG1の待ち状態となるように、処理状態を示すパラメータStatus1を2に戻す(ステップS83)。
【0117】
そして、駆動パルス幅の調整処理(ステップS91)が行われ、制御フローを上位のフローチャートにリターンする。
【0118】
ここで、図24に示すフローチャートを参照して、前記ステップS91の駆動パルス幅の調整処理について説明する。
この駆動パルス幅の調整処理では、左エッジ検出フラグの値F1(フラグ値F1とする)、右エッジ検出フラグの値F2(フラグ値F2とする)に応じて、駆動パルス幅W1,W2の値を変更する。まず、左エッジ検出フラグの値F1=−1であるか否かを判断する(ステップS101)。この判断で、フラグ値F1=−1であれば(YES)、W1の値を(W1+(N3−1)*W1_max)/N3に置き換えて、フラグF1=0に戻し(ステップS102)、次の右エッジ検出フラグにおけるフラグ値F2の確認(F2=−1)を行う(ステップS105)。ここで、N3は、重みのパラメータであり、正の整数値として設定されている。このため、N3の値が大きい場合には、パルス幅W1が大きく変化する。即ち、N3の値を大きくすると、感度(追従性)が高くなる反面、安定性という観点では劣ることになる。このN3は、駆動パルス幅が安定して制御できるように予め適正化されている。
【0119】
一方、ステップS101において、フラグ値F1=−1には該当しない場合(NO)、フラグ値F1=1か否かを判断する(ステップS103)。この判断で、フラグ値F1=+1の時には(YES)、W1の値を(W1+(N3−1)*W1_min)/N3に置き換えて、フラグ値F1=0に戻し(ステップS104)、右エッジ検出フラグの確認(ステップ105)に移行する。一方、F1=+1ではない場合(NO)、即ち、フラグ値F1は、1又は−1ではなく、フラグ値F1=0となる。このフラグ値F1=0の時には、W1の値は維持されたまま、ステップS105に移行する。
【0120】
前述したW1の値の置き換えは、左エッジが検出されなかった場合(F1=−1)には、W1の値は最大値W1_maxに近づくことになる。一方、左エッジが検出された場合(F1=+1)には、W1の値は、最小値W1_minに近づくことになる。最大値W1_maxやW1_minに近づく速度は、N3の値に依存するが、このN3の値は、予め初期値として最適化されている。さらに、左エッジの検出自体を行っていない場合は(F1=0)、パルス幅W1は変更しない。これと同様の処理が右エッジ検出フラグF2に対しても実施される。
【0121】
次に、ステップS105においては、右エッジ検出フラグにおけるフラグ値F2=−1であるか否かの判断を行う。
【0122】
この判断において、フラグ値F2=−1の場合には(YES)、W2の値を(W2+(N3−1)*W2_maX)/N3に置き換えて、フラグ値F2=0に戻し(ステップS106)、走査の終了処理のサブルーチンにリターンする。一方、前記判断において、フラグ値F2=−1ではなかった場合には(NO)、次に、フラグ値F2=1か否かを判断する(ステップS107)。この判断でフラグ値F2=1であれば、W2の値を(W2+(N3−1)*W2_min)/N3に置き換えて、フラグ値F2=0に戻し(ステップS108)、走査の終了処理のサブルーチンにリターンする。また、フラグ値F2=1ではない場合には(NO)、即ち、フラグ値F2は、1又は−1ではなく、フラグ値F2=0となる。このフラグ値F2=0の時には、W2の値は維持されたまま、走査の終了処理のサブルーチンにリターンする。
【0123】
前述したような一連の置き換え処理によって、左エッジが検出された場合は、左スキャンの駆動パルスの幅W1が最小値W1_minに近づく。一方、左エッジが検出されなかった場合には、駆動パルスの幅W1が最大値W1_maxに近づく。また、右エッジが検出された場合には、右スキャンの駆動パルスの帽W2が最小値W2_minに近づく。一方、右エッジが検出されなかった場合には、駆動パルスの幅W2が最大値W2_maxに近づく。さらに、エッジの検出自体を行っていない場合には、W1,W2の値は変更されず、そのまま維持される。
【0124】
走査制御回路46は、図14のフローチャートに従った制御処理を繰り返し実行する。従って、走査ミラー12に入射するレーザ光の移動範囲は、反射散乱面14a,14bのエッジの範囲に正確に収束する動作となる。即ち、走査ミラーの走査角の絶対値がハウジングに設けられた光学部品の位置に応じて調整されることとなり、走査ミラー12の振幅が光学的に正確に制御されることになる。
【0125】
走査角の情報という観点からは次のようにいうことができる。すなわち、走査角が所定の範囲を超えているかどうかという機械的な位置(走査角度)の情報(図5A〜5C)は、反射散乱面14a,14bからの反射光の有無(反射光の時間変化)という形で光学的な情報に変換される。続いて、走査角の情報は、光検出器とアナログ回路を経由することで、走査の両端部におけるアナログ信号の強弱という形で、電気的な情報に変換される(図9、図11)。さらに、アナログ/デジタル変換回路(図10、図12)と前述の判定処理を経由することにより、フラグF1,F2の変化というソフトウェア的な情報に変換される。ここで、フラグF1,F2の変化(時間)は、フラグが変化するタイマ値やパルス幅として取得できる(図13)。他方、上述したように、駆動周波数(駆動パルスの時間変化、あるいは、走査速度)は設計によって規定されている(図6)。従って、フラグの変化という情報(時間)と駆動周波数(速度)から、走査角・位置(=時間×速度)を光学的に正確に制御できることになる。
【0126】
また、レーザ光の入射位置は、前述したように、回転軸11を中心に対して出射ミラー面13のオフセット量と出射ミラー面13の寸法によって規定されている。その位置関係は、回動動作中であっても、軸受部10を介して部品位置が規定されることから、角度・位置関係が正確に規定される。従って、従来の検出コイルを用いた構成に比べると、位置関係が正確に規定されることから、走査角は格段に正確に制御できることになる。温度・湿度変化があった場合であっても、機械的な走査角を光学的に制御していることから、環境条件によって生じた変化を打ち消して補正するように機能する。
【0127】
さらに、本実施形態では、共振現象を必ずしも用いる必要がない。即ち、駆動周波数は前述したとおり、走査制御回路46によって生成された駆動パルスの周波数によって制御されている。従って、必要であれば、駆動周波数を変更することも可能である。さらに、前述した走査の終了処理(ステップS5)に、動作異常処理を加えてもよい。即ち、駆動パルス幅W1,W2が、すでに最大値W1_max,W2_max程度であるにもかかわらず、左エッジ検出信号B1、右エッジ検出信号B2が取得できない時には、動作異常が生じているものとして、エラー信号を外部のコンピュータ51に転送して、光源駆動信号OD1を切り替え、光源部4のレーザ光の出力を停止してもよい。
【0128】
このように、本実施形態によれば、走査ミラー12の揺動角が所定以上揺動したことを検出した場合には、駆動パルスの幅を制御して、走査ミラー12の揺動角が所定以上揺動しないように制御することが可能となる。さらに、本実施形態によれば、走査ミラー12の揺動角が所定の値に達しない場合には、駆動パルスの幅を制御して、走査ミラー12の揺動角が小さくなりすぎないように制御することが可能となる。
【0129】
尚、本実施形態では、反射散乱面14の形成位置を、走査ミラー12が破損しない程度の回動を検出できるような位置に形成したが、これに限定されない。例えば、走査角度の基準位置からの増加に伴い低下する光検出器32の受光量が、データ取り込み用として使用できないほど低くなってしまう領域(走査角度)に達することを検出できるような位置に形成してもよい。
【0130】
また、本実施形態では、走査ミラー12を樹脂成型品とし、出射ミラー面13の周囲に設けた抜き勾配をそのまま反射散乱面14として利用しているため、走査ミラー12の成型のし易さ(成型時の良品率の改善)と反射散乱面14を形成するための工数減・部品点数減を両立できている。
【0131】
以上説明した光走査モジュールについては、回転軸11をハウジング2aに固定し、軸受部10を走査ミラー12と一体化したが、必ずしもこの構成に限定されるものではない。例えば、回転軸11を走査ミラー12に固定し、軸受部10をハウジング2aに固定しても、走査ミラー12の位置を正確に規定することができる。
【0132】
また、走査ミラー12の軸受部10に付勢力を与えてもよい。これにより、走査ミラー12の位置をより正確に規定することができるため、走査角の精度をより正確に制御することができる。
【0133】
また、本実施形態の光走査モジュールは、バーコード等のシンボルマークの読み取りに好適する。例えば、JAN、EAN、Code39、Codabar、ITF等のバーコードの読み取りに好適する。また、前述した復号回路50に搭載されたソフトウェアを書き換えることで、あらゆる物体検出等に応用が可能である。例えば、自動車、人物等の移動の検出や、防犯・監視装置等を構成することができる。
【0134】
また、本発明の光走査モジュールは、あらゆる機器に搭載できる。例えば、無線装置、自動車、船舶、半導体製造装置、自動販売機、カード認識装置、ハンドヘルドバーコード読み取り装置等である。また、本実施形態においては、レーザ光を650nmの波長としたが、必ずしもこの限りではない。即ち、400nm近辺の光源としてもよいし、800nm以上の赤外光を用いてもよい。この場合、前述したバンドパスフィルタやミラーの透過率・反射率等を使用波長に応じて変えればよい。この構成により、監視センサや、赤外用の特殊インクを用いた印刷物を自動認識する等の応用が可能となる。
【0135】
また、本発明の光走査モジュールによれば、従来から用いていた検出コイルやその検出回路等が不要である。従って、従来の構成に比べて、より小型の光走査モジュールを構成することができる。従って、携帯情報端末装置、携帯電話等、バッテリー駆動タイプの機器への搭載に好適する。
【0136】
さらに、本発明の光走査モジュールによれば、光走査モジュールの走査角を、より正確に検出して制御できる。従って、温度・湿度が変動する屋外環境での使用に好適する。例えば、宅配業、運送業や、屋外での営業活動で用いる情報機器への搭載に好適する。
【0137】
以上説明したように、走査対象物の輝度信号の取得に用いられている光検出器を、走査ミラーの走査角の検出にも応用し、その光検出器からの出力に基づいて、走査ミラーの走査角を検出することが可能となる。そして、走査範囲(走査角)を検出するための検出コイル等の部品を新たに設ける必要がなくなり、部品点数の増加を防止することができる。
【0138】
さらに、走査ミラーの走査角を、従来のような検出コイル等を用いた走査速度等の間接的な物理量ではなく、走査ミラーの揺動角の絶対位置を光学的に検出しているため、走査角・揺動角のばらつきや時間変動・経時変化を低減できる。これにより、温度・湿度等の環境変化の影響を受けにくくなる。
【0139】
以上説明した光学的振幅検出方法及び振幅制御方法は、以下の発明を含んでいる。
(1)光源部から発せられたレーザ光を走査対象に向けて反射させる第1の反射面を有する出射ミラー部と、出射ミラー部を揺動させるミラー駆動部と、走査対象からの反射光を集光させ、かつ反射させる第2の反射面を有する戻りミラー部と、戻りミラー部で集光及び反射させられた走査対象からの反射光を受光する受光部と、出射ミラー部が所定の角度を超える揺動角に達した際に、光源部からのレーザ光が照射される位置に形成される第3の反射面と、を有する光学的走査装置における出射ミラーの揺動角検出方法において、光源からレーザ光を発光させるステップ1と、ミラー駆動部に駆動パルスを与えて出射ミラー部を揺動させるステップ2と、走査対象からの反射光を受光するステップ3と、受光した反射光量に基づき、デジタル信号を得るステップ4と、得られたデジタル信号の中から、出射ミラー部の揺動角を検出するための領域(揺動角検出領域)を抽出するステップ5と、揺動角検出領域から、第3の反射面からの反射光に対応する情報の有無を検出するステップ6と、を有することを特徴とする出射ミラーの揺動角検出方法。
(2)前記ステップ5の揺動角検出領域が、出射ミラーの揺動角が所定以上の光量落ちが発生する角度に達している範囲に設けられていることを特徴とする(1)項に記載の出射ミラー揺動角検出方法。
【0140】
(3)前記ステップ5の揺動角検出領域が、有効走査領域以外の領域であることを特徴とする請求項1記載の出射ミラー揺動角検出方法。
【0141】
(4)前記ステップ5において、揺動角検出領域から、第3の反射面からの反射光に相当する信号を検出しないとき、出射ミラー部の揺動角を増加させるように駆動パルスを切り替えることを特徴とする揺動角制御方法。
【0142】
(5)前記ステップ5において、揺動角検出領域から、第3の反射面からの反射光に相当する信号を検出したとき、出射ミラー部の揺動角を減少させるように駆動パルスを切り替えることを特徴とする揺動角制御方法。
【0143】
(6)前記(4)項及び(5)項に記載の揺動角制御方法において、駆動パルスの期間あるいは駆動電圧を変化させることで、駆動パルスを切り替えることを特徴とする揺動角制御方法。
【図面の簡単な説明】
【0144】
【図1A】図1Aは、本発明の第1の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現する光走査モジュールの内部構成例を示す図である。
【図1B】図1Bは、本発明の第1の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現する光走査モジュールの外観構成例を示す図である。
【図2】図2は、図1に示す光走査モジュールにおける光学部品を抜粋して示す図である。
【図3A】図3Aは、実施形態における走査ミラーを斜め前方から見た外観図である。
【図3B】図3Bは、実施形態における走査ミラーを斜め後から見た外観図である。
【図3C】図3Cは、実施形態における走査ミラーを正面から見た外観図である。
【図3D】図3Dは、実施形態における走査ミラーの駆動部を上面から見た外観図である。
【図4】図4は、実施形態における制御系のブロック構成を示す図である。
【図5A】図5Aは、走査ミラーによる左スキャンと右スキャンについて説明するための図である。
【図5B】図5Bは、走査ミラーの左スキャン状態を概念的に示す図である。
【図5C】図5Cは、走査ミラーの右スキャン状態を概念的に示す図である。
【図6】図6は、定常状態における駆動コイルの印加電圧における時間変化を示す図である。
【図7A】図7A(a)乃至7A(e)は、所定範囲内にある時の走査ミラーの走査角に対応するレーザ光の入射位置の変化の状態を示す図である。
【図7B】図7B(a)乃至図7B(e)は、所定範囲を越えた時の走査ミラーの走査角に対応するレーザ光の入射位置の変化を示す図である。
【図8】図8は、定常状態における走査ミラーの走査角の時間変化を示す図である。
【図9】図9は、定常状態における受光する光量の時間変化を示す図である。
【図10】図10は、検出された二値化信号における有効走査領域を概念的に示す図である。
【図11】図11は、走査ミラーの走査角が所定範囲を越えた時の受光する光量の時間変化を示す図である。
【図12】図12は、走査ミラーの走査角が所定範囲を越えた時に得られる有効走査領域及び走査角検出信号を概念的に示す図である。
【図13】図13は、駆動パルスとデジタル信号のタイミングと位相の遅れを概念的に示すタイミングチャートである。
【図14】図14は、走査制御回路の動作について説明するためのフローチャートである。
【図15】図15は、復号回路の動作について説明するためのフローチャートである。
【図16】図16は、走査制御回路におけるパラメータの初期設定の動作について説明するためのフローチャートである。
【図17】図17は、処理状態を示すパラメータStatus1について説明するための図である。
【図18】図18は、図14に示したステップS2における走査開始信号の監視の動作について説明するためのフローチャートである。
【図19】図19は、図14に示したステップS32における駆動パルスの処理の動作について説明するためのフローチャートである。
【図20】図20は、図19に示したステップS41における駆動パルス生成について説明するためのフローチャートである。
【図21】図21は、図14に示したステップS4におけるデータの取り込み・出力の処理について説明するためのフローチャートである。
【図22】図22は、図14に示したステップS5における駆動パルス出力の終了処理について説明するためのフローチャートである。
【図23】図23は、本発明の第2の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現するフローチャートである。
【図24】図24は、図23に示したステップS91の駆動パルス幅の調整処理について説明するためのフローチャートである。
【符号の説明】
【0145】
1…光走査モジュール、2…ハウジング、3…駆動部、4…光源部、5…折り返しミラー部、6…受光部、10…軸受部、11…回転軸、12…走査ミラー、12a…集光ミラー面(戻りミラー部)、13…出射ミラー面(出射ミラー部)、14,14a,14b…反射散乱面、23…半導体レーザ素子、24…コリメータレンズ、25…折り返しミラー、26…出射開口部、32…光検出器。
【技術分野】
【0001】
本発明は、情報を光学的に読み取る光走査モジュールにおける光学的振幅検出方法及び振幅制御方法に関する。
【背景技術】
【0002】
一般に、バーコード等のシンボル情報を光学的に読み取る装置には、光源として半導体レーザ素子を用いて、出射された光束(レーザ光)を走査させてバーコードに照射し、その戻り光から情報を得る光走査モジュールがある。近年の携帯電子機器に搭載するための、小型の光走査モジュールが普及している。バーコードを筆頭とするシンボル情報は、通常、光学的に情報が認識可能な記号化された情報であるが、他にも、画面化された自動車や人物等の陰影情報や、走査型レーザ顕微鏡により観測したい試料等における物体情報であってもよい。
【0003】
これらのレーザ光を走査させる公知な方式としては、一枚のミラーを揺動させる走査ミラー方式や、多面ミラー(ポリゴンミラー)を回転させる方式が知られている。例えば、特許文献1には、板ばねと走査ミラーを用いた走査機構が提案されている。また特許文献2は、同様に走査ミラー等を用いた走査機構であるが、駆動部分の共振現象を利用して振幅制御する方式である。ポリゴンミラーを回転させる方式は、回転モータを別途配置する必要があり駆動部が大型化するため、POSレジスタなどの据え置き型の電子機器に搭載されている。
【0004】
これに対して、上述の走査ミラー方式は、マグネットと駆動コイルを配置することで走査機構を構成できるため、小型軽量化を実現するものとして有利であった。そのため、携帯機器へ搭載する光走査モジュールとしては、走査ミラー方式が一般に普及している。
【0005】
こうした光走査モジュールは、電子機器のうち、携帯情報端末などの情報機器へのデータ入力の用途に適しており、機器内に組み込まれ、物流、製造業、小売業等に広く普及している。また、同光走査モジュールを物体認識センサとして用いることで、例えば、車間センサや安全・防犯装置等への応用も可能となっている。
【特許文献1】米国特許番号US6,360,949
【特許文献2】米国特許番号US6,981,645
【発明の開示】
【発明が解決しようとする課題】
【0006】
前述した光走査モジュールにおいては、その機構上、温度・湿度等の外部環境の変化により、走査角(出射光が走査する角度)の変化や材料の経時変化が生じている。例えば、特許文献1、2等によれば、共振ばね等を利用している。温度又は湿度などの外部環境の変化や、ばね材料の製造ロット、長年の使用等により、共振ばねのヤング率やポアソン比等の材料特性は変化する。さらに、共振ばねの摩擦粘性係数も変化する。さらに、ばね等の吸水膨張係数、温度による線膨張係数等に応じて形状も変化する。そのため、同じ大きさの駆動パルスを与えたとしても走査ミラーの揺動角が変動するという問題があった。
【0007】
特に、設計仕様で決められた所定の範囲の揺動角を越えるような揺動を走査ミラーに行わせると、衝撃により光走査モジュールが損傷したり正常な信号が取得できなくなるという不具合がある。このような背景により、走査モジュールには、走査ミラーの振幅、すなわち揺動角が所定の範囲を超えないようにするため、検出コイルなどの揺動角度検出機構を設けている。この揺動角度検出機構で走査ミラーの揺動角度を検出し、所定の範囲の揺動角度を超えるようであれば、走査ミラーの揺動角度が小さくなるように制御することで、光走査モジュールの信頼性や耐久性を高めている。
【0008】
しかしながら、揺動角度検出機構として専用のセンサや調整機構を設けることから、部品点数が増加し、結果的に製品コストが上昇し、製品を小型化することが難しくなってしまうという問題があった。
【0009】
そこで本発明は、簡易な構成で且つ安価なコストで走査ミラーの揺動角度範囲を検出し、この揺動角度範囲制御する光学的振幅検出方法及び振幅制御方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するために、本発明に従う実施形態は、走査ミラーを揺動するミラー駆動部と、前記走査ミラーに設けられ、光源部から出射されたレーザ光を走査対象に向けて反射する第1の反射面を有する出射ミラー部と、前記走査ミラーの前記出射ミラー部の周囲に設けられ、前記走査対象を含む外部からの戻り光を集光し、且つ反射する第2の反射面を有する戻りミラー部と、前記戻りミラー部で集光されて反射された戻り光を受光する受光部と、前記走査ミラーが所定の角度を超える揺動角に達して前記光源部からのレーザ光が前記出射ミラー部から外れて照射された際に、該外れたレーザ光が照射される位置に形成される第3の反射面と、を有する光学的走査装置における出射ミラー部の揺動角検出方法において、前記光源から前記レーザ光を発光させる発光ステップと、前記ミラー駆動部に駆動力を与えて、前記出射ミラー部を揺動させるミラー揺動ステップと、前記受光部によって戻り光を受光するステップと、前記受光部での受光量から、第3の反射面からの反射光の有無を検出する検出ステップと、を有する揺動角検出方法を提供する。
【0011】
また、光源部から発せられたレーザ光を走査対象に向けて反射させる第1の反射面を有する出射ミラー部と、前記出射ミラー部を揺動するミラー駆動部と、前記走査対象を含む外部からの戻り光を集光させ、且つ反射させる第2の反射面を有する戻りミラー部と、前記戻りミラー部で集光及び反射させられた前記戻り光を受光する受光部と、前記出射ミラー部が所定の角度を超える揺動角に達した際に、前記光源部からのレーザ光が照射される位置に形成される第3の反射面と、を有する光学的走査装置における前記出射ミラー部の揺動角検出方法において、前記光源部からレーザ光を発光させる発光ステップと、前記ミラー駆動部を駆動させて、前記出射ミラー部を揺動させるミラー揺動ステップと、前記戻り光を受光する受光ステップと、受光した前記戻り光の光量から、前記第3の反射面からの反射光の有無を検出する検出ステップと、前記第3の反射面からの反射光の有無に応じて、前記ミラー駆動部の駆動力を制御する駆動制御ステップと、を有し、出射ミラー部の揺動角を制御する揺動角制御方法を提供する。
【発明の効果】
【0012】
本発明によれば、簡易な構成で且つ安価なコストで走査ミラーの揺動角度範囲を検出し、この揺動角度範囲制御する光学的振幅検出方法及び振幅制御方法を提供することができる。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して本発明の実施形態について詳細に説明する。
まず、図1A,1Bに示す本発明の第1の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現する光走査モジュールの概要について説明する。この光走査モジュール1は、大別して、基材となるハウジング2(2a,2b)、光源部4、走査ミラー12、駆動部3、折り返しミラー部5、受光部6、制御部として機能する回路基板8及び、外部出力端子9等により構成される。
【0014】
この光走査モジュール1において実現された外寸は、16.387cm3(1立方インチ)以下程度の容積である。この光走査モジュール1は、光学読み取り機能の1ユニットとして、種々の電子機器に搭載できるように、例えば、ハウジング2a下面に固定用ねじ穴等が形成される。搭載可能な電子機器としては、例えば、携帯端末機器、ハンドヘルドスキャナ、POSコンピュータ及び通信機器等があり、それぞれに筐体内に搭載され、その機器の制御部により制御される。
【0015】
次に、光走査モジュール1の構成について詳細について説明する。図2には、図1Aに示した光走査モジュールにおける光学部品を抜粋して示している。
【0016】
光源部4は、ハウジング2aに実装されており、光束(ビーム光)としてレーザ光を発生させる半導体レーザ素子23、コリメータレンズ24及び出射開口部26等により構成される。半導体レーザ素子23は、波長約650nmのレーザ光を発生し、レーザ光はコリメータレンズ24及び出射開口部26を経由することで整形される。コリメータレンズ24と出射開口部26の形状は、読み取り対象となるバーコード等のシンボルマークや読み取り距離に応じて、読み取りが最適となるように調整及び設定されている。具体的には、レーザ光のビームウェストまでの距離が出射開口部から200mm程度、ビームウェストの直径が0.3mm以下程度となるように調整されている。
【0017】
折り返しミラー25は、その反射面が出射開口部26を経由して整形されたレーザ光の光軸に対して所定角度をなすように、ハウジング2aに対して固定され、当該レーザ光を走査ミラー12に向けて反射させる。
走査ミラー12は、駆動部3と軸受部10と一体的に接合されており、ハウジング2aに植設された回転軸11を中心に回転自在となっている。
【0018】
図3Aに示すように、走査ミラー12の前面には、その中央付近に平面で矩形形状の出射ミラー面(第1の反射面)13と、その出射ミラー面13を取り囲むように、非球面で且つ凹面状に湾曲した集光ミラー面12a(第2の反射面)とが形成されている。さらに、出射ミラー面13の揺動方向両端(図3Aにおいて、出射ミラー面13の左右端)に、本実施形態の特徴となる微細な凹凸を有する反射散乱面(第3の反射面)14a,14bが形成されている。
【0019】
揺動されている出射ミラー面13は、折り返しミラー25から入射されたレーザ光を読み取り対象となるシンボルマークに向けて走査光として出射する。集光ミラー面12aは、シンボルマークで反射された戻り光を集光させて、その光束を後段の光検出器32に向けて反射させる。集光ミラー面12aは、反射光を集光させた焦点が光検出器32の受光面の近傍に位置するように、その凹面状態が加減されている。
【0020】
反射散乱面14a,14bは、折り返しミラー25からレーザ光が入射したときに、その表面に形成された微細な凹凸により、四方へ散乱するように反射させる。つまり、出射ミラー面13は、レーザ光を光束のまま反射させて、シンボルマークに出射することに対して、反射散乱面14a,14bは、レーザ光を散乱光として反射している。
【0021】
また、図3Bに示すように、走査ミラー12の背面には、ハウジング2aに植設された回動軸11と嵌合し、回動軸11にまわりに所定の回動範囲で摺動自在に支持されるすべり軸受10が設けられている。
【0022】
出射ミラー面13は、軸受(走査ミラーの回動中心)10に対してオフセットされて形成されているため、出射ミラー面13の角度を変化させようと走査ミラー12を回動させると、出射ミラー面13の位置は徐々にずれていてくことになる。このため、出射レーザ光が出射ミラー面13に照射されていても、走査ミラー12の揺動角が所定の範囲(ここでは、走査ミラーを安定して操作でき、且つ、破損しない程度と定義する)よりも大きく揺動した場合には、出射ミラー面13から出射レーザ光のスポットが外れるようにしている。つまり、出射ミラー面13の横幅(図3Cの左右方向)の長さは、走査ミラー12の揺動角が所定の範囲内で回動している間、出射レーザ光スポットが出射ミラー面13から外れない程度の長さに設定している。
【0023】
走査ミラー12は、射出成型により、出射ミラー面13、集光ミラー面12a、反射散乱面14a,14b等を一体的に形成した樹脂成形部品として構成されている。尚、走査ミラー12の後方には、さらに、軸受10と、走査ミラー12に回動軸11まわりの回動力を伝えるための駆動部3が接着により固定されている。
【0024】
この駆動部3は、図3Dに示すように、駆動コイル16と、板ばね19と、支持ばね保持部材17、ヨーク上に配置されたマグネット18と、により構成される。本実施形態では、走査ミラー12側に駆動コイル16を、ハウジング2a側にマグネット18をそれぞれ固定し、駆動コイル16に後述する回路基板より所定の駆動パルスを印加することで電磁力を発生させて走査ミラー12を揺動させる、いわゆるムービングコイル方式の駆動モータである。反対に、走査ミラー側にマグネット、ハウジング側に駆動コイルを配置した、いわゆるムービングマグネット方式の駆動モータといった公知の駆動モータも採用することが可能である。
【0025】
このように、駆動部3におけるマグネット18と駆動コイル16の位置を適正に配置し、且つ所定の駆動パルスを駆動コイルに印加することで、駆動部3にトルクが発生し、走査ミラー12を回動(揺動)させることができる。出射ミラー面13で反射して出射されたレーザ光(出射光)は、図1Bに示すハウジング2aに設けられた走査開口面L(図2参照)を通過して外部に出射される。この出射ミラー面13で反射されるレーザ光の光軸方向が走査開口面の垂線方向に対して略一致するときの走査ミラーの角度を基準(揺動角0°、かつ、走査角0°)として、その基準からの走査ミラーの機械的な回動角度を揺動角と称する。揺動角は、ある基準位置からの走査ミラーの機械的な角度変動量であるのに対し、出射角は、出射光の光学的な角度変動量を示す。幾何光学によれば光の入射角と反射角は一致するので、走査角は揺動角の2倍となる。例えば図1Aで、走査ミラーを基準位置から±10度回転させると、出射光(走査光)は±20度変動する。
【0026】
また図2に示す走査開口面L(走査幅)は、出射ミラー面13が揺動する角度により規定され、その角度は衝突による走査ミラー12及び駆動部3への破損を防止する範囲内に設定されている。
【0027】
ここで反射散乱面14a,14bについて、さらに詳細に説明する。
図3B,3Cにおいて、走査ミラー12は、Z軸方向に沿って延びる軸11を中心に揺動可能とする。よって、出射ミラー面13と集光ミラー面12aが揺動する方向は、Y軸方向に沿った左右となる。出射ミラー面13と集光ミラー面12aの揺動方向における境界部分15a,15bを越えて反射散乱面14a,14bが設けられている。
【0028】
より詳細に説明すると、図3Aにおいて、平坦な出射ミラー面13が集光ミラー面12aから突出するように形成されている。その出射ミラー面13と集光ミラー面12aとの間を、出射ミラー面13の垂線に対する角度θ、例えば30°を超える程度の傾斜で繋がるように形成される平坦な面が反射散乱面14a,14bとなる。この反射散乱面14a,14bの表面は、微細な凹凸に加工されている。
【0029】
走査ミラー12を樹脂成形で形成する際に用いる金型構造において、成型時に金型から走査ミラー12を離型する方向が、出射ミラー面13に対して略90°となるように設定されている。このとき、集光ミラー面12aに対して凸形状となっている出射ミラー面13の部分の周囲については、離型性を高めるため、30°以上の抜き勾配としての傾斜部を施している。そして、この傾斜部の表面には砂目地状の加工が施されている。
【0030】
本実施形態では、走査ミラーの成型後に、出射ミラー面13と集光ミラー面12aと抜き勾配の傾斜部にそれぞれ、金の真空蒸着を施し、この抜き勾配の傾斜部における傾斜面を反射散乱面14a,14bとして利用している。
【0031】
この走査ミラー12が揺動している際に、半導体レーザ素子23からのレーザ光が入射されると、図3Cに示すように、レーザ光のスポットは出射ミラー面13内を移動する。このレーザ光のスポットは、走査ミラー12が設計仕様で決められている所定の角度範囲内で揺動していれば継続される。しかし、外部からの衝撃や外部の環境変化など何らかの理由で走査ミラー12が所定の角度範囲を超えて回動した場合には、レーザ光のスポットは、出射ミラー面13の外側に設けられた反射散乱面14a,14bに照射される。
受光部6は、ハウジング2a上に固定されており、バンドパスフィルタ33と受光開口部31と光検出器32等により構成される。
【0032】
バンドパスフィルタ33は、半導体レーザ素子23から出射されるレーザ光の波長を基準として設定される。本実施形態では、波長が650nm近傍の光のみを通過させるように設定されている。このため、読み取り対象となるシンボルマークで反射した光(戻り光)は、レーザ光のみがバンドパスフィルタ33を透過し、それ以外の波長の光は遮断される。
【0033】
これにより、戻り光のみがバンドパスフィルタ33を通過し、受光開口面31を経由して光検出器32に入射する。光検出器32は、光電変換面を有し、入射する光の強弱に応じた光電流を生成する。光検出器32は、図4に示す基板上に形成される制御部である電気回路41に接続されている。光検出器32により生成された光電流は、電気回路41に取り込まれて、電流/電圧変換や増幅、復号処理等、種々の処理がなされる。尚、光検出器32に入射する光の強弱は、シンボルマーク等の読み取り対象物の反射率や形状の陰影の情報に対応している。
【0034】
従って、戻り光から生成された信号レベルの変化が、予め設定された規格(信号レベル変化)と合致するか否かを判定することにより、バーコードとして印刷された情報を取得することができる。また情報だけではなく、物体の有無を検出することもできる。
【0035】
次に、本実施形態の光走査モジュールにおける回路構成について説明する。
図4は、本実施形態における基板上に形成される制御部である電気回路のブロック図である。
電気回路41には、光源部42、駆動部43及び、受光部44等が電気的に接続されている。さらに、電気回路41は図示しないコネクタ等を介して外部機器に接続可能であり、本実施形態ではコンピュータ51が接続される。光走査モジュール1とコンピュータ51との間で、プログラムやデータの通信を行っている。
【0036】
電気回路41は、光源回路45、駆動回路47、電流/電圧(I/V)変換回路48、アナログ/デジタル(A/D)変換回路49、走査制御回路46、復号回路50等を備えている。光源回路45は、走査制御回路46からの光源駆動信号OD1に基づき、光源部42の半導体レーザ素子23に対して光源駆動電圧VE1を印加し、レーザ光を発光させる。駆動回路47は、走査制御回路46からの駆動信号DR1に基づき、走査ミラー12の駆動部43に対して駆動パルスDP1を印加し、走査ミラー12を揺動させる。電流/電圧変換回路48は、受光部44の光検出器32が受光した際に発生する光電流PI1を電圧に変換し、アナログ/デジタル変換回路49は、その電圧をデジタル信号DS1に変換する。
【0037】
走査制御回路46は、デジタル・シグナル・プロセッサ(DSP)等からなり、上述した光源部42、駆動部43などの構成部位全体を制御する。復号回路50は、マイクロプロセッサや不揮発メモリ等により構成される。例えば、戻り光から生成された光電流PI1の信号の取り込みや、その信号に基づくバーコード情報の復号などの所望する機能を実現するためのソフトウェアを電気回路の外部機器(例えば、コンピュータ51)から書き込むことができる。
【0038】
このように構成された電気回路41において、コンピュータ51から読み取りを指示するトリガー信号TG1が入力されると、復号回路50から走査開始信号SE1が走査制御回路46に出力される。走査制御回路46は駆動回路47に対して駆動信号DR1を出力する。駆動回路47は、この駆動信号DR1に基づいて駆動パルスDP1を駆動部43に出力して駆動部43に対して駆動力を発生させる。この駆動力により、走査ミラー12が回動軸11周りに反復的に揺動する。
【0039】
また、走査制御回路46は、光源回路45に対して光源駆動信号OD1を出力する。光源回路45は光源駆動信号OD1に基づいて、光源駆動電圧VE1を光源部42の半導体レーザ素子23に出力する。半導体レーザ素子23は、印加された光源駆動電圧VE1に基づいてレーザ光を発生する。
【0040】
バーコード等の読み取り対象物からの反射光は、戻り光として、受光部44の光検出器32によって受光され、反射光の光強度に応じた電流が発生する。この電流は、電流/電圧変換回路48にて電圧値に変換され、アナログ/デジタル変換回路49にてデジタル値に変換される。そして、復号回路50にて、情報が復号化される。
【0041】
本実施形態の光走査モジュールにおける走査ミラーの制御方法について説明する。
図5Aでは、走査ミラー12が基準位置(回動角度0°)にあるときの出射レーザ光の光軸を示している。この走査ミラーが基準位置にあるときは、上述したように、出射ミラー面13で反射される出射レーザ光の光軸は、走査開口面Lの垂直方向に一致している。
【0042】
この状態で、図6に示すように、走査ミラー12の駆動部3にW1、W2で示される正負の駆動パルス(幅)を交互に印加することで、走査ミラー12が揺動して左スキャンさせたり(図5B)、右スキャンさせたりする(図5C)ことができる。このようなスキャン状態で、出射ミラー13で反射され出射される出射レーザ光は、直線上を左右に往復走査する。
【0043】
しかし図5Aに示すように、出射ミラー面13と走査ミラー12の回動軸11には、一定の距離のオフセットが生じている。このため、走査ミラー12の回動に伴い、出射ミラー面13上において出射レーザ光の入射位置(光スポット)が移動することとなる。
【0044】
図6に示したように、パルス幅W1、W2で正負を変えた駆動パルスを駆動コイル20与えると、図5B、図5Cに示したように、反時計周りの左スキャン、時計周りの右スキャンが生じる。その結果、図8に示すように、出射光の走査角は反復的に変動する。駆動部3の質量により慣性モーメントを有することから、走査角[度]の変動は駆動パルスの変動に対して位相遅れが発生する。しかしながら、走査制御回路46によって、その位相遅れを調整することが可能であり、駆動部分の慣性モーメントに応じて適正に補正された値となっている。
【0045】
この補正により、駆動パルスとデータの取り込みのタイミング(後述する有効走査領域に相当するタイミング)が適正に維持され、安定的にデータを取り込むことができる。また、これとは反対に有効走査領域以外に相当するタイミングについても、位相遅れの値を適宜設定することで、把握することが可能となる。
【0046】
図7A(a)〜図7A(e)は、走査開口面側から走査ミラー12を見た図であって、基準位置から左スキャンして、また基準位置に戻ってくるまでの出射レーザ光のスポット13aを示している。図7A(a)〜図7A(e)に示すように、出射レーザ光のスポット13aは、出射ミラー面13上を反復するように移動する。尚、正常な状態であれば、右スキャンに振り切った場合でも、出射レーザ光のスポット13aは出射ミラー面13の端からはみ出て、反射散乱面14aに達することはない。
【0047】
図8は、走査ミラー12に正負の駆動パルスを与えたときの、走査角度と時間との関係を示している。ここで、走査角度が20°から−20°までの変位が図5Bに示す左スキャンであり、走査角度−20°から20°までの変位が図5Cに示す右スキャンに対応する。
【0048】
そして、図9には、図8で示すように走査ミラー12を反復的に揺動させたときの光検出器32の受光量の時間変化を示している。この図から分かるように、左スキャン及び右スキャンのそれぞれの中央、即ち、基準位置における光検出器32の受光量は大きく、左スキャンの始端(右スキャンの終端)と、左スキャンの終端(右スキャンの始端)といった、走査角度の絶対値が大きいときの光検出器32の受光量は小さくなる。
【0049】
これは、読み取り対象となるバーコードは平坦な面であるため、走査角の絶対値が大きくなると、一般に光のけられやコサインn乗則など、周辺光量落ちと呼ばれる現象が生じる。そのため、走査範囲の中で中央付近においては、得られる光量が最大となり、走査範囲の両端において光量が減少する。
【0050】
さらに、反復的な振れとなる走査の両端では、走査方向が反転するように切り替えられる。つまり、その両端では、速度が停止するまで下がるため、適正な周波数の信号が得られない。これらの理由により、走査の両端は、バーコード等の読み取りに使うことができない。その結果、対象物からの反射光を取り込むのに、安定で有効な領域A1,A2が基準位置を中心に、各スキャンの中央近辺に存在することになる。以下、この領域を有効走査領域A1,A2と称する。
【0051】
図10は、図9に示された光量変化を光検出器で取り込んで、電流/電圧変換やアナログ/デジタル変換等の処理を行い、さらに、二値化した後の信号を示したものである。この二値化において、前述した有効走査領域A1,A2における戻り光から生成された信号が取り込まれるように閾値が設定されているものの、有効走査領域A1,A2における信号が「1」として判断されていることが分かる。これに対して、有効走査領域A1,A2以外、特に走査角度が大きくなる左スキャン及び右スキャンの始端、終端近辺で受光した戻り光から生成された信号は、受光量が小さいため、本来「1」と判断されるべきところが「0」と判断される。以上が、光走査モジュールが安定的に設計仕様通りに駆動しているときの状態である。
【0052】
しかし、実際の使用現場においては、光走査モジュールに対して、温度や湿度などの環境変化が影響して、走査ミラー12の走査角が大きく変動する場合がある。
【0053】
上述したように、温度や湿度等が変動して設計仕様の範囲を超えた場合や経年変化により駆動部3に含まれるバネ19の弾性が劣化するなどの変化が生じる。この変化は、これまでと同じ所定の駆動パルスを駆動部3に印加しているにも関わらず、正規な左右スキャンの端(走査方向の切り返し位置)で停止せずにオーバーランして、走査ミラー12の揺動角が所定以上に回動してしまう現象が発生する。
【0054】
図7B(a)〜図7B(e)は、このような現象が発生した場合における出射ミラー面13上の出射レーザ光のスポット13aの変動を示している。この図7Bは、図7Aと同様に、走査ミラーが基準位置から左スキャンを行い、最大揺動角度に達した後、再度、基準位置に復帰するまでの過程を示している。
【0055】
前述したように、回転軸中心と出射ミラー面13との間には、オフセットが設けられていることから、出射ミラー面13上におけるスポットの移動量は、揺動角の増減に対応する。つまり、揺動角が基準位置に対して最大となった時に、出射レーザ光のスポット13aも基準位置からの変動量が最大となる。
【0056】
図7B(c)には、最も走査ミラー12の揺動角度が大きくなった状態を示し、そのときの出射レーザ光のスポット13aは、出射ミラー面13から外側に外れ、出射ミラー面13の左エッジ15aを超えて反射散乱面14a上に至る。その出射レーザ光は、反射散乱面14aで発散的に反射され、その一部が受光部6の光検出器32にて受光される。この時の光検出器32の受光量は、対象物からの反射光を受光したときの受光量とは異なり、著しく大きな値となる。
【0057】
図11は、揺動角度が大きくなった場合の光検出器32の受光量変化を示す。尚、この図11において、走査角が大きくなったところに相当するボトム部分の信号が一部抜けて図示されていないが、これは信号値が大きく変化して、記載できる範囲を超えているため図示できないことを意味する。
【0058】
つまり、走査ミラー12の揺動角(走査角)が所定の範囲を超えると、反射散乱面14a,14bによる散乱光が光検出器32に直接取り込まれる。反射散乱面14a,14bと光検出器32の距離は近いため、光検出器32が受光する散乱光の光量は非常に多く、光信号の値は非常に大きな値となることを示している。他方、走査角が所定の範囲を超えない正常動作のときは、前述した図9の場合と同様の値をとる。
【0059】
このように、光検出器32で受光する光信号という観点からすると、走査角が所定の範囲を超えるか否かによって、光検出器32における光信号は大きく変動し、走査角の変化を検出するに十分な変動量となっている。つまり、本来安定している状態であれば、図9に示すように、各スキャンの始端及び/終端では光検出器の受光量が最も少なくなる部分(時間)であるのに対し、この散乱光が後述する光信号を二値化する際の閾値以上に光量が大きいため、散乱光が入射したか否かの判断を迅速に行うことができる。
【0060】
図12には、図11に示した光信号をアナログ/デジタル(A/D)変換して所定の閾値に基づき二値化した二値化信号を示している。また、図13は、駆動パルスとデジタル信号のタイミングと位相の遅れを概念的に示すタイミングチャートである。
【0061】
図12から分かるように、左スキャン、右スキャンの各終了端周辺を示す2値化信号“0”の中に、反射散乱面14a,14bからの反射光に相当する2値化信号“1”(それぞれ左エッジ検出信号B1、右エッジ検出信号B2と称する)が現れる。
【0062】
この左エッジ検出信号B1及び右エッジ検出信号B2を検出するには、左スキャンを実行させる駆動パルス及び右スキャンを実行させる駆動パルスからのディレイ量を調整することで、左スキャン終端、右スキャン終端の時間帯を特定する。そして、その時間帯において、左エッジ検出信号及び右エッジ信号が出現するか否かを検出すれば良い(図13参照)。
【0063】
次に、左エッジ検出信号B1と右エッジ検出信号B2の検出方法について説明する。
図13は、駆動パルスと二値化信号の関係を示すタイミングチャートである。走査ミラー12は停止している状態の時には、走査範囲の中位位置に停止しているため、図示したように駆動パルスを印加した後、左右のエッジ検出信号を得るまでには、時間の遅れ(位相の遅れD1)が生じている。
【0064】
駆動パルスW1,W2を与えると、走査ミラー12は、連続的に左スキャン及び右スキャンを行い、出射光がバーコード上を横切るように走査する。そして、バーコードからの反射光が光検出器32によって受光される。その反射光の受光量に応じた二値化信号は、有効走査領域A1,A2においてバーコードに関する情報として取得される。
【0065】
さらに、有効走査領域A1,A2のそれぞれの後に続くエッジ検出信号B1,B2により、走査ミラー12の挙動に関する情報が取得される。駆動パルスに対応するデジタル信号が取得されるまでには、位相の遅れD1が生じている。この位相の遅れD1については、走査制御回路内において、慣性モーメント等の駆動部の設計に基づいて値が適正になるように微調整を行う。従来技術においては、有効走査領域A1,A2以外の二値化信号部分の情報については、全く利用されていなかったが、本願発明では有効走査領域A1,A2以外の領域において、左エッジ検出信号と右エッジ検出信号を検出するために用いている。
【0066】
次に、走査制御回路の観点から、前述した左エッジ検出信号及び右エッジ検出信号の処理について詳細に説明する。
図4に示したように、電気回路41は走査制御回路46を有している。走査制御回路46は、デジタル・シグナル・プロセッサ(DSP)等からなり、不揮発メモリ、各種レジスタ等を有する。デジタル・シグナル・プロセッサの内部の不揮発メモリには、製品仕様等に基づいて、C言語やアセンブリ言語等で書かれたソフトウェアをコンパイルしたデータや調整値が書き込まれている。
【0067】
図14に示すフローチャート及び図4に示す構成を参照して、走査制御回路46の動作について説明する。
電気回路41に電源が投入されると、各回路が起動する。走査制御回路46は、まず、起動時に初期パラメータを設定した後(ステップS1)、前述した走査開始信号を監視して、トリガー信号の有無に応じた動作を行う(ステップS2)。
【0068】
次に、駆動パルスの生成処理を行う(ステップS3)。この処理は、具体的には、トリガー信号を受け取った場合、その直後から一定期間、前述した駆動パルスを生成して、駆動部3に印加して、走査ミラー12の回動動作を行う。その後、光源駆動信号が光源回路45に入力され、生成された光源駆動電圧が光源部42に供給される。光源部42は、レーザ光を走査ミラー12の出射ミラー面13に出射する。走査ミラー12は、走査駆動しており、出射ミラー面13から走査するレーザ光がバーコードに向かって照射される。
【0069】
次に、バーコードで反射したレーザ光を戻り光として取り込み、取得されたデータを出力する(ステップS4)。具体的には、図4において前述したように、外部のコンピュータ51等からトリガー信号を受け取ると、受光部44の光検出器32が検出した信号を取得して予め定めた閾値を参照して、二値化信号を生成する。さらに、駆動パルスのカウンタ値から一定時間D1だけ遅らせて、さらに有効走査領域の幅A1,A2を反映させて、復号開始信号を生成する。即ち、復号開始信号は、図13に示した有効走査領域のタイミングを復号回路50に知らせるための信号である。
【0070】
走査制御回路46から復号回路50に、復号開始信号と二値化信号が出力される。この位相遅れのパラメータD1は、前述したとおり、駆動パルスに対する走査ミラーの応答の遅れを設定するためのものである。具体的には、前述の走査ミラー部分の回動部分の慣性モーメントに対応して設定されたものであって、回動部分の機械設計が決まった段階で決まるパラメータである。この位相遅れの値D1は、予め適切に調整がなされている。そして、走査ミラーの左スキャン、右スキャンのタイミングに同期した信号が発生して、前述の有効走査領域のタイミングを復号回路に伝えるものである。復号回路は、二値化信号の取り込みのためのバッファ等を有する。
【0071】
図14に示したように、データの取り込み・出力(ステップS4)処理を行なった後、走査制御回路46は、操作の終了処理を行なう(ステップS5)。ここで終了するか否かの判断を行う(ステップS6)、引き続き、読み取りを行う場合には(NO)、ステップS2に戻り、走査開始信号の監視を行う。読み取りを終了する場合は(YES)、リターンをして制御を上位に返す。
【0072】
図15に示すフローチャートを参照して、復号回路50の動作について説明する。
復号回路50は、電源を投入した後、パラメータ及びバッファの初期化を行い(ステップS11)、さらに復号開始信号に対応する入カポートの状態を繰り返し取り込み、復号開始信号の状態を監視する(ステップS12)。
【0073】
次に、復号開始信号がオンされると、オン期間の間、二値化信号の時間変化をバッファに取り込み(ステップS13)、復号開始信号の入力ポートの状態がオフになったか否かを監視する(ステップS14)。ここで、オフになると(YES)、復号処理に移行する(ステップS15)。この復号処理は、バッファに取り込まれた二値化データに対して、復号を試みる。この復号処理は、走査有効領域以外の時間の範囲内程度に完了する。
【0074】
次に、適正に復号されたか否かを判断し(ステップS16)、適正に復号されたならば(YES)、復号回路はバーコード等の対象物から得られた情報を復号データとして外部のコンピュータ等に出力する(ステップS17)。一方、復号に成功しなかった場合には(NO)、ステップS11に戻り、その二値化信号を破棄して、データを初期化し、再度ステップS12における復号開始信号を監視する状態に戻る。
【0075】
以上説明した復号回路50の動作は、各処理が順次行われるように説明したが、実際には、これらの処理が同時又は並列的に実行することができる。例えば、走査制御回路46と復号回路50は、独立した集積回路であって、異なるクロックにより、各回路の処理は独自に並列的に実行される。駆動回路及び光源回路についても同様である。
【0076】
次に、図16に示すフローチャートを参照して、図14に示した走査制御回路46におけるパラメータの初期設定の動作について詳細に説明する。
【0077】
まず、左スキャン・右スキャンのための駆動パルス幅について、最小値W1_min,W2_min,最大値W1_max,W2_max,初期値W1_ini,W2_ini等が設定される。さらに、出力ポートも初期化されて回路基板の状態を一意に規定する(ステップS21)。他にも、処理状態の初期設定Status1=1、位相遅れD1の設定、二値化の閾値Th1の設定、有効走査領域幅A1,A2の設定、出力ポートの初期化などを行う。
【0078】
ここで駆動パルス幅W1,W2の値は、初期値W1_ini,W2_iniに設定される。この駆動パルスの幅は、図6で示したように、駆動コイルの印加電圧のパルス幅に対応している。そして、走査制御回路46のクロック数等から換算して、駆動パルスの周期L1やレーザ光の走査の周期が所望の値となるように各パラメータが適正に設定されている。駆動パルス幅の最小値、最大値は、駆動パルスの幅を変動させるとき、その範囲を制限するためのものである。
【0079】
次に、駆動パルス生成用の変数の設定を行う(ステップS22)。即ち、左エッジ検出フラグF1=0、右エッジ検出フラグF2=0、駆動パルスの出力状態を示すフラグP1=0、駆動パルスのパルス幅等を計るためのカウンタN1=0、さらに初期パルス幅の設定W1=W1_ini、W2=W2_ini等の駆動パルスの生成(図14に示すステップS3)に用いるパラメータが初期状態に設定される(ステップS23)。
【0080】
その後、データの取り込み・出力(図14に示すステップS4)のためのパラメータとして、データ取得用バッファ等のクリア及びデータ取り込みフラグCap1=0が初期化される(ステップS23)。さらに、処理状態を示すパラメータStatus1を次の状態に遷移するように番号(Status1→2)を書き換え(ステップS24)、リターンする。
【0081】
ここで、処理状態を示すパラメータStatus1について説明する。
図17に示すように、Status1は、0以上の整数値を取り、値に応じて走査制御回路46、即ち、光走査モジュールの状態が一意に規定されている。本実施形態においては、1:パラメータの初期化前の状態、2:トリガー信号待ちの状態、3:バーコードの読み取りを実行している状態、4:読み取りの走査を終了した状態、5:予備のパラメータに設定されている。各状態の詳細の一例においては、図17の説明の項に記載する。勿論、これらの設定に限定されるものではなく、設計や仕様に応じて適宜変更することは可能である。
【0082】
この例では、図14に示した各処理ルーチンにおいて、これらのパラメータを確認した後、各処理を実行する。例えば、処理状態Status1>1とならない限り、パラメータの初期化等が完了していないため、後段の処理には移行せず、誤動作等が防止される。
【0083】
次に、図18に示すフローチャートを参照して、図14に示したステップS2における走査開始信号の監視の動作について説明する。
まず、パラメータStatus1が1を越えた設定値か否かにより処理状態を判断する(ステップS31)。ここで判断した処理状態が1以下であれば(NO)、まだ初期設定が完了せず、後段の処理への移行は不適切であると判断して、図14におけるパラメータの初期設定にリターンする。一方、Status1が1を越えた設定値であり、初期設定は完了した状態で後段への移行が適切と判断されたならば(YES)、次に走査制御回路の入力ポートの状態を取得する(ステップS32)。具体的には、電圧レベルが閾値を超えていないか(Low)、超えているか(High)を取得して、内部のレジスタ等に保存する。
【0084】
次に、走査開始信号SE1の入力ポートの状態がオンか否かを判断する(ステップS33)。入力ポートがオンかオフかは、電圧レベルのHigh、Lowに対応しているが、限定されるものではなく、システムの設計により適宜、定義してもよい。ここで、走査開始信号がオン(SE1=1)であると判断された場合には(YES)、処理状態を示すパラメータStatus1を後段の状態(Status1=3)に移行し(ステップS34)、リターンする。一方、走査開始信号がオフである場合は(NO)、SE1を0に切り換えた後、終了処理を行う状態(Status1=4)に移行し(ステップS35)、リターンする。これにより、走査開始信号SE1を検出している期間のみ、後段の読み取り等の処理状態に移行する。
【0085】
次に、図19に示すフローチャートを参照して、図14に示したステップS32における駆動パルスの処理の動作について説明する。
まず、処理状態を示すパラメータStatus1を確認する。即ち、パラメータStatus1>2か否かを判断する(ステップS41)。この判断で、パラメータStatus1>2であれば(YES)、走査開始信号SE1を受信し処理状態が適正であると判断して、駆動パルスの生成処理(ステップS42)に移行し、後述する駆動パルスの生成処理後に、リターンする。一方、パラメータStatus1>2でなければ(NO)、走査開始信号SEは未受信で処理状態が適正ではないと判断して、駆動パルスを生成することなく、リターンする。
【0086】
ここで、図20に示すフローチャート、図6及び図7を参照して、図19に示したステップS41における駆動パルス生成について説明する。
駆動パルスの生成にあたり、前述した駆動パルスの周期L1、左スキャンの駆動パルス幅W1、右スキャンの駆動パルス幅W2、タイマ値N1等に相当するレジスタを予め定義する。これのパラメータは、ステップS1において、すでに電気回路41が起動すると共に初期化されているものとする。
【0087】
駆動パルスの生成処理は、まず、タイマ値N1が周期L1の前半(N1≧L1/2)であるか否かを判断する(ステップS51)。この判断でタイマ値N1が周期L1の前半であれば(YES)、タイマ値N1がL1/4−W1/2からL1/4+W1/2の間にあるか否かを判断する(ステップS52)。
【0088】
このステップS52の判断において、タイマ値N1がL1/4−W1/2からL1/4+W1/2の間にある場合は(YES)、駆動パルスの出力状態を示すパラメータP1を左スキャンの状態(P1=−1)に設定する(ステップS54)。即ち、タイマ値Nが周期の1/4である点を中心としてパルス幅W1の範囲にある時は、左スキャンパルス生成のための設定を行う。一方、ステップS52の判断において、タイマ値N1がL1/4−W1/2からL1/4+W1/2の間にはない場合は(NO)、駆動パルスの出力状態を示すパラメータP1をパルスなしの状態(P1=0)に設定する(ステップS55)。
【0089】
また、ステップS51の判断で、タイマ値N1が周期L1の前半ではない、即ち後半であれば(NO)、タイマ値N1が3L1/4−W2/2から3L1/4+W2/2の間にあるか否かを判断する(ステップS53)。
【0090】
この判断で、タイマ値N1が3L1/4−W2/2から3L1/4+W2/2の間にある場合には(YES)、駆動パルスの出力状態を示すパラメータP1を右スキャンの状態(P1=+1)に設定する(ステップS56)。一方、タイマ値N1が3L1/4−W2/2から3L1/4+W2/2の間にない場合には(NO)、駆動パルスの出力状態を示すパラメータP1を駆動パルスなしの状態(P1=0)に設定する(ステップS57)。
【0091】
即ち、次のようになる。
【0092】
(1)N1 ≦ L1/2 且つ L1/4-W1/2 ≦ N1 ≦ L1/4+W1/2 → P1=−1
(2)N1 ≦ L1/2 且つ N1< L1/4-W1/2 → P1=0
(3)N1 ≦ L1/2 且つ N1 > L1/4+W1/2 → P1=0
(4)N1 > L1/2 且つ 3L1/4-W2/2 ≦ N1 ≦ 3L1/4+W2/2 → P1=1
(5)N1 > L1/2 且つ N1 < 3L1/4-W2/2→ P1=0
(6)N1 > L1/2 且つ N1 > 3L1/4+W2/2 → P1=0
次に、パラメータP1を設定した後、駆動回路47から駆動部43に駆動パルスDP1を出力する(ステップS58)。即ち、駆動回路47は、2つのポートを用いて、図6に示したように、左スキャン(P1=−1)の状態と、右スキャン(P1=+1)の状態であれば、それぞれ駆動電圧が反転するように、また、それ以外の状態(P1=0)であれば駆動電圧がゼロとなるように駆動信号DR1を出力する。このように、状態が3つとなるため、電気回路41上において、2つの出力ポートの状態DR1に応じて駆動パルスDP1が生成される。
【0093】
さらに、タイマ値N1に1を加算した後(ステップS59)、そのタイマ値N1が周期L1の時間を越えたか否か判断する(ステップS60)。この判断で、タイマ値N1が周期L1の時間に満たない場合には(YES)、そのままリターンし、N1がL1以上であれば(NO)、タイマ値N1をクリア(N1=0)して(ステップS61)、制御フローを上位のフローチャートにリターンする。
【0094】
次に、図21に示すフローチャートを参照して、図14に示したステップS4におけるデータの取り込み・出力の処理について説明する。
まず、処理状態を示すパラメータStatus1を確認する。即ち、Status1>2か否かを判断する(ステップS71)。この判断において、Status1>2でなければ(NO)、まだ初期化が完了していない状態、又はトリガー信号を受け取っていない状態であり、データは出力しないものと判断し(NO)、処理を終了して制御を上位にリターンする。一方、Status1>2である場合は、データの取り込み処理が適正であると判断し(YES)、前述した光検出器32により生成されたデジタル信号を取得する(ステップS72)。
【0095】
具体的には、図4に示したように、受光部6から得られた光電流PI1は、電流/電圧変換や増幅やノイズ処理等が施された後、アナログ/デジタル変換が行われ、10ビットのデジタル信号DS1に変換される。10ビットのデジタル信号は、走査制御回路46のポートを介して取り込まれる。
【0096】
次に、前述した図16に示したステップS1の起動時のパラメータの初期設定処理において、二値化の閾値Th1が設定されている。10ビットのデジタル信号DS1は、適当な補正処理等を経た後、この閾値と大小関係を比較して、二値化処理が行われる(ステップS73)。この二値化信号BI1は、パラメータとして保持される。この二値化信号BI1は、前述した駆動パルスDP1の出力に対応していることから、対象物上でレーザ光のスポットを走査したときの反射光の強弱に対応している。
【0097】
次に、復号開始信号の生成処理を行う(ステップS74)。この生成処理は、タイマ値N1が有効走査領域A1,A2内に存在する場合には、復号開始信号の状態S01を変え、二値化信号BI1が有効となっている走査領域のタイミングを復号回路50に知らせるためのものである。具体的には、まず、図13に示したように、二値化信号のためのタイマ値N2=N1−D1を定義する。このタイマ値N2は、前述した駆動パルス用のタイマ値N1が位相遅れD1の値に一致したとき、N2=0となるように定義されている。
【0098】
後述する式において必要があれば、N2をN1−D1に置き換えればよい。
【0099】
位相遅れD1は、前述した駆動パルスに対する走査ミラー12の応答の遅れを調整するためのものである。即ち、図13に示したように、駆動パルスに対して、取得される二値化信号の周期は共通するものの、タイミングずれが生じている。そこで、位相の遅れD1を定義しておくことで、そのタイミングずれを内部的に補正するためのパラメータとしている。例えば、周期の1/4の遅れが発生している場合は、位相の遅れD1=(周期L1)/4として、この値近辺で微調整をすればよい。この値は、製品の出荷時に初期値として与えられている。有効走査領域A1,A2の値も、二値化信号の取り込みの範囲と位置が最適となるように初期値が設定されている。
【0100】
図13に示すように、走査有効領域は、タイマ値N2を基準とすると、周期L1となっており、周期L1の1/4倍、3/4倍に相当する位置を中心に、幅A1,A2を有している。従って、タイマ値N2が、L1/4−A1/2からL1/4+A1/2までの範囲にある場合はSO1=1に設定する。
【0101】
さらに、タイマ値N2が、3L1/4−A2/2から3L1/4+A2/2までの範囲にある場合は、SO1=1に設定する。それ以外の範囲にある場合は、SO1=0とする。即ち、タイマ値N2が周期L1の1/4倍の位置を中心とする有効走査領域A1の範囲にある場合には、対象物の左スキャン中であると見なして、復号開始信号をオンにする(SO1=1)。
【0102】
タイマ値N2が、L1/4−A1/2からL1/4+A1/2までの範囲にある場合はSO=1に設定する。 さらに、タイマ値N2が、3L1/4−A2/2から3L1/4+A2/2までの範囲にある場合は、SO1=1に設定する。それ以外の範囲にある場合は、SO1=0とする。即ち、次のようになる。
(1)L1/4-A1/2 ≦ N2 ≦ L1/4+A1/2 → SO1=1
(2)3L1/4-A2/2 ≦ N2 ≦ 3L1/4+A2/2 → SO1=1
(3)N2が上記(1),(2)の範囲以外 → SO1=0
また、タイマ値N2が周期L1の3/4倍の位置を中心とする有効走査領域A2の範囲にある場合には、対象物の右スキャン中であると見なして、復号開始信号をオンにする(SO1=1)。それ以外の範囲にある場合には、光信号は対象物からのものではないと見なして、復号開始信号をオフにする(SO1=0)。前述したように、復号回路50は、SO1の状態を監視しており、有効走査領域A1,A2のタイミングに合わせて、二値化信号を取得して後号処理を行う。
【0103】
次に、エッジ検出信号の取得処理を行う(ステップS75)。この取得処理においても、前述したタイマ値N2を参照して、左エッジ検出信号B1、右エッジ検出信号B2の取得を行う。具体的には、タイマ値N2が、L1/2−B3/2≦N2≦L1/2+B3/2の範囲内にあり且つ、前述した二値化信号BI1がオンしている場合(BI1=1)は、左エッジ検出フラグF1を+1にする。また、二値化信号BI1がオフしている場合には(BI1=0)は、左エッジ検出フラグを−1にする。
【0104】
ここで、B3は、サンプル数であって、D1等よりも小さな値である。初期値としてB3=0と設定されている。この値は、検出の感度を上げたい場合には、変更すればよい。例えば、B3=2とすると、左エッジ検出を3回繰り返して実施するため、検出の感度を上げることができる。また、タイマ値Mは、L1を超えた時点で原点0にリセットされ、二値化信号用のタイマ値N2=N1−D1も同時にリセットされる。尚、説明のため、計算式には、マイナス符号を用いたが、タイマ値N1は0からL1の値の範囲となるようにとる(周期L1を法とする剰余演算を行う)。
【0105】
従って、タイマ値N1の大小比較をするとき、タイマ値やタイマ値と比較する値が負になったり、L1を超えたりする場合は、適宜、L1の整数倍を加除することで、0〜L1の範囲内となるよう適正化するものとする。また、タイマ値N2が、−B3/2から+B3/2の範囲内にある場合であって、前述した二値化信号BI1がオンしている場合(BI1=1)は、右エッジ検出フラグF2に1を設定する。
【0106】
また、二値化信号がオフになっている場合には、右エッジ検出フラグF2に−1に設定する。即ち、この処理では、図13に示すように、タイマ値がエッジ検出信号の領域にある場合は、対応するフラグF1,F2の値を−1又は+1に設定する。
各フラグの初期値は0であって、タイマ値がエッジ検出信号の領域内に存在しない場合には、フラグF1,F2の値は変更しない。従って、エッジを検出した時のみ、これらの値を0以外の値に変更する。後述するが、パルス幅W1,W2を変更する時には、これらのフラグの値が0以外の値を取ったときのみ変更される。
【0107】
図13において、二値化信号に対して、タイマ値N2を基準にみると、周期L1の1/4倍、3/4倍を中心とした領域には有効走査領域A1,A2が存在し、周期L1の0/4倍、2/4倍を中心とした領域には、エッジ検出信号B1,B2が存在していることになる。従って、走査制御回路は、位相遅れD1と駆動パルスの周期L1を基準に、二値化信号BI1あるいはデジタル信号DI1を監視することで、対象物からの光信号と走査角の双方を検出して制御することが可能となる。
【0108】
次に、復号開始信号・二値化信号の出力処理(ステップS76)に移行する。このステップS76においては、図2に示したように、二値信号である前述したBI1の値と復号開始信号SO1の値に基づいて、それぞれ、二値化信号と復号開始信号の出力ポートの状態を変更して出力する。上位のルーチンにおいてこの処理が繰り返されると、対象物の輝度信号が、順次、復号回路50に転送されることになる。このデータの取り込み・出力処理を完了した後、制御フローを上位のフローチャートにリターンする。
【0109】
次に、図22に示すフローチャートを参照して、図14に示したステップS5における駆動パルス出力の終了処理について説明する。
まず、処理状態を示すパラメータStatus1を監視する(ステップS81)、具体的には、Status1≧4を判断する。前述したステップS2における走査開始信号の監視処理のように、走査開始信号は、常時、状態が監視されている。走査開始信号がオンしている間は、Status1=3に設定されている。従って、Status1≧4の条件を満たしていないため、何も処理がなされずに制御フローを上位のフローチャートにリターンする。
【0110】
一方、走査開始信号がオフされると、前述したように、Status1=4に切り替わったならば(YES)、出力ポートの処理を行う(ステップS82)。この処理は、復号開始信号と二値化信号の出力を初期状態(SO1=0、BI1=0)に戻して、復号回路の動作を終了させる。
【0111】
次に、終了処理に移行する(ステップS83)。この終了処理においては、パラメータの初期化等を行い、必要に応じて信号を出力する。例えば、前述した左エッジ検出信号及び右エッジ検出信号の状態に応じた電気信号を外部のコンピュータ51に出力する。これにより、外部のコンピュータ51から光走査モジュール1の走査角が所定の値に達していることをモニタすることができる。例えば、走査角が所定の値に達していない場合、外部のコンピュータ51の操作により必要なコマンドを送信して、光走査モジュール1における異常の有無を確認することができる。
【0112】
次に、処理状態を示すパラメータStatus1を2に戻す。即ち、前述したとおり、トリガー信号TG1の待ち状態となるように値を戻す(ステップS83)。この後、処理を終了して制御フローを上位のフローチャートにリターンする(ステップS84)。
【0113】
以上説明したように、走査ミラー12の揺動角を検出する専用の検出器(検出コイル等)を搭載しなくても、バーコードからの反射光を受光する光検出器を流用して、走査ミラー12が所定の角度以上に揺動したことを検出することが可能となる。つまり、走査制御回路46において、左エッジ検出信号と右エッジ検出信号の双方を検出したか、いずれか一方のみを検出したか、又はどちらも検出しなかったかを判断し、さらには、左エッジ検出信号や右エッジ検出信号のパルス幅がどの程度かなどを求める。これらの結果により、走査ミラー12の揺動角(走査角)が所定の角度範囲を超えたか否か、どちらに揺動したときに所定の角度範囲を超えたのか、所定の角度範囲をどれだけ超えたのかを検出することが可能となる。
【0114】
従って、従来の構成であれば、走査ミラーやその駆動部が所定の角度以上に大きくなると、破損等が発生する虞があるため、機械的にストッパを設けるなどの対応が必要であった。本実施形態においては、走査ミラーの振れ角度(角度範囲)を光学的に検出して、反射散乱面が破損され得る角度を下回るように制御することで容易に信頼性の高い光走査モジュールを実現することができる。角度検出に用いる反射面は出射ミラー面の両側に配置され、それらの位置検出もバーコードを読み取るための光検出器を用いているため、既存の構成部位に対して簡易な加工を施すだけで容易に実現させることができる。
【0115】
次に、本願発明の第2の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現する光走査モジュールの概要について説明する。
【0116】
図23に示すように、本実施形態は、前述した第1の実施形態とは、走査の終了処理(ステップS95)の最後のステップが追加された点が異なっている。即ち、図22においてリターンする前に、駆動パルス幅の調整処理が追加されている。
即ち、処理状態を示すパラメータStatus1を監視する(ステップS81)。走査開始信号がオフされ、Status1=4に切り替わったならば(YES)、復号開始信号と二値化信号の出力を初期状態(SO1=0、BI1=0)に戻して、復号回路の動作を終了させる出力ポートの処理を行う(ステップS82)。次に、パラメータの初期化等を行い、必要に応じて信号を出力する終了処理を行う(ステップS83)。その後、トリガー信号TG1の待ち状態となるように、処理状態を示すパラメータStatus1を2に戻す(ステップS83)。
【0117】
そして、駆動パルス幅の調整処理(ステップS91)が行われ、制御フローを上位のフローチャートにリターンする。
【0118】
ここで、図24に示すフローチャートを参照して、前記ステップS91の駆動パルス幅の調整処理について説明する。
この駆動パルス幅の調整処理では、左エッジ検出フラグの値F1(フラグ値F1とする)、右エッジ検出フラグの値F2(フラグ値F2とする)に応じて、駆動パルス幅W1,W2の値を変更する。まず、左エッジ検出フラグの値F1=−1であるか否かを判断する(ステップS101)。この判断で、フラグ値F1=−1であれば(YES)、W1の値を(W1+(N3−1)*W1_max)/N3に置き換えて、フラグF1=0に戻し(ステップS102)、次の右エッジ検出フラグにおけるフラグ値F2の確認(F2=−1)を行う(ステップS105)。ここで、N3は、重みのパラメータであり、正の整数値として設定されている。このため、N3の値が大きい場合には、パルス幅W1が大きく変化する。即ち、N3の値を大きくすると、感度(追従性)が高くなる反面、安定性という観点では劣ることになる。このN3は、駆動パルス幅が安定して制御できるように予め適正化されている。
【0119】
一方、ステップS101において、フラグ値F1=−1には該当しない場合(NO)、フラグ値F1=1か否かを判断する(ステップS103)。この判断で、フラグ値F1=+1の時には(YES)、W1の値を(W1+(N3−1)*W1_min)/N3に置き換えて、フラグ値F1=0に戻し(ステップS104)、右エッジ検出フラグの確認(ステップ105)に移行する。一方、F1=+1ではない場合(NO)、即ち、フラグ値F1は、1又は−1ではなく、フラグ値F1=0となる。このフラグ値F1=0の時には、W1の値は維持されたまま、ステップS105に移行する。
【0120】
前述したW1の値の置き換えは、左エッジが検出されなかった場合(F1=−1)には、W1の値は最大値W1_maxに近づくことになる。一方、左エッジが検出された場合(F1=+1)には、W1の値は、最小値W1_minに近づくことになる。最大値W1_maxやW1_minに近づく速度は、N3の値に依存するが、このN3の値は、予め初期値として最適化されている。さらに、左エッジの検出自体を行っていない場合は(F1=0)、パルス幅W1は変更しない。これと同様の処理が右エッジ検出フラグF2に対しても実施される。
【0121】
次に、ステップS105においては、右エッジ検出フラグにおけるフラグ値F2=−1であるか否かの判断を行う。
【0122】
この判断において、フラグ値F2=−1の場合には(YES)、W2の値を(W2+(N3−1)*W2_maX)/N3に置き換えて、フラグ値F2=0に戻し(ステップS106)、走査の終了処理のサブルーチンにリターンする。一方、前記判断において、フラグ値F2=−1ではなかった場合には(NO)、次に、フラグ値F2=1か否かを判断する(ステップS107)。この判断でフラグ値F2=1であれば、W2の値を(W2+(N3−1)*W2_min)/N3に置き換えて、フラグ値F2=0に戻し(ステップS108)、走査の終了処理のサブルーチンにリターンする。また、フラグ値F2=1ではない場合には(NO)、即ち、フラグ値F2は、1又は−1ではなく、フラグ値F2=0となる。このフラグ値F2=0の時には、W2の値は維持されたまま、走査の終了処理のサブルーチンにリターンする。
【0123】
前述したような一連の置き換え処理によって、左エッジが検出された場合は、左スキャンの駆動パルスの幅W1が最小値W1_minに近づく。一方、左エッジが検出されなかった場合には、駆動パルスの幅W1が最大値W1_maxに近づく。また、右エッジが検出された場合には、右スキャンの駆動パルスの帽W2が最小値W2_minに近づく。一方、右エッジが検出されなかった場合には、駆動パルスの幅W2が最大値W2_maxに近づく。さらに、エッジの検出自体を行っていない場合には、W1,W2の値は変更されず、そのまま維持される。
【0124】
走査制御回路46は、図14のフローチャートに従った制御処理を繰り返し実行する。従って、走査ミラー12に入射するレーザ光の移動範囲は、反射散乱面14a,14bのエッジの範囲に正確に収束する動作となる。即ち、走査ミラーの走査角の絶対値がハウジングに設けられた光学部品の位置に応じて調整されることとなり、走査ミラー12の振幅が光学的に正確に制御されることになる。
【0125】
走査角の情報という観点からは次のようにいうことができる。すなわち、走査角が所定の範囲を超えているかどうかという機械的な位置(走査角度)の情報(図5A〜5C)は、反射散乱面14a,14bからの反射光の有無(反射光の時間変化)という形で光学的な情報に変換される。続いて、走査角の情報は、光検出器とアナログ回路を経由することで、走査の両端部におけるアナログ信号の強弱という形で、電気的な情報に変換される(図9、図11)。さらに、アナログ/デジタル変換回路(図10、図12)と前述の判定処理を経由することにより、フラグF1,F2の変化というソフトウェア的な情報に変換される。ここで、フラグF1,F2の変化(時間)は、フラグが変化するタイマ値やパルス幅として取得できる(図13)。他方、上述したように、駆動周波数(駆動パルスの時間変化、あるいは、走査速度)は設計によって規定されている(図6)。従って、フラグの変化という情報(時間)と駆動周波数(速度)から、走査角・位置(=時間×速度)を光学的に正確に制御できることになる。
【0126】
また、レーザ光の入射位置は、前述したように、回転軸11を中心に対して出射ミラー面13のオフセット量と出射ミラー面13の寸法によって規定されている。その位置関係は、回動動作中であっても、軸受部10を介して部品位置が規定されることから、角度・位置関係が正確に規定される。従って、従来の検出コイルを用いた構成に比べると、位置関係が正確に規定されることから、走査角は格段に正確に制御できることになる。温度・湿度変化があった場合であっても、機械的な走査角を光学的に制御していることから、環境条件によって生じた変化を打ち消して補正するように機能する。
【0127】
さらに、本実施形態では、共振現象を必ずしも用いる必要がない。即ち、駆動周波数は前述したとおり、走査制御回路46によって生成された駆動パルスの周波数によって制御されている。従って、必要であれば、駆動周波数を変更することも可能である。さらに、前述した走査の終了処理(ステップS5)に、動作異常処理を加えてもよい。即ち、駆動パルス幅W1,W2が、すでに最大値W1_max,W2_max程度であるにもかかわらず、左エッジ検出信号B1、右エッジ検出信号B2が取得できない時には、動作異常が生じているものとして、エラー信号を外部のコンピュータ51に転送して、光源駆動信号OD1を切り替え、光源部4のレーザ光の出力を停止してもよい。
【0128】
このように、本実施形態によれば、走査ミラー12の揺動角が所定以上揺動したことを検出した場合には、駆動パルスの幅を制御して、走査ミラー12の揺動角が所定以上揺動しないように制御することが可能となる。さらに、本実施形態によれば、走査ミラー12の揺動角が所定の値に達しない場合には、駆動パルスの幅を制御して、走査ミラー12の揺動角が小さくなりすぎないように制御することが可能となる。
【0129】
尚、本実施形態では、反射散乱面14の形成位置を、走査ミラー12が破損しない程度の回動を検出できるような位置に形成したが、これに限定されない。例えば、走査角度の基準位置からの増加に伴い低下する光検出器32の受光量が、データ取り込み用として使用できないほど低くなってしまう領域(走査角度)に達することを検出できるような位置に形成してもよい。
【0130】
また、本実施形態では、走査ミラー12を樹脂成型品とし、出射ミラー面13の周囲に設けた抜き勾配をそのまま反射散乱面14として利用しているため、走査ミラー12の成型のし易さ(成型時の良品率の改善)と反射散乱面14を形成するための工数減・部品点数減を両立できている。
【0131】
以上説明した光走査モジュールについては、回転軸11をハウジング2aに固定し、軸受部10を走査ミラー12と一体化したが、必ずしもこの構成に限定されるものではない。例えば、回転軸11を走査ミラー12に固定し、軸受部10をハウジング2aに固定しても、走査ミラー12の位置を正確に規定することができる。
【0132】
また、走査ミラー12の軸受部10に付勢力を与えてもよい。これにより、走査ミラー12の位置をより正確に規定することができるため、走査角の精度をより正確に制御することができる。
【0133】
また、本実施形態の光走査モジュールは、バーコード等のシンボルマークの読み取りに好適する。例えば、JAN、EAN、Code39、Codabar、ITF等のバーコードの読み取りに好適する。また、前述した復号回路50に搭載されたソフトウェアを書き換えることで、あらゆる物体検出等に応用が可能である。例えば、自動車、人物等の移動の検出や、防犯・監視装置等を構成することができる。
【0134】
また、本発明の光走査モジュールは、あらゆる機器に搭載できる。例えば、無線装置、自動車、船舶、半導体製造装置、自動販売機、カード認識装置、ハンドヘルドバーコード読み取り装置等である。また、本実施形態においては、レーザ光を650nmの波長としたが、必ずしもこの限りではない。即ち、400nm近辺の光源としてもよいし、800nm以上の赤外光を用いてもよい。この場合、前述したバンドパスフィルタやミラーの透過率・反射率等を使用波長に応じて変えればよい。この構成により、監視センサや、赤外用の特殊インクを用いた印刷物を自動認識する等の応用が可能となる。
【0135】
また、本発明の光走査モジュールによれば、従来から用いていた検出コイルやその検出回路等が不要である。従って、従来の構成に比べて、より小型の光走査モジュールを構成することができる。従って、携帯情報端末装置、携帯電話等、バッテリー駆動タイプの機器への搭載に好適する。
【0136】
さらに、本発明の光走査モジュールによれば、光走査モジュールの走査角を、より正確に検出して制御できる。従って、温度・湿度が変動する屋外環境での使用に好適する。例えば、宅配業、運送業や、屋外での営業活動で用いる情報機器への搭載に好適する。
【0137】
以上説明したように、走査対象物の輝度信号の取得に用いられている光検出器を、走査ミラーの走査角の検出にも応用し、その光検出器からの出力に基づいて、走査ミラーの走査角を検出することが可能となる。そして、走査範囲(走査角)を検出するための検出コイル等の部品を新たに設ける必要がなくなり、部品点数の増加を防止することができる。
【0138】
さらに、走査ミラーの走査角を、従来のような検出コイル等を用いた走査速度等の間接的な物理量ではなく、走査ミラーの揺動角の絶対位置を光学的に検出しているため、走査角・揺動角のばらつきや時間変動・経時変化を低減できる。これにより、温度・湿度等の環境変化の影響を受けにくくなる。
【0139】
以上説明した光学的振幅検出方法及び振幅制御方法は、以下の発明を含んでいる。
(1)光源部から発せられたレーザ光を走査対象に向けて反射させる第1の反射面を有する出射ミラー部と、出射ミラー部を揺動させるミラー駆動部と、走査対象からの反射光を集光させ、かつ反射させる第2の反射面を有する戻りミラー部と、戻りミラー部で集光及び反射させられた走査対象からの反射光を受光する受光部と、出射ミラー部が所定の角度を超える揺動角に達した際に、光源部からのレーザ光が照射される位置に形成される第3の反射面と、を有する光学的走査装置における出射ミラーの揺動角検出方法において、光源からレーザ光を発光させるステップ1と、ミラー駆動部に駆動パルスを与えて出射ミラー部を揺動させるステップ2と、走査対象からの反射光を受光するステップ3と、受光した反射光量に基づき、デジタル信号を得るステップ4と、得られたデジタル信号の中から、出射ミラー部の揺動角を検出するための領域(揺動角検出領域)を抽出するステップ5と、揺動角検出領域から、第3の反射面からの反射光に対応する情報の有無を検出するステップ6と、を有することを特徴とする出射ミラーの揺動角検出方法。
(2)前記ステップ5の揺動角検出領域が、出射ミラーの揺動角が所定以上の光量落ちが発生する角度に達している範囲に設けられていることを特徴とする(1)項に記載の出射ミラー揺動角検出方法。
【0140】
(3)前記ステップ5の揺動角検出領域が、有効走査領域以外の領域であることを特徴とする請求項1記載の出射ミラー揺動角検出方法。
【0141】
(4)前記ステップ5において、揺動角検出領域から、第3の反射面からの反射光に相当する信号を検出しないとき、出射ミラー部の揺動角を増加させるように駆動パルスを切り替えることを特徴とする揺動角制御方法。
【0142】
(5)前記ステップ5において、揺動角検出領域から、第3の反射面からの反射光に相当する信号を検出したとき、出射ミラー部の揺動角を減少させるように駆動パルスを切り替えることを特徴とする揺動角制御方法。
【0143】
(6)前記(4)項及び(5)項に記載の揺動角制御方法において、駆動パルスの期間あるいは駆動電圧を変化させることで、駆動パルスを切り替えることを特徴とする揺動角制御方法。
【図面の簡単な説明】
【0144】
【図1A】図1Aは、本発明の第1の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現する光走査モジュールの内部構成例を示す図である。
【図1B】図1Bは、本発明の第1の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現する光走査モジュールの外観構成例を示す図である。
【図2】図2は、図1に示す光走査モジュールにおける光学部品を抜粋して示す図である。
【図3A】図3Aは、実施形態における走査ミラーを斜め前方から見た外観図である。
【図3B】図3Bは、実施形態における走査ミラーを斜め後から見た外観図である。
【図3C】図3Cは、実施形態における走査ミラーを正面から見た外観図である。
【図3D】図3Dは、実施形態における走査ミラーの駆動部を上面から見た外観図である。
【図4】図4は、実施形態における制御系のブロック構成を示す図である。
【図5A】図5Aは、走査ミラーによる左スキャンと右スキャンについて説明するための図である。
【図5B】図5Bは、走査ミラーの左スキャン状態を概念的に示す図である。
【図5C】図5Cは、走査ミラーの右スキャン状態を概念的に示す図である。
【図6】図6は、定常状態における駆動コイルの印加電圧における時間変化を示す図である。
【図7A】図7A(a)乃至7A(e)は、所定範囲内にある時の走査ミラーの走査角に対応するレーザ光の入射位置の変化の状態を示す図である。
【図7B】図7B(a)乃至図7B(e)は、所定範囲を越えた時の走査ミラーの走査角に対応するレーザ光の入射位置の変化を示す図である。
【図8】図8は、定常状態における走査ミラーの走査角の時間変化を示す図である。
【図9】図9は、定常状態における受光する光量の時間変化を示す図である。
【図10】図10は、検出された二値化信号における有効走査領域を概念的に示す図である。
【図11】図11は、走査ミラーの走査角が所定範囲を越えた時の受光する光量の時間変化を示す図である。
【図12】図12は、走査ミラーの走査角が所定範囲を越えた時に得られる有効走査領域及び走査角検出信号を概念的に示す図である。
【図13】図13は、駆動パルスとデジタル信号のタイミングと位相の遅れを概念的に示すタイミングチャートである。
【図14】図14は、走査制御回路の動作について説明するためのフローチャートである。
【図15】図15は、復号回路の動作について説明するためのフローチャートである。
【図16】図16は、走査制御回路におけるパラメータの初期設定の動作について説明するためのフローチャートである。
【図17】図17は、処理状態を示すパラメータStatus1について説明するための図である。
【図18】図18は、図14に示したステップS2における走査開始信号の監視の動作について説明するためのフローチャートである。
【図19】図19は、図14に示したステップS32における駆動パルスの処理の動作について説明するためのフローチャートである。
【図20】図20は、図19に示したステップS41における駆動パルス生成について説明するためのフローチャートである。
【図21】図21は、図14に示したステップS4におけるデータの取り込み・出力の処理について説明するためのフローチャートである。
【図22】図22は、図14に示したステップS5における駆動パルス出力の終了処理について説明するためのフローチャートである。
【図23】図23は、本発明の第2の実施形態に係る光学的振幅検出方法及び振幅制御方法を実現するフローチャートである。
【図24】図24は、図23に示したステップS91の駆動パルス幅の調整処理について説明するためのフローチャートである。
【符号の説明】
【0145】
1…光走査モジュール、2…ハウジング、3…駆動部、4…光源部、5…折り返しミラー部、6…受光部、10…軸受部、11…回転軸、12…走査ミラー、12a…集光ミラー面(戻りミラー部)、13…出射ミラー面(出射ミラー部)、14,14a,14b…反射散乱面、23…半導体レーザ素子、24…コリメータレンズ、25…折り返しミラー、26…出射開口部、32…光検出器。
【特許請求の範囲】
【請求項1】
走査ミラーを揺動するミラー駆動部と、
前記走査ミラーに設けられ、光源部から出射されたレーザ光を走査対象に向けて反射する第1の反射面を有する出射ミラー部と、
前記走査ミラーの前記出射ミラー部の周囲に設けられ、前記走査対象を含む外部からの戻り光を集光し、且つ反射する第2の反射面を有する戻りミラー部と、
前記戻りミラー部で集光されて反射された戻り光を受光する受光部と、
前記走査ミラーが所定の角度を超える揺動角に達して前記光源部からのレーザ光が前記出射ミラー部から外れて照射された際に、該外れたレーザ光が照射される位置に形成される第3の反射面と、
を有する光学的走査装置における出射ミラー部の揺動角検出方法において、
前記光源から前記レーザ光を発光させる発光ステップと、
前記ミラー駆動部に駆動力を与えて、前記出射ミラー部を揺動させるミラー揺動ステップと、
前記受光部によって戻り光を受光するステップと、
前記受光部での受光量から、第3の反射面からの反射光の有無を検出する検出ステップと、
を有することを特徴とする揺動角検出方法。
【請求項2】
前記検出ステップは、
前記受光量に基づき、デジタル信号を得る第1のステップと、
得られた前記デジタル信号の中から、前記出射ミラー部の揺動角を検出するための揺動角検出領域を抽出する第2のステップと、
前記揺動角検出領域に基づき、前記第3の反射面からの反射光の有無を検出する第3のステップと、
を有することを特徴とする請求項1記載の揺動角検出方法。
【請求項3】
前記揺動角検出領域が、前記出射ミラー部の揺動角が所定以上の光量落ちが発生する角度以上の範囲内に設けられていることを特徴とする請求項2記載の揺動角検出方法。
【請求項4】
前記揺動角検出領域が、前記走査対象からの情報に対応した有効走査領域の外側に隣接する領域であることを特徴とする請求項2記載の揺動角検出方法。
【請求項5】
光源部から発せられたレーザ光を走査対象に向けて反射させる第1の反射面を有する出射ミラー部と、
前記出射ミラー部を揺動するミラー駆動部と、
前記走査対象を含む外部からの戻り光を集光させ、且つ反射させる第2の反射面を有する戻りミラー部と、
前記戻りミラー部で集光及び反射させられた前記戻り光を受光する受光部と、
前記出射ミラー部が所定の角度を超える揺動角に達した際に、前記光源部からのレーザ光が照射される位置に形成される第3の反射面と、
を有する光学的走査装置における前記出射ミラー部の揺動角検出方法において、
前記光源部からレーザ光を発光させる発光ステップと、
前記ミラー駆動部を駆動させて、前記出射ミラー部を揺動させるミラー揺動ステップと、
前記戻り光を受光する受光ステップと、
受光した前記戻り光の光量から、前記第3の反射面からの反射光の有無を検出する検出ステップと、
前記第3の反射面からの反射光の有無に応じて、前記ミラー駆動部の駆動力を制御する駆動制御ステップと、
を有し、出射ミラー部の揺動角を制御することを特徴とする揺動角制御方法。
【請求項6】
前記検出ステップは、
受光した戻り光の光量に基づき、デジタル信号を得る第1のステップと、
得られたデジタル信号の中から、出射ミラー部の揺動角を検出するための領域(揺動角検出領域)を抽出する第2のステップと、
揺動角検出領域から、第3の反射面からの反射光の有無を検出する第3のステップと、
を有することを特徴とする請求項5記載の揺動角検出方法。
【請求項7】
前記揺動角検出領域から、前記第3の反射面からの反射光に対応する信号を検出したとき、前記出射ミラー部の揺動角を減少させるように前記ミラー駆動部の駆動力を制御することを特徴とする請求項6記載の揺動角制御方法。
【請求項8】
揺動角検出領域から、第3の反射面からの反射光に相当する信号を検出しないとき、出射ミラー部の揺動角を増加させるように、前記ミラー駆動部の駆動力を制御することを特徴とする請求項6記載の揺動角制御方法。
【請求項9】
ミラー駆動部の駆動力の制御は、ミラー駆動部に与える駆動パルスの期間あるいは駆動電圧を変化させることで行うことを特徴とする請求項7又は8記載の揺動角制御方法。
【請求項10】
前記第3の反射面が凹凸面を有し、前記凹凸面からの反射光は、散乱光として前記受光部に受光され、前記凹凸面からの反射光の光量が前記第2の反射面からの反射光の光量に比べて、増大変化することを特徴とする請求項1に記載の揺動角検出方法。
【請求項1】
走査ミラーを揺動するミラー駆動部と、
前記走査ミラーに設けられ、光源部から出射されたレーザ光を走査対象に向けて反射する第1の反射面を有する出射ミラー部と、
前記走査ミラーの前記出射ミラー部の周囲に設けられ、前記走査対象を含む外部からの戻り光を集光し、且つ反射する第2の反射面を有する戻りミラー部と、
前記戻りミラー部で集光されて反射された戻り光を受光する受光部と、
前記走査ミラーが所定の角度を超える揺動角に達して前記光源部からのレーザ光が前記出射ミラー部から外れて照射された際に、該外れたレーザ光が照射される位置に形成される第3の反射面と、
を有する光学的走査装置における出射ミラー部の揺動角検出方法において、
前記光源から前記レーザ光を発光させる発光ステップと、
前記ミラー駆動部に駆動力を与えて、前記出射ミラー部を揺動させるミラー揺動ステップと、
前記受光部によって戻り光を受光するステップと、
前記受光部での受光量から、第3の反射面からの反射光の有無を検出する検出ステップと、
を有することを特徴とする揺動角検出方法。
【請求項2】
前記検出ステップは、
前記受光量に基づき、デジタル信号を得る第1のステップと、
得られた前記デジタル信号の中から、前記出射ミラー部の揺動角を検出するための揺動角検出領域を抽出する第2のステップと、
前記揺動角検出領域に基づき、前記第3の反射面からの反射光の有無を検出する第3のステップと、
を有することを特徴とする請求項1記載の揺動角検出方法。
【請求項3】
前記揺動角検出領域が、前記出射ミラー部の揺動角が所定以上の光量落ちが発生する角度以上の範囲内に設けられていることを特徴とする請求項2記載の揺動角検出方法。
【請求項4】
前記揺動角検出領域が、前記走査対象からの情報に対応した有効走査領域の外側に隣接する領域であることを特徴とする請求項2記載の揺動角検出方法。
【請求項5】
光源部から発せられたレーザ光を走査対象に向けて反射させる第1の反射面を有する出射ミラー部と、
前記出射ミラー部を揺動するミラー駆動部と、
前記走査対象を含む外部からの戻り光を集光させ、且つ反射させる第2の反射面を有する戻りミラー部と、
前記戻りミラー部で集光及び反射させられた前記戻り光を受光する受光部と、
前記出射ミラー部が所定の角度を超える揺動角に達した際に、前記光源部からのレーザ光が照射される位置に形成される第3の反射面と、
を有する光学的走査装置における前記出射ミラー部の揺動角検出方法において、
前記光源部からレーザ光を発光させる発光ステップと、
前記ミラー駆動部を駆動させて、前記出射ミラー部を揺動させるミラー揺動ステップと、
前記戻り光を受光する受光ステップと、
受光した前記戻り光の光量から、前記第3の反射面からの反射光の有無を検出する検出ステップと、
前記第3の反射面からの反射光の有無に応じて、前記ミラー駆動部の駆動力を制御する駆動制御ステップと、
を有し、出射ミラー部の揺動角を制御することを特徴とする揺動角制御方法。
【請求項6】
前記検出ステップは、
受光した戻り光の光量に基づき、デジタル信号を得る第1のステップと、
得られたデジタル信号の中から、出射ミラー部の揺動角を検出するための領域(揺動角検出領域)を抽出する第2のステップと、
揺動角検出領域から、第3の反射面からの反射光の有無を検出する第3のステップと、
を有することを特徴とする請求項5記載の揺動角検出方法。
【請求項7】
前記揺動角検出領域から、前記第3の反射面からの反射光に対応する信号を検出したとき、前記出射ミラー部の揺動角を減少させるように前記ミラー駆動部の駆動力を制御することを特徴とする請求項6記載の揺動角制御方法。
【請求項8】
揺動角検出領域から、第3の反射面からの反射光に相当する信号を検出しないとき、出射ミラー部の揺動角を増加させるように、前記ミラー駆動部の駆動力を制御することを特徴とする請求項6記載の揺動角制御方法。
【請求項9】
ミラー駆動部の駆動力の制御は、ミラー駆動部に与える駆動パルスの期間あるいは駆動電圧を変化させることで行うことを特徴とする請求項7又は8記載の揺動角制御方法。
【請求項10】
前記第3の反射面が凹凸面を有し、前記凹凸面からの反射光は、散乱光として前記受光部に受光され、前記凹凸面からの反射光の光量が前記第2の反射面からの反射光の光量に比べて、増大変化することを特徴とする請求項1に記載の揺動角検出方法。
【図1A】
【図1B】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4】
【図5A】
【図5B】
【図5C】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図1B】
【図2】
【図3A】
【図3B】
【図3C】
【図3D】
【図4】
【図5A】
【図5B】
【図5C】
【図6】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【公開番号】特開2010−61029(P2010−61029A)
【公開日】平成22年3月18日(2010.3.18)
【国際特許分類】
【出願番号】特願2008−228713(P2008−228713)
【出願日】平成20年9月5日(2008.9.5)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
【公開日】平成22年3月18日(2010.3.18)
【国際特許分類】
【出願日】平成20年9月5日(2008.9.5)
【出願人】(000000376)オリンパス株式会社 (11,466)
【Fターム(参考)】
[ Back to top ]