Last Updated: 2002.04.16
コンピュータでラジコンカーをコントロールしよう!

簡易版ボタン式ラジコン用パラレルポートケーブル

(Tiny parallel port cable for R/C toy car control)


ケーブルの製作および市販ラジコン(送信器)の改造

 ボタン式ラジコンをPC ( パソコン) からコントロールしたい人用の、 最も簡単な、ケーブル製作方法を紹介します。 コネクタの中に、トランジスタアレイ1個を仕込むだけですので、 端子の工作に慣れた人なら30分、不慣れな人でも1時間あれば 製作できます。 ラジコン送信器としては、 今回は、イーケイジャパン社製のラジコンサッカーロボットのものを使ってみました。 ラジコン送信器 (プロポ)の改造等の、より詳細については、 このページの末尾の「参考にしたページ」を参考にして下さい。

 なお、このケーブルで全てのボタン式ラジコンが動くということを保証する ものではありません。また、このウェブページに出てくるいかなる会社の保証も ありませんので、ご注意下さい。この工作によるいかなる不具合についても 当方では責任を取りません。

 現在、改造可能なラジコン ( の送信器) としては、



 を確認しています。(今のところ、買ってきたラジコンで動かなかったものは ありませんでした。安いラジコンは、ほとんど大丈夫 *かも* しれません。) (2001/09/04)
 Qステア、スカイシップを追加しました。デジQもテストはしていましたが、 いかんせん、ちょっと高い。 (2008/08/25)

必要な部品: 実体配線図:2ch×2台(モーター2個の正転反転×2台)の工作例


 ICの18ピンから順に、パラレルポート出力 (8ビットデータ)の低い順に対応しています。
 なお、上の図では、ICの10番ピンがオープン(NC)になっていますが、 ラジコンによっては、ラジコン側の電源に接続した方が安定になるものも あります。今回は、実験に用いたサッカーロボットの送信器の都合に合わせ ました。


プロポの改造例:

・イーケイジャパン製ラジコン式サッカーロボットの送信器の場合:

 先ず、最も簡単なイーケイジャパン製サッカーロボットの送信器への 接続方法を説明します。 送信器基板の表から見ると、電源3Vの端子の側に、縦に、 +5V, GND, R-FWD, R-REV, L-FWD, L-REV の端子が並んでいます。 L-, R- が左右輪、 FWD, REV が正転反転を表しています。 (図を見てもらうと分かりますが、 R-FWD とかの文字の 上にはバーが入っています。負論理ということですね。) ホールの間隔が2.54mmでしたので、6極のコンタクトベースを直接、半田付け することができます(左図)。 後は、コンタクトハウジングを介して、パラレルポートの1ビットから4ビットが、 それぞれ、 L-REV, L-FWD, R-REV, R-FWD に、そして、 GND と GND が つながるように接続すれば終りです。 コンタクトハウジングおよびベースを使わない場合は、右図のように直結すれば 良いでしょう。

        


・その他のボタン式ラジコンの送信器の場合:

 上図のような端子用の穴があいていないバージョンのイーケイジャパン ラジコンサッカーロボットや 普通のボタン式ラジコンの送信器の場合、 左右のスイッチ裏の端子に直接信号線を配線することになります。 または、基板上に送信用IC(イーケイジャパンの場合、HT6014という エンコーダIC)があると思いますので、 スイッチからの配線をたどって、5ヶ所まとめてハンダ付けするといいでしょう。 他のボタン式ラジコン(3ch以上の場合も)のプロポも同様にして 接続することができます。 他の送信器(プロポ)の改造例はココ に整理しています。




動作テスト:

 以下に、Linux用にC言語で書いたサンプルプログラムを示します。 参考にしてみてください。 また、これ以外に、パラレルポートに直接データを出力することができる ソフトウェア(例えば、「オートマ君」や「JAプリンタポート制御」など) を使えば、簡単にテストすることができます。
 なお、当研究所で開発中の教育用計算機シミュレータ(メモリやコントローラ、 レジスタ、演算器の働きを視覚的に表示する)からも、制御できます。 これについては、近日中に、当WEBページで公開する予定です。
/*
 *  Simple Cable System for EK-JAPAN Soccer Robot
 */
#include < stdio.h>
#include < linux/types.h>
#include < linux/config.h>
#include < asm/system.h>
#include < asm/io.h>

#define RF	0x08    /* 右車輪正転 */
#define RB	0x04    /* 右車輪反転 */
#define LF	0x02    /* 左車輪正転 */
#define LB	0x01    /* 左車輪反転 */
#define STOP	0x00

char	OutData;

int
setv2(int ch, char v)
{
	if( ch == 0){
		OutData = ( OutData & 0xf0) | v;
	}
	else if( ch == 1){
		OutData = ( OutData & 0x0f) | v << 4;
	}
	else if( ch == 2){
		OutData = 0x00;
		OutData = v | v << 4;
	}
	outb( OutData, 0x378);
}

int
main(void)
{
        int     i;

        ioperm(0x378,8,1);       /* ポートの初期化 */
        sleep(1);

        for( i=0; i<=2; i++){    /* i = 1台目、2台目、2台同時 */
                                      /* sleep()で動作時間を設定 */
                setv2(i, LF | RF);    sleep(1);   /* 前進     */
                setv2(i, STOP);       sleep(1);   /* 停止     */
                setv2(i, RF);         sleep(1);   /* 左旋回   */
                setv2(i, STOP);       sleep(1);
                setv2(i, RB);         sleep(1);   /* 左逆旋回 */
                setv2(i, STOP);       sleep(1);
                setv2(i, LB |  RB);   sleep(1);   /* 後退     */
                setv2(i, STOP);       sleep(1);
                setv2(i, LF |  RB);   sleep(1);   /* 信地旋回 */
                setv2(i, STOP);       sleep(1);
        }

        setv2(2, STOP); /* 信号が出力しっぱなしにならないように */
        return;
}

注意書 注意書 注意書 注意書


  • このアダプタで操作可能なボタンラジコンは、指令端子(モータのオン・オフなど)が、 通常、オープンになっていて、ボタンスイッチを押すことによって、これが GNDに落ち、電源ONと指令出力が同時に行なわれるタイプのものに限ります。 ボタンラジコンの中には、GNDに落すタイプではなく、発信回路のON/OFFを 制御するものもあります。これは、スイッチに極性があるとマズイので、 トランジスタではなく、FETスイッチを使う必要がありますので、上記の 回路では動きません。


  • ここでは、2ch×2台(モーター2個の正転反転×2台)の工作例を 示していますが、2台同時に動かせるか、というのは、 使用するラジコンとPCに依存します。 なお、当方の ノートPC IBM ThinkPad 570E とイーケイジャパン製サッカーロボットの組み合わせ では、2台同時に動作させることができました。ビットチャージーも可でした。

  • 9Vとか12Vで動かすラジコン送信器の場合、配線ミスや部品の破損により、 この12VとかがPCのポートにかかってしまうと壊れることがありますので、 注意して工作して下さい。PC側のポートが壊れると部品交換ではなく、 マザー交換になってしまって、修理代が半端でなくなります。



  • ラジコン送信器の改造例他

    パラレルポート制御プログラム他
    参考にしたページ

    このページへの問い合わせは まで。