MATLAB_GUI上位机制作流程

合集下载

matlab 上位机代码

matlab 上位机代码

matlab 上位机代码【实用版】目录1.MATLAB 简介2.MATLAB 上位机代码的编写3.MATLAB 上位机代码的应用4.总结正文一、MATLAB 简介MATLAB 是一种广泛使用的数学软件,它主要用于科学计算、可视化以及算法开发等。

MATLAB 具有强大的矩阵计算能力,用户可以通过各种函数和工具箱进行高效的数据处理和分析。

此外,MATLAB 还具有丰富的图形功能,可以方便地进行数据可视化。

二、MATLAB 上位机代码的编写在 MATLAB 中,上位机代码的编写主要涉及到两个方面:一是数据的采集,二是数据的处理与分析。

1.数据的采集MATLAB 提供了多种数据采集的方式,如通过模拟信号发生器产生信号,通过数字信号发生器产生数字信号,或者通过外部设备(如示波器、频谱分析仪等)采集数据。

2.数据的处理与分析MATLAB 具有强大的数据处理和分析功能,用户可以通过各种函数和工具箱对数据进行处理和分析。

例如,通过信号处理工具箱,用户可以对信号进行滤波、调制、解调等操作;通过图像处理工具箱,用户可以对图像进行增强、边缘检测、分割等操作。

三、MATLAB 上位机代码的应用MATLAB 上位机代码在许多领域都有广泛的应用,如电子工程、通信工程、控制工程、生物医学工程等。

1.在电子工程中,MATLAB 上位机代码可以用于模拟电路,分析电路的性能,设计新的电路等。

2.在通信工程中,MATLAB 上位机代码可以用于模拟通信系统,分析系统的性能,设计新的通信系统等。

3.在控制工程中,MATLAB 上位机代码可以用于模拟控制系统,分析系统的稳定性,设计新的控制器等。

4.在生物医学工程中,MATLAB 上位机代码可以用于分析生物信号,如心电信号、脑电信号等,以及进行医学图像处理等。

四、总结MATLAB 上位机代码的编写和应用在各个领域都发挥着重要的作用。

MATLAB GUI程序设计

MATLAB GUI程序设计

按钮控件
图形窗口
坐标轴
句柄( 句柄(Handle)—图形对象的标志 ) 图形对象的标志
句柄就是某个图形对象的记号, 句柄就是某个图形对象的记号,matlab给每 给每 个图形对象都指定一个handle,由句柄唯一 个图形对象都指定一个 , 地标值要操作的图形对象( 地标值要操作的图形对象(类似电话区号和 号码)。 号码)。 对于root对象,matlab规定它的句柄是屏幕, 句柄值为0
Root(屏幕)
Figure(图)
Uicontrol( 界 面 控 制項)
Axes(轴)
Uimenu( 界 面 选 单)
Line (线条)
Surface (表面)
Rectangle (矩形)
Patch (貼片)
Image (图像)
Text (文字)
Light (光源)
图形体系
文字控件 界面表单
弹出表单 控件 曲线
创建GUI 创建
基本步骤: 基本步骤: 1. 设计 图形用户界面 2. 用GUIDE 编辑界面 3. 编写回调函数 4. 保存,运行 保存,
GUI编辑界面 编辑界面 对齐
菜单 工具栏 M文件编辑 文件编辑
控 件
{
属性
运行
基本控件Basic Controls: 基本控件 :
axes: 坐标轴 static text: 静态文 本,用户不可编辑 edit box: 文本框, 文本框, 用户可编辑。 用户可编辑。 button:按钮 按钮
属性窗口The Property Inspector: 属性窗口 : Tag –控件名称 控件名称. 控件名称 String – 控件显示的内容 ForegroundColor –文字显示内容 文字显示内容 BackgroundColor –控件背景 控件背景

MATLAB实用教程GUI

MATLAB实用教程GUI

MATLAB实用教程GUIMATLAB是一种功能强大的数学软件,广泛用于科学和工程领域的数据分析、可视化、建模和仿真。

在MATLAB中,GUI(Graphical User Interface,图形用户界面)是一种用于创建交互式应用程序的工具,可以使用户通过图形化界面来操作和控制程序。

本教程将介绍如何使用MATLAB创建GUI应用程序,包括创建各种控件(按钮、文本框、下拉菜单等)、设计布局、添加回调函数等。

通过学习本教程,您将了解如何利用MATLAB的强大功能和易用的GUI设计工具来创建自己的交互式应用程序。

1.创建GUI应用程序要创建一个GUI应用程序,首先需要打开MATLAB并选择新建GUI应用程序。

在弹出的界面中,可以选择创建一个新的Figure或Panel,然后可以在面板上添加各种控件。

可以通过拖动和放置控件来设计界面布局,然后可以对控件进行自定义设置,比如修改文本内容、颜色、大小等。

2.添加控件MATLAB提供了各种控件,用于实现不同的功能。

常见的控件包括按钮、文本框、下拉菜单、滑块等。

可以通过在界面上拖动和放置这些控件来创建自己的GUI应用程序。

在添加控件时,可以设置控件的属性,比如位置、大小、颜色、文本内容等。

3.设计布局设计布局是创建GUI应用程序的重要部分。

可以通过调整控件的位置、大小和对齐方式来设计一个美观的界面布局。

MATLAB提供了多种布局管理器,比如Grid布局、Box布局、GridBag布局等,可以根据需要选择合适的布局方式来设计界面。

4.编写回调函数回调函数是GUI应用程序的关键部分,用于响应用户的操作。

可以为每个控件添加回调函数,当用户操作控件时,回调函数将被触发。

可以在回调函数中实现各种功能,比如计算结果、数据处理、图形绘制等。

通过编写回调函数,可以实现程序的交互性和实用性。

5.运行应用程序创建GUI应用程序后,可以点击“运行”按钮来运行应用程序。

在运行过程中,可以与界面上的控件进行交互,触发回调函数并实现相应功能。

MATLABGUIDE上位机串口通信开发绘制图形

MATLABGUIDE上位机串口通信开发绘制图形

MATLABGUIDE上位机串⼝通信开发绘制图形本⼈因项⽬需求,需要开发这个串⼝通信上位机界⾯,⽤于实时绘制串⼝发送过来的数据。

本⼈之前基本没使⽤过MATLAB,也就知道个zeros(100)这种在命令⾏窗⼝中输⼊的函数。

⾄于MATLAB能开发图形界⾯程序,我也是在接到这个项⽬后才知道的,emmm,我被我的⽆知吓到了。

好了,这就是我开发这个上位机软件的背景和我本⼈的MATLAB 技术⽔平(渣渣)。

在不到两天的时间内开发完成,通过了调试。

下⾯记录⼀下我这个开发的历程和⼀些细节。

MATLAB上位机软件怎么开发?不要见笑,我⼀个MATLAB⼩⽩真不知道怎么开发,更不知道GUIDE这种东东。

所以,MATLAB上位机软件就是从GUIDE开始的。

GUIDE在哪⾥?你可以通过两个⽅式找到他:1)命令⾏窗⼝:guide(回车就见到他了)2)MATLAB界⾯ -> 新建 -> 图形⽤户界⾯(点击也能看到他)如何开发?有开发经验的就绕道了哦,我这是第⼀次⽤MATLAB开发,所以⽐较“啰嗦”看到这个问题,没有开发经验的⼩⽩们,是不是第⼀就想到了“百度⼀下,你就知道”,我呢,就不推荐这个了,我推荐⽤MATLAB的帮助⽂档。

