1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo lập trình guide giao diện

40 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 4,91 MB

Nội dung

Trang 1

TRUONG DAI HOC KHOA HOC TU NHIEN KHOA VAT LY-VAT LY KI THUAT

BỘ MÔN : VẬT LÝ ĐIỆN TỬ

BÁO CÁO

MÔN : THỰC TẬP CHUYÊN ĐÈ 4

DE TAI : LAP TRINH GUIDE GIAO DIEN

Sinh viên thưc hiện:

NGUYÊN THÀNH NAM 1113554

NGUYEN HUY HOANG 1113160

Trang 2

LOI NOI DAU

Ngày xưa những công cụ tính tốn thủ cơng bằng tay, hoặc những bàn tính

cô điển đề hỗ trợ toán học, giờ đây với sự đôi mới của ngành điện tử, công nghệ

thông tin, các công cụ tính toán hỗ trợ các ngành kĩ thuật hiện đại ra đời, với sự mạnh mẽ và nhanh chóng của các công cụ phần mềm, các công cụ phần lớn đã thay thế cho việc thực hiện thủ công, giúp kiểm tra kết quả một cách nhanh chóng,

giảm chi phí Cùng với đó chính là các phần mềm các công cụ hỗ trợ kĩ thuật

như phần mềm Wñ cc, Protell, Protues, Mlap, Matlab Là những công cụ không thể thiếu trong ngành kĩ thuật Sau đây mình sẽ giới thiệu phần mềm Matlab, một công cụ hỗ trợ tính tốn và mơ phỏng hệ thống hết sức trực quan và

chính xác

Hắn là phần mềm Matlab hiện nay không còn xa lạ gì với người dùng, nó là một công cụ hỗ trợ tính tốn và mơ phỏng thực tế rất mạnh, ngoài các tính năng đề thực hiện những điều đó, Matlab còn hỗ trợ tạo giao diện người dùng (GŨI),

Chúng ta lần lượt tìm hiểu ứng dụng từ cơ bản đề hiệu rõ được dao diện GUI là gi, làm thé nao dé bắt đầu với GUI

Trang 3

PHU LUC PHAN DAU 0108) 0 PHAN GIUA Phan 1 : Sơ lược về lập trình giao diện người dùng GUIDE trong matlab x00 n

1.2 Bắt đầu với GUI -c+cccttt th thun 1.3 Các bước thực hiện trước khi bắt đầu -cc+c+cscxecsrrere Phần 2 : Thao tác với CiUI ¿tt tt kg ga

2.1 Khởi động GUI - QQ Gà

2.2_ Mô tả chức năng công cụ trong giao diện GUÏ << 5< <+++<<ss 2.3 Giới thiệu hộp thoại Ïnsp€CfOT - C1 1H 1 ve,

Phân 3 : Thiết kế giao diện UI ¿- - tk tk E1 919gr 3.1 Thiết kế giao diện . «ch ch ng Họng như,

Trang 4

“2:19 4009) S17

4.3.3 Nút nhấn RESETT c- c5 SEEEE11E1 1 1 1 g1 11x tru

4.3.4 Nút nhân EZXIT -¿- ¿St EkEEEEEEEEEEE SE kg nh người

4.4 Chạy chương trình trên matlab 555cc c1 S2 Phan 5 : Hướng dẫn xuất file ứng dụng đuôi eXe_ - ¿6 cccccceccsrsreở

Phần 6 : Giao diện chương trình sau khi hoàn thành: . ¿- - se + s+xxe2

PHAN CUOI

Trang 5

PHAN 1: SO LUQC VE LAP TRINH GIAO DIEN NGUOI DUNG (GUIDE) TRONG MATLAB

11 GUIDELAGI?

- GUI (Graphical User Interface) là giao diện đồ họa có điều khiển bởi nhiều thanh công cụ được người lập trình tạo sẵn, cho tương tác giữa người dùng là giao diện

chương trình, mỗi chương trình được người lập trình tạp sẵn giao diện thực hiện

một vài chức năng được người lập tình tạo sẵn và giao tiếp với người sử dụng - Ung dung của Matlab lập trình giao diện rất mạnh và dễ thực hiện, nó có thể tạo

ra glao diện người dùng tương tự VBB, C++

- GUI bao gém day đủ các chương trình hỗ trợ như thực hiện phép toán LOGIC,

mô phỏng không gian 2D, 3D, đọc hiển thị dữ liệu, liên kết đa phương tiện Giao

tiếp với người dùng thông qua hình ảnh, các nút nhắn thực thi

- Hầu hết GUIchi thực hiện (trả lời) lệnh người dùng thông qua các tác động của

người dùng lên giao diện, người sử dụng không cần biết câu trúc chương trình

vẫn có thể thực hiện được GUI được thực hiện thông qua các hàm

CALLBACK, khi người dùng tác động lên giao diện bằng các cách khác nhau, ham CALLBACK sẽ được gọi để thực thi

1.2 BAT DAU VOI GUI:

- C62 phuong phap để lập trình GUT:

e Cách đơn giản nhất là sử dụng công cụ có sẵn trong GUI Matlab dé lap

trình Ưu điểm của cách này là dễ thực hiện và các hàm FUNCTION được

Trang 6

e_ Cách khác được lập trình từ siêu tệp Mfile bằng các hàm FUNCTION do

người lập trình tự viết, nó có ưu điểm là tùy biến cao Tuy nhiên cách này

khó hơn và đòi hỏi người lập trình phải có hiểu biết sâu và trình độ - _ Ở đây với những bài tập đơn giản về giao diện, ta thực hiện cách thứ nhất để

lập trình giao diện với nhưng công cụ được hỗ trợ sẵn trong Matlab - _ Khi thao tác trên giao diện chúng ta không thể thay đổi các hàm trong nó

