李明媚 董丽元 唐磊磊 李松
摘 要:为了提高学生对设计类课题的研究兴趣和设计质量,以生活中常用的电子产品功能为设计素材,选用图形化编程语言LabVIEW为仿真平台,设计了集天气预报、电子相册、音乐播放、数字钟于一体的多功能LED显示系统。该系统通过访问天气预报Web服务获取城市天气数据,由动态生成的数组实现图像的切换,调用Windows Media Player的Active X控件实现音乐播放,调用Microsoft Speech Object Library Version 5.4实现提醒事件播报,将文本插入图像再转换成矩阵以实现LED点阵字模的生成,并可根据使用需求调节背景亮度。运行结果表明,仿真系统的各项功能运行正常,可用作课程设计、软件及实物开发等。
关键词:LabVIEW;天气预报;数字钟;多功能LED;点阵字模;语音播报
中图分类号:TP391.9文献标识码:A文章编号:2095-1302(2020)09-00-03
0 引 言
数字钟、音乐播放器、电子相册等是人们生活中极为常用,甚至有些是必不可少的电子产品,其原理相对简单,易于理解。LabVIEW从程序界面设计、编写程序代码到实现程序功能,使用的都是图形化的操作方式,图形比文字又更为直观,因而LabVIEW比其他编程语言更容易学习和使用。
借助LabVIEW平台设计的多功能LED显示系统,综合运用了逻辑运算控制、数字图像处理、外部程序调用等多方面知识,并通过仿真验证了设计的合理性,有利于提高学生的观察与功能分析能力、设计的逻辑思考及仿真实现能力。
1 系统设计方案
多功能LED显示系统由天气预报、电子相册、音乐播放、数字钟和亮度调节5个模块构成。系统设计流程如图1所示。数字钟模块内的闹钟提醒功能会影响电子相册、音乐播放和节能照明等模块的运行,天气预报模块则相对独立,不受任何模块的影响。
2 功能模块仿真实现
2.1 天气预报模块
天气预报模块主要包括天气数据提取和显示两个部分。
数据提取由LabVIEW作为客户端,通过访问互连接口中.NET服务器提供的天气预报Web服务来实现[1]。借助天气预报Web服务可从中国气象局得到340多个中国主要城市和60多个国外主要城市3日内的天气预报数据,且每2.5 h左右会自动更新一次,程序框图如图2所示。
利用索引数组函数从图2获得的数据中提取选定城市今明两日的天气、温度和风力风向信息,并将这些信息以图片的形式显示在系统界面上。天气预报模块程序框图如图3(a)所示。天气情况不变时,条件结构的布尔输入为真,此时只显示一幅天气图标;天气情况有变,如当天的天气为“多云转晴”,则布尔输入为假,需要显示和两幅天气图标。由于风力风向数据的文字较多,为了避免显示不完全,这里根据字符串长度的不同进行了不同字号的设定与显示设计。以“天津”为例,天气数据显示效果如图3(b)所示。
2.2 电子相册模块
电子相册模块主要包括灰度图像[2]的随机显示和动态切换两部分。
灰度图像的读取与显示即是灰度图像与二维灰度矩阵间的相互转换过程,该过程通过LabVIEW视觉开发包中的IMAQ ImageToArray和IMAQ ArrayToImage等函数即可实现。
灰度图像间的动态切换是二维灰度矩阵[2]的动态生成过程。该模块设置了渐变、水平向右平移和垂直向上平移3种模式。
电子相册模块的程序框图如图4(a)所示,第一个条件结构实现的是切换模式的随机选择,每运行一次,条件结构的输入会由第二个条件结构中的随机数重新赋值以实现图像模式的随机切换。第二个条件结构中OUT2是借助属性节点实现二维灰度图像矩阵的动态输出。电子相册模块的3种图像切换效果分别如图4(b)~图4(d)所示。
2.3 音乐播放模块
音乐播放器模块主要包括播放列表选择和随机音乐播放两部分,程序框图如图5(a)所示。
播放列表选择可通过枚举、条件结构等实现路径的生成,再利用递归文件列表函数获得该路径下所有文件的路径,并以一维路径数组的形式输出。
随机音乐播放先要利用随机数从一维路径数组中随机选取一条路径,再调用Windows Media Player的Active X控件实现该路径下音乐文件的播放[3]。运行效果如图5(b)所示。图5(a)中的“确定按钮MP3”即为图5(b)中的圆形音乐播放/停止按键。音乐播放状态下,条件结构的布尔输入为真,按键为红色且显示为“停”;當要停止播放时,按下按键,布尔输入为假,执行IWMPControls类的stop语句实现播放的停止,同时按键变成绿色且显示为“播”。
2.4 数字钟模块
数字钟模块主要包括时间提取与显示、闹钟两部分。
计算机当前时间的提取由LabVIEW定时模块内的函数实现[4],并以文本的形式插入到图像的相应位置上,得到含有时间信息的新图像。该图像只有0和255两种亮度,转换成布尔值就可以作为LED点阵字模[4-6]使用。仿真系统中用图像像素点灰度值的变化代替LED显示屏各点的亮暗变化,实现时间的显示,程序框图如图6(a)所示。模块内设置了圆形和圆角矩形两种显示样式,除了显示时间外,6:00—19:00用太阳图标的闪烁代替秒,19:00后用月亮和星星图标的闪烁代替秒。圆形样式下的数字钟显示效果如图6(b)所示。
闹钟功能主要利用比较函数和条件结构来实现。输入提醒时间和事件并确认后,代替秒闪烁的图标变成喇叭,标志着闹钟已设定好。当前时间与提醒时间相等,即图6(a)中条件结构的布尔输入为真时,显示屏开始显示提醒事件并闪烁,同时对该事件进行语音重复播报,直至按下停止按键,恢复正常时间显示,程序框图如图6(c)所示,图标为喇叭的函数为闹钟设定好后的喇叭的矩阵生成及显示位置设置子vi。事件的语音播报功能通过调用微软的插件Microsoft Speech Object Library Version 5.4来实现,其程序框图如图6(d)所示。
2.5 亮度调节模块
系统的控制界面设置了一个滑动杆,用于改变图像中背景区域的亮度值,从而实现显示屏的背景亮度的调节[7]。
3 系统运行效果
按照图1所示设计流程,将以上5个模块组合到一起,构成了多功能LED显示系统。该系统各状态下的运行效果如图7所示。前面板控制区的第2行最右侧的颜色可变矩形块用于模拟闹钟响起时的振动信号,颜色越红,信号越强。此功能由图6(c)中的余弦函数实现。
4 结 语
多功能LED显示系统包含的各个模块虽然原理简单,但按照一定的逻辑关系组合到一起时,需要多次调试和修改才能让系统按照预期运行,如电子相册模块的程序执行顺序、音乐播放的控制功能实现、闹钟响起时对音乐播放和电子相册模块的控制等。经过这样的一个设计与调试过程,学生的知识运用和仿真实现能力都会有所提高,结合硬件和近距离无线通信等知识的学习[8-10],为今后的功能扩展和实物开发打下基础。
参考文献
[1]刘光普,李效东,梁莺,等.基于LabVIEW的天气预报系统[J].电子测量技术,2014,37(7):88-92.
[2] GONZALEZ R C,WOODS R E.数字图像处理[M].阮秋琦,阮宇智,译.2版.北京:电子工业出版社,2003:40-49.
[3]阮奇桢.我和LabVIEW:一个NI工程师的十年编程经验[M].2版.北京:北京航空航天大学出版社,2012:196-199.
[4]吴义满.基于虚拟仪器技术LabVIEW的点阵LED显示系统设计[J].电子设计工程,2014,22(10):19-21.
[5]赵佳,刘蕴红.利用LabVIEW产生字模的LED显示屏设计[J].电子科技,2010,23(11):74-76.
[6]孙立辉,王海.基于LabVIEW与单片机的多功能LED点阵显示屏设计[J].现代电子技术,2016,39(6):140-142.
[7]姜麗峰,夏梦雷.亮度可调LED电路设计[J].通信与广播电视,2019(4):13-19.
[8]刘相中,张建文,唐李生,等.基于Arduino的“变色龙”LED灯的设计[J]. 照明工程学报,2019,30(4):133-136.
[9]卢超.基于WiFi的智能LED照明控制系统的设计[J].照明工程学报,2019,30(4):137-143.
[10]崔文婷,陈恒,高远,等.基于Android的LED控制设计[J]. 电子测量技术,2014,37(12):102-104.