嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

初识支持Arduino的Grove入门套件

top_11689c597bf43e69d5e6e893c6efdda6862a9da7.jpg
套件包含的内容,推出的一些模型和基础项目。

Grove是一个模块化,易于使用的系统,由Seeed设计,可轻松将处理器(如Arduino)连接到各种“模块”,如传感器,电机和输入。 因此,用它来快速建立原型项目是一个很棒的方法。

 Green盒子里面都有什么?

contents1_0e43661ab6bae6483131af0ebb85ccffdca98bdb.jpg
Arduino的Grove入门套件(174-3221)包含Grove接口 - 基础屏蔽 - 以及插入其中的15个模块。 我们的想法是,您可以通过底座屏蔽将任何模块连接到Arduino,无需任何焊接或额外的电线,从而可以快速轻松地开始使用各个模块。

内容有:

  • 基础屏蔽 1
  • Grove – LCD RGB 背光 
  • Grove – 只能继电器 1
  • Grove –蜂鸣器 1
  • Grove – 声音传感器 1
  • Grove – 触摸传感器 1
  • Grove – 旋转角度传感器 1
  • Grove – 温度传感器 1
  • Grove – LED 1
  • Grove – 光传感器 1
  • Grove – 按钮 1
  • DIP LED 蓝-蓝 1
  • DIP LED 绿-绿 1
  • DIP LED Red-Red 1
  • 迷你伺服电机 1
  • Grove 线 10
  • 9V to Barrel Jack 适配器 1

所有这一切都安全地包装在一个漂亮的绿色塑料盒子里,里面有折叠的A3纸,是有关于模块的信息,还有一些入门的示例。

基础屏蔽

Base_shield1_d93ba1a02ab3087166489329aa67503d4180c2eb.jpg
Grove系统的核心是基础屏蔽(Base Shield)。 它与Arduino相同,与任何其他屏蔽相同,具有8个数字端口,4个模拟端口和4个I2C端口。 这些都是相同的4针插座,因此所提供的线可用于任何一个。

Base_shield_7cf7aa014be7d61b43693ac60dd985d9557ace21.jpg

还有一个电源LED,一个复位按钮和一个电源切换开关,可根据您使用的微控制器板选择5V或3.3V。 当我使用Arduino Uno时,我将其切换到5V。

模型

Grove生产70多种不同的模块。 随套件提供的产品提供了一系列传感器和用户界面,Grove系统提供了更多的可能性。 传感器包括温度,光线和声音,其他模块包括背光RGB LCD,伺服电机,LED,蜂鸣器和您需要的所有电线。

这个工具包附带了大量的支持材料和打印说明,Seeed网站上有一个wiki和一个Projects部分,他们的Github上塞满了Arduino草图以及与Grove模块一起使用的其他文件。

推出的各种模块的示例图

声音传感器

Sound_Sensor_db29ddb19b883555cc2314f796fc4d23e3002423.jpg
声音传感器是入门套件附带的演示之一。 我按照说明连接了声音传感器和LED(确保我的LED在其插座中正确的方向)。 草图默认设置LED是在检测到声音时将其关闭。 这对我来说似乎是错误的方式所以我编辑了草图,通过反转草图中LED引脚的高低设置,在检测到声音时打开LED。 我还调整了阈值,使麦克风的灵敏度稍微降低。

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


光传感器

Light_sensor1_b8581ca4bae85ffae56140dbc8e3ee9c1b2b33ad.jpg

另一个简单的例子,当亮度低于设定值时,它会打开LED。 再次连接模块很简单,简短的草图很容易编辑,以改变打开LED的光线水平。

我立即想到这样的事情有多么有用,可以在黑暗的冬夜里打开灯照亮前门的台阶。

精心制作的项目

幸运的饺子

Dumpling_4edbaed09354d77dd5926314767fbd53036e0df1.jpg在工具包文档中有一个指向此项目的Instructables页面的链接。 它将其描述为“算命先生箱”。 按下按钮可以瞥见你的未来。“

另外补充说明,由于这个项目使用LCD,我需要在Arduino IDE中下载并安装相关的库。

Library_manager_c6e2c913310ce75b080dbef0fff6f9b18865b56c.png

通过在Arduino IDE的库管理器中搜索“Grove”,可以轻松完成此操作

安装磁带库后,我将LCD连接到其中一个I2C端口,将按钮连接到数字端口D4。 然后我从Instructables页面上的链接下载了草图,并在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我现在有一个“毁灭之声”设备,显示了悲惨的一行。

disaster_4883b2bdf2badd70569c8d9af1855033e0798b67.jpg

我现在想知道它是否可以适应生成倾斜策略(Oblique Strategies)。

OS_489f93969f5cf15a7836425b27e610f1d30844a9.jpg

伺服马达

servometer_bba83e19c6c021da097b3a25203f8ab3ecd392b3.jpg
这是一个简单的温度探测器 - 温度计 - 通过移动Grove伺服电机上的臂来指示温度。 同样,可以在Instructables站点上找到说明,包括可下载的Arduino草图。

在伺服机上增加一个长臂可以使读数更清晰,并且可以使用现有的温度计轻松校准。 我只是用它来表示环境温度,但我可以看到它如何用于监控制冷或PC内部或类似物,并在出现问题时给出清晰的信号。

总结

该套件提供了Arduino与各种传感器和输出相结合的实际应用的精彩介绍。 它很容易上手,Seeed提供了一些有趣的入门项目。 互联网上各种模块的支持材料意味着可以很容易地进一步开发并构建一些更复杂的项目。

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.