16 9軸センサをI2cで使いこなそう1(LSM9DS0)

9軸センサというのは,3軸加速度,3軸ジャイロ(角速度),3軸コンパスが一体となったセンサのことです.
使用する9軸センサはLSM9DS0でストロベリーリナックスから入手できます.

DSC00284

このセンサを使うと,ロボットの傾きや向きなどを計測することができます.wiiのコントローラにもこのようなセンサが搭載してあります.
今回は9軸センサとI2c通信してみましょう.
1.まずは以下の回路を製作してください.電圧値は3.3Vです. PCと通信するためにXbeeを接続しています.

10

2.次にatmega64aにプログラムを書き込みます.

3.PCにもXbeeを接続し,X-CTUを起動.Terminalをクリック.
4.マイコンに電源を入れます.PCの画面を見てください.

195

このように212が連続して受信されたら成功です.

 これで,AVRマイコンでI2c通信することができました.今回,具体的に何をしたのかの説明をします.
I2c通信は複数のセンサを二本の線だけで接続することができる通信方法です.マイコンにどのセンサと通信したいのかを決めるために,複数のセンサにはそれぞれ名前をつける必要があります.このそれぞれの名前をスレーブアドレスといいます.そして,そのセンサの中にも様々な情報がはいっています.その情報にレジスタという名前を付けて,分別しています.
まあ,こんな感じです.(あくまで例です.)

197

LSM9DS0のデータシートを見てください.(データシートより)

196

今回のプログラムでは,この赤丸で囲んだレジスタの値を読み込んでいます.
スレーブアドレスは0x6bでレジスタのアドレスは0x0fです.

読み込んだ値212は2進数で0b11010100です.default値と一致しているため,正常に値を読み取ることができました.

さて,次はセンサで計測された加速度,ジャイロ,磁気の値を読み取ってみましょう.
17 9軸センサをI2cで使いこなそう2(LSM9DS0) に続く.

おすすめ図書(よかったらどうぞ)

You may also like...

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">