“Sensor-Pulse/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
 
(未显示4个用户的22个中间版本)
第1行: 第1行:
{{Language|Microduino-Pulse}}
+
{| style="width: 800px;"
 +
|-
 +
|[[File:Microduino-Pulse.jpg|300px|left| Sensor-Pulse]] ||
 +
::<p style="color: #000000;font-size:200%"><br><br><br><br><br>'''Sensor-Pulse'''</p>
 +
::产品编号:'''<big style="color: #00A0A6">MSDI31</big>'''
 +
|-
 +
|[[File: Add-to-cart.jpg|300px|left|link=https://shop108263663.taobao.com/?spm=a230r.7195193.1997079397.2.ek3cAW]]||
 +
::<p style="color: #000000;font-size:120%">Sensor-Pulse是一块光电原理的心率传感器模块。Sensor-Pulse传感器利用特定波长红外线对血管末端血液微循环产生的血液容积的变化的敏感特性,检测由于心脏的跳动,引起指尖的血液变化。经过信号放大、调整等电路处理,输出反映指尖血容积变化的完整的脉搏波电压信号。</p>
 +
|}
 +
<br>
 +
<br>
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-
 
|
 
|
[[File: Microduino-Pulse.jpg|400px|thumb|right| Microduino-Pulse]]
+
<p style="color: #333333;font-size:155%">'''技术规格'''</p>
 
+
{| class="wikitable"
Microduino-Pulse是一块光电原理的心率传感器模块。利用特定波长红外线对血管末端血液微循环产生的血液容积的变化的敏感特性,检测由于心脏的跳动,引起指尖的血液变化,
+
|-
 
+
| '''电压'''||3.3~5V,最大6V
经过信号放大、调整等电路处理,输出反映指尖血容积变化的完整的脉搏波电压信号。
+
|-
 
+
| '''工作电流'''||15uA
 
+
|-
==传感器引脚说明==
+
| '''工作温度'''||-20~85℃
{{Sensor_explain
+
|-
|nameA=[[Sensor-Pulse/zh]]
+
| '''输出电压'''||高电平5V,低电平0V
|modeA=数字信号输入
 
|modeB=NC
 
}}
 
 
 
==特色==
 
*SON7015传感器超功耗,耗电为0.2毫安;
 
*体积小,易安装;
 
*模拟信号;
 
 
 
==规格==
 
*电器规格
 
**输入电压:3.3~5V,最大6V
 
**工作电流:15uA
 
**工作温度:-20~85℃
 
**输出电压:高电平5V,低电平0V
 
*技术参数
 
**感应距离:紧贴皮肤
 
*尺寸
 
**板子大小:20mm*10mm
 
**1.27mm间距的4Pin接口;
 
*接法
 
**引脚说明:GND、VCC、信号、NC。
 
 
 
==开发==
 
===设备===
 
{|class="wikitable"
 
 
|-
 
|-
|模块||数量||功能
+
| '''传感器大小'''||23.5mm*13mm
 
|-
 
|-
|[[mCookie-CoreUSB/zh]]||1||核心板
+
| '''接口'''||1.27mm间距的4Pin座
 
|-
 
|-
|[[mCookie-Hub/zh]]||1||传感器转接板
+
| '''特色'''||使用SON7015传感器,超低功耗,耗电为0.2毫安
 
|-
 
|-
|[[Microduino Sensor-Pulse/zh]]||1||心率传感器模块
+
| '''功能描述'''||皮肤贴近传感器后,数字输出会随血液的变化而输出1或0
 
|}
 
|}
  
*其他硬件设备
+
<br>
**USB数据连接线  一根
+
----
 +
<br>
 +
<p style="color: #333333;font-size:155%">'''引脚'''</p>
 +
{| border="0" cellpadding="10" width="90%"
 +
|-
 +
|width="35%" valign="center" align="left"|
 +
*IN'''<big style="color: #00A0A6">(数字信号)</big>'''
 +
**PIN1:GND
 +
**PIN2:VCC
 +
**PIN3:数字信号输入
 +
**PIN4:NC(空)
 +
|width="35%" valign="top" align="center"|
 +
[[file: Sensor_backpin.png|130px|center]]
 +
|width="25%" valign="top" align="center"|
 +
|}
 +
<br>
 +
----
 +
<br>
 +
<p style="color: #333333;font-size:135%">'''编程手册'''</p>
 +
您可以通过[[AVR核心:Getting_started/zh|Getting Started]]了解使用Arduino IDE编程控制模块。
 +
【Sensor_Pulse_Reference】库参考页面提供了有关如何使用心率传感器的完整详细信息和示例。
 +
*<p style="font-size:125%">库语法手册</p><big>[[Sensor-Pulse_Reference|Sensor_Pulse_Reference]]</big>
  
===准备===
+
<br>
*Setup 1:将心率传感器和Hub的A0接起来。
+
----
[[file:mCookie-pulse-sensor.JPG|600px|center]]
+
<br>
*Setup 2:将CoreUSB,Hub,pulse连接在一起。通过USB数据线将接入电脑。
+
<p style="color: #333333;font-size:135%">'''文档'''</p>
[[file:mCookie-pir-pc.JPG|600px|center]]
+
*传感器CAD图纸:'''[[File:Sensor_CAD.pdf]]'''
 +
*传感器页面:http://www.soon-e.com/product/html/?122.html
 +
<br>
 +
----
 +
<br>
 +
<p style="color: #333333;font-size:135%">'''示例教程'''</p>
 +
*[[心率测试示例]]
  
===实验:检测心率跳动===
+
<br>
*打开Arduino IDE,将下列代码复制到IDE中。
+
----
<source lang="cpp">
+
<br>
#define PIN A0
+
<p style="color: #333333;font-size:135%">'''Q&A'''</p>
  
unsigned long time0;
 
unsigned long time_cache0;
 
bool sta = false, sta_cache = true;
 
unsigned long getTime0() {
 
  sta_cache = sta;
 
  sta = digitalRead(PIN);
 
  delayMicroseconds(200);
 
  if (sta == HIGH && sta_cache == LOW) {
 
    time_cache0 = time0;
 
    time0 = millis();
 
    return (time0 - time_cache0);
 
  }
 
  else {
 
    return 0;
 
  }
 
}
 
  
#define time1_MAX 200
 
#define time1_MIN 50  //过快的波
 
  
unsigned long time1;
+
<br>
unsigned long time1_cache;
+
----
boolean time1_sta_error = false;
+
<br>
unsigned long getTime1(unsigned long _t) {
+
<p style="color: #333333;font-size:135%">'''历史'''</p>
  time1_cache = _t;
 
  if (time1_cache) {  //有数据时才执行滤波
 
    if (time1_cache < time1_MAX) {  //滤最小阈值
 
      if (time1_cache < time1_MIN) { //若有过快的波,开启标志位
 
        //      Serial.println("make");
 
        time1_sta_error = true;
 
      }
 
      return 0;
 
    }
 
    else {
 
      //      Serial.print(".");
 
      if (time1_sta_error) {  //如果被标志 则本次波形无效
 
        //        Serial.println("make done");
 
        time1_sta_error = false;
 
        return 0;
 
      }
 
      return time1_cache;
 
    }
 
  }
 
  else {
 
    return 0;
 
  }
 
}
 
  
#define pulse_MIN 40
 
#define pulse_MAX 180
 
#define pulse_UPDATA  5
 
int pulse_num = 0;
 
unsigned long pulse_vol = 0;
 
unsigned long pulse_cache = 0;
 
unsigned long pulse(unsigned long _t) {
 
  if (_t) {
 
    unsigned long  _pulse_vol = 60000 / _t;
 
    //    Serial.print("_pulse_vol:");
 
    //    Serial.println(_pulse_vol);
 
    if ((_pulse_vol > pulse_MIN) && (_pulse_vol < pulse_MAX)) {
 
      pulse_vol += _pulse_vol;
 
      pulse_num++;
 
      if (pulse_num > (pulse_UPDATA - 1)) {
 
        //        Serial.println("OUTPUT");
 
        unsigned long _pulse = pulse_vol / pulse_UPDATA;
 
        pulse_num = 0;
 
        pulse_vol = 0;
 
        pulse_cache = _pulse;
 
        return _pulse;
 
      }
 
      else {
 
        return pulse_cache;
 
      }
 
    }
 
    else {
 
      pulse_num = 0;
 
      pulse_vol = 0;
 
      return 0;
 
    }
 
  }
 
  else {
 
    return 0;
 
  }
 
}
 
 
 
// the setup routine runs once when you press reset:
 
void setup() {
 
  // initialize serial communication at 9600 bits per second:
 
  pinMode(A0, INPUT);
 
  Serial.begin(9600);
 
 
  Serial.println("hello");
 
}
 
 
// the loop routine runs over and over again forever:
 
void loop() {
 
  // print out the value you read:
 
  //    Serial.print("t0:");
 
  //  Serial.print(digitalRead(A0) * 2000);
 
  long p0 = getTime0();
 
  long p1 = getTime1(p0);
 
  long p2 = pulse(p1);
 
  if (p0) {
 
    Serial.print(millis() / 1000);
 
    Serial.print(",");
 
    Serial.print(p0);
 
    Serial.print(",");
 
    Serial.print(p1);
 
    Serial.print(",");
 
    Serial.print(p2);
 
    Serial.println();
 
  }
 
  //  delay(3);        // delay in between reads for stability
 
}
 
</source>
 
*在Arduino IDE的工具(Tools)→端口(Serial Port)里面选择正确的端口号。
 
[[file:upload.JPG|600px|center]]
 
*编译完成后直接下载程序。
 
*下载完毕你可以打开串口监视器,显示的提示即反应了当前传感器检测的状态。
 
*结果
 
心率传感器会检测到由于心脏的跳动而引起指尖的血液变化情况,将一些不稳定的情况通过算法滤掉,从而得到一个较准确的值。
 
 
===程序调试===
 
  
 +
<br>
 +
----
 +
<br>
 +
<p style="color: #333333;font-size:135%">'''图库'''</p>
 +
{| border="0" cellpadding="10" width="100%"
 +
|-
 +
|width="50%" valign="top" align="left"|
 +
[[file: Microduino-Pulse-sensor-f.JPG|thumb|600px|center|Sensor-Pulse Front]]
 +
|width="50%" valign="top" align="left"|
 +
[[file: Microduino-Pulse-sensor-b.JPG|thumb|600px|center|Sensor-Pulse Back]]
 +
|}
 +
|}
  
==应用==
 
*实时心率检测
 
  
  
===项目===
 
  
  
  
==购买==
+
[[MCookie_传感器系列|返回mCookie_传感器系列页面]]
 
 
==历史==
 
 
 
==图库==
 
 
 
*正面
 
[[file: Microduino-Pulse-sensor-f.JPG|thumb|600px|center|Microduino-Pulse sensor Front]]
 
*背面
 
[[file: Microduino-Pulse-sensor-b.JPG|thumb|600px|center|Microduino-Pulse sensor Back]]
 
|}
 

