上海羊羽卓进出口贸易有限公司

脉搏传感器原理 以DNA结构为灵感,港城大团队研发脉搏传感器,耐用性达6000次

发布时间:2024-10-06 12:10:52

以DNA结构为灵感,港城大团队研发脉搏传感器,耐用性达6000次

“我们从前做纺织品时,从未考虑过双股线和自然界的关系,完全是从实用角度去研发技术。但是,

DNA 双螺旋的结构在纺织上使用了几千年,人类到现在还是广泛使用它,可能将来也不会改变它,而这也让我们感受到了自然界的奇妙和它在纺织领域的映射。 ”将纺织双股线和 DNA 双螺旋结构“结合”在一起,是香港城市大学生物医学工程系教授胡金莲的近期新发现。

图 | 胡金莲(来源:胡金莲)

近日,该团队在 Advanced Materials 发表了一篇论文,题为《用于表皮脉冲监测的具有类似 DNA 的双螺旋线的超快速反应/恢复柔性压阻式传感器》(Ultrafast-Response/Recovery Flexible Piezoresistive Sensors with DNA-Like Double Helix Yarns for Epidermal Pulse Monitoring)。

图 | 相关论文(来源:Advanced Materials)

在纺织上,双股线十分常见,同时也是基本结构之一。在研究过程中,胡金莲发现双股线的结构非常好用。后来他们联想到,该结构跟 DNA 是一样的。研究中,他们主要达成了如下两个目标:其一,解决了纺织材料应用于压力传感器的恢复滞后性;其二,开发了在中医号脉等场景下所需要的压力传感器。

(来源:Advanced Materials)

一个“说来话长”的研究

香港城市大学生物医学工程讲座教授张元亭是胡金莲的同事,也是做血压测定和心血管方面的专家。更早之前,他在香港中文大学工作,双方有时会一起参会。

现在,张元亭在香港科技园有很大的一个中心,政府拨款了几个亿,专门开发与心血管有关的实时监控设备。对方拉上胡金莲一起合作,期间后者派出一名学生去了解张元亭课题组希望解决的问题。获知他们需要测量血压的压力传感器,胡金莲和学生做出几个版本,其中有一个版本的相关论文,在几年前就已发表。

由于是学习纺织出身,因此她主要通过设计织物结构,来实现传感器的性能。后来,她找到一种纱线,测试了单根、双根、四股等不同的构型,结果发现两股交织的性能最好,于是就用它来做压力传感器。

这种传感器主要有两个优势:首先,在号脉时脉搏是上下不断跳动的,而且它的跳动的次数很频繁,这导致材料会经历变形-恢复-变形的循环,利用双股线制备的传感器几乎没有滞后性,这说明它的恢复能力非常强。另外,由于号脉的力度不是很大,因此必须把传感器的响应控制在力的范围内,这样它的效果才会比较明显,否则传感器的性能和滞后性都会发生变化。总之,这种传感器在测量脉搏时是准确的,没有滞后性、并且可重复性较为突出。

(来源:Advanced Materials)

学生正在孵化相关公司

胡金莲表示,本次应用主要和身体有关,将来也有望用在机器人上。可穿戴设备最大的要求,是要和皮肤贴合或者符合人的生理结构。首先,它要容易变形,因为身体都是不规则的。其次,它需要特别柔软。要知道,我们皮肤上有很多的传感器,稍微不匹配就容易让人感觉不舒服。

以前,人们可能会用一个硬的光电器件放在皮肤上,然后收集数据进行处理,这肯定是不符合身体需求的。后来出现了柔性设备,它基本上是可以弯曲的。但这仍然不够,于是又出现了可伸缩材料。而纺织品可以适应多种形变,包括拉伸、弯曲、剪切,因此是研发可穿戴设备理想型材料。

(来源:Advanced Materials)

在后续计划上,目前香港城市大学已经成立了一个基金,胡金莲的学生也在成立公司。不过,他们只是做了一个传感器,如果要做真正可应用的器件,还需要更加全面的研究。比如,需要添加可靠的电极,把信号抽取出来进行处理,做以参数化之后再进行显现。由于该项目是香港城市大学 HK300 的创新项目,不允许老师做主要负责人,所以胡金莲只是作为顾问和股东,具体是学生去操作。

“一条龙”地做研究

据悉,胡金莲是湖北人,28 年前来到香港。在内地读完硕士之后也进入社会工作过,之后获得中英合作技术奖学金,被公派到英国去留学。拿到博士学位之后,她回到国内工作,先是在香港理工大学工作,后来到香港城市大学。目前团队大概 30 人。

