葛听雨 薛文彬 吴兴强 谢逸

摘要:现代生活不可避免的需要在清晨用闹钟来唤醒忙碌的工作者,而睡眠质量是关于人的身体健康的重要问题。传统的唤醒仪器,如普通闹钟,在闹铃工作的时候难以恰巧遇到被唤醒者的浅睡眠周期,而人在深度睡眠中,如果受到外界突然且强烈的声音、光线等刺激,被唤醒的同时往往会对人体造成一定的危害,产生不良的影响。针对传统闹钟的以上缺点,本文设计了四重感觉人体自然唤醒仪器人体唤醒仪器,该仪器能以一种温和方式来唤醒人体,满足了人们日常需求。

关键词:睡眠;唤醒仪器;微控制单元

中图分类号:TH89 文献标识码:A 文章编号:1007-9416(2019)04-0176-02

1 设计背景与意义

现代忙碌的生活不可避免的需要在早上用闹钟来唤醒沉睡的人们,睡眠质量是关乎人类身体健康的重要问题,而被尖锐的闹钟铃声(如今更多人选择用手机作为闹钟的替代品)惊醒则会对人们身体造成不良影响[1],同时由于现阶段空气质量的高低不一,在不同程度上影响人体睡眠[2]。本文针对于目前社会人群晨起苏醒质量的不足,设计了一个小型唤醒仪器,该仪器融合声源、风扇,以及喷雾器等装置,可提供听觉、视觉、嗅觉和触感四重感知,能够让人们在清晨从深度睡眠中舒适的苏醒来[3]。该仪器可降低人类由于突然被惊醒而对身体造成的负面影响,代替传统闹钟[4]有广阔的应用前景。

2 四重感知人体唤醒仪器设计方案

2.1 系统总设计方案

四重感知唤醒仪器主要由电源模块、主控模块、音效模块(压电式蜂鸣器)、光源显示模块以及喷雾(含香薰物质)模块、等组成。主控模块控制核心芯片,选用基于ARM Cortex-M4的STM32F407芯片,该芯片自带高精度时钟,可通过编写的程序完成系统延时、管脚控制以及PWM信号输出,配合支持处理器运行的外围电路实现对四重感知唤醒仪器系统的综合管理和对外设的控制。系统的硬件设计框架图如图1所示。

2.2 硬件设计

本仪器包含光源显示模块,音效模块,喷雾模块,其中为了实现视觉的刺激效果,设计以渐变灯为原型,仿照自然光,通过微控制元件控制其光线强度及频闪次,完成视觉传感外设;为了实现听觉外设,以压电式蜂鸣器为原型,通过芯片管脚PF8输出的PWM波完成声音的触发,完成听觉传感外设;考虑到人的感知是多方面组成,且对触觉尤为敏感,从唤醒仪器的实用性及经济角度出发,设计以风扇为原型,配合混有一定香味精油的水雾装置,完成触觉及嗅觉传感外设。运用STM32F407自带的16位重装载计数器,完成唤醒仪器的精准定时。本仪器以STM32F407的MCU作为控制器,控制上述四个外设的工作进程和工作状态,四个外设同时工作,可使被唤醒者舒适的完成由深度睡眠到浅度睡眠再到苏醒的过程。

2.2.1 SysTick定时器模块

SysTick定时器也被称为SysTick滴答定时器,它以Cortex-M4内核的外设,被嵌入在中断控制器中,具有24位向下递减的定时器,计数一次所需要时间为1/SYSTICK(SYSTICK被称为系统定时器时钟),可以直接取自系统时钟,也可通过系统时钟8分频后获取。当定时器计数到0时,将从LOAD寄存器中自动重装定时器初值,重新向下递减计数,如此循环往复。如果开启SysTick中断,则当定时器计数到0时,将会产生一个中断信号。因此根据计数的次数就可准确得到该定时器的延时时间。

对SysTick定时器的操作可以分为以下4个步骤:

(1)设置SysTick定时器的时钟源。

(2)设置SysTick定时器的重装初始值(如果要使用中断,则需要将中断使能打开)。

(3)清零SysTick定时器当前计数器的值。

