飞思卡尔智能汽车MATLAB GUI上位机制作流程.doc
《飞思卡尔智能汽车MATLAB GUI上位机制作流程.doc》由会员分享,可在线阅读,更多相关《飞思卡尔智能汽车MATLAB GUI上位机制作流程.doc(26页珍藏版)》请在三一办公上搜索。
1、 飞思卡尔智能汽车MATLAB GUI上位机制 作 说 明学 校: 广东工业大学 学 院: 信息工程学院 作 者: 文新懿 指 导: 王日明 日 期: 2010年12月01日 关于此文档的制作与使用简要说明 本文为飞思卡尔智能车上位机制作说明,该作品使用MATLAB GUI编写,通过串口实现电脑和下位机之间的通讯及数据分析处理。由于本人技术水平及时间所限,此作品仅完基本框架部分,具体模块及功能需要由其他人员完善。为此,本人编写此文档详细说明学习、制作流程,以方便交流学习。希望此文档能为你提供帮助,谢谢!目 录第一章 引 言1第二章 MATLAB GUI先备知识22.1 MATLAB学习网址22
2、.2 MATLAB GUI学习视频2第三章 上位机方案设计33.1 总体结构33.2 登陆界面UCS GUI43.3 数据录入界面 login GUI43.4 图线分析界面 analysis GUI5第四章 简单操作说明54.1 软件需求54.2 上位机操作5第五章 主要功能说明65.1 MATLAB串口通信65.2 图线数据显示6第六章 具体问题与解决方案76.1 GUI界面切换76.2 按钮外观编辑76.3 串口清除86.4 二进制文件相关96.5 改变光标形状96.6 获取当前路径106.7 将MATLAB GUI生成exe106.8 录入图片劣化116.9 图片读入相关126.10 为
3、GUI程序添加启动画面126.11 循环定义新数组126.12 硬盘格式转换后 HostID改变 Matlab的license失效136.13 获取系统时间136.14 用图片作为axes的背景146.15 在一个Figure中画多幅图14第七章 总结与展望16附 录17第一章 引 言下文以上位机的设计为主线,包括小车的整体构架设计、主要模块设计,以及详细问题处理等,共分为七章。其中,第一章为引言部分;第二章主要介绍了制作此上位机软件所需的MATLAB GUI先备知识;第三章整体介绍上位机的设计方案;第四章介绍了软件的简单操作方式;第五章详细描述了软件主要功能,主要包括数据录入部分和图线分析部
4、分。第六章描述了在制作过程中遇到的具体问题,并附上其解决方案以供参考。第七章总结了在此作品的完善建议及心得体会。第二章 MATLAB GUI先备知识2.1 MATLAB学习网址由于学院已有MATLAB课程,相关资料也十分丰富,在此就不做重复了。本文档主要讲述有关GUI制作的相关知识,限于本人是完全自学,技术水平有限,若有错漏敬请指正。以下推荐若干MATLAB学习的网址,作品制作的大部分知识来源于网站论坛,希望能令学习者有所借鉴:2.1.1 Matlab 中文论坛:2.1.2 Matlab百科全书:另外,学会使用help指令,阅读MATLAB官方帮助,也是十分有效的学习方法。往往苦寻不到的资料其
5、实早就存在于帮助之中,只是我们不识庐山真面目而已。2.2 MATLAB GUI学习视频2.2.1 matlab_GUI_1创建简单GUI2.2.2 matlab_GUI_2按钮使用及图片读取高分辨率2.2.3 matlab_GUI_3radiobutton switch语句 图像边缘2.2.4 matlab_GUI_4.成绩查询系统界面2.2.5 matlab_GUI_5成绩查询系统功能2.2.6 matlab_GUI_6读取Excel文件2.2.7 matlab_GUI_7读取文件错误处理2.2.8 matlab_GUI_8优化 进度条的使用2.2.9 matlab_GUI_9与Java V
6、B C+ C# 联合编程2.2.10 matlab_GUI_10菜单 添加Active控件 播放MTV*详见文件夹“GUI学习视频”第三章 上位机方案设计3.1 总体结构图线分析analysis 数据录入login登陆界面UCS上位机系统该软件分登陆界面UCS、数据录入login、图线分析analysis三个界面,在登陆界面可分别进入另外两个界面。各个界面之间可独立保持或相互切换,实现不同功能间的通讯。3.2 登陆界面UCS GUI3.3 数据录入界面 login GUI3.4 图线分析界面 analysis GUI第四章 简单操作说明4.1 软件需求制作过程中需用到MATLAB软件、串口调试
7、助手、虚拟串口软件,此类资源网上十分丰富,可自己下载。若要在安装不同MATLAB版本或未安装MATLAB的PC上运行,需要安装MCRInstaller.exe(具体操作见6.7将MATLAB GUI生成exe) 4.2 上位机操作4.2.1.安装MCRInstaller.exe4.2.2运行文件夹“上位机EXE“中UCS.exe,打开登陆界面UCS4.2.3.点击按键“数据录入”,进入数据录入界面login4.2.4.若需串口读入,则设置左边参数,并在右侧按格式输入文件保存地址,点击按键“确定”,保存已输入地址;再点击按键“使能”开启串口使能,点击开始。4.2.5.若不需串口读入,直接读取以保
8、存数据,则只需在右侧按格式输入文件读取地址(现已有保存数据在地址:“UCS所在地址data ”,直接可输入此地址读其中数据做测试),点击按键“确定”,保存已输入地址4.2.6.点击按键“返回”,回到UCS界面;也可不返回,保持数据录入界面login打开,手动切换界面4.2.7.点击左上角按键“LOAD”,导入全部数据。此时会有屏闪,表示数据读取中,屏闪结束时读入完成4.2.8.按按键“NEXT”显示下一幅,按按键“FRONT”显示上一幅,按按键“FIRST”显示第一幅,按按键“VIDEO”连续播放第1-187副图像。在图像显示、播放时相应参数的曲线会在下方标有“曲线显示区域”的位置显示,各对应
9、曲线表示的参数在源文件中有注释说明。各参数意义详见文件夹“下位机说明”中文档。第五章 主要功能说明5.1 MATLAB串口通信 5.1.1在此以CCD组为例。先选CCD组,设置波特率为38400,数据位8位,停止位1位,无校验位,并使能。先发送170(十进制),然之后发送85(十进制)至下位机,下位机反应后,开始接收一幅图像以及这幅图像中所附带的参数,下位机发送完毕后,lcd上会显示“发送成功,等待继续发送”的提示。连续导入187块数据,并以txt文档形式保存串口通信使用函数serial,详见pdf档案,尤其注意操作实例中回调函数(默认instrcallback或自编的mycallback)的
10、运用,及基于中断的串口通信优于基于查询的串口通信的原因数据保存的格式是:CCD组:(1)每一帧数据,保存为一个txt文档 (2)文档包含图像及参数,相见下位机格式文档 (3)文件名称为“dataN.txt”,其中N为0-186的整数,通过数据录入模块串口读入时,自动保存为以上格式;若直接读取已存在数据文件,则需将数据文件另命名为以上格式。5.1.2以中断方式进行串口读写,其中断触发事件为输入缓存达到3873字节,中断服务程序调用m函数mycallback,相关知识点见以下资料:5.2 图线数据显示以CCD组为例,根据输入的3873个字节数据,由于图像是40行*95列,且每行外加一个0作为标示,
11、因此提取40*(95+1)即3840个数据进行处理。处理过程包括将读入数据做矩阵化,矩阵转置及归一化等。由于在一个Figure中画多幅图是有一定限制的,若直接显示则只显示在当前激活的AXE控件中,会覆盖已存在图线,并不能同时做到多图像不同窗口播放。因此,使用导入功能,现将图像数据导入到全局变量global fn中,再从fn的CData属性读出,实现跨Figure显示。(见6.13 在一个Figure中画多幅图)曲线部分,由于暂时未完成PID参数控制相关,只以折线图显示了读入的原始参数。此部分内容,有较大改进空间,希望日后能不断完善。第六章 具体问题与解决方案6.1 GUI界面切换问题:我在做的
12、一个程序需要实现多界面的切换,我搜索过论坛上的相关问题,解决方法好像都是做几个figure,然后通过按钮或者其他的操作使一个显示而另一个隐藏。我试了一下,切换的时候界面会很明显的闪一下,有没有别的什么方法可以让界面切换的时候看起来很自然,就好像在同一个界面上呢?如果只有上面这种办法的话,要实现运行时移动其中的一个界面,所有的界面都相应移动,应该怎么做?回答:没有太好的办法。你可以这样处理看看:1、把所有的GUI窗口都设置到一个位置显示;2、在调用另一个界面的地方调用GUI后,延时关闭先前的窗口:GUI2();pause(2);close(handles.figure1);这样,新的窗口会遮挡住
13、原先的窗口,再关闭原先窗口时就不会有任何感觉。备注:本程序界面切换设计,使用全局变量做判断标志,控制各个界面的开闭状态,这样可以同时打开多个GUI界面。当然,若想实现其他形式的界面切换,可灵活应用上述问题的方法。6.2 按钮外观编辑问题:按钮控件外观是默认,怎样才能在button上加图标,使显示更美观。回答:在button上加图标的程序,或许对大家有用。基本思想,利用button支持cdata的思想,把图片的数据转换成cData放在按钮上。实现了在GUI上,按钮有背景图片。备注:本程序设计中,对部分按钮: 使用上述问题的方法,改变外观。但发现存在一个问题,当GUI 大小改变时,按钮大小将发生变
14、化;而此时外观图片大小不变,这会使实现发生偏差。此问题希望有能力者加以完善。另外,利用Fireworks可以更方便编辑按钮图片。6.3 串口清除问题:在串口通信中遇到一个问题,假如有一个已经打开的串口对象s,在没有关闭之前就被clear命令清除了,这时如何关闭s对应的串口?遇到这种情况我只会关闭matlab再重新打开,这样太麻烦了,不知道有没有更好的办法?回答:delete(instrfindall)instrfindall可以找到所有的串口6.4 二进制文件相关*详见附带资料的 “详细问题与解决方案” 文件夹6.5 改变光标形状问题:看了makesure5写的“给控件添加相应的注释信息”学会
15、了怎么给按钮加注释,现在想再增加点功能,希望当鼠标放在按钮上时光标能改变形状(比如小手什么的),不知道能不能实现,希望高手指点下。回答:你查找一下figure的pointer属性就知道了,它是选择指针符号!备注:Pointer属性有: crosshair | fullcrosshair | arrow | ibeam | watch | topl |topr | botl | botr | left | top | right | bottom | circle | cross | fleur | custom | hand 可以任取一个尝试。6.6 获取当前路径问题:如何在matlab下获得
16、当前路径啊?我用uigetdir能获得该路径,但是会有一个对话框出来,有什么办法能不显示对话框而获得当前路径吗?回答:用cd命令即可。备注:用cd命令获取的是当前打开的MATLAB编程主程序的地址,而非GUI所在地址。若是已编译完成,打开生成EXE,则无此问题。要注意的是编译时所需的图片文件等资料,是不会包含在EXE中的,需要根据编程时的相对地址事先存放图片、音乐等,才可正常打开程序。6.7 将MATLAB GUI生成exe问题:如何要使MATLAB GUI生成EXE文件,方便在不同PC上运行?回答:一、生成独立可执行的程序(exe文件)步骤 1、安装编译器。可有多种选择,matlab自带了一
17、个LCC,推荐使用VC+6.0,我基于VS 2003实现。2、设置编译器。在matlab命令行输入mbuild setup以及mex setup,选择安装的c编译器。3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件;注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc-m filename(多m文件联合编译成exe则用mcc -m filename
18、1 filename2 filename3);4、安装toolboxcompilerdeploywin32目录下的MCRInstaller。(2010b版本不在此文件地址下,可用系统搜索功能对全安装目录搜索得到)二、脱离matlab运行可执行程序MCR是由matlab的运行环境,占用不到300M的对于用不同matlab版本生成的exe文件,MCR版本也会有不同,因此,在程序打包时,最好将相应版本的MCR一起打包。MCR环境的设置文件存放目录如下: toolboxcompilerdeploywin32文件名为MCRInstaller.exe。可将其拷贝到自己的文件夹中,(7.0以前的版本是mgl
19、installer.exe)。在MATLAB里运行可执行程序的办法是在前面加一个!,比如:!picshow,后缀名可有可无。在其它没有安装matlab的机器上运行exe文件前:首先安装matlab的运行环境。在同一机器上可以并存不同版本的matlab环境(换句话说不同版本不兼容)。其次是要将“MCRinstaller.exe安装目录runtimewin32”这个路径添加到该计算机的环境变量中,通常是自动加载。如果没有,也可手动安装,添加的方法是:右击“我的电脑”“属性”“高级”“环境变量”“添加”指定一个变量名,然后将上述路径复制到里面就可以了。在安装过程中会弹出让安装Microsoft.NE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 飞思卡尔智能汽车MATLAB GUI上位机制作流程 卡尔 智能 汽车 MATLAB GUI 上位 机制 流程

链接地址:https://www.31ppt.com/p-2956903.html