这个帮助⽂档可以在MATLAB主界⾯中⼯具栏右侧的“帮助”选项中找到。

P.S. 帮助⽂档是学习软件的第⼀⼿资料英⽂看不懂的就只能百度了在调出“帮助浏览器”后,在搜索栏输⼊“guide”在搜索的内容点击第⼀个“guide-Open GUIDE”,进⼊后,下⾯有个“More About”,⾥⾯有个“Create a Simple UI Using GUIDE”,点进去,然后按照⾥⾯官⽅的指导,学⼀下如何建⽴⼀个上位机软件。

实现后,仔细体验⼀下⾥⾯的回调函数(类似于Qt⾥⾯的槽函数)。

我是如何开发的呢?建⽴⼀个空⽩的区域后,就要开始构思⾃⼰需要哪些控件了,如图是我的控件添加情况:经过官⽅教程的学习,详细你已经有能⼒往下拉菜单中添加COM⼝信息了,我添加到了COM21。

Matlab GUI编程教程

Matlab GUI编程教程

Matlab GUI编程教程(适用于初学者)1.首先我们新建一个GUI文件:File/New/GUI 如下图所示;选择Blank GUI(Default)2.进入GUI开发环境以后添加两个编辑文本框,6个静态文本框,和一个按钮,布置如下图所示;布置好各控件以后,我们就可以来为这些控件编写程序来实现两数相加的功能了。

3.我们先为数据1文本框添加代码;点击上图所示红色方框,选择edit1_Callback,光标便立刻移到下面这段代码的位置。

function edit1_Callback(hObject, eventdata, handles)% hObject handle to edit1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of edit1 as text% str2double(get(hObject,'String')) returns contents of edit1 as a double然后在上面这段代码的下面插入如下代码:%以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容input = str2num(get(hObject,'String'));%检查输入是否为空. 如果为空,则默认显示为0if(isempty(input))set(hObject,'String','0')endguidata(hObject, handles);这段代码使得输入被严格限制,我们不能试图输入一个非数字。

MATLAB教程 第十章 图形用户界面GUI制作

MATLAB教程 第十章 图形用户界面GUI制作

第十章 图形用户界面GUI 制作用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。

如键盘、鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。

图形用户界面(Graphical User Interfaces ,GUI )则是由窗口、光标、按键、菜单、文字说明等对象(Objects )构成的一个用户界面。

用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。

假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI 的制作。

但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。

MATLAB 为表现其基本功能而设计的演示程序demo 是使用图形界面的最好范例。

MATLAB 的用户,在指令窗中运行demo 打开那图形界面后,只要用鼠标进行选择和点击,就可浏览那丰富多彩的内容。

即便比较熟悉MATLAB 的读者,在他初次编写GUI 程序时,也会感到棘手。

为使读者获得制作自己GUI 的体验,本章“入门”节提供了一个简单的示例。

读者只要输入所提供的程序,就可引出相应的界面。

本章第2节叙述图形用户界面的设计原则和一般制作步骤。

第3、4节分别介绍用户菜单、用户控件的制作。

出于“由浅入深”的考虑,前4节制作GUI 是通过M 脚本文件实现的。

利用M 函数文件制作GUI ,需要解决数据传递问题,为此专设第5节给予阐述和示例。

这前5节内容对读者理解交互图形界面的工作原理很有帮助。

本章第6节专述MATLAB6.5提供的界面设计工作台的使用。

值得指出:该设计工作台与MATLAB5.3版的设计工具有很大不同。

新的设计工作台显得更成熟、方便。

在此提醒读者,假如要比较准确的理解本章程序和掌握本章内容,请先阅读第9章关于图柄的内容。

10.1 入门【例10.1-1】对于传递函数为1212++=s s G ζ的归一化二阶系统,制作一个能绘制该系统单位阶跃响应的图形用户界面。

matlab 上位机代码

matlab 上位机代码

matlab 上位机代码(实用版)目录1.MATLAB 简介2.MATLAB 上位机代码的概述3.如何编写 MATLAB 上位机代码4.MATLAB 上位机代码的应用实例5.总结正文1.MATLAB 简介MATLAB(Matrix Laboratory)是一款广泛应用于科学计算、数据分析、可视化以及算法开发的编程软件。

它以矩阵计算为基础,为用户提供了丰富的函数库和大量的工具箱,使得用户可以更加高效地完成各种计算任务。

