10数年ぶりに童心に戻ってリモコン戦車で遊んでいたのですが、やはりリモコンというのはもう一つという気がしてきました。何しろ家の中を走らせようとすると戦車の後ろを付いて歩き回らねばなりません。また、リモコンのワイヤーが走行の邪魔になる時もあります。こんな悩みを解消すべく、無線化への改造に取り組むことにしました。 無線化といえば、ラジコン送受信機にサーボモーターということになるのだと思いますが、残念なことにラジコンプロポなんか一台も持っていません。これを機会に購入すれば良いのでしょうが、今回の戦車の制御に必要なチャネル数は、最低でも4チャンネル、6チャンネルは欲しいところです。ラジコンの製品で安く手に入る6チャンネルのプロポのセットがあるとは思えません。 今回は、無線送受信モジュールやPICマイコンを使って独自のラジコンシステムを製作することにしました。単純に今の4チャネルリモコンボックスのスィッチの状態をシリアルデータに変換し、無線送信モジュールで電波を変調し、受信モジュールで復調してデータを復元、スイッチ状態に応じてモーターの制御を行うというものです。モーター制御にはモーター駆動用ICを使います。 1.部品を集める
![]() 無線送受信モジュール 外国製の非常に小型の無線送受信モジュールを株式会社IPIよりネット通販にて入手しました。 AM方式とFM方式があり、AM方式を注文したところ、品切れだということでしたので、少々高くなりますがFM方式のものを購入しました。9.6KHzまでのシリアルデータが送受信できます。
アンテナ 送信用アンテナは、FMラジオが壊れた時に分解して保存しておいたロッドアンテナを流用することにします。リモコンボックスからリモコン線が出ている所に、リモコン線の代わりに取り付けることになります。 受信用は、戦車にピアノ線(あるいは針金)を取り付けて、アンテナとします。 PICマイコン
モーター制御ドライバーIC
その他 無線化するための主な部品は以上ですが、その他に電子回路を構成する抵抗やコンデンサ、電源、電源スィッチ、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、モータードライバの電源に使用しました。 送信機回路
PICでは、RA0〜RA3、RB0〜RB7までの入力ポートの状態をシリアルデータに変換し、RA4の出力ポートを通じて、無線送信モジュールの変調信号入力端子 (DATA IN) に入力します。無線送信モジュールでは、315MHzのキャリアをFM変調しアンテナを通じて電波発信します。 送信機PICプログラム:tx.asm
送信機製作
無線送信モジュールの電波を変調するシリアル信号は、ラジコンのサーボーモーターの制御信号をまねしてみました。 一チャンネル当たり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)に接続され、各々のモーターを動かします。
リモコンでは、砲塔に仕込んだスィッチによって砲塔の旋回に併せてサウンドキットをオン・オフしていたのですが、ラジコン化にあたっては、手元のスィッチでオン・オフ出来るようにチャンネル5のスィッチで制御することにしました。PICのRA1ピンをサウンドキットのスィッチに接続し、モーター正転の信号を受信した時に、音が鳴るようにプログラムしました。 戦車の走行状態に関係なくマルチバイブレータによる自走点滅となっていた本体後尾のテールライトもラジコン化の際に変更しました。戦車がバックする時に点灯する後退灯にしました。PICのRA2、RA3ピンから直接LEDを駆動するようにし、チャンネル1(左走行モーター)、チャンネル2(右走行モーター)からモーター逆転の信号を受信した時に点灯するようにプログラムしました。 砲塔に仕組んだサーチライト回路はそのままです。 受信機PICプログラム:rx.asm
受信機製作 無線受信モジュールとPICを一つの汎用基盤に、4個のモータードライバーとサウンドキットを別の汎用基盤に組み込みました。サウンドキットは、そのままでは搭載できる空間が無く、一度バラしてから組み直しました。8色サウンドの内、必要なのは一つだけですので不要な部品は取り去りました。
受信機用電源は、最初の製作段階では、モーター電源と回路電源を共用していましたが、製作して見るとモーターのノイズやモーターの回転による電源変動から誤動作が激しく、その後電源を分離することにしました。 モーター用には、単4電池を4本(6V)、回路用には、006P電池を1本(9V)使うことにし、78L05を追加し回路電源の安定化を図りました。 製作完了した戦車内部の様子です。
今回の製作のために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の電圧が測定できました。 対向試験を再開して見ました。うまく動作します。事前にドキュメントをキチンと精読していなかったのが原因です。マイコンを使った機器は、ソフトウェアとハードウェアが微妙に絡みあっており、一度トラブルに陥るとなかなかに難しいものです。当たり前に言われている事を改めて経験した次第です。 |