Arduino Groveシステムの使い方④
Groveモジュールの動作検証第四弾です。
<カラーセンサ>
スターターキットには含まれていないので、別途購入しました。こちらによれば、3.3V〜6.0Vで動作してくれそうです。サンプルソースはこちら。
サンプルを動かしてみると、IDEのコンソールに以下のような値が出力されます。RGBの相対的な違いはわかりやすいですが、素直に256段階で出力してくれるわけではなさそうで。
The RGB value and Clear channel value are 7936 4616 2304 14336 Error,the value overflow
ホントはちゃんとカラーセンサの仕様書を読まなくちゃならんのでしょうが、めんどいのでなんちゃって処理を試みます。上のは赤っぽいものの上にセンサを置いたときの値です。一応、赤に対応する値が大きくなっているように見えるので、上のRGBの最大値を255にして、値をマッピングさせてみましょう。
スターターキットに付属のLCDモジュールは、バックライトの色をRGB指定で自由に指定できるので、カラーセンサが読み取った値をMax255でマッピングした値を突っ込んでみます。
赤色の上にセンサを置いてみたところ。微妙にLCDが赤色っぽくなっている気が、しないでもないです。
緑色の上にセンサを置いてみたところ。微妙にLCDが緑色っぽくなっている気が、しないでもないです。
というわけで、色の識別とかは大小の比較だけで済みそうなので比較的簡単にできそうですが、読み取った色の再現は、やっぱりちゃんとセンサの仕様見て勉強しないとダメですね。現状のなんちゃって方式はRGBで一番大きい値を無理矢理255にしちゃうので、黒っぽい色とかは全然再現できませんし。
<IMU 9DOF>
加速度、ジャイロ、地磁気センサのまとめられた9軸センサで、姿勢の検出等が可能です。スターターキットには含まれていません。
ちょっと探して見たのですが、動作電圧がどこにも書かれていません。モジュールに使われているセンサ(MPU-9150)自体の駆動電圧は2.375〜3.465Vと書かれているので、この電圧内で使う方が安全そうです。なので、一旦はGroveのシールドを3.3Vにして使うことにします。
サンプルソースはこちら。ライブラリが必要なので、Arduino IDEのlibraries以下に、libraries以下(”I2Cdev”と”MPU6050″)をまるっとコピーします。それから”IMU_9D0F_Demo”を持って来て、サンプルを実行。すると、こんな感じでIDEのコンソールで値が取れます。
Acceleration(g) of X,Y,Z: -0.06,-0.10,1.04 Gyro(degress/s) of X,Y,Z: 0.28,0.71,2.35 Compass Value of X,Y,Z: -1155.29,6160.00,6435.00 The clockwise angle between the magnetic north and X-Axis: 98.41 The clockwise angle between the magnetic north and the projection of the positive X-Axis in the horizontal plane: 94.38
このときの姿勢はこんな感じ。
こちらに乗っているセンサの方向と合わせて考えると、少なくとも重力加速度はちゃんと取れていると思います。他の値の意味は…ちゃんと使わなくちゃいけなくなったときにまた考えます(逃げ)。
ちなみに、ひょっとしたら5Vでもちゃんと動くんじゃないかなーと予想しているんですが、モノが比較的高価(5,000円弱)なので、試せないでいます。
<赤外線発信器&受信器>
スターターキットには含まれていません。こことここを参照すると、どちらも有効範囲10mで、3.3-5.0Vで動作するようです。サンプルソースは共通でこちら。ライブラリを使うので、まるっとArduino IDEのlibraries以下にコピーします。それからサンプルの、まずは”recv”を実行。
…動きません。初期化は成功しているようだけれど、照明のリモコンを向けてみても全然受信してくれている気配がない。
うーん、これも簡単に動いてくれたらあっという間に学習型赤外線リモコンも作れるなあと思ったんですが、ちょっと調べないとダメそうです。
とりあえず、買ってきたGroveモジュールの紹介はいったんここまでにします。本当はあと一個、実はこれを使うためにGroveシステム買ってきたんだ、というセンサがあるのですが、それについてはまた別途記事を書こうと思います。
ディスカッション
コメント一覧
まだ、コメントがありません