DesignSpark Electrical Logolinkedin
Menu Suche
Ask a Question

16 Apr 2019, 13:24

Ein erster Blick auf das Grove-Starterkit für Arduino

Inhalt des Kits, ein paar der Module ausprobieren und einfache Projekte aufbauen.

Grove ist ein modulares, benutzerfreundliches System von Seeed, mit dem sich ein Prozessor (z. B. ein Arduino) mit einer Vielzahl von „Modulen“ wie Sensoren, Motoren und Eingängen verbinden lässt. Daher ist es eine großartige Möglichkeit, in kurzer Zeit Prototypen für Projekte zu erstellen.

Was ist in der grünen Box?


Das Grove-Starterkit für Arduino (174-3221) enthält die Grove-Schnittstelle (das Basis-Shield) und 15 Module, die sich daran anschließen lassen. Die Idee besteht darin, dass Sie jedes der im Lieferumfang enthaltenen Module über das Basis-Shield ohne Löten oder zusätzliche Drähte mit Ihrem Arduino verbinden und daher schnell und problemlos mit den ersten Schritten beginnen können.

Es handelt sich um:

  • Basis-Shield 1
  • Grove – LCD-RGB-Hintergrundbeleuchtung  
  • Grove – Intelligentes Relais 1
  • Grove – Summer 1
  • Grove – Geräuschsensor 1
  • Grove – Berührungssensor 1
  • Grove – Drehwinkelsensor 1
  • Grove – Temperatursensor 1
  • Grove – LED 1
  • Grove – Lichtsensor 1
  • Grove – Taste 1
  • DIP-LED Blau-Blau 1
  • DIP-LED Grün-Grün 1
  • DIP-LED Rot-Rot 1
  • Mini-Servomotor 1
  • Grove-Kabel 10
  • Adapter 9 V auf Hohlstecker 1

All dies ist sicher in einer schönen grünen Kunststoffbox verpackt, der ein gefaltetes Blatt Papier im DIN-A3-Format beigelegt ist. Dieses enthält auf einer Seite Informationen zu den mitgelieferten Modulen und einige Beispiele für die ersten Schritte.

Das Basis-Shield


Das Herzstück des Grove-Systems ist das Basis-Shield. Es passt auf ein Arduino wie jedes andere Shield und verfügt über 8 digitale, 4 analoge und 4 I2C-Ports. Es handelt sich jeweils um identische 4-polige Buchsen, sodass sich die mitgelieferten Kabel an jedem dieser Ports anschließen lassen.

Es gibt auch eine Betriebs-LED, eine Reset-Taste und einen Kippschalter für die Stromversorgung, um je nach verwendeter Mikrocontrollerplatine 5 V oder 3,3 V auszuwählen. Da ich ein Arduino Uno verwende, habe ich ihn auf 5 V umgeschaltet.

Module

Grove produziert mehr als 70 verschiedene Module. Im Lieferumfang des Kits sind eine Reihe von Sensoren und Benutzerschnittstellen enthalten, die eine gute Vorstellung von den Möglichkeiten des Grove-Systems vermitteln. Mit den Sensoren lassen sich Temperatur, Licht und Geräusche messen. Zu den anderen Modulen gehören beispielsweise eine RGB-LCD-Hintergrundbeleuchtung, ein Servomotor, eine LED, ein Summer und alle benötigten Kabel.

Im Kit werden eine Unmenge an Support-Materialien sowie die gedruckte Anleitung mitgeliefert und die Website von Seeed enthält Abschnitte mit Wikis und Projekten. Der Github ist voll mit Sketches für Arduino und anderen Dateien zur Verwendung mit den Grove-Modulen.

Verschiedene Module mit den Beispiel-Sketches ausprobieren

Geräuschsensor