2018年1月12日 (五) 03:42的最新版本

Sensor-Pulse






Sensor-Pulse

产品编号:MSDI31
Add-to-cart.jpg

Sensor-Pulse是一块光电原理的心率传感器模块。Sensor-Pulse传感器利用特定波长红外线对血管末端血液微循环产生的血液容积的变化的敏感特性,检测由于心脏的跳动,引起指尖的血液变化。经过信号放大、调整等电路处理,输出反映指尖血容积变化的完整的脉搏波电压信号。



技术规格

电压 3.3~5V,最大6V
工作电流 15uA
工作温度 -20~85℃
输出电压 高电平5V,低电平0V
传感器大小 23.5mm*13mm
接口 1.27mm间距的4Pin座
特色 使用SON7015传感器,超低功耗,耗电为0.2毫安
功能描述 皮肤贴近传感器后,数字输出会随血液的变化而输出1或0




引脚

  • IN(数字信号)
    • PIN1:GND
    • PIN2:VCC
    • PIN3:数字信号输入
    • PIN4:NC(空)
Sensor backpin.png




编程手册

您可以通过Getting Started了解使用Arduino IDE编程控制模块。 【Sensor_Pulse_Reference】库参考页面提供了有关如何使用心率传感器的完整详细信息和示例。




文档




示例教程




Q&A





历史





图库

Sensor-Pulse Front
Sensor-Pulse Back




返回mCookie_传感器系列页面