今後、フライングロボットに搭載することを想定して、汎用性のあるコンセプトを考えてみました。
色々なロボットに搭載することを考えると、全ての機能が基盤に入っている方式ではなく、センサー系と制御系が独立していて、それらをインターフェースケーブルで接続する方式がベターと考えています。
インターフェース方式として当初I2Cを考えたのですが、うまく動作させることができませんでした。
そこで、今回はRS232Cで接続させることにしました。
加速度センサーADXL202Eの計測用(ADXL202E_PIC)と制御用(メインPIC)にそれぞれPIC12F675を使ってテストしてみました。
画像:ノートPCの上に計測用(ADXL202E_PIC)と制御用(メインPIC)が乗っています。
左のPICがADXL202E_PICでADXL202Eの他に電源ON確認用にLEDが点灯させました。
��セル電源がESCのBEC経由で右のメインPICに供給しています。
ノートPCに加速度センサー情報が表示されているのが見えます。
この情報はADXL202E_PICからRS232C経由でメインPICに、別なRS232C経由でノートPCにもたらされたものです。
インターフェースは1ピンのみで、メインPICから1バイトのデータ要求コードが送信されると、そのコードを受け取ったADXL202E_PICがxとyのデューティー値をそれぞれ1バイトづつ返す方式としました。
インターフェーススピードは9600bpsで行い、1msec待ってデーターが帰ってこなければタイムアウトとしています。
実験すると、データー要求してデューティー値を受け取るまで、約3msec余り掛かることがわかりました。
基本動作
メインPICでRCシグナルを受信し、そのシグナル周期を基本として動作させる方式とします。
RCシグナル(JR)は23msec間隔で、シグナルを受信してないアイドル時間が10msecぐらいあります。
その時間内で、センサーからの情報を取得し、制御処理した後、サーボシグナルを送出するわけです。
ADXL202E_PICからのデーター取得に3msec余り費やすのは結構大きいですが、より速いインターフェースが使えるまでは、何とかこれでやってみるつもりです。
0 件のコメント:
コメントを投稿