戦車模型のラジコン化

    ■無線(ラジコン)化への改造

     10数年ぶりに童心に戻ってリモコン戦車で遊んでいたのですが、やはりリモコンというのはもう一つという気がしてきました。何しろ家の中を走らせようとすると戦車の後ろを付いて歩き回らねばなりません。また、リモコンのワイヤーが走行の邪魔になる時もあります。こんな悩みを解消すべく、無線化への改造に取り組むことにしました。

     無線化といえば、ラジコン送受信機にサーボモーターということになるのだと思いますが、残念なことにラジコンプロポなんか一台も持っていません。これを機会に購入すれば良いのでしょうが、今回の戦車の制御に必要なチャネル数は、最低でも4チャンネル、6チャンネルは欲しいところです。ラジコンの製品で安く手に入る6チャンネルのプロポのセットがあるとは思えません。

     今回は、無線送受信モジュールやPICマイコンを使って独自のラジコンシステムを製作することにしました。単純に今の4チャネルリモコンボックスのスィッチの状態をシリアルデータに変換し、無線送信モジュールで電波を変調し、受信モジュールで復調してデータを復元、スイッチ状態に応じてモーターの制御を行うというものです。モーター制御にはモーター駆動用ICを使います。

    1.部品を集める
      送信機ボックス
       4チャンネルリモコンボックスを流用することにします。リモコンのジョイステッィクがそのまま使えます。単1電池が納まるスペースに回路を組み込むことになります。

      無線送受信モジュール
       外国製の非常に小型の無線送受信モジュールを株式会社IPIよりネット通販にて入手しました。
        AM方式とFM方式があり、AM方式を注文したところ、品切れだということでしたので、少々高くなりますがFM方式のものを購入しました。9.6KHzまでのシリアルデータが送受信できます。  
      送信用

      FM-RTFQ1-315
      受信用

      FM-RRFQ1-315


      アンテナ
        送信用アンテナは、FMラジオが壊れた時に分解して保存しておいたロッドアンテナを流用することにします。リモコンボックスからリモコン線が出ている所に、リモコン線の代わりに取り付けることになります。
        受信用は、戦車にピアノ線(あるいは針金)を取り付けて、アンテナとします。

      PICマイコン
       マイクロチップテクノロジ社(Microchip Technology Co.) のワンチップマイコン PIC16F84A-20/P を2個購入しました。送信機用と戦車用にそれぞれ一個を使います。
       送信機用では、4チャンネルリモコンスィッチの状態をシリアルデータに変換します。戦車用では、受信したシリアルデータからスィッチの状態を復元し、モーター制御ドライバーIC(後述)を操作します。

      PIC16F84A-20/P

      モーター制御ドライバーIC
       東芝のDCモータ用フルブリッジドライバIC TA7291P を4個購入しました。
       このドライバはモーターの正転・逆転・ストップ・ブレーキの制御を2ビットのデジタル入力のオン・オフで行えます。PICのデジタル出力をドライバーのデジタル入力に直結します。
       4個のモーターを個々に制御するためにはドライバが4個必要になります。

      TA7291P

      その他
       無線化するための主な部品は以上ですが、その他に電子回路を構成する抵抗やコンデンサ、電源、電源スィッチ、LEDなどを適当に集めます。

    2.製 作
      電源仕様
       送信機用には単3電池を2個使います。PIC、送信モジュールともに、電池を2本直列にした3.0Vを供給します。送信モジュールの定格電源電圧は3.0Vとなっています。PICはカタログでは3.0Vでも動作するようです。

       戦車用電源には、1.2Vのニッカド電池を4個使います。PIC、受信モジュール、モータドライバとも、4本直列の4.8Vを供給します。モーター用電源には、モーターの定格電圧が3.0Vで少々オーバースペックにはなりますが、トルクを稼ぐために4.8Vをそのまま使うことにします(モータから焼けるような臭いが出るかもしれません)。
       その後の製作の過程で、モーター駆動回路と制御回路の電源を分離しました。格納スペースの関係から単四電池4本をモーター駆動に、006P電池を無線モジュールとPIC、モータードライバの電源に使用しました。

      送信機回路
       4チャンネルリモコンボックスに3極切り替えスイッチを2個増設し、6チャンネルの制御が可能なようにしました。

       送信機全体の回路図は次のとおりです。
      全回路図:transmiter
      左側に一つ(CH6)右側に一つ(CH5)
       リモコンボックスから戦車のモーターに接続していた配線をPICの入力ポートに接続します。1チャンネル当たり2ポートを使用します。
       6チャンネル全部では、入力ポートが12ポート必要になり、PICの RB0-RB7 の8ポートにチャンネル1から4を、RA0-RA3 の4ポートにチャンネル5、6を割り付けます。

      モーターへの配線をPICへ変更
       PICの入力ポートは、抵抗でプルダウンしてあり、リモコンボックスのスイッチが中間位置では、入力ポートの信号は"0"になります。リモコンボックスのジョイスティックを倒すと該当するチャンネルの配線の片方にプラス電圧(VCC)が、もう一方にマイナス電圧(GND)が引加されます。プラス電圧(VCC)が引加された入力ポートの信号は"1"になり、もう一方は"0"のままです。ジョイスティックを逆方向に倒すと該当チャンネルの配線に現れる電圧が逆になり、入力ポートの信号は"1"から"0"に、もう一方は、"0"から"1"に反転します。リモコンボックスのスィッチの状態と入力ポートの信号の関係は下表のとおりになります。
      チャンネル1(左側走行モーター)の場合
      スィッチの状態
      入力ポートの信号レベル
      モーター
      RB1
      RB0
      オフ(中間位置)
      停止
      フォワード(前に倒した状態)
      正転
      リバース(後ろに倒した状態)
      逆転

       PICでは、RA0〜RA3、RB0〜RB7までの入力ポートの状態をシリアルデータに変換し、RA4の出力ポートを通じて、無線送信モジュールの変調信号入力端子 (DATA IN) に入力します。無線送信モジュールでは、315MHzのキャリアをFM変調しアンテナを通じて電波発信します。

      送信機PICプログラム:tx.asm

      送信機製作
       PICと無線送信モジュールは、汎用基盤に組み込みました。スィッチからの配線や電源配線、アンテナへの配線全てをコネクタ接続とし、容易にボックスが分解できるようにしました。


       完成した送信機の各部の写真を次に示します。
      完成した送信機 電源スィッチとLED 電池カバーを外した
      コネクタを外す スィッチカバーを外した スィッチカバーの裏側
      信号方式
       無線送信モジュールの電波を変調するシリアル信号は、ラジコンのサーボーモーターの制御信号をまねしてみました。
       一チャンネル当たり2.5msec長のパルス信号を使い、6チャンネルで15.0msec、アイドル時間を10.0msec取って全体で25.0msecの長さのフレームとしました。このフレームが繰り返し連続して流れます。
       チャンネル毎のパルスは、モーターを逆転する時は、1.0msecのHigh+1.5msecのLow、停止は、1.5msecのHigh+1.0msecのLow、正転は、2.0msecのHigh+0.5msecのLowとしました。1.5msec±0.5msecのパルス幅変調です。

      受信機回路
       受信機全体の回路図は次のとおりです。
      全回路図:receiver
       無線受信モジュールから復調されたシリアル信号をPICのRA4ピンに入力します。PICのプログラムにてシリアル信号から送信機側のスィッチの状態を復元し、RB0〜RB7に出力します。
       RB0〜RB7に出力される信号レベルは、送信機側のPICのRB0〜RB7に入力されるものと全く同じとなります。RB0〜RB7は、4個のモータードライバーの信号入力(IN1,IN2)に接続され、各々のモーターを動かします。
      チャンネル1(左側走行モーター)の場合
      送信機
      無線区間
      受信機
      スィッチの状態
      PIC入力ポート
      パルス信号
      PIC出力ポート
      モータドライバ
      モーター
      RB0
      RB1
      RB0
      RB1
       IN1 
       IN2 
      OUT1
      OUT2
      オフ(中間位置)
      (open)
      (open)
      停止
      フォワード(前に倒した)
      正転
      リバース(後ろに倒した)
      逆転

       リモコンでは、砲塔に仕込んだスィッチによって砲塔の旋回に併せてサウンドキットをオン・オフしていたのですが、ラジコン化にあたっては、手元のスィッチでオン・オフ出来るようにチャンネル5のスィッチで制御することにしました。PICのRA1ピンをサウンドキットのスィッチに接続し、モーター正転の信号を受信した時に、が鳴るようにプログラムしました。

       戦車の走行状態に関係なくマルチバイブレータによる自走点滅となっていた本体後尾のテールライトもラジコン化の際に変更しました。戦車がバックする時に点灯する後退灯にしました。PICのRA2、RA3ピンから直接LEDを駆動するようにし、チャンネル1(左走行モーター)、チャンネル2(右走行モーター)からモーター逆転の信号を受信した時に点灯するようにプログラムしました。

       砲塔に仕組んだサーチライト回路はそのままです。

      受信機PICプログラム:rx.asm

      受信機製作
       無線受信モジュールとPICを一つの汎用基盤に、4個のモータードライバーとサウンドキットを別の汎用基盤に組み込みました。サウンドキットは、そのままでは搭載できる空間が無く、一度バラしてから組み直しました。8色サウンドの内、必要なのは一つだけですので不要な部品は取り去りました。
      受信モジュールとPIC
      収納の関係で受信モジュールは縦にしている
      4個のモータードライバー
      基板中央に砲塔回転軸に接する接点スィッチがある
      配線ケーブルで2つの基板が繋っている
      組み直したサウンドキット
      ボリュームやコンデンサは省略、スイッチ用のトランジスタを追加
       送信機と同様、電源接続やモータ接続、LED接続はコネクタ接続としました。

       受信機用電源は、最初の製作段階では、モーター電源と回路電源を共用していましたが、製作して見るとモーターのノイズやモーターの回転による電源変動から誤動作が激しく、その後電源を分離することにしました。
       モーター用には、単4電池を4本(6V)、回路用には、006P電池を1本(9V)使うことにし、78L05を追加し回路電源の安定化を図りました。

       製作完了した戦車内部の様子です。

      各モーターにはコンデンサ(0.1uF)とコネクタを接続 車体裏面に電源スィッチと電源ランプ(LED)を取り付けた 砲塔の360度回転を実現するために、砲身上下動用モーターへの配線は止め、銅箔で接点を作成した 砲塔回転軸に銅箔を巻付け接点を作成した
      車体に基板やサウンドキット、電池を格納した 尾部詳細−単四電池とLED、走行モーター 中央部詳細−汎用基板で作った受信回路を格納 前部詳細−006P電池とサウンドキットを格納

    3.製作を終えて
       今回は、現物合わせによるカットアンドトライの製作でしたので途中でつまづくのは当然のことですが、やはり思い違いというか思い込みにより悩んでしまう場面もありました。電子工作を楽しむといっても本格的な道具を持ち合わせておりませんので苦労もします。

       今回の製作のためにPICに初めて触れましたが、にわか勉強でしたので、つまらないつまづきもありました。PICのプログラムは、マイクロチップ社から提供される統合開発環境のシミューレータで事前にデバッグできます。このシミューレータは良く出来ていて机上でプログラムの完成度を上げることは十分に可能です。

       PIC部分に関する製作手順ですが、製作した汎用基盤上でちゃんとPICが動作するかまず確認が必要です。そこで、PICが確実に動作する回路基盤(プログラムライター兼用のPICマイコン実験セット)上で簡単なプログラムを動かします。出力ピンにLEDを接続して点滅させる簡単なプログラムを書き込み動作確認します。このプログラムを書き込んだPICを、製作した汎用基盤に挿し込み、LEDを接続して点滅するか確認します。うまく点滅すれば汎用基盤の製作は正しいことになります。この後、本来の送信機用プログラムを書き込み、送信機の基盤に挿し直します。受信側も同様です。

       送信機、受信機とも十分に机上デバッグを行い、回路に組み込んで送信側と受信側で対向試験しました。送信機のスティックを操作しても受信側のPICのRB0〜RB7の出力ピンに信号が出ません。基盤上の配線は見直しても問題ありません。

       PICが壊れたのかと思い、取り外してから試験プログラムに入れ替え、ライター基盤上で動作確認を再度行いました。シリアル信号を出力するRA4ピンの動作に若干懸念を感じていましたので、ここにLEDを取り付け、点灯させてみましたが、まったく点灯しません。それではとRA3に変更してみるとうまく点灯します。シミュレータ上では、どちらも違いはなく問題ありません。

       どうにも訳がわからず、もう一度PICのドキュメントを読み返してみました。RA0〜RA4、RB0〜RB7までの13本ある入出力ピンですが、各ピンを出力ピンとして使用した時、RA4ピンだけがオープンドレインになっているとドキュメントには書かれています。RA4ピンは、無線送信モジュールの変調入力に直接接続しています。無線送信モジュールの変調入力は、入力インピーダンスはハイで無電圧です。これでは、いくらプログラムが正しく動作していてもRA4ピンには有意な信号電圧が現れません。

       今回の信号方式では、送信機のスィッチが操作されていなくても常にパルス信号が出ています。25msecの内、信号1の状態が1.5msec x 6CH=9msecあります。信号1の電圧レベルが仮に3V(電源は単三電池2本)とすると、RA4ピンには、3x9/25=1.08 と約1Vの電圧が現れるはずです。試しにデジタルテスターでRA4ピンの電圧を測定してみると電圧が出ていません。やはりです。
       そこで、RA4ピンの出力を5KΩの抵抗を通じて電源にプルアップして見ました。すると期待通りに約1Vの電圧が測定できました。

       対向試験を再開して見ました。うまく動作します。事前にドキュメントをキチンと精読していなかったのが原因です。マイコンを使った機器は、ソフトウェアとハードウェアが微妙に絡みあっており、一度トラブルに陥るとなかなかに難しいものです。当たり前に言われている事を改めて経験した次第です。
    戻る