(4)打开SysTick定时器。

2.2.2 压电式蜂鸣器模块

本论文所设计器件使用的是压电式蜂鸣器模拟闹钟响铃。通过改变单片机引脚输出波形的频率,就可调整控制蜂鸣器音调,产生各种不同音色、音调的声音。改变输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小。与蜂鸣器连接的是STM32F407的PF8管脚,使用PWM波控制,使之产生声音从高到低循环往复的效果。

PWM是一种对模拟信号电平进行数字编码的方法,该方法使用高分辨率计数器,调制方波的占空比来对一个具体模拟信号的电平进行编码,但PWM 信号仍然是数字的。电压或电流源信号是以一种通或断的重复脉冲序列被加到模拟负载上去,通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候,PWM波产生,进行有效灵活地控制[6]声音。

本论文所设计仪器使用的是STM32F4的TIM13定时器作为通用定时器,通用定時器能同时产生多达4路的PWM输出,本设计使用的是2路输出。

2.2.3 喷雾器件模块

喷雾器件,其是靠内部振动来制造水雾的,选用的是超声波雾化喷雾器,是靠内部超声波使得水雾化[7],因声波的振动频率十分高,故所产生的雾气很小。同时喷雾器件的启动电压为5V,且STM32F407开发板管脚所提供的输出电压不足,可外接大功率MOS管作为开关,以输出5V的控制电压。

2.3 软件设计

本仪器使用汇编语言将底层程序封装为各个程序结构模块,使用C语言完成子模块及主模块的程序编写。软件流程如图2所示,主函数负责向各个硬件部分发送启动子函数命令,子函数启动相应的模块。通过图2可以看出,该仪器由光源采集模块和时间源模块函数来判定环境条件,满足条件后再由主函数操控子函数,来启动喷雾器器件模块的函数。

3 实验

本仪器实物完成后,启动本仪器,一旦本仪器满足预设的时间值,则控制芯片会发出命令,控制引脚9发出高电平,实现灯光闪烁,同时与之连接的超声波喷雾器模块会开始工作,完成触觉以及视觉的刺激,引脚10发出PWM波,通过控制占空比和频率来实现声音渐变的效果。

4 结语

本文所设计的基于STM32f407的四重感觉人体自然唤醒仪器,是通过M一款MCU控制各外设组成了一个完整的定时仪器。考虑到传统闹钟等剧烈且单一化的唤醒方式,本设计采用除味觉以外的剩余四种感触方式,以达到多元化的目的。且都是以渐变过程,以达到温和的效果,高效地将人体唤醒[5]。同时考虑到人体的差异性,本仪器可被用户设置成不同的工作模式,满足不同人群的需要。

参考文献

[1] 郑晓妮,易淑明,陈烨,刘丽波,朱有葱,何丽亚.专科医学生手机依赖与睡眠质量的调查研究[J].卫生职业教育,2019,37(08):124-126.

[2] 佚名.空气污染影响睡眠效率[J].养猪,2019(02):96.

[3] 吴瑞智,李欢敏,屈俊青,王超,袁新栋.智能家用唤醒系统设计[J].电脑知识与技术,2018,14(04):158-160.

[4] 闹钟应该这么玩儿[J].商业文化,2017(07):90.

[5] 郭进,彭惠东,刘浩,殷文峰.一种基于STC89C52单片机的智能闹钟的设计[J].中国科技信息,2013(11):160-161.

[6] 吴东洋,宿宁,张正勇.基于STM32输出指定个数PWM波的实现和性能分析[J].仪表技术,2018(07):10-13.

[7] 佚名.RW100型超声波雾化器的设计[J].今日电子,2018(08):55-56+59.

