基于STM32F407ZGT6的智能镜子设计
2022-06-23
来源:步旅网
科技创新与应用I 2017年第13期 科技创新 :l: 基于STM32F407ZGT6的智能镜子设计 肖培 胡天立 曹源 祝蓓 李璇 (吉林农业大学,吉林长春130000) 摘要:以sTM32F407zGT6为主控制器,利用原子镜的半透效果,设计了一种可实现查看天气、穿衣建议、语音识别、语音播报、 音乐播放、闹钟提醒、火灾报警、室内温湿度检测以及自动调光等功能的智能镜子。镜子移植了UCOS—II嵌入式操作系统,同时 设置了看门狗,能够保证系统的正常运行;镜子的显示部分则是由一块60cm ̄45cm的原子镜和两块7寸LCD显示屏组成。 关键词:智能镜子;STM32F407ZGT6;UCOS—II;语音识别;语音合成 当今社会时代发展迅速,而快节奏的生活让大多数人都无法享 受属于自己的信息世界。为此设计了一种可以在洗漱过程中获取当 天信息的智能镜子,通过镜子我们可以查看当天的天气情况以及对 应的穿衣建议,除此之外,该镜子还具有语音识别、语音播报、音乐 播放、闹钟提醒、自动调光等功能。同时利用镜子获取信息也为人们 提供了一种全新而又便捷获取信息的方法。 1系统结构及相关功能 除了以上几个主要模块之外,整个系统还由以下几个模块协同 工作,从而实现相关功能: (1)ATK—ESP8266WIFI模块:该模块是一款高性能的UART— WiFi(串口一无线)模块,模块支持STA/AP/STA+AP三种工作模式。 (2)ATK一7 LCD显示屏:该模块屏幕分辨率为800*480,16位 真彩显示,模块自带LCD控制器,拥有多达8MB的显存,能提供8 页的显存,并支持任意点颜色读取。 (3)HC—SR501人体红外感应模块:具有不可重复和可重复两种 触发方式。 (4)MQ一2烟雾气体传感器模块:通过采集其输出模拟信号可以 检测是否发生火灾。 \ t / (5)光敏电阻传感器模块:采用灵敏型光敏电阻传感器,具有 温湿度模块 --tt, STM32F4O —■ 语音识别模块 DO数字开关量输出(0和1)和AO模拟电压输出两种输出模式。 (6)DHT一11温湿度模块:该模块采用单总线通信模式,温度检 测范围为0℃一50℃,湿度检测范围为20%一95%(0℃一50%环境下)。 7ZGT6 (7)电容按键模块:该模块是一个基于触摸检测IC(TrP223B) 光照强窿模块 主盥萌器 呻 -● 语音合成模块 的电容式点动型触摸开关模块。 (8)LED灯组:利用PWM来调节LED灯的明暗情况。 / t \ 3系统软件设计 3.1 UCOS—II操作系统移植 烟雾传感器 WIFI模块 电容按键模块 UCOS—II是一个可以基于ROM运行的、可裁减的、抢占式、实 时多任务内核,它的性能能和很多商业操作系统相媲美,它具有高 图1系统整体框图 度可移植性,特别适合于微处理器和控制器,为了提供最好的移植 图1为系统的总体框图,系统的主控制器为STM32F407ZGT6, 性能,UCOSII最大程度上使用ANSI C语言进行开发,并且已经移 系统的显示部分由两块7寸LCD显示屏组成。利用人体红外感应 植到近4O多种处理器体系上,涵盖了从8位到64位各种CPU(包 模块可以判断镜子前是否有人,从而控制显示器的亮灭;利用温湿 括DSP)。 度模块可以获取室内温湿度;把光照强度传感器采集到的数据通过 从图2可以看出,UCOSII的移植,我们只需要修改:OScpu.h、 转换公式可以用来控制LED灯组的亮暗;而烟雾传感器用于实现 oscpu—a.asm和os_cpu.c等三个文件即可,其中:OS—cpu.h,进行数 火灾报警的功能。系统的人机交互部分除了LCD显示屏外,还有用 据类型的定义,以及处理器相关代码和几个函数原型;os a.cpu 来实现对系统进行相关操作的电容按键模块,用来进行语音识别和 asm,是移植过程中需要汇编完成的一些函数,主要就是任务切换函 语音播报的语音识别模块和语音合成模块。最后的WIFI模块则是 数;os_cpu.C,定义一些用户HOOK函数。 用连接服务器进行信息交换。 2系统硬件设计 用户应用程序 2.1 STM32F407ZGT6控制器介绍 8 STM32F407ZGT6采用Cortex_M4内核,具有192KB SRAM、 UCOSll与处理器无关的代码 1024KB FLASH、3个12位ADC、2个l2位DAC、1个RTC(带日历 UcoS I《.n t鎏COS l#.C UCOSII- ̄应用程序帼 功能)、以及112个通用IO口等。通过查阅资料,该控制器能够很好 0S tmr.c os time.c 关的代码 的完成系统的各项功能。 os task.c os sem.C oS c os mutex,c os cfg.h 2.2 ASR M08一A语音识别模块 ASR M08一A支持5-68V的外置电压供电,模块通过串口与主 os mem,c os mbox ̄c lncludesos flagh 控制器相连,同时模块自带功放电路输入,可直接连接8欧姆0.5 C os core。C 瓦(8n 0.5W)的扬声器。 UCOS!嚆.魁赠嘲相关的代码f移棱时需受惨l泼) 该模块具有两种检测模式,即普通检测模式和口令检测模式。 OS ̄pu h oscpu_a。asm os_cpu_c.c 口令检测模式需要先验证对应口令,才能进行语音识别,因此每响 应一个动作需要讲两个关键词,这两个模式的切换主要是通过一句 指令来完成,所以我们通过软件可以实现只需要第一次验证口令, 之后就进入普通检测模式。 2_3 SYN6658语音合成模块 图2 UCOS—II体系结构图 SYN6658中文语音合成芯片是北京宇音天下科技有限公司于 3.2相关初始化函数 、 2012年最新推出的一款性/价比更高,效果更自然的一款高端语音 主控制器与各个模块进行通信,需要对各个IO口进行配置,通 合成芯片。SYN6658通过UART接口或SPI接口通讯方式,接收待 过调用对应初始化函数可以对通信10口进行配置。以下是主函数 合成的文本数据,实现文本到语音(或1TIS语音)的转换。 相关设置: NVICPr2.4其他模块介绍 iorityGroupConfig(NVIC_PriorityGroup_2);,/设置中断优 l 随宁 徽 LCE)j 分 LEDj明 _...__CPU l{ —基金项目:吉林农业大学国家(省)级大学生创新创 ̄iJII练计划项目(201510193044) 一72一 科技创新 先级 2017年第1 3期『科技创新与应用 在主任务中创建了tmrI(1秒触发一次)、tmr2(一秒触发一 次)、tmr3(一小时触发一次)= 个定时器,分别用来 示时问、采集 传感器数据、获取天气信息。 4实物功能及测试结果 4.1实物功能介绍 init(168);//初始化延时函数 init(9600); //初始化串口1波特牢为9600 usart3init(9600);//_}』J始化串Ll 3波特率为9600 LEDInit0;//1 ED灯组初始化 LCDInit0;//I CI) 爪器初始化 Adclnit0;//ADC初始化 KEYlnit0;//,乜容按键仞始化 MyRTChlil(】;//卡U始化RTC delayuartTIM31nthail(100一I,8400~1)d/10Khz汁数频率,计‘数100次为 —10ms RTCSetWakeUp(RTC一 akeUpClock—CK—S1 RE一161)its,())://眄 —置中断lnl一次 nly—nlenl—inii(SRAMIN): //初始化内部I^J仔池 mvinenljnit RAMcCM): ,/初始化CCM内存池 —图3一共有i张网片,第一张罔片是无人在镜子面前的扪摄 阿,第二张是有人在镜子面前,同时光线较暗,系统自动调 I,ED 灯组亮度的拍摄图,最后一张是界面效果图。从最后一张冈片n 以 看出该作品具有时间 爪、室内室外温湿度 示、天气状况以及穿 衣指数显示,界面右上角的同标分别表示备忘、闹钟、联网状态;除 了LCD 示的功能外,系统还具有F1动调光功能,它会根据室内光 线强弱调节LED灯组亮度;语音识别功能,能够识别一些简单的语 音口令,例如现存时间、现存天气情况、播放音乐、打开菜单、设置闹 钟、关闭自动调光等50条相火语音指令;语音播报功能,例盘l】准点 报时,播报天气情况等;人体红外感应功能,当镜子检测到镜子而lji『 段时间内无人时,会关闭LCD融示屏,该时间可以设置;音乐播 一ext'unsinil(); //为fatfs相关变 L}l请内仔 放功能,可以播放用户存储在SD卡I}J的音乐,播放音乐时,小具备 f mount(fs[0I.110:”,1);//摊载sD 语音识别功能,此时只能通过电容按键进行操作。 f mount(fs…,”1:”, /付 载FLASH 4-2实物测试结果 while(lfnit—init0){1 在测试中,我们利用笔记本电脑搭建服务器,开启对应热点,系 He,osloadnlain~—uiO; IIDIJ载主界面 统通过热点连接该测试服务器,通过服务器上的Python脚本可以获 OSlnit0; //初始化UCOSI1 取到对应的天气信息;经过各项测试,该作品也能够完美的实现L 0STaskCrPaIe(sIa rI—task,(wild )0,(OS—STK )&S.rART_TASK~ST 述各项功能。同时为了保证系统的稳定性,我们在室内温度为20摄 K[STAR一一STK—SIZE—l】, AR ~TASK—PRIO);//,g,J建起始ft务 氏度左右的环境下进行r 24h的“拷机”测试,测试结果表明,祭套 OSStarl0: //系统丌始运行 系统能够长时间的稳定运行。 在起始任务【fl,我f『ltZ,]址lr以下几个任务: 5结束语 OSCPUSR Cpl/s 0; 通过查阅各项资料,此作品还足具有很大的应用以及开发前 OSStatlnit0; //初始化统计任务,会延时1Ill左 景,因此町以进行下一步的改进。肖 是系统的主控制器_【1『以进行 OSENTERCRIq’ICAL0;//进入临界区(无法被『II断打断) 升级,我们可以选用更高级的基于ARM的微型电脑主板,搭载I in— OSTaskCreate(main—task,(void )0,(OS_S FK )&MAIN-1 ASK—ST IIX系统;接下来镜子的显示器町以政为大屏液品 示器,同时配以 K[MAIN—STK—SIZE—ll,MAIN_q、ASK—PRIO);IlO,l建主f}务 红外触屏;最后则是语音识别以及讲 播报功能可以调川汛飞或者 OSTaskCreate(wifi—task,(void*)O,(OS—STK )&WIFI—TASK—S FK 酉度的语音识别以及语齐合成接¨,从lfrl…uu够让智能镜子更智能. .[WIFI_TASK—SIZE—J 1,WIFI_'I ASK—PRIO);//创建WIF’IfE务 参考文献 …曾振民,陈年生,马强,等.基于ESP8266的无线控制电路设计…. ()STaskCi‘eale(1ight一1ask,(void JO,(OS—S l1K )&Ll( H 】l_rASK—S I’ 工业控制计算机,2017(1):68—69. K[LIGHT—TASK—SIZE—I1,I I(;卜】rF_TASK—PRIO);IIg'3建灯光测 仃务 『2J莫琦,赵俊峰,黄耿洪.基于嵌入式的多功能家庭管理助手….数字 OSTaskCreate(iwdog_task.(void )O,(OS—STK )&IWI)OG_TASK— 技术与应用.2015(12):66+68. STK[IWDOG—S FK—SIZE一1 1,IW1)OG_TASK—PRIO);//g1建霸rj狗任多} 【3l邓中祚 智能家居控制系统设计与实现fD].哈尔滨:哈尔滨工业大 OSq askCreate( reen—task,(void )0,(0S—STK )&SCREEN_TAS 学,2015. KSTK[SCREEN—STK—SIZE—ll,SCREEN—TASK—PRIO);//gI建屏幕亮 I4]Y-怡,鄂旭.基于物联网无线传感的智能家居研究….计算机技术 火任务 与发展,2015(2):234—237. OSEXITCRI FICAI : //退 临界区(可以被中断打断) 15】肖宛昂,苏高民,陆廷,等.一种由WiFi智能插座构成的智能家居 『J1_单片机与嵌入式系统应用,20l4(5):46—48. f61杨威,高文华.基于Android的智能家居终端设计与研究….计算机 技术与发展,2013(07):245—248. f71申斌,张桂青,汪明,等.基于物联网的智能家居设计与实现….自 动化与仪表,2013(2):6—10. 【8】杨堤.基于物联网的智能家居控制系统设计与实现lJI.电子世界, 2Ol2(21):16—17. 【9】郭稳涛,何怡刚.智能家居远程监控系统的研究与设计….计算机 测量与控制,2011(9):2109—2112. f10】童晓渝,房秉毅,张云秀.物联网智能家居发展分析l J】.移动通信, 2Ol0(9):l6—20. 作者简介:肖培(1996一),男,汉族,湖南邵阳,在读本科生,研究 方向:嵌入式开发、 图3作品实物图 一73—