学生时代学习纺织,并非源于常人想象的“女孩子可能更热爱纺织”的常见理由。相反她说在读本科时,对纺织实在是没有什么感觉,而是更喜欢科学。读大学时,适逢“十年动乱”刚过去没多久,条件也比较欠缺。学习纺织工程时,很多机器结构她都没见过。而在听课时,她觉得这些东西都是人规定的,因为那时主要学习怎么织布、学习机器的结构,以及设计原理和功能制造,所以她认为有点儿浪费时间。

后来读硕士时,她选择了纺织材料学,因为纺织材料学和科学更加接近。彼时,纺织材料学是一个相对特殊的专业,而来到东华大学读硕士时(当时叫中国纺织大学),刚好有这个专业。在纺织专业中,她没学过工程类的知识,所以很难理解和推导。

但是对于纺织材料学,她可以通过阅读相关的书,去了解其中的内涵。学了一个定理就可以推出其它东西,而不需要研究那些机器。后来因为胡金莲是外校考进去的,学校就把她调剂到纺织产品,这是纺织工程和纺织材料结合的一个专业。之后,她到英国去留学,也延续了这方面的研究。毕业后入职香港理工大学,一开始教授纺织工程的课程,但是她做的科研几乎全部都是材料方面的。

从纤维、到布、到服装,后来她又进一步往材料方向转,后又开始做高分子材料的合成。此外,香港理工大学有纺织系,因此从纺织材料、到服装、再到销售都是她的教学科研范畴。她说:“从高分子材料的合成,再到纺织成品的性能,我都是‘一条龙地’地做,这种经历是非常独特的,一般人是没有的。”

同时,这也和香港的商业环境有关,当时她想做功能性智慧织物,这种材料在香港很有市场,相关公司也有很多。收到公司资助之后,她就可以去香港政府申请大项目,这种项目往往是从材料设计、到合成加工、再做成纺织品。做了几轮大项目,也让她和公司合作得特别得心应手,公司也特别喜欢她。

胡金莲表示:“我没有把自己当作是一个女性教授,或者有什么劣势和优势,我没考虑过这个问题。基本上是该做什么就做什么,不卑不亢的。最重要的是,我对研究背景的上下游都很了解,并且可以把它们从头到尾有机地结合起来。”

比如,要开发一个产品,首先得了解产品的要求。这时,胡金莲会实事求是地去找出问题,进而寻找解决方法。她说:“这些解决方法并不受纺织或高分子材料的限制,只要是我认为能解决问题的学问,包括纳米科技和生物医学最前沿的东西,我都愿意去学。”

目前,她有 50 个专利授权、30 多个在申请专利。在香港,她是较早去申请专利的老师。1994 年,当时香港的科研活动并不多。作为来得比较早的一批学者,她很活跃并做了一些开拓性工作。比如,当时在大学里并没有老师去申请专利,相关的配套服务也没有。后来在她的努力下,学校开始建立知识产权办公室,甚至有副校长专门负责。她说:“我见证了这一过程,也是最早参与的,同时还推动了香港理工大学和香港城市大学在专利方面的发展。”

不久之后有望收到商业回报

目前,胡金莲在香港城大拥有一个可穿戴医疗健康材料中心,研究方向包括服装材料和纺织材料等。具体来说有三个方向:第一个方向是中医和能量疗法,包括针灸和刮痧,电磁光等;第二个方向是蜘蛛丝仿生及其应用,第三个方向是稚嫩材料特别是服装及生物材料。

“材料是我们的强项,”她说,“在做能量和中医疗法时,也会从材料出发。例如,刮痧板到底是用牛角好?还是用陶瓷好?借此我们也能研究材料和生物体之间的相互作用。”

在产业孵化上,她表示:“我来香港城市大学有两年了,组里学生拿到了三个商业化的项目包括一个天使基金,除了香港城市大学的资助之外,我们也拿到了香港科技园资助的两个项目。此外,我在香港理工大学也有一个项目,这些项目都在孵化中,可能马上会有一定的效果和商业回报。”

-End-

支持:大义

参考:

1、Chen, J., Zhang, J., Hu, J., Luo, N., Sun, F., Venkatesan, H., ... & Zhang, Y. (2022). Ultrafast‐Response/Recovery Flexible Piezoresistive Sensors with DNA‐Like Double Helix Yarns for Epidermal Pulse Monitoring. Advanced Materials, 34(2), 2104313.

Max32630——心率传感器

现在越来越多的人们重视自己的健康,参加各类运动,强身健体,个人也喜欢跑步,但是最近好久都没跑步了。

运动过程中,都需要关注的一个参数就是自己的心率,心率过高过低都不行,所以检测心率是一个很重要的参数。

现在最普遍的心率传感器就是PulseSensor 脉搏心率传感器

