(57)【要約】【課題】スケールとセンサが相対移動する間にセンサからのアナログ信号の最大値や最小値が増減する場合でも、２値化により良好なパルス信号を生成する。【解決手段】エンコーダ信号処理装置は、周期的なパターンが設けられたスケールと該スケール１０１３ｃと相対移動することにより周期的に変化するアナログ信号としてのセンサ信号を出力するセンサ１０１３ａとにより構成されるエンコーダ１０１３からのセンサ信号を閾値と比較することでパルス信号を生成するパルス生成手段１０４４と、閾値を設定する閾値設定処理を行う閾値設定手段１０４３とを有する。閾値設定手段は、閾値設定処理において、センサ信号の極大値の最小値と極小値の最大値とに基づいて閾値設定可能範囲を設け、該閾値設定可能範囲内で閾値を設定する。【選択図】図２
2017003403.tif 000002
【特許請求の範囲】
【請求項１】
周期的なパターンが設けられたスケールと該スケールと相対移動することにより周期的に変化するアナログ信号としてのセンサ信号を出力するセンサとにより構成されるエンコーダからの前記センサ信号を閾値と比較することでパルス信号を生成するパルス生成手段と、
前記閾値を設定する処理を行う閾値設定手段とを有し、
前記閾値設定手段は、前記センサ信号の極大値の最小値と極小値の最大値とに基づいて閾値設定可能範囲を設け、該閾値設定可能範囲内で前記閾値を設定することを特徴とするエンコーダ信号処理装置。
【請求項２】
前記閾値設定手段は、前記スケールと前記センサとが所定移動量だけ相対移動する間の前記極大値の最小値と前記極小値の最大値とに基づいて前記閾値設定可能範囲を設けることを特徴とする請求項１に記載のエンコーダ信号処理装置。
【請求項３】
前記閾値設定手段は、前記パルス信号が所定のデューティを有するように前記閾値設定可能範囲内で前記閾値を設定することを特徴とする請求項１または２に記載のエンコーダ信号処理装置。
【請求項４】
前記閾値設定手段は、前記センサ信号の所定周期ごとに前記閾値を設定し、該所定周期ごとに設定した前記閾値の平均値を、前記処理の後で使用する前記閾値として設定することを特徴とする請求項１から３のいずれか一項に記載のエンコーダ信号処理装置。
【請求項５】
前記センサ信号は、互いに位相が異なる第１のセンサ信号および第２のセンサ信号であり、
前記閾値設定手段は、前記第１のセンサ信号および前記第２のセンサ信号のそれぞれに対して前記閾値設定可能範囲を設けるとともに前記閾値としての第１の閾値および第２の閾値を設定し、
前記パルス生成手段は、前記第１のセンサ信号および前記第２のセンサ信号のそれぞれから、前記第１および第２の閾値を用いて前記パルス信号である第１のパルス信号および第２のパルス信号を生成することを特徴とする請求項１から３のいずれか一項に記載のエンコーダ信号処理装置。
【請求項６】
前記閾値設定手段は、前記第１のパルス信号と前記第２のパルス信号のエッジ間の時間間隔が所定値より短くなることに応じて前記処理を行うことを特徴とする請求項５に記載のエンコーダ信号処理装置。
【請求項７】
前記パルス生成手段は、前記処理が行われている間は、該処理において設定される前記閾値とは別の仮閾値を用いて前記パルス信号を生成することを特徴とする請求項１から６のいずれか一項に記載のエンコーダ信号処理装置。
【請求項８】
前記スケールには、前記パターンとして遮光部と透光部とが交互に設けられており、
前記センサは、前記透光部を通過した光を受光して前記センサ信号を出力することを特徴とする請求項１から７のいずれか一項に記載のエンコーダ信号処理装置。
【請求項９】
請求項１から８のいずれか一項に記載のエンコーダ信号処理装置と、
前記エンコーダとを有することを特徴とするエンコーダ使用装置。
【請求項１０】
該エンコーダ使用装置は、カメラ本体に対してレンズ鏡筒が格納位置と撮影可能位置との間で移動可能なカメラであり、
前記閾値設定手段は、前記処理を、前記レンズ鏡筒が前記格納位置と前記撮影可能位置との間で移動する際に行うことを特徴とする請求項９に記載のエンコーダ使用装置。
【請求項１１】
周期的なパターンが設けられたスケールと該スケールと相対移動することにより周期的に変化するアナログ信号としてのセンサ信号を出力するセンサとにより構成されるエンコーダからの前記センサ信号に対する処理をコンピュータに実行させるコンピュータプログラムであって、
前記処理は、
前記センサ信号を閾値と比較することでパルス信号を生成するステップと、
前記閾値を設定する閾値設定処理を行うステップとを含み、
前記閾値設定処理において、前記センサ信号の極大値の最小値と極小値の最大値とに基づいて閾値設定可能範囲を設け、該閾値設定可能範囲内で前記閾値を設定することを特徴とするエンコーダ信号処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置検出や速度検出に用いられるエンコーダに関し、例えば光学機器におけるレンズの位置や駆動速度の検出に好適なエンコーダに関する。
【背景技術】
【０００２】
上記のようなエンコーダとして、例えば光センサの一種であるフォトインタラプタ（以下、センサという）と該センサの発光部と受光部との間で回転するスケールとしてのスリット板とにより構成されるものがある。スリット板にはスリット（透光部）と遮光部とが回転方向に交互に設けられている。センサの発光部と受光部との間にスリットが位置するときには受光部から電流（アナログ信号）が出力され、発光部と受光部との間に遮光部が位置するときには電流がほとんど出力されない。このスリット板が位置または速度の検出対象物の移動とともに回転することにより、正弦波状のアナログ信号が得られる。そして、この正弦波状のアナログ信号をコンパレータによって２値化してパルス信号を生成し、そのパルス数をカウントすることにより検出対象物の位置情報を取得したり、単位時間あたりのパルス数から検出対象物の速度情報を取得したりすることができる。
【０００３】
コンパレータは、センサの受光部からのアナログ信号の値が所定の閾値よりも大きいときにＨｉｇｈを出力し、該閾値よりも小さいときにＬｏｗを出力することで２値化（パルス生成）を行う。閾値をセンサから出力されるアナログ信号の最大値と最小値の中間値に設定することで、５０％デューティのパルス信号が得られる。
【０００４】
ただし、閾値を初期設定時から固定値としたままでは、センサの経時劣化や温度変化によるスリット板の変形等によってセンサから出力されるアナログ信号の最大値が変動し、該閾値がアナログ信号の最大値と最小値の中間値ではなくなる場合がある。この結果、５０％デューティのパルス信号を得るための良好な２値化が行えなくなる。特許文献１には、このような場合に対する対策として、所定期間内に検出したセンサからのアナログ信号の最大値と最小値の平均値から閾値を設定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２５７５９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１にて開示されているようにアナログ信号の最大値と最小値の平均値を閾値に設定するだけでは、良好なパルス信号を生成することができない場合がある。具体的には、スリット板の製造誤差やスリット板に付着したゴミの影響によって、スリット板が１回転する間のセンサからのアナログ信号の最大値および最小値が増減する場合がある。この場合に、例えば減少した最大値が特許文献１のように設定された閾値をわずかに上回るだけでは５０％よりはるかに低いデューティに相当する期間しかＨｉｇｈがコンパレータから出力されない。また、減少した最大値が上記閾値に到達しなければコンパレータからのＨｉｇｈ出力すら行われない。すなわち、アナログ信号が読み飛ばされる。
【０００７】
本発明は、スケールとセンサが相対移動する間にセンサからのアナログ信号の最大値や最小値が増減する場合でも、アナログ信号から良好なパルス信号を生成することができるようにしたエンコーダ信号処理装置およびこれを用いたエンコーダ使用装置を提供する。
【課題を解決するための手段】
【０００８】
本発明の一側面としてのエンコーダ信号処理装置は、周期的なパターンが設けられたスケールと該スケールと相対移動することにより周期的に変化するアナログ信号としてのセンサ信号を出力するセンサとにより構成されるエンコーダからのセンサ信号を閾値と比較することでパルス信号を生成するパルス生成手段と、閾値を設定する処理を行う閾値設定手段とを有する。そして、閾値設定手段は、センサ信号の極大値の最小値と極小値の最大値とに基づいて閾値設定可能範囲を設け、該閾値設定可能範囲内で閾値を設定することを特徴とする。
【０００９】
なお、上記エンコーダ信号処理装置とエンコーダとを有するエンコーダ使用装置も本発明の他の一側面を構成する。
【００１０】
さらに、本発明の他の一側面としてのエンコーダ信号処理プログラムは、周期的なパターンが設けられたスケールと該スケールと相対移動することにより周期的に変化するアナログ信号としてのセンサ信号を出力するセンサとにより構成されるエンコーダからのセンサ信号に対する処理をコンピュータに実行させるコンピュータプログラムである。該処理は、センサ信号を閾値と比較することでパルス信号を生成するステップと、閾値を設定する閾値設定処理を行うステップとを含む。そして、閾値設定処理において、センサ信号の極大値の最小値と極小値の最大値とに基づいて閾値設定可能範囲を設け、該閾値設定可能範囲内で閾値を設定することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、スケールとセンサとが相対移動する間にセンサからのアナログ信号の最大値や最小値が増減しても、このアナログ信号の２値化のための閾値を適切に設定することができる。したがって、良好なパルス信号を生成することができる。そして、このパルス信号を用いた高精度な位置検出や速度検出を通じた各種制御を行えるエンコーダ使用装置を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施例１であるエンコーダ信号処理装置を含むカメラの構成を示すブロック図。
【図２】上記カメラにおける駆動コントローラとレンズ鏡筒の構成を示すブロック図。
【図３】上記レンズ鏡筒に設けられたエンコーダの構成を示す図。
【図４】上記エンコーダのセンサから出力されるアナログ信号とパルス信号を示す図。
【図５】不適切な閾値で２値化した場合のパルス信号を示す図。
【図６】実施例１における閾値設定処理を示すフローチャート。
【図７】実施例１におけるパルス信号のエッジ間隔によるズーム駆動速度の検出を示す図。
【図８】上記閾値設定処理時の閾値とパルス信号を示す図。
【図９】実施例１におけるセンサからのアナログ信号の変動が大きい場合の対策を示す図。
【図１０】実施例２における上記閾値設定処理の影響によるズーム駆動速度の変動を示す図。
【図１１】実施例２のカメラにおける電源ＯＮ処理を示すフローチャート。
【図１２】実施例２のカメラにおける仮閾値とこれにより得られたパルス信号とを示す図。
【図１３】実施例３における電源ＯＦＦ処理を示すフローチャート。
【図１４】実施例３の電源ＯＦＦ処理内での閾値設定処理時のズーム駆動速度を示す図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施例について図面を参照しながら説明する。
【実施例１】
【００１４】
図１には、本発明の実施例であるエンコーダ信号処理装置を含む光学機器であるカメラ（エンコーダ使用装置）の構成を示している。このカメラは、レンズ一体型またはレンズ交換型のデジタルスチルカメラやビデオカメラである。
【００１５】
１０１はレンズ鏡筒であり、光軸方向に移動して変倍を行う変倍レンズ、光軸方向に移動して焦点調節を行うフォーカスレンズ、露光時間を制御するシャッタおよび光量調整を行う絞り等を含む撮影光学系が収容されている。１０２は撮像素子であり、撮影光学系により形成された光学像である被写体像を電気信号（撮像信号）に変換する。撮像素子１０２は、ＣＣＤセンサやＣＭＯＳセンサ等の光電変換素子により構成されている。
【００１６】
１０３は撮像信号処理部であり、撮像素子１０２から出力された撮像映像に対して各種画像処理を行うことで映像信号を生成する。１０４は駆動コントローラであり、レンズ鏡筒１０１において変倍レンズやフォーカスレンズを移動させたり絞りを動作させたりするモータ等のアクチュエータの駆動を制御する。１０５はシステムコントローラであり、カメラ全体の動作を制御する。１０６はカメラ操作部であり、ユーザにより操作されるスイッチその他の操作部材が設けられている。
【００１７】
１０７はフラッシュメモリであり、１０８はプログラムメモリである。カメラの起動時には、フラッシュメモリ１０７の内部で圧縮保存されていたプログラムがプログラムメモリ１０８ にて解凍および展開される。システムコントローラ１０５は、展開されたコンピュータプログラムに従ってカメラを制御する。１０９は画像メモリであり、撮影画像を一時的に保存する。１１０はディスプレスであり、撮影画像を表示する。１１１はメモリーカードであり、撮影画像を記録画像として保存する。メモリーカード１１１は、カメラに対して着脱が可能である。
【００１８】
次に、図２を用いて、ユーザによりカメラ操作部１０６のズームスイッチが操作されてから変倍レンズ１０１２を移動させるまでの処理をについて説明する。図２には、駆動コントローラ１０４とレンズ鏡筒１０１の内部の構成を示している。駆動コントローラ１０４は、モータ制御コントローラ１０４１と、ドライバ回路１０４２と、閾値設定手段としての閾値設定部１０４３と、パルス生成手段としての２値化回路１０４４とにより構成される。閾値設定部１０４３および２値化回路１０４４によりエンコーダ信号処理装置が構成される。
【００１９】
ユーザがズームスイッチを操作すると、カメラ操作部１０６から、ズームスイッチの操作方向を含むズーム指示信号がシステムコントローラ１０５に入力される。システムコントローラ１０５は、ズーム指示信号のうち操作方向に応じたズーム方向（望遠方向または広角方向）に所定ズーム速度で変倍レンズ１０１２を移動させるためのズーム駆動指令をモータ制御コントローラ１０４１に対して送出する。モータ制御コントローラ１０４１は、ズーム駆動指令に応じて、レンズ鏡筒１０１内のズーム用のアクチュエータであるズームモータ１０１１に与える駆動信号の出力指示をドライバ回路１０４２に送出する。ドライバ回路１０４２は、モータ制御コントローラ１０４１からの出力指示に応じた駆動信号を生成してズームモータ１０１１に供給する。
【００２０】
レンズ鏡筒１０１は、上述したズームモータ１０１１および可動部材としての変倍レンズ１０１２と、変倍レンズ１０１２の移動速度、移動量（位置）および移動方向を検出するための光学エンコーダ（以下、単にエンコーダという）１０１３とを含む。
【００２１】
ズームモータ１０１１は、ＤＣモータや振動型モータ等の駆動源であり、ドライバ回路１０４２から供給された駆動信号を受けて駆動する。ズームモータ１０１１の駆動力は、不図示の動力伝達機構を介して変倍レンズ１０１２に伝達され、これを光軸方向に移動させる。モータ制御コントローラ１０４１は、エンコーダ１０１３から出力される信号に基づいて変倍レンズ１０１２の移動速度、移動量および移動方向を所定周期で監視する。そして、変倍レンズ１０１２が所定ズーム速度で移動して目標位置に停止するようにズームモータ１０１１に供給される駆動信号のドライバ回路１０４２による生成を制御する。
【００２２】
エンコーダ１０１３は、図３（ａ），（ｂ）に示すように、スケールとしてのスリット板１０１３ｃと、光学センサとしてのフォトインタラプタ（以下、センサという）１０１３ａとにより構成されている。図３（ａ），（ｂ）はそれぞれ、エンコーダ１０１３をズームモータ１０１１の出力軸１０１３ｂに直交する方向と出力軸１０１３ｂが延びる方向から見て示している。
【００２３】
スリット板１０１３ｃは、ズームモータ１０１１の出力軸１０１３ｂに取り付けられて該出力軸１０１３ｂと一体回転する。これにより、センサ１０１３ａとスリット板１０１３ｃとは相対移動する。なお、出力軸１０１３ｂに設けられた不図示のギアは、上記動力伝達機構を介して変倍レンズ１０１２にズームモータ１０１１の駆動力を伝達する。図３（ｂ）に示すように、スリット板１０１３ｃには、その円周方向に遮光部（白い部分）と透光部としてのスリット（黒い部分）とが交互に設けられている。言い換えれば、複数の遮光部と複数のスリットからなる周期的なパターンが設けられている。
【００２４】
センサ１０１３ａは、スリット板１０１３ｃを挟んで位置する発光部と受光部とを有する。また、図３（ｃ）はスリット板１０１３ｃとセンサ１０１３ａの発光部１０１３ｄ，１０１３ｆと受光部１０１３ｅ，１０１３ｇとの関係を示している。本実施例のエンコーダ１０１３は、互いに対をなす発光部１０１３ｄと受光部１０１３ｅおよび互いに対をなす発光部１０１３ｆと受光部１０１３ｇを有して、後述するように互いに位相が異なる２相のアナログ信号を出力する２相タイプのエンコーダである。
【００２５】
ズームモータ１０１１の出力軸１０１３ｂが回転する（変倍レンズ１０１２が移動する）と、図３（ｃ）に示すようにセンサ１０１３ａの発光部と受光部に対してスリット板１０１３ｃの遮光部（図中の黒部分）と透光部であるスリット（図中の白部分）が通過する。センサ１０１３ａの発光部と受光部との間にスリットが存在するときは発光部からの光が受光部で受光されるので、センサ１０１３ａから受光部での受光強度（受光量）に応じた電流が出力される。一方、センサ１０１３ａの発光部と受光部との間に遮光部が存在するときは発光部からの光は遮光部により遮られて受光部に到達しないので、センサ１０１３ａからはほとんど出力電流が得られない。また、センサ１０１３ａの発光部と受光部との間にスリット板１０１３ｃの遮光部とスリットとがともに存在する際には、発光部からの光の一部のみが受光部で受光されて受光強度が少なくなるため、センサ１０１３ａからの出力電流もその受光量に応じて小さくなる。こうしてスリット板１０１３ｃが回転を続けることでセンサ１０１３ａからの出力電流が増減し、これにより正弦波状のアナログ信号が得られる。このアナログ信号がセンサ信号に相当する。
【００２６】
エンコーダ１０１３（センサ１０１３ａ）から出力されたアナログ信号は、２値化回路１０４４およびズーム検出部１０４５に送られる。２値化回路１０４４は、エンコーダ１０１３からのアナログ信号を、後述する閾値設定部１０４３により設定された閾値を用いて２値化し、２値化信号であるパルス信号を生成する。具体的には、２値化回路１０４４は、アナログ信号が閾値より高いときはＨｉｇｈを出力し、アナログ信号が閾値より低いときはＬｏｗを出力する。２値化回路１０４４から出力されたパルス信号はズーム検出部１０４５に送られる。
【００２７】
ズーム検出部１０４５は、パルス信号のエッジ情報に基づいて、変倍レンズ１０１２の移動速度、移動量（位置）および移動方向を検出する。検出された変倍レンズ１０１２の移動速度、移動量および移動方向の情報は、モータ制御コントローラ１０４１に通知される。
【００２８】
モータ制御コントローラ１０４１は、変倍レンズ１０１２の移動方向とシステムコントローラ１０５からのズーム駆動指令におけるズーム方向とが一致するか否かを確認する。また、モータ制御コントローラ１０４１は、変倍レンズ１０１２の移動速度とズーム駆動指令における所定ズーム速度との差を求め、その速度差に応じてドライバ回路１０４２からズームモータ１０１１に出力される駆動信号を変更する。さらに、モータ制御コントローラ１０４１は、変倍レンズ１０１２の位置がシステムコントローラ１０５が設定した又は予め設定された目標位置に到達したか否かを判定する。まだ到達していない場合はズームモータ１０１１の駆動を継続し、到達した場合はズームモータ１０１１の駆動を停止させる。
【００２９】
閾値設定部１０４３は、モータ制御コントローラ１０４１からの閾値設定指示に従って、２値化回路１０４４がアナログ信号からのパルス信号の生成のための２値化に用いる閾値を設定する。本実施例では、閾値設定部１０４３による閾値の設定方式として２つの方式を用意している。第１の閾値設定方式は、カメラの製造段階においてエンコーダ１０１３の温度等の環境変化や経時劣化による特性変化を測定した結果に基づいて決定された閾値を設定するデフォルト閾値設定方式である。第２の閾値設定方式は、変倍レンズ１０１２の駆動中に、２値化回路１０４４で設定されている閾値とズーム検出部１０４５で取得するパルス信号のエッジ情報とエンコーダ１０１３からのアナログ信号とに基づいて閾値を変更する閾値更新方式である。この閾値更新方式では、変倍レンズ１０１２の所定駆動量ごとに閾値を変更（更新）する。
【００３０】
閾値設定部１０４３は、モータ制御コントローラ１０４１からの指示に従ってデフォルト値設定方式か閾値更新方式のいずれかを選択する。そして、選択した方式で設定した閾値を２値化回路１０４４に対して設定して、２値化回路１０４４にその閾値を用いたアナログ信号の２値化を行わせる。
【００３１】
次に、エンコーダ１０１３からのアナログ信号の出力からズーム検出部１０４５により変倍レンズ１０１２の移動方向および位置の検出を行うまでの流れについて説明する。図４（ａ），（ｂ）はそれぞれ、スリット板１０１３ｃが回転した際にセンサ１０１３ａの受光部１０１３ｅ，１０１３ｆから出力される２相のアナログ信号であるＡ相アナログ信号（第１のセンサ信号）およびＢ相アナログ信号（第２のセンサ信号）を示す。また、図４（ｃ），（ｄ）はそれぞれ、Ａ相アナログ信号（第１のセンサ信号）およびＢ相アナログ信号を２値化回路１０４４にて２値化することで生成されたＡ相パルス信号（第１のパルス信号）およびＢ相パルス信号（第２のパルス信号）を示している。
【００３２】
Ａ相およびＢ相パルス信号はともに、１周期内でのＨｉｇｈの期間（以下、Ｈ期間という）とＬｏｗの期間（以下、Ｌ期間という）とが５０：５０である５０％デューティのパルス信号であり、良好な（理想的な）２値化信号である。
【００３３】
変倍レンズ１０１２の移動方向は、Ａ相パルス信号とＢ相パルス信号の立ち上がりエッジおよび立ち下りエッジの順番により検出される。図４（ｃ）には、Ａ相パルス信号の立ち上がり（Ａｕｐ）、Ｂ相パルス信号の立ち上がり（Ｂｕｐ）、Ａ相パルス信号の立ち下り（Ａｄｏｗｎ）およびＢ相パルス信号の立ち下り（Ｂｄｏｗｎ）の順番でエッジが検出される場合を示している。この場合は、ズーム検出部１０４５は、変倍レンズ１０１２がＴｅｌｅ（望遠）方向に移動していると検出する。一方、図４（ｄ）には、Ｂ相パルス信号の立ち上がり（Ｂｕｐ）、Ａ相パルス信号の立ち上がり（Ａｕｐ）、Ｂ相パルス信号の立ち下り（Ｂｄｏｗｎ）およびＡ相パルス信号の立ち下り（Ａｄｏｗｎ）の順番でエッジが検出される場合を示している。この場合は、ズーム検出部１０４５は、変倍レンズ１０１２がＷｉｄｅ方向に移動していると検出する。
【００３４】
変倍レンズ１０１２の位置（以下、単に位置という）は、パルス信号の立ち上がりおよび立ち下りエッジのカウント値（以下、エッジカウント値という）によって検出される。変倍レンズ１０１２がＴｅｌｅ方向に移動している状態でＡ相パルス信号の立ち上がり（Ａｕｐ）、Ｂ相パルス信号の立ち上がり（Ｂｕｐ）、Ａ相パルス信号の立ち下り（Ａｄｏｗｎ）およびＢ相パルス信号の立ち下り（Ｂｄｏｗｎ）のエッジが検出される。この場合に、駆動前のズーム位置のエッジカウント値が０でＴｅｌｅ方向にエッジカウント値が増えるとすると、エッジカウント値が＋４となりズーム位置は４カウント位置となる。この後、Ｂ相パルス信号の立ち上がり（Ｂｕｐ）、Ａ相パルス信号の立ち上がり（Ａｕｐ）およびＢ相パルス信号の立ち下り（Ｂｄｏｗｎ）の順にエッジが検出された場合は、エッジカウント値は−３となり、ズーム位置は１カウント位置となる。
【００３５】
このように、ズーム検出部１０４５は、変倍レンズ１０１２の位置を、Ａ相およびＢ相パルス信号のエッジを検出した順番および回数によって検出する。
【００３６】
図５（ａ），（ｂ）にはそれぞれ、経時劣化および温度変化によりエンコーダ１０１３の特性が変化した場合のＡ相およびＢ相のアナログ信号を示している。また、図５（ｃ），（ｄ）にはそれぞれ、図５（ａ），（ｂ）から生成されたＡ相およびＢ相パルス信号を示している。図５（ａ）に示すＡ相のアナログ信号は、エンコーダ１０１３の周辺の温度上の昇によってセンサ１０１３ａの受光感度が変化したことで、図４（ａ）のＡ相のアナログ信号に比べて、その値が大きくなっている。一方、図５（ｂ）に示すＢ相アナログ信号は、経時劣化によりセンサ１０１３ｇの受光感度が低下したことで、図４（ｂ）のＢ相のアナログ信号に比べて、その値が小さくなっている。
【００３７】
図５（ｃ）に示すＡ相パルス信号は、１周期内でのＨ期間がＬ期間より長くなって７０％デューティのパルス信号になっている。また、図５（ｄ）に示すＢ相パルス信号は、１周期内でのＨ期間がＬ期間より短くなって３０％デューティのパルス信号になっている。
【００３８】
図５（ｃ），（ｄ）を見ると分かるように、Ａ相およびＢ相のアナログ信号値の変化によってパルス信号のエッジが発生する順番が図４（ｃ），（ｄ）と異なっている。図４（ｃ），（ｄ）のパルス信号のエッジ検出の順番は、Ａｕｐ−Ｂｕｐ−Ａｄｏｗｎ−Ｂｄｏｗｎであるのに対して、図５（ｃ），（ｄ）では、Ａｕｐ−Ｂｕｐ−Ｂｄｏｗｎ−Ａｄｏｗｎとなっている。図５（ｃ），（ｄ）の順番でエッジを検出した場合、Ａｕｐ−Ｂｕｐの順でエッジを検出した時点では、ズーム検出部１０４５は変倍レンズ１０１２がＴｅｌｅ方向に２カウント分進んだことを検出する。しかし、次のＢｄｏｗｎ−Ａｄｏｗｎの順でエッジを検出すると、ズーム検出部１０４５は変倍レンズ１０１２がＷｉｄｅ方向に２カウント分戻ったものとして検出する。この結果、変倍レンズ１０１２は実際にはＴｅｌｅ方向に４カウント分進んだにもかかわらず、ズーム検出部１０４５によって変倍レンズ１０１２が全く移動していないものとして検出される。このような場合、変倍レンズ１０１２が物理的には目標位置に到達していても、カメラ内の処理としては目標位置に到達していないものとして実行され、変倍レンズ１０１２が目標位置を通り過ぎてしまう。
【００３９】
このように、経時劣化や温度変化の影響でエンコーダ１０１３の特性が変化するため、カメラの製造段階においてこの特性の変化を考慮して閾値を設定する必要がある。しかし、エンコーダ１０１３の特性の変化はエンコーダの個体ごとにばらつきがあるため、製造段階において最適な閾値を設定したとしても、エンコーダの個体によっては良好なパルス信号を生成できない可能性がある。したがって、エンコーダの個体ごとに、経時劣化や温度変化に応じて２値化用の閾値を適切に変更（動的に設定）することが望ましい。
【００４０】
以下、この閾値の設定について説明する。ここでは、経時劣化や温度変化にかかわらず、図４（ｃ），（ｄ）に示すようにエッジ検出の順番に誤りが生じない２相のパルス信号を生成するための閾値の設定について説明する。具体的には、いずれも５０％デューティの２相のパルス信号を得るための閾値の設定について説明する。なお、２相のパルス信号が５０％デューティ以外のパルス信号となるように閾値を設定してもよい。例えば、２相のパルス信号がともに７０％デューティとなるように閾値を設定してもよく、この場合でもエッジ検出の順番に誤りは生じない。ただし、７０％デューティの場合は、５０％デューティの場合に比べて２相のパルス信号のエッジ間隔が狭まるため、エンコーダの特性変動やパルス信号のノイズ成分の影響によって変倍レンズ１０１２の位置を誤検出する可能性が高くなる。このため、本実施例では、Ａ相およびＢ相パルス信号が５０％デューティを有するように閾値を設定する場合について説明する。
【００４１】
図６には、閾値を適切に設定するための閾値設定処理のフローチャートを示している。コンピュータとしての駆動コントローラ１０４の一部であるモータ制御コントローラ１０４１および閾値設定部１０４３が、コンピュータプログラムであるエンコーダ信号処理プログラムに従って本処理を実行する。以下の説明において、Ｓはステップを意味する。
【００４２】
Ｓ６０１において、閾値設定部１０４３は、閾値の初期化を行う。このときの閾値は、製造段階で設定されたデフォルトの閾値である。
【００４３】
次に、Ｓ６０２では、モータ制御コントローラ１０４１は、閾値設定のための変倍レンズ１０１２の駆動（閾値設定用ズーム駆動）を開始する。閾値設定用ズーム駆動では、モータ制御コントローラ１０４１は、変倍レンズ１０１２をカメラにおける最高速度でズーム駆動を行う。
【００４４】
本実施例のカメラが、カメラ本体に対してレンズ鏡筒１０１（つまりは変倍レンズ１０１２）が格納位置と撮影可能位置（Ｗｉｄｅ端位置）との間で移動可能な沈胴式カメラであるものとする。このとき、閾値設定用ズーム駆動は、カメラの電源ＯＮ時に変倍レンズ１０１２が格納位置からＷｉｄｅ端位置に移動する際に行うことが望ましい。格納位置からＷｉｄｅ端位置に最高速度でズーム駆動を行うのはカメラの起動時の時間短縮のためであるが、最高速度でズーム駆動を行うことでそれよりも低速でズーム駆動を行う場合に比べてズーム駆動の速度変動を抑えられる。このため、高い精度でパルス信号のデューティを検出することができる。本実施例でも、変倍レンズ１０１２を格納位置から目標位置としてＷｉｄｅ端位置に移動させる際に閾値設定用ズーム駆動を行う。
【００４５】
次に、Ｓ６０３では、モータ制御コントローラ１０４１は、変倍レンズ１０１２の速度（ズーム駆動速度）が目標速度に到達したか否かを判定する。ズーム駆動速度の検出は、ズーム検出部１０４５により以下のようにして行われる。
【００４６】
図７には、あるズーム駆動速度でズーム駆動した際にエンコーダ１０１３から出力されたＡ相およびＢ相アナログ信号から２値化回路１０４４により生成されたパルス信号（図７（ａ），（ｂ））とズーム検出部１０４５の動作クロック（図７（ｃ））とを示す。ズーム駆動速度はＡ相およびＢ相パルス信号のそれぞれの立ち上がりと立ち下りエッジ間の間隔から算出される。具体的には、各相の前後の周期の立ち上がりエッジ間と立ち下りエッジ間の時間間隔を動作クロック換算で求めることにより算出される。各エッジの時間間隔は、ズーム検出部１０４５の内部に設けられた、モータ制御コントローラ１０４１からズーム検出部１０４５に供給される動作クロックの１クロックごとに１つ値が増加する内部カウンタを基準として検出される。
【００４７】
ここでは、図７（ａ）に示すＡ相パルス信号の立ち上がりエッジから次の立ち上がりエッジまでの時間間隔Ｔ１からズーム駆動速度ＶＺＭ（単位はｒｐｓ）を算出する例について説明する。ズーム検出部１０４５の動作クロック周波数ｆｃｌｋは１０ｋＨｚであり、ズームモータ１０１１の１回転当たりに得られる１相のパルス信号のパルス数（すなわちスリット板１０１３ｃのスリット数）Ｐｃは１００とする。また、図７（ｃ）より、時間間隔Ｔ１でのズーム検出部１０４５の内部カウンタの進み量ＣＺＭは１０とする。このとき、ズーム駆動速度Ｖ１は以下の式（１）で算出される。
【００４８】
【数１】
2017003403.tif 000003
【００４９】
ズーム検出部１０４５は、算出した駆動速度を、モータ制御コントローラ１０４１に通知する。
【００５０】
次に、Ｓ６０３では、モータ制御コントローラ１０４１は、ズーム駆動速度が目標速度（１０ｒｐｓ）に到達したか否かを判定する。ズーム駆動速度が目標速度に到達していない場合には、モータ制御コントローラ１０４１は、ズーム駆動速度を加速しつつズーム駆動を続行し、再度本ステップでの判定を行う。一方、ズーム駆動速度が目標速度に到達した場合には、Ｓ６０４に進む。Ｓ６０４以降では、閾値設定部１０４３は、２値化回路１０４４から出力されるパルス信号の１周期（所定周期：以下、更新ズーム駆動区間という）ごとに２値化回路１０４４に対して設定する閾値を更新する。
【００５１】
Ｓ６０４では、閾値設定部１０４３は、エンコーダ１０１３から出力されたアナログ信号の最大値と最小値を検出する。ここにいう最大値と最小値はそれぞれ、後述するＳ６１３での最終的な閾値の設定においては極大値と極小値となる。
【００５２】
次に、Ｓ６０５において、閾値設定部１０４３は、ズーム検出部１０４５に、２値化回路１０４４から出力されるパルス信号の立ち上がりエッジと立ち下りエッジの検出を行わせる。そして、閾値設定部１０４３は、立ち上がりエッジと立ち下りエッジが検出されたか否かを判定する。両エッジが検出された場合は、閾値設定部１０４３はＳ６０６に進む。一方、スリット板１０１３ｃのスリット部にゴミが付着する等していずれかのエッジが検出されなかった場合は、閾値設定部１０４３は、Ｓ６１５に進んでディスプレイ１１０へのエラー表示等のエラー処理を行い、その後本処理を終了する。
【００５３】
Ｓ６０６では、閾値設定部１０４３は、後述するＳ６０９にて前回閾値を更新してから、パルス信号のエッジを該パルス信号の１周期に対応する３回検出したか否か、つまりは更新ズーム駆動区間のズーム駆動を行ったか否かを判定する。ここでは、立ち下りエッジ、立ち上がりエッジおよび立下りエッジの３つのエッジを連続して検出した場合または立ち上がりエッジ、立ち下りエッジおよび立ち上がりエッジの３つのエッジを連続して検出した場合にエッジを３回検出したと判定する。エッジを３回検出した場合は、閾値設定部１０４３はＳ６０７に進む。一方、まだエッジを３回検出していない場合は、閾値設定部１０４３はＳ６０４に戻って光学エンコーダ１０１３からのアナログ信号の最大値と最小値を検出し、さらにＳ６０５でパルス信号のエッジを３回検出したか否かの判定を再度行う。
【００５４】
Ｓ６０７では、閾値設定部１０４３は、前回閾値を更新してから３回エッジを検出するまでの間の更新ズーム駆動区間におけるエンコーダのアナログ信号の最大値および最小値の記憶処理を行う。
【００５５】
次に、Ｓ６０８では、閾値設定部１０４３は、閾値の設定回数を更新する（１つインクリメントする）。
【００５６】
次に、Ｓ６０９では、閾値設定部１０４３は、次の更新ズーム駆動区間にて用いる新たな閾値を設定（算出）するとともに、その新たな閾値を記憶する。具体的には、閾値設定部１０４３は、まずＳ６０４〜Ｓ６０６で検出したパルス信号の立ち上がりエッジおよび立ち下りエッジの情報から、パルス信号のＨ期間とＬ期間との比率であるデューティを算出する。次に、閾値設定部１０４３は、算出したパルス信号のデューティとＳ６０７で記憶したアナログ信号の最大値および最小値とを用いて、以下の式（２）により次の更新ズーム駆動区間でのアナログ信号に対する閾値ＶTｈ＿Ｎｅｗを算出する。
【００５７】
【数２】
2017003403.tif 000004
【００５８】
式（２）中のＶTｈ＿Ｏｌｄは前回の更新ズーム駆動区間において設定された閾値である。また、ＤＴａｒｇｅｔはズーム検出部１０４５で検出されるべきパルス信号の目標デューティであり、本実施例では０．５（＝５０％）である。Ｄｒｅａｌは実際にズーム検出部１０４５により検出されるパルス信号のデューティである。ＡｍａｘおよびＡｍｉｎはそれぞれ、前回の更新ズーム駆動区間においてエンコーダ１０１３から出力されたアナログ信号の最大値および最小値である。Ｐは閾値の変化係数である。この変化係数Ｐは、パルス信号の実際のデューティと目標デューティとの差に対してどの程度、閾値を変更するかを表す。
【００５９】
図８には、式（２）を用いた次の更新ズーム駆動区間での閾値の設定の流れを示している。閾値１はデフォルトの閾値である。まず、閾値設定部１０４３は、閾値１を用いてエンコーダ１０１３からのアナログ信号の１周期分の２値化を行う。このとき、常にアナログ信号の最大値Ａｍａｘと最大値Ａｍｉｎを検出しておき、これら最大値Ａｍａｘと最大値Ａｍｉｎの間に収まるように次回の閾値ＶTｈ＿Ｎｅｗを決定する。
【００６０】
閾値設定部１０４３は、エンコーダ１０１３からアナログ信号が１周期分出力されるようにズーム駆動が行われた後にパルス信号のデューティを算出する。この際、閾値設定部１０４３は、前述したようにモータ制御コントローラ１０４１からズーム検出部１０４５に供給される動作クロックを基準として動作するズーム検出部１０４５内の内部カウンタの情報を元にデューティを算出する。例えば、閾値１を用いて生成されたパルス信号のＨ期間での内部カウンタのカウント値が４０であり、Ｌ期間においてカウント値が２０増加した場合のデューティは、
４０÷（４０＋２０）＝０．６７
となる。この値がＤｒｅａｌとなる。
【００６１】
図８に示す閾値１が１２００ｍＶ、閾値１を用いて生成されたパルス信号の１周期間の最大値Ａｍａｘが３０００ｍＶ、最小値Ａｍｉｎが５００ｍＶ、変化係数Ｐが２である場合には、次の更新ズーム駆動区間での閾値２は、
１２００−（０．５−０．６７）×（３０００−５００）×２＝２０５０ｍＶ
となる。次の更新ズーム駆動区間では、閾値２を２値化回路１０４４に設定して、この閾値２を用いたパルス信号の生成を行わせる。
【００６２】
図８中の斜線部に示すように、閾値の設定タイミングの関係で、閾値を変更した際には、この閾値変更の影響によって、期待しているパルス信号のデューティと実際のパルス信号のデューティとが異なってしまう。したがって、次の更新ズーム駆動区間での閾値を決める際には、今回の閾値を設定した後に最初に検出したパルス信号のエッジを除いてエッジを３回検出するまでの更新ズーム駆動区間でのＨ期間とＬ期間の比率としてのデューティ比を求めることが望ましい。
【００６３】
具体的には、閾値２を設定した場合には、その後のパルス信号の最初の立ち下りエッジまでのＨ期間はデューティの算出には使用せずに、次の立ち下りエッジから立ち上がりエッジまでをＬ期間とする。そして、さらに次の立ち下がりエッジまでをＨ時間として、次の更新ズーム駆動区間の閾値３を算出する。閾値２を用いて２値化を行っている更新ズーム駆動区間のアナログ信号の最大値Ａｍａｘが３０００ｍＶ、最小値Ａｍｉｎが５００ｍＶ、パルス信号のデューティが０．４（４０％）であったとすると、次の更新ズーム駆動区間の閾値３は、
２０５０−（０．５−０．４）×（３０００−５００）×２＝１５５０ｍＶ
となる。
【００６４】
さらに閾値３を設定した場合には、その後の最初の立ち下りエッジまでのＨ期間はデューティの算出には使用せずに、次の立ち上がりエッジから立ち下がりエッジまでをＨ期間とする。そして、さらに次の立ち上がりエッジまでをＬ期間として、次の更新ズーム駆動区間の閾値４を算出する。閾値３を用いて２値化を行っている更新ズーム駆動区間のアナログ信号の最大値Ａｍａｘが３０００ｍＶ、最小値Ａｍｉｎが５００ｍＶ、パルス信号のデューティが０．５５（５５％）であったとすると、次の更新ズーム駆動区間の閾値４は、
１５５０−（０．５−０．５５）×（３０００−５００）×２＝１７５０ｍＶ
となる。このようにして、閾値設定部１０４３は、変倍レンズ１０１２がスリット板１０１３ｃの１回転（所定移動量）に相当する駆動量だけ駆動されるまで、更新ズーム駆動区間ごとの閾値の設定を繰り返す。
【００６５】
スリット板１０１３ｃの１回転分にわたって更新ズーム駆動区間ごとの閾値の設定を行うのは、以下の理由による。スリット板１０１３ｃはその製造時の形状誤差によって、スリットの大きさやスリットの平面度にばらつきがある。このようなばらつきは、センサ１０１３ａの発光部からスリットに向けて照射される光量が一定であったとしても、センサ１０１３ａからの出力信号の大きさにばらつきを生じさせる。また、スリット板１０１３ｃの形状の誤差は小さくてセンサ１０１３ａの出力に影響しない場合であっても、スリット板１０１３ｃのスリットに駆動力伝達機構内のギアの摩耗粉等のゴミが付着することによって、スリットを透過する光量が極端に低下する場合がある。このため、センサ１０１３からのアナログ信号の２値化に用いる閾値も、スリット板１０１３ｃの１回転で得られるアナログ信号の変動を検出した上で設定する必要がある。このため、スリット板１０１３ｃの１回転分にわたって更新ズーム駆動区間ごとの閾値の設定を行う。
【００６６】
次に、Ｓ６１０では、モータ制御コントローラ１０４１は、変倍レンズ１０１２が目標位置に到達したか否かを判定する。目標位置（Ｗｉｄｅ端位置）に到達した場合には、モータ制御コントローラ１０４１は、Ｓ６１２に進み、閾値設定用ズーム駆動を終了する。一方、変倍レンズ１０１２が目標位置に到達していない場合には、モータ制御コントローラ１０４１は、Ｓ６１１に進み、変倍レンズ１０１２がスリット板１０１３ｃの１回転に相当する駆動量以上駆動されたか否かを判定する。そうである場合は、モータ制御コントローラ１０４１は、Ｓ６１２に進み、閾値設定用ズーム駆動を終了する。まだスリット板１０１３ｃの１回転分以上、変倍レンズ１０１２が駆動されていない場合は、モータ制御コントローラ１０４１は、Ｓ６０４に戻って閾値設定用ズーム駆動および次の更新ズーム駆動区間の閾値の設定を継続する。
【００６７】
最後にＳ６１３では、閾値設定部１０４３は、Ｓ６０７〜Ｓ６０９で取得した更新ズーム駆動区間ごとの閾値と、アナログ信号の最大値である極大値と最小値である極小値とに基づいて、この後のズーム駆動に使用する適切な閾値としての使用閾値を設定する。本ステップでは、閾値を以下の２つの条件を満足するように設定する。
【００６８】
第１の条件は、使用閾値は、スリット板１０１３ｃの１回転分の複数の更新ズーム駆動区間に対してそれぞれ設定された閾値の平均値とすることである。すなわち、閾値設定部１０４３は、Ｓ６０９にて更新ズーム駆動区間ごとに記憶した閾値の全てを加算した値をＳ６０８にてカウントした閾値設定回数のカウント値で除することで平均値としての使用閾値を求める。
【００６９】
第２の条件は、使用閾値は、スリット板１０１３ｃの１回転内でＳ６０７にて更新ズーム駆動区間ごとに記憶したアナログ信号（センサ信号）の極大値の最小値以下で、かつ極小値の最大値以上の範囲（閾値設定可能範囲）内にて設定することである。言い換えれば、センサ信号の極大値の最小値と極小値の最大値とに基づいて閾値設定可能範囲を設け、該閾値設定可能範囲内で使用閾値を設定することである。
【００７０】
この第２の条件を設けている理由について図９（ａ），（ｂ）を用いて説明する。図９（ａ）），（ｂ）にはいずれも、大きなうねりを有するスリット板１０１３ｃが用いられたエンコーダ１０１３（センサ１０１３ａ）から出力されるアナログ信号の例を示している。図９（ａ）中の点線は、第１の条件に従って設定された平均値としての使用閾値である。図９（ａ）に示すように、センサ１０１３ａからのアナログ信号の周期ごとの出力の差が大きい場合には、第１の条件に従って使用閾値を設定しても、使用閾値にアナログ信号の最大値が到達しない周期ではそのアナログ信号を読み飛ばすことになる。このよう読み飛ばしを防ぐために、図９（ｂ）に示すように、使用閾値を設定する範囲（閾値設定可能範囲）をアナログ信号の極大値の最小値以下で、かつ極小値の最大値以上の範囲に制限する。
【００７１】
第１の条件と第２の条件をともに満足することができない場合には、第２の条件を優先し、該第２の条件を満足する閾値であって第１の条件を満足する閾値に最も近い閾値を使用閾値に設定する。なお、第２の条件に従って使用閾値を設定する際には、環境変化等を考慮して、アナログ信号の極大値の最小値よりも所定量だけ小さい値に閾値を設定する。つまり、閾値設定可能範囲の上限をアナログ信号の極大値の最小値より所定量だけ小さい値とする。このときの所定量は、エンコーダの温度特性やエンコーダからのアナログ信号のノイズレベル等を考慮した上で決定される。
【００７２】
以上説明したように、本実施例によれば、スリット板１０１３ｃが回転する間にセンサ１０１３ａからのアナログ信号の最大値や最小値が増減しても、このアナログ信号の２値化のための閾値を適切に設定することができ、良好なパルス信号を得ることができる。そして、このパルス信号を用いることで、カメラにおいて変倍レンズ１０１２の高精度な位置検出や速度検出を行うことができ、この結果、良好なズーム制御を行うことができる。
【００７３】
ここで、前述したように閾値設定ズーム駆動は、ズーム駆動速度の変動が少ない最高速度または高速度で行うことが望ましい。ただし、閾値設定ズーム駆動時は、図８に示すように、ズーム駆動速度が一定であっても閾値が変化するために２相のパルス信号のエッジ間の時間間隔（エッジ間隔）が変化し、エッジ間隔を正確に取得することができない。このようにエッジ間隔が正確に取得できないと、ズーム駆動速度を一定に制御しようとしても実際のズーム駆動速度が変動する。この結果、閾値設定ズーム駆動中の駆動音が増大する可能性がある。このような大きな駆動音は、カメラの品位を低下させる。また、閾値設定処理中はズーム駆動速度を制御しつつ更新ズーム駆動区間ごとに閾値を更新するために、カメラ（駆動コントローラ１０４）の処理負荷が増大する。
【００７４】
これらの理由から、閾値設定ズーム駆動、つまりは閾値設定処理は、限定されたタイミングで行うことが望ましい。この限定されたタイミングでの閾値設定処理について以下に別の実施例として説明する。
【実施例２】
【００７５】
実施例２として、実施例１でも説明したカメラの電源をＯＦＦからＯＮにしてカメラを起動する際に変倍レンズ１０１２が格納位置からＷｉｄｅ端位置に移動する間に閾値設定処理を行う場合におけるカメラの動作について説明する。このカメラの起動時は、カメラの処理負荷が比較的小さいので、閾値設定ズーム駆動を行うのに適している。
【００７６】
図１１のフローチャートには、ユーザが電源ＯＦＦ状態のカメラにおいてカメラ操作部１０６の電源スイッチをＯＮ操作することに応じて閾値設定処理を行う際のカメラ処理の流れを示している。コンピュータとしてのシステムコントローラ１０５および駆動コントローラ１０４（モータ制御コントローラ１０４１および閾値設定部１０４３）が、コンピュータプログラムであるカメラ処理プログラムを実行することでこの処理を行う。カメラ処理プログラムには、実施例１で説明したエンコーダ信号処理プログラムが含まれている。
【００７７】
Ｓ１１０１において、システムコントローラ１０５は、ユーザによって電源スイッチがＯＮ操作されたか否かを判定し、ＯＮ操作された場合はＳ１１０２に進む。
【００７８】
Ｓ１１０２において、システムコントローラ１０５は、カメラの撮影モードが静止画撮影モードか否かを判定する。静止画撮影モード以外のモード、例えば撮影画像を再生するための再生モードである場合にはレンズ鏡筒１０１（変倍レンズ１０１２）をカメラ本体に格納したままＷｉｄｅ端位置に移動させないため、閾値設定処理を行わない。一方、静止画撮影モードであると判定した場合には、システムコントローラ１０５は、Ｓ１１０３に進む。
【００７９】
Ｓ１１０３では、システムコントローラ１０５は、閾値設定処理が有効か否かを判定する。この閾値設定処理の有効／無効の判定において、前回の閾値設定処理から今回のカメラ電源のＯＮまで（現在まで）の時間と、前回の使用閾値処理から現在までのエンコーダ１０１３に通電されていたときの総時間とを判定条件とする。さらに、前回の閾値設定処理時のカメラの温度と現在のカメラの温度との差も判定条件とする。
【００８０】
具体的には、第１の判定条件として、カメラ内の日時管理用のタイマーを参照し、前回の使用閾値の設定から所定時間（例えば１０日）以上経過している場合に閾値設定処理を行う。このように、定期的に閾値設定処理を行うことにより、エンコーダ１０１３の経時劣化による特性変化に起因するセンサ信号の読み飛ばしを防ぐことができる。また、前回の使用閾値の更新から１０日以内であっても、変倍レンズ１０１２を過度に使用することによりエンコーダ１０１３の特性が劣化する可能性がある。このため、第２の判定条件としてエンコーダ１０１３に通電されていた総時間が所定時間（例えば、１０時間程度）を超えた場合に閾値設定処理を行う。さらに、前回の閾値設定時と現在とでのカメラの温度差が大きいと、この温度差によってエンコーダ１０１３の特性が変化してセンサ信号の読み飛ばしが生ずる可能性があるため、第３の判定条件としてこの場合も閾値設定処理を行う。システムコントローラ１０５は、これら３つの条件のうち少なくとも１つの条件を満たすことで、閾値設定処理を行う。
【００８１】
なお、本実施例では、閾値設定処理の有効／無効をシステムコントローラ１０５が自動的に判定するが、これをユーザが選択できるようにしてもよい。また、Ｓ１１０３の判定を無くして、カメラの電源ＯＮ時に毎回閾値設定処理を行うようにしてもよい。さらに、前回のカメラの使用時にＡ相およびＢ相パルス信号のエッジ間の時間間隔が所定値より短くなった（または所定値以下になった）か否かを記憶しておき、所定値より短くなった場合は次のカメラの電源ＯＮ時に強制的に閾値設定処理を行うようにしてもよい。
【００８２】
Ｓ１１０３において閾値設定処理が有効であると判定した場合には、システムコントローラ１０５は、Ｓ１１０４に進み、駆動コントローラ１０４（モータ制御コントローラ１０４１および閾値設定部１０４３）に実施例１で説明した閾値設定処理を行わせる。これにより、現在のエンコーダ１０１３やカメラの状況に対して適切な閾値（使用閾値）が設定される。
【００８３】
次に、Ｓ１１０５では、システムコントローラ１０５は、閾値設定処理にて設定された閾値と、該閾値を設定した際の各種条件を記憶する。ここにいう各種条件とは、レンズ鏡筒１０１内に設けられた温度センサにより検出された閾値設定処理時のレンズ鏡筒１０１（つまりはカメラ）の温度や、閾値設定処理が終了した時間である。
【００８４】
ここで、閾値設定処理時のズーム駆動速度を補正する方法について説明する。閾値設定処理（閾値設定ズーム駆動）時においてズーム駆動速度を検出する際には、ズーム検出部１０４５において、２値化回路１０４４で設定している閾値とは別の仮閾値を設定し、その仮閾値を用いてパルス信号のＨ期間とＬ期間の検出を行う。図１０は、一定速度でズーム駆動した場合において、ズーム検出部１０４５で仮閾値を設定することでエンコーダ１０１３からのアナログ信号を仮想的に２値化して生成したパルス信号と、実際にズーム検出部１０４５で生成したパルス信号とを比較して示している。仮閾値は、閾値設定ズーム駆動中は常に一定の値に固定される。ここでは、仮閾値として、デフォルトの閾値を用いる。
【００８５】
図１０から分かるように、閾値設定ズーム駆動時は閾値を動的に設定しているため、実際のズーム駆動速度が一定であっても、検出されるズーム駆動速度に変動が生じる。一方、仮閾値で２値化した場合には、閾値変化による影響を受けないため、実際のズーム駆動速度が一定である場合に検出されるズーム駆動速度も一定となる。
【００８６】
次に、図１２を用いて、ズーム検出部１０４５にてエンコーダ１０１３からのアナログ信号を仮想的に２値化する方法について説明する。図１４中の黒丸は、ズーム検出部１０４５においてエンコーダ１０１３からのアナログ信号を検出するサンプリングタイミングを示している。このサンプリングタイミングごとにアナログ信号を検出し、検出した信号値と仮閾値とを比較することで２値化を行い、該２値化により得られた仮想のパルス信号のエッジに基づいてズーム駆動速度を検出（算出）する。
【００８７】
このように、仮閾値を用いて２値化を行うことで、閾値の変化に起因したズーム駆動速度の検出値の変動を防ぐことができる。しかし、アナログ信号のサンプリングタイミングの間隔は、ズーム検出部１０４５内に設けられているエッジ間隔計測タイマーの動作クロックよりも遅い。このため、エッジ間隔タイマーでパルス信号のエッジ間隔を計測した場合に比べて、Ｈ期間とＬ期間を検出する際の分解能や検出タイミングの遅れによりズーム駆動速度の検出精度は低下する。したがって、仮想の閾値を用いた２値化により生成した仮想のパルス信号の情報に基づくズーム駆動速度の制御は、閾値が定まっていない閾値設定ズーム駆動時にのみに限定して行う。閾値設定ズーム駆動以外のズーム駆動時には、閾値設定処理で得られた使用閾値を用いてエンコーダ１０１３からのアナログ信号を２値化し、ズーム検出部１０４５のエッジ間隔タイマーにより得られたエッジ間隔に基づいてズーム駆動速度を検出する。
【実施例３】
【００８８】
実施例３として、カメラの電源をＯＮからＯＦＦにする際に閾値設定処理を行う場合におけるカメラの動作について説明する。カメラの電源ＯＦＦ時もカメラの処理負荷が比較的小さいので、閾値設定ズーム駆動を行うのに適している。また、本実施例における閾値設定処理は、カメラの電源スイッチがＯＦＦ操作された時点での変倍レンズ１０１２の位置から変倍レンズ１０１２が格納位置に移動する間に行う。この際、ＯＦＦ操作された時点での変倍レンズ１０１２の駆動可能量がスリット板１０１３ｃの１回転分に相当する駆動量以上あることを確認した上で閾値設定処理（閾値設定ズーム駆動）を行う。
【００８９】
図１３のフローチャートには、ユーザが電源ＯＮ状態のカメラにおいてカメラ操作部１０６の電源スイッチをＯＦＦ操作することに応じて閾値設定処理を行う際のカメラ処理の流れを示している。コンピュータとしてのシステムコントローラ１０５および駆動コントローラ１０４（モータ制御コントローラ１０４１および閾値設定部１０４３）が、コンピュータプログラムであるカメラ処理プログラムを実行することでこの処理を行う。カメラ処理プログラムには、実施例１と同様な閾値設定処理（ただし、ズーム駆動の目標位置が格納位置である点が異なる）を行うエンコーダ信号処理プログラムが含まれている。
【００９０】
Ｓ１２０１において、システムコントローラ１０５は、ユーザによって電源スイッチがＯＦＦ操作されたか否かを判定し、ＯＦＦ操作された場合はＳ１２０２に進む。
【００９１】
Ｓ１２０２において、システムコントローラ１０５は、電源スイッチのＯＦＦ操作時における変倍レンズ１０１２の位置（ズーム位置）が格納位置に向けて閾値設定ズーム駆動を実行可能なズーム位置であるか否かを判定する。閾値設定ズーム駆動が実行可能なズーム位置とは、格納位置からスリット板１０１３ｃの１回転分に相当するズーム駆動量以上離れたズーム位置である。このズーム位置は、ズーム駆動速度の加減速に要するズーム駆動量も考慮して決定することが望ましい。
【００９２】
図１４には、電源スイッチがＯＦＦ操作されてから変倍レンズ１０１２が格納位置（Ｓｉｎｋ）に到達するまでのズーム位置とズーム駆動速度との関係を示している。ズーム駆動が停止した状態で電源スイッチがＯＦＦ操作されると、ズーム駆動速度は目標速度に到達するまで加速される。ズーム駆動速度の加速は、モータ制御コントローラ１０４１がドライバ回路１０４２からズームモータ１０１１に供給される駆動信号を制御することで行う。ズーム検出部１０４５によってズーム駆動速度が目標速度まで加速したと判定されると、モータ制御コントローラ１０４１はズーム駆動速度が目標速度で一定となるようにドライバ回路１０４２からズームモータ１０１１に供給される駆動信号を制御する。そして、ズーム位置が格納位置から所定量だけ手前の位置に到達すると、モータ制御コントローラ１０４１は、格納位置での停止に向けてズーム駆動速度を減速させるようにズームモータ１０１１に供給される駆動信号を制御する。
【００９３】
このように、電源スイッチがＯＦＦ操作されてから変倍レンズ１０１２が格納位置に到達するまでには、加速区間、定速区間および減速区間がある。閾値設定ズーム駆動を行うためには定速区間がスリット板１０１３ｃの１回転分に相当するズーム駆動量以上である必要がある。このためには、加速区間と減速区間でのズーム駆動量を事前に調べておき、システムコントローラ１０５内のメモリに記憶しておけばよい。
【００９４】
例えば、加速区間および減速区間のズーム駆動量がともに４０であり、ズーム検出部１０４５で検出される１相パルス信号のパルス数が１００パルスとする。各相パルス信号の立ち上がりおよび立ち下りエッジごとにズーム位置が１つインクリメントされるので、定速区間でスリット板１０１３ｃの１回転分だけズーム駆動するためには、
減速駆動量＋スリット板１回転分の駆動量＋加速駆動量
＝４０＋（１００×２×２）＋４０＝４８０
のズーム駆動量が必要である。
【００９５】
このことから、システムコントローラ１０５は、Ｓ１２０２において電源スイッチのＯＦＦ操作時のズーム位置が４８０以上のズーム駆動量を確保できるか否かを判定し、確保できない場合は本処理を終了し、確保できる場合はＳ１２０３に進む。
【００９６】
Ｓ１２０３では、システムコントローラ１０５は、実施例２のＳ１１０３と同様に閾値設定処理が有効か否かを判定する。このときの判定条件はＳ１１０３と同じである。なお、実施例２でも説明したように、閾値設定処理の有効／無効をユーザが選択できるようにしてもよいし、この判定を無くしてカメラの電源ＯＦＦ時に毎回閾値設定処理を行うようにしてもよい。さらに、前回のカメラの使用時にＡ相およびＢ相パルス信号のエッジ間の時間間隔が所定値より短くなった（または所定値以下になった）場合に次のカメラの電源ＯＦＦ時に強制的に閾値設定処理を行うようにしてもよい。
【００９７】
Ｓ１２０３において閾値設定処理が有効であると判定した場合には、システムコントローラ１０５は、Ｓ１２０４に進み、駆動コントローラ１０４（モータ制御コントローラ１０４１および閾値設定部１０４３）に実施例１で説明した閾値設定処理を行わせる。これにより、現在のエンコーダ１０１３やカメラの状況に対して適切な閾値（使用閾値）が設定される。
【００９８】
次に、Ｓ１２０５では、システムコントローラ１０５は、閾値設定処理にて設定された閾値と、該閾値を設定した際の各種条件を記憶する。各種条件は、実施例２のＳ１１０５で説明したものと同じである。そして、システムコントローラ１０５は、本処理を終了する。
【００９９】
なお、本実施例の閾値設定処理において、実施例２で示したように仮閾値を設定して生成した仮のパルス信号のエッジ間隔の情報を元にズーム駆動速度を制御してもよい。
【０１００】
実施例２，３では、閾値設定処理を行う望ましいタイミングについて説明したが、これら以外のタイミングで閾値設定処理を行ってもよい。
【０１０１】
上記各実施例では、スリット板をスケールとして用い、フォトインタラプタをセンサとして用いた光学エンコーダについて説明したが、他の方式のエンコーダを用いる場合でも実施例１で説明した閾値設定処理を行うことができる。他の方式のエンコーダには、周期的な反射パターンがスケール上に形成され、該反射パターンからの反射光をセンサで受光するタイプの光学エンコーダが含まれる。また、光学式だけでなく、磁気式や静電容量式等、様々な方式のエンコーダが含まれる。
【０１０２】
さらに、各実施例ではカメラの変倍レンズの位置検出や速度検出に用いられるエンコーダについて説明したが、カメラ以外の光学機器や光学機器以外の装置を含む各種装置に用いられるエンコーダに対して実施例１で説明した閾値設定処理を行うことができる。
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１０３】
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
【符号の説明】
【０１０４】
１０１３  エンコーダ
１０１３ａ  センサ（フォトインタラプタ）
１０１３ｃ  スケール（スリット板）
１０４３  閾値設定部
１０４４  ２値化回路
【図１】
2017003403.tif 000005
【図２】
2017003403.tif 000006
【図３】
2017003403.tif 000007
【図４】
2017003403.tif 000008
【図５】
2017003403.tif 000009
【図６】
2017003403.tif 000010
【図７】
2017003403.tif 000011
【図８】
2017003403.tif 000012
【図９】
2017003403.tif 000013
【図１０】
2017003403.tif 000014
【図１１】
2017003403.tif 000015
【図１２】
2017003403.tif 000016
【図１３】
2017003403.tif 000017
【図１４】
2017003403.tif 000018