更新日時 2007年05月01日

スピコン編

 レスキューロボコンテスト(略してレスコン)用にRCスピードコントローラ、通称スピコンの制作を行いました。


スピコンとは

 まずはじめに、スピコンについて説明します。言葉で説明するのは難しいので絵で示します。RCの簡単な系統図を下記に示します。

RCの系統図

 プロポからの信号は受信機により復調され受信機の各出力端子から出力されます。出力端子はRC信号・電池電源・GNDの三本の組み合わせからなっており、そこに接続したRCサーボ(回転角のコントロールが可能)やスピコンに信号を供給します。
 なぜスピコンが必要かは次の二つの理由があります。
  • RC端子からときに数十Aになるモータを回すほどの電流が供給できない
  • そもそもRC信号をそのままモータにつないだところで意味がない
 そのためスピコンというモータドライバが必要になります。

 現在市販されているスピコンは様々なものが出ているようです。数100Aを流す事の出来るものもあればPWM信号の周波数をコントロールできる装置もあるようで、様々です。
 しかしながら、市販のスピコンは極めて高いです。例えばモータ一つ回すのに一つのスピコンが必要になるわけで最低価格のものですら、一つ4000円。仮に4つのモータを使うロボットを3台用意しようと思ったらそれだけで5万近い出費となるわけですね。そこで、今回はスピコンを自作してみました。基板はプリント基板を自作する事で量産しています。

2chスピコンの仕様

 これを作成する以前、他のHPに載っていた自作スピコンの回路とプログラムをそのまま使わせて頂いたんですが、まさしくRC用で一つのバッテリーからパラのスピコンを動かそうとすると電圧降下やノイズなどで動作が不安定となり、ロボット用途では全く使えませんでした。また、プロポのレバーをはじいた場合、これも瞬間的に電圧降下が起きプリント基板のパターンや回路の部品がお亡くなりになりました。
 そこで、ロボットを動かしても安定して動作するスピコンの仕様を決めました。仕様を次に示します。
  • 低価格
  • 小型
  • フォトカプラでモータ側と回路側を絶縁。
  • プロポレバーの急激な操作によるダメージを軽減
  • 正転逆転切り替わり時に時間をおくことで回路の負担を低減
  • C言語でのプログラムであるため、改良・付加機能を容易につけることが出来る
  • モータのブレーキ、フリーはプログラムで変更可
  • モータロックを考慮し定格は30A程度(ただし異常継続時には電源回路により電源断)
  • ±31段変速(プログラムで書き換え可)
  • 簡単に使える
  スピコンを複数台使用することを前提として信号側とモータ側をカプラで絶縁しました。これによりノイズを軽減しています。その他にもいくつか工夫を行うことにより誤動作による回路の損傷を防ぐようにしています。さらに小型化、配線の簡略化、低価格化を進めるために
  • 2ch対応(二つのモータの制御が可能)
  としました。

見積もりは
物品単価個数合計
プリント基板(50*75)
MOS-FET
PIC(16F84A)
フォトカプラ(4ch)
ICソケット
抵抗・コンデンサなど
タミヤのコネクタ
400
200
300
150
10
200
400
1
4
1
2
3
1
2
400
800
300
300
30
200
800
合計3030円
*コネクタは『信号伝達コネクタ(黒)1×3』と『信号伝達コネクタ用ピン』で代用できなくもないです。この場合、受信機に挿す事は困難なのでコネクタの角をヤスリで削る必要があります。また、コネクタピンは圧着ペンチで作った方が綺麗に出来ます。綺麗に出来ないと受信機やコネクタのプラスチックが折れます。コストの方は100円ですみ全体の合計金額は2330とさらに低コストになります。


