Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
1,53 MB
Nội dung
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA VẬT LÝ-VẬT LÝ KĨ THUẬT BỘ MÔN : VẬT LÝ ĐIỆN TỬ BÁO CÁO MÔN : THỰC TẬP CHUYÊN ĐỀ ĐỀ TÀI : LẬP TRÌNH GUIDE GIAO DIỆN Sinh viên thưc hiện: NGUYỄN THÀNH NAM NGUYỄN HUY HOÀNG 1113554 1113160 TPHCM 22/4/2014 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI NĨI ĐẦU Ngày xưa cơng cụ tính tốn thủ cơng tay, bàn tính cổ điển để hỗ trợ toán học, với đổi ngành điện tử, công nghệ thông tin, công cụ tính tốn hỗ trợ ngành kĩ thuật đại đời, với mạnh mẽ nhanh chóng công cụ phần mềm, công cụ phần lớn thay cho việc thực thủ công, giúp kiểm tra kết cách nhanh chóng, giảm chi phí Cùng với phần mềm… công cụ hỗ trợ kĩ thuật phần mềm Win cc, Protell, Protues, Mlap, Matlab… Là công cụ khơng thể thiếu ngành kĩ thuật Sau giới thiệu phần mềm Matlab, công cụ hỗ trợ tính tốn mơ hệ thống trực quan xác Hẳn phần mềm Matlab khơng cịn xa lạ với người dùng, cơng cụ hỗ trợ tính tốn mơ thực tế mạnh, ngồi tính để thực điều đó, Matlab cịn hỗ trợ tạo giao diện người dùng (GUI), Chúng ta tìm hiểu ứng dụng từ để hiểu rõ dao diện GUI gì, làm để bắt đầu với GUI… Với đề tài giao diện GUI sâu vào nghiên cứu ứng dụng phát triển GUI, phát triển giao diện người dùng i LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHỤ LỤC PHẦN ĐẦU Lời nói đầu PHẦN GIỮA Phần : Sơ lược lập trình giao diện người dùng GUIDE matlab 1.1 GUI gì? 1.2 Bắt đầu với GUI 1.3 Các bước thực trước bắt đầu Phần : Thao tác với GUI 2.1 Khởi động GUI 2.2 Mô tả chức công cụ giao diện GUI 2.3 Giới thiệu hộp thoại Inspector Phần : Thiết kế giao diện GUI 3.1 Thiết kế giao diện 3.2 Tạo thuộc tính cho đối tượng 3.3 Các tính mở rộng Phần : Thực thi hàm 4.1 Giao diện M.file 4.2 Một số hàm GUI 4.3 Lập trình 4.3.1 Nút nhấn START ii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.3.2 Bảng OPTIONS 4.3.3 Nút nhấn RESET 4.3.4 Nút nhấn EXIT 4.4 Chạy chương trình matlab Phần : Hướng dẫn xuất file ứng dụng đuôi exe Phần : Giao diện chương trình sau hồn thành PHẦN CUỐI Tài liệu tham khảo iii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHẦN 1: SƠ LƯỢC VỀ LẬP TRÌNH GIAO DIỆN NGƯỜI DÙNG (GUIDE) TRONG MATLAB 1.1 GUIDE LÀ GÌ ? - GUI (Graphical User Interface) giao diện đồ họa có điều khiển nhiều cơng cụ người lập trình tạo sẵn, cho tương tác người dùng giao diện chương trình, chương trình người lập trình tạp sẵn giao diện thực vài chức người lập tình tạo sẵn giao tiếp với người sử dụng - Ứng dụng Matlab lập trình giao diện mạnh dễ thực hiện, tạo giao diện người dùng tương tự VBB, C++… - GUI bao gồm đầy đủ chương trình hỗ trợ thực phép tốn LOGIC, mô không gian 2D, 3D, đọc hiển thị 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, nút nhấn thực thi - Hầu hết GUI thực (trả lời) lệnh người dùng thông qua tác động 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 thực GUI thực thông qua hàm CALLBACK, người dùng tác động lên giao diện cách khác nhau, hàm CALLBACK gọi để thực thi 1.2 BẮT ĐẦU VỚI GUI: - Có phương pháp để lập trình GUI: Cách đơn giản sử dụng cơng cụ có sẵn GUI Matlab để lập trình Ưu điểm cách dễ thực hàm FUNCTION GUI tự tạo sẵn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Cách khác lập trình từ siêu tệp Mfile hàm FUNCTION người lập trình tự viết, có ưu điểm tùy biến cao Tuy nhiên cách khó địi hỏi người lập trình phải có hiểu biết sâu trình độ - Ở với tập đơn giản giao diện, ta thực cách thứ để lập trình giao diện với công cụ hỗ trợ sẵn Matlab - Khi thao tác giao diện thay đổi hàm 1.3 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 chương trình gì? - Sau tiến hành xác định bước thực để mô giao diện người dùng cho hợp lí xác - Bước cuối viết chương trình thực thi Sơ đồ sau mơ trình tự thực với GUI: Hình 1.3.1 Sơ đồ khối mô tả hoạt động GUI thao tác giao diện LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Khi bắt đầu với GUI, GUI tự động tạo mã tập tin thực thi hàm Callback function GUI thao tác 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ự lệnh thực thi Comment Windowns - Tất hàm callback thực thi lệnh chứa - Chúng ta nên sử dụng chức HELP Matlab để tìm hiểu thêm tất cách hàm thực thi GUI, cách tạo thao tác với GUI … LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHẦN 2: THAO TÁC VỚI GUI Đây phiên Matlab R2012A, phiên khác thao tác tương tự 2.1 KHỞI ĐỘNG GUI: - Thực khởi động Matlab đến GUI theo hình sau: Khởi động Matlab từ biểu tượng Matlab hình desktop Trong cửa sổ Comment Windowns gõ lệnh “guide” enter: ta giao diện sau: Hình 2.1.1: Khởi động GUI - Ta có lựa chọn sau : * Blank GUI (Default): Hộp thoại GUI trống khơng có điều khiển uicontrol * GUI with Uicontrols: Hộp thoại GUI với vài uicontrol button, … Chương trình chạy * GUI with Axes and Menu: Hộp thoại GUI với uicontrol axes LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com button, menu để hiển thị đồ thị * Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No * Open Exiting GUI: Để mở file có sẵn - Nhấp Blank GUI (Default) chọn OK để tạo giao diện bắt đầu với giao diện trống, ta hình ảnh giao diện GUI sau: Hình 2.1.2: Giao diện GUI LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2.2 MÔ TẢ CHỨC NĂNG GIAO DIỆN GUI: Trong giao diện thao tác để tùy biến công cụ phù hợp với mục đích sử dụng Hình 2.2.1: Giao diện GUI LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Trong Mfile có sẵn hàm callback, ta tìm Mfile hàm liên quan để viết câu lệnh, nhiên, để nhanh làm sau: Quay lại 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: Hình 4.1.2: Tìm hàm calback cho đối tượng điều khiển Sau hàm callback tự động gọi trỏ chuột tìm đến vị trí Mfile - Bây muốn gọi hàm ta thực Sau tiến hành viết câu lệnh cho 22 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.2 MỘT SỐ HÀM TRONG GUI: - Hàm callback lập trình cho nút button, checkbox, edit text… static text axes… khơng có hàm callback - Mỗi callback viết với cấu trúc sau: - function Tag_Callback(hObject, eventdata, handles) - Với Tag giá trị Tag mà ta đặt tạo giao diện Các hàm chứa bên callback bao gồm hObject, evendata,handles hObject hàm truy cập nội function riêng lẽ Evendata hàm xác đinh thuộc tính function Handles hàm truy cập liên kết function, bao gồm tất cấu trúc người dùng, sử dụng để truy xuất qua điều khiển khác - Hàm Get cho phép ta gọi thuộc tính đối tượng - Hàm Set cho phép ta đặt giá trị cho thuộc tính đối tượng 4.3 LẬP TRÌNH CÁC ĐỐI TƯỢNG : 4.3.1 NÚT NHẤN START: - Thực thao tác bước vừa nói (minh họa hình), hàm callback tự động gọi: 23 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Lần lượt viết 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.axes1,t,square(2*pi*50*t,50),'LineWidth',2); elseif get(handles.ham,'value')==2; plot(handles.axes1,t,sin(2*pi*50*t),'LineWidth',2); elseif get(handles.ham,'value')==3; plot(handles.axes1,t,cos(2*pi*50*t),'LineWidth',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: Câu lệnh 1: f=str2num(get(handles.tanso,'string')); f: biến gán Lệnh get để lấy giá trị thuộc tính string, giá trị string nhập từ bán phím , matlab hiểu chuỗi kí tự get(handles.tanso,'string') 24 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lệnh str2num str2double dùng để chuyển kí tự thành số Hoặc lệnh num2str để chuyển số thành kí tự f=str2num(get(handles.tanso,'string')); % lấy giá trị chứa ô tanso chuyển chuỗi thành số lưu vào biến f Câu lệnh 2: set(handles.axes1,'Visible','on'); Đặt thuộc tính visible axes1 trạng thái on Câu lệnh 3: t=eval(get(handles.thoigian,'string')); Hàm eval cho phép ta chuyễn đổi chuỗi thành vector hay mảng Ví dụ: thực lệnh a=eval('0:1:6') >> a = Kết trả vector từ đến có bước nhảy Câu lệnh 4: if get(handles.ham,'value')==1; Lệnh get lấy giá trị value ô “ ham” Lệnh if xét điều kiện value ô “ham” =1 thực lệnh bên Câu lệnh 5: plot(handles.axes1,t,square(2*pi*50*t,50),'LineWidth',2); Cú pháp : Plot ( địa vẽ, vẽ_x,y, ‘các thuộc tính’) Lệnh square(2*pi*50*t,50): vẽ đồ thị sóng vng Câu lệnh : xem lại câu lênh Câu lệnh : elseif get(handles.ham,'value')==2; 25 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Nếu giá trị value ô “ham” == thực lệnh bên Câu lệnh ,9,10,11,12 tương tự Câu lệnh 13: axis([0 0.1 -2 2]); % Căn chỉnh lại trục đồ thị Cú pháp : axis ( [ xmin xmax ymin ymax ] ) 4.3.2 BẢNG OPTIONS GROUP : c Hình 4.3.2.1: Viết code cho bảng OPTIONS 26 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Lần lượt viết câu lệnh : function uipanel3_SelectionChangeFcn(hObject, eventdata, handles) if get(handles.grid,'value')==1 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')==1 Hàm tìm giá trị value ô Grid on Hold on tương ứng , chon tương ứng value =1 , bỏ chọn tương ứng value =0 4.3.3 NÚT RESET - Các lệnh sau : set(handles.tanso,'string',''); set(handles.thoigian,'string',''); set(handles.hold,'value',0); set(handles.grid,'value',0); 27 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com set(handles.ham,'value',1); set(handles.axes1,'visible','off'); cla; Giải thích: Câu lệnh 1, 2: set(handles.tanso,'string',''); set(handles.thoigian,'string',''); Đặt lại giá trị ô “tanso”, “thoigian” “ “ Câu lệnh 3,4: set(handles.hold,'value',0); set(handles.grid,'value',0); Bỏ chọn ô ‘Grid on’ ‘Hold on’ Câu lênh 5: set(handles.ham,'value',1); Mặc định hiển thị function square Câu lệnh 6: set(handles.axes1,'visible','off'); Tắt thị hệ trục tọa độ Câu lênh 7: cla; Xóa tất đối tượng như: đường đồ thị, tên đồ thị…nhưng khơng xóa trục tọa độ 4.3.4 NÚT EXIT Lệnh : close; Đóng chương trình 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.4 CHẠY CHƯƠNG TRÌNH TRÊN MATLAB Sau lập trình cho phím gọi cần thiết ta bắt đầu chạy chương trình làm thao tác sau : - Nhấn Run giao diện Edito M-file Sau nhấn Run chạy chương trình , matlab tự động Save lại M-file 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHẦN : HƯỚNG DẪN XUẤT ỨNG DỤNG ĐI EXE Để dịch ứng dụng vừa làm yêu cầu bạn phải có toolbox MATLAB® Compiler™ Tuy nhiên chương trình matlab hỗ trợ biên dịch chương trình Deploytool xin giới thiệu cách tạo file exe Deployment Tool Công cụ giao diện thân thiện, gõ lệnh, làm theo bước sau : bước Chọn công cụ biên dịch C Bước cần thực lần ban đầu, muốn chọn cơng cụ biên dịch khác chạy lại bước Tại command window gõ lênh mbuild -setup Nhấn “y” để tiếp tục , 30 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chọn chương trình compiler Sau nhấn “y” để đồng ý kết thúc Bước 2: Chạy công cụ Development Tool Tại command Window gõ lệnh >> deploytool Sau hộp thoại từ chương trình deploytool 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Từ hộp thoại deploytool ta có lựa chon sau : Thẻ New để tạo dự án o Name : Tên chương trình o Location : Nơi lưu dự án o Taget : kiểu ứng dụng tạo chọn Thẻ Open để mở dự án build Nhấn OK , sau giao diện deploytool , Add main file 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bước : Dịch chương trình chọn Project => Build Để đóng gói chương trình chọn Project => Package Lưu ý : Để chạy chương trình sau xuất máy tính phải hỗ trợ MCRInstaller , matlab có hỗ trợ sẵn chương trình MCRInstaller , cần cài đặt vào máy link chương trình : \MatLab\toolbox\compiler\deploy\win64\ MCRInstaller 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHẦN : GIAO DIỆN CHƯƠNG TRÌNH SAU KHI HOÀN THÀNH 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHẦN CUỐI TÀI LIỆU THAM KHẢO: Internet: http://www.mathworks.com/ Matlab: Examples, Help 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... người dùng giao diện chương trình, chương trình người lập trình tạp sẵn giao diện thực vài chức người lập tình tạo sẵn giao tiếp với người sử dụng - Ứng dụng Matlab lập trình giao diện mạnh dễ... PHẦN 1: SƠ LƯỢC VỀ LẬP TRÌNH GIAO DIỆN NGƯỜI DÙNG (GUIDE) TRONG MATLAB 1.1 GUIDE LÀ GÌ ? - GUI (Graphical User Interface) giao diện đồ họa có điều khiển nhiều cơng cụ người lập trình tạo sẵn, cho... để tạo giao diện bắt đầu với giao diện trống, ta hình ảnh giao diện GUI sau: Hình 2.1.2: Giao diện GUI LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2.2 MÔ TẢ CHỨC NĂNG GIAO DIỆN GUI: