DesignSpark Electrical Logolinkedin
Menu 検索
フォーラムで質問

Arduino用 Grove スターターキット の製品レビュー


モジュールの一部を使用して、基本的なプロジェクトを作成する。

Seeed社によって提供されているGroveシリーズは、センサーやアクチュエータをモジュール式に、簡単に拡張できるシステムです。Arduinoなどのマイコンボードにセンサ、モニタ、各入出力などの「モジュール」を簡単に接続できる。そのため、超短時間でのプロトタイピングに最適だ。

緑色のボックスの中身

Grove - スタータキット(Arduino対応)(174-3221) には、Groveインターフェイス(ベースシールド)と、15個のモジュールが含まれている。つまり、モジュールのいずれかをベースシールドでArduinoに接続できる。はんだ付けや追加ワイヤは不要なため、キットで提供されているモジュールに速く簡単に取り掛かることができる。

キットの内容は、以下のとおりだ。

  • ベースシールド x 1
  • Grove – LCD RGBバックライト  
  • Grove – スマートリレー x 1
  • Grove – ブザー x 1
  • Grove – サウンドセンサ x 1
  • Grove – タッチセンサ x 1
  • Grove – 回転角度センサ x 1
  • Grove – 温度センサ x 1
  • Grove – LED x 1
  • Grove – 光センサ x 1
  • Grove – ボタン x 1
  • DIP LED 青/青 1
  • DIP LED 緑/緑 1
  • DIP LED 赤/赤 1
  • ミニサーボ x 1
  • Groveケーブル x 10
  • 9Vバレルジャックアダプタ x 1

これらがおしゃれなライトグリーンのプラスチックボックスに入っており、さらに折りたたまれたA3サイズの取扱い説明書が1枚入っている。この紙の片面にはキットに含まれるモジュールに関する情報と、使用を開始するためのサンプルが記載されている。

ベースシールド

Groveシステムの要となるのは、ベースシールドだ。これは、他のシールドと同じくArduinoにぴったりで、8個のデジタルポート、4個のアナログポート、4個のI2Cポートを備えている。これらはすべて同じ4ピンソケットなので、どのポートにも付属のケーブルを使用できる。

さらに、1個の電源LEDと1個のリセットボタンに加え、使用しているマイクロコントローラボードによって5Vと3.3Vのいずれかを選択できる電源トグルスイッチが1個ある。私はArduino Unoを使用しているため、スイッチを5Vに切り替えた。

モジュール

Groveは、70種類を超えるモジュールを提供している。このキットにはさまざまなセンサとユーザーインターフェイスが含まれており、それらを見ればGroveシステムで何ができるかが分かる。センサには、温度、光、音声などのモジュールが含まれており、バックライトRGB LCD、サーボモータ、LED、ブザーに加え、必要なすべてのケーブルが付属している。

さらに、キットには、さまざまな補足資料に加え、印刷された取扱説明書が含まれている。SeeedのWebサイトにはWiki[Projects](プロジェクト)セクションがあり、GitHubGroveモジュールで使用するArduinoスケッチなどのファイルが公開されている。

サンプルスケッチでさまざまなモジュールを試す

サウンドセンサ

サウンドセンサは、スタータキットに付属しているデモの1つだ。私はサウンドセンサとLEDを手順に従って接続した(LEDをソケットの正しい方向に取り付けたことも確認した)。付属のスケッチでは、LEDがデフォルトでオンに設定されており、音声が検知されるとオフに切り替わるようになっていた。これではあべこべに思えたので、スケッチを編集し、スケッチのLEDピンの「High」と「Low」の設定を逆にして、音声が検知されるとLEDがオンになるようにした。さらに、「thresholdValue」を変更して、マイクの感度を少し下げた。

// demo of Starter Kit V2.0 - Grove Sound Sensor
// when sound larger than a certain value, led will on

const int pinSound = A0;               // pin of Sound Sensor
const int pinLed   = 7;                // pin of LED

int thresholdValue = 70;                 // the threshold to turn on or off the LED

void setup()
{
    pinMode(pinLed, OUTPUT);            //set the LED on Digital 12 as an OUTPUT
}

void loop()
{
    int sensorValue = analogRead(pinSound);   //read the sensorValue on Analog 0
    if(sensorValue>thresholdValue)
    digitalWrite(pinLed,LOW);
    delay(200);
    digitalWrite(pinLed,HIGH);
}

 

光センサ

もう1つのシンプルなサンプルは、光レベルが設定値を下回ると、LEDがオンになるというものだった。これもモジュールへの接続は簡単で、短いスケッチを簡単に編集して、LEDがオンになる光レベルを変更できた。

