查看“Sensor-Pulse/zh”的源代码
←
Sensor-Pulse/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language|Microduino-Pulse}} {| style="width: 800px;" |- | [[File: Microduino-Pulse.jpg|400px|thumb|right| Microduino-Pulse]] Microduino-Pulse是一块光电原理的心率传感器模块。利用特定波长红外线对血管末端血液微循环产生的血液容积的变化的敏感特性,检测由于心脏的跳动,引起指尖的血液变化, 经过信号放大、调整等电路处理,输出反映指尖血容积变化的完整的脉搏波电压信号。 ==特色== *SON7015传感器超功耗,耗电为0.2毫安; *体积小,易安装; *模拟信号; ==规格== *电器规格 **输入电压:3.3~5V,最大6V **工作电流:15uA **工作温度:-20~85℃ **输出电压:高电平5V,低电平0V *技术参数 **感应距离:紧贴皮肤 *尺寸 **板子大小:20mm*10mm **1.27mm间距的4Pin接口; *接法 **引脚说明:GND、VCC、信号、NC。 ==开发== ===设备=== {|class="wikitable" |- |模块||数量||功能 |- |[[mCookie-CoreUSB/zh]]||1||核心板 |- |[[mCookie-Hub/zh]]||1||传感器转接板 |- |[[Microduino Sensor-Pulse/zh]]||1||心率传感器模块 |} *其他硬件设备 **USB数据连接线 一根 ===准备=== *Setup 1:将心率传感器和Hub的A0接起来。 [[file:mCookie-pulse-sensor.JPG|600px|center]] *Setup 2:将CoreUSB,Hub,pulse连接在一起。通过USB数据线将接入电脑。 [[file:mCookie-pir-pc.JPG|600px|center]] ===实验:检测心率跳动=== *打开Arduino IDE,将下列代码复制到IDE中。 <source lang="cpp"> #define PIN A0 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; unsigned long time1_cache; boolean time1_sta_error = false; unsigned long getTime1(unsigned long _t) { 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]] *编译完成后直接下载程序。 *下载完毕你可以打开串口监视器,显示的提示即反应了当前传感器检测的状态。 *结果 心率传感器会检测到由于心脏的跳动而引起指尖的血液变化情况,将一些不稳定的情况通过算法滤掉,从而得到一个较准确的值。 ===程序调试=== ==应用== *实时心率检测 ===项目=== ==购买== ==历史== ==图库== *正面 [[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]] |}
返回至
Sensor-Pulse/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息