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