だいたいだいだい

だいたいのことはたいていなんとかなる 旅行とか飛行機とか工作とか

【MultiWii】その4:I2Cdevlibでセンサーの生データをとる(I2Cdevlibの導入)【Arduino】

前回は,MultiWii SE V2.5 CRIUSのセンサーとその値を取得するための通信方式であるI2Cについて少し書きました.

www.daitai-daidai.com


 

さて,実際にセンサーの値を取っていきたいと思います.

それで,I2Cで実際どうやったらセンサーの値を取得できるのかいろいろ調べてみたのですが,"I2Cdevlib"というライブラリがあったのでこれを使っていきたいと思います.

 

今回はそのI2Cdevlibの紹介とライブラリーのインストールについて書いていきます.

 

I2Cdevlib(I2C Device Library)とは?

I2Cdevlibとは,"I2C Device Library"の約で,センサーなどI2C通信を行うデバイスをArduinoをはじめとするマイコンで使うためのクラスを集めたライブラリー群です.

(I2Cdeblib本家サイト:https://www.i2cdevlib.com/

どうやら,Jeff Rornberg氏を中心として開発されてきたプロジェクトのようです.(現在も開発が進んでいるみたいです)

 

現在,対応しているデバイスは,https://www.i2cdevlib.com/devicesで確認できます.

そして,なんと,MultiWii SE v2.5 CRIUSに乗っている3種類のセンサーにも対応していました.

ただし,上のサイトをみると,

  • BMP085:Initial Development In Progress
  • MPU-6050:New Feature Development In Progress
  • HMC5883L:Completed

となっており,未だ開発は続けられているようです.

 

が,とりあえず,生データくらいはとれそうなのでこれを使ってやっていこうと思います.

(I2Cの細かいことはおいおい学ぶとして・・・)

 

I2Cdevlibのダウンロード

I2Cdevlibは次のページからダウンロードできます.

https://github.com/jrowberg/i2cdevlib

ページ右側の,緑の"Clone or download"から,"Download ZIP"をクリックしてください.

 

I2Cdevlibのインストール

ライブラリをArduinoIDEにインストールしましょう.今現在一番最新のVer. 1.8.5で解説していきます.

 

注)なお,わざわざインストールしなくてもライブラリの.cppファイルと.hファイルを.inoファイルと同じフォルダに入れとけば使えます.ただ,新しいプログラムを作るときにめんどくさいかなと思います.

 

1.先ほどダウンロードしたZIPファイルを解凍しておきます.

 

2.Arduino IDEのスケッチ>ライブラリをインクルード>.ZIP形式のライブラリをインストール...を開く

f:id:dai65527:20180430124116j:plain

 

3.先ほどの解凍したフォルダの以下,i2c Device Libraries\i2cdevlib-master\Arduinoを開くと,色々なセンサーの名前が出てきます.

まず,MPU6050のライブラリをインストールしていきましょう.MPU6050を選択して,「開く」をクリックします.

 

f:id:dai65527:20180430125159j:plain

 

 

4.うまくいくと,下部のメッセージバー?に「ライブラリが追加されました。「ライブラリをインクルード」メニューを確認してください.」と出ます.

 

f:id:dai65527:20180430125757j:plain

 

 

5.同様に,HMC5883LBMP085のライブラリと,I2Cdevのライブラリ(全てのセンサーのライブラリ内で共通で使われるライブラリ)をインクルードしましょう.

 

6.全てインクルードしたら,「ライブラリをインクルード」メニューからちゃんとインクルードできてるか確認しましょう.スケッチ>ライブラリをインクルードから,"Contributed ライブラリ"の欄に,

  • BMP085
  • I2Cdev
  • HMC5883L
  • MPU6050

が表示されていることを確信しましょう.

 

f:id:dai65527:20180430204952j:plain

 

 

以上です!

これで,I2Cdevlibを使ってMultiWiiボード上のセンサーを使う前準備ができました!

 

次回から実際にセンサーから値を読み出してみたいと思います!!

www.daitai-daidai.com