在工程领域,MATLAB 也被广泛应用于数据处理、控制系统设计以及信号处理等方面。

2.MATLAB 上位机代码的概述MATLAB 上位机代码是指在 MATLAB 中编写的用于控制和处理下位机(如单片机、PLC 等)数据的程序。

通过上位机代码,用户可以实现对下位机的实时监控、数据采集、数据处理以及控制指令的下达等功能。

在工业自动化、过程控制以及智能设备开发等领域,MATLAB 上位机代码发挥着重要作用。

3.如何编写 MATLAB 上位机代码编写 MATLAB 上位机代码主要包括以下几个步骤:(1)连接上位机与下位机:首先,需要确保上位机与下位机之间建立了正确的通信连接。

这通常需要对下位机的通信协议和接口进行配置。

(2)编写 MATLAB 程序:根据实际需求,编写 MATLAB 程序来实现对下位机的控制和数据处理。

这包括对输入输出信号的处理、对下位机发送控制指令、对下位机返回的数据进行分析等。

(3)调试与优化:在编写完成后,需要对 MATLAB 程序进行调试和优化,以确保其能够稳定可靠地运行。

4.MATLAB 上位机代码的应用实例以下是一个简单的 MATLAB 上位机代码应用实例,用于控制一个温度传感器,并实时显示温度变化。

(1)连接上位机与下位机:假设温度传感器通过串口与上位机通信,需要确保串口连接正确,并配置好串口通信参数。

(2)编写 MATLAB 程序:```matlab% 初始化串口fopen("COM1", "r");% 循环读取温度数据while 1% 读取一行数据line = fgets(fid, 100);% 解析温度数据temp = sscanf(line, "%f");% 显示温度disp(["当前温度:" num2str(temp)]);% 等待 1 秒pause(1);end```(3)调试与优化:运行上述 MATLAB 程序,观察是否能正确读取温度数据并实时显示。

MATLAB中的GUI程序设计

MATLAB中的GUI程序设计

MATLAB中的GUI程序设计MATLAB是一种功能强大的编程语言,它能够进行数据处理、数值计算、图形绘制等多种操作。

在MATLAB中,我们可以通过编写GUI程序来实现更加友好和交互性的界面,使得用户可以直观地进行操作和获得结果。

下面将介绍MATLAB中的GUI程序设计。

在MATLAB中,GUI程序的编写一般分为以下几个步骤:界面设计、回调函数编写和程序调试。

界面设计是GUI程序设计的第一步,我们可以通过MATLAB提供的GUIDE工具来完成。

GUIDE是一个图形化的界面设计工具,可以通过拖拽、调整控件位置和属性等方式来设计界面。

在GUIDE中,我们可以选择界面的布局方式,如水平布局、垂直布局、表格布局等,还可以选择不同的控件,如按钮、文本框、复选框、滑块等。

在界面设计完成后,我们需要编写回调函数来实现不同控件的事件响应。

回调函数是指当用户进行其中一种操作时,界面会调用相应的函数来响应这个操作。

例如,当用户点击按钮时,界面会调用按钮的回调函数来执行相应的操作。

在MATLAB中,回调函数通常以"Callback"结尾并附加到相应的控件上。

在回调函数中,我们可以编写代码来实现各种功能。

例如,可以在按钮的回调函数中编写代码来处理用户的点击事件,可以在文本框的回调函数中编写代码来获取用户输入的内容等。

回调函数中的代码可以调用MATLAB提供的各种函数来完成相应的功能,也可以调用自定义的函数来进行更复杂的操作。

编写完回调函数后,我们需要对整个程序进行调试。

MATLAB提供了调试器功能,可以帮助我们定位程序中的错误和调试逻辑。

我们可以通过设置断点、单步执行、观察变量等方式来调试程序,以确保程序能够正常运行并得到正确的结果。

总之,MATLAB中的GUI程序设计可以帮助我们实现更加友好、交互性和可视化的界面。

通过界面设计和回调函数编写,我们可以实现各种功能,如数据可视化、图形绘制、物理模拟等。

用MATLAB的GUIDE工具做有GUI界面的串口通信上位机

用MATLAB的GUIDE工具做有GUI界面的串口通信上位机

这是我很久之前写串口通信程序时编的,网上这写资料很少,我是看着MATLAB的帮助文档自己一点点写的,虽然最后放弃了matlab上位机程序的方案,但是还是整理了一下之前的一些收获,写下以下的说明。

编译环境:MATLAB 2009a1 打开GUIDE工具,点击红圈中的GUIDE图标。

2 直接利用默认设置点OK即可3 在控件篮拖拽控件到如下图的形式4 进行控件设置,右击控件点“Property Inspector”,如图一般仅设置Tag选项和String选项。

其中String选项在按钮控件中就是GUI显示时的字符。

Tag 属性较为重要,在GUI编程时控件的索引主要利用Tag选项的属性并且在GUI生成回调函数时候也是由Tag属性的值命名的。

这里将“打开串口”按钮控件的String设置为“打开串口”,tag设置为pb_OpenSerialPort。

具体控件的设置和关于GUI的编程还是看下帮助(截图部分)或找本这方面的书看一下。

这里对我即将用的功能简述一下,MALTAB的GUI主要由两个文件,当设置好GUIDE时点击保存,这时将在当前路径自动产生两个名字相同的文件,但扩展标识符不同,一个为.fig文件,一个为.m 文件,.fig主要是GUI图形文件,和GUIDE设计的图像相同,.m文件为程序文件,所有事件响应和计算功能都在这里实现。

