g 加速度センサーをつなぐ

(2003年 11月 16日 (C) 岡田 紀雄)

g加速度センサーをロボットにつけ、姿勢制御につかってみたい、と思っている方も多いと思うので、私が今回行った加速度センサーの取り付けについてまとめて紹介してみる。 今回は、安価で手に入る AMD の ADXL202 (秋月電子通商で @\2,000- で 8pin-DIP 型のものが入手可能)を用いた。


回路編

 特に難しい図面ではないので、いずれ公開するとして、簡単にピン接続方式だけを箇条書きで列挙しておく。


H8/3664 プログラム

RC受信機のプログラムにくっつける形でマザー CPU へ情報を渡すことができる。 CPU への送受信部は下記の各関数の帰り値を4byteコードとして返すだけであるので、省略。 私は、ヘッダ文字として r(row), t(tilt) の2文字を使うことにした。 ポートの初期化だが、このポートは A/D コンバータと同じポートだが、特に初期化しなくても通常0/1ポートとして使えるので、何も初期化はしない。 もちろん、A/D コンバータをつなげるときは、このビットをはずすことを忘れずに。

 1:     #include        "3664f.h"
 2:     unsigned int    get_g_acc_x( void )
 3:     {
 4:             unsigned int    sc, ec;
 5:
 6:             while( IO.PDRB.BIT.B3 != 0 ) ;
 7:             while( IO.PDRB.BIT.B3 == 0 ) ;
 8:             sc = TW.TCNT;
 9:             while( IO.PDRB.BIT.B3 != 0 ) ;
10:             ec = TW.TCNT - sc;
11:             return ec;
12:     }
13:     unsigned int    get_g_acc_y( void )
14:     {
15:             unsigned int    sc, ec;
16:
17:             while( IO.PDRB.BIT.B1 != 0 ) ;
18:             while( IO.PDRB.BIT.B1 == 0 ) ;
19:             sc = TW.TCNT;
20:             while( IO.PDRB.BIT.B1 != 0 ) ;
21:             ec = TW.TCNT - sc;
22:             return ec;
23:     } 

今回は、これだけ。 至って簡単であった。 あとは、応用次第。
応用としては、最初にあげた姿勢制御になる。 このあたりはいろいろなWeb上で実現後の movie データがあるので見てみると参考になるかも。