LABVIEW实验报告 北邮

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LABVIEW虚拟实验系统的设计
设计报告
应用名称:健康精灵
一、设计理念
当今的社会发展迅速,物质条件明显改善,人们饮食的营养条件大幅上升,这本来是社会进步的标志,但是我们当代人却没有对锻炼身体有足够的重视,因而导致很多人患上了高血压、高血脂、糖尿病等等。

在某种程度上说,患这些病是长期的饮食不健康,缺乏锻炼所致。

针对这一情况,我们依托LABVIEW这一图形化编程语言制作了软件应用健康精灵。

健康精灵意在记录用户每天的营养摄入与积累,形成其特定的饮食轨迹,并且根据这一饮食轨迹给出人性化的运动建议,推荐给用户适宜的运动项目和运动时常。

每天积累的过剩能量可以通过运动释放,以达到健康生活的目的,提高人们的生活质量。

健康精灵的特点在于可以根据每日的摄入,给出可选的锻炼项目以及锻炼时间,这样可以在一定程度上避免每日定量运动的弊端,提高用户运动的兴趣,同时健康精灵也起到了提醒用户及时锻炼的作用。

在物质生活和精神生活都日益完善的当今社会,人们的生活条件好了,对自身的健康问题也会格外的重视!我们之所以设计这款应用程序,就是希望能为大家的健康生活提供哪怕一点点的帮助,尤其对于长期在书桌前工作的人可以提醒他们重视自己的身体健康情况,真正做到“为祖国健康工作五十年”。

健康精灵是一款服务于人们健康的软件,从饮食和运动入手,既记录下了用户的饮食脉络,也为用户提供运动参考。

LABVIEW在与后台数据库连接、与用户进行交互上具有优势,我们选择用LABVIEW来进行编程,可以方便后续程序的扩展,并且提高用户使用的舒适性。

二、功能介绍
健康精灵,可以记录用户每日所吃的食物名称、摄入量等,并会根据用户自身情况人性化地推荐合理的运动。

下面我们将对其功能进行详细介绍。

1、在食物选择页面选择食物后,该页面右侧将会出现相应的选择框,可以
输入相应的摄入量,如下图
2、当无法顺利找到某种事物时,可以进行模糊查询功能。

如果存放食物的
数据库中该食物,将提示该食物在面板的位置,否则将会提示“无法找
到”。

3、在运动选择面板,可以选择不同的运动,当取消某运动选项时,运动强
度的滑动条变灰,同时,运动时间输出框重置为0。

4、滑动滑动杆,可以改变运动时间。

比如,当增加某一运动的运动时间时,
其他的运动的运动时间会相应变少,符合程序人性化的要求。

5、同时考虑到用户可能选错食物,所以进入运动选择面板后,我们也会提
供返回上一级面板的按键,方便用户重新修改选择。

6、开场动画和程序结束运行的动画,让应用更完成、更赏心悦目。

当然时间所限,这只是我们应用的一部分功能,为了更加适应竞赛的要求,后期我们会对现有程序进行更全面的改进,争取有更好的用户交互性。

首先,我们会将用户的日摄入量和运动反馈写入后台数据库,记录下用户每天的健康信息,每星期每月都可以给用户提供一个月健康数据图,将用户的运动完成情况反馈给用户,供用户分析并了解自己的营养摄入趋势。

其次,我们会增加运动的数据库,这样运动的种类将进一步进行扩展,可选择性更广。

在此,考虑到中国饮食博大精深,把所有的菜都写入数据库显然是不现实的,我们打算对现有食物数据库进行进一步修改,改为原料和烹饪方式两类。

这样只要输入有限的原料和烹饪方式就可以涵盖所有的菜色。

最后我们打算与相关社交网站进行合作,推出好友减肥对比功能,激发大家运动的激情和热情。

无论是对于想要减肥的“瘦身”一派,还是预防发胖一族,即便是对于没有这些需求的用户,健康精灵都大有益处。

它可以让用户对自己的饮食脉络有清晰的把握,同时也对健康隐患防患于未然!
三、设计构架(我只补充了运动模块其他模块还要你门来写)
健康精灵这款软件的构思来源于我们一位想减肥的同学的建议,想减肥无非通过控制饮食和加强运动两个途径来解决。

我们在构建健康精灵这款软件时,将整个的软件根据功能需求划分为几个子模块:数据库模块、摄入食物选择模块、总卡路里数计算模块、运动选择与推荐模块、模糊搜索模块。

1、数据库模块
数据库模块的正常使用对程序的运行很重要,因为我们的labview程序需要访问数据库并进行相应的查找操作等等。

在一台新的电脑上进行程序运行需要做的提前的处理步骤如下:
运行C:\Windows\SysWOW64\odbcad32.exe,出现如下所示的对话框。

选择添加按钮,再做出下图所示的相应选择。

最终将数据源命名为klldb即可,labview中会根据数据源名klldb找到对应的mdb文件进而做出相应的数据库操作。

