[Nefry BTとGrove接続実験] ブザー

ブザーモジュール

私が購入したGROVEスターターキットV3に入っていたブザーモジュールは、Buzzer V1.2というモジュールです。スイッチサイエンスさんの単体販売ページに掲載されているものと同じです。

Groveブザーモジュール(表)
Groveブザーモジュール(裏)

ブザーモジュールの動作

ブザーモジュールはデジタル出力モジュールです。1(HIGH)を送るとブザーが鳴り、0(LOW)を送るとブザーが止まります。音量の調整はできません。かなり大きな音が出るので、静かな部屋だとびっくりします。

プログラム

1秒間音を鳴らした後1秒間音を止めるという動作を繰り返すプログラムです。

setup( )関数内のpinMode(PIN, OUTPUT)で、GPIOピンを出力に設定しています。loop( )関数内では、まずdigitalWrite(PIN, HIGH)でHIGHを出力して音を鳴らし、delay(1000)で1秒間待ちます。次にdigitalWrite(PIN, LOW)でLOWを出力して音を止め、delay(1000)で1秒間待ちます。

メロディーを演奏するプログラム

Seed Studio社のGrove Wikiページにはブザーでメロディーを演奏するプログラムが掲載されています。

下記のリストでは、Nefry BTで動作するように、19行目のBUZZER_PINの設定をコメントアウトし、24行目でBUZZER_PINの値を変更してあります。

60-70行目のplayNote(char note, int duration )が、指定された高さの音を鳴らす関数です。引数noteはnames[ ]配列に入っている’c’, ‘d’,・・・で音の高さを指定します。’c’は’ド’, ‘d’は’レ’, ・・・です。引数durationはその音を鳴らす時間をmsで指定します。tones[ ]配列は、音の矩形波がHight/LOWになっている時間をmicro second単位で覚えています。

51-58行目のplayTone(int tone, int duration)が実際に音を鳴らしている関数です。digitalWrite(BUZZER_PIN, HIGH)でブザーを鳴らしdelayMicroseconds(tone)でtoneで指定されたmicro secondだけ待ちます。次にdigitalWrite(BUZZER_PIN, LOW)でブザーを止めdelayMicroseconds(tone)でtoneで指定されたmicro secondだけ待ちます。toneで指定されるmicro secondが非常に短い時間なので、このOn/Offの繰り返しで音の高さを調整しています。音を鳴らしている時間の調整は52行目で行なっています。

実行してみると、綺麗な音ではありませんが、一応メロディーに聞こえます。

諸元

名称Buzzer
ブザー
バージョンv1.2
Seeed社 Wikihttp://wiki.seeedstudio.com/Grove-Buzzer/
スイッチサイエンス商品ページhttps://www.switch-science.com/catalog/804/
Nefry BT無印 動作ソケットD2, A0, A2
Nefry BT R2 動作ソケットD0, D2, D5, A0(プログラム上はA1)

「Nefry BTとGroveモジュール接続実験」 トップページ

 

[Nefry BTとGrove接続実験] リレー

注意:Groveリレーモジュールの電子回路は5V用に設計されているようなので、Nefry BTが供給する3.3Vでは回路が壊れる可能性があります。筆者の環境では下記の内容で動作しましたが、壊れないことを保証するものではありません。

リレーモジュール

私が購入したGROVEスターターキットV3に入っていたリレーモジュールは、Relay V1.2というモジュールです。スイッチサイエンスさんの単体販売ページに掲載されているものと同じです。

Groveリレー

右側の黒い箱がリレーです。左にある緑色部分にOn/Offしたい機器のケーブルを接続します。ケーブルの固定は上部のマイナスネジを回して行います。

リレーモジュールの動作

1(HIGH)を送ると回路が接続し、0(LOW)を送ると回路を切断します。接続する回路は、リレー上面に記載されている仕様を満たしていなければなりません。

リレーモジュールには回路の接続/切断状態を表すLEDが取り付けられています。回路が接続状態のときLEDが点灯し、切断状態のときLEDが消灯します。

回路が接続状態のときLEDが点灯

プログラム

1秒ごとに回路の接続・切断を繰り返すプログラムです。digitalWrite(ピン, 設定値) を使ってHIGHとLOWを交互に設定しています。

諸元

名称Relay
リレー
バージョンv1.2
Seeed社 Wikihttp://wiki.seeedstudio.com/Grove-Relay/
スイッチサイエンス商品ページhttps://www.switch-science.com/catalog/807/
Nefry BT無印 動作ソケットD2, A0, A2
Nefry BT R2 動作ソケットD0, D2, D5, A0(プログラム上はA1)

「Nefry BTとGroveモジュール接続実験」 トップページ

 

[Nefry BTとGrove接続実験] 音センサ

音センサーモジュール

私が購入したGROVEスターターキットV3に入っていた音センサモジュールは、Sound Sensor V1.6というモジュールです。スイッチサイエンスさんの単体販売ページに掲載されているものと同じです。

黒い丸い部分がマイクで、その下にあるICはアンプです。

Grove音センサ(表)
Grove音センサ(裏)

音センサモジュールの動作

音センサモジュールはアナログモジュールです。音の大きさに応じて出力される電圧が変化します。

プログラム

analogRead( )関数を使って音センサーから読み込んだ値をシリアルモニタに表示するプログラムです。

このプログラムを動作させると、このように数字列が表示されます。

シリアルモニタ出力例

数値が激しく変化していますね。音の情報なので変化速度や変化量が大きいためだと思われます。100ms周期でデータを取るのは遅すぎるようです。

Seeed社のWikiページに掲載されているプログラムは次のようになっています。

32回測定してその平均を計測結果にしています。また、計測は10ms周期で行なっています。

これだけ短い周期で結果をシリアルモニタに出力すると、値がどんどん流れて行ってしまい、全体の傾向がどうなっているのかがわかりません。

シリアルプロッタを使うと、結果をわかりやすく表示できます。シリアルプロッタを開く手順は次の通りです。

  1. シリアルモニタが開いている場合は閉じます
  2. ツールメニューのシリアルプロッタを選択します。
ツルーメニューでシリアルプロッタを選択

シリアルプロッタには次のようなグラフが表示されます。

シリアルプロッタ表示例

諸元

名称Sound Sensor
音センサ
バージョンV1.6
Seeed社 Wikihttp://wiki.seeedstudio.com/Grove-Sound_Sensor/
スイッチサイエンス商品ページhttps://www.switch-science.com/catalog/816/
Nefry BT無印 動作ソケットA2
Nefry BT R2 動作ソケットA0(プログラム上はA1)

「Nefry BTとGroveモジュール接続実験」 トップページ