APP下载

基于STM32单片机设计的睡眠检测装置

2023-09-25康楚阳邵乙飞陈明蒂张景越冉志坚

现代计算机 2023年14期
关键词:分贝低电平中断

康楚阳,邵乙飞,陈明蒂,张景越,冉志坚

(1. 上海工程技术大学机械与汽车工程学院,上海 201620;2. 上海工程技术大学材料学院,上海 201620)

0 引言

随着科技的不断发展与社会的不断进步,健康已经成为人们生活中越来越重视的话题。比如近些年来科技厂商们都在其穿戴设备上添加了关于健康检测的模块。以Apple Watch 为例,近年来Apple Watch 的关注度越来越高,其过半的市占比就可以看出用户的肯定与追捧。第一代Apple Watch 以“高端、奢华”为卖点,不过市场反应不积极、销量一般。其后的第二代、第三代产品逐渐转向以“健康、运动”为卖点,将睡眠检测、运动数据记录以及心率加入其互动系统中,而第四代产品更是将血氧检测加入其中,并为女性用户专门开发了经期检测系统,更加关注呵护用户的健康。可见围绕“科技与健康”这一主题,有相当大的空间进行实践与创新。

以此为起点,本项目组通过讨论并阅读相关文章,发现“睡眠问题”也是一个困扰很多人的问题,而打鼾是讨论最多的话题。通过前期制作相关问卷,统计总计200份的问卷调查报告,本项目组认为“打鼾”在某种程度上已经成为现在寝室的一个难题。基于网络上已经出现的相关文献,本项目组在现有算法的基础上进行改进,基于STM32 单片机设计了一款睡眠检测装置。

1 设计方案

打鼾是指睡眠中因上呼吸道狭窄使悬雍垂发生振动而发出的鼾声,在日常生活中非常常见。打鼾的原因有很多,上了年纪的人几乎都有打鼾的症状,同时饮酒、吸烟、不恰当的睡眠姿势以及睡眠障碍也会成为打鼾的原因之一。打鼾带来的危害有很多,对于年轻人,可能会出现白天嗜睡、乏力、注意力不集中、头痛、工作能力下降等症状,对于老年人常伴有睡眠呼吸暂停综合征的出现,因此对个人健康有一定的不良影响。资料显示打鼾可以通过采取一些措施来缓解,比如在打鼾时由他人或外在装置轻推打鼾者,使其改变睡觉时的体位,可使打鼾得到缓解。

本文基于STM32F103C8T6 这款单片机设计了可以监测穿戴者睡觉时所发出的声音分贝并做出一定振动输出的装置。其中STM32F103C8T6单片机负责将音频检测模块采集的数据处理后数字化,再用该数据与预先设置好的数字范围做对比,如果时间长达30 秒及以上,则通过振动马达的输出振动穿戴者的手臂使其翻身,从而达到止鼾的目的。

2 止鼾装置模块介绍

止鼾装置模块如图1所示。

图1 装置模块

2.1 STM32单片机

STM32单片机是ST公司基于ARM Cortex-M内核开发的32 位微控制器,STM32 单片机常应用于嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制等产品。STM32单片机主要包括1 个ARM Cortex-M 内核、储存器和外设。通过接口与不同的外设进行连接,实现和满足不同的需求与开发。

2.2 主控制器

考虑到成本以及装置的运行系统的稳定,项目组采用STM32F103C8T6 控制芯片,一款增强型的单片机。内核为ARM Cortex-M3,最高工作频率为72 Mhz,1.25 MIPS/MHz。片上集成32~512 KB 的Flash 存储器。6~64 KB 的SRAM存储器。2.0~3.6 V 的电源供电和I/O 接口的驱动电压。上电复位(POR)、掉电复位(PDR)和可编程的电压探测器(PVD)。拥有48 个引脚,属于中容量产品。通过GPIO 输入协议,将音频检测模块与STM32 单片机进行连接。接受音频检测模块并将其数字化,判断其是否在实现所设定的范围内,判定结果后,通过GPIO 输出协议,输出脉冲频率。主控制器所实现的原理即通过应用统一的智能化平台,实现各个独立子系统的有机连接,最终形成一个能及时进行信息交换和管控的网络。

2.3 音频检测模块

该功能模块指的是声音传感器,包括1 个开关指示灯、电位器、信号输出、电源负极、电源正极(3.3~5 V)和一个电源LED 指示灯。音频检测模块的作用是对环境声音强度敏感,作为检测周围声音强度的装置。模块在环境声音强度达不到设定阈值时,OUT 输出高电平,当外界环境声音强度超过设定阈值时,模块OUT 输出低电平。通过小板数字量输出OUT 与STM32F103C8T6 直接相连,通过单片机来检测高低电平,由此来检测环境声音。

2.4 输出模块

