【概要】
PIC18F2320に、有名なアナログデバイス社の加速度センサADXL202を接続し、
手にもった送信機を傾けることで、コントロールできるラジコン送信機を製作し
ました。
この送信機で、受信ユニットを搭載した車両などを制御するには、送信機を
立てれば前進、後進が制御でき、立てる角度で速度が可変できます。
さらに左右に傾けることで、旋回も自由に制御できます。
下記写真が、ラジコン車と組み合わせたものです。
【加速度センサ】
アナログデバイス社の加速度センサ、「ADXL200」は簡単に入手できる小型
の加速度センサとして有名ですが、インターフェースも簡単で、使うのも容易
なセンサです。下記写真が外観です。
このセンサの原理は、ICのチップの中に小さな可動板が実装されていて、
下図のようにこの板が動くと、それに付随した電極部の位置が移動して
固定電極間との電気容量が変化することで検知しています。
このICの内部構成は下図のようになっています。この図のように、出力はパルス
幅変調となっていて、出力波形は、図のようになっています。
この式から判るように、出力波形は、力が加わっていない場合、つまり0Gのときに、
デューティが50%となっています。
そして1Gあたり、デューティ比が12.5%だけ変化するようになっています。
このセンサの出力は、下表のように、コンデンサCx、Cyにより感度調整が可能な
ため、多少感度を犠牲にしても安定な出力にしたいときは、コンデンサを大きめにし、
感度を良くしたいときにはコンデンサを小さめにするということができ、使いやすい
センサといえます。
さらにX出力とY出力の周期T1は外付けの抵抗Rsetで変えることができますので、
相手に合わせて選ぶことができます。
X出力とY出力が同時に出力に現れますが、完全に同時ではなく、少しずれて
いますので、それぞれ独立にパルス幅を検出する必要があります。
【ラジコン送信機概要】
この加速度センサを、ラジコン車用の送信機に応用してみました。送信機の外観は、
下記の写真のように何も無いのですが、この箱を水平にすると停止した状態に
なります。
そして前後方向に傾けると速度制御になり、前に倒すと後進、後ろに立てると前進と
なり、傾き角度により速度が可変となっています。
さらに左右へ傾けると対応して旋回します。この旋回角度も送信機の傾け具合に
比例するようになっています。
内部の実装は下記写真のようになっています。加速度センサそのものは、表面実装
ですので、写真の基板の左中央部裏側にはんだ付けされています。
この送信機の全体構成は、下図のようになっています。中心はPIC18F2320でこれで
すべてを制御しています。
送信出力は、小型の315MHzの送信モジュールを使いましたので、簡単な構成になって
います。このデータ送信には、PICのUSARTを使っています。
【送信機回路】
この送信機の回路は、下図のようになっています。 センサスイッチ、外部入出力は
今回何にも使っていないのですが、将来用です。
クロックには10MHzのセラミック振動子を使っていますが、内部でPLLで40MHzで動作
させています。
USARTは無線送受信モジュールが3kHzまでしか応答しませんので、通信速度を
2400bpsの調歩同期式としています。
加速度センサは、CCPの入力ピンに接続していますが、結局、CCPモジュールは使わず
単純な入力ピンとして使って、プログラムでパルス幅を検出しています。
加速度センサの周期用の抵抗は、プログラムで検出分解能が9ビットの512分解能に
なるよう200kΩとしました。100kΩの抵抗を2個直列接続しています。
【送信機プログラム】
この送信機のプログラムはPIC18Fシリーズ用のアセンブラ言語で作成しています。
全体の流れは、単純な1本で、X軸、Y軸のパルス幅を測定したあと、それぞれの
値から、モータのPWM制御の8ビットデューティ値に変換しています。
まず全体のフローは下図のようになっています。
そして最後にデータをUSARTで送信していますが、送信フォーマットは下図の
ようになっていて、反転2連送で左右の2個のモータ用のデューティ値を4ビット
づつに分けて送信しています。
下記が本プログラムのアセンブラソースファイルです。ダウンロードしてお使い
下さい。
★ 加速度センサ応用ラジコン送信機ソース(remocontx2.asm)