MATLAB的按钮以及各种控件事件响应是依靠一种叫做回调函数(Callback Function)来实现的(我理解为和Visual C++中的消息映射,C#中的异步委托事件响应一种原理),自动生成的M文件中已经自动做好回调函数的名称和参数了,我们需要做的就是在其中添加你要进行的处理。

例如:我们要在鼠标单击按钮“打开串口”时进行一系列的串口初始化动作,这时右键单击“打开串口按钮”如图则MALAB会自动转向相应的M文件的回调函数的位置。

如图这里,因为该按钮的Tag为"pb_OpenSerialPort",则GUIDE自动生成的回调函数名即为pb_OpenSerialPort_Callback,函数有三个参数,hObject是当前控件对象,即打开串口按钮对象(面向对象技术中的概念),索引或设置当前对象(打开串口按钮对象)时只需要引用hObject就可以了。

MATLABGUI程序设计

MATLABGUI程序设计

MATLABGUI程序设计MATLAB是一种强大的技术计算软件,它具有丰富的功能和灵活的编程环境。

通过使用MATLAB,我们可以进行各种技术计算、数据分析和可视化操作。

在MATLAB中,GUI(Graphical User Interface)程序设计可以帮助我们创建交互式的、用户友好的图形界面应用程序。

在本文中,我将介绍一些MATLAB GUI程序设计的基本知识和步骤。

首先,我们需要了解MATLAB中用于创建GUI的工具和函数。

MATLAB 提供了两个主要的工具箱来支持GUI程序设计:GUIDE(GUI Development Environment)和App Designer。

GUIDE是一个可视化的设计工具,可以通过拖放元件和设置属性来创建GUI。

App Designer是一个面向对象的环境,它使用MATLAB代码进行GUI设计和编程。

为了创建一个GUI程序,我们需要遵循以下几个主要步骤:1. 设计GUI界面:在GUIDE或App Designer中,可以使用各种界面元件(如按钮、文本框、列表等)来构建GUI界面。

我们可以根据需求进行布局和调整大小,并设置元件的属性(如位置、尺寸、颜色等)。

2.编写回调函数:回调函数是GUI中各个元件与代码之间的桥梁,当元件被触发或变化时,回调函数将被调用。

我们可以通过编写回调函数来实现GUI的交互功能。

在MATLAB中,回调函数通常是一个独立的函数文件,其中包含了处理特定事件的代码。

3.处理输入和输出:GUI程序通常需要与用户进行交互,包括接收用户输入和显示程序输出。

在回调函数中,我们可以使用MATLAB的输入/输出函数来实现这些功能。

例如,可以使用输入对话框来接收用户输入,并使用消息框或文本框来显示输出结果。

4.调试和测试:在创建GUI程序的过程中,我们可能会遇到错误和问题。

为了确保程序的正确性和稳定性,我们需要进行调试和测试。

MATLAB 提供了调试工具和函数,可以帮助我们找出错误并修复它们。

MATLABGUI设计过程

MATLABGUI设计过程

MATLABGUI设计过程MATLAB是一种强大的数学软件,其中的GUI(Graphical User Interface,图形用户界面)设计功能可以帮助用户创建自定义的交互式界面。

下面是一个详细的MATLAB GUI设计过程,内容包括准备工作、界面设计、添加功能和调试。

1.准备工作在开始界面设计之前,需要进行一些准备工作。

首先,确保已经安装了MATLAB软件,并且具备一定的MATLAB编程基础。

其次,要确定GUI的功能需求和设计目标。

考虑以下问题:-GUI的用途是什么?是展示数据、执行计算、控制硬件还是其他功能?-GUI将包含哪些元素,例如按钮、文本框、菜单等?-GUI的布局和样式是什么样的?是否需要添加背景图片或自定义的颜色方案?2.界面设计根据需求和设计目标,开始设计GUI界面。

可以使用MATLAB提供的“GUIDE(GUI Development Environment)”工具来进行界面设计,或者直接通过编程创建GUI界面。

- 使用GUIDE工具:打开MATLAB软件,点击主页上的“新建”按钮,然后选择“GUI(Graphical User Interface)Builder”选项。

GUIDE工具将提供一个可视化的界面,用户可以通过拖放和调整控件来设计GUI界面。

- 编程设计:在MATLAB命令窗口中使用编程方式设计GUI界面。

可以使用MATLAB提供的图形库函数,如figure、uicontrol等来创建界面元素,并设置其属性,例如位置、尺寸、颜色等。

3.添加功能一旦GUI界面设计完成,就可以开始为界面添加功能。

根据GUI的需求,选择合适的MATLAB功能函数进行调用,实现相应的操作。

-响应控件事件:为按钮、菜单等控件添加回调函数,并在函数中编写相应的操作代码。

例如,为按钮添加点击事件处理函数,实现按钮被点击时的操作。

-数据处理和计算:如果GUI需要进行数据处理或执行复杂的计算,可以在回调函数中编写相应的代码。

Matlab图形用户界面(GUI)制作

Matlab图形用户界面(GUI)制作

2016/1/14
L.D. WANG College of Information & Electrical Engineering
Shenyang Agricultural University
MATLAB在工程中的应用
第九章 图形用户界面(GUI)制作
GUI对象层次结构
根 计 算 机 屏 幕 图 图 子 Uimenu Uicontrol uimenu 座 标 轴 型 式 : 按 钮 键 无 线 按 钮 键u i m e n u 检 查 框 滑 标 弹 出 式 菜 单 框 架 文 本 编 辑
第九章 图形用户界面(GUI)制作
(2)在坐标框右侧生成作解释用的“静态文本”和可接受输入的“编辑 框”:
• h_text=uicontrol(h_fig,'style','text',... • 'unit','normalized','position',[0.67,0.73,0.25,0.14],... • 'horizontal','left','string',{'输入阻尼比系数','zeta ='}); • h_edit=uicontrol(h_fig,'style','edit',... • 'unit','normalized','position',[0.67,0.59,0.25,0.14],... • 'horizontal','left',... • 'callback',[... • 'z=str2num(get(gcbo,''string''));',... • 't=0:0.1:15;',... • 'for k=1:length(z);',... • 's2=tf(1,[1 2*z(k) 1]); ',... • 'y(:,k)=step(s2,t);',... • 'plot(t,y(:,k));',... • 'if (length(z)>1) ,hold on,end,',... • 'end;', 'hold off,']);

第7讲 Matlab的GUI程序设计

第7讲 Matlab的GUI程序设计

第七讲Matlab的GUI程序设计一、图形对象及其句柄:1. 图形对象MATLAB把构成图形的各个基本要素称为图形对象。

这些对象包括计算机屏幕、图形窗口(Figure) 、用户菜单(Ui menu)、用户控件(Ui control)、坐标轴(Axes)、曲线(Line)、曲面(Surface)、文字(Text)、图像(image)、光源(Light)、区域块(Patch)和方框(Rectangle)。

系统将每一个对象按树型结构组织起来。

每个图形对象都可以被独立地操作。

(help)2. 图形对象句柄MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。

句柄是图形对象的唯一标识符。

MATLAB提供了3个用于获取已有图形对象句柄的函数:gcf获取当前图形窗口句柄(get current figure)。

gca 获取当前坐标轴句柄(get current axis)。

gco 获取最近被单击的图形对象的句柄(get current object)。

[注]其他具体的对象句柄可利用低层绘图指令获得。

但以此3种最常用。

二、图形对象的属性:1. 属性名与属性值MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值成为属性值。

例如,LineStyle是曲线对象的一个属性名,它的值决定着线型,取值可以是'-' 、':'、'-.'、'--'或'none'。

2. 属性的操作set函数的调用格式为:%设置属性值set(句柄,属性名1,属性值1,属性名2,属性值2,…) get函数的调用格式为:%获取属性值V=get(句柄,属性名)三、图形对象的创建:1. 图形窗口对象建立图形窗口对象使用figure函数。

调用该函数的命令形式为:句柄变量=figure(属性名1,属性值1,属性名2,属性值2,…)MATLAB为每个图形窗口提供了很多属性。

MATLAB_GUI上位机制作流程

MATLAB_GUI上位机制作流程

飞思卡尔智能汽车MATLAB GUI上位机制作说明学校:广东工业大学学院:信息工程学院作者:文新懿指导:王日明日期:2010年12月01日关于此文档的制作与使用简要说明本文为飞思卡尔智能车上位机制作说明,该作品使用MATLAB GUI编写,通过串口实现电脑和下位机之间的通讯及数据分析处理。

由于本人技术水平及时间所限,此作品仅完基本框架部分,具体模块及功能需要由其他人员完善。

为此,本人编写此文档详细说明学习、制作流程,以方便交流学习。

希望此文档能为你提供帮助,谢谢!目录第一章引言 (1)第二章MATLAB GUI先备知识 (2)2.1MATLAB学习网址 (2)2.2MATLAB GUI学习视频 (2)第三章上位机方案设计 (3)3.1总体结构 (3)3.2登陆界面–UCS GUI (4)3.3数据录入界面–login GUI (4)3.4图线分析界面–analysis GUI (5)第四章简单操作说明 (5)4.1软件需求 (5)4.2上位机操作 (5)第五章主要功能说明 (6)5.1MATLAB串口通信 (6)5.2图线数据显示 (7)第六章具体问题与解决方案 (7)6.1GUI界面切换 (7)6.2按钮外观编辑 (8)6.3串口清除 (8)6.4二进制文件相关 (9)6.5改变光标形状 (10)6.6获取当前路径 (10)6.7将MATLAB GUI生成exe (11)6.8录入图片劣化 (12)6.9图片读入相关 (12)6.10为GUI程序添加启动画面 (13)6.11循环定义新数组 (13)6.12硬盘格式转换后HostID改变Matlab的license失效 (14)6.13获取系统时间 (14)6.14用图片作为axes的背景 (14)6.15在一个Figure中画多幅图 (15)第七章总结与展望 (16)附录 (17)第一章引言下文以上位机的设计为主线,包括小车的整体构架设计、主要模块设计,以及详细问题处理等,共分为七章。

Arduino 和Matlab上位机编程

Arduino 和Matlab上位机编程

1. 下载Matlab的ArduinoIO:/matlabcentral/fileexchange/32374-matla b-support-package-for-arduino--aka-arduinoio-package-将下载的文件解压缩,将里边的文件adioes.pde烧录到Arduino开发板中(作为和Matlab交互的程序)2. 使用Matlab的GUIDE界面设计工具命令行输入:guide弹出图形界面生成窗口,编辑你的GUI。

保存,运行。

首次运行可能会出错误,在命令行执行:clear all.然后再执行刚才的GUI程序即可。

3. matlab的GUI程序生成可执行文件的方法如何把Matlab语言编写的函数文件编译成可独立执行的*.exe文件(即可脱离Matalab环境的执行程序),首先要安装和配置好Matlab Compiler,一般来说,在安装Matlab时就已经安装了相应版本的Matlab Compiler。

Matlab Compiler下载地址:/support/compilers/R2012b/win64.html #matlab在命令窗口输入mbuild –setup>> mbuild -setupWelcome to mbuild -setup. This utility will help you set upa default compiler. For a list of supported compilers, see/support/compilers/R2012b/win64.htmlPlease choose your compiler for building shared libraries or COM components:Would you like mbuild to locate installed compilers [y]/n? NSelect a compiler:[1] Microsoft Software Development Kit (SDK) 7.1[2] Microsoft Visual C++ 2005 SP1[3] Microsoft Visual C++ 2008 SP1[4] Microsoft Visual C++ 2010[0] NoneCompiler: 2Warning: The default location for Microsoft Visual C++ 2005 SP1 compiler is: "C:\Program Files (x86)\Microsoft Visual Studio 8"but either that directory does not exist or the configurationis invalid.Use C:\Program Files (x86)\Microsoft Visual Studio 8 anyway [y]/n? NPlease enter the location of your compiler: [C:\Program Files (x86)\Microsoft Visual Studio 8] D:\Program Files (x86)\Microsoft Visual Studio 8Please verify your choices:Compiler: Microsoft Visual C++ 2005 SP1Location: D:\Program Files (x86)\Microsoft Visual Studio 8Are these correct [y]/n? Y***************************************************************************Warning: Support for Microsoft Visual C++ 2005 SP1 will be discontinued in afuture release, at which time new versions will be supported.For a list of currently supported compilers see:/support/compilers/R2012b/win64.html***************************************************************************Trying to update options file:C:\Users\xyx\AppData\Roaming\MathWorks\MATLAB\R2012b\compopts.batFromtemplate: D:\PROGRA~1\MATLAB\R2012b\bin\win64\mbuildopts\msvc80compp .batDone . . .>>做好了gui.m文件和gui.fig文件,在matlab的command窗口中输入 mcc -m MYPDU生成MYPDU.exe 后,打开提示没有mclmcrrt8_0.dll,查询本机在MATLAB的安装目录下找到了该DLL:mclmcrrt8_0.dll控件常规安装方法:一、如果在运行某软件或编译程序时提示缺少、找不到mclmcrrt8_0.dll等类似提示二、如果您的系统是64位的请将文件复制到C:\Windows\SysWOW64目录打开"开始-运行-输入regsvr32 mclmcrrt8_0.dll",回车即可解决。

用MATLAB的GUIDE工具做有GUI界面的串口通信上位机

用MATLAB的GUIDE工具做有GUI界面的串口通信上位机

这是我很久之前写串口通信程序时编的,网上这写资料很少,我是看着MATLAB的帮助文档自己一点点写的,虽然最后放弃了matlab上位机程序的方案,但是还是整理了一下之前的一些收获,写下以下的说明。

编译环境:MATLAB2009a1打开GUIDE工具,点击红圈中的GUIDE图标。

2直接利用默认设置点OK即可3在控件篮拖拽控件到如下图的形式4进行控件设置,右击控件点“Property Inspector”,如图一般仅设置Tag选项和String选项。

其中String选项在按钮控件中就是GUI显示时的字符。

Tag 属性较为重要,在GUI编程时控件的索引主要利用Tag选项的属性并且在GUI生成回调函数时候也是由Tag属性的值命名的。

这里将“打开串口”按钮控件的String设置为“打开串口”,tag设置为pb_OpenSerialPort。

具体控件的设置和关于GUI的编程还是看下帮助(截图部分)或找本这方面的书看一下。

这里对我即将用的功能简述一下,MALTAB的GUI主要由两个文件,当设置好GUIDE时点击保存,这时将在当前路径自动产生两个名字相同的文件,但扩展标识符不同,一个为.fig文件,一个为.m 文件,.fig主要是GUI图形文件,和GUIDE设计的图像相同,.m文件为程序文件,所有事件响应和计算功能都在这里实现。

MATLAB的按钮以及各种控件事件响应是依靠一种叫做回调函数(Callback Function)来实现的(我理解为和Visual C++中的消息映射,C#中的异步委托事件响应一种原理),自动生成的M文件中已经自动做好回调函数的名称和参数了,我们需要做的就是在其中添加你要进行的处理。

例如:我们要在鼠标单击按钮“打开串口”时进行一系列的串口初始化动作,这时右键单击“打开串口按钮”如图则MALAB会自动转向相应的M文件的回调函数的位置。

如图这里,因为该按钮的Tag为"pb_OpenSerialPort",则GUIDE自动生成的回调函数名即为pb_OpenSerialPort_Callback,函数有三个参数,hObject是当前控件对象,即打开串口按钮对象(面向对象技术中的概念),索引或设置当前对象(打开串口按钮对象)时只需要引用hObject就可以了。

matlab 上位机代码

matlab 上位机代码

matlab 上位机代码摘要:一、引言- 介绍MATLAB 上位机代码的概念- 说明MATLAB 在工程领域中的应用二、MATLAB 上位机代码的基本结构- 编写MATLAB 上位机代码的基本步骤- 常用MATLAB 函数和语法简介三、MATLAB 上位机代码的实例分析- 介绍一个简单的MATLAB 上位机代码实例- 对实例进行详细解析,说明代码的功能和实现方法四、MATLAB 上位机代码在工程实践中的应用- 列举MATLAB 上位机代码在工程实践中的具体应用场景- 分析代码在实际应用中的优势和局限五、MATLAB 上位机代码的优化策略- 介绍MATLAB 上位机代码的优化方法- 分析优化代码对于提高系统性能的重要性六、总结- 回顾MATLAB 上位机代码的主要内容- 强调MATLAB 上位机代码在工程领域的重要性正文:一、引言MATLAB 是一种广泛应用于工程领域的数学软件,它具有丰富的函数库和强大的计算能力,能够解决各种复杂的数学问题。

除了数学计算功能外,MATLAB 还可以作为上位机编程语言,编写控制、数据处理、通信等方面的程序。

本文将介绍MATLAB 上位机代码的概念,以及它在工程领域中的应用。

二、MATLAB 上位机代码的基本结构MATLAB 上位机代码的编写过程可以分为以下几个基本步骤:1.建立MATLAB 工作环境:首先需要安装MATLAB 软件,并打开一个MATLAB 窗口,作为编程环境。

2.编写代码:在MATLAB 窗口中输入代码,包括各种函数调用、变量定义、运算符、控制结构等。

3.运行代码:使用MATLAB 的“运行”命令或快捷键,执行编写的代码。

4.查看结果:运行代码后,MATLAB 会显示运行结果,包括输出变量、图像、声音等。

常用的MATLAB 函数和语法包括:1.基本数学函数:如sin、cos、sqrt 等。

2.线性代数函数:如inv、det、eig 等。

3.概率论与统计函数:如rand、randn、pdf 等。

MATLABGUI设计过程

MATLABGUI设计过程

MATLABGUI设计过程MATLAB GUI(Graphical User Interface)是基于图形界面的MATLAB应用程序的设计和开发过程。

使用MATLAB GUI,用户可以通过可视化界面来操作和交互,而不仅仅是通过命令行输入和输出。

下面是MATLABGUI的设计过程的详细步骤:1.需求分析:首先,明确GUI的目标和需求。

了解用户的期望和需求,确定GUI的功能和操作流程。

通过与用户的沟通和讨论,收集和整理具体需求的列表。

2.界面设计:设计GUI的外观和布局。

考虑到用户友好性和易用性,选择合适的控件和布局方式。

确定窗口的大小、按钮的位置、文本框的大小等,以便用户可以方便地交互和操作。

3.控件选择:选择适当的控件来实现GUI的功能。

MATLAB提供了各种控件,如按钮、文本框、下拉列表等。

根据需求和设计的界面,选择合适的控件,在GUI中逐个放置并设置它们的属性。

4.事件处理:为每个控件添加事件处理函数。

事件处理函数是GUI与用户交互的主要途径,通过处理用户的操作,实现对数据的获取、处理和显示。

根据需求,在每个控件上定义相应的事件处理函数。

5.数据处理:实现对数据的处理和计算。

根据需求和GUI的功能,编写MATLAB代码来处理输入和计算所需的结果。

这些代码可以嵌入到事件处理函数中,以实现实时更新和交互。

6.可视化展示:根据需要,在GUI中使用图表、图像和动画等元素来可视化数据和计算结果。

MATLAB提供了丰富的可视化工具和函数,可以方便地生成各种图表和图像。

7.调试和测试:在设计和开发过程中,对GUI进行调试和测试。

确保GUI的功能和操作正常,并进行适当的错误处理和提示。

通过不断的测试和调试,逐步提高GUI的稳定性和可靠性。

8.优化和改进:在GUI发布之前,对其进行优化和改进。

检查GUI的性能和响应时间,优化代码和算法,以提高GUI的效率和用户体验。

根据用户的反馈和需求,对GUI进行改进和扩展。

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

飞思卡尔智能汽车MATLAB GUI上位机制作说明学校:广东工业大学学院:信息工程学院作者:文新懿指导:王日明日期:2010年12月01日关于此文档的制作与使用简要说明本文为飞思卡尔智能车上位机制作说明,该作品使用MATLAB GUI编写,通过串口实现电脑和下位机之间的通讯及数据分析处理。

由于本人技术水平及时间所限,此作品仅完基本框架部分,具体模块及功能需要由其他人员完善。

为此,本人编写此文档详细说明学习、制作流程,以方便交流学习。

希望此文档能为你提供帮助,谢谢!目录第一章引言 (1)第二章MATLAB GUI先备知识 (2)2.1MATLAB学习网址 (2)2.2MATLAB GUI学习视频 (2)第三章上位机方案设计 (3)3.1总体结构 (3)3.2登陆界面–UCS GUI (4)3.3数据录入界面–login GUI (4)3.4图线分析界面–analysis GUI (5)第四章简单操作说明 (5)4.1软件需求 (5)4.2上位机操作 (5)第五章主要功能说明 (6)5.1MATLAB串口通信 (6)5.2图线数据显示 (7)第六章具体问题与解决方案 (7)6.1GUI界面切换 (7)6.2按钮外观编辑 (8)6.3串口清除 (8)6.4二进制文件相关 (9)6.5改变光标形状 (10)6.6获取当前路径 (10)6.7将MATLAB GUI生成exe (11)6.8录入图片劣化 (12)6.9图片读入相关 (12)6.10为GUI程序添加启动画面 (13)6.11循环定义新数组 (13)6.12硬盘格式转换后HostID改变Matlab的license失效 (14)6.13获取系统时间 (14)6.14用图片作为axes的背景 (14)6.15在一个Figure中画多幅图 (15)第七章总结与展望 (16)附录 (17)第一章引言下文以上位机的设计为主线,包括小车的整体构架设计、主要模块设计,以及详细问题处理等,共分为七章。

其中,第一章为引言部分;第二章主要介绍了制作此上位机软件所需的MATLAB GUI先备知识;第三章整体介绍上位机的设计方案;第四章介绍了软件的简单操作方式;第五章详细描述了软件主要功能,主要包括数据录入部分和图线分析部分。

第六章描述了在制作过程中遇到的具体问题,并附上其解决方案以供参考。

第七章总结了在此作品的完善建议及心得体会。

第二章MATLAB GUI先备知识2.1MATLAB学习网址由于学院已有MATLAB课程,相关资料也十分丰富,在此就不做重复了。

本文档主要讲述有关GUI制作的相关知识,限于本人是完全自学,技术水平有限,若有错漏敬请指正。

以下推荐若干MATLAB学习的网址,作品制作的大部分知识来源于网站论坛,希望能令学习者有所借鉴:2.1.1Matlab中文论坛:/index.php2.1.2Matlab百科全书:/另外,学会使用help指令,阅读MATLAB官方帮助,也是十分有效的学习方法。

往往苦寻不到的资料其实早就存在于帮助之中,只是我们不识庐山真面目而已。

2.2MATLAB GUI学习视频2.2.1matlab_GUI_1创建简单GUI2.2.2matlab_GUI_2按钮使用及图片读取高分辨率2.2.3matlab_GUI_3radiobutton switch语句图像边缘2.2.4matlab_GUI_4.成绩查询系统界面2.2.5matlab_GUI_5成绩查询系统功能2.2.6matlab_GUI_6读取Excel文件2.2.7matlab_GUI_7读取文件错误处理2.2.8matlab_GUI_8优化进度条的使用2.2.9matlab_GUI_9与Java VB C++C#联合编程2.2.10matlab_GUI_10菜单添加Active控件播放MTV*详见文件夹“GUI学习视频”第三章上位机方案设计3.1总体结构该软件分登陆界面UCS、数据录入login、图线分析analysis三个界面,在登陆界面可分别进入另外两个界面。

各个界面之间可独立保持或相互切换,实现不同功能间的通讯。

3.2登陆界面–UCS GUI3.3数据录入界面–login GUI3.4图线分析界面–analysis GUI第四章简单操作说明4.1软件需求制作过程中需用到MATLAB软件、串口调试助手、虚拟串口软件,此类资源网上十分丰富,可自己下载。

若要在安装不同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.若不需串口读入,直接读取以保存数据,则只需在右侧按格式输入文件读取地址(现已有保存数据在地址:“UCS所在地址\data”,直接可输入此地址读其中数据做测试),点击按键“确定”,保存已输入地址4.2.6.点击按键“返回”,回到UCS界面;也可不返回,保持数据录入界面login打开,手动切换界面4.2.7.点击左上角按键“LOAD”,导入全部数据。

此时会有屏闪,表示数据读取中,屏闪结束时读入完成4.2.8.按按键“NEXT”显示下一幅,按按键“FRONT”显示上一幅,按按键“FIRST”显示第一幅,按按键“VIDEO”连续播放第1-187副图像。

在图像显示、播放时相应参数的曲线会在下方标有“曲线显示区域”的位置显示,各对应曲线表示的参数在源文件中有注释说明。

各参数意义详见文件夹“下位机说明”中文档。

第五章主要功能说明5.1MATLAB串口通信5.1.1在此以CCD组为例。

先选CCD组,设置波特率为38400,数据位8位,停止位1位,无校验位,并使能。

先发送170(十进制),然之后发送85(十进制)至下位机,下位机反应后,开始接收一幅图像以及这幅图像中所附带的参数,下位机发送完毕后,lcd上会显示“发送成功,等待继续发送”的提示。

连续导入187块数据,并以txt文档形式保存串口通信使用函数serial,详见pdf档案,尤其注意操作实例中回调函数(默认@instrcallback 或自编的@mycallback)的运用,及基于中断的串口通信优于基于查询的串口通信的原因数据保存的格式是:CCD组:(1)每一帧数据,保存为一个txt文档(2)文档包含图像及参数,相见下位机格式文档(3)文件名称为“data N.txt”,其中N为0-186的整数,通过数据录入模块串口读入时,自动保存为以上格式;若直接读取已存在数据文件,则需将数据文件另命名为以上格式。

5.1.2以中断方式进行串口读写,其中断触发事件为输入缓存达到3873字节,中断服务程序调用m函数mycallback,相关知识点见以下资料:matlab 串口通信.doc 基于Matlab GUI的串口通信编程实基于MATLAB串行通信的智能车车速控制算5.2图线数据显示以CCD 组为例,根据输入的3873个字节数据,由于图像是40行*95列,且每行外加一个0作为标示,因此提取40*(95+1)即3840个数据进行处理。

处理过程包括将读入数据做矩阵化,矩阵转置及归一化等。

由于在一个Figure 中画多幅图是有一定限制的,若直接显示则只显示在当前激活的AXE 控件中,会覆盖已存在图线,并不能同时做到多图像不同窗口播放。

因此,使用导入功能,现将图像数据导入到全局变量global fn 中,再从fn 的CData 属性读出,实现跨Figure 显示。

(见6.13在一个Figure 中画多幅图)曲线部分,由于暂时未完成PID 参数控制相关,只以折线图显示了读入的原始参数。

此部分内容,有较大改进空间,希望日后能不断完善。

第六章具体问题与解决方案6.1GUI 界面切换问题:我在做的一个程序需要实现多界面的切换,我搜索过论坛上的相关问题,解决方法好像都是做几个figure ,然后通过按钮或者其他的操作使一个显示而另一个隐藏。

我试了一下,切换的时候界面会很明显的闪一下,有没有别的什么方法可以让界面切换的时候看起来很自然,就好像在同一个界面上呢?如果只有上面这种办法的话,要实现运行时移动其中的一个界面,所有的界面都相应移动,应该怎么做?回答:没有太好的办法。

你可以这样处理看看:1、把所有的GUI 窗口都设置到一个位置显示;2、在调用另一个界面的地方调用GUI 后,延时关闭先前的窗口:GUI2();pause(2);close(handles.figure1);这样,新的窗口会遮挡住原先的窗口,再关闭原先窗口时就不会有任何感觉。

备注:本程序界面切换设计,使用全局变量做判断标志,控制各个界面的开闭状态,这样可以同时打开多个GUI 界面。

当然,若想实现其他形式的界面切换,可灵活应用上述问题的方法。

6.2按钮外观编辑问题:按钮控件外观是默认,怎样才能在button上加图标,使显示更美观。

回答:在button上加图标的程序,或许对大家有用。

基本思想,利用button支持cdata的思想,把图片的数据转换成cData放在按钮上。

实现了在GUI上,按钮有背景图片。

备注:本程序设计中,对部分按钮:在串口通信中遇到一个问题,假如有一个已经打开的串口对象s,在没有关闭之前就被clear命令清除了,这时如何关闭s对应的串口?遇到这种情况我只会关闭matlab再重新打开,这样太麻烦了,不知道有没有更好的办法?回答:delete(instrfindall)instrfindall可以找到所有的串口6.4二进制文件相关*详见附带资料的“详细问题与解决方案”文件夹6.5改变光标形状问题:看了makesure5写的“给控件添加相应的注释信息”学会了怎么给按钮加注释,现在想再增加点功能,希望当鼠标放在按钮上时光标能改变形状(比如小手什么的),不知道能不能实现,希望高手指点下。

回答:你查找一下figure的pointer属性就知道了,它是选择指针符号!备注:Pointer属性有:[crosshair|fullcrosshair|{arrow}|ibeam|watch|topl|topr|botl|botr|left|top|right|bottom|circle|cross|fleur|custom|hand]可以任取一个尝试。

6.6获取当前路径问题:如何在matlab下获得当前路径啊?我用uigetdir能获得该路径,但是会有一个对话框出来,有什么办法能不显示对话框而获得当前路径吗?回答:用cd命令即可。

相关文档
最新文档