Der Geräuschsensor ist eine der im Lieferumfang des Starterkits enthaltenen Demos. Ich habe den Geräuschsensor und die LED der Anleitung entsprechend angeschlossen (Wichtig: Die LED muss richtig herum eingesetzt werden). Der bereitgestellte Sketch sah vor, dass die LED standardmäßig leuchtete und sich ausschaltete, wenn ein Geräusch erkannt wurde. Umgekehrt erschien es mir sinnvoller, daher bearbeitete ich den Sketch durch Umkehrung der Einstellungen für „Hoch“ und „Niedrig“ am LED-Pin so, dass die LED bei Geräuscherkennung eingeschaltet wurde. Außerdem passte ich den Schwellenwert an, um die Empfindlichkeit des Mikrofons etwas zu verringern.

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


Lichtsensor

Ein weiteres einfaches Beispiel, bei dem eine LED eingeschaltet wird, wenn die Lichtintensität unter einen bestimmten Wert fällt. Auch hier war es leicht, die Module zu verbinden, und der kurze Sketch ließ sich problemlos so bearbeiten, dass sich die LED bei einer anderen Lichtintensität einschaltete.

Ich dachte sofort daran, wie nützlich so etwas wäre, wenn ich die Treppenbeleuchtung vor meiner Haustür an dunklen Winterabenden einschalten wollte.

Etwas aufwändigere Projekte

Glückskeks

Der Link zur Seite mit der Bauanleitung für dieses Projekt befindet sich in der Dokumentation des Kits. Es wird dort als „Wahrsage-Box“ beschrieben: „Per Tastendruck in die Zukunft blicken.“

Was in der Anleitung nicht erwähnt wurde: Da dieses Projekt das LCD verwendet, musste ich in Arduino IDE die entsprechende Bibliothek herunterladen und installieren.

Hierzu musste ich nur im Bibliotheksmanager von Arduino IDE nach „Grove“ suchen.

Nach der Installation der Bibliothek schloss ich das LCD an einen der I2C-Ports und die Taste an den digitalen Port D4 an. Anschließend lud ich über den Link auf der Seite mit der Bauanleitung den Sketch herunter und öffnete ihn in Arduino IDE. In meiner pessimistischen nachweihnachtlichen Stimmung hatte ich das Gefühl, der Glückskeks wäre viel zu fröhlich und optimistisch. Das ließ sich aber leicht ändern, indem ich den Sketch ein wenig bearbeitete.

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

 

Ich lud den Sketch auf mein Arduino und erhielt ein Gerät, das als „Stimme des Unheils“ angemessen pessimistische Einzeiler von sich gab.

Ich frage mich inzwischen, ob man es abwandeln könnte, um schräge Strategien zu generieren.

Servometer

Hierbei handelt es sich um einen einfachen Temperaturdetektor (ein Thermometer), der die Temperatur anzeigt, indem er den Arm des Grove-Servomotors bewegt. Auch in diesem Fall sind die Anleitung und der Arduino-Sketch zum Herunterladen auf der Seite mit der Bauanleitung zu finden.

Indem man einen langen Arm an den Servomotor anbaut, lässt sich der Messwert besser ablesen und der Temperaturdetektor kann problemlos mit einem vorhandenen Thermometer kalibriert werden. Ich habe den Arm nur verwendet, um die Umgebungstemperatur anzuzeigen, aber mir scheint klar, wie er sich zur Überwachung der Temperatur im Inneren eines PCs, eines Kühlschranks oder eines ähnlichen Geräts verwenden lässt und ein deutliches Signal gibt, wenn etwas nicht in Ordnung ist.

Fazit

Dieses Kit bietet eine großartige Einführung in die praktischen Einsatzmöglichkeiten eines Arduino in Kombination mit verschiedenen Sensoren und Ausgängen. Die ersten Schritte sind wirklich einfach und Seeed bietet ein paar witzige Projekte zur Einführung an. Da für die verschiedenen Module im Internet sehr viele Materialien zur Unterstützung verfügbar sind, bereitet es keine Probleme, die Projekte auszubauen oder sich an aufwändigeren Aufgaben zu versuchen.

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.

16 Apr 2019, 13:24

Kommentare