加速度センサーを使って傾斜角を得る。

Get angle from accelerometer

(JA) LSM303DLH デジタル3軸地磁気+3軸加速度センサーモジュールを使って、傾斜が測定できるか実験しました。

(EN) It experimented in the ability of an angle of gradient to be measured using +3 axes of 3 axes of LSM303DLH digital geomagnetism accelerometer module.

/media/uploads/tosihisa/_scaled_ncm_0067.jpg /media/uploads/tosihisa/_scaled_ncm_0068.jpg /media/uploads/tosihisa/_scaled_ncm_0069.jpg

test program

(JA) このプログラムは、LSM303DLH ライブラリとそれを使うプログラムを使って、傾斜角度を得るものです。 Michael Shimniok さんが公開しているライブラリをベースにしています。 Michael Shimniok さん、素晴らしいライブラリを公開して頂いてありがとうございます。

(EN) This program obtains an angle of gradient using a LSM303DLH library and the program using it. The library which Mr. Michael Shimniok publish is used as the base. Thank you for having Mr. Michael Shimniok and a wonderful library published.

Import libraryLSM303DLH

Interface library for STMicro LSM303DLH 3-axis magnetometer w/ 3-axis acceleromter. Computes magnetic heading.

Import programLSM303DLHTest

LSM303DLH Test Program for get angle.

#include "mbed.h"
#include "LSM303DLH.h"

Serial debug(USBTX,USBRX);
LSM303DLH compass(p28, p27);

int main() {
  float hdg;
  float hdgV;
  vector acc;
  vector mag;
  debug.format(8,Serial::None,1);
  debug.baud(115200);
  debug.printf("LSM303DLH Test\x0d\x0a");
  compass.setOffset(0.00,0.00,0.00); // example calibration
  compass.setScale(1.00,1.00,1.00);    // example calibration
  while(1) {
    compass.read(acc,mag);
    hdg = compass.heading();
    hdgV = atan2(acc.y,acc.z) * 180/M_PI;
    debug.printf("ACC: %6.2f %6.2f %6.2f Heading: %6.2f %6.2f\n",acc.x,acc.y,acc.z,hdgV,hdg);
    wait(0.1);
  }
}

Result

...
ACC:  96.00 -7216.00 4144.00 Heading: -60.13 321.98
ACC:  64.00 -7184.00 4192.00 Heading: -59.74 319.80
ACC: 112.00 -7264.00 4240.00 Heading: -59.73 320.87
ACC: 160.00 -7328.00 4048.00 Heading: -61.08 315.60
ACC:  96.00 -7264.00 4176.00 Heading: -60.11 322.13
ACC: 128.00 -7312.00 4048.00 Heading: -61.03 319.19
ACC: 128.00 -7280.00 4176.00 Heading: -60.16 319.95
ACC:  32.00 -7376.00 4192.00 Heading: -60.39 320.12
ACC: 128.00 -7264.00 4160.00 Heading: -60.20 319.03
ACC: 160.00 -7360.00 4144.00 Heading: -60.62 317.27
...

(JA) Heading: の先頭値が、加速度センサーを使って計算した角度です。約2度ほど、ズレがあるようです。 測定はものすごく簡単な測定でした。もっと正しく調整すれば、もっと正確な値が出ると思います。

(EN) Heading: A head value is the angle calculated using the accelerometer. It seems that there is gap about about 2 degrees. Measurement was easy terrible measurement. I think that a more exact value will come out if it adjusts more correctly.

Application

(JA) GPS モジュールで得られる緯度経度を組み合わせることで、建物の高さが計算できると考えています。

(EN) I think that the height of a building is calculable by combining the latitude longitude obtained by a GPS module.


Please log in to post comments.