GROVE - Starter Kit v1.1.1b:
- Upgrade Serial LCD to v1.0b.
- Dump the unnecessary edge mounting of the Grove - Protoshield.
- Solder the second I2C in the Base Shield.
The Grove Starter Kit v1.1b consists of the following items, as pictured below:
- One Grove Base board – this allows you to connect various “Grove Units” (below) to your Seeeduino board;
- Nine Grove “Grove units”, consisting of:
- Grove - button;
- Grove - LED;
- Grove - Tilt Switch;
- Grove - Buzzer;
- Grove - Rotary Angle Sensor;
- Grove - Relay;
- Grove - Temperature Sensor;
- Grove - Serial LCD;
- Grove - Protoshield;
- Ten pre-formed connecting wires to bridge Grove units to the Grove Base board (not shown)
Now let's look at each component in more detail.
Grove Base Board
First we start with the Grove base shield board. Grove Base board is the new version of Electronic Brick Shield.The Grove base-pin buckled connectors also make the wiring situation more stable. We build all kinds of Grove units to match up with Grove Base Board. Still, you need not worry about compatibility between the Grove Grove Shield and your existing Electronic Bricks. We have many kinds of converter cables(still increasing) to deal with backwards-compatibility. The Grove is very similar in fashion to an Arduino shield board, and in fact is used as such with our Seeeduino or Mega board. In v1.0b, we move the analog connectors inward a little so that it will fit the higher power connector and USB connector. Here is a top-down view:
The purpose of the Grove base shield is to allow easy connection of any microprocessor input and output pins to the Grive units. Each socket is clearly labelled with its matching I/O pin. For a more detailed examination of the Grove, Grove units and an output Grove which have two signal pins simultaneously (now the starter Kit v1.0b doesn't have two signal pins Grove), separate your wires so that a socket is between them as such:
Wires for two signal Grove units cannot sit side-by-side on the Grove Base board because one pin (such as D2) will be multi-using. Or, if two Grove units only use one digital pin, such as the tilt switch and the piezo, they can sit together on the Grove Base board as they only use one of the digital lines in the connecting wire and therefore will not interfere with each other. It is the same as the Analog I/O sockets. Make sure you know the silkscreen of each socket before you start wiring.
Grove units
Each "Grove" is a peripheral board that connects to the Grove System "Grove" shield using a consistent 4-wire connectorised cable. The connector leads are Ground, Vcc, D2, and D1, where the D1 and D2 leads may be digital or analog input or output, depending on the equipment on the Grove units. The same format also supports I2C (IIC) signalling, and several of the Grove Base shield connectors are tied to Analog pins 4 and 5 to support it for future I2C-based Grove units.
Next, let's examine each of our “Grove units”, and then use each on in an example Arduino sketch that we can use with our Seeeduino boards...
Grove - Button
This new version of button Grove contains one independent button, which are configured with pull-down resistor – ready for use with our microcontrollers as digital input. The button signals the SIG(D1) wire,NC(D2) is not used on this Grove .
ButtonSchematic
Grove - LED
This new version of LED Grove consists of one green LED. It operates from SIG(D1). Perfect for use on Seeeduino digital outputs, or also can be controlled using pulse-width modulation. Each LED has a current-limiting resistor, which protects the LED and the Arduino from high current.
LED Grove Schematic
Now we can use Button module and LED module to make a small project: The LED will on when pushing the button otherwise the LED stays off. You will need a Grove - Basic Shield to connect those two Grove units to Seeeduino/Arduino. Connect Button module to D8 of Grove and LED module to D6; Then download the following sketch to Seeeduino/Arduino.
Connect the Grove units like the following Picture shows:
const int buttonPin = 8; //); } }
Grove - Tilt switch
The tilt switch Grove is the equivalent of a button, and is used as a digital input. When the switch is level it is open, and when tilted, the switch closes. We can see from the schematic that it is wired to the SIG(D1) line, NC(D2) is not used on this Grove ; So the SIG(D1) outouts LOW when open and HIGH when due to the surface-mount resistor .
Tilt switch Grove Schematic.
Buzzer Grove Schematic
The following example shows that Piezo Buzzer will beep as an alarm when Tilt Swtich is tilted.You will need a Grove - Basic Shield to connect those two Grove units to Seeeduino/Arduino. Connect Tilt switch Grove to D3 of Grove Base Board and Piezo Buzzer module to D9; Then download the following sketch to Seeeduino/Arduino.
Connect the Grove units like the following Picture shows:
const int tiltPin = 3; // the number of the tilt pin const int buzzerPin = 9; // the number of the buzzer pin // variables will change: int tiltState = 0; // variable for reading the tilt status void setup() { // initialize the buzzer pin as an output: pinMode(buzzerPin, OUTPUT); // initialize the tilt pin as an input: pinMode(tiltPin, INPUT); } void loop(){ // read the state of the tilt value: tiltState = digitalRead(tiltPin); // check if the tilt is close. // if it is, the tiltState is HIGH: if (tiltState == HIGH) { // turn buzzer on: digitalWrite(buzzerPin, HIGH); } else { // turn buzzer off: digitalWrite(buzzerPin, LOW); } }
Grove - Rotary Angle Sensor
The potentiometer Grove produces analog output between 0 and Vcc (5V DC with Seeeduino) on its SIG(D1) Pin. The D2 Pin is NC(not used). The angular range is 300 degrees with a linear change in value. The resistance value is 10k ohms, perfect for Arduino use. This may also be known as a “rotary angle sensor”.
Potentiometer Schematic
The following example shows that Seeeduino/Arduino reads Potentiometer Grove from A0(analog input pin 0), maps the result to a range from 0 to 255 and uses the result to set the pulsewidth modulation (PWM) of D9(digital output pin 9). You will need a Grove - Basic Shield to connect those two Grove units to Seeeduino/Arduino. Connect Potentiometer Grove to A0 of Grove Base board and LED Grove to D9; Then download the following sketch to Seeeduino/Arduino.
Connect the Grove units like the following Picture shows:() { // none } void loop() { // read the analog in value: sensorValue = analogRead(analogInPin); // map it to the range of the analog out: outputValue = map(sensorValue, 0, 1023, 0, 255); // change the analog out value: analogWrite(analogOutPin, outputValue); // wait 10 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(10); }
Grove - Relay
The Relay Grove.
Relay Schematic
The following example shows that Relay Grove close when Tilt Swtich is level; and open when Tilt Swtich is tilted.You will need a Grove - Basic Shield to connect those two Grove units to Seeeduino/Arduino. Connect Tilt switch Grove to D3 of Grove Base Board and Relay Grove to D9; Then download the following sketch to Seeeduino/Arduino.
Connect the Grove units like the following Picture shows:
const int tiltPin = 3; // the number of the tilt pin const int relayPin = 9; // the number of the relay pin // variables will change: int tiltState = 0; // variable for reading the tilt status void setup() { // initialize the relay pin as an output: pinMode(relayPin, OUTPUT); // initialize the tilt pin as an input: pinMode(tiltPin, INPUT); } void loop(){ // read the state of the tilt value: tiltState = digitalRead(tiltPin); // check if the tilt is close. // if it is, the tiltState is HIGH: if (tiltState == LOW) { // turn relay on: digitalWrite(relayPin, HIGH); } else { // turn relay off: digitalWrite(relayPin, LOW); } delay(10); }
Grove -
Grove - Serial LCD
This has been upgrated to Serial LCD v1.0b v1.0b library.
Before using your LCD Grove , download the library from: ,or click Seeedstudio SerialLCD v1.0b library. Then extract the “SerialLCD-Library.zip” folder and copy it into your Arduino libaries folder, usually located at ..\Arduino-xx\libraries.
Please see project six described later on in this guide.For a detailed information on how to use your Serial LCD Grove ,you can go to Grove - Serial LCD page,there are plenty of examples.
The following example shows that Seeeduino/Arduino reads Temperature Sensor Grove from A0(analog input pin 0), and use Serial LCD Grove to display the temperatuer. You will need a Grove - Basic Shield to connect those two Grove units to Seeeduino/Arduino. Connect Potentiometer Grove to A0 of Grove Base board and Serial LCD Grove to D11; You also need the Seeedstudio SerialLCD v1.0b library to make the Serial LCD to work.Then download the following sketch to Seeeduino/Arduino.
Connect the Grove units like the following Picture shows:
#include <SerialLCD.h> #include <SoftwareSerial.h> //this is a must #include <math.h> // initialize the library SerialLCD slcd(11,12);//this is a must, assign soft serial pins const int tempPin = 0; void setup() { // set up slcd.begin(); // Print a message to the LCD. slcd.print("Temperature is:"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): slcd.setCursor(0, 1); // print the number of seconds since reset: // float TT = readTemp(); SLCDprintFloat( readTemp() ,1); slcd.print(" Celsius"); delay(1000); } void SLCDprintFloat(double number, uint8_t digits) { // Handle negative numbers if (number < 0.0) { slcd.print('-'); number = -number; } // Round correctly so that slcd.print(1.999, 2) prints as "2.00" double rounding = 0.5; for (uint8_t i=0; i<digits; ++i) rounding /= 10.0; number += rounding; // Extract the integer part of the number and print it unsigned long int_part = (unsigned long)number; float remainder = number - (float)int_part; slcd.print(int_part , DEC); // base DEC // Print the decimal point, but only if there are digits beyond if (digits > 0) slcd.print("."); // Extract digits from the remainder one at a time while (digits-- > 0) { remainder *= 10.0; float toPrint = float(remainder); slcd.print(toPrint , DEC);//base DEC remainder -= toPrint; } } float readTemp() { const int B=3975; double TEMP; int sensorValue = analogRead( tempPin ); float Rsensor; Rsensor=(float)(1023-sensorValue)*10000/sensorValue; TEMP=1/(log(Rsensor/10000)/B+1/298.15)-273.15; return TEMP; }
Grove - Protoshield
This Grove module.
Hardware Installation
Here is how to assemble Stardle Kit with Starter bundle harness.
For more infornation you can go to Starter bundle harness.
Example
Now you should be familiar with your Grove Base Board.
How to buy
Click here to buy GROVE - Starter Kit ,or other products you like.