该功能模块指的是振动传感器,包括1 个灵敏度调节电位器、开关信号输出、电源正极3.3~5 V、电源负极、3.1 mm 可锁3.0 螺丝。其中需注意的是开关信号指示灯亮时输出低电平、不亮则输出高电平、信号输出的电平接近电源压。振动模块在不振动时,振动开关呈断开状态,输出端输出高电平,绿色指示灯不亮;振动时,振动开关瞬间导通,输出端输出低电平,绿色指示灯亮。因为振动传感器输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境是否有振动,起到报警作用。

2.5 OLED屏幕显示模块

该功能是由一块0.96 寸OLED 模块组成,OLED 是性能优异的新型显示屏,具有功耗低、响应速度快、宽视角、轻薄柔韧等特点。选用0.96寸是考虑到成本因素,该显示屏简单易用、占用接口少。供电为3~5.5 V,通讯协议:I2C/SPI,分辨率:128×64。对于部分单片机编程而言,利用OLED 屏幕可以使程序内部数据通过代码的编写来显示在OLED 屏幕上,方便查找错误。同时在后续设备调试的时候使设备更加美观,使用更加方便。

3 软件设计

软件设计如图2所示。

图2 设计逻辑

3.1 GPIO原理

GPIO也称为通用输入/输出,是控制器中最简单也是最重要的配置。一个程序接收到指令然后做出反应,接受指令就是一个输入的过程,做出反应就是一个输出的过程。GIPO 就是这样一个输入和输出的总称。STM32F103C8T6 的GPIO 引脚电平为0~3 V,部分引脚可容忍5 V。输出模式下可控制端口输出高低电平,用以驱动LED、蜂鸣器、模拟通信协议输出时序等,输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。GPIO配置8种输入输出模式。GPIO 输入包括输入浮空、输入上拉、输入下拉和模拟输入四种输入模式。GPIO输出包括开漏输出、开漏复用功能、推挽式输出和推挽式复用功能四种输出模式。

3.2 中断原理

3.2.1 中断

处理器中的中断指的是在处理器中,中断是一个过程,即CPU在正常执行程序的过程中,遇到外部/内部的紧急事件需要处理,暂时中止当前程序的执行,转而去处理紧急的事件,待处理完毕后再返回被打断的程序处继续往下执行。中断在计算机多任务处理,尤其是即时系统中尤为重要。比如uCOS,FreeRTOS 等。中断能提高CPU 的效率,同时能对突发事件做出实时处理。实现程序的并行化,实现嵌入式系统进程之间的切换。

3.2.2 TIM定时器

TIM(Timer)定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中断。STM32 的定时器拥有16 位计数器、预分频器、自动重装寄存器的时基单元,在72 MHz 计数时钟下可以实现最大59.65(72/216/216)的定时。定时器不仅具备基本的定时中断功能,而且还包含内外时钟源选择、输入捕获、输出比较、编码器接口、主从触发模式等多种功能。根据程序复杂和应用场景的不同定时器可分为高级定时器、通用定时器、基本定时器三种类型。

3.3 ADC

ADC 全称为模拟-数字转换器。ADC 可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。本次使用的STM32F103C8T6 的ADC 是12位逐次逼近的ADC,转换时间1 us。输入电压范围0~3.3 V,转换结果范围0~4095.18 个输入通道,可测量16 个外部和2 个内部信号源,即温度传感器和内部参考电压。

本研究希望实现如下几种效果:首先是通过STM32 单片机检测大概的声音强度并在OLED 上显示出来。利用ADC原理对声音分贝的显示,通过ADC转化从而获得分贝数据并显示在OLED屏幕上方便观察。其次本研究不希望程序是听到声音立刻产生触发,考虑到鼾声是持续的、连续的。预期的程序是检测一段长达10秒及以上的声音之后才触发振动模块。通过代码的编写给予STM32单片机一个判断的数值范围,即分贝过小和分贝过大并不会触发单片机。该功能是防止误触发。比如分贝过小的连续性声音其实并不一定是鼾声,如果不划定一定的范围,那么就可能造成误触,降低使用者的使用体验。同样,分贝过大的声音足以令使用者醒来,因此也没有触发的必要。关于如何判断触发的因素是“一段长达10秒及以上的声音”,本研究采用定时器和中断的原理来完成这一设置。通过音频监测来让STM32单片机接收口电位以1秒的时间产生变化,定时器则可以记录这一电位变化,数据大于10则说明这一段声音是长达10 秒的,即可以启动触发,开启振动模块。

4 结语

本研究针对寝室存在的打鼾问题设计了一款以STM32 微处理器为核心,通过接收音频检测器输入数字信号,再通过程序分析来达到一定的睡眠检测功能的装置,该装置具有一定的止鼾功能,控制系统也具有体积小、易于集成和调试的特点,方便后续的修改以及合成。

猜你喜欢

分贝低电平中断
铁道车辆高/低电平信号智能发生器设计
分贝是如何定义的
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
分贝是声波的强度单位吗
跟踪导练(二)(5)
千里移防,卫勤保障不中断
15-MeV电子直线加速器的低电平系统
小分贝上街“不讲话”了
AT89C51与中断有关的寄存器功能表解
集成电路静态参数测试