13 CÁC BƯỚC CÂN THỰC HIẾN TRƯỚC KHI BẮT ĐẦU:

- _ Trước tiên để bắt đầu lập trình ta cần phải xác định mục đích của chương trình là gì?

- _ Sau đó tiến hành xác định các bước thực hiện để mô phỏng giao diện người

dùng sao cho hợp lí và chính xác

- - Bước cuối cùng là viết chương trình và thực thi

Sơ đồ sau đây mô phỏng trình tự thực hiện với GUI:

Designing a Graphical User Interface Understand Specify GUI(s) Requirements - Inputs

* Purpose _ - Controls Add

« Use cases + Displays another

- Interactivity « Behavior window or

* Functionality * Outputs dialog? | mock-up or prototype Design GUI(s) « Sequencing j * Grouping es « Labeling ce « Styling Program GUI(s)

« Initialization Test GUI(s)

Trang 7

- Khi bat dau véi GUI, GUI tu động tạo ra các mã tập tin được thực thi bởi

ham Callback function GUI thao tac trên những kí tự mà người dùng nhập

vào vào chuyển sang dạng số học, nói cách khác, giao diện GUI tương tự như những lệnh thực thi trong Comment Windowns

- _ Tất cả các hàm callback thực thi những lệnh chứa trong nó

- _ Chúng ta nên sử dụng chức năng HELP của Matlab để tìm hiểu thêm tất cả

Trang 8

PHAN 2: THAO TAC VOI GUI

Day 1a phién ban Matlab R2012A, các phiên bản khác cũng có thê thao tác tương

tự

2.1 KHỞI ĐỘNG GUI:

- _ Thực hiện khởi động Matlab đến GUI theo hình sau:

e_ Khởi động Matlab từ biểu tượng Matlab trên màn hình desktop e_ Trong cửa số Comment Windowns gõ lệnh “guide” và enter: ta được

giao diện màn hình như sau:

+4 MATLAB R2012a -.ñ e Edit Debug Parallel De Vind

ne @ & of FE) | @ | current Folder C\Users\HOANG\Desktop\Ve do thi v ||.) & Shortcuts 2] Howto Add [2] What's New

Current Folder ' O a x) Command Window “OO a xX) Workspace “OH 4 xX} Dep +O 4 x | & Desktop * Vede thi +| 2 & @- @® Newto MATLAB? Watch this Video, see Demos, or read Getting Started x Bl &) RO sel ~!) Select + @-

Ngày > guide Name Nalue Click here to create

Ẩ cenhi f5] oe =] graph fig graph1.m Sx >> m GUIDE Quick Start z - oe or G| pen a project ject:

#) graph.m

©) graph.ig Create New GUI | Qpen Existing GUI

GUIDE templates Preview _ Blank GUI (Defaut)

| GUI with Uicontrols @ GUI with Axes and Menu @ Modal Question Dialog Command History 0 @ x graph1 0š 50*t, “1 lot(t [ ] Save new fig | raph raphi OK | Cancel Help 22/4 graphi tai de Det ^ @ Start Hình 2.1.1: Khởi động GUI

- - Ta có các lựa chon sau :

* Blank GUI (Default): Hép thoai GUI tréng khong có một điều khiển uicontrol nao ca

* GUI with Uicontrols: Hop thoai GUI voi mot vai uicontrol nhu button, Chương trình có thể chạy ngay

Trang 9

button, cdc menu để hiển thị đồ thị

* Modal Question Dialog: Hộp thoại đặt cầu hoi Yes, No

* Open Exiting GUI: Đề mở 1 file có sẵn

- Nhap Blank GUI (Default) chon OK để tạo một giao diện bắt đầu với giao

diện trồng, ta được hình ảnh giao diện trong GUI như sau:

4 MATLAB R2012a - 4

File Edit Debug Parallel Desktop Window Help

86) & & BO © | Beh F | @ | curentFolder|C:\Users\HOANG\Desktop\Ve do thi v ||.) Shortc s 2] How to Add (2) What's New Current Folder "1a xi Com untitled.fig - 4 Ea Workspace “O # X)| Dep *O 4 X - x „ đ } a ° xv

J) « Desktop > Vedo thi POO GS Fie edit View Layout Tools Help me wR se set» i @-

Name © DGG 4B 482g ae Pp — = Click here to create

Trang 10

2.2 MOTA CHUC NANG GIAO DIEN GUI:

Trang 11

MO TA CHUC NANG CAC CONG CU CO BAN Cong cu M6 ta

Layout editor Chọn các thành phân từ bảng thành phân, trình bày, và sắp xếp chúng trong các khu vực bồ trí (Tùy chỉnh hiện tên các thành phân: File => Preferences) Align Objects Dùng đề sắp xêp các đôi tượng điêu khiên

Menu Editor Tạo menu cho giao diện

Tab Order Editor Thiết lập các tab và sắp xêp thứ tự của các thành

phân trong bố trí của bạn

Toolbar Editor Thanh công cụ tạo ra có chứa các nút bâm được xác định trước và tùy chỉnh và chuyển đổi nút

Editor Hiện thị , trong trình soạn thảo mặc định của bạn ,

các tập tin mã kết hợp với giao diện đồ họa

M-file editor Mở cửa sô M-flle

Property Inspector Thiét lập các thuộc tính cảu các đôi tượng điều khiên Nó cung cấp một danh sách tất cả các thuộc tính bạn

có thể thiết lập và hiển thị các giá trị hiện tại của

chúng

Object Browser Hiền thị một danh sách phân cập của các đôi tượng

trong giao diện đỗ họa Run Lưu và chạy giao diện hiện tại Res1ze box Tùy chỉnh kích thước giao diện

Position Readouts Liên tục hiền thị vị trí con trỏ chuột và vị trí của các đối tượng được chọn