カプラを省くことによりさらにいくらかコストを削減出来ますし、枚数作ればプリント基板も単価が250円程度まで下がります。頑張れば2000円で、モータ1個あたり1000円となり最安スピコンの1/4の価格で製作が可能な事が分かりました。
 姉妹品としてチャンネル数を仮想的に増やすためのリレーコントロール回路(従来RCサーボを用いていた)、ショートなどによる電圧降下時やレスコン仕様による緊急停止スイッチによる電源断を行う回路の設計も行いましたが、これはまた後半に。

受信機からのRC信号

 受信機から出力されるRC信号は次のようになります。 RC信号のパターン
図2 RC信号

 プロポのメーカによって次のパルスまでの時間や、中立状態のパルス幅(図では1.8ms)が変わります。パルスの変動幅は大体±0.2msで図の1Chの二つ目のパルス幅が変わっていますが、それに伴い2Ch目のパルスの出るタイミングも変わってきます。
 余談ですが、逆にPICでこのRC信号を作ればRCサーボを動かせます。ただ、パルスとパルスの間隔が短すぎると下手するとサーボが壊れます。また、RCサーボによってはパルス幅を0.2〜2.0msと変化させる事にで0〜180°動かす事が出来るものもあるようです。

回路図

 回路を作成する上で気を付けた事は
  • 小型化
  • プリント基板作る上でなるべくジャンパをとばさなくて済むように
  • カプラで絶縁
  • 貫通電流をソフトで防ぐ事により実装面積を減
  • ソフトでブレーキ・フリーが効くようHブリッジすべてのMOSを制御
です。作成した回路図を次に示します。
RC信号の入力部
図3 RC信号の入力部分

RC信号のPIC周り
図4 PIC周り

RC信号のHブリッジ
図5 Hブリッジ


 RC信号は各コネクターを通じてPICに入力されます。入力された信号のパルス幅をPICでカウントし、パルス幅の変動に基づいてHブリッジを駆動しモータを可変速で正逆転させます。電源は受信機側からの5Vとモータ駆動のためのRC電源の2系統になります。もしも受信機側の電圧が高い場合は何らかの方法で電圧を下げてやらないとPICが壊れます。必要に応じてホトカプラをはずしてもらってもかまいません。
 ホトカプラを通している分、どうしても波形の立ち上がりがモッサリとなってしまいます。高価なカプラを使ったり、バッファみたいなのでかっつり立ち上げた方がロスは少なくなりますが、実装面積が増えたり価格が上がってしまうという事で今回の目的とはずれてしまいますので今回は無視です。
 図は同じような部分を含むので省略して書いています。省略部分を次に上げます。
  • 図面上の下付の『x』はすべて共通です。1もしくは2が入ります。
  • 図3の信号の入力部分です。受信機に接続するコネクタは3ピンですが、Sig1は通常道理接続しますが、Sig2のコネクタは電源やグランドを接続しません。
  • 図5の黒で書いてある部分(モータを除く)はハーフブリッジを示しています。正逆転させる場合、これをもう片方作成してHブリッジにします。正転のみでよければ片方をグランドに接続します。
  • 品番を省略しています。
  • ヒューズは必須です。20A程度がよろしいのでは。
  • 実装面での注意になりますが必要に応じてヒートシンクを追加してください。
  • 太線部分は太い線で結線してください。

部品選定

 部品で選定が必要なものはFETとホトカプラです。
 FETについてですが、必要な項目は大電流が流せてかつ安くかつ低抵抗であることです。大電流についてですが、モータのロック電流の2倍程度を見ておいた方が無難です。また、理想はゲート容量が少ないものがいいのですが、PWMの周波数が比較的低いのでそれほど重要ではないです。
 カプラは少々高くても応答速度がいいものを選んだ方がいいです。データシートで応答時間に関して十分比較してみてください。

 去年はFETにK2936とJ604、TLP621を使用しました(秋月、千石で購入)。今年はFETにP55NFDとIRF4905を、カプラにはLTV-846を使ってみました。これらはdigi-keyで購入しました。
 これらの部品の購入方法ですが、秋月や共立エレショップでは入手性がよくスペックが載っているので探しやすいです。千石は秋月に比べると情報が少ないですが、種類は豊富です。また、degi-keyで探す手もあります。こちらは海外通販になりますが、4,5日で届くなど便利です。輸送費が高いのと銀行振り込みである必要があり若干不便ですが、非常に種類が豊富です。形状が違うものも多くあり注意して注文する必要があります(表面実装用に加工されたFETを間違えて30個ほど買ってしまった事が・・・)。
 