これがどんなに便利かはすぐに分かった。暗い冬の夜に、LEDをオンにして玄関ドアまでの階段を照らすことができる。

少し複雑なプロジェクト

ラッキーダンプリング

キットのマニュアルに、このプロジェクトの手順ページへのリンクが記載されている。このページには、「a fortune teller box. Press the button to gain glimpses into your future. (占いボックス。ボタンを押して未来を占いましょう。)」と記載されている。

この手順に記載されていないのは、このプロジェクトではLCDを使用するため、Arduino IDEの関連ライブラリをダウンロードしてインストールする必要があるということだけだ。

これは、Arduino IDEのLibrary Managerで「Grove」を検索することによって、簡単に行える。

ライブラリのインストールが完了したら、LCDをI2Cポートのいずれかに接続して、ボタンをデジタルポートD4に接続できた。次に、手順ページのリンクからスケッチをダウンロードして、Arduino IDEで開いた。クリスマス後の不安でいっぱいだったため、「ラッキーダンプリング」とはあまりに陽気で楽観的過ぎると感じたが、スケッチを編集することで簡単に修正できた。

#include <Wire.h>
#include "rgb_lcd.h"

rgb_lcd lcd;

int delaytime = 200;

String msgs1[]= {"A disaster is","You will never","Screaming is the","Live Fast,", "Cry hard and", "Eat well and", "A creative ","They are all", "A dead head","Stay in bed.", "Tempus fugit.", "Bad Luck"};
String msgs2[] = {"coming soon.","be happy.","best medicine.","Die Young.", "feel better.", "get obese.", "mind is a curse.","after you.","is good.","", "", "is coming to u."};

byte bigHeart[8] = {
    0b00000,
    0b01010,
    0b11111,
    0b11111,
    0b11111,
    0b01110,
    0b00100,
    0b00000
};

byte smallHeart[8] = {
    0b00000,
    0b00000,
    0b01010,
    0b01110,
    0b00100,
    0b00000,
    0b00000,
    0b00000
};

void setup()
{
  lcd.begin(16, 2);
  #if 1
  lcd.createChar(0, bigHeart);
  lcd.createChar(1, smallHeart);
  #endif
  randomSeed(analogRead(A0));
}

void loop()
{
  if(digitalRead(4) == 1)
  {
    delay(10);
    if(digitalRead(4) == 1)
    {
      lcd.setRGB(100, 100, 0);
     int randomNum = random(0, 12);
     lcd.clear();
     lcd.setCursor(1, 0);
     lcd.print(msgs1[randomNum]);
     lcd.setCursor(1, 1);
     lcd.print(msgs2[randomNum]);
     delay(3000);
    }
  }
  else
  {
    openning();
  }    
}

void openning()
{
  lcd.setRGB(25, 10, 25);
  lcd.setCursor(1, 0);
  lcd.print("Voice of Doom");
  lcd.setCursor(1, 1);
  lcd.print("press to check");
  bouncing(15,1);
}

void bouncing(int x, int y)
{
    lcd.setCursor(x, y);
    lcd.write((unsigned char)0);
    delay(delaytime);
    lcd.setCursor(x, y);
    lcd.write((unsigned char)1);
    delay(delaytime);
}


スケッチをArduinoにアップロードして完成した「運命の声」デバイスは、見事に不快な一言を吐き出した。

「オブリークストラテジーズ」に適しているのではないかと思えた。

サーボメータ

これはシンプルな温度検知器(温度計)で、Groveのサーボモータのアームを動かすことによって温度を示す。これにも手順とダウンロード可能なArduinoスケッチが、手順サイトに公開されている。

サーボに長いアームを追加することで読み取りがより明確になり、既存の温度計を使用して簡単に較正できる。私は気温を表示するためにこれを使用したが、冷却状態、つまりPCなどの内側の監視に使用すれば、緊急時のシグナルにもなるだろう。

まとめ

このキットは、Arduinoをさまざまなセンサや出力方法と組み合わせ、実際に使用したい方がはじめに使用するのに最適なキットだ。簡単に始められるだけでなく、Seeedによって楽しい導入プロジェクトが提供されている。インターネット上にさまざまなモジュールの補足資料が多数公開されているため、簡単に開発してより複雑なプロジェクトを作成できる。

I currently look after production at AB Open. I have a background in the arts, environmental conservation and IT support. In my spare time I do a bit of DJing and I like making things.

24 May 2019, 4:47