Trang 12

- _ Phía bên trái là nhóm các biểu tượng được Matlab GUI hỗ trợ sẵn: Lok | ⁄ ⁄ ` ~ 4A kK z e Push Button a : là nút nhân, khi nhân vào sẽ thực thi lệnh trong cau trúc hàm callback của nó e Slider — : là thanh trượt cho phép người dùng di chuyển thanh trượt để thực thi lệnh

e Radio Button 2 : nó giỗng như Check Box nhưng thường được sử dụng để tạo sự lựa chọn duy nhất, tức là 1 lần chỉ được chọn 1 trong số các nhóm nhiêu nút Khi một ô được chọn thì các ô còn lại trong nhóm bị bỏ chọn e Check box xi : sử dụng để đánh dấu tích (thực thi) vào và có thê check

nhiều ô để thực thi

° lich ` - ƑẸ 7 A ` ` ` " ` ` ¢ ` 2

e Edit Text — : là nơi các kí tự được nhập vào từ người dùng, người dùng có thê thay đôi được

e Static Text : là các kí tự được hiền thị thông qua các callback, hoặc

thông thường để viết nhãn cho các biểu tượng, người dùng không thể thay

đôi nội dung

e Pop-up Menu : mở ra danh sách các lực chọn khi người dùng nhấp

chuột vào Chỉ chọn được 1 mục trong danh sách các mục

e List Box = : hộp thoại danh sách cách mục, cho phép người dùng chọn một hoặc nhiều mục

e Toggle Button = : là nút nhân có 2 điều khiến, khi nhấp chuột và nhả ra,

nút nhẫn được giữ và lệnh thực thị, khi nhấp chuột vào lần thứ 2, nút nhân nha ra, hủy bỏ lệnh vừa thực thị

Trang 13

Axes ™ đây là giao diện đồ họa hiển thị hình ảnh, nó có nhiều thuộc tính

bao gồm: không gian 2D (theo trục đứng và trục ngang), 3D (hiên thị không

gian 3 chiều)

ae

Panel : tạo ra một mảng nhóm các biêu tượng lại với nhau giúp ta dễ kiểm soát và thao tác khi di chuyển

Te

Button Group ”: quản lí sự lựa chon của nút Radio Button

Trang 15

MOT SO THUOC TINH TRONG INSPECTOR Thuộc tính Mô tả

BackgroundColor Màu nên của đôi tượng BeingDeleted Đỗi tượng đã được xóa

BusyAction Callback thường xuyên gián đoạn ButtonDownFcn Nút nhân Callback thường xuyên

CData Hình ảnh màu thật hiển thị trên điều khiên

Callback Điêu khiến hoạt động

Clipping Thuộc tính này không có tác dụng trên các đôi tượng điêu khiến CreateFcn Thường xuyên thực hiện Callback trong quá trình tạo đôi tượng DeleteFcn Thường xuyên thực hiện Callback trong quá trình xóa đôi tượng Enable Kích hoạt hoặc vô hiệu hóa các đôi tượng điêu khiến Extent VỊ trí hình chữ nhật (chỉ đọc) FontAngle Kiéu chit nghiéng FontName Kiêu chữ FontS1ze Cỡ chữ FontUnits Đơn vị kích thước font chữ FontWeight Nét chữ ForegroundColor Màu chữ

HandleVisibility Cho dù xử lý có thê truy cập từ dòng lệnh và ảnh minh hoạ

HitTest Lua chon bang cách click chuột Thuộc tính này không có tác dụng trên các đôi tượng điêu khiên

Trang 16

HorizontalAlignment | Căn ngang của chuỗi nhãn

SliderStep Chê độ Callback gián đoạn thường xuyên

KeyPressFcn Nhân phím Callback thường xuyên

ListboxTop Chỉ sô trên hâu hết các chuỗi hiên thị trong hộp danh sách

Max Giá trị lớn nhất (phụ thuộc vào đôi tượng điêu khiến) Min Giá trị nhỏ nhật (phụ thuộc vào đôi tượng điêu khiên)

Position Kích thước và vị trí của đôi tưỡng điêu khiên

SliderStep Kích thước bước nhảy của thanh trượt

Sfring Nhãn của các đôi tượng điêu khiên, các mục hộp danh sách, lựa chọn trình đơn pop-up

Style Kiêu của đôi tượng điêu khiên

Tag Dùng đê phân biệt giữa các đôi tượng điêu khiên

TooltipString Tạo tip cho đôi tượng điêu khiên

UIContextMenu Kết hợp một trình đơn ngữ cảnh với đôi tượng điêu khiền

Units Đơn vị đo lường

UserData Dữ liệu liên kết với đôi tượng điêu khiến

Value Giá trị hiện thời của đôi tượng điều khién

Visible Điêu khiên thuộc tính nhìn thây của các đôi tượng

Trang 17

2.4 MOT VAI CHUC NANG MO RONG:

Chú ý, để tạo sự thắng hàng, cột của các hộp thoại cho đẹp mắt ta làm như sau: - Nhấn giữ phím Ctrl và nhập vào các hộp thoại muốn chỉnh sửa, trên Menu

chon Align Objects + Hộp thoai Align hién ra như sau: if untitied1.fig "- File Edit Vieu Layout Tools Help DGH|4aa"* 4B |e |e — Align Objects - ' Ea [3k] scm | | ® my os feelr | (rar Align Ỉ h i q BHE nHc aa = Distribute II || ee ey ee] pee eee Set spacing |cU aa Pal Fe) | =x Horizontal Align *ịP 8 |ä Distribute 1ƯIEPIRT 13 Set spacing | 2Ð OK Cancel Apply i v < › Tag: figurel Current Point: (610 100] Position: [520, 343, 611, 457]

Hình 2.4.1 : Hộp thoại Align ObJects

