赤外線リモコンカーをつくる

 ここでは部品集めから製作までなるべくリアルタイムで状況をお届けします。
時々ご覧下さい。 ---> 動いて遊べるようになりました。

 子供の時に良くワイヤードリモコンの戦車とかで遊んでいましたが、ワイヤーが無いリモコンの方が断然面白いですね。週末の工作に是非どうぞ!


「更新履歴」
2000/08/10 当ページでの紹介スタート
2000/08/18 製作予定の未完成回路図を掲載
2000/08/21 ソフトウェアの簡単な仕様を掲載
2000/08/23 現時点のソース公開と内容の更新(かなり出来てきました)
2000/08/24 回路図を更新しました(バッテリー部分)
2000/08/25 単3充電池2本で動作するように修正。赤外線応答性能の改善
電池寿命との兼ね合いもあるので、電源は各自お好きな方式で供給して下さい。
2000/08/30 自動停止機能の追加(障害物にぶつかったままでも安心です)、部品表メンテ


「仕様を考えよう」
1.使うリモコンは余っているTV用リモコン
 これならどこにでもあるし、楽に作れますよね。

2.くるまの動作パターン
 とりあえずリモコンの「5」を停止ボタンにして、まわりのボタンで前後左右に動かしたいですね。
 今の所最低でも9通りの判定が必要になります。 ---> 最大12通り記憶できるようにしていますが、現時点では9種類しか使っていません。

1:前左折 2:前進 3:前右折
4:左回転 5:停止 6:右回転
7:後左折 8:後退 9:後右折
10: 11: 12:

3.CPUはPIC16F84を使う
 これは以前作った赤外線の受信ルーチンが使えるからというだけで選定されました。できれば安価なAT90S1200に移植したい所です。 ---> AT90S1200はメモリが足りないのでちょっと無理そうです。

4.リモコン信号は学習させる
 いろんなリモコンがあるのでPICのEEPROMに学習させてどんなリモコンでも使えるようにしましょう。

 まー、仕様はこんな所でスタートします。


「部品の調達」
 部品は作りながら順次揃えて行きます。 ---> やっと揃いました。

部品名

数量

説明

TAMIYAスポーツタイヤセット(56mm径)  
TAMIYAツインモーターギヤーボックス ギヤー比は203:1で組み立てます
キャスター(25mmウレタン車) ホームセンターで販売してます
デコパネ(5mm厚) 1枚 ホームセンターで販売してます
PIC16F84、ソケット、10MHz発振子 一式  
赤外線受光モジュール(CRVP1738)  
2SA1359、2SC3422 各4 ダーリントン接続の物に変更しても構いません
2SC1815  
330Ω  
1KΩ  
4.7KΩ  
16KΩ  
400V、1.1A整流用ダイオード 手持ちを使いましたが100V程度でも大丈夫です
0.1μF 積層セラミックコンデンサ等
10μF、10V以上 電解コンデンサ
100μF、10V以上 電解コンデンサ
S81350、3端子レギュレータ 電源次第で削除可能
LED(赤の方が明るいので推奨)  
小型のキースイッチ 写真参照、手持ちを使いました
電源スイッチ 小型の基板用を使いました
電池ケース 工夫次第で色々、私は単3×2本用を1個
約7cm×5cmの基板  
ネジ、配線材等は必要に応じて準備  

DC−DCコンバータを作る場合の追加部品

部品名

数量

説明

TL499

 
100μHチョークコイル

値は大体で構わない
470Ω  
4.7KΩ  
16KΩ ここを半固定抵抗にして直接5Vを出力するとS81350は不要
0.1μF 積層セラミックコンデンサ等

「回路設計」
 トランジスタを使ってモーターを正転、逆転できるようにします。左右のタイヤ合わせて4通りの制御が必要になります。
 リモコン信号を学習させるためのスイッチと状態確認用のLEDを付けます。
 スイッチは最低でも選択と解除できるように2個付けます。
 LEDは9通り以上の状態を確認する必要があるので最低4個付けます。

 赤外線受光モジュールも合わせると全部で11ビットは必要になりますが、PIC16F84のポートは13ビットあるのでハードウェアとしては問題無く制御できそうです。

 モーターの制御にはFET、リレー、ダーリントントランジスタ、専用IC等数多くの方法がありますが、私はパーツ店で定格値と値段を見ながら普通のトランジスタで作る事にしました。左右のタイヤが前後に動かせれば大抵の回路が使えると思いますので各自工夫してみるのが良いと思います。ただし、モーターをPWM制御したいのでリレーは使えません。 ---> PWM制御はまだ実装していません。

 回路図を見る 2000/08/25版


「ソフトウェアの製作」
 通常状態でリモコンの信号を受信すると、EEPROMの内容(1信号5バイトに制限)と比較して一致した番号の動作を行います。なお、5バイトというのはEEPROMの最大サイズ64バイト÷12通り程度の信号認識を行いたいということから決定しています。そのためまれにですが、信号によってはうまく識別できないことがあります。
 リモコンの信号を学習する場合は、Bスイッチを少し長く押します。すると覚えさせる番号がLEDに2進数で表示されます。その状態でAスイッチを短く押すと次の番号に移ります。長く押すとLEDが点滅して学習可能な状態になりますので、そこでリモコンの信号を学習させます。終了する場合はBスイッチを押すと通常状態に戻ります。

 ソフトウェアは以前作った赤外線解析用ソースを流用することから、秋月で販売しているGrich RC社のPicC C  Compiler(Limited Edition)を使用します。このコンパイラはアセンブラソースファイルを出力するためコンパイラを持っていない人でも、出力されたソースを修正してAASMでアセンブルすることができます。
このコンパイラを使う上で注意しなければいけないのは、バグが多いという点です。明らかにソース上の間違いがないのに動作がおかしい時はコンパイラのバグが考えられます。そんな時は出力されるアセンブラソースを解析する必要があります。そんなわけでいずれはアセンブラ専用に移植をかけたいと思っています。
 なお、AASMでアセンブルして使用する方はAASMの-Bオプションを使用し、大文字と小文字を区別した方が良いです。

 今回は自動停止機能を追加しました。自動停止機能の有効/無効は、リモコン信号を学習させる時とほぼ同じ方法で13番(LEDがON,ON,OFF,ONの表示)の状態でAスイッチを長く押します。今どちらの設定になっているかは実際に動かして確認します。現在のプログラムでは約9秒間何も操作しないと停止します。

 ダウンロード


「ハードウェアの製作」

メイン基板です

LEDの配置は左からポートAのビット3になります。

キースイッチの配置は左からポートBのビット5になります。

私は緑のLEDを付けましたがちょっと暗いかもしれません。ただし電池寿命に直結しますのでこの程度でも良いと思います。

充電池2本で動くようにしました。まだ、電池の固定は行っていません。ここまで来たら後の飾りつけは作った人が好きにやってください。
裏からみるとこんな感じです。

モーターとキャスターはできれば大きめのワッシャを付けて止めるか、補強用の板(古いプリント基板等)を使った方が良いと思われます。

気休め程度ですが、モーターの電源端子に0.1uFのコンデンサをノイズ除去用に付けます。


「今後の予定」
 メモリーにも少し余裕があるので、速度制御を行いたいと思います。それと、数秒後に自動停止するようにしたいです。 ---> 自動停止機能は今回追加しました。速度制御はもともとそんなに速くないので今後の検討とします。