フローチャート

 プログラムのフローチャートは次のようになります。
  1. 安定するまで待ち
  2. パルス計測(4回分)
  3. 信号有無の判定&中央値設定
  4. パルス計測
  5. 過去4回分の平均値算出
  6. モータの回転方向制御
  7. モータのPWM値を設定
  8. 4に戻る
 PWMの値はTIMER0による割り込みで別に生成しています。

プログラム

 spi_p2.cスピコン用プログラムファイル(ハイサイド修正版)(一旦公開を中止します)

 おそらくこれで動作するかと思われますが、慎重に確認してください。複雑な事はやっているつもりはないので大丈夫だと思いますが、疑問点があれば掲示板やメールで確認してください。

PCBEの図面

 PCBEで作成した図面はありますが、それぞれの抵抗値や実装方法についての説明に手間がかかるので興味ある方はお問い合わせください。

完成写真

 こんな感じに完成します。

レスコンリレー

 ロボットを動かすためには多くのモータを駆動する必要があります。ですが、プロポでは6Chないし8Chが限界。
 これらの問題を解決するためには多くの場合、スピコンとモータの間に分配用のスイッチを置きスイッチをサーボで動かす手が多く用いられます。しかしながら、サーボも安くない。

 本段落では先ほどの回路とプログラムを少し変更するだけで、受信機に接続する事で出力を二つに分ける事の出来る回路を紹介します。このメリットは
  • 安い(1500円程度、サーボを使う方法だとサーボ代金だけで結構高額)
  • 切り替えが素早い
 回路は先ほどのPIC出力先をFETでなく、リレーに替えるだけです。PICも8Pin物で作れるのでさらに経済的となります。簡略な図面を次に示します。
リレーの回路図
図6 リレーの回路図(PICからの出力部分)

 受信機からの信号をPICで受け取り処理した結果を定番のリレー駆動回路です。ただ、製作に当たって問題となってくるのがリレーの選定です。c(切り替え)接点であることは必須です。負荷にもよりますが足回りモータを駆動するとなると最低10A程度は必要となってきます。大電流用のリレーは接点が大きくなりどうしても大きな駆動電力を必要とします。出来ることならリレー駆動用に別電源を用意した方が確実で安定するし電池の持ちも良くなるのですが、『簡単に使える=電力供給は受信機からの5Vのみ(差すだけ)』との基本方針があり駆動電圧5Vで動作するリレーを探しました。条件をクリアする物を探したところomronのG2R-1-Eシリーズが該当しました。
 このリレーのメリットは5Vで10Aが切り替えられるのですが、大きな問題点として消費電力が大きいために正常に作動しない可能性が出てきます。複数使うには受信機の電源供給能力を上げる必要があります。具体的には3端子レギュレータをスイッチングレギュレータに変更する方法があります。また、リレーは5V ですが、実際は3.5V前後で作動します。そこでダイオードを順方向に挟むことで電流値を下げるなど一工夫するといいと思われます(もっともこの方法は邪道なんですが)。 

2CH×2スピコン

 レスコンリレーではメカニカルリレーを用いて切り替えを行っていました。しかし、これにはいくらかの問題を抱えています。ここではHブリッジに一工夫をする事でモータを切り替えて使用できます。これは切り替え機能のための消費電力が極めて小さくなるのですが、ブレーキが使えません。また部品の入手性や部品の取り付けにかなり難があり(DIPタイプのICが手に入ればいいのですが)、こういった方法がある程度に考えて頂ければ幸いです。

TOPへ