DesignSpark Electrical Logolinkedin
Ask a Question

Présentation du Grove Starter Kit for Arduino



Grove est un système modulaire et simple d'utilisation conçu par Seeed pour connecter facilement un processeur, tel qu'un Arduino, à une large gamme de "modules", tels que des capteurs, des moteurs et des entrées. C'est donc d'un excellent moyen de réaliser rapidement des prototypes de projets.

Que contient la boîte verte ?


Le Grove Starter Kit pour Arduino (174-3221) contient l'interface Grove (le Base Shield) et 15 modules qui s'y connectent. L'idée est que vous pouvez connecter n'importe lequel des modules à votre Arduino via le Base Shield sans soudure ni fil supplémentaire, ce qui permet de démarrer rapidement et facilement avec les modules fournis avec le kit.

Ces modules sont les suivants :

  • Base Shield 1
  • Grove – LCD RGB Backlight (rétroéclairage RVB LCD)  
  • Grove – Smart Relay 1 (relais intelligent)
  • Grove – Buzzer 1 (alarme sonore)
  • Grove – Sound Sensor 1 (capteur audio)
  • Grove – Touch Sensor 1 (capteur tactile)
  • Grove – Rotary Angle Sensor 1 (capteur d'angle de rotation)
  • Grove – Temperature Sensor 1 (capteur de température)
  • Grove – LED 1
  • Grove – Light Sensor 1 (capteur de lumière)
  • Grove – Button 1 (bouton)
  • DIP LED Blue-Blue 1 (LED bleue-bleue)
  • DIP LED Green-Green 1 (LED verte-verte)
  • DIP LED Red-Red 1 (LED rouge-rouge)
  • Mini Servo 1
  • Grove Cables 10
  • 9V to Barrel Jack Adapter 1 (adaptateur 9 V vers jack cylindrique)

Tout ceci est livré dans un joli coffret en plastique vert avec une feuille de papier A3 pliée, dont un côté contient des informations sur les modules inclus et quelques exemples pour vous aider à démarrer.

Le Base Shield

Le cœur du système Grove est le Base Shield. Il accepte un Arduino, comme tout autre Shield, et comprend 8 ports numériques, 4 ports analogiques et 4 ports I2C. Ce sont les mêmes fiches femelles à 4 broches, et les câbles fournis peuvent donc être utilisés sur n'importe lequel d'entre eux.

Il intègre également une LED d'alimentation, un bouton de réinitialisation et un interrupteur d'alimentation à bascule pour sélectionner 5 V ou 3,3 V selon la carte de microcontrôleur que vous utilisez. Étant donné que j'utilise une Arduino Uno I, j'ai réglé l'alimentation sur 5 V.

Modules

Grove produit plus de 70 modules différents. Les modules fournis avec le kit offrent une gamme de capteurs et d'interfaces utilisateur qui donne une bonne idée de ce qui est possible avec le système Grove. Les capteurs incluent la détection de température, de lumière et de son ; d'autres modules incluent un écran LCD RVB rétroéclairé, un servomoteur, une LED, une alarme et tous les câbles dont vous avez besoin.

Il existe une documentation riche, ainsi que des instructions imprimées qui accompagnent le kit. Le site Web de Seeed propose un wiki et une section Projects, et leur Github est rempli de codes Arduino et d'autres fichiers à utiliser avec les modules Grove.

Essayer différents modules avec les exemples de codes

Capteur de son


Le capteur de son est l'une des démonstrations fournies avec le Starter Kit. J'ai connecté le capteur de son et la LED comme indiqué (en veillant à insérer la LED dans le bon sens dans sa fiche). Le code fourni active la LED par défaut et la désactive lorsqu'un son a été détecté. Cela m'a semblé étrange et j'ai donc modifié le code pour allumer la LED lorsqu'un son est détecté en inversant les réglages High (haut) et Low (bas) de la broche de LED dans le code. J'ai également ajusté la valeur de seuil pour rendre le microphone légèrement moins sensible.

// 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);
}


Capteur de lumière

Un autre exemple simple qui allume une LED lorsque le niveau de luminosité descend en-dessous d'une valeur définie. Une fois de plus, la connexion des modules était simple et le code court était facile à modifier pour changer le niveau de lumière qui allume la LED.

J'ai immédiatement pensé qu'il serait utile d'allumer des lumières pour éclairer les marches jusqu'à ma porte d'entrée lors des sombres nuits d'hiver.

Des projets un peu plus élaborés

Lucky Dumpling

Un lien vers la page Instructables pour ce projet figure dans le kit de documentation. Il le décrit comme une "boîte de divin. Appuyez sur le bouton pour découvrir votre avenir."

Ce que les instructions ne mentionnent pas, c'est que, étant donné que ce projet utilise l'écran LCD, j'ai dû télécharger et installer la bibliothèque appropriée dans Arduino IDE.

C'était facile en recherchant "Grove" dans le gestionnaire de bibliothèques d'Arduino IDE

Une fois la bibliothèque installée, j'ai connecté l'écran LCD à l'un des ports I2C et le bouton au port numérique D4. J'ai ensuite téléchargé le code à partir du lien sur la page Instructables et l'ai ouvert dans Arduino IDE. Victime de l'anxiété d'après Noël, j'ai eu l'impression que le Lucky Dumpling était bien trop joyeux et optimiste, mais cela a été résolu facilement en modifiant le code.

#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);
}


Après avoir transféré le code sur mon Arduino, j'ai à présent un appareil "Voix maudite" qui distribue des tirades proprement déprimantes.

Je me demande maintenant s'il pourrait être adapté pour générer des stratégies obliques .

Servomètre

Il s'agit d'un simple détecteur de température (un thermomètre) qui indique la température en déplaçant le bras sur le servomoteur Grove. Encore une fois, les instructions, y compris le code Arduino téléchargeable, sont disponibles sur le site Instructables.

L'ajout d'un bras long au servomoteur rend la lecture plus claire et il est facile à étalonner à l'aide d'un thermomètre existant. Je l'ai simplement utilisé pour indiquer la température ambiante, mais je peux voir comment il pourrait être utilisé pour surveiller la réfrigération ou l'intérieur d'un PC ou d'un autre appareil, donnant un signal clair lorsque les choses partent de travers.

Conclusion

Ce kit offre une excellente introduction aux utilisations pratiques d'une carte Arduino combinée à divers capteurs et sorties. Il est très facile de se lancer, et Seeed propose des projets d'introduction amusants. La quantité de documents d'aide pour les différents modules sur Internet signifie qu'il est facile de développer davantage les choses et de concevoir des projets plus complexes.

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.

13 May 2019, 7:24

Commentaires