(57)【要約】【課題】ステッピングモータの駆動制御を行うにあたって、駆動の停止精度を向上させることが可能なレンズ制御装置およびレンズ制御方法を提供する。【解決手段】レンズを光軸方向に移動させるステッピングモータを有し、入力される目標位置に基づいて駆動量を求め、ステッピングモータの回転位置を指示して駆動するレンズ駆動装置のレンズ制御方法であって、現在位置まで駆動する際の第１の駆動量を読出し（Ｓ２１）、現在位置から目標位置までの第２の駆動量に応じて、第２の駆動量を補正した第３の駆動量を求め（Ｓ２９〜Ｓ３５）、第３の駆動量に基づいてステッピングモータに回転位置を指示する。【選択図】  図４
2017219766.tif 000002
【特許請求の範囲】
【請求項１】
レンズを光軸方向に移動させるレンズ制御装置において、
上記レンズを駆動するステッピングモータと、
入力される目標位置に基づいて駆動量を求め、上記ステッピングモータの回転位置を指示して駆動する位置指示部と、
を有し、
上記位置指示部は、現在位置まで駆動する際の第１の駆動量と、現在位置から上記目標位置までの第２の駆動量に応じて、第２の駆動量を補正した第３の駆動量を求め、上記第３の駆動量に基づいて回転位置を指示することを特徴とするレンズ制御装置。
【請求項２】
同一の上記回転位置に対して異なる駆動量で駆動する時に生ずる上記回転位置と実際に停止した回転位置のずれ量を記憶する記憶部と、
を有し、
上記位置指示部は、上記ずれ量から補正値を求めて、上記第２の駆動量と上記補正値から上記第３の駆動量を求める演算部を有する、
ことを特徴とする請求項１に記載のレンズ制御装置。
【請求項３】
上記記憶部は、駆動量との関係に応じた複数のずれ量を保持し、さらに、上記複数のずれ量を使い分けるための判定値を保持することを特徴とする請求項２に記載のレンズ制御装置。
【請求項４】
上記複数のずれ量は、駆動量に依存する領域のずれ量と、依存しない領域のずれ量を含むことを特徴とする請求項３に記載のレンズ制御装置。
【請求項５】
上記判定値は、ずれ量が駆動量に依存する領域と依存しない領域の境界となる駆動量であることを特徴とする請求項３に記載のレンズ制御装置。
【請求項６】
上記演算部は、上記第１の駆動量と上記第２の駆動量と上記判定値の関係に応じて補正値を求めて、上記第２の駆動量と補正値から、上記第３の駆動量を求めることを特徴とする請求項２に記載のレンズ制御装置。
【請求項７】
上記演算部は、上記第１の駆動量と上記第２の駆動量の両方が上記判定値より小さい場合に、上記複数のずれ量をもとに補正値を求め、一方が上記判定値より大きい場合は、駆動量に依存しない領域のずれ量をもとに補正値を求めることを特徴とする請求項６に記載のレンズ制御装置。
【請求項８】
レンズを光軸方向に移動させるステッピングモータを有し、入力される目標位置に基づいて駆動量を求め、上記ステッピングモータの回転位置を指示して駆動するレンズ駆動装置のレンズ制御方法において、
現在位置まで駆動する際の第１の駆動量を読出し、
現在位置から上記目標位置までの第２の駆動量に応じて、第２の駆動量を補正した第３の駆動量を求め、
上記第３の駆動量に基づいて上記回転位置を指示する、
ことを特徴とするレンズ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステッピングモータによってレンズを光軸方向に移動させるようにしたレンズ制御装置およびレンズ制御方法に関する。
【背景技術】
【０００２】
従来より、撮像装置等において、レンズを光軸方向に移動させるためにステッピングモータが使用されている。ステッピングモータは入力された駆動パルス数に応じて駆動軸が回転するので、駆動目標位置までの距離に応じた駆動パルス数がステッピングモータに印加され、レンズが目標位置に移動される。
【０００３】
より精密な駆動を行うために、ステッピングモータをマイクロステップで駆動することが行われている。ステッピングモータをマイクロステップで駆動すると、ステップ幅に対する回転角度が励磁位相に応じて変動する（例えば、特許文献１参照）。この回転角度の変動は、モータ自身のディテントトルクの影響によるものである。この影響により、微小の進退駆動を繰り返してコントラストピークを検出する（ウォブリング）動作において、予期せぬ振幅量の脈動を招き、合焦が不安定となってしまう。
【０００４】
そこで、特許文献１においては、駆動について「１相を跨ぐ駆動」と「２相を跨ぐ駆動」に分類し、それぞれ駆動量の補正を行っている。つまり、目標ステップ位相に応じて補正値を加味して駆動することで、安定した駆動量を確保することを提案している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１３５７００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述の特許文献１に提案されている技術では、ウォブリング駆動の内、特定のパターン、すなわち、１相を跨ぐ／２相を跨ぐ／どちらも跨がない、の３パターンしか考慮しておらず、停止位置の励磁位相に対する考慮が不足している。従って狙いの停止位置次第では、ウォブリングに対しても補正が不十分である。
【０００７】
また、停止位置の制御にあたって、駆動指示パルスと実駆動パルスのずれを補正値とすると、この補正値は、励磁位相だけではなく駆動量によっても変化する。さらに直前の動作に左右される場合もあることが実験データより明らかになっている。しかし特許文献１に開示の技術ではこれらの点についても考慮されていない。従って、従来のレンズ駆動制御では、全ての駆動の停止精度を確保する事は難しかった。
【０００８】
本発明は、このような事情を鑑みてなされたものであり、ステッピングモータの駆動制御を行うにあたって、駆動の停止精度を向上させることが可能なレンズ制御装置およびレンズ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため第１の発明に係るレンズ制御装置は、レンズを光軸方向に移動させるレンズ制御装置において、上記レンズを駆動するステッピングモータと、入力される目標位置に基づいて駆動量を求め、上記ステッピングモータの回転位置を指示して駆動する位置指示部と、を有し、上記位置指示部は、現在位置まで駆動する際の第１の駆動量と、現在位置から上記目標位置までの第２の駆動量に応じて、第２の駆動量を補正した第３の駆動量を求め、上記第３の駆動量に基づいて回転位置を指示する。
【００１０】
第２の発明に係るレンズ制御装置は、上記第１の発明において、同一の上記回転位置に対して異なる駆動量で駆動する時に生ずる上記回転位置と実際に停止した回転位置のずれ量を記憶する記憶部と、を有し、上記位置指示部は、上記ずれ量から補正値を求めて、上記第２の駆動量と上記補正値から上記第３の駆動量を求める演算部を有する。
【００１１】
第３の発明に係るレンズ制御装置は、上記第２の発明において、上記記憶部は、駆動量との関係に応じた複数のずれ量を保持し、さらに、上記複数のずれ量を使い分けるための判定値を保持する。
第４の発明に係るレンズ制御装置は、上記第３の発明において、上記複数のずれ量は、駆動量に依存する領域のずれ量と、依存しない領域のずれ量を含む。
第５の発明に係るレンズ制御装置は、上記第３の発明において、上記判定値は、ずれ量が駆動量に依存する領域と依存しない領域の境界となる駆動量である。
【００１２】
第６の発明に係るレンズ制御装置は、上記第２の発明において、上記演算部は、上記第１の駆動量と上記第２の駆動量と上記判定値の関係に応じて補正値を求めて、上記第２の駆動量と補正値から、上記第３の駆動量を求める。
第７の発明に係るレンズ制御装置は、上記第６の発明において、上記演算部は、上記第１の駆動量と上記第２の駆動量の両方が上記判定値より小さい場合に、上記複数のずれ量をもとに補正値を求め、一方が上記判定値より大きい場合は、駆動量に依存しない領域のずれ量をもとに補正値を求める。
【００１３】
第８の発明に係るレンズ制御方法は、レンズを光軸方向に移動させるステッピングモータを有し、入力される目標位置に基づいて駆動量を求め、上記ステッピングモータの回転位置を指示して駆動するレンズ駆動装置のレンズ制御方法において、現在位置まで駆動する際の第１の駆動量を読出し、現在位置から上記目標位置までの第２の駆動量に応じて、第２の駆動量を補正した第３の駆動量を求め、上記第３の駆動量に基づいて上記回転位置を指示する。
【発明の効果】
【００１４】
本発明によれば、ステッピングモータの駆動制御を行うにあたって、駆動の停止精度を向上させることが可能なレンズ制御装置およびレンズ制御方法を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係るカメラの主として電気的構成を示すブロック図である。
【図２】本発明の一実施形態に係るカメラにおけるステッピングモータの駆動量と検出ずれの関係を示すグラフである。
【図３】本発明の一実施形態に係るカメラの実駆動量探索の動作を示すフローチャートである。
【図４】本発明の一実施形態に係るカメラの目標偏差の算出の動作を示すフローチャートである。
【図５】本発明の一実施形態に係るカメラにおいて仮目標パルスの算出を説明する図である。
【図６】本発明の一実施形態に係るカメラにおいて仮目標パルスの算出を説明する図である。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態としてデジタルカメラ（以下、「カメラ」と略称する）に適用した例について説明する。すなわち、レンズを光軸方向に移動させるレンズ制御装置の一例として、カメラに適用した例について説明する。このカメラは、レンズ鏡筒部内の光学レンズによって形成された被写体像を、撮像部によって被写体像を画像データに変換し、この変換された画像データに基づいて、被写体像を本体の背面に配置した表示部にライブビュー表示し、また記録媒体に静止画や動画の画像データを記録する。レリーズ釦の半押し操作等に連動し、コントラスト法や位相差法等による焦点検出がなされ、焦点検出の結果に応じて、光学レンズを合焦位置にステッピングモータの駆動によって移動させる。
【００１７】
光学レンズの合焦位置等への移動にあたっては、レンズの移動先（目標位置）に基づいて、仮の目標回転位置を決定し（例えば、図３の仮目標パルス値算出参照）、この仮の目標位置に基づいて、目標位置に対応する位置を探索し（図３のＳ３、Ｓ９、Ｓ１１等参照）、この探索された位置に基づいて、ステッピングモータの駆動パルス数（回転位置）を算出する（Ｓ１３〜Ｓ１７参照）。
【００１８】
また、仮の目標位置を決定するにあたっては、現在位置における励磁位相、現在位置に到達するまでの第１の駆動量、および現在位置から移動先までの第２の駆動量を考慮して、補正値を算出し、この補正値を用いて、目標位置に対応するステッピングモータの回転位置（すなわち、目標位置までの第３の駆動量）を求める。
【００１９】
以下、図面に従って本発明を適用したカメラを用いて好ましい一実施形態について説明する。図１は、本発明の一実施形態に係るカメラのレンズ駆動部の機械的な構成と、カメラのレンズ駆動に関わる主として電気的な構成を示すブロック図である。なお、カメラは、カメラ本体に着脱自在な交換レンズとからなる交換レンズシステムカメラでもよく、またレンズ鏡筒とカメラ本体が一体に構成されていてもよい。
【００２０】
レンズ駆動部１は、レンズ一体型のカメラまたはレンズ交換式カメラの交換レンズ内に配置されている。レンズ駆動部１内には、光学レンズ（以下「レンズ」と略称する）２、レンズ枠３、ガイド軸４ａ、４ｂ、バネ５、ステッピングモータ６、リードスクリュー７、スケール磁石８、ＧＭＲ（Giant Magneto Resistive Effect：巨大磁気抵抗効果）センサ９、フォトインタラプタ１０が備えられている。
【００２１】
レンズ２は、複数または単数の光学レンズを有し、被写体像を形成する。レンズ２は、レンズ枠３に保持されている。ガイド軸４ａとこれに平行に設けられたガイド軸４ｂは、レンズ２の光軸方向に沿って延びた軸であり、レンズ鏡枠等に固定されている。レンズ２はバネ５によって吊られており、レンズ枠３とレンズ鏡枠の固定部材との間に設けられ、レンズ枠３に対して、図中、右側向きに付勢力を与えている。
【００２２】
前述のレンズ枠３は、レンズ２の光軸方向とは直角方向に延びた固定部３ａと、この固定部３ａと一体であり、ガイド軸４ｂに嵌合した嵌合部３ｂを有する。またレンズ枠３は、リードスクリュー７が貫通する貫通孔３ｃと、遮光ハネ３ｅを有する。遮光ハネ３ｅは、固定部３ａと一体であり固定部３ａの一端側に設けられている。遮光ハネ３ｅは、レンズ２が基準位置に移動した際に、フォトインタラプタ１０の発光部から投光された光を遮光する。
【００２３】
ステッピングモータ６は、モータ駆動回路（モータドライバ）２４から、モータ駆動信号としてＡ相、Ｂ相からなる２相のパルス信号を受け、回転駆動する。ステッピングモータ６は、レンズを駆動するステッピングモータである。ステッピングモータ６の回転駆動軸は、リードスクリュー７と一体である。このため、リードスクリュー７は、ステッピングモータ６に印加されたモータ駆動信号に応じて、正転・逆転する。
【００２４】
リードスクリュー７が正転・逆転すると、リードスクリュー７に噛み合ったナット１１を介して、レンズ２は光軸方向に沿って移動する。このナット１１はレンズ枠３とは別体である。バネ５によってレンズ枠３は図１の右側向きに引っ張られ、貫通孔３ｃの周囲がリードスクリュー７に噛み合うナット１１に当て付けられた状態となる。ナット１１の回転止め（不図示）がレンズ枠３に設けられてので、リードスクリュー７が回転するとナット１１は右または左方向に移動し、そこに当て付けられているレンズ枠３も光軸方向に移動する。
【００２５】
スケール磁石８は、リードスクリュー７の一端側に一体に設けられており、円周面に沿って、Ｓ極とＮ極が交互に帯磁されている。ＧＭＲセンサ９は、スケール磁石８と対向する位置に配置されており、スケール磁石８のＳ極、Ｎ極によって生成される磁場に応じて２相信号を出力する。スケール磁石８およびＧＭＲセンサ９の検知信号に基づいて、ステッピングモータ６の相対的な回転位置（レンズ２の相対的な光軸方向の位置）を検出することができる。スケール磁石８とＧＭＲセンサ９は、レンズの光軸方向の位置に対応する信号を検出する位置検出部として機能する。
【００２６】
フォトインタラプタ１０は、レンズ鏡枠等に固定されており、発光部と受光部を有する。レンズ２が基準位置に移動してくると、発光部からの投光が遮光ハネ３ｅによって遮光される。受光部は遮光状態になると出力が変化し、これによって、レンズ２が基準位置にあることを検知することができる。すなわち、遮光ハネ３ｅとフォトインタラプタ１０によって、レンズ２の絶対的な位置検出することができる。フォトインタラプタ１０からの位置検出信号はＩＯポート３２に出力される。
【００２７】
このように、本実施形態におけるレンズ駆動部１においては、ステッピングモータ６によって駆動されるリードスクリュー７の回転によりナット１１を直線移動させ、バネ５の付勢力によってレンズ枠３をガイド軸４ａ、４ｂに沿って移動させる。これによって、レンズ枠３に固定されたレンズ２が光軸方向に駆動する。また、リードスクリュー７の先端にはＧＭＲセンサ９と対向する位置にスケール磁石８が取り付けられており、リードスクリューが正転または逆転すると、スケール磁石８も同方向に回転する。
【００２８】
ＧＭＲセンサ９の出力は、増幅回路２１に接続されている。増幅回路２１は、ＧＭＲセンサ９からの２相のアナログのセンサ出力信号をそれぞれ増幅し、センサ信号のノイズ除去処理を行う。増幅回路２１で処理された増幅センサ信号は、Ａ／Ｄコンバータ３３と２値化回路２２に出力される。
【００２９】
２値化回路２２は、増幅回路２１からの２相のセンサ出力信号について、それぞれ２値化し、アップ／ダウンカウンタ（２相カウンタ）３４に２値化信号を出力する。２値化にあたって、２値化回路２２は、Ｄ／Ａコンバータ３５からの閾値電圧を入力し、この閾値電圧を用いて２値化する。
【００３０】
マイクロコンピュータ３０は、ＣＰＵ（Central Processing Unit）３１とその周辺回路を有し、メモリ３９に記憶されたプログラムに従って、カメラ内の各部を制御することによってカメラの全体を実行する。具体的には、マイクロコンピュータ３０は、例えば、レンズ駆動部１からの各種信号に応じて、ステッピングモータ６の駆動のための各種信号を生成する。周辺回路としては、ＩＯ（Input／Output）ポート３２、Ａ／Ｄ（Analog／Digital）コンバータ３３、アップ／ダウンカウンタ３４、Ｄ／Ａ（Digital／Analog）コンバータ３５、パルス発生器３６、通信ポート３７、タイマ３８、メモリ３９が設けられている。
【００３１】
マイクロコンピュータ３０は、入力される目標位置に基づいて駆動量を求め、ステッピングモータの回転位置を指示して駆動する位置指示部として機能する。この位置指示部は、現在位置まで駆動する際の第１の駆動量と（例えば、図５の上段のｚ軸参照）、現在位置から目標位置までの第２の駆動量（例えば、図４のＳ２３参照）に応じて、第２の駆動量を補正した第３の駆動量を求め（補正値は、例えば、図３のＳ１７参照）、第３の駆動量に基づいて回転位置を指示する。
【００３２】
また、上述の位置指示部は、同一の上記回転位置に対して異なる駆動量で駆動する時に生ずる回転位置と実際に停止した回転位置のずれ量を記憶部から読出し、このずれ量から補正値を求めて、第２の駆動量と補正値から第３の駆動量を求める演算部を有する。この演算部は、第１の駆動量と第２の駆動量と判定値の関係に応じて補正値を求めて（例えば、図４のＳ２５〜Ｓ２９参照）、第２の駆動量と補正値から、第３の駆動量を求める。また、演算部は、第１の駆動量と第２の駆動量の両方が判定値より小さい場合に、複数のずれ量をもとに補正値を求め（例えば、図４のＳ２５、Ｓ２７、Ｓ２９参照）、一方が判定値より大きい場合は、駆動量に依存しない領域のずれ量をもとに補正値を求める（例えば、図４のＳ２５、Ｓ２７参照）。
【００３３】
ＩＯポート３２は、フォトインタラプタ１０から位置検出信号を入力し、この位置検出信号に基づいて、レンズ２が基準位置にあることを示す信号をＣＰＵ３１に出力する。
【００３４】
Ａ／Ｄコンバータ３３は、増幅回路２１からＡ相およびＢ相の増幅センサ信号を入力し、それぞれの信号に対してＡＤ変換を行って、Ａ相およびＢ相の増幅センサ信号をデジタルデータに変換しＣＰＵ３１に出力する。
【００３５】
Ｄ／Ａコンバータ３５は、ＣＰＵ３１から閾値電圧に相当するデジタル値を入力し、アナログ電圧に変換し、２値化回路２２に閾値電圧として出力する。増幅センサ信号の中点電位は、ＧＭＲセンサ９の特性や増幅回路２１によってばらつきがある。そこで、予めＡ相およびＢ相の中点電位を調整値としてメモリ３９に記憶しておき、２値化回路２２は、この中点電位を閾値電圧として使用し、２値化を行う。
【００３６】
アップ／ダウンカウンタ３４は、２値化回路２２から２値化信号を入力し、アップ／ダウンカウントを行う。ＧＭＲセンサ９は、Ａ相およびＢ相センサ信号を出力しており、２値化信号を入力する度にアップ／ダウンカウントを行う。これにより、スケール磁石８が正転しているか、逆転している、即ち、レンズ２がいずれの方向に移動しているかを判定することができる。
【００３７】
メモリ３９は、電気的に書き換え可能な揮発性メモリ（例えば、ＤＲＡＭ（Dynamic Random Access Memory）等）と、電気的に書き換え可能な不揮発性メモリ（例えば、フラッシュＲＯＭ（Flash Read Only Memory）等）を有する。メモリ３９には、ＣＰＵ３１で実行するためのプログラム、レンズの各種調整値（例えば、前述の中点電位に関する値）、レンズ駆動用の設定値等、種々のデータが記憶される。レンズ駆動用の設定値として、ステッピングモータの位置パルス（回転位置）と、ＧＭＲセンサ９による検出パルス（検出位置）の関係を示すデータ（調整値）が記憶されている。
【００３８】
メモリ３９は、同一の回転位置に対して異なる駆動量で駆動する時に生ずる回転位置と実際に停止した回転位置のずれ量を記憶する記憶部として機能する。この記憶部は、駆動量との関係に応じた複数のずれ量を保持し、さらに、複数のずれ量を使い分けるための判定値を保持する（例えば、図２（ｂ）、図５参照）。複数のずれ量は、駆動量に依存する領域のずれ量と、依存しない領域のずれ量を含む（例えば、図２（ｂ）参照）。上述の判定値は、ずれ量が駆動量に依存する領域と依存しない領域の境界となる駆動量である（例えば、図２（ｂ）のＴｈ参照）。
【００３９】
タイマ３８は、フィードバック制御の制御周期を発生させたり、レンズの各種動作の時間の計測を行うための計時動作を行う。また、カレンダ機能等を有する。通信ポート３７は、ＣＰＵ３１の外部との信号のやり取りを行うためのポートである。本実施形態においては、通信ポート３７を介して種々の通信が行われるが、例えば、通信ポート３７からモータ駆動回路２４への設定信号が送出される。
【００４０】
パルス発生器３６は、ＣＰＵ３１からの制御信号を受け、ステッピングモータ６の駆動用にモータ駆動回路２４に出力するクロック信号（パルス信号）を発生する。すなわち、パルス発生器３６は、モータ駆動回路２４にクロック信号を出力し、ステッピングモータの励磁位置を進める。
【００４１】
モータ駆動回路２４は、モータ電源２３から電源電圧の供給を受け、またパルス発生器３６からクロック信号と通信ポート３７からの設定信号を入力し、ステッピングモータ６に２相の電圧信号からなるモータ駆動信号を出力する。また、モータ駆動回路２４は、モータ駆動信号の出力にあたって、ＣＰＵ３１からの設定信号に基づいて、モータ駆動信号の最大印加電圧の調整を行う。モータ電源２３は、電池等の電源を有し、図示しない定電圧回路等によって定電圧化されてモータ駆動回路２４に電源を供給する。
【００４２】
モータ駆動信号の生成にあたって、マイクロコンピュータ３０内のＣＰＵ３１は、ＧＭＲセンサ９が検出したセンサ出力信号に基づいて演算を行い、モータ駆動回路２４が出力する駆動パルスの管理、駆動速度の設定、駆動電圧の設定、フィードバック制御に必要なデジタルデータの各種演算処理を行う。
【００４３】
次に、図２を用いて、ステッピングモータのリニアリティ特性について説明する。本実施形態においては、駆動量に応じた補正演算を行っており、ステッピングモータのリニアリティ特性を利用している。
【００４４】
図２（ａ）は、駆動量毎の励磁位置に対する検出ずれ（すなわち、駆動指示バルスと実駆動パルスの差）の関係を示す。図２（ａ）において、横軸は励磁位置を示し、縦軸は検出ずれを示す。横軸に示す励磁位置は、ステッピングモータ６の停止位置に相当する。ステッピングモータ６は、励磁コイルと永久磁石の磁力のバランスによって停止する。本実施形態においては、マイクロコンピュータ３０からステッピングモータ６に指示される駆動量は、駆動指示パルスの大きさで示される。
【００４５】
図２（ａ）の凡例に示す○□△☆は、駆動量に相当する駆動指示パルスの大きさを示す。「○」を繋いだラインは、駆動量が１ｐｌｓ＠／２５６μｓｔｅｐ単位の２５６〜１６ｐｌｓの場合の検出ずれを示す。「△」を繋いだラインは、駆動量が１２ｐｌｓの場合の検出ずれを示す。「□」を繋いだラインは、駆動量が８ｐｌｓの場合の検出ずれを示す。「☆」を繋いだラインは、駆動量が４ｐｌｓの場合の検出ずれを示す。図２（ａ）にから分かるように、検出ずれは、ステッピングモータのディテントトルクの影響により、励磁位置に依存し周期的に繰り返す非線形な関係を示す。
【００４６】
図２（ａ）において、ｘ軸の各点において、縦方向にみると、同一の励磁位置に対して、異なる駆動量で駆動させた場合の検出ずれが読み取れる。図２（ｂ）は、特定の励磁位置に着目し、駆動量に対する検出ずれの関係を表している。図２（ｂ）において、横軸は検出ずれを取得した駆動量を示し、縦軸は検出ずれであり、凡例は励磁位置を示している。図２（ｂ）に示す例は、図２（ａ）における励磁位置２、８、１０（１／６４μｓｔｅｐ単位）における駆動量（駆動指示パルスで表される）毎の検出ずれを示す。なお、●▲■は、励磁位置２、８、１０にそれぞれ対応する。
【００４７】
図２（ｂ）から分かるように、励磁位置に対する検出ずれの分布は、ある駆動量を閾値として、駆動量に依存して変化する。すなわち、図２（ｂ）において、閾値Ｔｈより駆動量が大きい範囲（図２（ｂ）においてＴｈより右側の範囲）において、検出ずれは略一定である。励磁位置が閾値Ｔｈ以上では、停止誤差は変化していない。また、閾値Ｔｈより駆動量が小さい範囲（図２（ｂ）においてはＴｈより左側の範囲）において、検出ずれは線形に変化している。このように、ステッピングのモータに指示する駆動量に依存して検出ずれ量が変化するので、駆動量に応じて、検出ずれを補正して停止位置の補正演算の最適化を行うことが望ましい。
【００４８】
なお、本実施形態においては、○で示した２５６〜１６ｐｌｓの駆動指示パルスの場合は通常駆動用調整値によって停止位置の補正演算を行い、☆で示した４ｐｌｓの駆動指示パルスの場合は小パルス駆動用調整値で停止位置の補正演算を行う。メモリ３９には、駆動指示パルス（駆動量）と検出ずれの関係が調整値として記憶されている。通常駆動用調整値、小パルス駆動用調整値は、メモリ３９に記憶されている検出ずれに基づいて算出される。
【００４９】
小パルス駆動用調整値を取得した際の駆動量を小パルス基準値と定義し、駆動パルスに応じた調整値を演算する際のパラメータとして使用する。駆動パルス（駆動量）が４と１６の間では、２種類の調整値（小パルス駆動用／通常駆動用）と、その中間値を取得した駆動パルス、駆動指示量のパラメータに基づいて補間演算で調整値を求める（図４のＳ２５〜Ｓ２９参照）。
【００５０】
本実施形態におけるレンズ制御においては、上述したステッピングモータの特性を考慮し、「閾値となる駆動量」「閾値以上の駆動量で取得した検出ずれ」「閾値以下の駆動量」「閾値以下で取得した検出ずれ」を利用し、「駆動量」に対する適切な検出ずれ（補正値）を線形補間によって求める。さらに、この駆動量に対する補間演算によって求めた補正値を、駆動位置、励磁位置に対しても線形補間演算し、実駆動量探索に使用する補正値を確定する。
【００５１】
次に、図３および図４に示すフローチャートを用いて、本実施形態におけるレンズ制御の動作について説明する。図３および図４に示すフローチャートはＣＰＵ３１がメモリ３９に記憶されたプログラムに従って、カメラ内の各部を制御することによって実現する。
【００５２】
図３に示す実駆動量探索のフローに入ると、まず、仮目標パルス値の算出を行い（Ｓ１）。ここでは、ＣＰＵ３１が、レンズ指定位置に到達させるための駆動指示パルス（ステッピングモータ６に印加するパルス数）を演算する。この駆動指示パルスは、例えば、位相差法やコントラスト法による自動焦点検出結果に基づいて算出する。
【００５３】
仮目標パルス値を算出すると、次に、補正値演算に使用する探索変数の取り得る範囲（探索範囲）を決定する（Ｓ３）。ここでは、仮目標パルス値に基づいて決まる位置に隣接する所定範囲内を探索範囲として決める。なお、この探索範囲は、電気角１回転分に絞ってもよく、数回転分まで広げてもよい。この探索の詳細な動作については、特願２０１６−０３２２０７の図１０に記載されているので詳しい説明は省略する。
【００５４】
探索範囲を決定すると、目標偏差の算出を行う（Ｓ５）。ここでは、ステッピングモータが目標位置で正確に停止できるように、仮目標パルス値に対して、図２に示した検出ずれ、駆動量、および励磁位置（停止位置）から目標偏差を求める。この目標偏差の詳しい動作は、図４を用いて後述する。
【００５５】
目標偏差を算出すると、次に、評価値を算出する（Ｓ７）。図３のフローで行う実駆動量の探索は、ステップＳ１において算出された仮目標パルス値とステップＳ３で決定された探索範囲に基づいて、ステップＳ５で目標偏差を算出し、目標偏差から算出した評価値がゼロとなる目標駆動量（駆動パルス数）を探し出す。実際には評価値がゼロとならない場合も有り、その場合は探索範囲内で評価値が最小となる目標駆動量（駆動パルス数）を探索する。
【００５６】
評価値を算出すると、次に、探索終了条件が成立したか否かについて判定する（Ｓ９）。前述したように、目標偏差から算出した評価値がゼロとなれば、探索終了条件が成立したと判定する。
【００５７】
ステップＳ９における判定の結果、探索終了条件が成立しない場合には、次に、探索範囲について終了したか否かを判定する（Ｓ１１）。ここでは、ステップＳ３において決定した探索範囲について、探索変数が探索範囲内を越えたかを判定する。全探索範囲について探索が終了していなければ、次の探索変数を設定する（Ｓ１２）。そして、ステップＳ５に戻り、目標偏差を演算した後、評価値探索終了条件を満たすか判定する。このように探索範囲が終了するか（Ｓ１１：Ｙｅｓ）、探索終了条件が成立するまで（Ｓ９：Ｙｅｓ）、探索範囲内で探索変数を変更して評価値を演算する処理を繰り返す。
【００５８】
ステップＳ９における判定の結果、探索終了条件が成立した場合には、理想目標パルス値を決定する（Ｓ１５）。評価値がゼロとなる目標駆動量が見つかったことから、この目標駆動量に対応するパルス値を理想目標パルス値として決定する。
【００５９】
一方、ステップＳ１１における判定の結果、探索範囲が終了した場合には、最小値判定による理想目標パルス値を決定する（Ｓ１３）。評価値がゼロとなる目標駆動量がみつからなかった場合である。この場合には、評価値が最も小さくなる目標駆動量を求め、この目標駆動量に対応するパルス値を理想目標パルス値として決定する。
【００６０】
ステップＳ１３またはＳ１５において、理想目標パルス値を決定すると、近接駆動パルス数の算出を行う（Ｓ１７）。近接駆動パルス数の計算は、フォーカスレンズの駆動方向に応じて異なる方法で行い、下記（１）式、（２）式に示す。
駆動方向が無限側の場合
近接駆動パルス数＝現在位置パルス−理想目標パルス・・・（１）
駆動方向が至近側の場合、
近接駆動パルス数＝理想目標パルス−現在位置パルス・・・（２）
近接駆動パルス数を算出すると、実駆動量探索のフローを終了する。
【００６１】
次に、図４に示すフローチャートを用いて、ステップＳ５の目標偏差の算出について、説明する。
【００６２】
目標偏差の算出フローに入ると、まず、探索パルス値を算出する（Ｓ２０）。探索パルス値Ｑｘは、図３のステップＳ１で算出される仮目標パルスＱと図３のステップＳ３またはＳ１２で算出される探索変数ｘを加算して求める。次に前回実駆動量を読み出す（Ｓ２１）。図２に示した検出ずれは、今回の駆動量のみならず、前回の実駆動量によって影響を受ける。そこで、このステップでは、前回の実駆動量をメモリ３９から読み出す。読み出された前回の実駆動量は後述するステップＳ２７において使用される。なお、実駆動量は、駆動が終了しても消去せずに、ステップＳ２１において読み出せるように保持しておく。
【００６３】
前回実駆動量を読み出すと、次に、仮駆動量を設定する（Ｓ２３）。仮駆動量Ｄｘは、探索パルス値Ｑｘから現在位置パルスＬＤ_ＰＬＳ_Ｍを減算し、この減算値の絶対値を求めることにより設定する。すなわち、下記（３）式より仮駆動量Ｄｘを求める。
Ｄｘ＝｜Ｑｘ−ＬＤ_ＰＬＳ_Ｍ｜・・・（３）
【００６４】
仮駆動量を設定すると、次に、仮駆動量が小パルス駆動判定値よりも大きいか否かを判定する（Ｓ２５）。駆動量による補正は、図２（ｂ）に示すように、閾値（Ｔｈ）となる駆動量以下の場合に行えばよいので、仮駆動量と閾値パルス（小パルス駆動判定値）を比較し、補正が必要か否かについて判定する。すなわち、このステップでは、仮駆動量Ｄｘが小パルス駆動判定値ＡＤＪ_ＦＣＳ_ＥＲＲＯＲ_ＰＬＳ_ＭＩＮより小さいかについて、下記（４）式が成立するか否かに基づいて判定する。
Ｄｘ＞ＡＤＪ_ＦＣＳ_ＥＲＲＯＲ_ＰＬＳ_ＭＩＮ  ・・・（４）
【００６５】
ステップＳ２５における判定の結果がＮｏであった場合、すなわち、仮駆動量が小パルス駆動判定値よりも小さい場合には、次に、前回駆動量が小パルス駆動判定値よりも大きいか否かを判定する（Ｓ２７）。前述したように、検出ずれの傾向は、直前の駆動の影響も受けるため、前回駆動量についても考慮して補正を行うか否かを判定する。ここでは、前回駆動量Ｄｐが小パルス駆動判定値ＡＤＪ_ＦＣＳ_ＥＲＲＯＲ_ＰＬＳ_ＭＩＮより小さいかを、下記（５）式が成立するか否かに基づいて判定する。
Ｄｐ＞ＡＤＪ_ＦＣＳ_ＥＲＲＯＲ_ＰＬＳ_ＭＩＮ  ・・・（５）
【００６６】
ステップＳ２７における判定の結果がＮｏであった場合、すなわち、前回駆動量が小パルス駆動判定値よりも小さい場合には、次に、駆動量基準補正演算を行う（Ｓ２９）。ここでは、図２（ｂ）を用いて説明したように、仮駆動量に対して補正値の最適化を行う。この補正値の最適化については、図５、図６を用いて後述する。
【００６７】
ステップＳ２５またはＳ２７における判定の結果がＹｅｓであった場合、またはステップＳ２９において駆動量基準補正演算を行うと、次に、ＬＤ位置基準補正演算を行う（Ｓ３１）。フォーカスレンズはバネ５によって付勢されているために、フォーカスレンズの位置（ＬＤ位置）によって検出ずれ量が異なる。このステップでは、目標とするフォーカスレンズ位置（ＬＤ位置）に基づいて補正値の最適化を行う。
【００６８】
ＬＤ位置基準補正演算を行うと、次に、励磁位置基準補正演算を行う（Ｓ３３）。ここでは、図２（ａ）を用いて説明したように、励磁位置に対して補正値の最適化を行う。励磁位置は、駆動目標位置であることから、励磁状態による補正値の最適化を行う。これらの補正については、図５、図６を用いて説明する。
【００６９】
励磁位置基準の補正演算を行うと、次に、目標偏差の演算を行う（Ｓ３５）。目標偏差は、図３のステップＳ３またはＳ１２で算出される探索変数と図４のステップＳ３１、３３で算出される補正値を加算して求める。ステップＳ２５〜Ｓ３３において、現在位置までの駆動量、現在位置から目標位置までの駆動量等を考慮した調整値が求まるので、現在位置から目標位置までの駆動量に対して調整値で補正することにより、目標偏差を算出する。目標偏差を演算すると、元のフローに戻る。
【００７０】
次に、図５および図６を用いて、本実施形態における目標偏差を求める際の調整値の求め方について説明する。図５の上段は、現在位置までの駆動量と目標位置における励磁位置に基づいて、調整値を補間法により算出することを示す。すなわち、調整値は、それまでのフォーカスレンズの駆動量によって、またフォーカスレンズの移動先の位置によって、異なる。
【００７１】
駆動量（図２（ｂ）のｘ軸に示す駆動量）と励磁位置（図２（ａ）のｘ軸に示す励磁位置）に対応する調整値の関係を示すテーブルはメモリ３９に記憶されているが、離散的に記憶されているだけである。そこで、テーブルに記憶されている駆動量と励磁位置に基づいて補間法によって算出する。図５の上段に示す例では、４点、すなわち、Ｐ１（ＸＨ，Ｚｍｉ［ＸＨ］［Ｄｍｉｎ］），Ｐ２（ＸＨ，Ｚｍｉ［ＸＨ］［Ｄｍａｘ］），Ｐ３（ＸＬ，Ｚｍｉ［ＸＬ］［Ｄｍｉｎ］），Ｐ４（ＸＬ，Ｚｍｉ［ＸＬ］［Ｄｍａｘ］）の４点を用いて、Ｐ５（ＸＨ，ＤＺｍｉ［ＸＨ］［Ｄ］）とＰ６（ＸＬ，Ｚｍｉ［ＸＨ］［Ｄ］）を補間法により求める。
【００７２】
図６は、Ｐ５およびＰ６を補間法による算出を説明する図である。図６（ａ）は、励磁位置をＸＬ、ＬＤ駆動量をＤ、ＬＤ位置をＰｉとしたときの調整値Ｚmi[XL][D]の算出を示す。図６（ａ）において、各符号は、以下を意味する。
Zmi[XL][Dmin]：励磁位置XL、駆動指示量Dminにおける検出ずれ（補助管理パルス単位）
Zmi[XL][Dmax]：励磁位置XL、駆動指示量Dmaxにおける検出ずれ（補助管理パルス単位）
Zmi[XL][D]：励磁位置XL、駆動指示量Dにおける検出ずれ（補助管理パルス単位）
XL：調整index
Dmin：小パルス駆動基準値（管理パルス単位）
Dmax：小パルス駆動判定値（管理パルス単位）
D：仮駆動量（補助管理パルス単位）
なお、補助管理パルス単位は、管理パルス単位よりも細かいパルス単位に設定されている。たとえば、管理パルス単位として１ｐｌｓが２５６μｓｔｅｐ単位に相当する場合に、補助管理パルス単位は１ｐｌｓが５１２μｓｔｅｐ単位に相当するように設定されている。補助管理パルス単位は、計算の精度を確保するために使用している。
【００７３】
図６（ａ）から分かるように、Ｐ６における調整値（管理パルス単位）、すなわち、Zmi[XL][D]は、Ｐ３とＰ４を補間することによって下記式（６）によって算出できる。
Zmi[XL][D]＝［｛（D／C）−Dmin｝×（Zmi[XL][Dmax]−Zmi[XL][Dmin]）÷（Dmax−Dmin）］＋Zmi[XL][Dmin]  ・・・（６）
Ｃ：単位換算係数（管理パルス単位⇔補助管理パルス単位）
【００７４】
なお、Ｐ５における調整値は、すなわちZmi[XH][D]は、Ｐ１とＰ２を補間することによって式（１）と同様に、求めることができる。すなわち、（６）式において、Zmi[XL][Dmin] とZmi[XL][Dmax]を、Zmi[XH][Dmin]とZmi[XH][D]におきかえることによって、Zmi[XH][D]を算出することができる。
【００７５】
上述の（６）式を用いて、Ｐ５、Ｐ６を算出し、さらに、Ｐ５’のZmn[XH][D]、Ｐ６’のZmn[XL][D]を算出する。なお、Zmiは無限側の基準パルス値近傍の検出ずれを表し、Zmnは至近側の基準パルス値近傍の検出ずれを表す。
【００７６】
図５の下段は、ｘ軸に励磁位置（１／６４μstep）、ｙ軸に調整値（pls、管理パルス単位）である点は、図５の上段と同じであるが、ｚ軸はフォーカスレンズ位置（ＬＤ位置）（pls、管理パルス単位）である。また、Ｐ５、Ｐ６は、図５の上段で算出した無限側の基準パルス位置近傍の検出ずれであり、Ｐ５’、Ｐ６’は、Ｐ５、Ｐ６と同様にして、算出した至近側の基準パルス値近傍の検出ずれを示している。図５の下段では、次に、これからフォーカスレンズが移動する移動量に基づく調整値を算出する。
【００７７】
このために、Ｐ５およびＰ５’を補間してＰ７を算出し、Ｐ６およびＰ６’を補間してＰ８を算出する。Ｐ７とＰ８が算出されると、Ｐ７とＰ８を補間してＰ９を算出する。このＰ９がフォーカスレンズ駆動する際に使用する調整値となる。
【００７８】
図６（ｂ）（ｃ）は、Ｐ５およびＰ５’を補間してＰ７を算出し、Ｐ６およびＰ６’を補間してＰ８を算出する様子を示す。図６（ｂ）は、励磁位置をＸＬとし、ＬＤ位置をＱとしたときの調整値Ｚm[XL]の算出を示す。また、図６（ｃ）は、励磁位置をＸＨとし、ＬＤ位置をＱとしたときの調整値Ｚm[XH]の算出を示す。図６（ｂ）（ｃ）において、各符号は以下を意味する。
Zmi[XL]：無限側基準パルス値近傍の検出ずれ（補助管理パルス単位）
Zmn[XL]：至近側基準パルス値近傍の検出ずれ（補助管理パルス単位）
Zm：仮目標パルス近傍での検出ずれ（補助管理パルス単位）
Pi：無限側基準パルス値（管理パルス単位）
Pn：至近側基準パルス値（管理パルス単位）
Q：仮目標パルス値（補助管理パルス単位）
C：単位換算係数管理パルス単位⇔補助管理パルス単位
【００７９】
Ｐ８（Zm[XL]）は、補間法によって下記（２）式で算出される。
Zm[XL]＝［｛（Q／C）−Pi｝×（Zmn[XL]−Zmi[XL]）］÷（Pn−Pi）＋Zmi[XL]  ・・・（７）
また、Ｐ７（Zm[XH]）は、補間法によって下記（３）式で算出される。
Zm[XH]＝［｛（Q／C）−Pi｝×（Zmn[XH]−Zmi[XH]）］÷（Pn−Pi）＋Zmi[XH]  ・・・（８）
【００８０】
図６（ｄ）は、励磁位置をＹとし、ＬＤ位置をＱとしたときの調整値Ｚs[X]の算出を示す。すなわち、上述の（２）式、（３）式によって算出したＰ８（Zm[XL]）とＰ７（Zm[XH]）を補間して、仮目標パルス値であるＰ９（Zs[X]）を算出する様子を示す。図６（ｄ）において、各符号は以下を意味する。
Zm[XL]：XLにおける検出ずれ（補助管理パルス単位）
Zm[XH]：XHにおける検出ずれ（補助管理パルス単位）
Zs[Y]：仮目標パルス値での検出ずれ（補助管理パルス単位）
XL：調整インデックス
XH：調整インデックス＋１
Y：仮目標パルス値の励磁位置（１／512μ単位）
W：励磁単位換算係数
【００８１】
Ｐ９（Zs[Y]）は、補間法によって下記（９）式で算出される。
Zs[Y]＝｛（Y／W−XL）×（Zm[XH]−Zm[XL]）｝÷（XH−XL）＋Zm[XL]  ・・・（９）
【００８２】
図５および図６に示すように、本実施形態においては、まず、現在位置までの駆動量（図５の上段のｚ軸）と、現在位置における励磁位置（図５の上段のｘ軸）に基づいて、メモリ３９に記憶されているテーブルから４点（Ｐ１〜Ｐ４）を用いて、補間法により２点（Ｐ５、Ｐ６）の調整値（図５の上段のｙ軸）を算出する。同様にして２点（Ｐ５’とＰ６’）の調整値を算出する。
【００８３】
次に、目標位置までの駆動量（図５の下段のｚ軸）と励磁位置（図５の下段のｘ軸）に基づいて、メモリ３９に記憶されているテーブルから４点（Ｐ５、Ｐ５’、Ｐ６、Ｐ６’）を用いて、補間法により２点（Ｐ７、Ｐ８）の調整値（図５の下段のｙ軸）を算出する。そして、この算出された２点（Ｐ７、Ｐ８）の調整値を用いて、補間法によりＰ９における調整値を算出する。目標位置までの駆動量に対して、この調整値を用いて補正することにより、目標偏差を算出できる。
【００８４】
以上説明したように、本発明の一実施形態に係るカメラは、レンズを光軸方向に移動させるレンズ制御装置を有し、レンズを駆動するステッピングモータ６と、入力される目標位置に基づいて駆動量を求め、ステッピングモータの回転位置を指示してレンズを駆動している（例えば、図３のＳ１、Ｓ１７参照）。そして、回転位置の指示にあたっては、
現在位置まで駆動する際の第１の駆動量と（例えば、図４のＳ２１、図５の上段のｚ軸参照）、現在位置から目標位置までの第２の駆動量（例えば、図３のＳ１、図５の下段のｚ軸参照）に応じて、第２の駆動量を補正した第３の駆動量（例えば、図３のＳ１７、図４のＳ３５参照）を求め、この第３の駆動量に基づいて回転位置を指示している。
【００８５】
このため、ステッピングモータの駆動制御を行うにあたって、駆動の停止精度を向上させることができる。特に、現在位置までの駆動量（第１の駆動量）に応じて、目標位置までの駆動量を補正するようにしており、より精度の高い駆動停止制御を行うことができる。
【００８６】
また、本発明の一実施形態においては、同一励磁位相に駆動量を変えて停止させた場合に、駆動量に対して必要となる調整値が変わらない領域Ａ（図２（ｂ）の閾値Ｔｈより右側）と、変わる領域Ｂ（図２（ｂ）の閾値Ｔｈより左側）の境界となる駆動量を判定値として保持するようにしている。このため、正確な調整値を算出することが可能となる。また、補正値は、領域Ａ内の１つの駆動量にて取得したものと、領域Ｂ内の１つの駆動量にて取得したもの、計２つとしている（図４のＳ２５〜Ｓ２９参照）。このようにして、想定される駆動量の全てについて調整値を保持する場合よりもメモリ容量を削減することが可能となる。
【００８７】
また、本発明の一実施形態においては、直前の駆動量と現在の駆動量が何れも判定値以下であれば（例えば、図４のＳ２５、Ｓ２７参照）、駆動量指示に応じた補正値を、２つの補正値を用い線形補間にて求める（例えば、図４のＳ２９参照）。それ以外の場合は、領域Ａの補正値をそのまま使用する。これにより、駆動条件によらない正確な補正が可能となる。
【００８８】
なお、本発明の一実施形態においては、回転位置検出用として、ＧＭＲセンサ９を用いたが、これに限らず、光学的エンコーダ等、位置を検出することが可能な位置センサであればよい。
【００８９】
また、本実施形態においては、撮影のための機器として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもミラーレスカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話、スマートフォン、携帯情報端末、パーソナルコンピュータ（ＰＣ）、タブレット型コンピュータ、ゲーム機器等に内蔵されるカメラでも構わない。いずれにしても、レンズの駆動制御を行う機器であれば、本発明を適用することができる。
【００９０】
また、本明細書において説明した技術のうち、主にフローチャートで説明した制御に関しては、プログラムで設定可能であることが多く、記録媒体や記録部に収められる場合もある。この記録媒体、記録部への記録の仕方は、製品出荷時に記録してもよく、配布された記録媒体を利用してもよく、インターネットを介してダウンロードしたものでもよい。
【００９１】
また、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず」、「次に」等の順番を表現する言葉を用いて説明したとしても、特に説明していない箇所では、この順で実施することが必須であることを意味するものではない。
【００９２】
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００９３】
１０・・・交換レンズ、１・・・レンズ駆動部、２・・・レンズ、３・・・レンズ枠、３ａ・・・固定部、３ｂ・・・嵌合部、３ｃ・・・貫通孔、３ｅ・・・遮光ハネ、４ａ・・・ガイド軸、４ｂ・・・ガイド軸、５・・・バネ、６・・・ステッピングモータ、７・・・リードスクリュー、８・・・スケール磁石、９・・・ＧＭＲセンサ、１０・・・フォトインタラプタ、１１・・・ナット、２１・・・増幅回路、２２・・・２値化回路、２３・・・モータ電源、２４・・・モータ駆動回路、３０・・・マイクロコンピュータ、３１・・・ＣＰＵ、３２・・・ＩＯポート、３３・・・Ａ／Ｄコンバータ、３４・・・アップ／ダウンカウンタ、３５・・・Ｄ／Ａコンバータ、３６・・・パルス発生器、３７・・・通信ポート、３８・・・タイマ、３９・・・メモリ
【図１】
2017219766.tif 000003
【図２】
2017219766.tif 000004
【図３】
2017219766.tif 000005
【図４】
2017219766.tif 000006
【図５】
2017219766.tif 000007
【図６】
2017219766.tif 000008