- Trong hộp thoại trên ta có thê cân chỉnh các nút, nhóm nút sao cho chúng thắng hàng, thắng cột và đều nhau Sau khi cân chỉnh nhấn nút Apply để lưu thay đối -_ Bây giờ ta thiết lập thuộc tính chung cho giao diện (toàn bộ vùng thiết kế hay

nên giao diện) :

Trang 18

e Nhap đúp chuột vào bất cứ vị trí nào trên nền giao diện để vào hộp thoại

Inspector (hoặc trên menu chọn View -> Property Inspector), hộp thoại Inspector hiện ra như sau:

e Thiết lập Tag là “exit”

-_ Tiếp tục tùy chọn nâng cao , vào Menu Tools => GUI Options cy untitled 1.fig - a File Edit View Layout Tools Help 7) E3 | * 5à 2 Œ |3 PEmrưấ | BỊ E6 92 | Xí ° @® xi m GUI Options _-= [bit rwr Ga =i Resize behavior: Non-resizable Ma El

ie Command-line accessibility: Callback (GUI becomes Current Figure within Callbacks) v Ts =x (@) Generate FIG file and MATLAB file

I2 Generate callback function prototypes

[Ww] GUI allows only one instance to run (singleton)

[| Use system color scheme for background (recommended) (> Generate FIG file onty

OK Cancel Help

< >

Tag: figure] Current Point: [184, 329] Position: [520, 343, 611, 457] Hinh 2.4.2 : GUI Options

- Trén hép thoai Resize behavior chon dong sé 2 (Proportional), dong nay cho

phép người dùng thay đổi khích thước của giao diện và các đối tượng cũng tự

động thay đôi kích thước phù hợp với nên giao diện, nhấn OK để lưu thay đổi

Trang 19

PHAN 3: THIET KE GIAO DIEN GUI

***Trong phân này, giải thích các thông số trong Inspector đồng thời chỉnh sửa trên từng hộp thoai sẽ được trình bày song song

*** Yêu cầu : thiết kế ứng dụng có chức năng vẽ các tín hiệu tương tự cơ bản ( sóng vuông, sin, cos , răng cưa ) yêu câu nhập vào tân sô và thời gian

3.1 KHỞI TẠO CÁC ĐỐI TƯƠNG DIEU KHIEN:

- Nhan té hop phim Ctrl + S để thực hiện lưu file, sau khi chọn đường dẫn đề lưu file (Chú ý không lưu file với các biến đặc biệt hoặc bằng các con số khởi dau),

nhân save Matlab sẽ tự động tạo ra 2 file gdm một file m và một file fig, trong đó file m là Mfile chứa các hàm Matlab đã tạo sẵn hỗ trợ giao diện

Trang 21

3.2 TẠO THUỘC TÍNH CHO CÁC DOI TUONG:

- Sau day la bang mô tả các giá trị và thuộc tính của các hộp thoại trong hình,

Trang 22

- Hinh sau mé ta cach thay déi giá trị trong 6 String cua Select Function: Eổ eh ar et BusyAction ButtonDownFcn CData Callback Clipping CreateFen DeleteFcn Enable #l Extent FontAngle FontName GontSize) FontUnits FontWeight #l ForegroundC olor HandleVisibility HitTest HorizontalAlignment Interruptible KeyP ressFcn ListboxTop Max Min 4] Position SelectionHighlight | 4) SliderStep SS @ Inspector; wicontrol (ham “ (II Square”) - queue | [0x0 double array] [1x1 function_handle array) on [1x1 function_handle array] en [0 D 7.8 1.462) normal MS Sans Serif 8.0 points normal = on en center on 1,0 1.0 0.0 [21.8 17.385 20,2 5.154] on [0.01 0.1] | Square popupmenu ham “® & & % % we & 4 4 % % & & 4 muy’ PRU | he) | Le”! eee << graph2.fig = 19 | > | ` axesl er String ) Square sin Cos Sawtooth | 4 | OK Cancel

Hình 3.2.1: Thiết lập các thuộc tính trong hộp thoai Inspector

- _ Sau khi viết xong, nhân OK để lưu lại

Trang 23

- _ Sau khi chỉnh sửa các thông số ta dùng chuột đề di chuyền các hộp thoại, bố

Trang 24

3.3 MOTSO TINH NANG MO RONG:

Chu y, dé tao su thang hàng, cột của các hộp thoại cho đẹp mắt ta làm như sau: - Nhấn giữ phím Ctrl và nhập vào các hộp thoại muốn chỉnh sửa, Trên Menu

chọn Align Objects “*_ Hép thoai Align hién ra: F ile Edit HG@a|s =A” & a a h& Select Push Button som Slider ® Radio Button M Check Box

felt Edit Text

TY) Static Text x9 Pop-up Menu =i] Listbox Toggle Button EI Table i Axes Ta) Panel 78) Button Group =X ActiveX Control Tag: figurel | Hae coe — Time Distribute a3 | Ss Srey axest | = ¬ o Align | b = al Opti Distribute A PBR ae as $ Set snacing |20 pixels ® OK Cancel Apply graph2.fig Help Align Objects Vertical Align Horizontal Position: [520, 383, 560, 417] Current Point: [5, 152]

Hình 3.3.1: Hộp hoại Align ObJects

- _ Trong hộp thoại trên ta có thể cân chỉnh các nút, nhóm nút sao cho chúng

thẳng hàng,thăng cột và đều nhau Sau khi cân chỉnh nhân nút Apply đề lưu

thay đối

- _ Trên hộp thoại Resize behavior chọn dòng số 2 (Proportional), dong nay

cho phép người dùng thay đổi khích thước của giao diện và các đối tượng cũng tự động thay đổi kích thước phù hợp với nền giao diện, nhân OK dé

