Arduino Groveシステムの使い方③

Groveモジュール動作検証第三弾です。

<温度・湿度センサ>

スターターキットには温度センサが含まれていますが、およその湿度も測りたかったので、改めて購入しました。ちなみに自分が購入したのは安物ですが、もっと高精度で測定レンジの広いプロ版もあります。こちらによれば、3.3V〜5.0Vで動作します。サンプルソースはこちら。ライブラリが必要になるので、ファイルを丸ごととってきて、Arduino IDEのlibrariles以下にコピーします。

“スケッチの例”から、”Humidity_Temprature_Sensor”の”DHTester”を実行すればOKですが、このサンプルはプロ版のセンサとかと共用なので、フラグを切り換える必要があります。適宜購入したものに合わせて切替てください。自分の場合は、

#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22 (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

となります。これで、IDEのコンソールに計測結果が出てきますが、一応LCDモジュールにも表示させてみます。

th_temp_and_hum

息を吹きかけたりするとちゃんと値は変わるので、動作環境がシビアでなければ安いセンサでも大丈夫かなと。

 

 <LEDバー>

これはスターターキットには含まれていないので、別途購入。3.0V〜5.5V駆動です。サンプルソースはこちら。ライブラリが必要になるので、Arduino IDEのlibrariesフォルダ以下にまるっとコピーします。その後、”スケッチの例”の”Grove_LED_Bar”からサンプルを実行しますが、3つあるので、それぞれ実行してみます。

まず”BasicControl”から。

th_grove_led_bar

ledIndeBitメソッドの引数に”0b000001101010101″と指定するとこう光るので、下10桁のビットで指定したとおりに光るみたいですね。

次に、”ControlSignLed”。

led_grove_sign_480.mov

(↑荒いですがクリックで動いている様子が見れます)

setSingleLedメソッドをforループで回して、一個ずつスライドさせながら点灯させています。

最後に、”Level”。

 led_grove_sign_level_480.mov

(↑荒いですがクリックで動いている様子が見れます)

setLevelメソッドで値を指定すると、その名のとおり段階表示してくれます。

ライブラリのヘッダファイルを見てみると、他にメソッドは用意されていませんが、この3つだけあればとりあえず大丈夫でしょう。ちなみにどれもLEDの色は右端が赤、右から2番目めが黄(オレンジ)、他は緑になっていますが、これは元々組み込まれているLEDがそれらの色のようで、変更はできなそうです。

 

<音センサ>

スターターキットに含まれています。こちらによれば、動作電圧は4V-12V。ということは、Groveシールドの電圧は5Vにしとかなくてはダメですね。

サンプルソースはこちらの”Grove_Sound_Sensor”。サンプルは閾値を(thresholdValue)を500ぐらいにしたら、手をパンッと鳴らしたときLEDが光る、という感じで動きましたが、サンプルいじっていてちょっとハマったのが、loop内でのdelayの設定について。

サンプルの中では、loopの中にdelayが設定されていません。ちょっと考えれば当たり前で、音が鳴るのは一瞬なので、できるだけ早くloopを回さないとその一瞬が捉えられないんですね。LCDを使うときはいつもdelayに100を設定していたので、LCDに値を表示しようとしてうまくサウンドセンサが機能しなくてうーんとなってしまっていました。

ということで、LCDの代わりに先ほど使えるようになったLEDバーで表示するようにします。ちょっとログ見た感じでは、出力値は0〜1024っぽかったので、これを0〜10にマッピングして表示させます。ポイントだけ書くとこんな感じ。

// 定義
#define SOUND_SENSOR A2
LED_Bar bar(3, 2); 
int soundSensorValue = 0;
// loopの中
soundSensorValue = analogRead(SOUND_SENSOR);
bar.setLevel((int)((float)soundSensorValue/1024*10));

th_grove_sound

手をパンっとやると、一瞬バーが伸びます。

 

今回はここまで。後5個ぐらいあるけれど、全部紹介するかは未定です。