(57)【要約】      （修正有）【課題】音楽練習者に対して厳密な設置条件を要求することなく正確な拍子を表示するとともに、快適に使用可能なメトロノームを提供する。【解決手段】音楽練習者に対して任意の拍子を知らせるメトロノームにおいて、指示棒２と、指示棒２を第１回動端と第２回動端との間において往復回動させるステッピングモータ５と、第１回動端および第２回動端の少なくとも一方に指示棒２が存在すると判定すると、ステッピングモータ５を駆動する駆動パルスの入力が休止される休止期間を設定する制御部７と、休止期間の駆動パルス数を記憶する記憶部８と、を備える。【選択図】図１
2015096845.tif 000002
【特許請求の範囲】
【請求項１】
指示棒と、
前記指示棒を第１回動端と第２回動端との間において往復回動させるステッピングモータと、
前記第１回動端および前記第２回動端の少なくとも一方に前記指示棒が存在すると判定すると、前記ステッピングモータを駆動する駆動パルスの入力が休止される休止期間を設定する制御部と、
前記休止期間の駆動パルス数を記憶する記憶部と、
を備えることを特徴とするメトロノーム。
【請求項２】
前記制御部は、前記指示棒が前記第１回動端および前記第２回動端の少なくとも一方に存在すると判断すると、前記第１回動端と前記第２回動端との間を回動するのに必要なパルス数として予め規定される規定パルス数と、前記判断したときの前記駆動パルス数とを比較し、その差分の差分パルス数に相当する期間を前記休止期間として設定し、
前記記憶部は、前記差分パルス数を記憶することをを特徴とする請求項１に記載のメトロノーム。
【請求項３】
前記ステッピングモータに駆動パルスを入力するステッピングモータ駆動部を備えることを特徴とする請求項１または請求項２に記載のメトロノーム。
【請求項４】
駆動パルスをステッピングモータに入力し、前記ステッピングモータを往復回転運動するステッピングモータ駆動部と、
前記指示棒が回動範囲の原点位置に存在することを検出する少なくとも１つ以上の原点検出センサを備え、
前記記憶部が、前記指示棒が前記規定パルス数と、前記指示棒が前記原点位置から前記第１回動端または前記第２回動端まで回動するために規定されるカウントパルス数と、を記憶し、
前記制御部が、前記指示棒が前記前記第１回動端と前記第２回動端との間を回動する間に入力された入力パルス数と、前記指示棒が前記原点位置から前記第１回動端または前記第２回動端まで回動する間に入力された原点パルス数とを計数し、前記入力パルス数と前記規定パルス数とを比較するとともに、前記原点パルス数と前記カウントパルス数とを比較し、前記原点パルス数が前記カウントパルス数と等しく、前記入力パルス数が前記規定パルス数とを異なることを判定する場合、前記ステッピングモータ駆動部に、前記駆動パルスを前記ステッピングモータに入力させず、前記ステッピングモータに入力されない前記駆動パルスの数を前記入力パルス数に加算することを特徴とする請求項１または２に記載のメトロノーム。
【請求項５】
前記制御部は、前記原点パルス数が前記カウントパルス数と異なり、前記入力パルス数が前記規定パルス数と異なることを判定する場合、前記ステッピングモータ駆動部に、前記駆動パルスを前記ステッピングモータに入力させ、
前記原点パルス数が前記カウントパルス数と等しく、前記入力パルス数が前記規定パルス数と等しいことを判定する場合、前記ステッピングモータ駆動部に、前記ステッピングモータの回転方向を反転させることを特徴とする請求項４に記載のメトロノーム。
【請求項６】
前記原点検出センサは、前記原点位置のうち第１の原点位置に存在することを検出する第１のセンサと、前記原点位置のうち第２の原点位置に存在することを検出する第２のセンサと、を有することを特徴とする請求項５に記載のメトロノーム。
【請求項７】
前記第１の原点位置は、前記回動範囲の中心に対して一方の側に位置し、前記第２の原点位置は、前記回動範囲の中心に対して他方の側に位置することを特徴とする請求項６に記載のメトロノーム。
【請求項８】
前記原点位置は、前記第１回動端または前記第２回動端とは異なる位置であることを特徴とする請求項４に記載のメトロノーム。
【請求項９】
前記指示棒が前記原点位置に存在しないことを前記原点検出センサが検出し、前記入力パルス数が前記規定パルス数と等しいことを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力せず、前記制御部は、エラー処理を行うことを特徴とする請求項４に記載のメトロノーム。
【請求項１０】
駆動パルスをステッピングモータに入力し、前記ステッピングモータを往復回転運動するステッピングモータ駆動部と、
前記往復回転運動により往復回動する指示棒と、
前記指示棒が回動範囲の回動端に存在することを検出する少なくとも１つ以上の原点検出センサと、
前記指示棒が前記回動端まで回動するために規定される規定パルス数を記憶する記憶部と、
前記指示棒が前記回動端まで回動する間に入力された入力パルス数を計数し、前記規定パルス数と前記入力パルス数とを比較する制御部と、を有し、
前記指示棒が前記回動端に存在することを前記原点検出センサが検出し、前記入力パルス数と前記規定数と異なることを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力せず、前記制御部は、前記ステッピングモータに入力されない前記駆動パルスの数を前記入力パルス数に加算することを特徴とするメトロノーム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メトロノームに関する。
【背景技術】
【０００２】
従来のメトロノームとして、ゼンマイを動力源とし、一定周期で回動運動する振り子を用いた機械式メトロノームが利用されてきた。しかし、機械式メトロノームは、ぜんまいによる駆動であるため動作時間が短く、水平面に設置されていないと正確な揺動ができない等の機能的欠点を有する。この機能的欠点を改善するためにステッピングモータを使用して指示棒を揺動するメトロノームがある。
【０００３】
ステッピングモータは電流−周波数−トルク特性を有している。このため、駆動電流を増加すればトルクは強くなるが、ステッピングモータの動作音（ノイズ）は大きくなり、消費電流も増大する。また、消費電流を小さくするために駆動電流を小さくすると、何らかの原因でステッピングモータの負荷が増大した場合や、回転速度を速くする場合に、駆動トルク不足となる。この場合、入力された駆動パルスに回転動作が追従できない脱調現象が発生する。そこで、ステッピングモータの脱調に対して駆動伝達部である平歯車を空回りさせ、脱調現象から復帰させるメトロノームが提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２０３０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、平歯車と扇形平歯車の噛合がはずれると、平歯車が空回りするときのメトロノーム設置状況によって、平歯車と扇形平歯車が完全に離れてしまうことがある。この場合、ステッピングモータが回転方向を変え指示棒を逆向きに揺動させる際に、平歯車と扇形平歯車が再び噛合せず指示棒への動力伝達がされなくなる可能性がある。また、指示棒の動作が何らかの原因で拘束されてしまうような場合にはステッピングモータは脱調を続け、メトロノームは騒音発生を続けることになる。指示棒を目的の位置まで回転させて停止するためのメータの場合、上述の影響は少ない。しかし、メトロノームは揺動を繰り返すことが必要なため、脱調や騒音発生を繰り返してしまい、使用し難くなる可能性がある。
【０００６】
本発明は、以上の点に鑑みてなされたものであり、音楽練習者に対して厳密な設置条件を要求することなく正確な拍子を表示でき、快適に使用可能なメトロノームを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るメトロノームは、指示棒と、前記指示棒を第１回動端と第２回動端との間において往復回動させるステッピングモータと、前記第１回動端および前記第２回動端の少なくとも一方に前記指示棒が存在すると判定すると、前記ステッピングモータを駆動する駆動パルスの入力が休止される休止期間を設定する制御部と、前記休止期間の駆動パルス数を記憶する記憶部と、を備えることを特徴とする。
【０００８】
また、本発明に係るメトロノームは、前記制御部が、前記指示棒が前記第１回動端および前記第２回動端の少なくとも一方に存在すると判断すると、前記第１回動端と前記第２回動端との間を回動するのに必要なパルス数として予め規定される規定パルス数と、前記判断したときの前記駆動パルス数とを比較し、その差分の差分パルス数に相当する期間を前記休止期間として設定し、前記記憶部が、前記差分パルス数を記憶することをを特徴とする。
【０００９】
また、本発明に係るメトロノームは、前記ステッピングモータに駆動パルスを入力するステッピングモータ駆動部を備えることを特徴とする。
【００１０】
本発明に係るメトロノームは、駆動パルスをステッピングモータに入力し、前記ステッピングモータを往復回転運動するステッピングモータ駆動部と、前記往復回転運動により往復回動する指示棒と、前記指示棒が回動範囲の原点位置に存在することを検出する少なくとも１つ以上の原点検出センサと、前記指示棒が前記回動範囲を回動するために規定される規定パルス数と、前記指示棒が前記原点位置から前記回動端まで回動するために規定されるカウントパルス数と、を記憶する記憶部と、前記指示棒が前記回動範囲を回動する間に入力された入力パルス数と、前記指示棒が前記原点位置から前記回動端まで回動する間に入力された原点パルス数と、を計数し、前記入力パルス数と前記規定パルス数とを比較するとともに、前記原点パルス数と前記カウントパルス数とを比較する制御部と、を有し、前記原点パルス数が前記カウントパルス数と等しく、前記入力パルス数が前記規定パルス数とが異なることを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力せず、前記制御部は、前記ステッピングモータに入力されない前記駆動パルスの数を前記入力パルス数に加算することを特徴とする。
【００１１】
また、前記原点パルス数が前記カウントパルス数と異なり、前記入力パルス数が前記規定パルス数と異なることを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力し、前記原点パルス数が前記カウントパルス数と等しく、前記入力パルス数が前記規定パルス数と等しいことを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記ステッピングモータの回転方向を反転してもよい。
【００１２】
また、前記原点検出センサは、前記原点位置のうち第１の原点位置に存在することを検出する第１のセンサと、前記原点位置のうち第２の原点位置に存在することを検出する第２のセンサと、を有してもよい。
【００１３】
また、前記第１の原点位置は、前記回動範囲の中心に対して一方の側に位置し、前記第２の原点位置は、前記回動範囲の中心に対して他方の側に位置してもよい。
また、前記原点位置は、前記回動端とは異なる位置であってもよい。
【００１４】
また、前記指示棒が前記原点位置に存在しないことを前記原点検出センサが検出し、前記入力パルス数が前記規定パルス数と等しいことを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力せず、前記制御部は、エラー処理を行ってもよい。
【００１５】
また、本発明に係るメトロノームは、駆動パルスをステッピングモータに入力し、前記ステッピングモータを往復回転運動するステッピングモータ駆動部と、前記往復回転運動により往復回動する指示棒と、前記指示棒が回動範囲の回動端に存在することを検出する少なくとも１つ以上の原点検出センサと、前記指示棒が前記回動端まで回動するために規定される規定パルス数を記憶する記憶部と、前記指示棒が前記回動端まで回動する間に入力された入力パルス数を計数し、前記規定パルス数と前記入力パルス数とを比較する制御部と、を有し、前記指示棒が前記回動端に存在することを前記原点検出センサが検出し、前記入力パルス数と前記規定数と異なることを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力せず、前記制御部は、前記ステッピングモータに入力されない前記駆動パルスの数を前記入力パルス数に加算することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、音楽練習者に対して厳密な設置条件を要求することなく正確な拍子を報知することができ、快適にメトロノームを使用することができる。
【図面の簡単な説明】
【００１７】
【図１】実施形態に係るメトロノーム１の機能ブロック構成図である。
【図２】実施形態に係るメトロノーム１の外観を示す図である。
【図３】実施形態に係る指示棒２の動作機構を示す正面図である。
【図４】実施形態に係る指示棒２の動作機構を示す側面図である。
【図５】実施形態に係る指示棒２の動作態様を示す図である。
【図６】実施形態に係る指示棒２が回動する際の振り角度の説明図である。
【図７】実施形態に係る原点検出センサ３の設置位置の説明図である。
【図８】実施形態に係るセンサの例を示す図である。
【図９】実施形態に係る指示棒２の回動処理の流れの一例を示すフローチャートである。
【図１０】実施形態に係るパルス入力処理の流れの一例を示すフローチャートである。
【図１１】実施形態に係るエラー処理の流れの一例を示すフローチャートである。
【図１２】実施形態の指示棒２の動作を示す図である。
【図１３】実施形態の指示棒２の動作を示す図である。
【図１４】実施形態の指示棒２の動作を示す図である。
【図１５】実施形態の変形例に係る２つの原点検出センサの場合の指示棒２の動作態様を示す図である。
【図１６】実施形態の変形例に係る２つの原点検出センサの場合の指示棒２の回動処理の流れの一例を示すフローチャートである。
【図１７】実施形態の変形例に係る２つの原点検出センサの場合のパルス入力処理の流れの一例を示すフローチャートである。
【図１８】実施形態の変形例に係る２つの原点検出センサの場合の指示棒２の動作を示す図である。
【発明を実施するための形態】
【００１８】
以下に、添付図面を参照しながら、本発明に係るメトロノームの好適な実施形態について詳細に説明する。なお、以下の説明および添付図面において、略同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略することにする。
【００１９】
図１は、本発明の本実施の形態に係るメトロノーム１の機能ブロック構成を示す図である。図２は、メトロノーム１の外観を示す図である。図３は、指示棒２の動作機構を示す正面図であり、図４は指示棒２の動作機構を示す側面図である。
【００２０】
図１に示すように、メトロノーム１は、指示棒２、原点検出センサ３（センサ）、回転運動変換部４、ステッピングモータ５、ステッピングモータ駆動部６、制御部７、記憶部８、操作部９、表示部１０、スピーカ駆動部１１、スピーカ１２等から構成される。
【００２１】
制御部７は、ステッピングモータ駆動部６、ステッピングモータ５、回転運動変換部４を介して指示棒２の往復回動を制御する。また、制御部７は、マイコン等であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、Ｉ／Ｏポート等で構成される。制御部７のＣＰＵは、ＲＯＭ等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、ステッピングモータ駆動部６、原点検出センサ３、記憶部８、操作部９、表示部１０、スピーカ駆動部１１、スピーカ１２の動作を制御し、後述する各種処理を実現する。
【００２２】
図２に示すように、指示棒２は盤１３上を左右に回動することによって拍子を刻む指針である。指示棒２の回動周期等は、操作部９から音楽練習者等の入力を受け付けることによって設定される。
【００２３】
メトロノーム１に指示を与える操作部９はメトロノーム１の筐体に備え付けられている複数のスイッチ等である。なお、操作部９は、メトロノーム１の筐体とは別体のリモコン操作機からの指示信号を受信し、その指示信号を制御部７に伝えるインターフェース機能を果たすものであってもよい。
【００２４】
制御部７は、操作部９からの入力を受け付けて設定テンポに応じた駆動パルス送出タイミングを算出し、そのタイミングで後述するタクト（指示棒）の回動制御処理に従ってステッピングモータ駆動部６を制御する。
【００２５】
記憶部８は、ＲＯＭ、ＲＡＭ、ハードディスクなどであり、制御部７が実行するプログラム、プログラム実行に必要なデータ、操作部９によって入力されたデータ等が格納される。
【００２６】
表示部１０は、操作情報、操作部９によって入力されたデータ、現在の設定状況等を表示する。メトロノーム１が指示棒２を回動し、メトロノームとして動作する場合、表示部１０は、例えば、現在演奏中の拍子等を表示することが可能である。
【００２７】
スピーカ駆動部１１は、操作部９を通じて設定されているテンポ情報など指示棒２の回動タイミングと関連した情報が入力され、スピーカ１２に出力する。スピーカ１２は、スピーカ駆動部１１から出力された拍子を刻む拍音等を発音する。また、スピーカ１２は、「操作部９を通して指示入力が受け付けられた」、「動作エラーが検出された」、ということ等を音声でも通知可能としている。
【００２８】
ステッピングモータ駆動部６は、駆動パルスを発生し、駆動パルスをステッピングモータ５に入力し、ステッピングモータ５から回転トルクを出力させる。回転運動変換部４は、ステッピングモータ５から出力された回転トルクを伝達する歯車を有する。そして、指示棒２は、回転運動変換部４に固定され、歯車の回転運動が伝達されることにより回動する。
【００２９】
図３、図４に示す通り、ステッピングモータ駆動部６はパルス信号を発生し、ステッピングモータ５から時計回りあるいは反時計回りの回転トルクを出力させる。ステッピングモータ５からの回転トルクは、複数の歯車から構成される回転運動変換部４により回転が減速され、トルク変換される。回転運動変換部４は通常ギアボックスの形態で実現される。そして回転運動変換部４の出力軸にねじ等の固定部１４によって固定支持された指示棒２に伝達され、指示棒２を回動させる。
【００３０】
原点検出センサ３は、指示棒２の回動範囲において指示棒２が原点位置に存在することを検出する。また原点検出センサ３は、少なくとも１つ以上で構成される。原点検出センサ３が２つ以上のセンサで構成される場合、それぞれのセンサは指示棒２が異なる原点位置に存在することを検出する。
【００３１】
次に、指示棒２の回動の動作態様を説明する。図５は、指示棒２の動作態様を示す図である。図６は、指示棒２が回動する際の振り角度の説明図である。
図５に示すように、指示棒２は、回動範囲左端「ＬＯ」と回動範囲右端「ＲＯ」の間で、ステッピングモータ５の出力トルクによる往復回転運動に従い、右方向と左方向との往復回動を規定の周期で繰り返すように制御される。図５、図６の点線は、回動範囲左端ＬＯ及び回動範囲右端ＲＯを示す。なお、本実施形態において、回動範囲左端ＬＯ及び回動範囲右端ＲＯは原点位置として規定されている。なお、回動範囲左端ＬＯを第１回動端と、回動範囲右端ＲＯを第２回動端と称することもある。
【００３２】
図６に示すように指示棒２の振り角度はステッピングモータ５の構造とステッピングモータ５に入力される駆動パルスの数と、回転運動変換部４により規定される減速比率により決定される。この指示棒２は、振り角度Ａの範囲で回動することで、回動範囲右端ＲＯから回動範囲左端ＬＯまで回動する。すなわち振り角度Ａ＝ステッピングモータのステップ角×駆動パルス数×ギアボックス減速比である。
【００３３】
このとき、指示棒２を振り角度Ａだけ回動させるのに必要なステッピングモータ５に入力する駆動パルス数を規定パルス数Ａとする。すなわち規定パルス数は、指示棒２が回動範囲を回動するために規定されるパルス数である。このとき、記憶部８は、規定パルス数を記憶し、制御部７に出力する。
【００３４】
すなわち、制御部７は、操作部９から入力されたテンポ等に対応した駆動パルス送出タイミングを算出し、算出されたタイミングに合わせ駆動パルスをステッピングモータ駆動部６に発生させ、ステッピングモータ５に入力する。ここでは、Ａ個のパルスで、指示棒２が回動範囲右端Ｒ０から回動範囲左端Ｌ０まで移動する。回動範囲左端Ｌ０においてステッピングモータ５の出力トルクの回転方向の転換により、指示棒２が反対方向に回動し、Ａ個のパルスで、指示棒２は回動範囲右端Ｒ０に移動する。なお、算出された駆動パルス送出タイミングは記憶部８に記憶されている。
【００３５】
次に原点検出センサの配置について説明する。図７は、原点検出センサ３の設置位置の説明図である。図８は、原点検出センサの例を示す図である。
本実施形態において、原点検出センサ３は、例えばフォトインタラプタ等で構成される。また、原点検出センサ３は、回動範囲左端ＬＯ側に配置されている。
【００３６】
図８（ａ）は、原点検出センサ３としてフォトインタラプタが使用されたときの指示棒２と原点検出センサ３の位置関係を側面から見た図である。原点検出センサ３は、発光側からＬＥＤ光が放射され、その光を受光側のフォトトランジスタが感知することにより、発光側と受光側の間隙に遮光物があるか、無いかを判別する。本実施形態において、指示棒２が遮光物として機能する。このとき、遮光物である指示棒２がある場合、原点検出センサ３の出力はＯＦＦの状態である。また、遮光物である指示棒２がない場合、原点検出センサ３の出力は、ＯＮの状態である。
【００３７】
なお、指示棒２の原点検出センサ３により検出される被検出部は扇状に形成され、端部は円弧で構成される。また、被検出部の回動範囲は、原点検出センサ３においてＯＮの状態である１つの領域とＯＦＦの状態である１つの領域とで構成される。ただし、被検出部の構造はこれに限定されない。
【００３８】
図８（ｂ）、図８（ｃ）は指示棒２と原点検出センサ３の位置関係を正面から見た図である。図８（ｂ）の場合は、原点検出センサ３の発光側と受光側の間隙に遮光物（指示棒２の被検出部）が無いので原点検出センサ３がＯＮの状態を示す。また、図８（ｃ）の場合は原点検出センサ３の発光側と受光側の間隙は指示棒２によって遮光されているのでセンサがＯＦＦの状態を示す。
【００３９】
図７において実線で示す指示棒２の位置は、原点検出センサ３の検出状態がＯＦＦからＯＮに切替わる位置である。本実施形態において、このときに原点検出センサ３の検出状態が切替わる。
【００４０】
また、図７において点線で示す指示棒２の位置は、回動範囲右端ＲＯである。このとき、原点検出センサ３の出力はＯＦＦの状態を示す。すなわち、実線で示す指示棒２の位置から、点線で示す指示棒２の位置まで、原点検出センサ３の出力がＯＦＦの状態となる。
【００４１】
本実施形態において、指示棒２の回動範囲のうち、原点検出センサ３の出力がＯＦＦの状態からＯＮの状態に切り替わる位置が原点位置として規定される。これにより、原点検出センサ３は、指示棒２がこの原点位置に存在するかまたは存在しないかを検出する。すなわち、原点検出センサ３の出力がＯＦＦからＯＮの状態に切替わったとき、指示棒２が原点位置に存在することを原点検出センサ３が検出する。また、指示棒２は、原点検出センサ３の検出がＯＦＦの状態の範囲を振り角度Ｂで回動する。
【００４２】
このとき、原点検出センサ３の検出がＯＮの状態の範囲を回動するための駆動パルス数はカウントパルス数Ｎとして規定されている。すなわち、カウントパルス数Ｎは、原点位置から回動端（回動範囲左端）まで回動するために規定される駆動パルス数である。このカウントパルス数Ｎは、記憶部８に記憶され、記憶部８から制御部７に出力される。
【００４３】
なお、原点検出センサ３及び指示棒２の構造や種類によって、原点検出センサ３の検出がＯＮ又はＯＦＦの状態の範囲は変更される。このとき、原点位置も変更される。また、規定パルス数は、操作部９から入力されたテンポ等によって変更される。また、カウントパルス数Ｎは、原点位置によって変更される。例えば、原点位置が回動端（回動範囲左端）の場合、カウントパルス数Ｎは０である。また、カウントパルス数Ｎが正の整数で規定される場合、原点位置は、回動端と異なる位置である。
【００４４】
また、制御部７は、指示棒２が回動範囲を回動する間に入力された入力パルス数と、指示棒２が原点位置から回動端まで回動する間に入力された原点パルス数とを計数する。そして制御部７は、入力パルス数と規定パルス数とを比較するとともに、原点パルス数とカウントパルス数とを比較する。
【００４５】
以下に、制御部７における指示棒２の回動制御について具体例を示しながら説明する。  図９は、指示棒の回動処理の流れの一例を示すフローチャートである。図１０は、パルス入力処理の流れの一例を示すフローチャートである。図１１は、エラー処理の流れの一例を示すフローチャートである。また、図１２乃至図１４は、本実施形態実施形態の指示棒の動作を示す図である。なお、図９は、指示棒２が回動範囲左端ＬＯまたは回動範囲右端ＲＯの一方から回動範囲左端ＬＯまたは回動範囲右端ＲＯの他方まで回動する流れを示している。また、原点パルス数がカウントパルス数と等しいということは、ステッピングモータ駆動部６がステッピングモータ５にカウントパルス数Ｎの駆動パルスを入力したことを意味し、原点パルス数がカウントパルス数と異なるということは、ステッピングモータ駆動部６がステッピングモータ５にカウントパルス数Ｎの駆動パルスをまだ入力していないことを意味する。また、入力パルス数が規定パルス数と等しいということは、ステッピングモータ駆動部６がステッピングモータ５に規定パルス数Ａの駆動パルスを入力したことを意味し、入力パルス数が規定パルス数と異なるということは、ステッピングモータ駆動部６がステッピングモータ５に規定パルス数Ａの駆動パルスをまだ入力していないことを意味する。
【００４６】
なお、本実施形態において、記憶部８は、入力パルス数を示す「ｐｌｓ＿ｃｏｕｎｔ」、原点パルス数を示す「ｃｈｅｃｋ＿ｃｏｕｎｔ」、スキップパルス数を示す「ｓｋｉｐ＿ｃｏｕｎｔ」、センサフラグを示す「ｓｅｎｓｏｒ＿ｆｌｇ」、未完了フラグを示す「ｃｌｏｃｋ＿ｓｋｉｐ」を記憶する。これらは、一時記憶変数である。
【００４７】
入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、指示棒２が回動範囲を回動する間に入力された入力パルス数である。すなわち、本実施形態実施形態において、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、指示棒２が一方の回動端（回動範囲左端、または回動範囲右端）から他方の回動端（回動範囲右端、または回動範囲左端）まで回動する入力された入力パルス数である。なお、本実施形態において、規定パルス数は１００に設定され、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は０から１００までの整数のいずれかの値である。
【００４８】
入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、回動処理前の初期状態において「０」に設定される。すなわち、図１２（ａ）に示すように、指示棒２が回動範囲左端ＬＯから回動を開始するとき「０」に設定されている。本実施形態においては、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、パルス入力処理毎に加算される変数である。
【００４９】
原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、指示棒２が原点位置から回動端まで回動する間に入力された原点パルス数である。本実施形態において、原点検出センサ３の出力がＯＦＦからＯＮに切替わったときから回動範囲左端ＬＯまで指示棒２が回動する間に入力する原点パルス数である。このとき、回動範囲左端ＬＯは原点位置に近い方の回動端である。
【００５０】
原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、回動処理前の初期状態において「０」に設定される。また、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、指示棒２が原点位置に存在したときに、カウントパルス数Ｎの値に設定される。本実施形態において、カウントパルス数Ｎは「１０」と規定される。そして、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、指示棒２が原点位置から回動端まで回動する間で、ステッピングモータ５に駆動パルスが入力される毎に減算していく変数である。すなわち、原点検出センサ３の出力がＯＮの状態である間、すなわち指示棒２が原点位置から回動範囲左端ＬＯまで回動する間に、ステッピングモータ駆動部６はステッピングモータ５に１０パルス入力する。このため、原点位置は、回動範囲左端ＬＯと異なる位置である。
【００５１】
スキップパルス数は、原点パルス数がカウントパルス数と異なり、入力パルス数が規定パルス数と等しい場合に、パルス入力処理においてステッピングモータに入力されない駆動パルスの数である。このため、本実施形態において、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は、回動範囲左端ＬＯにおいてステッピングモータ駆動部からステッピングモータに入力されないパルス数である。
【００５２】
スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は、回動処理前の初期状態において「０」に設定される。また、本実施形態において、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が１００になったとき原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」と等しい値に設定される。そして、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は、パルス入力処理毎に、減算していく変数である。
なお、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」の値は整数である。
【００５３】
センサフラグは、原点検出センサ３の出力状態を示す。このため、本実施形態において、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は、原点検出センサ３の出力がＯＮの状態のとき「１」、原点検出センサ３の出力がＯＦＦの状態のとき「０」に設定される。
センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は、回動処理前の初期状態において、「１」に設定される。
【００５４】
未完了フラグは、原点パルス数がカウントパルス数と等しく、入力パルス数が規定パルス数と異なる場合に、パルス入力処理において駆動パルスの入力の可否を決めるフラグである。このため、本実施形態において、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」になったとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」より小さい場合に「１」に設定される。また、それ以外の場合、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は、「０」に設定される。
未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は、回動処理前の初期状態において、「０」に設定される。
【００５５】
回動処理開始前に、一次記憶変数をそれぞれ初期化し、初期状態に設定する。すなわち、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「０」に設定され、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、「０」に設定され、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は、「０」に設定され、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は、「１」に設定され、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は、「０」に設定される。この状態で回動処理を開始する。
【００５６】
はじめに、図１２を用いて指示棒２の通常の動作を説明する。指示棒２の回動前の初期状態を図１２（ａ）に示す。図１２（ａ）において、指示棒２は回動範囲左端ＬＯに位置する。
まず、パルス入力処理を行う（ステップ１０１）。図１０において、パルス入力処理を示す。
【００５７】
パルス入力処理において、原点検出センサ３の出力がＯＮの状態であるかどうかを判定する（ステップ２０１）。すなわち、指示棒２が原点位置に存在しないかどうかを原点検出センサ３が検出する。図１２（ａ）において、原点検出センサ３の出力がＯＮの状態である。
【００５８】
この場合、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「０」であるかどうかを判定する（ステップ２０３）。センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は初期状態のため、「１」である。
この場合、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」が「１」であるかどうか判定する（ステップ２０５）。未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は初期状態のため、「０」である。
【００５９】
この場合、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」が「０」以下であるかどうか判定する（ステップ２０６）。スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は、初期状態のため、「０」である。
この場合、ステッピングモータ駆動部がステッピングモータに１パルス入力する（ステップ２０７）。このとき、指示棒は、回動範囲左端ＬＯに位置するため、図１２（ａ）に示す矢印の方向である回動範囲右端ＲＯの方向に回動する。
【００６０】
次に、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「０」かどうか判定する（ステップ２０９）。ステップ２０３と同様、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は「１」である。
この場合、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」の値を減算する（ステップ２１０）。原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、初期状態で「０」のため、「−１」に変更される。
【００６１】
次に、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」かどうか判定する（ステップ２１１）。ステップ２１０により、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、「−１」である。この場合、パルス入力処理から、回動処理に戻る。
そして、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」に「１」加算する（ステップ１０２）。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は初期状態で「０」のため、「１」に変更される。
【００６２】
次に入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」以上かどうかを判定する（ステップ１０３）。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は「１」のため、パルス入力処理を再度行う（ステップ１０１）。
【００６３】
以上の処理を行い、指示棒２を回動していくと、原点検出センサ３の出力がＯＦＦの状態に変わる。このとき、ステップ２０１において原点検出センサ３の出力がＯＮの状態ではないと判定され、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」を「０」に設定する（ステップ２０２）。そして、パルス入力処理を行っていき、ステップ２０９において、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「０」と判定されるため、パルス入力処理から、回動処理に戻る。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、「−１０」であり、再度原点検出センサ３の出力がＯＮの状態になるまで変わらない。そして、この後、上記と同様の処理を行っていく。
【００６４】
図１２（ｂ）は、上記の処理を行っている状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５０」であり、指示棒が回動範囲左端ＬＯと回動範囲右端ＲＯとの中間に位置することを示す。また、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「−１０」である。
【００６５】
図１２（ｃ）は、回動範囲右端ＲＯまで上記の処理を行った状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「１００」である。そのため、ステップ１０３の判定結果に基づいて、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」を原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」と同じ値にする（ステップ１０４）。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「−１０」のため、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」も「−１０」に変更する。
そして、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」を「０」に変更する（ステップ１０５）。
【００６６】
次に、指示棒２が原点位置方向に回動しているかどうかを判定する（ステップ１０６）。原点位置は、原点出力センサ３の出力がＯＦＦからＯＮに切替わる位置のため、このとき指示棒２が原点位置方向に回動していない。
【００６７】
そのため、ステッピングモータ５の回転方向を反転する（ステップ１０８）。そして、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」を「０」に設定する（ステップ１０９）。このとき、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は「０」だったため、変更しない。そして、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」を「０」に設定する（ステップ１１０）。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「−１０」のため、「０」に変更する。そして、指示棒２の回動方向を反転して、上記の処理を繰り返す。
【００６８】
なお、パルス入力処理のステップ２０６において、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は「０」以下かどうかを判定するが、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」が「−１０」であるため、ステッピングモータに１パルス入力する（ステップ２０７）。
【００６９】
図１２（ｄ）は、上記の処理を行っている状態を示す図である。このとき、図１２（ｂ）と同様、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５０」であり、指示棒が回動範囲左端ＬＯと回動範囲右端ＲＯとの中間に位置することを示す。また、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「０」である。
【００７０】
そして、図１２（ｅ）に示す状態まで処理を進める。図１２（ｅ）は、原点検出センサ３の出力がＯＦＦからＯＮに切替わった状態を示す図である。このとき、このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「９０」である。この「９０」という値は、規定パルス数Ａからカウントパルス数Ｎを引いた値である。
【００７１】
この場合、ステップ２０１において、原点検出センサ３の出力がＯＮの状態であると判定されるため、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「０」であるかどうかを判定する（ステップ２０３）。
【００７２】
このとき、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は「０」であるため、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」を「１」に変更し、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」を「０」から「１０」に変更する（ステップ２０４）。その後、ステップ２０５からステップ２０７まで行う。その後、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「０」であるかどうか判定する（ステップ２０９）。
【００７３】
センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は「１」であるため、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」を「１」減算する（ステップ２１１）。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「１０」のため、「９」に減算する。
【００７４】
そして、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」であるかどうか判定する（ステップ２１１）。このとき原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「９」であるため、パルス入力処理から回動処理に戻る。
【００７５】
また、図１２（ｅ）の状態におけるパルス入力処理は、原点パルス数がカウントパルス数と異なり、入力パルス数が規定パルス数と異なる場合の処理である。すなわち、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「１０」であり、ステッピングモータ駆動部６がステッピングモータ５にカウントパルス数Ｎの駆動パルスをまだ入力しておらず、さらに、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が、「９０」であり、ステッピングモータ駆動部６がステッピングモータ５に規定パルス数Ａの駆動パルスをまだ入力していないことを意味する。この場合、上記の通り、ステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力している。
【００７６】
この処理を指示棒が原点位置から回動範囲左端ＬＯまで回動する間繰り返す。そして、指示棒２が回動範囲左端ＬＯまで回動する。図１２（ｆ）は、指示棒２が回動範囲左端ＬＯまで回動した状態を示す。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「１００」である。また、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「０」である。
【００７７】
これにより、ステップ１０３の判定結果に基づいて、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」を原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」と同じ値にする（ステップ１０４）。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「０」のため、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」も「０」に変更する。
そして、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」を「０」に変更する（ステップ１０５）。
【００７８】
次に、指示棒２が原点位置方向に回動しているかどうかを判定する（ステップ１０６）。原点位置は、原点出力センサ３の出力がＯＦＦからＯＮに切替わる位置のため、このとき指示棒２が原点位置方向に回動している。
【００７９】
そのため、原点検出センサの出力状態がＯＮの状態であるかどうかを判定する（ステップ１０７）。このとき、図１２（ｆ）に示すように、原点検出センサの出力はＯＮの状態である。
【００８０】
そのため、ステッピングモータ５の回転方向を反転する（ステップ１０８）。そして、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」を「０」に設定する（ステップ１０９）。このとき、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は「０」だったため、変更しない。そして、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」を「０」に設定する（ステップ１１０）。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「０」のため、変更しない。そして、指示棒２の回動方向を反転して、回動の初期状態に戻る。
【００８１】
また、図１２（ｆ）の状態におけるパルス入力処理は、原点パルス数がカウントパルス数と等しく、入力パルス数が規定パルス数と等しい場合の処理である。すなわち、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」であり、ステッピングモータ駆動部６がステッピングモータ５にカウントパルス数Ｎの駆動パルスを入力し、さらに、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が、「１００」であり、ステッピングモータ駆動部６がステッピングモータ５に規定パルス数Ａの駆動パルスを入力したことを意味する。この場合、上記の通り、ステッピングモータ駆動部６は、ステッピングモータ５の回転方向を反転している。
そして、回動処理を繰り返すことにより、指示棒２が往復回動する。
【００８２】
次に、指示棒２が原点位置方向と反対方向に回動している際にステッピングモータ５が脱調した場合の指示棒２の動作について説明する。図１３は指示棒が原点位置方向と反対方向に回動している際にステッピングモータ５が脱調した場合の指示棒の動作を説明する図である。
【００８３】
図１３（ａ）は、図１２（ｂ）と同様の状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５０」であり、指示棒が回動範囲左端ＬＯと回動範囲右端ＲＯとの中間に位置することを示す。また、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「−１０」である。この後、ステップ２０７でステッピングモータ５に１パルス入力したが、指示棒２が回動せずにステッピングモータ５が脱調したと仮定する。
【００８４】
図１３（ｂ）は、ステッピングモータ５が脱調した状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５４」であり、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「−１０」である。しかし、ステップ２０７においてステッピングモータ５に駆動パルスを入力したが、実際は、ステッピングモータ５が回動していない。この状態で、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」に「１」加算している。そのため、ステップ１０１を４回実行したが、ステッピングモータ５は４パルス分回転運動していない状態である。
【００８５】
このまま回動処理を繰り返すと、指示棒２が回動範囲右端ＲＯまで回動せずに入力パルス数と規定パルス数とが等しくなる。図１３（ｃ）は、指示棒２が回動範囲右端ＲＯまで回動せずに入力パルス数と規定パルス数とが等しくなった状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「１００」であり、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「−１０」である。図１３（ｃ）において、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」まで加算されるまでにステッピングモータ５が４パルス数分脱調したと仮定している。この状態で、通常の動作と同様の処理を続ける。
【００８６】
図１３（ｄ）は、さらに回動処理を行っている状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５０」であるが、図１２（ｄ）の状態と異なり、指示棒２は回動範囲の中心に位置しない。
【００８７】
さらに回動処理を続け、原点検出センサ３の出力がＯＦＦからＯＮに切替わる位置まで回動する。図１３（ｅ）は、原点検出センサ３の出力がＯＦＦからＯＮに切替わった状態を示す図である。回動中に４回脱調が発生しているため、このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「９０」ではなく「８６」である。また、ステップ２０４において、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」を「１０」に変更している。この状態は、図１２（ｅ）の状態と同様に、原点パルス数がカウントパルス数と異なり、入力パルス数が規定パルス数と異なる場合の状態である。この場合、図１２（ｅ）と同様にステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力している。
【００８８】
さらに回動処理を続け、指示棒２が回動範囲左端ＬＯまで回動する。図１３（ｆ）は、指示棒２が回動範囲左端ＬＯまで回動した状態を示す。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「１００」ではなく、「９６」で回動範囲左端ＬＯまで回動してしまっている。
【００８９】
このまま回動処理を進めた場合、ステップ１０３において入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」ではないと判定されるため、パルス入力処理を行う（ステップ１０１）。そして、ステップ２０７において、指示棒２が回動範囲左端ＬＯまで回動している状態で、さらに指示棒２を同じ方向に回動させようとする。このまま処理を継続すると指示棒２は回動範囲左端ＬＯを超えた位置まで移動し、回動範囲がずれてしまう。さらに処理を継続し、ステッピングモータ５が脱調を繰り返すと、指示棒２が障害物に当たるなど、これ以上回動できないような物理的な位置に到達する。その後、ステッピングモータ５はノイズを発生しながら空回りするような現象が生じる。
そこで、本実施形態において、回動処理中に第１の脱調復帰処理を行っている。
【００９０】
図１３（ｆ）の状態の場合、ステップ２１０を行い、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「０」に減算されている。
この後、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」であるかどうかを判定する（ステップ２１１）。原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「０」のため、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」を「０」から「１」に変更する。このとき、はじめて未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」が「１」に設定される。そして、パルス入力処理から回動処理に戻る。
【００９１】
次に、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」に「１」加算する（ステップ１０２）。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、図１３（ｆ）に示す通り、「９６」に変更される。そして、ステップ１０３において、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は「１００」以上ではないと判定され、パルス入力処理を行う（ステップ１０１）。
【００９２】
次に、ステップ２０１、ステップ２０３が行われる。次に、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」が「１」であるかどうかを判定する（ステップ２０５）。このとき、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は「１」であるため、パルス入力処理から回動処理に戻る。
【００９３】
そして、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」に「１」加算する。このとき入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「９６」のため、「９７」に変更される。この後、ステップ１０３、ステップ１０１と繰り返していく。
【００９４】
入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」まで加算されると、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」であると判定され（ステップ１０３）、ステップ１０４以降を通常の動作と同様に行っていく。
【００９５】
上記の処理により、指示棒２が回動範囲左端ＬＯまで回動した後、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」に変更されるまで、ステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力していない。つまり、制御部は、指示棒２が回動端（回動範囲左端）に存在すると判定すると、ステッピングモータ５を駆動する駆動パルスの入力を休止する休止期間を設定する。
【００９６】
すなわち、図１３（ｆ）のように、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」に変更される前に指示棒が回動範囲左端ＬＯまで回動している場合は、原点パルス数がカウントパルス数と等しく、入力パルス数が規定パルス数とを異なる場合の処理を行う。この場合、上記の処理の通り、ステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力せず、制御部７は、ステッピングモータ５に入力されない駆動パルスの数を差分パルス数として入力パルス数に加算していく。記憶部８は、ステッピングモータ５に入力されない駆動パルス数（差分パルス数）を入力パルス数を記憶する。つまり、記憶部は、上述の休止期間の駆動パルス数（差分パルス数）を記憶する。なお、この記憶される駆動パルス数は、制御部７内に一時的に記憶されてもよい。
【００９７】
これにより、ステッピングモータ５の空回りによるノイズは発生しない。また、ステッピングモータ５を空回りさせずに脱調から復帰させるため、ステッピングモータ５が脱調を繰り返すことを抑制する。また、ステッピングモータ５を空回りさせないため、回転運動変換部４の歯車等の噛合が外れることはなく、ステッピングモータ５を脱調から復帰させる。そのため、メトロノームの設置状況にかかわらずに脱調復帰処理を行い、指示棒２の往復回動を続けることができる。また駆動パルスはステッピングモータ５の入力に関わらずその発生のタイミングで入力パルス数をカウントしているので指示棒２の往復回動は一定の周期性を失うことはない。
以上により、本実施形態におけるメトロノームは、音楽練習者に対して厳密な設置条件を要求することなく正確な拍子を報知することができ、快適に使用することができる。
【００９８】
また、本実施形態において、原点位置は、回動端と異なる位置である。すなわち、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」に対応するカウントパルス数を正の整数に規定している。カウントパルス数に正の整数が規定されている場合、入力パルス数が規定パルス数に達する前に、脱調状態を予測することができる。そのため、指示棒２が回動端まで回動した後の脱調復帰処理をスムーズに行うことができる。
【００９９】
次に、指示棒が原点位置方向に回動している際に脱調した場合の指示棒の動作について説明する。図１４は指示棒が原点位置方向に回動している際にステッピングモータ５が脱調した場合の指示棒の動作を説明する図である。
【０１００】
図１４（ａ）は、指示棒２が原点位置方向と反対方向に回動範囲右端ＲＯまで回動し、回動を反転する状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は「１００」であり、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「０」である。すなわち、指示棒２は回動範囲右端ＲＯまで正常に回動している。
【０１０１】
このとき、ステップ１０８において、ステッピングモータの回転方向を反転している。そして、ステップ１０９、ステップ１１０を行う。ステップ１１０により、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が図１４（ａ）に示す通り、「０」に変更される。
【０１０２】
この後、指示棒２が原点位置方向へ回動する間にステッピングモータ５の脱調が発生したと仮定する。図１４（ｂ）は、指示棒２が原点位置方向へ回動する間に脱調が発生した状態を示す。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５６」であり、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「０」である。しかし、ステップ２０７においてステッピングモータ５に駆動パルスを入力したが、実際は、ステッピングモータ５が回動していない。この状態で、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」に「１」加算している。そのため、ステップ１０３で、ステッピングモータ５は１パルス数分回転運動していない状態である。このまま回動処理を繰り返し、図１４（ｂ）に示す通り、ステッピングモータ５が６パルス数分脱調している。
【０１０３】
図１４（ｃ）は、原点検出センサの出力がＯＦＦからＯＮの状態に切り替わった状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「９６」であり、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「１０」である。
【０１０４】
回動中に脱調が発生しているため、このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「９０」ではなく「９６」である。また、ステップ２０４において、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」を「１０」に変更している。すなわち、ステッピングモータ５が６パルス数分回動されない状態で、指示棒２が原点位置に存在している。この状態は、図１２（ｅ）の状態と同様に、原点パルス数がカウントパルス数と異なり、入力パルス数が規定パルス数と異なる場合の状態である。この場合、図１２（ｅ）と同様にステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力している。
【０１０５】
さらに入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」になるまで回動処理を続ける。図１４（ｄ）は、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」になるまで回動した状態を示す。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「１００」であるが、指示棒２は回動範囲左端ＬＯまで回動していない。ステッピングモータ５が６パルス数分回動していないからである。
【０１０６】
このまま回動処理を進めた場合、原点検出センサの出力がＯＮの状態であると判定され（ステップ１０７）、ステッピングモータ５の回転方向を反転させ（ステップ１０８）、回動処理を続ける。その後、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」になる前に指示棒２が回動範囲右端ＲＯまで回動してしまう。この後、ステップ１０３において入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」ではないと判定されるため、パルス入力処理を行う（ステップ１０１）。そして、ステップ２０７において、指示棒２が回動範囲右端ＲＯまで回動している状態で、さらに指示棒２を同じ方向に回動させようとする。このまま処理を継続すると指示棒２は回動範囲右端ＲＯを超えた位置まで移動し、回動範囲がずれてしまう。さらに処理を継続し、ステッピングモータ５が脱調を繰り返すと、指示棒２が障害物に当たるなど、これ以上回動できないような物理的な位置に到達する。その後、ステッピングモータ５はノイズを発生しながら空回りするような現象が生じる。
そこで、本実施形態において、回動処理中に第２の脱調復帰処理を行っている。
【０１０７】
図１４（ｄ）の状態の場合、ステップ１０４において、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」の値を原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」の値に変更する。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「６」であるため、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は「６」に変更される。そして、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」を「０」に変更する。その後、ステップ１０６からステップ１１０まで行う。
【０１０８】
そして、パルス入力処理において、ステップ２０１、ステップ２０３、ステップ２０５を行う。次に、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」が「０」以下であるかを判定する（ステップ２０６）。このときスキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は「６」であるため、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」が「１」減算される（ステップ２０８）。この状態で、ステッピングモータ５に１パルス入力せずにパルス入力処理から回動処理に戻る。そして、回動処理において、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１」加算される（ステップ１０２）。
【０１０９】
図１４（ｅ）は、上記の処理を行い、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」が「１」減算され、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１」加算された状態を示す図である。このとき、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」は「６」から「５」に変更され、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は「０」から「１」に変更される。上記の処理を「ｓｋｉｐ＿ｃｏｕｎｔ」が「０」に変更されるまで繰り返す。そして、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」が「０」に変更されたとき、ステップ１０２において、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は「６」に変更される。
【０１１０】
すなわち、上記は、原点パルス数がカウントパルス数と異なり、入力パルス数が規定パルス数と等しい場合の処理である。この場合、ステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力せず、制御部７は、ステッピングモータに入力されない駆動パルスの数を原点パルス数に加算していることになる。そして、原点パルス数がカウントパルス数と等しくなった場合は、通常の回動処理を行う。本実施形態においては、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」の減算値とスキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」の減算値の合計が原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」の最大値であるカウントパルス数Ｎに達した場合、原点パルス数がカウントパルス数と等しいと判断する。
【０１１１】
この状態で、パルス入力処理において、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」が「０」であると判定され（ステップ２０６）、ステッピングモータ５は１パルス入力される（ステップ２０７）。このとき、指示棒２が回動範囲右端ＲＯに向かって回動し始める。
【０１１２】
そして、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」に「６」加算された状態で回動処理を繰り返すため、その後ステッピングモータ５が脱調することなく指示棒２が回動範囲右端ＲＯに到達したときに入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」である。すなわち、ステッピングモータ５が空回りするはずのパルス数分がすでに加算されているため、ステッピングモータ５が空回りしない。これにより、指示棒２の回動範囲右端ＲＯ超えによる障害物への接触、それに伴うノイズの発生等を抑制するとともに、指示棒の正確な往復回動を行うことができる。第２の脱調復帰処理は、原点検出センサ３が１つの場合に有効である。
【０１１３】
次にエラー処理について説明する。指示棒２が原点位置方向へ回動し、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」であると仮定する。
このときステップ１０４からステップ１０６の処理を行い、原点検出センサ３の出力がＯＮの状態であるかを判定する（ステップ１０７）。このとき、原点検出センサの出力がＯＮの状態でない場合、制御部７がエラーと判定し、エラー処理を行う（ステップ１１１）。
【０１１４】
この場合、ステッピングモータ５の不調により、甚だしいトルク不足状態が引き起こされているか、指示棒２が物理的に拘束されてしまっている状態等、メトロノームとしての機能を果たすことができないような状況が想定される。
【０１１５】
図１１はエラー処理の流れを示す図である。まず、ステッピングモータ５を停止し（ステップ３０１）、表示部１０のエラー表示である赤ＬＥＤを点灯する（ステップ３０２）。これにより、回動処理が停止される。
【０１１６】
すなわち、この場合は、指示棒２が原点位置に存在しないことを原点検出センサ３が検出し、入力パルス数が規定パルス数と等しいことを制御部７が判定する場合である。この場合、ステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力せず、制御部７は、エラー処理を行う。
これにより、メトロノームとして機能を果たすことができないような場合に、エラーの表示等を通知することができる。
【０１１７】
この場合、カウントパルス数Ｎは、は１つの往復回動の中で許容し得るステッピングモータ５の脱調回数を意味する。そのため、カウントパルス数Ｎ、すなわち原点位置から回動端までの間隔は、脱調の許容量として設定することができる。
【０１１８】
なお、カウントパルス数Ｎは０以上の整数値を設定可能である。ただし、カウントパルス数Ｎが０のときはステッピングモータ５の脱調を許容せず、仮に脱調が生じた場合にはすぐにエラー検出される。またカウントパルス数Ｎが大きい数値になれば、ステッピングモータ５の脱調に対する許容度は大きくなる。しかし、脱調が起きたときに指示棒２が回動範囲端部で停留する時間が長くなりすぎると不自然な動作が目立つようになる。以上により、カウントパルス数Ｎは必要最小限の値とすることが好ましい。
【０１１９】
また、本実施形態において、原点検出センサが１つの場合を説明したが、原点検出センサは少なくとも１つ以上有していればよく、２つ以上でもよい。このような本実施形態の変形例を、以下に説明する。
【０１２０】
図１５は、２つの原点検出センサの場合の指示棒２の動作態様を示す図である。図１５において原点検出センサ及び指示棒以外の構成は省略する。原点検出センサが１つの場合と同様の構成については説明を省略する。また点線で示す指示棒は回動前の位置、実線で示す指示棒は回動後の位置である。
【０１２１】
図１５（ａ）は、指示棒２が回動範囲である回動範囲右端ＲＯから回動範囲左端ＬＯまで回動している状態を示す図である。この回動範囲は、規定パルス数Ａで決まる。これは、原点検出センサが１つの場合と同様である。
【０１２２】
次に原点位置について説明する。本実施形態において、第１のセンサは、原点位置のうち第１の原点位置に存在することを検出し、第２のセンサは、原点位置のうち第２の原点位置に存在することを検出する。また、本実施形態において、第１の原点位置は、回動範囲の中心に対して一方の側に位置し、第２の原点位置は、回動範囲の中心に対して他方の側に位置する。なお、各原点位置の配置はこれに限られない。例えば、両方の原点位置が一方の側でもよい。
【０１２３】
また、本実施形態においては、第１のセンサは、回動範囲左端ＬＯ検出センサ１５とし、第２のセンサは、回動範囲右端ＲＯ検出センサ１６と設定する。なお、各センサは逆の検出センサであってもよい。
【０１２４】
また、各原点位置は、原点検出センサが１つの場合と同様に、原点検出センサの出力がＯＦＦの状態からＯＮの状態に切り替わる位置である。また、第１の原点位置は、回動範囲左端ＬＯ側に対応する原点位置であり、第２の原点位置は、回動範囲右端ＲＯ側に対応する原点位置である。また、各原点位置は、対応する回動端と異なる位置である。また、原点検出センサが１つの場合と同様に各原点位置から対応する回動端まで、指示棒２が回動するためにカウントパルス数Ｎが規定される。
【０１２５】
図１５（ｂ）は、指示棒２が回動範囲右端ＲＯから第１の原点位置に存在することを回動範囲左端ＬＯ検出センサ１５が検出するまで回動した状態を示す図である。この間、回動範囲左端ＬＯ検出センサ１５の出力は、ＯＦＦの状態である。また、この間、回動範囲右端ＲＯ検出センサ１６の出力は、ＯＮの状態からＯＦＦの状態に切替わり、第１の原点位置においてＯＦＦの状態である。この間を、指示棒２は角度Ｂで回動する。このとき、ステッピングモータ５は、パルス数Ｂを入力される。
【０１２６】
図１５（ｃ）は、指示棒２が回動範囲左端ＬＯから第２の原点位置に存在することを回動範囲右端ＲＯ検出センサ１６が検出するまで回動した状態を示す図である。この間、回動範囲右端ＲＯ検出センサ１６の出力は、ＯＦＦの状態である。また、この間、回動範囲左端ＬＯ検出センサ１５の出力は、ＯＮの状態からＯＦＦの状態に切替わり、第２の原点位置においてＯＦＦの状態である。この間を、指示棒２は角度Ｂで回動する。このとき、ステッピングモータ５は、パルス数Ｂを入力される。このパルス数Ｂは、規定パルス数Ａからカウントパルス数Ｎを引いたパルス数である。
【０１２７】
なお、原点検出センサ及び指示棒２の構造や種類によって、原点検出センサの検出がＯＮ又はＯＦＦの状態の範囲は変更される。このとき、原点位置も変更される。また、規定パルス数は、操作部９から入力されたテンポ等によって変更される。また、カウントパルス数Ｎは、原点位置によって変更される。例えば、各原点位置が対応する回動端の位置である場合、カウントパルス数Ｎは０である。また、カウントパルス数Ｎが正の整数で規定される場合、各原点位置は、対応する回動端と異なる位置である。
【０１２８】
また、本実施形態において、カウントパルス数は、指示棒２が第１の原点位置から回動端まで回動するために規定される第１のカウントパルス数Ｎ１と、指示棒２が第２の原点位置から回動端まで回動するために規定される第２のカウントパルス数Ｎ２と、で構成される。
【０１２９】
また、本実施形態において、原点パルス数は、指示棒２が第１の原点位置から回動端まで回動する間に入力される第１の原点パルス数と、指示棒２が第２の原点位置から回動端まで回動する間に入力される第２の原点パルス数と、で構成される。
【０１３０】
すなわち、カウントパルス数の個数とは、原点検出センサの個数に対応して規定され、原点パルス数の個数はカウントパルス数の個数と一致する。なお、第１のカウントパルス数Ｎ１と第２のカウントパルス数Ｎ２とは異なる数でも等しい数でもよい。本実施形態においては、各カウントパルス数は両方「１０」に規定される。
【０１３１】
以下に、制御部７における指示棒２の回動制御について具体例を示しながら説明する。図１６は、指示棒の回動処理の流れの一例を示すフローチャートである。図１７は、パルス入力処理の流れの一例を示すフローチャートである。また、図１８は、本実施形態の指示棒の動作を示す図である。なお、原点検出センサが１つの場合と同様の処理については、説明を省略する。また、指示棒２の通常の動作については、原点検出センサが１つの場合と同様の動作であるため、説明を省略する。
【０１３２】
まず回動開始処理前に、各パラメータを初期状態に設定する。初期状態は、スキップパルス数を示すスキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」がない以外は、原点検出センサが１つの場合と同様である。すなわち、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は、「０」に設定され、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、「０」に設定され、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は、「１」に設定され、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は、「０」に設定される。この状態で回動処理を開始する。本実施形態においては、スキップパルス数「ｓｋｉｐ＿ｃｏｕｎｔ」を設定する必要がない。また、本実施形態において、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」に用いられる各カウントパルス数は「１０」に規定する。
【０１３３】
図１８を用いて、指示棒２が回動範囲右端ＲＯ方向へ回動する間に脱調した場合の脱調処理について説明する。図１８は、指示棒２が回動範囲右端ＲＯ方向へ回動する間に脱調した状態を示す図である。また、本実施形態では、指示棒２は回動範囲左端ＬＯから回動を開始する。
【０１３４】
まず、図１６に示す回動処理を開始すると、パルス入力処理を行う（ステップ４０１）。図１７に示す通り、パルス入力処理を開始すると、回動範囲左端ＬＯ検出センサ１５、回動範囲右端ＲＯ検出センサ１６の出力がＯＮの状態であるかどうかを判定する（ステップ５０１、ステップ５０２）。なお、ステップ５０１とステップ５０２とは逆の順序でもよい。
【０１３５】
このとき、指示棒２は、図１５において実線で示す位置に配置されている。そのため、回動範囲左端ＬＯ検出センサ１５の出力がＯＮの状態であるため、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「０」であるかどうかを判定する（ステップ５０４）。
このとき、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は「１」であるため、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」が「１」であるかどうかを判定する（ステップ５０６）。
【０１３６】
未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」は「０」のため、ステッピングモータ駆動部６がステッピングモータ５に１パルス入力する（ステップ５０７）。これにより、指示棒２は回動範囲右端ＲＯに向かって回動する。そして、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「０」であるか判定する（ステップ５０８）。このときセンサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は「１」のため、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」を「１」減算する（ステップ５０９）。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「−１」に変更される。そして、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」であるかどうかを判定する（ステップ５１０）。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「−１」のため、パルス入力処理から回動処理へ戻る。
【０１３７】
次に、回動処理において、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」に「１」加算する。これで、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１」に変更される。そして入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」以上であるかどうかを判定する（ステップ４０３）。入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」以上でないため、ステップ４０１を再度行う。これを入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」以上に変更されるまで繰り返す。
【０１３８】
また、回動処理を繰り返すと、回動範囲左端ＬＯ検出センサ１５の出力がＯＦＦの状態に切り替わる。このとき、回動範囲右端ＲＯ検出センサ１６の出力はＯＦＦの状態のため、パルス入力処理において、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「０」に変更される（ステップ５０３）。
【０１３９】
図１８（ａ）は、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５０」までステッピングモータ５が脱調せずに指示棒２が回動した状態を示す図である。このとき、指示棒は、回動範囲の中心に位置する。また、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「−１０」である。
【０１４０】
この後、通常の動作を繰り返した場合、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「９０」のときに、回動範囲右端ＲＯ検出センサ１６の出力がＯＮの状態になる。このとき、ステップ５０２において、回動範囲右端ＲＯ検出センサ１６の出力がＯＮの状態であると判定され、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「０」であるか判定する（ステップ５０４）このとき、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は「０」であるため、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」を「１」に変更し、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」を「１０」に変更する（ステップ５０５）。この状態で、ステップ５０６からステップ５０８を行う。このとき、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」は「１」のため、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「１」減算される（ステップ５０９）。これにより、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は「９」に変更される。そして、ステップ５１０を行い、パルス入力処理から回動処理に戻る。
【０１４１】
そして、回動処理を繰り返すと、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」に変更され（ステップ５０９）、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」と判定され（ステップ５１０）、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」が「１」に変更される（ステップ５１１）。そして、回動処理に戻り、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」に変更される（ステップ４０２）。
【０１４２】
このとき入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」であると判定され（ステップ４０３）、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「０」に変更される。そして、指示棒２が回動範囲右端ＲＯ方向に回動していたかどうかを判定する（ステップ４０５）。
【０１４３】
このとき、指示棒２は回動範囲右端ＲＯ方向に回動していたため、回動範囲右端ＲＯ検出センサ１６の出力がＯＮであるかどうかを判定する（ステップ４０７）。このとき、回動範囲右端ＲＯ検出センサ１６の出力はＯＮであるため、ステッピングモータ５の回転方向が反転され（ステップ４０９）、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」が「０」に変更され（ステップ４１０）、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」に変更される（ステップ４１１）。
これが指示棒２の通常の動作である。そして、次に指示棒２は回動範囲左端ＬＯ方向に回動する。この後の動作は、上記の動作と同様である。
【０１４４】
一方、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５０」に変更された後、ステッピングモータ５が４パルス数分脱調したと仮定する。図１８（ｂ）は、ステッピングモータ５が４パルス数分脱調した状態を示す図である。このとき、ステッピングモータ５は回動せずに、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５４」に変更されている。
【０１４５】
そして回動処理を繰り返すと、回動範囲右端ＲＯ検出センサ１６の出力がＯＦＦの状態からＯＮの状態に切替わる。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は「９０」でなく、「９４」である。この後、回動処理を行い、ステッピングモータ５に１パルス入力することを続ける（ステップ５０７）。
【０１４６】
この状態は、第２の原点パルス数が第２のカウントパルス数と異なり、入力パルス数が規定パルス数と異なる状態である。この状態の場合、ステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力する。
【０１４７】
回動処理を繰り返すと、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」に変更される。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」は、「４」である。この場合、指示棒２は回動範囲右端ＲＯに到達していない。図１８（ｃ）は、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」であるが、指示棒２が回動範囲右端ＲＯに到達していない状態を示す図である。
【０１４８】
この場合、通常の動作と同様の処理を行うため、ステッピングモータ５の回転方向が反転される（ステップ４０９）。すなわち、この状態は、原点検出センサが２つ以上有する場合であって、原点パルス数がカウントパルス数と異なり、入力パルス数が規定パルス数と等しいことを制御部７が判定する状態である。この状態の場合、ステッピングモータ駆動部６は、ステッピングモータ５の回転方向を反転する。
【０１４９】
この後、回動処理を繰り返す。図１８は（ｄ）は、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５０」のときの状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「５０」であるが、指示棒は回動範囲の中心に位置せず、回動範囲左端ＬＯ側にずれている。
【０１５０】
さらに回動処理を繰り返すと、回動範囲左端ＬＯ検出センサ１５の出力がＯＮの状態に切替わる。図１８（ｅ）は、回動範囲左端ＬＯ検出センサ１５の出力がＯＮの状態に切替わった状態を示す図である。この際、パルス入力処理において、センサフラグ「ｓｅｎｓｏｒ＿ｆｌｇ」が「１」に変更され、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「１０」に変更される（ステップ５０５）。図１８（ｅ）はこのときの状態を示す図である。このとき、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は「９０」でなく、「８６」である。
【０１５１】
そして、ステッピングモータ駆動部６がステッピングモータ５に１パルス入力し（ステップ５０６）、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「１」減算され、「９」に変更される（ステップ５０９）。そして、回動処理に戻り、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１」加算され、「８７」に変更される（ステップ４０２）。
【０１５２】
この状態は、第１の原点パルス数が第１のカウントパルス数と異なり、入力パルス数が規定パルス数と異なる状態である。この状態の場合、ステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力する。
【０１５３】
この後、回動処理を繰り返すと、指示棒２が回動範囲左端ＬＯまで回動する。図１８（ｆ）は、指示棒２が回動範囲左端ＬＯまで回動した状態を示す図である。このとき、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」であるが、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」は「１００」ではなく、「９６」である。
【０１５４】
この後も、ステッピングモータ５が回動を続けてしまう。このまま処理を継続すると指示棒２は回動範囲左端ＬＯを超えた位置まで移動し、回動範囲がずれてしまう。さらに処理を継続し、ステッピングモータ５が脱調を繰り返すと、指示棒２が障害物に当たるなど、これ以上回動できないような物理的な位置に到達する。その後、ステッピングモータ５はノイズを発生しながら空回りするような現象が生じる。
そこで、本実施形態において、原点検出センサが１つの場合と同様に回動処理中に第１の脱調復帰処理を行う。
【０１５５】
まず、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」まで減算されると（ステップ５０９）、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」であると判定され（ステップ５１０）、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」が「１」に変更される（ステップ５１１）。この後、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」に変更されるまで、パルス入力処理を繰り返す。この際、ステップ５０６で未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」が「１」であると判定されるため、ステッピングモータ５に駆動パルスが入力されずに、パルス入力処理から回動処理に戻る。そして、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１」加算されていく（ステップ４０２）。
【０１５６】
この状態は、第１の原点パルス数が第１のカウントパルス数と等しく、入力パルス数が規定パルス数とを異なることを制御部７が判定する状態である。この状態の場合、ステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力せず、制御部７は、ステッピングモータ５に入力されない駆動パルスの数を入力パルス数に加算する。
【０１５７】
そして、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」に変更されると、ステッピングモータ５の回転方向が反転される（ステップ４０９）。そして、脱調状態から復帰し、指示棒２は通常の動作を行うことができる。
【０１５８】
この状態は、第１の原点パルス数が第１のカウントパルス数と等しく、入力パルス数が規定パルス数と等しいことを制御部７が判定する状態である。この状態の場合、ステッピングモータ駆動部６は、ステッピングモータ５の回転方向を反転する。
【０１５９】
また、指示棒２が回動範囲左端ＬＯ方向へ回動する間にステッピングモータ５が脱調した場合の脱調処理についても上記と同様に第１の脱調復帰処理を行う。この場合は一旦第１の原点側で第１の原点パルス数が第１のカウントパルス数と異なり、入力パルス数が規定パルス数と等しい状況になっても、通常どおり入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「１００」であると判定され（ステップ４０３）、入力パルス数「ｐｌｓ＿ｃｏｕｎｔ」が「０」に変更され、指示棒２が回動範囲右端ＲＯ方向に回動していたかどうかを判定される（ステップ４０５）。このとき、指示棒２は回動範囲左端ＬＯ方向に回動していたため、回動範囲左端ＬＯ検出センサ１６の出力がＯＮであるかどうかを判定される（ステップ４０６）。このとき、回動範囲左端ＬＯ検出センサ１６の出力はＯＮであるため、ステッピングモータ５の回転方向が反転され（ステップ４０９）、未完了フラグ「ｃｌｏｃｋ＿ｓｋｉｐ」が「０」に変更され（ステップ４１０）、原点パルス数「ｃｈｅｃｋ＿ｃｏｕｎｔ」が「０」に変更される（ステップ４１１）。そして、次に指示棒２は回動範囲右端ＲＯ方向に回動するが、このときの指示棒２の動作は指示棒２が回動範囲右端ＲＯ方向へ回動する間にステッピングモータ５が脱調した場合と同様な状況となる。この場合、第１の脱調復帰処理を行う。
【０１６０】
すなわち、第２の原点パルス数が第２のカウントパルス数と等しく、入力パルス数が規定パルス数とを異なることを制御部７が判定する場合、ステッピングモータ駆動部６は、駆動パルスをステッピングモータ５に入力せず、制御部７は、ステッピングモータ５に入力されない駆動パルスの数を入力パルス数に加算する。
【０１６１】
これにより、ステッピングモータ５の空回りによるノイズは発生しない。また、ステッピングモータ５を空回りさせずに脱調から復帰させるため、ステッピングモータ５が脱調を繰り返すことを抑制する。また、ステッピングモータ５を空回りさせないため、回転運動変換部４の歯車等の噛合が外れることはなく、ステッピングモータ５を脱調から復帰させる。そのため、メトロノームの設置状況にかかわらずに脱調復帰処理を行い、指示棒２の往復回動を続けることができる。また駆動パルスはステッピングモータ５に入力される、されないに関わらずその発生のタイミングで入力パルス数をカウントしているので指示棒２の往復回動は一定の周期性を失うことはない。
以上により、本実施形態におけるメトロノームは、音楽練習者に対して厳密な設置条件を要求することなく正確な拍子を報知することができ、快適に使用することができる。
【０１６２】
さらに本実施形態においては、原点検出センサを２つ有しているため、回動範囲の両方の回動端において、脱調復帰処理を行うことができる。これにより、より確実にステッピングモータを脱調から復帰させることができる。特に、第１の原点位置は、回動範囲の中心に対して一方の側に位置し、第２の原点位置は、回動範囲の中心に対して他方の側に位置する場合は有効である。ただし、Ｎ１、Ｎ２の設定を調整すれば、必ずしも第１の原点位置は、回動範囲の中心に対して一方の側に位置し、第２の原点位置は、回動範囲の中心に対して他方の側に位置する必要はない。
【０１６３】
以上、添付図面を参照しながら、本発明に係るメトロノームの好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１６４】
例えば、本実施形態において、ステッピングモータを備える例を説明したが、ステッピングモータ以外のモータを備えてもよい。また、原点検出センサも本実施形態以外のセンサを用いてもよく、例えばリードスイッチ等でもよい。
【０１６５】
また、原点検出センサは少なくとも１つ以上有していればよい。原点検出センサが多い場合、指示棒を多数の位置で脱調状態から復帰させることが可能である。
また、本実施形態において、原点検出センサの検出状態が切替わる原点位置は、原点検出センサの出力がＯＦＦからＯＮに切替わる位置であったが、逆でもよい。
【０１６６】
また、本実施形態の操作部はリモコン等の遠隔操作ができるものでもよい。
また、カウントパルス数Ｎが０の場合、カウントパルス数及び原点パルス数を設定しなくてもよい。この場合、駆動パルスをステッピングモータに入力し、ステッピングモータを往復回転運動するステッピングモータ駆動部と、往復回転運動により往復回動する指示棒と、指示棒が回動範囲の回動端に存在することを検出する少なくとも１つ以上の原点検出センサと、を有する点は上述の例と同様である。
【０１６７】
しかし、上述の例と異なり、記憶部は指示棒が回動端まで回動するために規定される規定パルス数を記憶し、制御部は、指示棒が回動端まで回動する間に入力された入力パルス数を計数し、規定パルス数と入力パルス数とを比較する。
【０１６８】
また、指示棒が回動端に存在することを原点検出センサが検出し、入力パルス数と規定数と異なることを制御部が判定する場合、ステッピングモータ駆動部は、駆動パルスを前記ステッピングモータに入力せず、制御部は、ステッピングモータに入力されない駆動パルスの数を入力パルス数に加算する。
【０１６９】
この場合でも、ステッピングモータの空回りによるノイズは発生しない。また、ステッピングモータを空回りさせずに脱調から復帰させるため、ステッピングモータが脱調を繰り返すことを抑制する。また、ステッピングモータを空回りさせないため、回転運動変換部の歯車等の噛合が外れることはなく、ステッピングモータを脱調から復帰させる。そのため、メトロノームの設置状況にかかわらずに脱調復帰処理を行い、指示棒の往復回動を続けることができる。よって、音楽練習者に対して厳密な設置条件を要求することなく正確な拍子を報知することができ、快適に使用することができる。
【０１７０】
また、本発明の説明態様の１つを以下に付記する。すなわち、
（１）駆動パルスをステッピングモータに入力し、前記ステッピングモータを往復回転運動するステッピングモータ駆動部と、前記往復回転運動により往復回動する指示棒と、前記指示棒が回動範囲の原点位置に存在することを検出する少なくとも１つ以上の原点検出センサと、前記指示棒が前記回動範囲を回動するために規定される規定パルス数と、前記指示棒が前記原点位置から前記回動端（未前出）まで回動するために規定されるカウントパルス数と、を記憶する記憶部と、前記指示棒が前記回動範囲を回動する間に入力された入力パルス数と、前記指示棒が前記原点位置から前記回動端まで回動する間に入力された原点パルス数とを計数し、前記入力パルス数と前記規定パルス数とを比較するとともに、前記原点パルス数と前記カウントパルス数とを比較する制御部と、を有し、前記原点パルス数が前記カウントパルス数と等しく、前記入力パルス数が前記規定パルス数とを異なることを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力せず、前記制御部は、前記ステッピングモータに入力されない前記駆動パルスの数を前記入力パルス数に加算することを特徴とするメトロノーム。
【０１７１】
（２）前記原点パルス数が前記カウントパルス数と異なり、前記入力パルス数が前記規定パルス数と異なることを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力し、前記原点パルス数が前記カウントパルス数と等しく、前記入力パルス数が前記規定パルス数と等しいことを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記ステッピングモータの回転方向を反転することを特徴とする上述のメトロノーム。
【０１７２】
（３）前記原点検出センサは、前記原点位置のうち第１の原点位置に存在することを検出する第１のセンサと、前記原点位置のうち第２の原点位置に存在することを検出する第２のセンサと、を有することを特徴とする上述のメトロノーム。
【０１７３】
（４）前記第１の原点位置は、前記回動範囲の中心に対して一方の側に位置し、前記第２の原点位置は、前記回動範囲の中心に対して他方の側に位置することを特徴とする上述のメトロノーム。
【０１７４】
（５）前記原点位置は、前記回動端とは異なる位置であることを特徴とする上述のメトロノーム。
【０１７５】
（６）前記指示棒が前記原点位置に存在しないことを前記原点検出センサが検出し、前記入力パルス数が前記規定パルス数と等しいことを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力せず、前記制御部は、エラー処理を行うことを特徴とする上述のメトロノーム。
【０１７６】
（７）駆動パルスをステッピングモータに入力し、前記ステッピングモータを往復回転運動するステッピングモータ駆動部と、前記往復回転運動により往復回動する指示棒と、前記指示棒が回動範囲の回動端に存在することを検出する少なくとも１つ以上の原点検出センサと、前記指示棒が前記回動端まで回動するために規定される規定パルス数を記憶する記憶部と、前記指示棒が前記回動端まで回動する間に入力された入力パルス数を計数し、前記規定パルス数と前記入力パルス数とを比較する制御部と、を有し、前記指示棒が前記回動端に存在することを前記原点検出センサが検出し、前記入力パルス数と前記規定数と異なることを前記制御部が判定する場合、前記ステッピングモータ駆動部は、前記駆動パルスを前記ステッピングモータに入力せず、前記制御部は、前記ステッピングモータに入力されない前記駆動パルスの数を前記入力パルス数に加算することを特徴とするメトロノーム。
【符号の説明】
【０１７７】
１………メトロノーム
２………指示棒
３………原点検出センサ
４………回転運動変換部
５………ステッピングモータ
６………ステッピングモータ駆動部
７………制御部
８………記憶部
９………操作部
１０………表示部
１１………スピーカ駆動部
１２………スピーカ
１３………盤
１４………固定部
１５………回動範囲左端ＬＯ検出センサ（第１回動端）
１６………回動範囲右端ＲＯ検出センサ（第２回動端）
【図１】
2015096845.tif 000003
【図２】
2015096845.tif 000004
【図３】
2015096845.tif 000005
【図４】
2015096845.tif 000006
【図５】
2015096845.tif 000007
【図６】
2015096845.tif 000008
【図７】
2015096845.tif 000009
【図８】
2015096845.tif 000010
【図９】
2015096845.tif 000011
【図１０】
2015096845.tif 000012
【図１１】
2015096845.tif 000013
【図１２】
2015096845.tif 000014
【図１３】
2015096845.tif 000015
【図１４】
2015096845.tif 000016
【図１５】
2015096845.tif 000017
【図１６】
2015096845.tif 000018
【図１７】
2015096845.tif 000019
【図１８】
2015096845.tif 000020