(57)【要約】  基板（２）の表面（２Ａ）には、３個の発光素子（３）〜（５）と１個の受光素子（６）を設ける。信号処理回路（１１）の演算処理部（１５）は、受光素子（６）からの光検出信号（Ｓ0）から３つの反射光信号（Ｓr1）〜（Ｓr3）を分離する。演算処理部（１５）は、反射光信号（Ｓr2）をシフトさせながら、反射光信号（Ｓr1），（Ｓr2）の波形全体の差分の二乗和を演算する。演算処理部（１５）は、この演算値が最小となるときのシフト量（ｘ21）に基づいて、反射光信号（Ｓr1），（Ｓr2）の位相差（Ｔ21）を演算する。同様な処理に基づき、演算処理部（１５）は、反射光信号（Ｓr2），（Ｓr3）の位相差（Ｔ32）を演算する。演算処理部（１５）は、位相差（Ｔ21），（Ｔ32）に基づいて被検出物体（Ｏbj）の移動方向を特定する。
2013141021.tif 000002
【特許請求の範囲】
【請求項１】
基板と、
該基板の表面に実装された少なくとも３個の発光素子と、
該少なくとも３個の発光素子の発光動作を制御する発光制御手段と、
前記基板の表面に実装された少なくとも１個の受光素子とを備え、
前記発光素子から出射された光が、被検出物体によって反射された光を前記受光素子で受光することによって該被検出物体の存在および移動を検知する光センサにおいて、
前記少なくとも３個の発光素子による光が前記被検出物体によって反射された光を前記受光素子によって受光し、前記受光素子から出力される光検出信号に基づいて、前記３個の発光素子による光に対応した３つの反射光信号を取得する反射光信号取得手段と、
３つの前記反射光信号の波形全体の差または相関に基づいて各々の位相差を求める位相差演算手段と、
少なくとも２つの前記位相差に基づいて前記被検出物体の移動方向を特定する移動方向特定手段とを備えることを特徴とする光センサ。
【請求項２】
前記位相差演算手段は、２つの前記反射光信号の位相差を求めるときには、一方の前記反射光信号を所定のシフト量だけ時間をシフトさせた状態で、他方の前記反射光信号との間の差の二乗を波形全体で加算し、この加算値が最小となるシフト量を位相差とする請求項１に記載の光センサ。
【請求項３】
前記位相差演算手段は、２つの前記反射光信号の位相差を求めるときには、一方の前記反射光信号を所定のシフト量だけ時間をシフトさせた状態で、２つの前記反射光信号の積和演算を行い、この演算値が最大となるシフト量を位相差とする請求項１に記載の光センサ。
【請求項４】
前記発光制御手段は、前記少なくとも３個の発光素子の各々をパルス発光で、かつ時分割発光させる請求項１に記載の光センサ。
【請求項５】
前記発光素子は面発光レーザである請求項１に記載の光センサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発光素子と受光素子を用いて被検出物体の存在や移動を検知する光センサに関する。
【背景技術】
【０００２】
一般に、発光素子と受光素子を用いて指や手等の被検出物体の移動を検知する光センサが知られている（例えば、特許文献１、非特許文献１参照）。このような従来技術による光センサは、１個の受光素子の周囲を取囲んで３個の発光素子を設け、３個の発光素子毎に被検出物体からの反射光を受光して、３つの反射光の位相差に基づいて被検出物体の移動を検知する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２２７５７４号公報
【非特許文献】
【０００４】
【非特許文献１】“Silicon Labs AN580”, [online], インターネット＜URL：http://www.silabs.com/pages/DownloadDoc.aspx?FILEURL=Support%20Documents/TechnicalDocs/AN580.pdf&src=DocumentationWebPart＞
【発明の概要】
【０００５】
特許文献１に記載された光センサでは、３つの反射光が所定の閾値よりも大きくなる立上り時または所定の閾値よりも小さくなる立下り時をそれぞれ検出し、この立上り時または立下り時の時間差に基づいて位相差を求める。非特許文献１に記載された光センサでは、３つの反射光の波形のピークをそれぞれ検出し、このピークの時間差に基づいて位相差を求める。しかし、これらの方法では、受光素子に流れる３個の電流値の波形が相互に異なるときには、反射光の位相差を正確に求めることができず、移動方向の誤検知が発生するという問題がある。
【０００６】
本発明は前述の問題に鑑みなされたものであり、本発明の目的は、移動方向の誤検知を抑制することができる光センサを提供することにある。
【０００７】
（１）．上記課題を解決するために、本発明は、基板と、該基板の表面に実装された少なくとも３個の発光素子と、該少なくとも３個の発光素子の発光動作を制御する発光制御手段と、前記基板の表面に実装された少なくとも１個の受光素子とを備え、前記発光素子から出射された光が、被検出物体によって反射された光を前記受光素子で受光することによって該被検出物体の存在および移動を検知する光センサにおいて、前記少なくとも３個の発光素子による光が前記被検出物体によって反射された光を前記受光素子によって受光し、前記受光素子から出力される光検出信号に基づいて、前記３個の発光素子による光に対応した３つの反射光信号を取得する反射光信号取得手段と、３つの前記反射光信号の波形全体の差または相関に基づいて各々の位相差を求める位相差演算手段と、少なくとも２つの前記位相差に基づいて前記被検出物体の移動方向を特定する移動方向特定手段とを備えることを特徴としている。
【０００８】
本発明によれば、少なくとも３個の発光素子を用いるから、例えば３個の発光素子の光を被検出物体が反射したときに、各々の反射光の位相差を検出することによって、基板の表面に平行な２軸方向の動作を検知することができる。また、反射光の強度を検出することによって、基板に垂直な方向の動作も検知することができる。
【０００９】
また、位相差演算手段は、３つの反射光信号の波形全体の差または相関に基づいて各々の位相差を求めるから、受光素子に流れる３個の電流値の波形が相互に異なるときでも、これらの波形全体の差や相関を考慮して各々の位相差を求めることができる。このため、反射光信号のピーク等によって位相差を求める場合に比べて、位相差の検出精度を高めることができる。そして、移動方向特定手段は、位相差演算手段によって求めた位相差を用いて被検出物体の移動方向を判定するから、移動方向の誤検知を抑制することができる。
【００１０】
（２）．本発明では、前記位相差演算手段は、２つの前記反射光信号の位相差を求めるときには、一方の前記反射光信号を所定のシフト量だけ時間をシフトさせた状態で、他方の前記反射光信号との間の差の二乗を波形全体で加算し、この加算値が最小となるシフト量を位相差としている。
【００１１】
本発明によれば、位相差演算手段は、２つの反射光信号の位相差を求めるときには、一方の反射光信号を所定のシフト量だけ時間をシフトさせた状態で、他方の反射光信号との間の差の二乗を波形全体で加算し、この加算値が最小となるシフト量を位相差とする。このため、２つの反射光信号の波形全体の差を考慮して位相差を求めることができ、位相差の検出精度を高めることができる。
【００１２】
（３）．本発明では、前記位相差演算手段は、２つの前記反射光信号の位相差を求めるときには、一方の前記反射光信号を所定のシフト量だけ時間をシフトさせた状態で、２つの前記反射光信号の積和演算を行い、この演算値が最大となるシフト量を位相差としている。
【００１３】
本発明によれば、位相差演算手段は、２つの反射光信号の位相差を求めるときには、一方の反射光信号を所定のシフト量だけ時間をシフトさせた状態で、２つの反射光信号の積和演算を行い、この演算値が最大となるシフト量を位相差とする。このため、２つの反射光信号の波形全体の相互相関を考慮して位相差を求めることができ、位相差の検出精度を高めることができる。
【００１４】
（４）．本発明では、前記発光制御手段は、前記少なくとも３個の発光素子の各々をパルス発光で、かつ時分割発光させる。
【００１５】
本発明によれば、発光制御手段は、少なくとも３個の発光素子の各々をパルス発光で、かつ時分割発光させるから、１個の受光素子によって、各々の発光素子による反射光を検出することができる。このため、受光素子の個数を低減することができ、部品点数を削減して製造コストを低減することができる。
【００１６】
（５）．本発明では、前記発光素子は面発光レーザである。
【００１７】
本発明によれば、発光素子は面発光レーザであるから、例えば発光ダイオード等を用いた場合に比べて、光の出射角を小さくすることができ、検知分解能を上げ、Ｓ／Ｎを向上させることができる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施の形態による光センサを示す斜視図である。
【図２】図１の光センサを示す平面図である。
【図３】光センサを図２中の矢示III−III方向からみた断面図である。
【図４】第１，第２の実施の形態による光センサを示すブロック図である。
【図５】発光信号および反射光信号の時間変化を示す特性線図である。
【図６】被検出物体の移動方向を特定するための全体処理を示す流れ図である。
【図７】図６中の位相差Ｔ21の演算処理を示す流れ図である。
【図８】図６中の位相差Ｔ32の演算処理を示す流れ図である。
【図９】図６中の移動方向の特定処理を示す流れ図である。
【図１０】２つの位相差と光センサの角度との関係を示す説明図である。
【図１１】２つの位相差の比率と光センサの角度との関係を示す説明図である。
【図１２】２つの位相差の比率に基づいて、光センサの角度を特定するためのマップを示す説明図である。
【図１３】被検出物体をＸ軸方向に移動させた状態を示す説明図である。
【図１４】被検出物体をＸ軸方向に移動させたときの反射光信号の時間変化を示す特性線図である。
【図１５】被検出物体をＹ軸方向に移動させた状態を示す説明図である。
【図１６】被検出物体をＹ軸方向に移動させたときの反射光信号の時間変化を示す特性線図である。
【図１７】被検出物体で光センサの上方を覆った状態を示す説明図である。
【図１８】図１７中の矢示XVIII−XVIII方向からみた説明図である。
【図１９】光センサの上方を被検出物体が通過したときの反射光信号の時間変化を示す特性線図である。
【図２０】手をＸ軸方向に移動させた場合に、３個の発光素子からの光を遮る指の本数が全ての発光素子で同じ状態を示す説明図である。
【図２１】図２０に対応した反射光信号の時間変化を示す特性線図である。
【図２２】手をＸ軸方向に移動させた場合に、３個の発光素子からの光を遮る指の本数が発光素子毎に異なる状態を示す説明図である。
【図２３】図２２に対応した反射光信号の時間変化を示す特性線図である。
【図２４】反射光信号Ｓr1，Ｓr2の差分の二乗和とシフト量との関係を示す特性線図である。
【図２５】反射光信号Ｓr1，Ｓr2の時間変化を示す特性線図である。
【図２６】反射光信号Ｓr2，Ｓr3の差分の二乗和とシフト量との関係を示す特性線図である。
【図２７】反射光信号Ｓr2，Ｓr3の時間変化を示す特性線図である。
【図２８】第２の実施の形態による位相差Ｔ21の演算処理を示す流れ図である。
【図２９】第２の実施の形態による位相差Ｔ32の演算処理を示す流れ図である。
【図３０】第３の実施の形態による光センサを、透明樹脂層を省いて模式的に示す平面図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態による光センサについて、図面を参照しつつ詳細に説明する。
【００２０】
図１ないし図４に、第１の実施の形態による光センサ１を示す。光センサ１は、基板２、発光素子３〜５、受光素子６、信号処理回路１１等を備える。
【００２１】
基板２は、絶縁材料を用いて形成された平板である。基板２としては、例えばプリント配線基板が用いられる。基板２の表面２Ａには、発光素子３〜５と受光素子６とが実装される。
【００２２】
発光素子３〜５は、基板２の表面２Ａに実装され、赤外線や可視光線の光を出射する。発光素子３〜５の光軸は通常、例えば基板２の表面２Ａに対して垂直方向（Ｚ軸方向）である。発光素子３〜５としては、例えば発光ダイオード（ＬＥＤ）、レーザダイオード（ＬＤ）、面発光レーザ（ＶＣＳＥＬ）が用いられる。検知分解能を上げ、Ｓ／Ｎを向上させるためには、素子として元々出射角の小さいＶＣＳＥＬを発光素子３〜５として用いるのが好ましい。
【００２３】
３個の発光素子３〜５は、基板２の表面２Ａ上で一直線に並ばない位置に配置される。このため、基板２の表面２Ａには、３個の発光素子３〜５の内部に三角形領域ＴＡが形成される。
【００２４】
受光素子６は、基板２の表面２Ａに実装され、赤外線や可視光線の光を受光する。受光素子６としては、例えばフォトダイオード（ＰＤ）、フォトトランジスタ等が用いられる。受光素子６は、基板２の表面２Ａの三角形領域ＴＡの範囲内に配置される。なお、受光素子６は、三角形領域ＴＡの外側に配置してもよい。
【００２５】
基板２の表面２Ａには、透明樹脂層７が形成される。透明樹脂層７は、基板２の表面２Ａを全面に亘って覆い、発光素子３〜５および受光素子６を封止する。透明樹脂層７には、各発光素子３〜５と対応した位置に発光素子用レンズ７Ａ〜７Ｃが形成される。発光素子用レンズ７Ａ〜７Ｃは、上方に突出した略半球形状に形成される。
【００２６】
発光素子用レンズ７Ａ〜７Ｃの中心と発光素子３〜５の実装位置とは、一致する。このため、発光素子３〜５からの光束の光軸は、Ｚ軸方向に沿っている。なお、発光素子用レンズ７Ａ〜７Ｃの中心と発光素子３〜５の実装位置とをずらすことによって、発光素子３〜５からの光束の光軸をＺ軸方向から傾斜させてもよい。この場合、後述する位相差Ｔ21，Ｔ32が大きくなるように、発光素子３〜５からの光束の光軸を三角形領域ＴＡの外側に向けて出射させるのが好ましい。
【００２７】
また、透明樹脂層７には、受光素子６と対応した位置に受光素子用レンズ７Ｄが形成される。受光素子用レンズ７Ｄも、発光素子用レンズ７Ａ〜７Ｃと同様に半球形状に形成される。受光素子用レンズ７Ｄは、外部から入射される光を受光素子６に集光する。
【００２８】
なお、発光素子用レンズ７Ａ〜７Ｃおよび受光素子用レンズ７Ｄは、発光素子３〜５および受光素子６を封止する透明樹脂層７に一体的に形成したが、透明樹脂層７とは別個に設けてもよい。
【００２９】
次に、発光素子３〜５および受光素子６に接続された信号処理回路１１について説明する。
【００３０】
図４に示すように、信号処理回路１１は、発光素子駆動部１２、光検出信号増幅部１３、フィルタ部１４および演算処理部１５を備える。
【００３１】
発光素子駆動部１２は、演算処理部１５と協働して発光制御手段を構成する。発光素子駆動部１２は、発光素子３〜５に接続され、演算処理部１５からの制御信号に基づいて発光信号Ｓt1〜Ｓt3を出力する。具体的には、発光素子駆動部１２は、発光素子３〜５を発光させるための駆動電流を、発光素子３〜５に供給する。
【００３２】
光検出信号増幅部１３は、受光素子６に接続され、受光素子６から供給された光検出信号Ｓ0に対して電流−電圧変換を行い、電流−電圧変換された光検出信号Ｓ0を増幅する。フィルタ部１４は、光検出信号増幅部１３の後段に接続され、光検出信号増幅部１３から出力された光検出信号Ｓ0からノイズを除去する。
【００３３】
そして、信号処理回路１１は、発光素子駆動部１２を用いて発光素子３〜５を駆動し、光検出信号増幅部１３およびフィルタ部１４を用いて被検出物体Ｏbjからの反射光に応じた光検出信号Ｓ0を演算処理部１５に向けて出力する。
【００３４】
演算処理部１５は、例えばマイクロプロセッサであり、発光素子３〜５の発光を制御する処理、光検出信号Ｓ0から発光素子３〜５に対応した３つの反射光信号Ｓr1〜Ｓr3に分離する処理、３つの反射光信号Ｓr1〜Ｓr3に基づいて被検出物体Ｏbjの存在や移動を検知する処理、光センサ１の全体的な制御等を行う。
【００３５】
具体的には、演算処理部１５は、発光素子３〜５の検出光の強度やタイミングを制御するための制御信号を発光素子駆動部１２に供給し、この制御信号に対応するように発光素子３〜５を発光させる。ここで、発光素子駆動部１２は、発光信号Ｓt1〜Ｓt3としてパルス状の駆動電流を発光素子３〜５にそれぞれ供給する。発光信号Ｓt1〜Ｓt3のパルスは、一定の発光間隔Ｔ0を有すると共に、発光素子３〜５毎に異なるタイミングで出力される。これにより、発光素子３〜５は、各々をパルス発光で、かつ時分割発光する（図５参照）。
【００３６】
なお、発光素子３〜５は、時分割でパルス発光すればよい。このため、例えば発光素子３の発光が停止するのと同時に、次なる発光素子４の発光を開始してもよい。
【００３７】
また、演算処理部１５は、図６に示すプログラムを実行する。このプログラムでは、以下に示す手順によって、被検出物体Ｏbjの移動方向を特定する。
【００３８】
ステップ１では、受光素子６から光検出信号増幅部１３およびフィルタ部１４を介して供給された光検出信号Ｓ0を読込む。ステップ２では、光検出信号Ｓ0から３つの反射光信号Ｓr1〜Ｓr3を分離する。
【００３９】
ここで、発光素子３〜５は互いに異なるタイミングで時分割発光するから、発光素子３〜５の発光タイミング毎に、それぞれの発光素子３〜５からの光を被検出物体Ｏbjが反射した反射光が受光される。このため、光検出信号Ｓ0から発光信号Ｓt1〜Ｓt3と同期した３つの信号を取り出すことによって、それぞれの発光素子３〜５からの光に基づく反射光の信号を分離することができる。
【００４０】
そこで、演算処理部１５は、光検出信号Ｓ0を発光素子３〜５の発光タイミング毎に取り出し、発光素子３〜５の反射光に応じた３つの反射光信号Ｓr1〜Ｓr3に分離する。このとき、反射光信号Ｓr1〜Ｓr3は、発光タイミング毎に抽出したパルス状の光検出信号Ｓ0を包絡線検波したものに相当する。
【００４１】
この場合、１個の受光素子６によって各々の発光素子３〜５による反射光を検出することができるから、受光素子６の個数を低減することができ、部品点数を削減して製造コストを低減することができる。
【００４２】
続くステップ３では、反射光信号Ｓr1，Ｓr2間の位相差Ｔ21を演算し、ステップ４では、反射光信号Ｓr2，Ｓr3間の位相差Ｔ32を演算する。このとき、位相差Ｔ21，Ｔ32は、反射光信号Ｓr1〜Ｓr3の波形全体の差に基づいて演算する。そして、ステップ５では、これらの位相差Ｔ21，Ｔ32に基づいて、被検出物体Ｏbjの移動方向を特定する。
【００４３】
次に、図６中のステップ３に示す位相差Ｔ21の演算処理について、図７を参照して説明する。
【００４４】
ステップ１１では、反射光信号Ｓr1，Ｓr2に基づいて、波形全体の差分を計算するための範囲として、波形の開始時刻ｔ0と終了時刻ｔ1を決める。ここでは、反射光信号Ｓr2が所定の閾値よりも増加する立上り時刻を開始時刻ｔ0とし、反射光信号Ｓr2が所定の閾値よりも減少する立下り時刻を終了時刻ｔ1とした場合を例に挙げて説明する。
【００４５】
なお、開始時刻ｔ0と終了時刻ｔ1は、上述したものに限らず、例えば反射光信号Ｓr1の立上り時刻と立下り時刻に設定してもよい。また、反射光信号Ｓr1，Ｓr2のうち立上り時刻と立下り時刻の時間差が大きいものに基づいて、開始時刻ｔ0と終了時刻ｔ1を設定してもよく、立上り時刻と立下り時刻の時間差が小さいものに基づいて、開始時刻ｔ0と終了時刻ｔ1を設定してもよい。さらに、反射光信号Ｓr1，Ｓr2のうち立上り時刻が早いものに基づいて、開始時刻ｔ0と終了時刻ｔ1を設定してもよい。また、被検出物体Ｏbjの大きさや移動速度が予測可能な場合には、これらに基づいて、開始時刻ｔ0と終了時刻ｔ1との時間差を予め設定しておいてもよい。
【００４６】
ステップ１２では、反射光信号Ｓr1，Ｓr2に基づいて、位相差Ｔ21の検出範囲として、反射光信号Ｓr2の波形を負側または正側にシフトさせる最大値（±ｘ0）を決める。シフト量ｘの最大値（±ｘ0）は、例えば反射光信号Ｓr2の波形の開始時刻ｔ0と終了時刻ｔ1との時間差に基づいて設定する。シフト量の最大値（±ｘ0）は、例えば反射光信号Ｓr2の波形の開始時刻ｔ0と終了時刻ｔ1との時間差と同程度の値でもよく、半分程度の値でもよい。
【００４７】
なお、シフト量の最大値（±ｘ0）は、反射光信号Ｓr2の波形の開始時刻ｔ0と終了時刻ｔ1との時間差よりも小さい値に設定してもよく、大きい値に設定してもよい。また、シフト量の最大値（±ｘ0）は、反射光信号Ｓr1の波形に基づいて設定してもよい。シフト量の最大値（±ｘ0）が実験的に予測可能であれば、シフト量の最大値（±ｘ0）を、実験に基づく値に予め設定しておいてもよい。
【００４８】
ステップ１３では、シフト量ｘを初期値としての負の最大値（−ｘ0）に設定する。ステップ１４では、以下の数１に示す関数Ｚd1（ｘ）を用いて、反射光信号Ｓr2をシフト量ｘだけ時間をシフトさせ、この状態で反射光信号Ｓr1との差分の二乗和を演算する。なお、関数Ｚd1（ｘ）は離散値の総和を演算するものとしたが、連続値の積分を演算してもよい。
【００４９】
【数１】
2013141021.tif 000003
【００５０】
続くステップ１５では、シフト量ｘを予め設定された所定値Δｘ（Δｘ＞０）だけ増加させ、ステップ１６では、シフト量ｘが正の最大値（＋ｘ0）よりも大きいか否かを判定する。所定値Δｘは、位相差Ｔ21の検出間隔に相当し、最大値（＋ｘ0）よりも小さい値に設定される。
【００５１】
そして、ステップ１６で「ＮＯ」と判定したときには、ステップ１４，１５の処理を繰り返す。一方、ステップ１６で「ＹＥＳ」と判定したときには、シフト量ｘが正の最大値（＋ｘ0）よりも大きくなっているから、ステップ１７に移行して、関数Ｚd1（ｘ）が最小となるシフト量ｘ21を位相差Ｔ21として出力する。
【００５２】
次に、図６中のステップ４に示す位相差Ｔ32の演算処理について、図８を参照して説明する。
【００５３】
位相差Ｔ32の演算処理によるステップ２１〜２７は、位相差Ｔ21の演算処理によるステップ１１〜１７とほぼ同様である。このため、ステップ２１では、反射光信号Ｓr2，Ｓr3に基づいて、波形全体の差分を計算するための範囲として、波形の開始時刻ｔ0と終了時刻ｔ1を決める。ステップ２２では、反射光信号Ｓr2，Ｓr3に基づいて、位相差Ｔ32の検出範囲として、反射光信号Ｓr2の波形を負側または正側にシフトさせる最大値（±ｘ0）を決める。ステップ２１，２２では、例えばステップ１１，１２と同じ値の時刻ｔ0，ｔ1とシフト量ｘの最大値（±ｘ0）が設定される。
【００５４】
ステップ２３では、シフト量ｘを初期値としての負の最大値（−ｘ0）に設定する。ステップ２４では、以下の数２に示す関数Ｚd2（ｘ）を用いて、反射光信号Ｓr3をシフト量ｘだけ時間をシフトさせ、この状態で反射光信号Ｓr2との差分の二乗和を演算する。なお、関数Ｚd2（ｘ）は離散値の総和を演算するものとしたが、連続値の積分を演算してもよい。
【００５５】
【数２】
2013141021.tif 000004
【００５６】
続くステップ２５では、シフト量ｘを予め設定された所定値Δｘ（Δｘ＞０）だけ増加させ、ステップ２６では、シフト量ｘが正の最大値（＋ｘ0）よりも大きいか否かを判定する。そして、ステップ２６で「ＮＯ」と判定したときには、ステップ２４，２５の処理を繰り返す。一方、ステップ２６で「ＹＥＳ」と判定したときには、ステップ２７に移行して、関数Ｚd2（ｘ）が最小となるシフト量ｘ32を位相差Ｔ32として出力する。
【００５７】
なお、位相差Ｔ21，Ｔ32の精度を高めるためには、波形の範囲としての開始時刻ｔ0と終了時刻ｔ1との時間差と、シフト量ｘの範囲となる最大値（±ｘ0）はできるだけ大きな値に設定した方がよく、所定値Δｘはできるだけ小さい値に設定した方がよい。しかし、波形の範囲とシフト量ｘの範囲が大きくなり、所定値Δｘが小さくなるに従って、演算量の増大や処理速度の低下が発生する。このため、位相差Ｔ21，Ｔ32の精度が許容できる範囲で、積分の範囲とシフト量ｘの範囲はできるだけ小さい値に設定され、所定値Δｘはできるだけ大きい値に設定される。
【００５８】
次に、図６中のステップ５に示す移動方向の特定処理について、図９ないし図１２を参照して説明する。
【００５９】
ステップ３１では、以下の数３の式に基づいて、位相差Ｔ21と位相差Ｔ32の比率ｆ（θ）を求める。
【００６０】
【数３】
2013141021.tif 000005
【００６１】
続くステップ３２では、位相差Ｔ21，Ｔ32の比率ｆ（θ）を、図１２に示すマップＭに当てはめることによって、被検出物体Ｏbjの移動方向を特定する。
【００６２】
ここで、マップＭの具体的な作成方法について説明する。図１０に示すように、例えば発光素子３〜５を円周上に配置すると共に、円周の中心に対して右側位置を０°としたときに、発光素子３を１８０°の位置に配置し、発光素子４を９０°の位置に配置し、発光素子５を０°の位置に配置した場合を考える。被検出物体Ｏbjの移動速度は等速と仮定し、被検出物体Ｏbjが０°方向に進むものとし、光センサ１を回転させたときの角度（回転角度）をθとする。角度θを変化させると、０°方向に対する発光素子３，４間の距離Ｌ21と発光素子４，５間の距離Ｌ32が幾何学的に変化する。また、被検出物体Ｏbjが等速で移動すると仮定すると、距離Ｌa，Ｌbは、被検出物体Ｏbjが移動するときの所要時間（位相差Ｔ21，Ｔ32）から見積もることができる。
【００６３】
この場合、距離Ｌ21，Ｌ32の比率は、数３の式に示す比率ｆ（θ）に一致すると共に、以下の数４に示すように、幾何学的に角度θを変数とする関数になる。
【００６４】
【数４】
2013141021.tif 000006
【００６５】
この比率ｆ（θ）と角度θとの関係を図示すると、図１１に示す通りとなる。距離Ｌ21が正の場合（Ｌ21＞０）と負の場合（Ｌ21＜０）とで場合分けすると、角度θと比率ｆ（θ）が一対一で対応する。従って、比率ｆ（θ）に基づいて、被検出物体Ｏbjの移動方向となる角度θを求めることができる。
【００６６】
図１２に示すマップＭは、単純化のために、比率ｆ（θ）の範囲によって角度θを３０°刻みで求めたものである。ここで、正側の第１閾値ｆ1は、角度θが１６５°または３４５°の場合の比率ｆ（θ）であり、負側の第１閾値（−ｆ1）は、角度θが１０５°または２８５°の場合の比率ｆ（θ）である。また、正側の第２閾値ｆ2は、角度θが１５°または１９５°の場合の比率ｆ（θ）であり、負側の第２閾値（−ｆ2）は、角度θが７５°または２５５°の場合の比率ｆ（θ）である。
【００６７】
なお、前述では、発光素子３〜５を円周上で所定の角度位置に配置した場合を例に挙げて説明したが、これらの角度位置は適宜設定することができる。また、発光素子３〜５は必ずしも円周上に配置する必要はなく、基板２上の任意の位置に配置することができる。さらに、マップＭを用いずに、数４の式を用いて角度θを直接的に逆算してもよい。
【００６８】
次に、図１３ないし図１９を用いて、光センサ１による被検出物体Ｏbjの検出動作について説明する。
【００６９】
光センサ１が駆動すると、発光素子３〜５は基板２の上方に向けて光を出射する。この状態で基板２の上方を手や指等の被検出物体Ｏbjが通過すると、発光素子３〜５の光路を被検出物体Ｏbjが遮る。これにより、被検出物体Ｏbjは発光素子３〜５からの光を反射する。この反射光は受光素子６によって受光され、受光素子６は、反射光の強度に応じた電流を光検出信号Ｓ0として出力する。
【００７０】
演算処理部１５は、受光素子６からの光検出信号Ｓ0から３つの反射光信号Ｓr1〜Ｓr3を分離し、これらの位相差Ｔ21，Ｔ32を演算する。そして、演算処理部１５は、２つの位相差Ｔ21，Ｔ32に基づいて、被検出物体Ｏbjの移動方向、位置、移動速度等を特定する。
【００７１】
移動方向等の特定方法は、以下に示す通りである。ここでは、被検出物体Ｏbjとして手の指を例に挙げて説明する。図１３および図１４に示すように、Ｘ軸方向に沿って被検出物体Ｏbjが移動したときには、発光素子３，４，５の順番で、これらの上方を被検出物体Ｏbjが通過する。このため、反射光信号Ｓr1，Ｓr2，Ｓr3の順番でこれらのピークが発生するから、位相差Ｔ21，Ｔ32もこのようなピークの発生順序に応じた値になる。この結果、位相差Ｔ21，Ｔ32に基づいて、被検出物体ＯbjがＸ軸方向に沿って移動していること、および被検出物体Ｏbjの移動速度を検出することができる。
【００７２】
一方、図１５および図１６に示すように、Ｙ軸方向に沿って被検出物体Ｏbjが移動したときには、発光素子５，３，４の順番で、これらの上方を被検出物体Ｏbjが通過する。このとき、位相差Ｔ21，Ｔ32もこのような通過順序に応じた値になるから、位相差Ｔ21，Ｔ32に基づいて、被検出物体ＯbjがＹ軸方向に沿って移動していること、および被検出物体Ｏbjの移動速度を検出することができる。
【００７３】
また、図１７ないし図１９に示すように、反射光信号Ｓr1〜Ｓr3の大きさは、被検出物体ＯbjのＺ軸方向の位置に応じて変化する。即ち、被検出物体Ｏbjが光センサ１に近い位置に配置されたときには、反射光が強くなり、反射光信号Ｓr1〜Ｓr3も大きくなる。一方、被検出物体Ｏbjが光センサ１から離れた位置に配置されたときには、反射光が弱くなり、反射光信号Ｓr1〜Ｓr3も小さくなる。このため、反射光信号Ｓr1〜Ｓr3の大きさに応じて、Ｚ軸方向の位置を検出できると共に、反射光信号Ｓr1〜Ｓr3の大きさの変化に応じて、被検出物体ＯbjがＺ軸方向に沿って移動していること、および被検出物体Ｏbjの移動速度を検出することができる。
【００７４】
また、発光素子３〜５として、例えばＶＣＳＥＬのような高い分解能を有する素子を用いると、被検出物体Ｏbjの表面の凹凸に応じて、反射光信号Ｓr1〜Ｓr3の大きさが変化する。このため、図２０および図２１に示すように、例えば被検出物体Ｏbjとしての手がＸ軸方向に沿って移動したときには、指等の凹凸に応じて、反射光信号Ｓr1〜Ｓr3の大きさが変化し、反射光信号Ｓr1〜Ｓr3には複数のピークが発生する。
【００７５】
一方、図２２に示すように、例えば被検出物体Ｏbjとして手を用いたときには、発光素子３〜５からの光が照射される部分の形状が発光素子３〜５毎に異なることがある。図２２に示す例では、発光素子３，５からの光は人差し指、中指、薬指、小指の４本の指に照射されるが、発光素子４からの光は、小指を除いた３本の指にしか照射されない。この場合、図２３に示すように、反射光信号Ｓr1，Ｓr3と反射光信号Ｓr2は互いのピークの数が異なる。このため、反射光信号Ｓr1〜Ｓr3のピーク、立上り、立下り等を用いたときには、正確な位相差Ｔ21，Ｔ32を求めることができないことがある。
【００７６】
これに対し、第１の実施の形態による光センサ１では、反射光信号Ｓr1〜Ｓr3の波形全体の差に基づいて位相差Ｔ21，Ｔ32を求める。例えば図２３に示す反射光信号Ｓr1〜Ｓr3について、シフト量ｘと反射光信号Ｓr1，Ｓr2の差分の二乗和の関数Ｚd1（ｘ）との関係は、図２４に示す通りとなる。このとき、関数Ｚd1（ｘ）の極小値は１つだけとなるから、この極小値に対応したシフト量ｘ21が位相差Ｔ21として検出される。図２５中に２点鎖線で示すように、シフト量ｘ21だけ反射光信号Ｓr2をシフトさせると、反射光信号Ｓr1，Ｓr2の波形が互いに対応していることが分かる。
【００７７】
一方、シフト量ｘと反射光信号Ｓr2，Ｓr3の差分の二乗和の関数Ｚd2（ｘ）との関係は、図２６に示す通りとなる。このとき、関数Ｚd2（ｘ）の極小値は２つ存在するが、この中で最小の極小値に対応したシフト量ｘ32が位相差Ｔ32として検出される。図２７中に２点鎖線で示すように、シフト量ｘ32だけ反射光信号Ｓr3をシフトさせると、反射光信号Ｓr2，Ｓr3の波形が互いに対応していることが分かる。なお、残余の極小値に対応したシフト量ｘは、指１本ずれた位置に対応したものである。
【００７８】
このように、第１の実施の形態では、反射光信号Ｓr1〜Ｓr3の波形が相互に異なる場合でも、正確な位相差Ｔ21，Ｔ32を求めることができる。この結果、Ｘ軸方向やＹ軸方向に限らず、Ｘ軸方向やＹ軸方向から斜めに傾斜した移動方向でも正確に検出することができる。
【００７９】
なお、図６中のステップ１，２は反射光信号取得手段の具体例を示し、図６中のステップ３，４、図７中のステップ１３〜１７、図８中のステップ２３〜２７は位相差演算手段の具体例を示し、図６中のステップ５は移動方向特定手段の具体例を示している。
【００８０】
次に、図４、図２８および図２９を用いて、本発明の第２の実施の形態について説明する。第２の実施の形態では、３つの反射光信号の相互相関に基づいて位相差を求める。なお、第２の実施の形態において、第１の実施の形態と同一の構成要素は同一の符号を付し、その説明を省略する。
【００８１】
第２の実施の形態による光センサ２１は、第１の実施の形態による光センサ１とほぼ同様に構成される。このため、基板２には、３個の発光素子３〜５と受光素子６が設けられると共に、信号処理回路２２が実装される。信号処理回路２２は、第１の実施の形態による信号処理回路１１とほぼ同様に構成され、発光素子駆動部１２、光検出信号増幅部１３、フィルタ部１４および演算処理部１５を備える。
【００８２】
第２の実施の形態による演算処理部１５は、第１の実施の形態と同様に、図６に示すプログラムを実行し、被検出物体Ｏbjの移動方向を特定する。第２の実施の形態による演算処理部１５は、図６中のステップ３，４において、反射光信号Ｓr1〜Ｓr3の相互相関に基づいて位相差Ｔ21，Ｔ32を求める。
【００８３】
次に、第２の実施の形態による位相差Ｔ21の演算処理について、図２８を参照して説明する。
【００８４】
ステップ４１では、反射光信号Ｓr1，Ｓr2に基づいて、波形の相関を計算するための範囲として、波形の開始時刻ｔ0と終了時刻ｔ1を決める。ステップ４２では、反射光信号Ｓr1，Ｓr2に基づいて、位相差Ｔ21の検出範囲として、反射光信号Ｓr2の波形を負側または正側にシフトさせる最大値（±ｘ0）を決める。
【００８５】
ステップ４３では、シフト量ｘを初期値としての負の最大値（−ｘ0）に設定する。ステップ４４では、以下の数５に示す関数Ｚc1（ｘ）を用いて、反射光信号Ｓr2をシフト量ｘだけ時間をシフトさせ、この状態で反射光信号Ｓr2との積和を演算する。このとき、関数Ｚc1（ｘ）は、反射光信号Ｓr1，Ｓr2の相関関数である。なお、関数Ｚc1（ｘ）は離散値の総和を演算するものとしたが、連続値の積分を演算してもよい。
【００８６】
【数５】
2013141021.tif 000007
【００８７】
続くステップ４５では、シフト量ｘを予め設定された所定値Δｘ（Δｘ＞０）だけ増加させ、ステップ４６では、シフト量ｘが正の最大値（＋ｘ0）よりも大きいか否かを判定する。そして、ステップ４６で「ＮＯ」と判定したときには、ステップ４４，４５の処理を繰り返す。一方、ステップ４６で「ＹＥＳ」と判定したときには、ステップ４７に移行して、関数Ｚc1（ｘ）が最大となるシフト量ｘ21を位相差Ｔ21として出力する。
【００８８】
次に、第２の実施の形態による位相差Ｔ32の演算処理について、図２９を参照して説明する。
【００８９】
ステップ５１では、反射光信号Ｓr2，Ｓr3に基づいて、波形の相関を計算するための範囲として、波形の開始時刻ｔ0と終了時刻ｔ1を決める。ステップ５２では、反射光信号Ｓr2，Ｓr3に基づいて、位相差Ｔ32の検出範囲として、反射光信号Ｓr2の波形を負側または正側にシフトさせる最大値（±ｘ0）を決める。
【００９０】
ステップ５３では、シフト量ｘを初期値としての負の最大値（−ｘ0）に設定する。ステップ５４では、以下の数６に示す関数Ｚc2（ｘ）を用いて、反射光信号Ｓr3をシフト量ｘだけ時間をシフトさせ、この状態で反射光信号Ｓr2との積和を演算する。このとき、関数Ｚc2（ｘ）は、反射光信号Ｓr2，Ｓr3の相関関数である。なお、関数Ｚc2（ｘ）は離散値の総和を演算するものとしたが、連続値の積分を演算してもよい。
【００９１】
【数６】
2013141021.tif 000008
【００９２】
続くステップ５５では、シフト量ｘを予め設定された所定値Δｘ（Δｘ＞０）だけ増加させ、ステップ５６では、シフト量ｘが正の最大値（＋ｘ0）よりも大きいか否かを判定する。そして、ステップ５６で「ＮＯ」と判定したときには、ステップ５４，５５の処理を繰り返す。一方、ステップ５６で「ＹＥＳ」と判定したときには、ステップ５７に移行して、関数Ｚc2（ｘ）が最大となるシフト量ｘ32を位相差Ｔ32として出力する。
【００９３】
かくして、第２の実施の形態でも、第１の実施の形態とほぼ同様な作用効果を得ることができる。なお、第２の実施の形態では、図２８中のステップ４３〜４７、図２９中のステップ５３〜５７が位相差演算手段の具体例を示している。
【００９４】
次に、図３０を用いて、本発明の第３の実施の形態について説明する。第３の実施の形態では、３個の発光素子に対応して３個の受光素子を備える。なお、第３の実施の形態において、第１の実施の形態と同一の構成要素は同一の符号を付し、その説明を省略する。
【００９５】
第３の実施の形態による光センサ３１では、基板２には３個の受光素子３２〜３４が実装される。受光素子３２は、発光素子３の近傍に位置して発光素子３からの光に基づく反射光を受光する。受光素子３３は、発光素子４の近傍に位置して発光素子４からの光に基づく反射光を受光する。受光素子３４は、発光素子５の近傍に位置して発光素子５からの光に基づく反射光を受光する。
【００９６】
この場合、発光素子３〜５はパルス発光で時分割発光する必要はなく、連続発光してもよい。
【００９７】
かくして、第３の実施の形態でも、第１の実施の形態とほぼ同様な作用効果を得ることができる。この場合、３個の受光素子３２〜３４から出力される光検出信号が反射光信号Ｓr1〜Ｓr3にそれぞれ対応するから、３個の受光素子３２〜３４は、反射光信号取得手段の一部を構成する。
【００９８】
なお、第３の実施の形態は、第２の実施の形態にも適用することができる。また、第３の実施の形態では、３個の受光素子３２〜３４を備える場合を例に挙げて説明したが、２個の受光素子を備える構成としてもよく、４個以上の受光素子を備える構成としてもよい。
【００９９】
前記各実施の形態では、３個の発光素子３〜５を備える場合を例に挙げて説明したが、４個以上の発光素子を備える構成としてもよい。
【０１００】
前記各実施の形態では、信号処理回路１１，２２は基板２に実装する構成としたが、基板２と別個に設けてもよい。
【０１０１】
前記各実施の形態では、反射光信号Ｓr1，Ｓr2間の位相差Ｔ21と反射光信号Ｓr2，Ｓr3間の位相差Ｔ32を用いて被検出物体Ｏbjの移動方向等を特定する場合を例に挙げて説明した。しかし、本発明はこれに限らず、例えば位相差Ｔ21，Ｔ32のいずれかに代えて、反射光信号Ｓr1，Ｓr3間の位相差Ｔ31を用いてもよく、これら３つの位相差Ｔ21，Ｔ32，Ｔ31を用いてもよい。
【符号の説明】
【０１０２】
１，２１，３１  光センサ
２  基板
２Ａ  表面
３〜５  発光素子
６，３２〜３４  受光素子
１１，２２  信号処理回路
１２  発光素子駆動部（発光制御手段）
１５  演算処理部
【図１】
2013141021.tif 000009
【図２】
2013141021.tif 000010
【図３】
2013141021.tif 000011
【図４】
2013141021.tif 000012
【図５】
2013141021.tif 000013
【図６】
2013141021.tif 000014
【図７】
2013141021.tif 000015
【図８】
2013141021.tif 000016
【図９】
2013141021.tif 000017
【図１０】
2013141021.tif 000018
【図１１】
2013141021.tif 000019
【図１２】
2013141021.tif 000020
【図１３】
2013141021.tif 000021
【図１４】
2013141021.tif 000022
【図１５】
2013141021.tif 000023
【図１６】
2013141021.tif 000024
【図１７】
2013141021.tif 000025
【図１８】
2013141021.tif 000026
【図１９】
2013141021.tif 000027
【図２０】
2013141021.tif 000028
【図２１】
2013141021.tif 000029
【図２２】
2013141021.tif 000030
【図２３】
2013141021.tif 000031
【図２４】
2013141021.tif 000032
【図２５】
2013141021.tif 000033
【図２６】
2013141021.tif 000034
【図２７】
2013141021.tif 000035
【図２８】
2013141021.tif 000036
【図２９】
2013141021.tif 000037
【図３０】
2013141021.tif 000038
【国際調査報告】
2013141021.tif 000039
2013141021.tif 000040