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 データがあるので見てみると参考になるかも。