以下、本発明の一つの実施形態に係る遊技機に搭載されるモータ制御装置を、図を参照しつつ説明する。このモータ制御装置は、例えば、回胴遊技機に実装され、回胴遊技機が有する、可動体の一例である回転リールを駆動する直流モータを制御する。そしてこのモータ制御装置は、上位制御装置から、直流モータを停止する制御コマンドを受信すると、回転中の直流モータを、指定された所要時間で停止させる。ただし、このモータ制御装置は、直流モータの回転速度と指定された所要時間に基づいて算出される、直流モータのブレーキ値が、直流モータが駆動する可動体を指定された位置で停止させることが可能なブレーキ値の上限値を超える場合、その上限値で直流モータを制動するとともに、その上限値でも可動体が指定された位置で停止するように、直流モータの制動を開始するタイミングを調整する。
図1は、本発明の一つの実施形態に係るモータ制御装置の概略構成図である。図1に示されるように、モータ制御装置1は、通信回路11と、レジスタ12と、制御回路13と、駆動信号生成回路14と、センサインターフェース回路15とを有する。
モータ制御装置1が有するこれらの各部は、それぞれ、別個の回路として回路基板(図示せず)上に実装されてもよく、あるいは、これらの各部が集積された集積回路として回路基板上に実装されてもよい。
モータ制御装置1は、上位制御装置から受信した制御コマンドに従って、直流モータ2を制御する。具体的には、モータ制御装置1は、その制御コマンドで指定された目標回転速度で直流モータ2を回転させる。本実施形態では、モータ制御装置1は、パルス幅変調(PWM)方式により生成され、直流モータ2に対する電力の供給のオン/オフを切り替える駆動信号を、直流モータ2へ電力供給するモータ駆動回路3へ出力することで、直流モータ2の回転速度を制御する。すなわち、駆動信号は、直流モータ2が生じる回転トルクの大きさに応じた値(本実施形態では、デューティ比)を持つ。駆動信号のデューティ比が大きいほど、直流モータ2へ供給される電力も増加し、直流モータ2が生じる回転トルクも大きくなり、その結果として、直流モータ2の回転速度も速くなる。そしてモータ制御装置1は、ロータリーエンコーダ4から、直流モータ2の回転軸(図示せず)が所定の角度回転する度に、その所定の角度回転したことを示す検知信号を受信して、その検知信号に基づいて直流モータ2の回転速度を算出する。そしてモータ制御装置1は、直流モータ2を停止させる制御コマンドを受信すると、その時点での直流モータ2の回転速度などに基づいて、指定された所要時間で直流モータ2を停止させるための駆動信号の値であるブレーキ値、直流モータ2にブレーキをかけ始めるブレーキ開始位置などを算出し、そのブレーキ値及びブレーキ開始位置に従って直流モータ2を停止させる。
図2は、モータ駆動回路3の回路図である。モータ駆動回路3は、4個のスイッチTR1〜TR4を有する。なお、各スイッチは、例えば、トランジスタまたは電界効果トランジスタとすることができる。このうち、二つのスイッチTR1及びTR3が、電源とグラウンドとの間に直列に接続される。同様に、二つのスイッチTR2及びTR4が、電源とグラウンドとの間に直列に接続される。そして直流モータ2の正極側端子は、スイッチTR1とTR3の間に接続され、一方、直流モータ2の負極側端子は、スイッチTR2とTR4の間に接続される。そして各スイッチTR1〜TR4のスイッチ端子(例えば、スイッチTR1〜TR4がトランジスタであれば、ベース端子に相当し、スイッチTR1〜TR4が電界効果トランジスタであれば、ゲート端子に相当)は、それぞれ、駆動信号生成回路14に接続される。そして駆動信号生成回路14からの駆動信号は、各スイッチTR1〜TR4のスイッチ端子に入力される。
図3は、各スイッチに印加される駆動信号と直流モータ2の回転方向との関係を表すテーブルの一例を示す図である。
テーブル300に示されるように、直流モータ2を正転させる場合、スイッチTR1のスイッチ端子とスイッチTR4のスイッチ端子とに、PWM方式に従って設定された、直流モータ2の回転速度に応じたパルス幅を持つ、周期的なパルスを含む駆動信号が印加される。一方、スイッチTR2のスイッチ端子及びスイッチTR3のスイッチ端子には駆動信号が印加されない。これにより、直流モータ2には、スイッチTR1とスイッチTR4とにパルスが印加されている間のみ、正極側端子に電源電圧が印加されるので、直流モータ2は、そのパルス幅に応じた速度で正転する。
なお、直流モータ2を正転させる場合、スイッチTR1とTR4のうちの何れか一方に駆動信号を印加し、他方を常時オンとしてもよい。
一方、直流モータ2を逆転させる場合、スイッチTR2のスイッチ端子とスイッチTR3のスイッチ端子とに、PWM方式に従って設定された、直流モータ2の回転速度に応じた周期的なパルスを持つ駆動信号が印加される。一方、スイッチTR1のスイッチ端子及びスイッチTR4のスイッチ端子には駆動信号が印加されない。これにより、直流モータ2には、スイッチTR2とスイッチTR3とにパルスが印加されている間のみ、負極側端子に電源電圧が印加されるので、直流モータ2は、そのパルス幅に応じた速度で逆転する。
なお、直流モータ2を逆転させる場合、スイッチTR2とTR3のうちの何れか一方に駆動信号を印加し、他方を常時オンとしてもよい。
本実施形態では、直流モータ2が正転しているときに直流モータ2にブレーキをかける場合には、駆動信号生成回路14は、直流モータ2を逆転させる駆動信号をモータ駆動回路3へ出力する。逆に、直流モータ2が逆転しているときに直流モータ2にブレーキをかける場合には、駆動信号生成回路14は、直流モータ2を正転させる駆動信号をモータ駆動回路3へ出力する。
また、直流モータ2の静止状態を維持する場合、スイッチTR3のスイッチ端子とスイッチTR4のスイッチ端子とがオンにされ、スイッチTR1のスイッチ端子とスイッチTR2のスイッチ端子とがオフにされる。
さらに、直流モータ2を駆動しない場合には、各スイッチのスイッチ端子はオフにされる。
ロータリーエンコーダ4は、回転角センサの一例であり、例えば、光学式のロータリーエンコーダとすることができる。そしてロータリーエンコーダ4は、例えば、直流モータ2の回転軸に取り付けられた、その回転軸を中心とする円周方向に沿って複数のスリットを有する円盤と、その円盤を挟んで対向するように配置された光源と受光素子とを有する。そして光源と受光素子との間に何れかのスリットが位置する度に、光源からの光が受光素子に達することで、ロータリーエンコーダ4は、パルス状の検知信号を出力する。これにより、ロータリーエンコーダ4は、直流モータ2が所定のサンプリング角度回転する度に検知信号を出力する。例えば、直流モータ2の回転軸を中心とする円周方向に沿って、円盤に50個のスリットが設けられることで、ロータリーエンコーダ4は、直流モータ2の回転軸が1回転する間に50個の検知信号を出力する。
以下、モータ制御装置1の各部について説明する。
通信回路11は、例えば、モータ制御装置1を上位制御装置と接続する。上位制御装置は、例えば、モータ制御装置1が実装された遊技機の主制御回路または演出用CPUである。そして通信回路11は、上位制御装置から、シリアル伝送される複数のビットを持つ制御コマンドを受信する。なお、通信回路11は、制御コマンドを解析するために、制御コマンドに含まれる複数のビットのそれぞれと同期を取るためのクロック信号も、上位制御装置から受信してもよい。
制御コマンドは、例えば、直流モータ2の回転開始あるいは停止の指示、直流モータ2の目標回転速度、あるいは、直流モータ2が回転している状態から停止するまでの所要時間といった、直流モータ2の動作を特定するための動作情報などを含む。なお、以下では、便宜上、直流モータ2が回転している状態において、直流モータ2にブレーキをかけ始めてから停止するまでの所要時間を単に停止所要時間と呼ぶ。
クロック信号は、例えば、制御コマンド中の所定数のビットごとに、矩形状のパルスを持つ信号とすることができる。
図4は、制御コマンドのフォーマットの一例を示す図である。図4に示されるように、動作情報を含む制御コマンド400は、先頭から順に、STARTフラグ401と、デバイスアドレス402と、回転停止フラグ403と、制御データ404と、ENDフラグ405とを有する。さらに、制御コマンド400は、隣接するフラグ、アドレス及びデータ間に、例えば'0'の値を持つ1ビットのスペーサを含んでもよい。
STARTフラグ401は、制御コマンド400の先頭であることを表すビット列であり、本実施形態では、'1'の値を持つ9個のビットが連続したビット列である。なお、STARTフラグ401は、制御コマンド400内の任意の他の何れのビット列とも一致しないビット列であればよい。
デバイスアドレス402は、制御コマンド400が制御対象とするモータ制御装置を特定するための識別情報であり、本実施形態では、8ビット長のビット列で表される。デバイスアドレス402は、通信回路11により、上位制御装置から別途受信する識別アドレスと一致するか否か判定され、一致する場合、モータ制御装置1が制御コマンド400の制御対象であると判定される。
回転停止フラグ403は、直流モータ2を回転させるか停止させるかを表す1ビットのフラグである。本実施形態では、回転停止フラグ403が'0'であれば、制御コマンドは直流モータ2の現在の状態にかかわらず、直流モータ2を回転させることを指示し、回転停止フラグ403が'1'であれば、制御コマンドは、直流モータ2を停止させることを指示する。
制御データ404は、モータ制御装置1が制御する直流モータ2の動作情報を含む。例えば、回転停止フラグが直流モータ2を回転させることを指示する値を有する場合、制御データ404は、直流モータ2の回転方向を表す回転方向フラグと、直流モータ2の目標回転速度を表す速度データとを含む。一方、回転停止フラグが直流モータ2を停止させることを指示する値を有する場合、制御データ404は、停止所要時間を表す停止所要時間データを含む。
回転方向フラグは、例えば、1ビットのフラグであり、回転方向フラグが'0'であれば、モータ制御装置1は、直流モータ2を正転させ、一方、回転方向フラグが'1'であれば、モータ制御装置1は、直流モータ2を逆転させる。
速度データは、例えば、4ビット長のビット列であり、'0'〜'15'の何れかの値となる。そして速度データの値と目標回転速度とは1対1に対応し、モータ制御装置1は、例えば、速度データの値と回転速度との対応関係を表す参照テーブルを参照することで、速度データの値に対応する目標回転速度を決定する。そしてモータ制御装置1は、その目標回転速度で直流モータ2を回転させる。例えば、速度データの値が大きいほど、目標回転速度も速くなる。
停止所要時間データは、例えば、4ビット長のビット列であり、'0'〜'15'の何れかの値となる。そして停止所要時間データの値と停止所要時間とは1対1に対応し、モータ制御装置1は、例えば、停止所要時間データの値と実際の停止所要時間との対応関係を表す参照テーブルを参照することで、停止所要時間データの値に対応する停止所要時間を決定する。そしてモータ制御装置1は、その停止所要時間で直流モータ2を停止させる。例えば、停止所要時間データの値が大きいほど、停止所要時間も長くなる。したがって、上位制御装置は、制御コマンドの停止所要時間データの値を変更することで、停止所要時間を調節できる。
ENDフラグ405は、制御コマンド400の終端であることを表すビット列である。ENDフラグ405は、制御コマンドに含まれる、STARTフラグ及び他のビット列と一致しないビット列であればよい。
なお、停止所要時間は、直流モータ2を停止させる制御コマンドとは別個に、モータ制御装置1へ予め通知されてもよい。例えば、上位制御装置からモータ制御装置1へ通知される、各種の設定情報を含む制御コマンドに、停止所要時間が含まれてもよい。この場合には、上位制御装置は、直流モータ2を停止させる度に停止所要時間を通知しなくても済むので、モータ制御装置1及び直流モータ2の制御が簡単化される。あるいは、停止所要時間は、モータ制御装置1が有するレジスタ12に予め記憶されていてもよい。
さらに、通信回路11は、モータ制御装置1が制御する直流モータ2について、レジスタ12に記憶されている制御コマンドが一つ実行されると、その制御セットが実行されたことを示す命令完了信号を上位制御装置へ出力してもよい。命令完了信号は、例えば、単パルス信号とすることができる。
レジスタ12は、通信回路11により書き込まれた、直流モータ2の制御コマンドに含まれる制御データ、及び、直流モータ2を回転または停止させるために必要な各種の情報を記憶する。そのために、レジスタ12は、例えば、揮発性の読み書き可能なメモリ回路と、不揮発性の読み出し専用のメモリ回路とを有する。
なお、レジスタ12は、制御コマンドに含まれる制御データが制御回路13により読み出されるとその制御データを消去してもよい。
制御回路13は、例えば、プロセッサ及び不揮発性のメモリ回路を有する。そして制御回路13は、レジスタ12から読み出した制御データを参照して、直流モータ2の回転方向を決定する。また制御回路13は、制御データ及びロータリーエンコーダ4からの検知信号に基づいて、駆動信号のデューティ比を決定する。そして制御回路13は、回転方向及びデューティ比を駆動信号生成回路14へ通知する。
駆動信号のデューティ比を決定するために、制御回路13は、メモリ回路に予め記憶されている、速度データの値とデューティ比との対応関係を表した速度テーブルを参照することにより、速度データに対応するデューティ比を、目標回転速度に対応するデューティ比とする。
また制御回路13は、モータ制御装置1が直流モータ2を停止させる制御コマンドを受信すると、指定された停止所要時間で直流モータ2を停止させる。ただし、制御回路13は、直流モータ2の回転速度と指定された停止所要時間とに基づいて算出される駆動信号のブレーキ値が、ブレーキ値の上限値を超えていると、駆動信号のブレーキ値をその上限値に設定する。なお、直流モータ2を停止させる処理の詳細については後述する。
駆動信号生成回路14は、例えば、出力するパルスの幅を変更可能な可変パルス生成回路と、可変パルス生成回路により生成された、駆動信号である周期的なパルス信号を、モータ駆動回路3の何れのスイッチへ出力するかを切り替えるスイッチ回路とを有する。そして駆動信号生成回路14は、制御回路13から通知されたデューティ比に従って、直流モータ2を駆動するための駆動信号をPWM方式に従って生成し、その駆動信号をモータ駆動回路3の何れかのスイッチへ出力する。なお、駆動信号の1周期の長さは、例えば、50μ秒である。例えば、制御回路13から通知された回転方向が正転である場合、駆動信号生成回路14は、モータ駆動回路3のスイッチTR1とTR4へ周期的なパルス信号を出力する。一方、制御回路13から通知された回転方向が逆転である場合、駆動信号生成回路14は、モータ駆動回路3のスイッチTR2とTR3へ周期的なパルス信号を出力する。
センサインターフェース回路15は、ロータリーエンコーダ4からの検知信号を受信するインターフェース回路を有する。そしてセンサインターフェース回路15は、検知信号を受信する度に、その検知信号を制御回路13へ出力する。
図5は、直流モータ2の停止処理に関する、制御回路13の機能ブロック図である。制御回路13は、速度計測部21と、デューティ比算出部22と、比較部23と、回転量算出部24と、ブレーキ開始位置決定部25と、ブレーキ開始判定部26とを有する。制御回路13が有するこれらの各部は、例えば、個別の演算回路として制御回路13に実装される。あるいは、制御回路13が有するこれらの各部は、制御回路上で実行されるプログラムによる機能モジュールであってもよい。
速度計測部21は、ロータリーエンコーダ4からの検知信号に基づいて、停止処理開始時の直流モータ2の回転速度(以下、便宜上、ブレーキ開始速度と呼ぶ)を計測する。例えば、速度計測部21は、停止処理が開始されると、一定期間中に受信した検知信号の数をカウントし、その検知信号の数に、ロータリーエンコーダ4のサンプリング角度を乗じて得られる回転量をその一定期間で除することでブレーキ開始速度を算出する。
速度計測部21は、算出したブレーキ開始速度をレジスタ12に保存する。
デューティ比算出部22は、ブレーキ値算出部の一例であり、停止所要時間及びブレーキ開始速度に基づいて、直流モータ2にブレーキをかける際の駆動信号のデューティ比を算出する。このデューティ比は、ブレーキ値の一例に相当し、デューティ比が高いほど、短時間で直流モータ2を停止することができる。以下では、デューティ比算出部22により算出される、ブレーキをかける際のデューティ比をブレーキ値と呼ぶ。
本実施形態では、デューティ比算出部22は、次式に従ってブレーキ値Vpwm1[%]を算出する。
ここで、Ktは、直流モータ2及び直流モータ2により駆動される可動体(例えば、回転リール)のトルク定数であり、Keは、直流モータ2の逆起電力定数である。Rmは、直流モータ2の巻線抵抗であり、Vmは、直流モータ2に印加される駆動電圧である。Kt、Ke、Rm、Vmのそれぞれの値は、予めレジスタ12に記憶される。また、Tltは、摩擦トルクであり、dθveは、直流モータ2にブレーキをかけ続けたときの逆転到達速度である。摩擦トルクTltは、例えば、モータ制御装置1が初期化動作を実行する際に、次式に従って算出され、レジスタ12に記憶される。
ここで、dθeは、初期化動作の際に一定のデューティ比で直流モータ2を駆動した場合において最終的に到達し、一定となる回転速度(最終速度)であり、初期化動作の際に、速度計測部21により測定される。
また、デューティ比算出部22は、逆転到達速度dθveを次式に従って算出する。
ここでdθbsは、ブレーキ開始速度である。またtdnは、停止所要時間である。そしてτは、時定数である。τは、初期化動作において最終到達速度dθeを計測する際に、直流モータ2が静止した状態から最終到達速度dθeの63%の回転速度に達するまでに要する時間として、初期化動作の際に測定され、レジスタ12に記憶される。
デューティ比算出部22は、算出したブレーキ値Vpwm1を比較部23へ通知する。
比較部23は、デューティ比算出部22により算出されたブレーキ値Vpwm1と、レジスタ12から読み出したブレーキ値の上限値Vpwm2[%]とを比較する。なお、ブレーキ値の上限値Vpwm2は、例えば、直流モータ2が駆動する可動体(例えば、回転リール)の回転速度によらずに、その可動体を意図した停止位置に停止させることができるブレーキ値の最大値であり、次式により算出される。
ここでTlbは、ブレーキトルクであり、直流モータ2が駆動する可動体に応じて予め設定される。そしてTlb及び(4)式により算出されたブレーキ値の上限値Vpwm2は、予めレジスタ12に保存される。
ブレーキ値Vpwm1がブレーキ値の上限値Vpwm2以下である場合、モータ制御装置1は、ブレーキ値Vpwm1に応じて直流モータ2にブレーキをかけても直流モータ2及び直流モータ2が駆動する可動体を指定された所要時間で停止できる。そこで比較部23は、ブレーキ値Vpwm1がブレーキ値の上限値Vpwm2以下である場合、ブレーキ値Vpwm1を、実際に直流モータ2にブレーキをかけるために使用するブレーキ値Vpwmとする。
一方、ブレーキ値Vpwm1がブレーキ値の上限値Vpwm2よりも高い場合、ブレーキ値Vpwm1に応じて直流モータ2にブレーキをかけると、直流モータ2及び直流モータ2が駆動する可動体が意図した停止位置で停止しない可能性がある。そこで比較部23は、ブレーキ値Vpwm1がブレーキ値の上限値Vpwm2よりも高い場合、ブレーキ値の上限値Vpwm2を、実際に直流モータ2にブレーキをかけるために使用するブレーキ値Vpwmとする。なお、以下では、このブレーキ値Vpwmを、便宜上、使用ブレーキ値と呼ぶ。
比較部23は、使用ブレーキ値Vpwmを回転量算出部24へ通知するとともに、回転量算出部24及びブレーキ開始位置決定部25を介してブレーキ開始判定部26へ通知する。
回転量算出部24は、使用ブレーキ値Vpwmに基づいて、直流モータ2にブレーキをかけ始めてから直流モータ2が停止するまでの期間における直流モータ2の回転角の総量(以下、便宜上、制動回転量と呼ぶ)を算出する。本実施形態では、回転量算出部24は、次式に従って制動回転量θdnを算出する。
回転量算出部24は、制動回転量θdnをブレーキ開始位置決定部25へ通知する。
ブレーキ開始位置決定部25は、直流モータ2にブレーキをかけ始めるタイミングであるブレーキ開始位置を、制動回転量θdnと直流モータ2が駆動する可動体の現在位置及び停止位置に基づいて決定する。
例えば、直流モータ2が駆動する可動体が回転リールであり、回転リールの表面がその回転方向に沿って複数の部分領域に分割され、部分領域ごとに一つの図柄が表されているとする。このような場合、回転リールに表された複数の図柄の何れかが所定の位置で停止することが要求される。したがって、そのように回転リールが停止するように、ブレーキ開始位置は設定される。
図6は、直流モータ2により駆動される可動体の一例である回転リールの停止位置と、制動回転量θdn及びブレーキ開始位置の関係の一例を示す図である。この例では、3個の回転リール601〜603のそれぞれには、その回転方向に沿って複数の図柄611が表されている。そして各回転リールは、同じ回転軸で回転している。なお、図6では、図柄611が上から下へ移動するように、各回転リールは回転するものとする。
各回転リールが停止する際には、各回転リールに共通する停止位置612にて、何れかの図柄が停止するよう、各回転リールは駆動される。したがって、例えば、右端の回転リール603の図柄611aが停止位置612に停止するためには、停止位置612から矢印613で示される制動回転量θdnに相当する回転量だけ前の位置(ブレーキ開始位置)614に図柄611aが達したタイミングでブレーキをかけ始めればよい。しかし、図6に示されるように、図柄611aの現在位置が、ブレーキ開始位置614よりも手前に位置していると、回転リール603は、図柄611aがブレーキ開始位置614に達するまで、現在の回転速度を維持したまま回転する(以下、このように、ブレーキ開始前に現在の回転速度を維持したまま回転することを空走すると呼ぶ)ことが求められる。例えば、図6では、矢印615で示される回転量だけ、回転リール603が空走することが求められる。
そこで、ブレーキ開始位置決定部25は、直流モータ2が駆動する可動体の停止位置から現在位置の差を算出し、その差から制動回転量を減じて得られる位置をブレーキ開始位置とする。
なお、可動体の現在位置は、例えば、可動体の初期位置に、直流モータ2が回転を開始してから現時点までの総回転量を加えることでもとめられる。あるいは、可動体が所定の位置に達したことを、近接センサ(図示せず)あるいは可動体に設けられたミラーにより反射された光を検知する光センサなどにより検知し、可動体がその所定の位置に達したとき(例えば、可動体が回転リールである場合、その回転リールに表れた特定の図柄が所定の位置となったとき)から現時点までの直流モータ2の総回転量によりもとめられる。なお、総回転量は、基準となる開始タイミング(上記の例では、直流モータ2の回転開始タイミングあるいは可動体が所定位置に達したタイミング)以降にロータリーエンコーダ4から受信した検知信号の総数により算出される。
また、可動体が、図6に示されるように、回転方向に沿って複数の図柄が表された回転リールである場合、停止位置は、回転方向における図柄の幅に応じて設定される。すなわち、何れかの図柄が停止位置612に位置するときが停止位置の候補となる。例えば、回転リールの回転方向に沿って、回転リールの表面が12個の領域に等分されており、各領域に一つの図柄が表されている場合、回転量(回転角)30°ごとに、停止位置の候補が存在する。そこで、ブレーキ開始位置決定部25は、可動体の現在位置に制動回転量を加えた位置から最も近い停止位置の候補を、実際の停止位置とすればよい。ただし、可動体の現在位置から実際の停止位置までの回転量が、制動回転量よりも多くなるように、実際の停止位置が設定されることが好ましい。なお、ブレーキ開始位置決定部25は、停止処理中の演算に要する時間についての余裕を確保するために、可動体の現在位置に制動回転量を加えた位置から最も近い停止位置の候補の次、またはさらにその次の停止位置の候補を、実際の停止位置としてもよい。
ブレーキ開始位置決定部25は、可動体の現在位置からブレーキ開始位置までの回転量を空走回転量とする。なお、算出されたブレーキ値Vpwm1が上限値Vpwm2を超える場合、ブレーキ値Vpwm1を仮に使用ブレーキ値として算出した制動回転量は、上限値Vpwm2に基づく制動回転量よりも短くなる。すなわち、ブレーキ値Vpwm1に基づいて算出される空走回転量よりも、使用ブレーキ値に基づいて算出される空走回転量の方が短くなる。その結果として、直流モータ2にブレーキがかけられる期間が停止所要時間よりも長くなる。
ブレーキ開始位置決定部25は、空走回転量をブレーキ開始判定部26へ通知する。
ブレーキ開始判定部26は、停止部の一例であり、可動体の現在位置からの直流モータ2の回転量を、ロータリーエンコーダ4から受信した検知信号の数により求め、その回転量を空走回転量と比較する。そしてブレーキ開始判定部26は、その回転量が空走回転量に達すると、駆動信号生成回路14に、現在の回転方向と逆向きの回転で、かつ、使用ブレーキ値Vpwmに相当するデューティ比を持つ駆動信号の出力を開始させる。そしてブレーキ開始判定部26は、駆動信号生成回路14に、指定された停止所要時間にわたってその駆動信号の出力を継続させることで、直流モータ2及び直流モータ2が駆動する可動体を停止させる。
なお、指定された停止所要時間が経過し、直流モータ2の回転速度がゼロとなると、制御回路13は、駆動信号生成回路14に、直流モータ2が静止状態を維持する駆動信号を出力させてもよい。
図7は、可動体の位置の時間変化と、直流モータ2の回転速度及び駆動信号の時間変化との関係の一例を表すタイミングチャートである。図7の一番上のチャートでは、横軸は可動体の位置を表し、図7の上から2番目以下のチャートでは、横軸は時間を表す。そして上から2番目のチャートに示された折れ線701は、ブレーキ開始速度と指定された停止所要時間に基づいて算出されたブレーキ値Vpwm1がブレーキ値の上限値Vpwm2以下の場合(すなわち、Vpwm=Vpwm1)における、直流モータ2の回転速度の時間変化を表す。また、上から3番目のチャートに示された折れ線702は、Vpwm=Vpwm1の場合における、駆動信号生成回路14から出力される駆動信号のデューティ比の時間変化を表す。
可動体の現在位置及び対応する時刻t1からブレーキ開始位置及び対応する時刻t2までは、折れ線701に示されるように、直流モータ2は、ブレーキ開始前の一定の回転速度(ブレーキ開始速度)で回転を継続する。また時刻t1から時刻t2までの間、折れ線702に示されるように、その回転速度に対応するデューティ比を持つ駆動信号が出力される。
可動体がブレーキ開始位置に達した時刻t2以降、算出されたブレーキ値Vpwm1に相当するデューティ比を持ち、逆回転となる駆動信号が出力される。そのため、時刻t2以降、直流モータ2の回転速度は低下し、時刻t2から指定された停止所要時間が経過した時刻t5において、直流モータ2の回転速度はゼロとなる。
一方、下から2番目のチャートに示される実線の折れ線703は、ブレーキ開始速度と指定された停止所要時間に基づいて算出されたブレーキ値Vpwm1がブレーキ値の上限値Vpwm2を超える場合(すなわち、Vpwm=Vpwm2)における、直流モータ2の回転速度の時間変化を表す。また、一番下のチャートに示された折れ線704は、Vpwm=Vpwm2の場合における、駆動信号生成回路14から出力される駆動信号のデューティ比の時間変化を表す。
この場合、もし仮に、算出されたブレーキ値Vpwm1に基づいて直流モータ2にブレーキがかけられるとすれば、時刻t4から時刻t5までの短期間で直流モータ2を停止させることとなり、下から2番目のチャートに示される点線の折れ線713で示されるように、直流モータ2の回転速度の変化が非常に急激となる。そのため、直流モータ2及び可動体が停止位置で停止しない可能性がある。そこで、折れ線704に示されるように、直流モータ2及び可動体が停止位置に正確に停止可能なように、可動体が停止位置からブレーキ値の上限値Vpwm2に相当するブレーキ距離だけ前の位置に達した時刻t3以降、その上限値Vpwm2に相当するデューティ比を持ち、逆回転となる駆動信号が出力される。そのため、折れ線703に示されるように、時刻t3以降、直流モータ2の回転速度は低下し、時刻t3から指定された停止所要時間が経過した時刻t5において、直流モータ2の回転速度はゼロとなる。そして停止位置にて可動体が停止する。
図8は、モータ制御装置1により実行される停止処理の動作フローチャートである。この停止処理は、モータ制御装置1が上位制御装置から、直流モータ2の回転を停止させる制御コマンドを受け取る度に実行される。
速度計測部21は、ロータリーエンコーダ4からの検知信号に基づいて、ブレーキ開始速度を計測する(ステップS101)。また、デューティ比算出部22は、指定された停止所要時間及びブレーキ開始速度に基づいてブレーキ値Vpwm1を算出する(ステップS102)。
比較部23は、算出したブレーキ値Vpwm1が、ブレーキ値の上限値Vpwm2以下か否か判定する(ステップS103)。算出したブレーキ値Vpwm1が上限値Vpwm2以下であれば(ステップS103−Yes)、比較部23は、算出したブレーキ値Vpwm1を使用ブレーキ値Vpwmに設定する(ステップS104)。一方、算出したブレーキ値Vpwm1が上限値Vpwm2を超えていれば(ステップS103−No)、比較部23は、上限値Vpwm2を使用ブレーキ値Vpwmに設定する(ステップS105)。
ステップS104またはS105の後、回転量算出部24は、使用ブレーキ値Vpwmに基づいて制動回転量dθnを算出する(ステップS106)。
ブレーキ開始位置決定部25は、複数の停止位置の候補のなかから、現在位置から制動回転量dθnだけ直流モータ2を回転させた位置に最も近い候補を停止位置に設定する(ステップS107)。そしてブレーキ開始位置決定部25は、停止位置から現在位置を減じて得られる残回転量から制動回転量dθnを減じることでブレーキ開始位置を算出し、かつ、現在位置からブレーキ開始位置までの空走回転量を算出する(ステップS108)。
ブレーキ開始判定部26は、現在位置からの直流モータ2の回転量が空走回転量に達したか否か判定する(ステップS109)。その回転量が空走回転量に達していなければ(ステップS109−No)、ブレーキ開始判定部26は、ロータリーエンコーダ4から受信した検知信号に基づいてその回転量を更新する(ステップS110)。そしてブレーキ開始判定部26は、ステップS109以降の処理を繰り返す。
一方、回転量が空走回転量に達していれば(ステップS109−Yes)、ブレーキ開始判定部26は、少なくとも、指定された停止所要時間にわたって、駆動信号生成回路14に、それまでの直流モータ2の回転方向とは逆向き、かつ、使用ブレーキ値Vpwmに相当するデューティ比を持つ駆動信号を直流モータ2を駆動するモータ駆動回路3へ出力させる(ステップS111)。そして制御回路13は、停止処理を終了する。
以上に説明してきたように、このモータ制御装置は、直流モータの回転速度に応じて、指定された停止所要時間で直流モータを停止させるためのブレーキ値を算出する。そしてこのモータ制御装置は、算出したブレーキ値が、直流モータが駆動する可動体が意図した停止位置で停止可能なブレーキ値の上限値を超えていれば、その上限値を使用するブレーキ値として直流モータを停止させる。その際、このモータ制御装置は、使用するブレーキ値及び意図した停止位置に応じて、ブレーキ開始位置を設定する。そのため、このモータ制御装置は、ブレーキがかけられる直前の直流モータの回転速度によらず、直流モータ及び直流モータが駆動する可動体を意図した停止位置にて停止できる。さらに、このモータ制御装置は、算出したブレーキ値がその上限値以下であれば、算出したブレーキ値を使用して直流モータを停止させるので、指定された停止所要時間で、直流モータを回転している状態から停止させることができる。その結果として、このモータ制御装置は、直流モータ及び可動体が停止するまでに要する時間が長くなることで、可動体、特に回転リールが緩慢な動作をすると遊技者が感じることを抑制できる。
なお、変形例によれば、直流モータが駆動する可動体に関して、任意の位置に停止位置を設定可能な場合には、ブレーキ開始判定部26は、使用ブレーキ値が決定されると、駆動信号生成回路14にその使用ブレーキ値に相当するデューティ比を持つ駆動信号の出力を直ちに開始させてもよい。この場合には、回転量算出部24及びブレーキ開始位置決定部25は省略されてもよい。
また他の変形例によれば、ブレーキ開始速度と停止所要時間に基づいて算出されたブレーキ値Vpwm1がブレーキ値の上限値Vpwm2を超える場合、ブレーキ開始判定部26は、その上限値Vpwm2を持つ使用ブレーキ値に相当するデューティ比を持つ駆動信号が停止所要時間にわたって出力されることにより直流モータ2が停止することが可能な回転速度(以下、限界速度と呼ぶ)となるまで、直流モータ2を事前に減速するよう、駆動信号生成回路14を制御してもよい。すなわち、ブレーキ開始判定部26は、駆動信号生成回路14から出力される駆動信号のデューティ比を、ブレーキ開始位置に達するまでに、限界速度に対応するデューティ比となるように、徐々に低下させてもよい。なお、限界速度に対応するデューティ比は、例えば、レジスタ12に予め記憶されていればよい。直流モータ2の回転速度が非常に速く、これに伴って可動体の回転速度あるいは移動速度も非常に速い場合には、直流モータ2の回転速度が若干低下しても、遊技者が気付き難い。そのため、この変形例のように、直流モータ2にブレーキをかけ始める前に、事前に直流モータ2の回転速度を低下させることで、このモータ制御装置は、遊技者には、直流モータ2が元の回転速度で回転している状態から指定された停止所要時間で停止したように見せることができる。なお、この場合には、ブレーキ開始速度の代わりに限界速度を用いて制動回転量及びブレーキ開始位置が算出されることが好ましい。
さらに他の変形例によれば、モータ駆動回路3は、パルス高さ変調により、直流モータ2を駆動する方式の回路であってもよい。この場合には、制御回路13は、目標回転速度あるいはブレーキ値に応じたパルス高さを持つ電圧が直流モータ2に印加されるように、駆動信号生成回路14に、そのパルス高さを指定する駆動信号を生成させればよい。
上記の実施形態または変形例によるモータ制御装置は、弾球遊技機または回胴遊技機といった遊技機に搭載されてもよい。
図9は、上記の実施形態または変形例によるモータ制御装置を備えた回胴遊技機100の概略斜視図である。また図10は、回胴遊技機100の概略内部構成図である。図9に示すように、回胴遊技機100は、遊技機本体である本体筐体101と、ドラムユニット102と、スタートレバー103と、ストップボタン104a〜104cとを有する。
さらに、回胴遊技機100は、本体筐体101内に、回胴遊技機100の各部を制御する制御回路110、及び、ドラムユニット102が有する3個の回転リール102a〜102cを駆動する3個のモータ制御装置111−1〜111−3を有する。なお、モータ制御装置111−1〜111−3は、上記の実施形態または変形例によるモータ制御装置とすることができる。さらに、回胴遊技機100は、回胴遊技機100の各部に電力を供給する電源回路(図示せず)及び制御回路からの制御信号に応じてメダルを一時貯留し、かつメダルを排出するためのメダル貯留及び排出機構(図示せず)を有する。
本体筐体101の前面の中央上部には開口105aが形成されており、その開口105aを通じて、ドラムユニット102の一部が視認可能になっている。また開口105aの下側の枠105bの上面には、メダルを投入するためのメダル投入口105cが形成されている。
ドラムユニット102は、3個の回転リール102a〜102cを有する。回転リール102a〜102cは、それぞれ、本体筐体101の前面に対して略平行かつ略水平な回転軸(図示せず)を回転中心として、それぞれ、別個に回転可能となっている。回転リール102a〜102cの表面は、それぞれ、回転方向に沿って複数の略同一幅を持つ領域に区切られ、領域ごとに様々な図柄が描かれており、それら図柄のうちの一部が開口105aを介して遊技者に視認可能となっている。さらに、回転リール102a〜102cは、それぞれ、直流モータ(図示せず)及びモータ駆動回路(図示せず)を内蔵し、対応するモータ制御装置111−1〜111−3から出力される駆動信号に応じて直流モータが回転することで、その回転リールも回転する。
スタートレバー103は、本体筐体101の枠105bの前面に向かって左側に設けられている。また、枠122の前面略中央には、ストップボタン104a〜104cが設けられている。ストップボタン104a〜104cは、それぞれ、回転リール102a〜102cに対応する。
本体筐体101の前面の下部には、メダルを排出するためのメダル排出口105dが形成されている。そしてメダル排出口105dの下方には、排出されたメダルが落下することを防止するためのメダル受け皿105eが取り付けられている。
メダルがメダル投入口105cに投入された後に、スタートレバー103が操作されると、スタートレバー103が操作されたことを示す信号が制御回路110へ伝達される。そして制御回路110は、モータ制御装置111−1〜111−3へ、対応する直流モータを回転させる制御コマンドを送信する。そしてモータ制御装置111−1〜111−3は、回転リール102a〜102cの回転を開始させる。
その後、本体筐体101の枠105bの前面略中央に設けられたストップボタン104a〜104cの何れかが押下されると、制御回路110は、その押下されたボタンから押下されたことを示す信号を受信し、その押下されたボタンに対応する回転リールの回転を停止させる。あるいは、制御回路110は、回転リール102a〜102cのうち、回転を開始してから所定期間が経過するまでに、対応するストップボタンが押下されなかった回転リールを、その所定期間経過後に停止させる。その際、制御回路110は、モータ制御装置111−1〜111−3のうち、回転を停止させる回転リールに対応するモータ制御装置へ、その回転リールを駆動する直流モータを停止させる制御コマンドを送信する。そしてその制御コマンドを受信したモータ制御装置は、制御コマンドで指定された停止所要時間にて、対応する直流モータを停止させ、それに伴い、回転リールを何れかの図柄を所定の停止位置に停止させる。
そして全ての回転リールが停止した時点で、同一の図柄が全ての回転リールにわたって一列に並んでいると、制御回路110は、その図柄に応じた所定枚数のメダルをメダル排出口105dを通じて排出する。
このように、当業者は、本発明の範囲内で、実施される形態に合わせて様々な変更を行うことができる。