前回は,MultiWii SE V2.5 CRIUSのセンサーとその値を取得するための通信方式であるI2Cについて少し書きました.
さて,実際にセンサーの値を取っていきたいと思います.
それで,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形式のライブラリをインストール...を開く
3.先ほどの解凍したフォルダの以下,i2c Device Libraries\i2cdevlib-master\Arduinoを開くと,色々なセンサーの名前が出てきます.
まず,MPU6050のライブラリをインストールしていきましょう.MPU6050を選択して,「開く」をクリックします.
4.うまくいくと,下部のメッセージバー?に「ライブラリが追加されました。「ライブラリをインクルード」メニューを確認してください.」と出ます.
5.同様に,HMC5883L,BMP085のライブラリと,I2Cdevのライブラリ(全てのセンサーのライブラリ内で共通で使われるライブラリ)をインクルードしましょう.
6.全てインクルードしたら,「ライブラリをインクルード」メニューからちゃんとインクルードできてるか確認しましょう.スケッチ>ライブラリをインクルードから,"Contributed ライブラリ"の欄に,
- BMP085
- I2Cdev
- HMC5883L
- MPU6050
が表示されていることを確信しましょう.
以上です!
これで,I2Cdevlibを使ってMultiWiiボード上のセンサーを使う前準備ができました!
次回から実際にセンサーから値を読み出してみたいと思います!!