説明

サーボモータの制御方法

【課題】 模型用ロボットなどの移動体の動作に不具合が発生することを防止できるサーボモータの制御方法を提供する。
【解決手段】 本発明に係るサーボモータの制御方法は、模型用移動体を動かすために、制御部からサーボモータにPWM信号を送り、送られたPWM信号でサーボモータの出力軸を所望の位置まで回転させて模型用ロボットの動作を制御する。さらに、サーボモータに制御部からPWM信号を送った際に、サーボモータの出力軸が回転を開始するとともに、サーボモータから、サーボモータの出力軸の位置情報をPWM信号に変換して制御部に返送する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、模型用サーボモータをPWM信号(パルス幅変調制御)で制御するサーボモータの制御方法に係り、特に、模型用サーボモータの位置情報を認識することができるように改良したサーボモータの制御方法に関する。
【背景技術】
【0002】
従来より、サーボモータを制御する制御基板との間の通信方式をPWM信号で行なう制御方法が知られている(例えば、特許文献1参照。)。
【特許文献1】特開2003−153583号公報
【0003】
このサーボモータの制御方法で、模型用ロボットのサーボモータを制御する際には、制御部からサーボモータにPWM信号を伝え、伝えられたPWM信号でサーボモータの出力軸を所定のポジションまで回転させ、これにより所定のポジションに出力軸(回転軸)を留めおく。
【0004】
これにより、模型用ロボットの腕部や脚を所望の位置まで、移動させて、その位置に留めおくことが可能となる。
この制御を繰り返すことにより、模型用ロボットに所望の動作を行なわせることができる。
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、従来のサーボモータの制御方法では、サーボモータの位置情報を制御部で認識することができない。
このため、例えば、サーボモータの出力軸が、所望のポジションまで到達していなくても、サーボモータの出力軸が次のポジションまで移動するPWM信号を制御部からサーボモータに送ってしまう虞がある。
このような場合には、模型用ロボットの動作に不具合が生じることがあった。
【0006】
この発明は、模型用ロボットなどの移動体の動作に不具合が発生することを防止できるサーボモータの制御方法を提供して、上述した全ての問題点を解消しようとするものである。
【課題を解決するための手段】
【0007】
上記目的を達成するために、請求項1記載の発明は、模型用移動体を動かすために、制御部からサーボモータにPWM信号を送り、送ったPWM信号でサーボモータの出力軸を所望の位置まで回転させて模型用移動体の動作を制御するサーボモータの制御方法において、前記サーボモータに前記制御部からPWM信号を送った際に、前記サーボモータの出力軸が回転を開始するとともに、サーボモータから、サーボモータの出力軸の位置情報をPWM信号に変換して制御部に返送するようにしたことを特徴とする。
【0008】
サーボモータに制御部からPWM信号を送った際に、サーボモータの出力軸が回転を開始するとともに、サーボモータから、サーボモータの出力軸の位置情報を制御部に返送する。サーボモータの位置情報を制御部で認識することで、例えば、サーボモータの出力軸が、ターゲット位置まで到達していない状態で、次のターゲット位置に移動させるためのPWM信号を、サーボモータに送るという誤操作を防ぐことができる。
これにより、模型用ロボットなどの移動体の動作に不具合が生じることを防止できる。
【0009】
請求項2は、前記サーボモータから返送するPWM信号で、前記位置情報の他に、サーボモータ内の電圧情報、温度情報を制御部に送るようにしたことを特徴とする。
【0010】
サーボモータ内の電圧情報や温度情報を制御部で認識することができるので、万一、サーボモータ内の電圧や温度に異常が発生した場合には、サーボモータの動作を停止させるとか、アラームを発生させるなどの対応が可能になる。
【発明の効果】
【0011】
請求項1及び2に係る発明では、サーボモータの出力軸の位置情報を、サーボモータから制御部に返送することで、出力軸がターゲット位置に到達する前に、次のターゲット位置に移動させるためのPWM信号を送るという誤操作を防いで、模型用ロボットなどの移動体の動作に不具合が生じることを防止できるという利点がある。
【発明を実施するための最良の形態】
【0012】
以下添付図面に基づいて、本発明に係るサーボモータの制御方法の一実施の形態を詳説する。
図1は本発明に係るサーボモータの制御方法を適用した模型用ロボットを示す斜視図、図2は本発明に係るサーボモータの制御方法を実施するための制御部とサーボモータとの関係を示すブロック図、図3は本発明に係るサーボモータの制御方法を説明する図、図4は本発明に係るサーボモータの制御方法を説明するタイミングチャート、図5はサーボモータの出力軸と、ポテンションメーターとの関係を示す斜視図である。
【0013】
図1に示す模型用移動体としての模型用ロボット10は、左右の腕部11,12の関節12a,12b,12c(左腕部の関節は図示せず)、左脚部13の関節13a,13b,13c、右脚部14の関節14a,14b,14cなどにサーボモータを実装することで、一例として24個のサーボモータS1〜S24(図2参照)を備え、各々のサーボモータS1〜S24を制御する制御部(CPU)16を背後の収納ケース18内に備え、さらに収納ケース18内にはサーボモータS1〜S24や制御部16の電源(図示せず)を備えている。
【0014】
図2に示す制御部16は、制御基板(図示せず)に搭載されていて、この制御部16の入出力ポート20がサーボモータS1〜S24の入出力ポート21に抵抗22を介して接続されている。
制御部16は、サーボモータS1〜S24の各出力軸17を所望のターゲット位置まで回転させるためのPWM(パルス幅変調制御)信号を矢印aのように送ることができる。なお図5における、符号19は減速ギヤであり、符号29はひとつのサーボモータS1のなかの動力用のDCモータである。
【0015】
ここで、制御部16の入出力ポート20と、サーボモータS1〜S24の入出力ポート21との間に、抵抗22を直列に設けた理由を説明する。
すなわち、万一、何らかの弾みで、PWM信号の出力タイミングがずれて制御部16とサーボモータS1〜S24間の双方の入出力ポート20,21が出力状態になってしまうことが考えられる。
【0016】
この場合でも、制御部16の入出力ポート20とサーボモータS1〜S24の入出力ポート21との間に、抵抗22を直列に設けておくことで、入出力ポート20,21に過大電流が流れて、制御部16やサーボモータS1〜S24の構成素子が破壊されるのを防ぐことができる。
【0017】
サーボモータS1〜S24は、制御部16からPWM信号が送られた際に、出力軸17を所望のターゲット位置まで回転させるように作動するとともに、出力軸17の作動開始時に、現状の出力軸17の位置情報(現状位置情報)、電圧情報、温度情報などをPWM信号で矢印bのように返送することができる。
【0018】
サーボモータS1〜S24の中の制御回路には、サーボモータの出力軸17が所望の位置に回転したか否かを検出するためのポテンショメーター30が存在する。このポテンショメーター30の両端の端子31,32には安定な直流電圧がかけられており、中央の端子33からは出力軸17の位置に応じた電圧情報が出力される。
通常サーボモータでは、入力されたPWM信号の幅とこの電圧が一対一に対応しており、例えばPWM信号が0.5ミリ秒の時にポテンショメーター30の電圧が1Vであり、PWM信号が1ミリ秒の時に4Vであると決めておくと、入力されたPWM信号に対応した電圧情報がポテンショメーター30から出力されるようにサーボモータが制御され、その結果ポテンショメーター30に接続されている出力軸17が所望の位置に来るように回転する。
したがって、このポテンショメーター30から出力される電圧情報をPWM信号に置き換えて制御部16に返送すれば、現在の出力軸17の位置がサーボモータから受け取れることになる。
さらにサーボモータの内部温度(温度情報)を、PWM信号の幅に置き換えて制御部16に返送することで、同様にサーボモータの温度を知ることが可能となる。
【0019】
以下、模型用ロボット10(図1参照)に実装した24個のサーボモータS1〜S24を、制御部16から送ったPWM信号で制御する例について説明する。
24個すべてのサーボモータS1〜S24に位置情報を送るために必要とする時間は、制御部16から何個のサーボモータに同時にPWM信号を送れるかによって決まる。これは、制御部16の能力によって異なるが、本実施の形態では、制御部16から4個のサーボモータに同時にPWM信号が送れるものとして説明する。
【0020】
制御部16は、24個のサーボモータS1〜S24と、それぞれ個別に接続されるので、サーボモータS1〜S24に接続するための入出力ポート20を24個備えている。さらに、制御部16は、接続したサーボモータS1〜S24のうち、4個のサーボモータに同時にPWM信号を出力することができる。
【0021】
サーボモータS1〜S24のうちから、4個のサーボモータを選択して、選択した4個のサーボモータに制御部16からPWM信号を出力することを6回繰り返すことで、24個すべてのサーボモータS1〜S24にPWM信号を送ることができる。
【0022】
24個すべてのサーボモータS1〜S24にPWM信号が出力される時間は、経験的に20ミリ秒であることが好ましい。
このため、例えば、制御部16からPWM信号を出力するサーボモータをS1〜S4の4個とすると、図3に示すように、4個のサーボモータS1〜S4の通信に割り当てることができる時間は、20ミリ秒を6で割った値、すなわち3.3ミリ秒となる。
【0023】
そして、例えば、1個のサーボモータS1に制御部16から送るPWM信号は、最大の幅を1ミリ秒程度とする。
また、1個のサーボモータS1から返送されるPWM信号のうち、位置情報のPWM信号を1ミリ秒として、電圧情報、温度情報のPWM信号を1つ当たり0.5ミリ秒とすれば、返送用のPWM信号の幅は2ミリ秒となる。
【0024】
このように、送り用のPWM信号を、最大幅1ミリ秒程度とし、返送用のPWM信号の幅を2ミリ秒とすることで、送り用のPWM信号と返送用のPWM信号を3.3ミリ秒以内に収められるようにしている。
【0025】
つぎに、本発明に係るサーボモータの制御方法を図4のタイミングチャートに基づいて説明する。
まず、制御部16から一定時間t1、サーボモータS1〜S24にPWM信号を送らない状態にしておく。この状態において、サーボモータS1〜S24は、制御部16から送られるPWM信号の入力待ちの状態になっている。
【0026】
つぎに、制御部16から、例えば、サーボモータS1を動かして留めおきたい第1ターゲット位置(ポジション)に対応する幅のPWM信号25を矢印a(図2参照)のように送る。このPWM信号25をサーボモータS1が受け取る。
PWM信号25を受け取ったサーボモータS1は、PWM信号25の指令に基づいて、留めおきたい第1ターゲット位置まで移動させられるように、出力軸17を回転させる。
【0027】
同時に、サーボモータS1は、PWM信号25を受け取った時点で、現在の出力軸17の第1現状位置に対応するPWM信号26を制御部16に矢印bのように返送する。
この時点では、制御部16から要求された第1ターゲット位置には、出力軸17はまだ到達していない。このため、第1ターゲット位置に到達する前に第1現状位置情報を、制御部16に送ることになる。
制御部16では、返送されたPWM信号の第1現状位置情報に基づいて、出力軸17の第1現状位置と、第1ターゲット位置との間隔を求める。
【0028】
この後、制御部16から一定時間t1、PWM信号をサーボモータS1に送らない状態で、サーボモータS1をPWM信号待ちにしておいて、制御部16から、先ほどと同様に、第1ターゲット位置に対応する幅のPWM信号25をサーボモータS1に送る。このPWM信号25をサーボモータS1が受け取る。
【0029】
サーボモータS1が、2回目のPWM信号25を受け取った時点で、受け取った時点の出力軸17の第2現状位置に対応するPWM信号27を、サーボモータS1が制御部16に矢印b(図2参照)のように返送する。
出力軸17の第2現状位置は、第1現状位置より、第1ターゲット位置に近づいているが、第1ターゲット位置には、出力軸17はまだ到達していない。
制御部16は、返送されたPWM信号27に基づいて、第2現状位置と、第1ターゲット位置との間隔を求める。
【0030】
この操作を繰り返して、現状位置と、第1ターゲット位置との間隔が0(ゼロ)になったとき、出力軸17が第1ターゲット位置に達したことを制御部16が認識する。
この後、制御部16からサーボモータS1に、次のターゲット位置、すなわち第2ターゲット位置に対応するPWM信号28を送る。
上述した操作手順を順次繰り返すことにより、図1に示す模型用ロボット10の左右の腕部11,12や、左右の脚部13,14を所望の状態に作動させる。
【0031】
以上説明したように、本発明に係るサーボモータの制御方法によれば、サーボモータS1〜S24に制御部16からPWM信号を送った際に、サーボモータS1〜S24の出力軸17が回転を開始するとともに、サーボモータS1〜S24からは、各サーボモータS1〜S24の出力軸17の現状位置情報を制御部に返送する。
【0032】
サーボモータS1〜S24の現状位置情報を制御部16で認識することで、サーボモータS1〜S24の出力軸17が、ターゲット位置まで到達していない状態で、サーボモータS1〜S24に次のターゲット位置用のPWM信号を送ってしまうという誤操作は防止される。
これにより、模型用ロボット10の左右の腕部11,12や、左右の脚部13,14などの移動体の動作に不具合が生じることは防止される。
【0033】
さらには、模型用ロボット10の現状の姿勢を常に正確に認識することができるので、例えば、模型用ロボット10の左右の腕部11,12や、左右の脚部13,14が何かに引っかかってしまったような場合でも、サーボモータS1〜S24を逆転させるなどして、引っかかった状態から外すことが可能になる。
【0034】
ここで、サーボモータS1〜S24から、現在の出力軸17の位置情報だけではなく、サーボモータS1〜S24内の電圧値(電圧情報)や、温度値(温度情報)をPWM信号に変換して返送することもできる。
これによれば、サーボモータS1〜S24内の電圧情報や温度情報を制御部で認識することができるので、万一、サーボモータS1〜S24内の電圧や温度に異常が発生したような場合には、サーボモータS1〜S24の動作を停止させるとか、アラームを発生させるなどの対応が可能になる。
【0035】
なお、前記実施の形態では、模型用移動体としての模型用ロボット10を例に説明したが、模型用移動体は模型用ロボット10に限られることはなく、例えば戦車などの砲台の回転制御など、あらゆる模型用移動体に適用することが可能である。
【0036】
また、前記実施の形態では、24個のサーボモータS1〜S24を制御する例について説明したが、このサーボモータS1〜S24の数は適宜選択することができることはいうまでもない。
【図面の簡単な説明】
【0037】
【図1】本発明に係るサーボモータの制御方法を適用した模型用ロボットを示す斜視図である。
【図2】本発明に係るサーボモータの制御方法を実施する制御部とサーボモータとの関係を示すブロック図である。
【図3】本発明に係るサーボモータの制御方法を説明する図である。
【図4】本発明に係るサーボモータの制御方法を説明するタイミングチャートである。
【図5】サーボモータの出力軸と、ポテンションメーターとの関係を示す斜視図である
【符号の説明】
【0038】
S1〜S24…サーボモータ
t1…一定時間
10…模型用ロボット(模型用移動体)
11,12…模型用ロボットの左右の腕部
13,14…模型用ロボットの左右の脚部
16…制御部
17…出力軸
18…収納ケース
19…減速ギヤ
20,21…入出力ポート
22…抵抗
25,26,27、28…PWM信号
29…DCモータ
30…ポテンションメーター
31、32…ポテンションメーターの両端の端子
33…ポテンションメーターの中央の端子


【特許請求の範囲】
【請求項1】
模型用移動体を動かすために、制御部からサーボモータにPWM信号を送り、送ったPWM信号でサーボモータの出力軸を所望の位置まで回転させて模型用移動体の動作を制御するサーボモータの制御方法において、
前記サーボモータに前記制御部からPWM信号を送った際に、前記サーボモータの出力軸が回転を開始するとともに、サーボモータから、サーボモータの出力軸の位置情報をPWM信号に変換して制御部に返送するようにしたことを特徴とするサーボモータの制御方法。
【請求項2】
前記サーボモータから返送するPWM信号で、前記位置情報の他に、サーボモータ内の電圧情報、温度情報を制御部に送るようにしたことを特徴とする請求項1記載のサーボモータの制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2006−60908(P2006−60908A)
【公開日】平成18年3月2日(2006.3.2)
【国際特許分類】
【出願番号】特願2004−239583(P2004−239583)
【出願日】平成16年8月19日(2004.8.19)
【出願人】(592226486)近藤科学株式会社 (7)
【Fターム(参考)】