部の顧問の先生から、こんなモジュールを頂きました。
加速度センサ(ADXL345)と方位センサ(HMC5883L)とジャイロセンサ(ITG-3200)が一つの基板にまとめられたモジュールです。
ストロベリーリナックスで売られてました。
一個で一万円ぐらいします。
学生の自分にはなかなか手が出せませんね。
せっかく頂いたので、使ってみようじゃないかということで、使ってみました。
このモジュール、Arduinoを使えと言わんばかりに、Arduinoのシールドにはんだ付け済みでした。
手元にArduinoがあるので、これで動かしてみます。
今回は3つあるセンサのうちの一つ、加速度センサ「ADXL345」というセンサを使ってみます。
http://www.analog.com/static/imported-files/jp/data_sheets/ADXL345_jp.pdf
このセンサは、SPI通信か、I2C通信を用いて、通信をします。
センサは基板にはんだ付けされていて、このモジュールではI2C通信はできません。
そのため、I2C通信を使います。
ADXL345の使い方を簡単にまとめてみます。
・ADXL345を測定モードにする
POWER_CTL(0x2D)のD3をセット。
・測定レンジを変える
DATA_FORMAT(0x13)のD0,D1で測定レンジを変えられる。
D0 = 0, D1 = 0 : ±2g
D0 = 1, D1 = 0 : ±4g
D0 = 0, D1 = 1 : ±8g
D0 = 1, D1 = 1 : ±16g
・最大分解能モードにする
DATA_FORMAT(0x13)のD3をセット。
・サンプリング周波数を変える。
BW_RATE(0x2C)のD0:D3を変えることで、サンプリング周期を変えられる。
Rate (Hz) Bandwidth (Hz) Rate Code
3200 1600 1111
1600 800 1110
800 400 1101
400 200 1100
200 100 1011
100 50 1010
50 25 1001
25 12.5 1000
12.5 6.25 0111
6.25 3.13 0110
3.13 1.56 0101
1.56 0.78 0100
0.78 0.39 0011
0.39 0.20 0010
0.20 0.10 0001
0.10 0.05 0000
・X,Y,Z方向の加速度を取得する。
0x32~0x37に、1軸につき2バイトずつ、データが格納されています。
データは2の補数で格納されています。
それぞれレジスタを読みだして、マスタ側で、加速度に変換してください。
他にもFIFOなど、機能がたくさんあるので、興味がある方はデータシートを参照してください。
それと、このセンサは、傾けても値が変化します。
前後左右に動かしても値が変化するので、平行移動で値が変化しているのか、回転したことで値が変化しているのかが分からなくなるので、どうすればいいのかを検討中です。
データシートを見た限りでは、傾きを検出しないようにする方法が分からなかったです。
加速度センサはどれもこういう感じなのかなぁ...?
ジャイロセンサがあるので、それで補正するようなことをしないといけないんですかね?
大変だなぁ...。
登録:
コメントの投稿 (Atom)
人気の投稿
-
【2014/10/12 記事更新】 前回の記事( http://nekolab.blogspot.jp/2013/05/arduino.html )で、加速度センサ(ADXL345)を動かしてみました。 今回は、センサから得た値の計算をして、センサの傾きを検出してみよ...
-
秋月に売ってるIR2302ゲートドライバを使ったNchFETフルブリッジモータドライバです。 FETは、IR社の IRFB4410PBF (100V 96A 250W)を使っています。 IR2302 は、ハーフブリッジ用のゲートドライバです。 Nchの...
-
エアシリンダーなどを駆動するとき、欠かせないのが電磁弁。 ロボコンでも使っているのをよく見かけます。 僕もロボコンでエアシリンダを使うことになったので回路を設計したのですが、それについて書きます。自分用メモの意味合いが強いので、あしからず。 電磁弁は ...
-
どうも、Nekosanです。 モタドラ回路製作記事2回目です。 前記事ではドライバ回路の概要を記載したので、回路設計に入っていきます。 たくさんの数式が出てくるので、注意です。 言っても、四則演算ですが。 ドライバ回路の、ハーフブリッジを抜...
-
忘れそうなので自分用メモ。 ラジコン飛行機などに使われる小型のブラシレスモータを動かす、ESC(アンプ)をマイコンで制御したかったので、やってみました。 用意したもの ・ブラシレスモータ A2208-KV1400 ブラシレスモーター http://www.rc-e...
-
部の顧問の先生から、こんなモジュールを頂きました。 加速度センサ(ADXL345)と方位センサ( HMC5883L )とジャイロセンサ( ITG-3200 )が一つの基板にまとめられたモジュールです。 ストロベリーリナックスで売られてました。 一個で一万円ぐらいし...
-
どーも、Nekosanです。 今年の高専ロボコンのルール発表されましたね。結構前ですが。 今年はなかなか難しい課題な気がします、例年に比べて、ですが。 まあそれはいいのです。あんまりそのことをブログに書いちゃうとメンバーに怒られそうなのでこれぐらいで。 ロボ...
-
どうも、Nekosanです。 今まで何回かモータドライバについての記事を書いてましたが、回路設計メモを兼ねて、ブログ記事にしながら、設計をしようかと思います。 という訳で、第一号記事です。 まずは作ろうとしているモタドラの概要から。 概要 ブートスト...
-
Raspberry PiでI2Cを使って9軸センサー(MPU9150)を動かしてみました。 今後も使う可能性あるので自分メモです。 RasPiでI2Cを使うのに参考にした (丸パクリしたともいう) サイトは次のサイトです。 http://www.instructables...
-
どーも、Nekosanです。 またもや学校が忙しかったり、部活が忙しかったり、資格の勉強が忙しかったり、眠かったり、鬱になってたりで間が空いてました。 まあ今後もこんな感じが続くかもです。 できるだけ続けて書くようにがんばります。 ここ最近、ロボコンで使うドライ...
突然コメントすみません。5年ほど経過しているのでdatasheetが変更されたのではないかと思うのですが、
返信削除DATA_FORMAT(0x13) とありますが0x31ではないでしょうか?
http://www.analog.com/media/jp/technical-documentation/data-sheets/ADXL345_jp.pdf
のdatasheet p.25を参考にしています。