c语言设计模拟闹钟主函数,基于STM32F407的四重感觉人体自然唤醒仪器设计相关推荐

  1. c语言设计模拟闹钟主函数,基于C5单片机的数字时钟课程设计(C语言,带闹钟)要点.doc...

    单片机技术课程设计 数字电子钟 学院: 班级: 姓名: 学号: 教师: 摘 要 电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎.所以设计一个简易数字电子钟很有必要.本电子钟 ...

  2. c语言历史以及main主函数的剖析

            语言是一种沟通工具,比如英语.汉语等等.而计算机语言是人和计算机交流的语言. c/c++/java/phthon 等等就是各种计算机语言,而 c 语言是计算机语言的一种,任何学计 算机 ...

  3. 【c语言】模拟实现字符串函数(上)

    关关难过关关过 前路漫漫亦灿烂 今天 阿紫 就带领大家一起挑战字符串函数的模拟实现 目录 1.模拟实现strlen 1.1函数介绍 1.2函数的模拟实现 2.模拟实现strcpy 2.1函数介绍 2. ...

  4. c语言中两个主函数怎么,C语言如何将两个函数通过主函数调用

    C语言如何将两个函数通过主函数调用0 将以下两个函数通过一个主函数调用,求调用后的程序 文件的分割 #include int main() { int len=0; int len2=0; FILE* ...

  5. 【C语言】模拟实现atoi函数

    目录 前言 一.atoi()函数 二.模拟实现atoi 1.普通情况 2.空指针 3.前面有一大堆空格 4.字符串长度为0 5.整型溢出 6.含有其它类型数据 7.具体实现 前言 今天我们来模拟实现a ...

  6. C语言 时钟模拟(gotoxy函数的运用)

    时钟模拟,运用gotoxy()函数和Sleep()函数. 效果: #include <stdio.h> #include <windows.h> #include <ti ...

  7. c语言输出各种图形主函数咋写,C语言图形函数介绍篇

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 ----------------------------------- HERC         7            HERCMONOHI      ...

  8. mysql 游戏服务器设计_游戏服务器之基于文件数据库和mysql数据库的db服务器设计...

    设计上: (1)文件数据库是用于处理游戏逻辑业务请求. (2)mysql数据库是用于处理运营后台查询请求. (3)备份业务是用于定时备份文件数据库文件. 本文目录: 1.角色数据更新请求 2.mysq ...

  9. c语言设置制表符参数,printf()函数的参数和制表符

    · 参数 · 控制符 · 转义序列 printf("这是第们学习的第4课"); printf("12345\n6789"); \n  换行 \r  回车键 \b ...

最新文章

  1. C++Bogo Sort猴子排序的实现算法(附完整源码)
  2. 浏览器渲染机制面试_【前端面试必考题】页面渲染机制(一)
  3. 建议 | 在中国不是程序猿,不建议你用序列化!
  4. Selenium自动化测试-8.iframe处理
  5. 开源标准数据集 —— mnist(手写字符识别)
  6. 计算机中丢失profapi,profapi.dll
  7. SpringBoot项目获取Spring容器中的bean
  8. 10 分钟上手 Vim 编辑器,常用命令大盘点!
  9. HeidiSQL软件推荐( MySQL 服务器和数据库管理的图形化界面)
  10. .NetCore下使用NPOI绘制统计图表
  11. 计算机网络延展-令牌环网
  12. OSG开发笔记(二十三):Qt使用QOpenGLWidget渲染OSG和地球仪
  13. 高通骁龙各代处理器解析
  14. 2016年11月份各省市报考时间与报名链接 软考 系统集成项目管理工程师
  15. python一只青蛙一次可以_Python面试题系列之11 变态青蛙跳
  16. 【学习笔记】常见测试类型测试方法
  17. 常用FPGA相关的网址资源
  18. 双硬盘+win10+Ubuntu20.04双系统安装安装教程(UEFI)
  19. K均值(K-means)聚类算法
  20. INFORMS 及 EJOR 系列主编汇总

热门文章

  1. Layui数据表格之图片的处理
  2. 16Aspx.com-书通网中小学生免费在线学习网站源码 带采集带手机版帝国cms内核
  3. IDEA下Git标签使用
  4. python爬取新冠状病毒实时数据,绘制各省份疫情地图
  5. 终年57岁!中国科学院院士因病逝世
  6. 正则表达式的条件用法
  7. java疯狂讲义第四版第五章答案_疯狂java讲义第五章笔记
  8. 货币的时间价值之复利计算公式
  9. IDEA自动生成实体类
  10. 阿里云服务器docker安装初体验