以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係る遊技機10について説明するための図である。遊技機10は、主制御部20、外部制御回路30、モータドライバ42、モータ40、ブラシ50、および回転構造体100を備える。回転構造体100は、リンク形状の構造体でよい。回転構造体100は、モータ40からの動力により、回転する。モータ40は、ステッピングモータでよい。
回転構造体100は、回転体102、モータ110、可動体112、LED120、および動作制御回路130を有する。回転構造体100は、遊技機10の本体に回転可能に支持されている。回転体102は、モータ40の動力により回転体102の中心軸を中心として回転する。回転体102の外側の側面には、ギアが形成されていてもよい。モータ40からの動力が、モータ40の回転軸に設けられたギアを介して回転体102のギアに伝達され、回転体102が回転する。
モータ110、可動体112、LED120、および動作制御回路130は、回転体102に支持され、回転体102とともに回転する。動作制御回路130は、モータ110の回転、およびLED120の発光を制御する。モータ110は、第1の動作をする第1動作体の一例である。モータ110は、駆動体の一例であり、ステッピングモータでよい。LED120は、発光体の一例であり、第2の動作をする第2動作体の一例である。
可動体112は、モータ110からの動力により、回転体102に対して移動する。可動体112は、例えば、回転体102の回転軸に向かう方向に沿って移動する。可動体112の回転体102に対する動作は、上記には限定されず、可動体112は、回転体102に対して他の方向に移動、または回転体102に対して回転してもよい。LED120は、可動体112に設けられ、発光する。
主制御部20は、遊技機10の遊技状態に応じてモータドライバ42にモータ40の回転を制御するための制御信号を送信する。モータドライバ42は、制御信号に基づいてモータ40の回転を制御する。
主制御部20は、遊技機10の遊技状態に応じてモータ110の回転およびLEDの発光を制御させるべく、制御信号を動作制御回路130に向けて送信することを外部制御回路30に指示する。外部制御回路30は、ブラシ50を介して動作制御回路130に制御信号を送信する。遊技機10は、回転体102の回転、可動体112の移動、およびLED120の発光により、遊技機10の遊技状態に応じた演出を実行する。
図2は、回転体102の外側の側面の一例を示す図である。回転体102の外側の側面には、スリップリング104が設けられている。スリップリング104には、ブラシ50が押し当てられている。回転体102の外側の側面には、例えば、3本のスリップリング104が設けられている。3本のスリップリングのうち、1本のスリップリングは、外部制御回路30と動作制御回路130との間でやり取りされる制御信号などの信号の伝送路である。残りの2本のスリップリングは、回転構造体100に設けられたモータ110、LED120、および動作制御回路130に電力を供給するための給電線およびグランド線である。
なお、本実施形態では、1本のスリップリング104に対して2本のブラシ50が押し当てられ、1本のスリップリング104に対して2本のブラシ50が電気的に接続されている。しかし、1本のスリップリング104に電気的に接続されるブラシ50は、少なくとも1本でよい。
上記のように構成された回転構造体100において、スリップリング104とブラシ50との間の接点不良により、スリップリング104を介して外部制御回路30と動作制御回路130との間で正常に信号が伝送できない可能性がある。例えば、スリップリング104とブラシ50との接点部分に、塵または埃などが付着することで、ブラシ50がチャタリングを生じさせる可能性がある。また、回転体102が回転している間に、ブラシ50がスリップリング104の溶接部分などの凹凸部分を通過することにより、ブラシ50がスリップリング104に対して振動し、ブラシ50がチャタリングを生じさせる可能性がある。このようなチャタリングの発生により、スリップリング104を介した外部制御回路30と動作制御回路130との間の信号伝送が正常に行われない可能性がある。
そこで、本実施形態によれば、スリップリング104とブラシ50との間の接点不良により発生するスリップリング104を介した信号伝送の異常による悪影響を抑制できる回転構造体100を提供する。
図3は、本実施形態に係る遊技機10の機能ブロックの一例を示す。主制御部20、外部制御回路30、モータドライバ42、およびモータ40は、遊技機10の本体に設けられている。回転構造体100は、遊技機10の本体に回転可能に支持されている。
回転構造体100は、回転体102、スリップリング104、モータ110、可動体112、位置センサ114、モータドライバ116、LED120、LEDドライバ122、および動作制御回路130を有する。
外部制御回路30および動作制御回路130は、通信モジュールを含み、通信モジュール同士が、スリップリング104を介して信号をやりとりする。通信モジュールは、スリップリング104を介して双方向通信をする。モータドライバ116は、動作制御回路130からの第1制御コマンドに応じて第1パルス信号を生成し、モータ110に出力する。第1制御コマンドは、モータ110による駆動を制御する制御コマンドである。モータ110は、第1パルス信号に応じて回転する。可動体112は、モータ110が回転することにより発生する動力により動作する。可動体112は、回転体102に対して移動する。
LEDドライバ122は、動作制御回路130からの第2制御コマンドに応じて第2パルス信号を生成し、LED120に出力する。第2制御コマンドは、LED120による発光を制御する制御コマンドである。LED120は、第2パルス信号に応じて発光する。
位置センサ114は、可動体112の位置を検出する。位置センサ114は、例えば、可動体112が予め定められた位置に移動した場合に、可動体112が予め定められた位置に移動したことを示す検知信号をモータドライバ116に出力する。モータドライバ116は、検知信号に応じた位置データを動作制御回路130に出力する。動作制御回路130は、位置データを示すデータ信号をスリップリング104を介して外部制御回路30に送信する。外部制御回路30は、データ信号を主制御部20に転送する。
主制御部20は、転送されたデータ信号に示される可動体112の位置に基づいてモータ110の回転を制御させるべく、制御信号を動作制御回路130に向けて送信することを外部制御回路30に指示してもよい。
ここで、動作制御回路130は、外部制御回路30が予め定められた周期で送信した制御信号をスリップリング104を介して予め定められた周期で受信する。そして、動作制御回路130は、受信した制御信号の中に同一の第1制御コマンドが複数あれば、第1制御コマンドに従ってLEDドライバ122を介してモータ110を制御する。動作制御回路130は、モータ110をPPM制御可能な周期で制御信号を受信する。動作制御回路130は、例えば、500μsecの周期で、制御信号を受信する。
また、動作制御回路130は、受信した制御信号の中に第2制御コマンドが1つあれば、第2制御コマンドに従ってLEDドライバ122を介してLED120を制御してもよい。動作制御回路130は、予め定められた数の制御信号のそれぞれに含まれる第2制御コマンドを組み合わせて1つの制御コマンドを生成し、1つの制御コマンドに従ってLEDドライバ122を介して第2動作体を制御してもよい。
動作制御回路130は、外部制御回路30に送信すべき位置データを含むデータ信号があれば、外部制御回路30から制御信号を受信していない期間に、データ信号を外部制御回路30に送信してもよい。動作制御回路130は、一周期内において、制御信号の受信とデータ信号の送信を行ってよい。
外部制御回路30は、LED120を制御する1つの制御コマンドを複数に分割することにより複数の第2制御コマンドを生成し、予め定められた数の制御信号を用いて複数の第2制御コマンドをスリップリング104を介して動作制御回路130に送信してもよい。動作制御回路130は、例えば、20msecの周期で制御コマンドを生成し、LEDドライバ122を介してLED120による発光を制御する。よって、外部制御回路30は、LED120を制御する1つの制御コマンドを、最大で40個に分割して、分割された制御コマンドを40個の制御信号に分けて動作制御回路130に送信してもよい。動作制御回路130は、40個分の制御信号の中からそれぞれ第2制御コマンドを抽出し、抽出されたそれぞれの第2制御コマンドを組み合わせてLED120を制御する1つの制御コマンドを生成してもよい。
また、外部制御回路30は、複数の第1制御コマンドのうち一の第1制御コマンドと他の一の第1制御コマンドとの間に、第2制御コマンドが送信されるように、制御信号を生成し、生成された制御信号をスリップリング104を介して動作制御回路130に送信してもよい。
さらに、外部制御回路30は、データ信号をスリップリング104を介して受信し、受信したデータ信号の中に同一の位置データが複数あれば、位置データに従った同一の新たな第1制御コマンドを複数含む新たな制御信号を主制御部20からの指示に従って生成し、新たな制御信号を送信してもよい。
図4は、外部制御回路30から動作制御回路130に送信される制御信号200の一例を示す。
制御信号200は、同一の複数の第1制御コマンド210と、第2制御コマンド220とを含む。制御信号200は、複数の第2制御コマンド220を含んでもよい。第1制御コマンド210は、スタートコード(モータ)212、データ(1)214、データ(2)216、およびエンドコード218を含む。スタートコード(モータ)212、データ(1)214、データ(2)216、およびエンドコード218は、例えば、それぞれ1バイトのデータである。スタートコード(モータ)212は、モータ110の制御コマンドの開始を示す。データ(1)214およびデータ(2)216は、モータ110を制御するための制御コマンドの内容を示す。エンドコード218は、モータ110の制御コマンドの終了を示す。
第2制御コマンド220は、スタートコード(LED)221、有効データ数222、データ(1)223、データ(2)224、データ(3)225、データ(4)226、データ(5)227、データ(6)228、およびデータ(7)229を含む。スタートコード(LED)221、有効データ数222、データ(1)223、データ(2)224、データ(3)225、データ(4)226、データ(5)227、データ(6)228、およびデータ(7)229は、例えば、それぞれ1バイトのデータである。
スタートコード(LED)221は、LED120の制御コマンドの開始を示す。有効データ数222は、第2制御コマンド220に含まる制御コマンドの数を示す。データ(1)223、データ(2)224、データ(3)225、データ(4)226、データ(5)227、データ(6)228、およびデータ(7)229は、それぞれLED120の制御コマンドを示す。
動作制御回路130は、予め定められた数の制御信号のそれぞれに含まれる第2制御コマンド内のデータ(1)223、データ(2)224、データ(3)225、データ(4)226、データ(5)227、データ(6)228、およびデータ(7)229を組み合わせて、LED120を制御するための1つの制御コマンドを生成する。
制御信号200は、第1制御コマンド210のうちの1つの第1制御コマンド210と、残りの複数の第1制御コマンド210との間に第2制御コマンド220を含む。これにより、外部制御回路30は、1つの第1制御コマンド210を送信したことに続いて、1つの第2制御コマンド220を送信した後、残りの複数の第1制御コマンド210を送信する。よって、動作制御回路130は、1つの第1制御コマンド210を受信してから、ある程度の時間を経過後に、残りの複数の第1制御コマンド210を受信できる。
上記の通り、ブラシ50とスリップリング104との間の接点不良は、スリップリング104の溶接部分などの特定の一部分である場合がある。したがって、動作制御回路130は、複数の第1制御コマンド210を受信するタイミングをずらすことで、それぞれの第1制御コマンド210を受信できる確率が向上する。よって、動作制御回路130は、接点不良がある場合でも、1つの制御信号の中から同一の第1制御コマンドを複数受信できる確率が向上する。動作制御回路130が、外部制御回路30から送信された制御信号に含まれる第1制御コマンドに従って、LEDドライバ122を介してモータ110を正常に制御できる確率が向上する。
なお、制御信号には一つの第2制御コマンド220しか含まれないので、動作制御回路130が第2制御コマンド220を正常に受信できる確率は、第1制御コマンド210を正常に受信できる確率よりも低い。第2制御コマンド220を正常に受信できなかった場合、LED120の発光が予定通りに実行されず、演出効果が低減する可能性はある。しかし、LED120の発光が予定通りに実行されなくても、遊技機10に物理的な異常が発生する可能性は少ない。一方、モータ110の異常制御に伴い可動体112が異常制御された場合、例えば、回転体102が回転できない位置に可動体112が存在するときに、回転体102の回転制御が行われるなどの異常制御により、遊技機10に物理的な異常が発生する可能性がある。そこで、第2制御コマンド220よりも第1制御コマンド210を正常に受信できる確率を向上させることで、接点不良に伴い発生する物理的な異常の発生を抑制できる。
図5は、動作制御回路130が外部制御回路30に送信するデータ信号300の一例を示す。データ信号300は、同一の複数の位置データ310を含む。位置データ310は、スタートコード(センサ)312、データ(1)314、およびエンドコード316を含む。スタートコード(センサ)312、データ(1)314、およびエンドコード316は、例えば、それぞれ1バイトのデータである。スタートコード(センサ)312は、位置センサ114により検知された可動体112の位置を示す位置データの開始を示す。データ(1)314は、位置データの内容を示す。エンドコード316は、位置データの終了を示す。
外部制御回路30は、動作制御回路130からスリップリング104を介して受信したデータ信号300の中に同一の位置データ310が複数あれば、位置データ310に従った同一の新たな第1制御コマンドを複数含む新たな制御信号を生成し、新たな制御信号を動作制御回路130にスリップリング104を介して送信する。これにより、接点不良が発生していても、外部制御回路30が、位置データ310を正常に受信できる確率が向上する。2以上の位置データが一致することを確認できた場合のみ、外部制御回路30は、受信した位置データを利用する。したがって、エラーを含む位置データが利用されることにより、回転構造体100が正常に制御されなくなることを防止できる。
図6は、外部制御回路30が制御信号を送信する手順の一例を示すフローチャートである。図7は、外部制御回路30が制御信号を送信する場合に用いる送信バッファに格納される内容について説明するための図である。
外部制御回路30は、予め定められた周期、例えば、500μsec毎に、主制御部20からモータ110を制御するための第1制御コマンドを生成するためのモータ制御データのラッチ読み出し指示を受信する(S100)。外部制御回路30は、LED120による発光を制御するための第2制御コマンドを生成するためのLEDデータを主制御部20からすでに受信済みか否かを判定する(S102)。
LEDデータをすでに受信済みであれば、外部制御回路30は、LEDデータをメモリから読み出し、LEDデータの受信データサイズをメモリにセットする。さらに、外部制御回路30は、受信データリードポインタをクリアする(S104)。
次いで、あるいは、LEDデータを受信していない場合、外部制御回路30は、モータ制御データに基づいて、メモリに割り当てられたバッファ[0]およびバッファ[1]に第1制御コマンドとして、データ(1)およびデータ(2)を設定する。また、外部制御回路30は、バッファ[2]にモータのエンドコードを設定する。さらに、外部制御回路30は、送信バッファ[12]から送信バッファ[27]に、スタートコード(モータ)、データ(1)、データ(2)およびモータのエンドコードを設定する。
加えて、外部制御回路30は、送信バッファ[3]にLEDデータのスタートコードを設定する(S110)。そして、外部制御回路30は、LEDデータを受信している場合であって、まだ送信バッファに設定が完了していないLEDデータがあるか否かを判定する(S112)。なお、LEDデータは、複数に分割され、複数の制御信号を用いて送信される。送信バッファに設定が完了していないLEDデータがある場合には、送信バッファ[5]から送信バッファ[11]まで順にLEDデータを設定する(S114)。つまり、LED120を制御する1つの制御コマンドから分割された複数のデータを順に、送信バッファ[5]から送信バッファ[11]に設定していく。
LEDデータの設定が完了すると、外部制御回路30は、送信バッファ[5]から送信バッファ[11]のうちデータが設定された送信バッファの数に応じたLEDデータサイズを送信バッファ[4]に設定する(S116)。これにより、各送信バッファのデータの設定が完了する。
各送信バッファへのデータの設定が完了すると、外部制御回路30は、まず、モータデータのスタートコードを送信した後(S118)、各送信バッファに設定されたデータを送信バッファ[0]から順に送信バッファ[27]まで順次送信する(S120)。これにより、外部制御回路30は、図4に示すような1つの制御信号200を動作制御回路130に送信することができる。
図8は、動作制御回路130が制御信号を受信した場合の処理手順の一例を示すフローチャートである。
動作制御回路130は、制御信号を受信すると、受信した制御信号の受信データサイズをメモリに設定し(S200)、受信した制御信号を先頭から1バイトずつ確認すべく、カウンタを0に設定する(S202)。なお、カウンタは、動作制御回路130が、受信した制御信号のうち先頭から何バイトまでのデータを確認したかを示す指標である。
次いで、動作制御回路130は、カウンタが受信データサイズにより小さいか否かを判定する(S204)。カウンタが受信データサイズにより小さい場合、つまり、受信した制御信号の中身をすべて確認していない場合、動作制御回路130は、受信データ(制御信号)の中身を先頭から順番に確認していく。
動作制御回路130は、受信データにモータ110のスタートコード(モータ)、データ(1)、データ(2)およびエンドコードが設定されているか否かを確認する(S206)。受信データを先頭から1バイトずつ確認していくので、まず受信データの先頭にスタートコード(モータ)があれば、ステップS206の「Y」に進む。一方、受信データの先頭にスタートコード(モータ)がなければ、つまり、最初の第1制御コマンドを正常に受信できていなければ、ステップS206の「N」に進む。
第1制御コマンドを正常に受信できていれば、動作制御回路130は、第1制御コマンド内のモータデータ(データ(1)およびデータ(2))を配列バッファに格納し(S208)、モータチェックデータに1を足す(S210)。次いで、動作制御回路130は、モータチェックデータが1より大きいか否かを判定する(S212)。つまり、動作制御回路130は、受信データの中に受信できた第1制御コマンドが複数あるか否かを判定する。
第1制御コマンドが複数あれば、動作制御回路130は、配列バッファに格納されたデータが2個以上あるか否かを判定する(S214)。つまり、動作制御回路130は、受信データの中に正常に受信できた同一の第1制御コマンドが複数あるか否かを判定する。同一の第1制御コマンドが複数あれば、動作制御回路130は、第1制御コマンドを正常に受信できたと判断して、配列バッファに格納されたモータデータを確定する(S216)。そして、動作制御回路130は、受信した第1制御コマンドに従ってモータドライバ116を介してモータ110を制御する。
確認済みの受信データの中に第1制御コマンドが複数ない場合、または同一の第1制御コマンドが複数ない場合、動作制御回路130は、カウンタに1を足して(S218)、ステップS204に戻る。
なお、先頭の第1制御コマンドを正常に受信できた場合でも、その時点では、モータチェックデータは1なので、カウンタに1が足され、ステップS204に戻る。
ステップS206で「N」に進んだ場合、動作制御回路130は、受信データにLEDのスタートコードが設定されているか否かを判定する(S220)。LEDのスタートコードが設定されていれば、その後のデータには、LEDの制御コマンドを生成するためのLEDデータが続いているので、受信データから順にLEDデータを読み出してLEDデータを確定する(S222)。なお、LEDデータについては、エラーのチェックをしないので、動作制御回路130は、その後のデータにエラーが含まれる場合も、受信データにLEDのスタートコードが設定されていれば、LEDデータを確定する。さらに、動作制御回路130は、LEDデータ分だけカウンタを進める。つまり、動作制御回路130は、9個分だけカウンタを進め、受信データの次の部分(送信バッファ[12]に設定された部分のデータ)を確認する。
ステップS220における判定の結果、LEDのスタートコードが設定されていなければ、動作制御回路130は、カウンタに1を足して(S226)、ステップS206に戻る。動作制御回路130は、受信データの中身をすべて確認できるまで、上記の処理を繰返する。動作制御回路130は、正確に受信できた同一の第1制御コマンドが複数なくて、受信データの中身をすべて確認し終わった場合には、モータデータを確定せずに、今回の周期における処理を終了する。
以上の通り、動作制御回路130は、正確に受信できた同一の第1制御コマンドが複数あれば、第1制御コマンドに従ってモータ110を制御する。一方、動作制御回路130は、第2制御コマンドのスタートコードを一つ受信できれば、第2制御コマンドの内容にエラーがあるか否かにかかわらず、そのデータをLED120を制御するための制御コマンドの生成に用いてよい。
動作制御回路130は、外部制御回路30からスリップリング104を介して受信した制御信号の中に同一の第1制御コマンドが複数あれば、受信した第1制御コマンドに従ってモータ110を制御する。これにより、接点不良が発生していても、動作制御回路130が、第1制御コマンドを正常に受信できる確率が向上する。また、2以上の第1制御コマンドが一致することを確認できた場合のみ、動作制御回路130は、受信した第1制御コマンドを利用してモータ110を制御する。したがって、エラーを含む第1制御コマンドが利用されることにより、回転構造体100が正常に制御されなくなることを防止できる。
図9は、動作制御回路130がデータ信号を送信する手順の一例を示すフローチャートである。図10は、動作制御回路130がデータ信号を送信する場合に用いる送信バッファに格納される内容について説明するための図である。
位置センサ114は、例えば、可動体112が予め定められた位置に移動したことを検知したことに対応して検知信号をモータドライバ116に出力する。モータドライバ116は、検知信号に応じた位置データを動作制御回路130に出力する。動作制御回路130は、モータドライバ116から位置データを受信すると、センサデータとしてその位置データを読み出す(S300)。
次いで、動作制御回路130は、送信バッファ[0]および送信バッファ[1]に読み出したセンサデータと、位置センサ114のエンドコード(センサ)を設定する(S302)。さらに、動作制御回路130は、送信バッファ[2]から送信バッファ「13」に位置センサ114のスタートコード(センサ)、センサデータ、および位置センサ114のエンドコードを設定する。つまり、動作制御回路130は、送信バッファ[2]から送信バッファ「13」に同一の位置データを設定する。
各送信バッファへの設定が完了した後、動作制御回路130は、外部制御回路30から制御信号を受信していない期間に、位置センサ114のスタートコード(センサ)を送信した後(S306)、各送信バッファに設定されたデータを送信バッファ[0]から順に送信バッファ[13]まで順次送信する(S308)。これにより、動作制御回路130は、図5に示すような同一の位置データ310を含むデータ信号300を動作制御回路130に送信することができる。
図11は、外部制御回路30がデータ信号を受信した場合の処理手順の一例を示すフローチャートである。
外部制御回路30は、データ信号を動作制御回路130からスリップリング104を介して受信した場合、センサチェックデータを0にクリアする(S400)。外部制御回路30は、受信したデータ信号のサイズを示す受信データサイズをサイズ変数に設定する(S402)。
次いで、外部制御回路30は、受信データサイズが5(バイト)以下か否かを判定する(S404)。つまり、外部制御回路30は、受信したデータ信号の中に少なくとも2つの位置データを含むサイズのデータを受信したか否かを判定する。受信データサイズが5以下であれば、受信したデータには、少なくとも2つの位置データは含まれないので、処理を終了する。なお、位置データのデータサイズは、位置センサの数によって変わる。したがって、判定に用いられる受信データサイズは、「5」バイトとは限らず、位置データのデータサイズによって適宜変更される。
受信データサイズが5より大きければ、外部制御回路30は、受信したデータ信号を先頭から1バイトずつ確認すべく、カウンタを0に設定し(S406)、カウンタの値が受信データサイズより小さいか否かを判定する(S408)。なお、カウンタは、外部制御回路30が、受信したデータ信号のうち先頭から何バイトまでのデータを確認したかを示す指標である。
カウンタの値が受信データサイズより小さい場合には、受信したデータ信号のすべての中身を確認できていないので、外部制御回路30は、受信したデータ信号にスタートコードおよびエンドコードが設定されているか否かを判定する(S410)。外部制御回路30は、受信したデータ信号を先頭から1バイトずつ確認していき、1バイトのスタートコードを検出した後、さらにセンサデータに相当する1バイトを検出し、さらに1バイトのエンドコードを検出した場合には、外部制御回路30は、受信したデータ信号にスタートコードおよびエンドコードが設定されていると判定する。よって、外部制御回路30は、1バイトのスタートコードを検出した時点およびセンサデータに相当する1バイトを検出した時点では、1バイトのエンドコードをまだ検出していないので、外部制御回路30は、ステップS410において「N」に進み、カウンタにそれぞれ1を足した後に、ステップS408の処理を繰り返す。
スタートコードおよびエンドコードが設定されている場合、外部制御回路30は、スタートコードとエンドコードとの間のセンサデータを配列バッファに格納し(S412)、センサチェックデータに1を足す(S414)。次いで、外部制御回路30は、センサチェックデータが1より大きいか否かを判定する。つまり、外部制御回路30は、配列バッファに、2以上のセンサデータが配列バッファに格納されているか否かを判定する。
2以上のセンサデータが配列バッファに格納されていなければ、外部制御回路30は、カウンタに1を足して(S422)、ステップS408以降の処理を繰り返す。2以上のセンサデータが配列バッファに格納されていれば、外部制御回路30は、配列バッファに格納された2つ以上のセンサデータが一致するか否かを判定する(S418)。2つ以上のセンサデータが一致すれば、外部制御回路30は、正常のセンサデータを受信できたと判断して、配列バッファに格納されたセンサデータを、位置センサ114から提供された可動体112の位置を示す位置データとして、確定する(420)。外部制御回路30は、確定されたセンサデータを主制御部20に提供する。外部制御回路30は、主制御部20からセンサデータに応じた制御信号の送信の指示を受けて、制御信号を生成し、スリップリング104を介して動作制御回路130に制御信号を送信する。
以上の通り、外部制御回路30は、受信したデータ信号から同一の位置データを複数検出できた場合には、位置データを正常に受信できたと判断する。そして、外部制御回路30は、受信した位置データに従った同一の新たな第1制御コマンドを複数含む新たな制御信号を生成し、新たな制御信号を動作制御回路130にスリップリング104を介して送信する。
ブラシ50とスリップリング104との接点不良により外部制御回路30がデータ信号の一部を正しく受信できなかった場合でも、データ信号に含まれる同一の複数の位置データのうち、少なくとも2つの位置データを受信できていれば、正常に位置データを受信できたと判断する。データ信号には複数の同一の位置データが含まれるので、外部制御回路30が位置データを正常に受信できる確率が向上する。また、2以上の位置データが一致することを確認できた場合のみ、外部制御回路30は、受信した位置データを利用する。したがって、エラーを含む位置データが利用されることにより、回転構造体100が正常に制御されなくなることを防止できる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。