基于STM32F407ZGT6的智能镜子设计_第1页
基于STM32F407ZGT6的智能镜子设计_第2页
基于STM32F407ZGT6的智能镜子设计_第3页
基于STM32F407ZGT6的智能镜子设计_第4页
基于STM32F407ZGT6的智能镜子设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于STM32F407ZGT6的智能镜子设计以STM32F407ZGT6为主控制器,利用原子镜的半透效果,设计了一种可实现查看天气、穿衣建议、语音识别、语音播报、音乐播放、闹钟提醒、火灾报警、室内温湿度检测以及自动调光等功能的智能镜子。镜子移植了UCOS-II嵌入式操作系统,同时设置了看门狗,能够保证系统的正常运行;镜子的显示部分则是由一块60cm×45cm的原子镜和两块7寸LCD显示屏组成。标签:智能镜子;STM32F407ZGT6;UCOS-II;语音识别;语音合成当今社会时代发展迅速,而快节奏的生活让大多数人都无法享受属于自己的信息世界。为此设计了一种可以在洗漱过程中获取当天信息的智能镜子,通过镜子我们可以查看当天的天气情况以及对应的穿衣建议,除此之外,该镜子还具有语音识别、语音播报、音乐播放、闹钟提醒、自动调光等功能。同时利用镜子获取信息也为人们提供了一种全新而又便捷获取信息的方法。1系统结构及相关功能图1为系统的总体框图,系统的主控制器为STM32F407ZGT6,系统的显示部分由两块7寸LCD显示屏组成。利用人体红外感应模块可以判断镜子前是否有人,从而控制显示器的亮灭;利用温湿度模块可以获取室内温湿度;把光照强度传感器采集到的数据通过转换公式可以用来控制LED灯组的亮暗;而烟雾传感器用于实现火灾报警的功能。系统的人机交互部分除了LCD显示屏外,还有用来实现对系统进行相关操作的电容按键模块,用来进行语音识别和语音播报的语音识别模块和语音合成模块。最后的WIFI模块则是用连接服务器进行信息交换。2系统硬件设计2.1STM32F407ZGT6控制器介绍STM32F407ZGT6采用Cortex_M4内核,具有192KBSRAM、1024KBFLASH、3个12位ADC、2个12位DAC、1个RTC(带日历功能)、以及112个通用IO口等。通过查阅资料,该控制器能够很好的完成系统的各项功能。2.2ASRM08-A语音识别模块ASRM08-A支持5~á8V的外置电压供电,模块通过串口与主控制器相连,同时模块自带功放电路输入,可直接连接8欧姆0.5瓦(8?赘0.5W)的扬声器。该模块具有两种检测模式,即普通检测模式和口令检测模式。口令检测模式需要先验证对应口令,才能进行语音识别,因此每响应一个动作需要讲两个关键词,这两个模式的切换主要是通过一句指令来完成,所以我们通过软件可以实现只需要第一次验证口令,之后就进入普通检测模式。2.3SYN6658语音合成模块SYN6658中文语音合成芯片是北京宇音天下科技有限公司于2012年最新推出的一款性/价比更高,效果更自然的一款高端语音合成芯片。SYN6658通过UART接口或SPI接口通讯方式,接收待合成的文本数据,实现文本到语音(或TTS语音)的转换。2.4其他模块介绍除了以上几个主要模块之外,整个系统还由以下几个模块协同工作,从而实现相关功能:(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烟雾气体传感器模块:通过采集其输出模拟信号可以检测是否发生火灾。(5)光敏电阻传感器模块:采用灵敏型光敏电阻传感器,具有DO数字开关量输出(0和1)和AO模拟电压输出两种输出模式。(6)DHT-11温湿度模块:该模块采用单总线通信模式,温度检测范围为0℃-50℃,湿度检测范围为20%-95%(0℃-50℃环境下)。(7)电容按键模块:该模块是一个基于触摸检测IC(TTP223B)的电容式点动型触摸开关模块。(8)LED灯组:利用PWM来调节LED灯的明暗情况。3系统软件设计3.1UCOS-II操作系统移植UCOS-II是一个可以基于ROM运行的、可裁减的、抢占式、实时多任务内核,它的性能能和很多商业操作系统相媲美,它具有高度可移植性,特别适合于微处理器和控制器,为了提供最好的移植性能,UCOSII最大程度上使用ANSIC语言进行开发,并且已经移植到近40多种处理器体系上,涵盖了从8位到64位各种CPU(包括DSP)。从图2可以看出,UCOSII的移植,我们只需要修改:os_cpu.h、os_cpu_a.asm和os_cpu.c等三个文件即可,其中:os_cpu.h,进行数据类型的定义,以及处理器相关代码和几个函数原型;os_cpu_a.asm,是移植过程中需要汇编完成的一些函数,主要就是任务切换函数;os_cpu.c,定义一些用户HOOK函数。3.2相关初始化函数主控制器与各个模块进行通信,需要对各个IO口进行配置,通过调用对应初始化函数可以对通信IO口进行配置。以下是主函数相关设置:NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级delay_init(168);//初始化延时函数uart_init(9600); //初始化串口1波特率为9600usart3_init(9600);//初始化串口3波特率为9600LED_Init();//LED灯组初始化LCD_Init();//LCD显示器初始化Adc_Init();//ADC初始化KEY_Init(); //电容按键初始化My_RTC_Init();//初始化RTCTIM3_Int_Init(100-1,8400-1);//10Khz计数频率,计数100次为10msRTC_Set_WakeUp(RTC_WakeUpClock_CK_SPRE_16bits,());//配置中断1m一次my_mem_init(SRAMIN);//初始化内部内存池my_mem_init(SRAMCCM); //初始化CCM内存池exfuns_init();//为fatfs相关变量申请内存f_mount(fs[0],”0:”,1);//挂载SD卡f_mount(fs[1],”1:”,1);//挂载FLASHwhile(font_init()){}ucos_load_main_ui();//加载主界面OSInit();//初始化UCOSIIOSTaskCreate(start_task,(void*)0,(OS_STK*)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO);//创建起始任务OSStart();//系统开始运行在起始任务中,我们创建了以下几个任务:OS_CPU_SRcpu_sr=0;OSStatInit(); //初始化统计任务,会延时1m左右OS_ENTER_CRITICAL();//进入临界区(无法被中断打断)OSTaskCreate(main_task,(void*)0,(OS_STK*)&MAIN_TASK_STK[MAIN_STK_SIZE-1],MAIN_TASK_PRIO); //创建主任务OSTaskCreate(wifi_task,(void*)0,(OS_STK*)&WIFI_TASK_STK[WIFI_TASK_SIZE-1],WIFI_TASK_PRIO); //创建WIFI任务OSTaskCreate(light_task,(void*)0,(OS_STK*)&LIGHT_TASK_STK[LIGHT_TASK_SIZE-1],LIGHT_TASK_PRIO);//創建灯光调控任务OSTaskCreate(iwdog_task,(void*)0,(OS_STK*)&IWDOG_TASK_STK[IWDOG_STK_SIZE-1],IWDOG_TASK_PRIO);//创建看门狗任务OSTaskCreate(screen_task,(void*)0,(OS_STK*)&SCREEN_TASK_STK[SCREEN_STK_SIZE-1],SCREEN_TASK_PRIO);//创建屏幕亮灭任务OS_EXIT_CRITICAL();//退出临界区(可以被中断打断)在主任务中创建了tmr1(1秒触发一次)、tmr2(一秒触发一次)、tmr3(一小时触发一次)三个定时器,分别用来显示时间、采集传感器数据、获取天气信息。4实物功能及测试结果4.1实物功能介绍图3一共有三张图片,第一张图片是无人在镜子面前的拍摄图,第二张是有人在镜子面前,同时光线较暗,系统自动调节LED灯组亮度的拍摄图,最后一张是界面效果图。从最后一张图片可以看出该作品具有时间显示、室内室外温湿度显示、天气状况以及穿衣指数显示,界面右上角的图标分别表示备忘、闹钟、联网状态;除了LCD显示的功能外,系统还具有自动调光功能,它会根据室内光线强弱调节LED灯组亮度;语音识别功能,能够识别一些简单的语音口令,例如现在时间、现在天气情况、播放音乐、打开菜单、设置闹钟、关闭自动调光等50条相关语音指令;语音播报功能,例如准点报时,播报天气情况等;人体红外感应功能,当镜子检测到镜子面前一段时间内无人时,会关闭LCD显示屏,该时间可以设置;音乐播放功能,可以播放用户存储在SD卡中的音乐,播放音乐时,不具备语音识别功能,此时只能通过电容按键进行操作。4.2实物测试结果在测试中,我们利用笔记本电脑搭建服务器,开启对应热点,系统通过热点连接该测试服务器,通过服务器上的Python脚本可以获取到对应的天气信息;经过各项测试,该作品也能够完美的实现上述各项功能。同时为了保证系统的稳定性,我们在室内温度为20摄氏度左右的环境下进行了24h的“拷机”测试,测试结果表明,整套系统能够长时间的稳定运行。5结束语通过查阅各项资料,此作品还是具有很大的应用以及开发前景,因此可以进行下一步的改进。首先是系统的主控制器可以进行升级,我们可以选用更高级的基于ARM的微型电脑主板,搭载Linux系统;接下来镜子的显示器可以改为大屏液晶显示器,同时配以红外触屏;最后则是语音识别以及语音播报功能可以调用讯飞或者百度的语音识别以及语音合成接口,从而能够让智能镜子更智能。参考文献[1]曹振民,陈年生,马强,等.基于ESP8266的无线控制电路设计[J].工业控制计算机,2017(1):68-69.[2]莫琦,赵俊峰,黄耿洪.基于嵌入式的多功能家庭管理助手[J].数字技术与应用,2015(12):66+68.[3]邓中祚.智能家居控制系统设计与实现[D].哈尔滨:哈尔滨工业大学,2015.[4]王怡,鄂旭.基于物联网无线传感的智能家居研究[J].计算机技术与发展,2015(2):234-237.[5]肖宛昂,苏高民,陆廷,等.一种由WiFi智能插座构成的智能家居[J].单片机与嵌入式系统应用,2014(5):46-48.[6]杨威,高文华.基于Android的智能家居终端设计与研究[J].计算机技术与发展,2013(07):245-248.[7]申斌,张桂青,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论