陳芷琳,溫曉靜,劉 鑫,王 翔,丁肇紅
(上海應用技術(shù)大學 電氣與電子工程學院,上海 201418)
自從20世紀80年代末板球系統(tǒng)開始被國內(nèi)外學者當作研究對象來驗證各種控制算法,板球系統(tǒng)的研究已經(jīng)經(jīng)歷了從simulink模型仿真驗證到實物平臺實時控制的過渡[1-2],陸續(xù)有各個課題組實驗室以及企業(yè)生產(chǎn)制造出各類板球系統(tǒng)實物平臺,其中國內(nèi)比較常用的是由固高科技公司生產(chǎn)的GPB2001板球系統(tǒng),其平臺實物和上位機界面如圖1所示。
隨著自動控制技術(shù)的進步和深入研究板球系統(tǒng)現(xiàn)在已經(jīng)成為各高校自動控制原理實驗室的基礎(chǔ)實驗平臺,目前市場所售板球系統(tǒng)未進行技術(shù)升級換代,上位機軟件還只能運行在windows xp系統(tǒng)環(huán)境下,技術(shù)相對來說已經(jīng)落后,不能滿足當前教學和研究所需。而且板球系統(tǒng)平臺自身即是一個集合機械、電子、自動化以及計算機科學等多學科交叉綜合的系統(tǒng),因此對研究板球系統(tǒng)平臺設(shè)計研究有非常實用的價值和重要意義。本文就板球系統(tǒng)提出了一套完整的設(shè)計思路和可執(zhí)行方案,實現(xiàn)成本較低,而且采用技術(shù)手段均為當前最新技術(shù),有較高的推廣價值。
本研究設(shè)計的板球系統(tǒng)平臺主要有機械部分、硬件部分(包括硬件和嵌入式軟件)和上位機三大部分組成[3-4]。板球本體利用鋁合金搭建主體機械結(jié)構(gòu),采用2個0°~180°伺服舵機為動力機構(gòu),電阻屏作為小球位置傳感器,以STM32F103單片機為控制核心,通過串口與上位機進行連接通訊,上位機設(shè)計采用python為編程語言,PyQt5為GUI框架進行搭建。下面對各個部分詳細展開闡述。
主體機械結(jié)構(gòu)采用鋁合金為主要材質(zhì),CNC加工切割成設(shè)計好的形狀,舵機臂與平板之間通過鉸鏈結(jié)構(gòu)相連,為了保證平板在2個舵機推動運動過程中維持圍繞中心運動的狀態(tài),采用萬向節(jié)將平板的幾何中心與底座固定部分相連。同時底座固定部分設(shè)計了4個彈簧減震來減少在運動過程中振動對系統(tǒng)造成的干擾。本設(shè)計中舵機采用的是Futaba3010模擬舵機,非常關(guān)鍵的是,舵機的選擇非常重要,其性能的好壞直接影響整體系統(tǒng)的使用體驗,本研究方案所選用的舵機參數(shù)如表1。
在上述關(guān)鍵參數(shù)中,舵機的扭矩要與電阻屏質(zhì)量小球質(zhì)量等整體系統(tǒng)相匹配,以保證有足夠的動力輸出,舵機的響應速度應盡可能的快,一般情況下舵機的響應也與供電電壓所相關(guān),需要機械和電子共同協(xié)調(diào)。
表1 Futaba3010舵機參數(shù)Tab.1 The parameters of Futaba3010 servo
圖2 板球系統(tǒng)機械結(jié)構(gòu)圖Fig.2 Mechanical structure of Ball&Plate system
由于舵機本身已經(jīng)構(gòu)成一個閉環(huán)系統(tǒng),省去了傳統(tǒng)伺服電機需額外加裝編碼器等工作,因此本方案中執(zhí)行機構(gòu)選用舵機極大地降低了系統(tǒng)的復雜度同時也降低了系統(tǒng)的成本。
本研究所設(shè)計的電路系統(tǒng)主要有單片機控制電路、電源電路、觸摸板電路、OLED顯示屏電路、按鍵電路,串口電路等,整體框架如圖3所示。
3.1.1 電源電路
電源電路為整個系統(tǒng)提供穩(wěn)定可靠的電能,是整個系統(tǒng)最基本的組成部分[5],系統(tǒng)設(shè)計外接供電為直流12 V供電。舵機是系統(tǒng)中的大功率用電設(shè)備,結(jié)合舵機參數(shù)本文采用的是5 V舵機供電。單片機觸摸板顯示屏等其余用外設(shè)模塊供電電壓均為3.3 V。由于2種電壓的存在,為了兼顧效率和性能,采用開關(guān)穩(wěn)壓和線性穩(wěn)壓相結(jié)合的方案。12 V轉(zhuǎn)5 V通過開關(guān)DC-DC的方案實現(xiàn),由于3.3 V采用的是線性穩(wěn)壓,為了減小其功耗降低線性DC-DC的壓差[6],3.3 V輸入由開關(guān)穩(wěn)壓所產(chǎn)生的5 V提供,電源部分電路圖見圖4。
圖3 板球系統(tǒng)硬件框架圖Fig.3 Hardware framework of Ball&Plate system
圖4 電源電路Fig.4 Power circuit
圖5 單片機主控電路Fig.5 MCU control circuit
3.1.2 主控電路
如圖5單片機引腳圖所示,主控電路選擇的芯片是STM32F103單片機,該款單片機采用ARM的Cortex-M3內(nèi)核架構(gòu),兼?zhèn)涓咝阅?、低成本、低功耗、存儲速度快等?yōu)勢[7]。結(jié)合本研究方案需求,該款單片機所具備的外設(shè)端口以及運行速度等均可達到要求,而且作為一款在民用領(lǐng)域有著廣泛地應用的單片機,供貨穩(wěn)定,成本較低。
主控電路定義了單片機各個引腳的功能和設(shè)計制作了與單片機引腳相連的電路,包括了與單片機引腳直接相連的復位電路、時鐘電路、電源電路、下載電路等;外圍電路還包括了OLED顯示屏電路、電阻屏驅(qū)動電路、串口通信電路等[8]。
3.1.3 電阻屏電路
電阻屏作為本研究設(shè)計方案中的小球位置傳感器是整個系統(tǒng)中較為關(guān)鍵的部分,設(shè)計采用的是一個 0.304 8 m(12 in)的電阻觸摸屏,其電路圖如圖6所示,驅(qū)動電路采用2對PNP-NPN三極管來分時控制其通斷狀態(tài)利用單片機的ADC功能來讀取觸點的位置。
3.1.4 串口電路
串口電路如圖7所示,單片機串口與上位機USB之間的通信轉(zhuǎn)換由此電路來完成,同時該電路具備給單片機一鍵下載程序的功能,為系統(tǒng)后續(xù)通過上位機升級程序提供了可能。
圖6 電阻屏電路Fig.6 Resistance screen circuit
圖7 串口轉(zhuǎn)USB電路Fig.7 Serial to USB circuit
3.1.5 顯示屏電路
考慮到人機交互的便捷性,設(shè)計方案在硬件設(shè)計中加入了顯示屏按鍵等人機交互方式,下位機采用的是一塊2.88 cm的OLED屏幕,可以顯示基本運行狀態(tài)和參數(shù)等。該顯示屏支持多種協(xié)議,本次采用的I2C通信協(xié)議完成單片機對顯示屏的控制,其電路圖如圖8所示。
圖8 OLED顯示屏電路Fig.8 OLED driver circuit
板球系統(tǒng)的功能較為復雜,從運行模式上區(qū)分,分為離線模式和在線模式,離線模式即下位機自己根據(jù)內(nèi)置算法進行控制[8-9],在線模式為與上位機連接,控制指令來自上位機,下位機負責執(zhí)行。此外還有一些輔助模式,比如儀器校準模式。程序設(shè)計流程圖如圖9所示。
圖9 嵌入式軟件主程序流程圖Fig.9 Main program flow chart of embedded software
在嵌入式軟件設(shè)計還充分利用了定時器和中斷這2個單片機資源作為后端運行程序,定時器用來控制程序運行節(jié)奏,中斷用來接收外部輸入,比如按鍵串口接收數(shù)據(jù),電阻屏小球讀取等。前后端結(jié)合的方式有效地提高了程序的運行效率[10-11]。
上位機作為一種非常便捷的調(diào)試手段和下位機監(jiān)控手段在實際應用中是非常常用的,本文采用python為編程語言,PyQt5為GUI框架為板球系統(tǒng)下位機設(shè)計了相配套對應的上位機軟件,其框架如圖10所示。
圖10 板球系統(tǒng)上位機框架圖Fig.10 Host computer frame of Ball&Plate system
下位機與上位機可進行通信連接的關(guān)鍵是數(shù)據(jù)協(xié)議,即收發(fā)雙方互相可以正確解析所接收的消息,板球系統(tǒng)與上位機之間交互的信息比較單一,數(shù)據(jù)量適中,本次方案采用的是字符串數(shù)據(jù)協(xié)議,每一條字符串消息幀的字段與字段之間采用逗號分隔,數(shù)據(jù)協(xié)議格式如下:
〈起始符〉,〈消息類型〉,〈數(shù)據(jù)包〉,〈數(shù)據(jù)校驗〉
其中數(shù)據(jù)包所包含的內(nèi)容根據(jù)消息類型來對應解析。在本研究中所設(shè)計的消息類型有:心跳包、下位機硬件消息、系統(tǒng)狀態(tài)消息、小球?qū)崟r狀態(tài)消息、小球參數(shù)消息、控制指令消息以及設(shè)置指令消息等
本研究中上位機編程采用的是python語言,上位機作為一個人-機交互,機-機通信的一個終端,更多的是處理交互邏輯,其本身不具備運算密集型的特點,對編程語言運算性能要求并不高,python語言具備高效簡潔等特點,而且python是一種很好的“膠水語言”,可以將各種編程語言進行很容易地結(jié)合,因此選用python語言來做上位機既可滿足系統(tǒng)業(yè)務邏輯編程所需,也可提高上位機開發(fā)效率和降低后期維護成本,其“膠水語言”特性為二次開發(fā)留了很大的空間。
綜上,在上位機的程序設(shè)計充分利用python語言的高效性,遵循面向?qū)ο缶幊痰乃枷雽⒄w程序分為多個模塊逐個解耦設(shè)計對象,在上位機界面控件渲染顯示中利用了PyQt中信號和槽機制的手段,進一步降低程序的耦合度。本研究的上位機程序設(shè)計中分為了串口程序設(shè)計、人機交互程序設(shè)計、圖像繪制程序設(shè)計、數(shù)據(jù)記錄程序設(shè)計以及算法導入程序設(shè)計。
采用多線程的方式,提高了上位機的使用體驗,特別在圖像繪制和串口數(shù)據(jù)處理上[12]。在小球控制算法導入中,不管何種算法最終都是輸出在2個舵機上進而控制小球,利用這一特點結(jié)合python對象方法的重寫實現(xiàn)了算法導入功能,只要遵循相應的代碼構(gòu)造方法即可實現(xiàn)不同控制算法的導入。
本次方案設(shè)計驗證上位機所運行的硬件環(huán)境為普通筆記本(Intel三代i5處理器),Windows10操作系統(tǒng),4GB內(nèi)存,由于上位機編程所采用的是有著跨平臺特性的python和pyqt,因此在其他操作系統(tǒng)的電腦上也是可以運行的,最終完成的上位機界面如圖11所示。
圖11 板球系統(tǒng)上位機界面圖Fig.11 Host computer interface of Ball&Plate system
圖12 板球系統(tǒng)聯(lián)調(diào)界面圖Fig.12 Interface diagram of combined debugging of Ball&Plate system
最后下位機與上位機進行聯(lián)調(diào)測試,進行了上位機監(jiān)測板球系統(tǒng)運行狀態(tài),參數(shù)調(diào)整,控制指令驗證,基本PID實時控制等測試[13],實驗過程如圖12所示,實驗結(jié)果表明,下位機滿足板球系統(tǒng)的功能,上位機可實時監(jiān)測顯示板球系統(tǒng)的狀態(tài),并可以完成一些人機交互,對現(xiàn)有的板球系統(tǒng)是一個很好替代,但本研究的不足之處是沒有將matlab中的simulink硬件在環(huán)仿真所聯(lián)系起來,在算法調(diào)試有一定的局限,但通過后續(xù)的開發(fā),該部分功能可以實現(xiàn)。
由于本系統(tǒng)上位機開發(fā)采用的是python編程語言,采用的PyQt的GUI框架,兩者均有著非常好的跨平臺表現(xiàn),即相同的程序可運行在windows、linux、mac等主流操作系統(tǒng)環(huán)境下,這將給相關(guān)科研工作帶來了極大的便利,可以非常容易的實現(xiàn)與其他項目進行銜接。
下面以固高GPB2001為對比對象,從5個方面進行對比分析。
(1) 在機械結(jié)構(gòu)上:GPB2001與本方案大體相同,不同的是GPB2001平板為圓形盤面,本方案為矩形盤面。
(2) 在驅(qū)動機構(gòu)方面:GPB2001采用伺服電機,需要安裝編碼器等,機械結(jié)構(gòu)復雜,控制復雜。本次方案采用的舵機自身已是一個閉環(huán)系統(tǒng)。
(3) 在傳感器方面:GPB2001采用攝像頭采集小球位置,攝像頭造價高昂,程序復雜,且在運行過程中收光線干擾嚴重,本研究方案采用的電阻屏成本低廉,使用簡單可靠。
(4) 在數(shù)據(jù)協(xié)議方面:GPB2001出于商業(yè)考量數(shù)據(jù)協(xié)議為私有協(xié)議,在二次開發(fā)上有很大的局限性,本研究方案數(shù)據(jù)協(xié)議采用常用的消息幀結(jié)構(gòu)協(xié)議,解碼簡單,方便二次開發(fā)接入其他系統(tǒng)。
(5) 在上位機軟件方面:GPB2001上位機軟件運行系統(tǒng)環(huán)境為windows xp,而且沒有l(wèi)inux以及mac等系統(tǒng)下的軟件。本研究方案上位機軟件由于編程語言和框架所決定有良好的跨平臺性能。
最后對本方案所設(shè)計整體系統(tǒng)物料成本進行統(tǒng)計分析,BOM表如表2所示,總價千元以內(nèi)即可實現(xiàn)一個滿足大部分需求的板球系統(tǒng)平臺,由于本次設(shè)計驗證是按照制作一個樣機來采購物料的,部分零件如電容電阻螺絲螺母等有數(shù)量起售限制,實際成本要比BOM中所列出低,如果量產(chǎn),成本還可以進一步降低。另外由于上位機等軟件所采用的語言為開源語言,所用的IDE等均免費,因此在軟件方面可以進一步控制成本。
表2 板球系統(tǒng)物料表Tab.2 Ball&Plate bill of materials
綜上分析,在吸取了同類產(chǎn)品方案優(yōu)點的基礎(chǔ)上結(jié)合當前較前沿的技術(shù)使得本研究方案更加有技術(shù)優(yōu)勢和創(chuàng)新性。而且在成本控制上有著更親民的價格,使其在自動控制實驗室或其他領(lǐng)域有著更好的推廣價值。
針對現(xiàn)有板球系統(tǒng)平臺技術(shù)迭代升級較慢的問題,自行研究設(shè)計了一整套的完整的板球系統(tǒng)平臺,并驗證了方案的可行性,通過實驗驗證本研究所提方案達到了課題的設(shè)計預期,證明了本課題的可行性和實用性,實現(xiàn)成本較低,而且提供了二次開發(fā)的接口,比傳統(tǒng)板球系統(tǒng)更加靈活,也為其他儀器開發(fā)設(shè)計提供了整套系統(tǒng)的解決思路,有較高的推廣價值和實用意義。