2. 摄入食物选择模块
摄入食物选择模块中,采用自定义控件的方法,将食物的图片做成控件,触发了选择操作后,则在后台的事件结构中做出相应的处理,其中需要查找数据库显示出相应的食物种类和食物能量,并且通过panel 访问前面板找到对应序号的输入控件,将这三部分信息在相应的部分显示出来。

这一子模块还需要做的处理工作就是在取消某一项之后,在输出端需要撤销掉对应的控件显示同时还需要将剩下的处于可见状态的控件进行重排,以达到美观整齐的目的。

3、总卡路里数计算模块
总卡路里数的计算较为简单,因为我们在数据库中已经存有了对应的食物的卡路里含量信息,而在用户选择了相应的食物之后的输入信息也会写入到数据库中记录,最终的总卡路里的计算是通过遍历数据库实现的。

在事件结构的某一帧中则完成了总卡路里数的计算。

4、运动选择与推荐模块
运动选择与推荐模块的入口参数是摄入的总卡路里数计算,我们在其中做了相应的算法设计。

用户可以在其中选择运动的种类,调整运动的强度,我们会按照用户的需求推荐出相应的运动时间。

下面介绍相应的算法:
我们设定某种运动的权重为i y ,则i
1==∑i n m
m t y t ,其中i t 为
该运动对应滑动杆选择的相对于其他运动的相对时长。

由于各运动权重i y 大小区别不明显,我们乘上系数5,以扩大各权重的区别,修正后的权重记为i Q 。

得到修正的权重之后, 运用下面公式得到平均运动时间g
min per vin g energy =∑
其中vin 表示输入总卡路里数量,min per energy 表示各项运动每分钟消
耗的卡路里数。

这样,*i i M Q g
=即为各运动初始的运动时间。

用i M 分别与对应运动的min per energy 相乘记为i P ,将各i P 相加的和记为i P ∑,若(i
i P vin <-∑误差限),则=+1i i M M ,同理,若
(i
i P vin >+∑误差限),则=1
i i M M -,直到((i
i vin P vin -<<+∑误差限)误差限)则输出相应的
i P 即可。

此处误差限选为min per energy ∑
5、模糊查询模块
模糊查询模块我们借用了SQL 的LIKE 语言可以很方便的实现模糊查询,在LIKE 语法的一个句子中只有一部分会变化所以我们采用了子VI 可以输入一部分词语从而形成LIKE 句子,字符串连接函数连接%形成LIKE 语句,形成的语句可以作为参数传递给数据库工具包的SELECT VI 中从而选出数据,选出的数据是二维数组采用了索引数组的函数可以选出食物名称与所在页面数,为用户提示下一步的操作,数据库的打开与关闭均采用了数据库工具包的相应VI ,数据源采用了ODBC 的DSN 。

四、界面设计
做软件应用,界面设计是很重要的一个方面,我们查找了大量的图片,并做了适当的PS工作,将适宜的图片做成了自定义控件,搭建出我们健康精灵的用户界面如下图所示。

开场动画界面:
用户选择食物界面:
运动建议与选择界面:
结束动画界面:
五、程序设计
LABVIEW的工程文件已经附在压缩文件中,本报告不再对代码做相应的阐述。

我们健康精灵的程序设计大体上采用了时间结构的方式,在事件结构中对相应的触发操作进行相应的数据处理。

对于需要用到多次的功能和衔接部分的小模块,我们都采用了子VI的设计方法。

子VI及功能介绍如下:
1、cal.vi 运动推荐子VI,根据总卡路里数按相应算法做处理,给出推荐;
2、datadbID.vi 数据库访问的子VI,查询数据库调出相应的食物名称与热量
显示;
3、ID查询sql语言.vi 数据库sql查询子VI;
4、存储输入重量.vi 将用户的日摄入量信息写入数据库中保存;
5、输入位置控制.vi 控制输入控件的可见位置;
6、显示位置控制.vi 控制显示控件的可见位置。

7、Datadbkinds.vi 搜索功能
六、遇到的问题与解决方案
1、在本次的labview大作业设计的过程中,我们遇到了很多的问题。

首先就是针对我们的设计理念,如何用labview来实现之。

在咨询了学长之后,我们了解到labview可以外接数据库进行相应的操作,并且已经有封装好的labview的数据库的包。

之后,我们就开始抓紧学习labview 在数据库上处理的相关操作,虽然是从零基础开始,但是我们很有斗志,
2、我们需要将输入控件与数据库中的每一列对应起来,但不知道如何同过序号来访问控件。

作为labview世界中的小菜们,我们只能弱弱的去请教学长了。

在学长的帮助下,通过VI属性访问到了前面板的控件,根据顺序访问即可。

3、在做大作业的过程中,遇到了各种奇葩的问题,都在慢慢的学习调试过程中解决了,最终做出了健康精灵的大体框架,有很多需要完善和改进提高的地方,需要我们二期开发来实现。

七、实验总结与心得体会。

相关文档
最新文档