可以检测心率和脉搏;

原理主要就是通过光反射,转化为电压信号,单片机通过ADC采集电压,然后在通过算法得到心率和心跳;

其中算法部分代码都是现成,我们使用时只需要把ADC配置好,读取数据就可以得到需要的参数;

算法部分:

[C] 纯文本查看 复制代码

?

01020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485void SensorTimer_handler(void){ float temp = 0; unsigned int runningTotal; ADC_GetData(&Signal); // read the Pulse Senso temp = Signal * 1.818; Signal = (u16)temp-1; sampleCounter += 2; // keep track of the time in mS with this variable Num = sampleCounter - lastBeatTime; // monitor the time since the last beat to avoid noise ADC_StartConvert(ADC_CH_1_DIV_5, 0, 1); //restart ADC conversion // find the peak and trough of the pulse wave if(Signal < thresh && Num > (IBI/5)*3){ // avoid dichrotic noise by waiting 3/5 of last IBI if (Signal < T){ // T is the trough T = Signal; // keep track of lowest point in pulse wave } } if(Signal > thresh && Signal > P){ // thresh condition helps avoid noise P = Signal; // P is the peak } // keep track of highest point in pulse wave // NOW IT'S TIME TO LOOK FOR THE HEART BEAT // signal surges up in value every time there is a pulse if (Num > 250){ // avoid high frequency noise if ( (Signal > thresh) && (Pulse == 0) && (Num > (IBI/5)*3) ){ Pulse = 1; // set the Pulse flag when we think there is a pulse// HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET); // turn on pin 13 LED IBI = sampleCounter - lastBeatTime; // measure time between beats in mS lastBeatTime = sampleCounter; // keep track of time for next pulse if(secondBeat){ // if this is the second beat, if secondBeat == TRUE secondBeat = 0; // clear secondBeat flag for(int i=0; i<=9; i++){ // seed the running total to get a realisitic BPM at startup rate[i] = IBI; } } if(firstBeat){ // if it's the first time we found a beat, if firstBeat == TRUE firstBeat = 0; // clear firstBeat flag secondBeat = 1; // set the second beat flag // sei(); // enable interrupts again return; // IBI value is unreliable so discard it } // keep a running total of the last 10 IBI values runningTotal = 0; // clear the runningTotal variable for(int i=0; i<=8; i++){ // shift data in the rate array rate[i] = rate[i+1]; // and drop the oldest IBI value runningTotal += rate[i]; // add up the 9 oldest IBI values } rate[9] = IBI; // add the latest IBI to the rate array runningTotal += rate[9]; // add the latest IBI to runningTotal runningTotal /= 10; // average the last 10 IBI values BPM = 60000/runningTotal; // how many beats can fit into a minute? that's BPM! QS = 1; // set Quantified Self flag // QS FLAG IS NOT CLEARED INSIDE THIS ISR } } if (Signal < thresh && Pulse == 1){ // when the values are going down, the beat is over// HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET); // turn off pin 13 LED Pulse = 0; // reset the Pulse flag so we can do it again amp = P - T; // get amplitude of the pulse wave thresh = amp/2 + T; // set thresh at 50% of the amplitude P = thresh; // reset these for next time T = thresh; } if (Num > 2500){ // if 2.5 seconds go by without a beat thresh = 512; // set thresh default P = 512; // set P default T = 512; // set T default lastBeatTime = sampleCounter; // bring the lastBeatTime up to date firstBeat = 1; // set these to avoid noise secondBeat = 0; // when we get the heartbeat back } TMR32_ClearFlag(MXC_TMR2);}

读值:

[C] 纯文本查看 复制代码

?

01020304050607080910111213141516171819202122232425262728293031323334353637383940414243444546474849int BPM; // used to hold the pulse rateu16 Signal; // holds the incoming raw dataint IBI = 600; // holds the time between beats, must be seeded! unsigned char Pulse = 0; // true when pulse wave is high, false when it's lowunsigned char QS = 0; // becomes true when Arduoino finds a beat.int rate[10]; // array to hold last ten IBI valuesunsigned long sampleCounter = 0; // used to determine pulse timingunsigned long lastBeatTime = 0; // used to find IBIint P =426; // used to find peak in pulse wave, seededint T = 426; // used to find trough in pulse wave, seededint thresh = 426; // used to find instant moment of heart beat, seededint amp = 100; // used to hold amplitude of pulse waveform, seededint Num;unsigned char firstBeat = 1; // used to seed rate array so we startup with reasonable BPMunsigned char secondBeat = 0; // used to seed rate array so we startup with reasonable BPMvoid sendDataToProcessing(char symbol, int dat ){ putchar(symbol); // symbol prefix tells Processing what type of data is coming printf("%d\r\n",dat); // the data to send culminating in a carriage return}int Sensor_Task(void){ static u32 PointM = 0; uint16_t adc_val[4]; unsigned int overflow[4]; uint8_t fmtstr[40]; /* Initialize ADC */ if( ( OsDelayCCnt - PointM ) >= T_20MS) { PointM = OsDelayCCnt; /* Convert channel 0 */ sendDataToProcessing('S', Signal); // send Processing the raw Pulse Sensor data if (QS == 1) { User.BPM = BPM; User.IBI = IBI; sendDataToProcessing('B',BPM); // send heart rate with a 'B' prefix sendDataToProcessing('Q',IBI); // send time between beats with a 'Q' prefix QS = 0; // reset the Quantified Self flag for next time } /* Delay for 1/4 second before next reading */ }}

显示:

[C] 纯文本查看 复制代码

?

0102030405060708091011121314151617181920212223void OLED_Task(void){ static u32 PointM = 0; static u8 mState = 0; char Data_Time[9] = "hh:mm:ss"; char Data_Data[11] = "yyyy-mm-dd"; char Data_Sensor[19] = "BMP:xxxx IBI:xxxx"; LCD_P8x16Str(36,0,"MAX32630"); // LCD_P8x16Str(0,2,"EEWORLD");// LCD_P8x16Str(0,4,"Smart Watch"); if( ( OsDelayCCnt - PointM ) >= T_1S) { PointM = OsDelayCCnt;// LCD_CLS(); sprintf(Data_Sensor,"BMP:%03d IBI:%04d",User.BPM,User.IBI); LCD_P8x16Str(0,2,Data_Sensor); sprintf(Data_Data,"%04d-%02d-%02d",User.RtcTime.Year + 2000,User.RtcTime.Mon,User.RtcTime.Day); LCD_P8x16Str(0,4,Data_Data); sprintf(Data_Time,"%02d:%02d:%02d",User.RtcTime.Hour,User.RtcTime.Min,User.RtcTime.Sec); LCD_P8x16Str(0,6,Data_Time); }}

相关问答

脉搏 波血压计?

1是一种血压测量方法,通过检测血管内的脉搏波形态来推算血压数值,常用于医疗机构和家庭自测中。2使用红外光源和传感器来检测脉搏波形态,并根据计算公式计算...

为什么手表可以测 脉搏 ?

手表可以测脉搏是因为它内置了光电心率传感器。这种传感器可以通过红外线或LED发光,对皮肤表面的血管进行光电检测,从而实时监测心跳频率。当心跳时,血液会使...

电子手环测量心率、血压、血氧、心电图等功能,这些测量准确吗?

有两种不同的原理来...如果距离太近,获得的心电图波形最多只能拿来数心率用,是没有办法做其它分析的。要获得如下可分析的心电图,恐怕两只手要各贴一个电极才可...

手环测血压 原理 是什么?

手环测压是采用光电传感法测量血压,利用光电传感器能够采集手腕处的脉搏波,并对其进行换能和分析,而估算出来的血压值。这样的过程测出的血压值与正常值之间...

压电 传感器 信号处理电路的研究设计,毕业论文,谁会?

用SC0073脉搏传感器比较好!放大和滤波自己简单做就行了。SC0073动态微压传感器是一种高性能、低成本的压电式小型压力传感器,采用压电薄膜作为换能材料,动态压...

有没有能诊脉的机器人?如果现在没有,该怎么研发?

我用了很多种淘宝里的脉搏传感器采集脉搏波形数据,结果发现和医师给我的理论波形不太一样,只能看到波峰波谷,计算出脉搏频率,看不出什么胃经、肺经之类的信息...

简述测量 脉搏 的方法..._测量员考试_帮考网

测量脉搏的方法一般有以下几种:1.手指法:将食指、中指和无名指放在脉搏部位,轻轻压迫,感受脉搏跳动的频率和力度。2.听诊法:用听诊器听取心脏和大血...

丹奥智能手环drq8l工作 原理 ?

手环里内置的LED灯能使手腕上的毛细血管被传感器识别,传感器通过识别毛细血管的搏动来测量脉搏,然后将此信息换算成心率。听起来很简单,但有一个问题,为了获...

腕戴式设备如何被用于检测心脏问题?

一个国际科学家团队希望借助腕戴设备原型提供帮助。由立陶宛考纳斯理工大学、维尔纽斯大学、维尔纽斯艺术学院以及瑞典隆德大学合作开发的手表式小工具包...由...

什么是动态血压,动态血压监测对治疗有何意_千问健康

什么是动态血压,动态血压监测对治疗有何意义?,

展开全部内容