简介:心率计
我在做一个显示心率的项目。
我最初使用标准的彩色目标心率表,然后决定制作另一个有刻度的数字显示。
使用开源传感器读取心率。它显示在伪模拟仪表上。
我用步进电机和位置程序来显示读数。
彩色显示器是用来显示目标心率范围的锻炼
用步进器模拟模拟仪表是多少现代汽车显示器的工作。。。
用品:
第一步:米的形状
因为这是一个自定义项目,我可以自由地使这个任何形状。
我开始画一个心形,如图所示,然后这是挤压到40毫米的深度。
使用偏移功能,我创建了一个10毫米的米面形状。这是挤压切割10毫米。
然后将底座切割成10度角,这将使整个结构向后倾斜并具有稳定的基础。
然后从背面以3毫米的宽度对形状进行脱壳。
前面的“舌头”被切断,以允许一个米手伸出通过。
然后使用电机数据表中的要求添加电机支架。
然后我添加了螺柱,以便用螺钉固定后盖。
然后,我用偏移功能削减了3毫米深的背部1.5毫米的边缘。
然后在螺柱上加上孔,以固定后盖。
第二步:仪表面和指针
我使用0.1毫米的偏移特性来创建一个米面。
这是挤压和原来的身体被隐藏。
一个圆圈被画在脸上并被分割。
制作心率表所需的5个部分被分别切下。
同样的圆被用来做一个缩放的脸。
然后将数字挤压成0.25毫米,并以对比色印刷。
指针已创建,如图所示。。。
第三步:封底
后视图与偏移功能一起使用。做3毫米厚的挤压。
在10mm处的偏移特征用于挤出切割1.5mm。
在挤压切口的内侧绘制线条,这些线条用于制作内部结构的肋骨。
第4步:打印部件
如图所示,这些零件都设计成摩擦配合。
指示器安装在电机轴上。
电机安装好后,用热熨斗热压固定。
附件
第五步:电气
该项目的最终目标是使用无线传感器在仪表上显示。这个项目的那部分将不包括在这篇文章中。
出于测试目的,传感器和仪表都位于同一个Arduino上。
我把一个UNO引脚A0连接到脉冲传感器上。
引脚8、9、10、11分别连接到ULN2003步进驱动板IN1、IN2、IN3、IN4。
第六步:读者
我用的传感器是脉冲传感器.com
我有两个孩子,他们都死了。
这是非常不幸的,因为这些都产生了快速和相当准确的结果。
这个项目将继续进行马克西姆MAXREFDES117...
这个脉冲传感器.com该设备有许多预先构建的算法,可以在他们的网站上看到...
第7步:代码脉冲传感器.com装置
这是我最后一个传感器死前使用的测试代码。。。
在初始化时,电机被激活,并在最左侧位置靠着止动块驱动,这是参考电机位置,因为在这个简单的系统中没有用于此的电子设备。在这里,传感器被读入,这个值被调整为显示每分钟的节拍
此值被转换为对应于马达步数的值。
电机的起始点为0(刻度上为50),值被加到该值上,新值被保存到内存中。根据需要减去较低的读数,再加上较高的读数。
此值改变时,会将指针上下调整到正确的量,使读数相对准确。
为了进行测试,这些值也被输出到串行监视器。
#define USE ARDUINO INTERRUPTS true//为大多数精确的BPM数学设置低级中断。
#include#include
const int PulseWire=0;//传感器输入const int stepsPerRevolution=1025;//将其更改为适合我的马达int Threshold=550的每米面步数;//确定要“计为拍”的信号和要忽略的信号。int testing=0;int oldBPM=0;int newBPM=0;const int division=7;int steps=0;int differenceSteps=0;
PulseSensorPlayground pulseSensor;//创建名为“pulseSensor”Stepper Stepper的PulseSensorPlayground对象的实例(stepsPerRevolution,8,10,9,11);//初始化插脚8到11上的Stepper库:
void setup(){步进电机设置速度(30);//设置转速为30rpm:序列号.开始(9600);//初始化串口:脉冲传感器模拟输入(脉冲线);步进电机(-1024); }
void loop(){int myBPM=脉冲传感器();//调用pulseSensor对象上的函数,该函数以“int”形式返回BPM。步骤=(myBPM-50)*除法;差异步骤=(步骤-测试);如果(myBPM<51){步进电机(0); 序列号.println(“关闭”);序列号.println(myBPM);}else if(myBPM>newBPM){步进电机(不同步骤);序列号.println(“向上”);序列号.println(myBPM);}else if(myBPM
第8步:Maxim MaxREFDES117设备
有这个设备的样本代码,但当我运行它的结果是不够的恒星。我的静息心率在28到250次/分之间。不好的!与已知的良好震源相比,这是64BPM稳定的。
这应该是由于算法提供,我还没有找到一个稳定的算法。有一个稍微好一点的GitHub上的Sparkfun。。。
我在示例5中使用了一些显示修改。
连接是相当基本的。
在UNO上,gnd和5V(或3.3V)连接到模块gnd和VIN
UNO D7转到设备INT
UNO A4和A5分别转到设备SDA和SDL
电机驱动器连接到数字4,5,6,7。
我选择显示平均心率,因为这是最接近的,这里唯一的问题是读数需要大约一分钟才能完成
还有一些问题需要解决。。。
程序代码是从在这里找到原始代码!
电表读数仍然和以前一样。
对于心率版本,代码必须根据用户的年龄范围调整为最大值小于200,我仍然使用最小值50。有许多图表可以在网上找到这个范围。

年度二等奖
心脏竞赛
讨论