周曉
(南昌市科技信息中心,江西 南昌 330006)
人機交互接口是實現(xiàn)人與機器對話的主要交流通道,界面就是人機交互接口的一種方式。隨著科學技術的發(fā)展,越來越多形式的人機交互方式誕生,如人體特征識別交互、語音識別交互、圖像識別交互等。界面作為人機交互的一種接口技術,已在智能手機、智能穿戴設備、工業(yè)控制器等領域得到了廣泛的應用。賴禹能[1]等基于MATLAB GUI開發(fā)一種自動化軟件,提高了轉向系統(tǒng)報告效率與準確度,可設置數(shù)據讀取要求、批量處理、試驗數(shù)據等功能。閆洪波[2]等通過對外界因素影響的分析,針對噪聲污染、組織邊界模糊等問題,基于Matlab GUI設計實現(xiàn)了一款圖像處理仿真系統(tǒng),測試表明圖像質量有所提高,方便用戶使用。韓超[3]等基于MATLAB GUI設計實現(xiàn)了火炮調炮動態(tài)特性評估系統(tǒng),從而更加方便、及時地對調炮性能檢測評估,其中曲線繪制模塊可實時顯示火炮調炮動態(tài)姿態(tài)數(shù)據,性能指標計算模塊可完成多個動態(tài)性能指標參數(shù)的計算。因此,在目前的許多工程實踐中,有許多運用MATLAB GUI開發(fā)人機交互界面的實踐,而在控制器方面,采用MATLAB GUI界面設計環(huán)境的應用還較少,隨著MATLAB集成越來越多的通信接口及協(xié)議,將越來越多地應用于單片機、嵌入式系統(tǒng)等的界面設計中。
20世紀70年代中期,Cleve Moler博土及其同事開發(fā)了LINPACK和EISPACK的FORTRAN語言子程序庫,代表了當時矩陣運算的最高水平,MATLA由MATrix和LABoratory兩個單詞的前三個字母所合成。1978年,MATLAB面世。這個程序獲得了很大的成功,受到了學生的廣泛歡迎。在以后的幾年里,MATLAB在多所大學作為教學輔助軟件使用,并作為面向大眾的免費軟件廣為流傳。1984年成MATLAB商用版退出,經過了幾十年的專門打造和千錘百煉,以高性能的數(shù)組運算(包括矩陣運算)為基礎,不僅實現(xiàn)了大多數(shù)數(shù)學算法的高效運行函數(shù)和數(shù)據可視化,而且提供了非常高效的計算機高級編程語言,在用戶可參與的情況下,各種專業(yè)領域的工具箱不斷開發(fā)和完善,MATLAB取得了巨大的成功,已廣泛應用于科學研究、工程應用,數(shù)值計算分析、系統(tǒng)建模與仿真等[4]。
MATLAB GUI是MATLAB進行人機交互界面設計的主要開發(fā)環(huán)境,在MATLAB的腳本文件中也可進行UI的開發(fā),但其操作性沒有MATLAB GUI方便。因此,在進行大軟件的界面設計時,應首選MATLAB GUI開發(fā)環(huán)境,其打開首頁如圖 1所示。
在MATLAB GUI環(huán)境中,用戶可通過拖動控件的方式在MATLAB界面畫布中進行界面設計,其主要的控件包括按鈕、文本框、多行文本、復選框、圖標框、菜單欄、工具欄、滑動條、檢查框等,每種控件可進行回調函數(shù)的設計,在回調函數(shù)中進行功能任務的編寫。如文件保存回調函數(shù)與文件打開回調函數(shù):
在界面的回調函數(shù)中,句柄的概念十分重要,一個界面對應一個句柄,要想操作某個界面的數(shù)據或控件等,就必須要拿到該界面的句柄,句柄的調用格式為:handles.guiMain,表示拿到主界面的句柄。在不同界面之間如何交換使用句柄,也是在界面開發(fā)中的主要注意事項,如在數(shù)據顯示界面拿到主界面句柄程序為:
程序中h_mainGUI變量即為主界面句柄變量。
許多主流控制器均可進行RS232的串口通信,如51單片機、STM32、DSP、FPGA等。在沒有串口接口連接時,可應用CH340G、CH340等協(xié)議轉換技術進行機端通信。CH340G協(xié)議轉換電路如圖2所示[5]。電路中的RXD為串口接收端口,TXD為串口發(fā)送端口,CH340G需要使用一個12 MHz晶振為其提供時序時基。
應用MATLAB GUI開發(fā)環(huán)境進行人機界面設計的主要步驟包括需求分析、明確設計目的、明確設計思想、理清設計思路、明確設計方法、通信協(xié)議設計、界面畫布布局、運用回調函數(shù)進行功能設計、不同界面的相互調用設計、整體系統(tǒng)設計、導出為可執(zhí)行文件,最后可在計算機中安裝使用[6]。
進行需求分析的目的是明確設計的目的,實現(xiàn)有的放矢,在知曉目的的情況下,進行設計思想的思考,而不是快速地進行編程,導致出錯時可能要顛覆已設計的程序,得不償失。思路是實現(xiàn)思想的主要邏輯解答,是進行界面布局與功能函數(shù)編寫及不同界面協(xié)同工作的基礎。在進行控制器終端界面設計時還要考慮使用何種通信協(xié)議,對收發(fā)的數(shù)據進行何種處理,以保證安全可靠地存儲和運行在計算機中[7]。界面畫面布局是進行界面設計的重要步驟,一個好的布局方式可大大提高節(jié)目單友好性,方便用戶進行人機交互。在回調函數(shù)中可進行功能程序的編制,以完成設計所需的特定功能,同時可實現(xiàn)與其他函數(shù)的協(xié)同調用與處理。在設計好程序后,可在MATLAB中仿真運行,以檢驗程序設計的準確性,通過MATLAB可將設計好的程序導出為exe可執(zhí)行文件,可在安裝有MATLAB運行環(huán)境的計算機中運行[8]。
界面是實現(xiàn)人機交互的一種最常見方式,在許多領域均有應用,在控制器終端通信與界面設計中,MATLAB GUI為其提供了方便快捷的界面設計環(huán)境。本文講述了MATLAB GUI的基本概念及設計環(huán)境,通過串口通信協(xié)議實現(xiàn)與控制器終端的通信與交互,以及采用MATLAB GUI進行界面設計的主要步驟及注意事項,為控制器終端界面的MATLAB GUI實現(xiàn)提供參考。