设为首页收藏本站

[应用教程] 心率传感器试用:跳动的心

lisper 发表于 2017-4-15 00:13:51 | 显示全部楼层 [复制链接]
21 2102
迟来的帖子,什么都别说了,直接上代码:
[C++] 纯文本查看 复制代码
/*
    author: lisper <[url=mailto:931816770@qq.com]931816770@qq.com[/url]>
    license: MIT
    材料清单: ws2812 led strip,  Curie Nano(DFRobot), heart rate sensor(DFRobot)
*/

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif


#define LED_PIN     6   //定义led的引脚
#define PIXELS_NUM  18   //定义led的数量
#define HEART_PIN   A0  //定义心跳传感器的引脚

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(PIXELS_NUM, LED_PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  Serial.begin(115200);
  pixels.begin();
  pixels.show();
}

void loop() {
  //读取心跳传感器数据
  int heartValue = analogRead(HEART_PIN);

  //滤波处理
  int filterValue = filter(heartValue);

  Serial.println(filterValue);

  //把血氧饱和度数据映射到led灯的亮度范围(0~255)
  int mapValue = map(constrain(filterValue, 940, 1024), 940, 1024, 0, 255);

  //根据计算得到的数值设置红色亮度
  setRedColor(mapValue);
  delay(20);
}

//设置红色亮度
void setRedColor(int red) {
  for (int i = 0; i < PIXELS_NUM; i++) {
    pixels.setPixelColor(i, pixels.Color(red, 0, 0));
  }
  pixels.show();
}

//滤波
int filter (int input) {
#define FILTER_SIZE 10
  static int filterArray[FILTER_SIZE] = {0};
  static int fi = 0;
  filterArray[fi++] = input;
  if (fi >= FILTER_SIZE) {
    fi = 0;
  }
  int32_t output = 0;
  for (int i = 0; i < FILTER_SIZE; i++) {
    output += filterArray[i];
  }
  return int(output / FILTER_SIZE);
}


上图:
heart_lisper.gif


材料链接:
爱心led灯:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.TSYI8y&id=529217131074&_u=e1kdiot10623
Curie Nano:  http://www.dfrobot.com.cn/goods-1343.html
心跳传感器: http://www.dfrobot.com.cn/goods-1339.html

爱心led灯本来是在淘宝买的,并且自带了控制芯片,效果写在控制芯片里了,接上电就可以亮,这不是我想要的,于是就把板子上的芯片拆了,引出了几根线,接在Arduino上,方便自己编程控制,用起来还不错,可以跟着心跳闪烁
IMG_0575.jpg IMG_0553.jpg





发表于 2017-4-23 14:09:08 | 显示全部楼层
一言不合就上代码,简直太赞了!
回复 支持 0 反对 1

使用道具 举报

发表于 2017-4-15 12:26:10 | 显示全部楼层
Curie Nano!
回复 支持 反对

使用道具 举报

发表于 2017-4-15 23:12:32 | 显示全部楼层
Curie板吗。
回复 支持 反对

使用道具 举报

发表于 2017-4-16 00:40:38 | 显示全部楼层

对的, Curie Nano
回复 支持 反对

使用道具 举报

发表于 2017-4-16 10:59:58 | 显示全部楼层
本帖最后由 gada888 于 2017-4-17 22:28 编辑

您好,想问一下

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(PIXELS_NUM, LED_PIN, NEO_GRB + NEO_KHZ800)

这句是什么意思啊------------
内存里分个地儿给灯珠的数量,数字脚位,和工作频率。
回复 支持 反对

使用道具 举报

发表于 2017-4-17 17:16:39 | 显示全部楼层
动图还算可人~
回复 支持 反对

使用道具 举报

发表于 2017-4-19 11:10:07 | 显示全部楼层
把板子的芯片拆了,这个可以啊
回复 支持 反对

使用道具 举报

发表于 2017-4-24 14:38:55 | 显示全部楼层
tyrionnn 发表于 2017-4-16 10:59
您好,想问一下

Adafruit_NeoPixel pixels = Adafruit_NeoPixel(PIXELS_NUM, LED_PIN, NEO_GRB + NEO_KHZ8 ...

对的啊
回复 支持 反对

使用道具 举报

发表于 2017-4-24 14:39:13 | 显示全部楼层
luna 发表于 2017-4-17 17:16
动图还算可人~

必须得是动图!
回复 支持 反对

使用道具 举报

发表于 2017-4-24 14:40:09 | 显示全部楼层
飞猪的小号 发表于 2017-4-19 11:10
把板子的芯片拆了,这个可以啊

板子的芯片不是arduino, 只能拆了
回复 支持 反对

使用道具 举报

发表于 2017-4-24 14:40:42 | 显示全部楼层
Grey 发表于 2017-4-23 14:09
一言不合就上代码,简直太赞了!

一直都是一言不合
回复 支持 反对

使用道具 举报

发表于 2017-4-29 19:41:22 | 显示全部楼层
很漂亮!
回复 支持 反对

使用道具 举报

发表于 2017-4-30 23:43:26 | 显示全部楼层
为啥你的帖子浏览量比我大好多。。
回复 支持 反对

使用道具 举报

发表于 2017-5-1 21:58:21 | 显示全部楼层
请教楼主,从代码看,实现了将血氧采样值与0--255线性关联,表现为心率越高,亮度越高,并非闪动频率随着心率而变化。是这样吗?
回复 支持 反对

使用道具 举报

发表于 2017-5-2 08:46:28 | 显示全部楼层
iooops 发表于 2017-4-30 23:43
为啥你的帖子浏览量比我大好多。。

我是版主
回复 支持 反对

使用道具 举报

发表于 2017-5-2 08:48:25 | 显示全部楼层
沧海笑 发表于 2017-5-1 21:58
请教楼主,从代码看,实现了将血氧采样值与0--255线性关联,表现为心率越高,亮度越高,并非闪动频率随着心 ...

不是心率越高,亮度越高,  是血氧采样值越大亮度越高
回复 支持 反对

使用道具 举报

发表于 2017-5-2 10:04:14 | 显示全部楼层
本帖最后由 沧海笑 于 2017-5-2 10:06 编辑
lisper 发表于 2017-5-2 08:48
不是心率越高,亮度越高,  是血氧采样值越大亮度越高

我表述有误,是血氧采样值越高,亮度越高。led的闪动频率和心跳无关吧?
回复 支持 反对

使用道具 举报

发表于 2017-5-17 17:36:58 | 显示全部楼层
沧海笑 发表于 2017-5-2 10:04
我表述有误,是血氧采样值越高,亮度越高。led的闪动频率和心跳无关吧? ...

血氧采样值和心跳是同步的...
回复 支持 反对

使用道具 举报

发表于 2017-5-19 10:04:19 | 显示全部楼层
了解了,的确是好思路。
回复 支持 反对

使用道具 举报

发表于 2017-6-13 19:10:27 | 显示全部楼层
传说中的李大神,一言不合就上代码,666!
回复 支持 反对

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则 允许回帖同步到新浪微博  

推荐阅读

精华导读




公司简介| 联系我们| 小黑屋| 加入我们| 微博| 优酷| 英文网站| DF创客社区 ( 沪ICP备09038501号-4  
友情链接| 硬创邦| 花生壳社区| 模友之吧| 电子发烧友社区| 创客星球| 云汉电子社区| 电子工程网| 与非网| Arduino中文社区| 南极熊3D打印网| OneNET|

上海智位机器人有限公司  沪ICP备09038501号-4   

Powered by Discuz! X3.1

Licensed Comsenz Inc.

返回顶部 返回列表