lưu thay đồi

Trang 25

PHAN 4: THUC THI HAM 4.1 GIAO DIEN TRONG MFILE:

- _ Khi đã cân chỉnh xong toàn bộ giao diện trong GUI, nhắn F5 (hoặc nhân tổ

hợp phím Ctrl + T hoặc nhấp vào biểu tượng trên thanh Menu)

- Khi Run, Matlab sé tu chạy file m va hién thi doa dién đồ họa lên màn

hình ở đây ta bắt đầu thao tác với file m

+ Editor - C:\Users\HOANG\Dropbox\hoang - nam\Tao_song (official)\graph2.m - oO

File Edit Text Go Cell Tools Debug Desktop Window Help ui ax

Dew -& Mv eC |Sb-|& @ @ f |B) - 2&4 BB BF IB DB || pace #x |1 x

"a 56 | - |1.0 + | + |1.1 » | |

158 % — - Executes on gelection change in ham ^ -

140 function ham Callback (hObject, eventdata, handles)

141 = nobject handle to ham (see GCBO)

142 3% eventdata reserved — to be defined ina future version of MATLAB 143 % handles Structure with handles and user data (see GUIDATA)

144 _

145 % Hints: contents = cellstri(get (nobject, 'String')) returns ham contents as fc

146 = contentsiget (nobject, "Value")} returns selected item from ham _ 147

148 ¬

149 % -— Executes during object creation, after setting all properties ¬

150 Function ham CreateFon (hobject, eventdata, handles) —

151 3 hCb1iecr handle to ham (see GCBO)

152 3 eventdatea reserved — to be defined ina future version of MATLAB

153 % handles empty — handles not created until after all CreateFens called = 154

155 % Hint: popupmenu controls usually have a white background on Windows ¬

158 5 See ISPC and COMPUTER ¬

157 — if ispc £6 isequal (get (hObject, "BackoqroundColor'), get(o, "defaultUicontrolsbsa: —

15H — set (hObject, "BackgroundColor', 'white")? _

159 — end aa

160 si

161 =

162 3 — —- Executes on button press in reset —

163 function reset Callback (hObject, eventdata, handles)

1643 — #=œt+ (hancllesz.+anzo, "Z=Trxri1ri7"°,g 66} v

< >

qraph+2 / start_Callback Ln 130 Col 28 OVR

1

Hình 4.1.1: Giao diện Mille

- _ Khi ta chưa thao tác trong Trong file m xuất hiện như trên hình, trong đó, tất cả các hàm function đều được Matlab hỗ trợ tạo sẵn các hàm chức năng

có liên quan, ta chỉ việc thao tác trên đó

- - Mỗi sau một hàm bất kì đều có các chú thích bên dưới (sau dẫu %), ta có thể xóa toàn bộ chúng đi đễ dễ nhìn cũng không ảnh hưởng đến các hàm

Trang 26

- Trong Mfile c6é san cdc ham callback, ta c6 thể tìm trong Mfile các hàm liên

quan đề viết câu lệnh, tuy nhiên, đề nhanh hơn chúng ta có thê làm như sau:

e_ Quay lại màn hình giao diện GUI vừa thiết kế, nhấp vào hộp thoại muốn

thực thi hàm callback, nhấp chuột phải chọn View Callbacks ->

Callback, Như hình sau: a MATLAB R2012a - 4 File Edit Debug Parallel Desktop Window Help = 74/47 elavalom 3 E5 H J =e = my < | Shortcuts (@] Howto Add [#) What's New qn ene |

Current Folder J R20128 > bin > + 2|@ @4}— Ae7710 790 26 ch na _Ẻ XỈn ö gỊ| z S8 = 2 œ4 hai BI 9> i = =—r = man ; | pace ae [fa] Fan MR | | set =| | select + lik @- 4 O # X| Dep *'H 2 x :

h Select | L Val

Name © Frequency | SÀNG Click here to create

[#š] worker.bat [#] Push Button I or open a project

|_| ProductRoots nes Slider | |

&) mw_mpiexec.bat axes] J msvc_modules_installer.pm ®& Radio Button

J mexutils.pm Check Box | | mexsetup.pm are v [SE] mexext.bat fr Edit Text a I j me.nl TT Static Text

[Šš] mex,bat

[S8] mcc.bat #3 Pop-upMenu '|

3Š] mbuild.hat EH Listbox rOptions——————

+É\ matlab.exe h 2 ï | | > (&) matlab.bat Tegule Button [ n START p — -

_—j license,tt EB Table i ¬ Cut Ctrl+X jand History +" 1đ ®= x

lcdata_utf8xml @ Hold 22/4/2014 10:08 EA

—¡ ledata_utf8xm _| lcdata.xsd fi Axes [ Ord’ Copy Ctrl+C anne g 22/4/2014 10:34 B aie r

_| Iedata.xml (75) Panel = = leploytool

4) insttype.ini Fl] Button Group Clear 22/4/2014 11:09 E:

&) ideaL Ip.m — [ Duplicate Ctrl+D | | 23/4/2014 1:04 AM _J hs_err_pid1488,log =X ActiveX Control wa bu z6 32

[&) deploytool.bat RE Bring to Front Ctrl+F EXIT aay i teat re = i i | mini 1 23/4/2014 2:01 PM ) baitaplonMatlab_bai_1.m | Send to Back Ctrl+B | Callback | | a 2 <:01 E ® baitaplonMatlab_bai_1.fig | paide by xin32 aye CreateFcn Š574/8N15 g8 gà sject Browser 23/4/2014 8:12 PM util DeleteFcn ủi fe = Editar on Ũ > luide MU AI =gistry onVownrcn os {2014 40-235

BD mndinegietry Tag: pushbutton5 —————— 84, B5, 36] Sater Shes (0165: nh

$ SS View Callbacks Ai KeyPressFcn FEEE—— nid£ Property Inspector Bl s—— 26/4/2014 9:43 AM > ưu1de «< 1052 AM ~ Gal © Hình 4.1.2: Tìm hàm calback cho đối tượng điều khiến == P0 05

e Sau do ham callback sé tu dong duoc gọi và con trỏ chuột sẽ tìm dén vi trí của nó trong Mfile

-_ Bây giờ khi muốn gọi một hàm nào ta cũng có thê thực hiện như trên Sau

đó tiên hành việt câu lệnh cho nó

Trang 27

4.2 MOT SOHAM TRONG GUI:

Ham callback dugc lap trinh cho cac nut button, checkbox, edit text

nhung static text va axes thi khéng co ham callback

Mỗi một callback được việt với cầu trúc như sau: function Tag_Callback(hObject, eventdata, handles)

Với Tag chính là gia tri cua Tag ma ta da dat khi tạo giao diện Các hàm chứa bên trong callback bao gồm hObject, evendata,handles

hObject là hàm truy cập nội bộ của mỗi function riêng lẽ Evendata là hàm xác định thuộc tính của function

Handles là hàm truy cập liên kết giữa các function, nó bao gồm tất cả các câu trúc của người dùng, được sử dụng để truy xuất qua các điều

khiên khác

Hàm Get cho phép ta gợi thuộc tính của đối tượng

Hàm Set cho phép ta đặt giá trị cho thuộc tính của đối tượng 4.3 LẬP TRÌNH CÁC ĐỐI TƯƠNG : 4.3.1 NUTNHAN START: Thực hiện thao tác như bước vừa nói trên (minh họa trong hình), hàm callback sẽ tự động gọi:

% - Executes on button press in start

function start Callback (hOb Ject, eventdata, handles) f=str2num(get (handles.tanso, 'string'))-

set (handles axesi, 'Visible','on'): t=eval (get (handles.thoigian, 'string')); if get (handles.han, 'value')=1;

plot (handles axesi,t, square (2*pi*50*t,50), '"LineWidth",2); elseif get (handles ham, 'value')==2;

plot (handles axesl1,t, sin(2*pi*50*t), "LineéWidth',2); elseif get (handles.ham, 'valuc')=—3;

plot (handles axes1,t,cos (2*pi*50*t), 'LineWidth',2): elseif get (handles.ham, 'value')=—4;

plot (handles axesi,t, sawtooth (2*pi*S0*t), 'LineWidth',2):3 end

axis([0 O.1 -2 2])

Trang 28

- _ Lần lượt viết các hàm sau vào functions : f=str2num(get(handles.tanso, ‘string'));

set(handles.axes1,'Visible','on');

t=eval(get(handles.thoigian, 'string'));

if get(handles.ham, ‘value')==1;

plot(handles.axes 1,t,square(2*pi*50*t,50), ‘Line Width',2);

elseif get(handles.ham, 'value')==2;

plot(handles.axes1,t,sin(2 *pi*50*t), ‘Line Width’, 2);

elseif get(handles.ham, ‘value')==3;

plot(handles.axes1,t,cos(2*pi*50*t), ‘Line Width’, 2); elseif get(handles.ham, '‘value')==4;

plot(handles.axes1,t,sawtooth(2 *pi*50*t), 'LineWidth’,2); end

axis([0 0.1 -2 2]);

Giải (thích:

> Cau lệnh 1: ƒ=sír2num(get(handles.tanso, string ')); = f: 141 bién duoc gan

= Lénh get dé lay gid trị thuộc tính của string, ở đây giá tri string duoc

nhập từ bán phím , matlab sẽ hiểu nó là 1 chuỗi các kí tự get(handles.tanso, ‘string')

Trang 29

= Lệnh str2num hoặc str2double dùng để chuyển kí tự thành 1 số Hoặc lệnh num2str dé chuyển số thành kí tự

ƒf=str2num(get(handles.tanso, 'string')); % lẫy giá trị chứa trong 6 tanso và chuyên chuỗi thành số lưu vào biến f

> Cau lénh 2: set(handles.axes1,'Visible’,'on');

Đặt thuộc tinh visible cua axes1 6 trang thai on > Cau lénh 3: t=eval(get(handles.thoigian, 'string'));

"_ Hàm eval cho phép ta chuyển đổi một chuỗi thành một vector hay mảng Ví dụ: thực hiện lệnh

a=eval('0:1:6')

>>a= 0 1 2 3 4 5 6

Kết quả trả về là vector từ 0 đến 6 có bước nháy là 1 > Cau lénh 4: if get(handles.ham, ‘value')==1;

Lénh get lẫy giá trị value cua 6 “ ham”

Lénh if xét diéu kiện nếu value của ô “ham” =1 thực hiện lệnh bên

dưới

> Cau lệnh 5: plot(handles.axes1,t,square(2*pi*50*t, 50), 'LineWidth',2); Cu phap : Plot ( dia chi vé, vé_x,y, ‘cac thudc tinh’)

Lệnh square(2*pi*50*t,50): vẽ đồ thị sóng vuông > Cau lệnh 6 : xem lại câu lênh 4

> Câu lệnh 7 : elseif get(handles.ham, value')==2;

Trang 30

Néu giá trị value của ô “ham” == 2 thực hiện lệnh bên dưới > Cau lệnh 8 ,9,10,11,12 tương tự

Cau lénh 13: axis([0 0.1 -2 2]); 4 Can chỉnh lại trục dé thi Cu phap : axis ( [ xmin xmax ymin ymax ] )

4.3.2 BANG OPTIONS GROUP : Cc I2 L bao cao.pdf x | = &— > Œ_ Lì file///C/Users/HOANG/Dranhoxh File Edit View Layout Tools Help HEB 428° | 4Bh4 PRP 0 Km:

| [at] Push Button

eon Slider | , , axes!

@® Radio Button ETm=l , | Check Box ] | | |

Wilf Edit Text ——'

Ii) Static Text | 3 Pop-up Menu = 5 ll | El Listbox “Options Fl Toggle Button START | El Table + @Hoden i Axes === © Grid on [i Panel Cut Ctrl+X | [El Button Group : Copy Ctrl+C | =X ActiveX Control —— Ctrl+V : CC RESET : St Clear EXIT | Duplicate Ctrl+D Bring to Front Ctrl+F

‹ Send to Back Ctrl+B CreateFcn

Trang 31

- Lần lượt viết các câu lệnh :

function uipanel3_ SelectionChangeFcn(hObJect, eventdata, handles) Ứ get(handles.erid, vaÌue')== Ï grid on else grid off end if get(handles.hold, 'value')==1 hold on else hold off end

- Giải thích : get(handles grid, '‘value')==

Hàm trên tìm giá trị value của ô Grid on và Hold on tương ứng , nêu được chon

Trang 32

set(handles ham, 'value’, 1); set(handles.axes1, ‘visible’, ‘off'); cla; Giai thich: > Cau lénh 1, 2: set(handles.tanso, 'string’,"'); sef(handles.thoigian, string, "); L 66

Đặt lại giá trị của ô “tanso”, “thoigian” là“ “ > Câu lệnh 3,4: sef(handles hold, value 0);

sef(handles erid, value ,0); Bỏ chon 2 6 ‘Grid on’ va ‘Hold on’ > Cau lénh 5: set(handles.ham, ‘value',1);

Mac dinh hién thi function Square

> Cau lénh 6: set(handles.axes 1, ‘visible’, ‘off'); Tắt hiện thị hệ trục tọa độ

> Câu lênh 7: cla;

Trang 33

4.4 CHAY CHUONG TRINH TREN MATLAB

Sau khi lập trình cho các phím gọi cần thiết ta bắt đầu chạy chương trình

chúng ta làm thao tác như sau :

- NhdnRun ™! ~ trén giao dién Edito M-file

#! Editor - C:\Users\NGUYEN\Dropbox\hoang - nam\Tao_song (official)\graph2.m 4O ax

DER 4B |S] - Mee fe Ce -P HB BM IB B | stack| Base v | fe AOA oO ax "ESB | - [0 [+ | +1 | x | of | @

110s‘) function thoigian CresteFcn(hObie ™ |

120

121

122 3 - Executes on button press in

123 LlIfunction srart Callback(hGbiject, "

124 — #=8crz2num (ger (handles.tanso, "srri =

1575 — set (handles.axesi,'Visible','on') = 126 — t=eval (qet (hand1les.thoiqian, 'scri = đi — if get (handles.han, 'value')=1; i

128 > Plot (handles.axesi,t,square (2 Square v =

125 — elaeif qet (handle3.ham, !+a1ue ! )—== =

130 = Plot (handles.axesi,t,sin(?*pi =

Tad) = elseif get (handles.ham, 'value')= =

132 = Plot (handles.axesi,t,cos (2?*pi Options = 133 — elseif get (handles.ham, 'value')= = 134 — Plot (handles.axesi,t,sawtooth

135 — end w

z nhachap.m x | graph2.m x|

Command Window ©) Grid on 4oax

@ New to MATLAB? Watch this Video, see Demos, or read Gett} x

ees To customize keyboard shortcuts, use = restore previous default settings by s | RESET EXIT | A

from the "Active settings” drop-down 1

Sau khi nhắn Run chạy chương trình , matlab sé tu dong Save lai M-file

Trang 34

PHẢN 5ã : HƯỚNG DẪN XUẤT ỨNG DỤNG ĐUÔI EXE

Đề có thê dịch ứng dụng chúng ta vừa làm ra yêu cầu bạn phải có toolbox

MATLAB® Compiler™ Tuy nhiên chương trình matlab cũng hỗ trợ biên dịch chương trình Deploytool

minh xin gidi thiéu cach tao file exe bang Deployment Tool Céng cu giao

diện thân thiện, không phải gõ lệnh, chúng ta làm theo các bước sau đây : bước 1 Chọn công cụ biên dịch C

Bước này chỉ cần thực hiện 1 lần duy nhất ban đầu, nếu muốn chọn công cụ biên dịch khác thì chạy lại bước này

Tai command window g6 lénh mbuild -setup

Bars gr -_?###

File Edit Debug Parallel Desktop Window Help

HS £ BBS © Bev A O| cumentFolder: c\Users\NGUYEN\Dropbox\hosng - nam\Tao_song (official) Wl

Shortcuts @] How to Add [2] What's New

Current Folder "O74 x §

h v + @ Newto MATLAB? Watch this Video, see Demos, or read Getting Started xế

@ & |) « Tao_song (official) » 8| Getting Started 3

D Name + >> mbuild -setup a ũ T Please choose your compiler for building standalone MATLAB applications: g a ao_song n = k fe Would you like mbuild to locate installed compilers [y]/n? > ? 2 gph - 1 ð Tao _song.prị 3 a 5 a Nhẫn “y” để tiếp tục , File Edit Debug Parallel Desktop Window Help

OG) & & BD © | SoH Z| @ | current Folder! C\Users\NGUYEN\Dropbox\hoang - nam\Tao_song (official) a Ea

Shortcuts (@] Howto Add [@) What's New

Current Folder H18 x š

$ (Ì( « Tao song (official) > x.Ø li @œ New to MATLAB? Watch this Video, see Demos, or read Getting Started x ý

a Name >> mbuild —setup a

- Please choose your compiler for building standalone MATLAB applications:

& ) Tao_song 5

be peaphihg 1 Would you like mbuild to locate installed compilers [y]/n? y 2 tối Tao song mị Select a compiler: `

[1] Microsoft Visual C++ 2008 SP1 in C:\Program File3 (x86) \MiCro3oft Vi3ual Studio 9.0

[0] None

Sx Compiler:

Trang 35

Chon chuong trinh compiler Sau đó nhẫn “y” để đồng ý và kết thúc Select a compiler: [1] Microsoft Visual C++ 2008 SP1 in C:\Program Files (x86)\Microsoft Visual Studio 9.0 [90] None Compiler: 1

Please verify your choices:

Compiler: Microgoft Visual C++ 2008 5P1

Location: C:\Program Files (x86)\Microsoft Visual Studio 9.0

Are these correct [y]/n? y

EEE EEE EERE EEE EEE EERE EEE EEE EEE EERE EEE ETERS RHEE

Warning: Applications/components generated using Microsoft Visual Studio 2008 require that the Microsoft Visual Studio 2008 run-time libraries be available on the computer used for deployment To redistribute your applications/components, be sure that the deployment machine has these run-time libraries

RRR REE ERE EEE EEE EERE ERE REE EEE EEE EERE RRR REE EEE EEE ER ER RR ee ee & &C

Trying to update options file: C:\Users\NGUYEN\AppData\Roaming\MathWorks\MATLAB\R2009b\ compopts.bat From template: D: \homus\MatLab\bin\win6é4\mbuildopts\msvc90compp.bat

Done

^ fs >> |

Bude 2: Chay céng cu Development Tool

Tai command Window g6 lénh >> deploytool Sau đó hộp thoại từ chương trình deploytool sẽ hiện ra [0] None Compiler: 1 Please veri h New | Open Compiler: Mi

Location: C: Name: Untitled prj

Bre these co Location: C:A\Users\NGUYEN\Dropbox\hoang - nam\Tao_song (official) ail Target: đ Windows Standalone Application »

RRR EER EES ———— — — =

Warning: Al

RRR RR KR REE EEE EEE ER EET RP ES RREERE EES EEE EEE

Trang 36

Từ hộp thoại deploytool ta có các lựa chon sau : Thẻ New để tạo mới 1 dự án

© Name : Tên chương trình

© Location : Nơi lưu dự án

o Taget : kiểu ứng dụng tạo ra chúng ta chọn

Target: (3 Windows Standalone Application v

Thẻ Open để mở 1 dự án đã build

Nhan OK , sau đó tại giao diện của deploytool , Add main file

File Edit Project Debug Parallel Desktop Window Help

ie\4a84 6 | aga @ | Current Folder: C:\Users\NGUYEN\Dropbox\hoang - nam\Tao_song (official) v | f8 Shortcuts 2] Howto Add [2] What's New

Current Folder * 0 # x Command Window ‘DeploymentToo |

ao Ri « Tzosong (official) » x0 ( Naw to MATLAB? Watch this Video, see Demos, or read Getting Started, & Untitled pr +4 @ a a

[1] Microsoft Visual C++ 2008 SP1 in C:\Program Files (x86)\Microsoft Visual Studio 9.0 a LÌ Nam 2 Build ° 8| ,Ì¿ Tao song [0] None Main File 2 Ê) yaph2#g 5 fe ‹ > IS © gaph.m - Compiler: 1 - 3 a Tao_song.pr) ‘Add main file 3 Untitled! prj : a

ẽ P9 Please verify your choices: Shared Resources and Helper Files 8

Compiler: Microsoft Visual C++ 2008 SP1 Place images, data files, and GUts (fig [i

Location: C:\Program Files (x86)\Microsoft Visual Studio 9.0 Also place here:

Are these correct [y]/n? y # Functions that are called usin # Functions that are not on the

FOR ROR RRR RR RR RRR RRR # K ‹ —_ ˆ- ——

Warning: Applications/components generated using Microsoft Visual Studio ope ‘Add files/directories 2008 require that the Microsoft Visual Studio 2008 run-time

libraries be available on the computer used for deployment To redistribute your applications/components, be sure that the deployment machine hag these run-time libraries

KERR RRR R RRR E ERE RRRRRRE RE RERRE RRR

Trang 37

Bước 3 : Dịch chương trình chon Project => Build File Edit Debug Parallel Desktop 1 : L1 gỗ| 4 Rename Project | Bể =) | @ | c Shortcuts | Settings i Current Fa kaiieiClunl ngu: | Build | : + + *% < | Package ~ || &-~ LÊ] Name = & Jo Tao_song mm graph2.fig | Tao_song.pry 4 Untitled prj

Đề đóng gói chương trình chọn Project => Package

File Edit Debug Parallel Desktop W “ c5 | Rename Project ry =) | © | i Shortcuts Settings hs New Current F “oO ax 4“ s | bb [T1 Name = + de Tao_song #ì qraph2.fiq #_| graph3.m Build Package ~ | — | CC Tao_song.prj (3 Untitled1.prj

Lưu ý : Để chạy được chương trình sau khi xuất ra máy tính phải hỗ trợ

MCRinstaller , matlab có hỗ trợ sẵn chương trình MCRinstaller , ching ta chi can cài đặt vào máy link chương trình :

\MatLab\toolbox\compiler\deploy\win6A\ MCRiInstaller

Trang 38

PHAN 6: GIAO DIEN CHUONG TRINH SAU KHI HOAN THANH

TRUONG DAI HOC KHOA HOC TU NHIEN KHOA : VAT LY - VAT LY KI THUAT

BO MON : VAT LY DIEN TU

UNG DUNG VE CAC TIN HIEU TUONG TU CO BAN

MON > THUC TAP CAUYEN DE 4 Time

sinh vien thue hien : os

Ngày đăng: 28/09/2022, 11:15

w