烦人老头

来自Microduino Wikipedia
Yanglibin@microduino.cc讨论 | 贡献2015年9月8日 (二) 11:24的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
Language English

目的

受不了吵闹的老头,一听到大的响动就就会报警,按开关停止报警。

原理

通过MIC声音检测传感器来检测鼓掌声音大小,当超过预设的声音大小时,开始计时,计时之后声音还是大,防止干扰,一定时间内持续保持声音超过预设值才认为是噪音,蜂鸣器开始报警。同时系统检测按键是否按下,当按键按下时,关闭蜂鸣器报警。

设备

模块 数量 功能
mCookie-CoreUSB/zh 1 核心板
mCookie-Hub/zh 1 传感器转接板
Microduino-Sound/zh 1 声音检测传感器
Microduino-Crash/zh 1 碰触传感器
Microduino-BUZZER/zh 1 蜂鸣器传感器
Microduino-BM/zh 1 电池管理

准备

  • Setup 1:用USB线将CoreUSB模块与PC/Mac相连,并打开Arduino IDE。
  • Setup 2:点击Files > Examples > mCookie > _102_Grumpy_Grandpa, 加载程序
  • Setup 3:选择好板卡和COM端口下载程序。

程序说明

  • 控制引脚定义,按键接到D4,MIC声音传感器接到A0,蜂鸣器接到6。用户可以自己改。
#define mic_pin A0
#define buzzer_pin 6
#define key_pin 4
  • 声音大小的预设值,大于这个值系统认为为噪音,用户可以自己更改。
  #define voice 400
  • 如果声音大小大于预设值,开始计时,计时之后声音还是大,蜂鸣器使能值为真,意味着开启蜂鸣器。
 if (voice_data > voice)
  {
    if (millis() - time > 500 )
    {
      voice_data = analogRead(mic_pin);
      if (voice_data > voice)
      {
        buzzer_speak = true;
        i = 200;
      }
      time = millis();
    }
  }
  • 检测按键是否按下,蜂鸣器使能值为假,意味着关闭蜂鸣器。
  if (key_get(key_pin, 0))
  {
    delay(200);
    buzzer_speak = false;
    time = millis();
  }
  • 检测按键是否按下,蜂鸣器使能值为假,意味着关闭蜂鸣器。
  if (key_get(key_pin, 0))
  {
    delay(200);
    buzzer_speak = false;
    time = millis();
  }
  • 判断蜂鸣器的使能值,开启或关闭蜂鸣器。
   if (buzzer_speak)
    buzzer();
  else
    noTone(buzzer_pin);

搭建硬件

  • Setup 1:将蜂鸣器接到Sensorhub的D6引脚上,将Colorled led彩灯接到A0,将触碰开关接到D4引脚。
  • Setup 2:将激活后的电池盒与BM模块相连.
CoreUSB Ble steup2.jpg
  • Setup 3:将所有模块堆叠在一起,顺序随意,电路部分搭建完成。
  • Setup 4:制作你的乐高烦人老头。

结果

对着声音检测传感器吼叫,一定时间内持续保持声音,蜂鸣器就会报警,按开关停止报警。

视频