樊兆峰, 鮑 蓉, 邵曉根
(1. 徐州工程學(xué)院 信電工程學(xué)院, 江蘇 徐州 221018;2. 徐州工程學(xué)院 教務(wù)處, 江蘇 徐州 221018)
綜合性實(shí)驗(yàn)是指學(xué)生在掌握了相關(guān)基礎(chǔ)理論知識(shí)和技能后,綜合利用一門或多門課程知識(shí)對(duì)實(shí)驗(yàn)內(nèi)容、方法、技能進(jìn)行綜合性訓(xùn)練的一種復(fù)合性實(shí)驗(yàn)[1-3],綜合性實(shí)驗(yàn)教學(xué)一直是高等教育實(shí)驗(yàn)教學(xué)的改革方向之一。其備受重視的原因不僅體現(xiàn)在實(shí)驗(yàn)內(nèi)容、方法和手段的綜合性,更體現(xiàn)為對(duì)學(xué)生綜合能力、素質(zhì)的培養(yǎng),也是提高學(xué)生實(shí)踐能力、創(chuàng)新能力的重要環(huán)節(jié)[4]。教學(xué)與科研是高等教育的兩大職能,也是培養(yǎng)人才的兩大支柱,以科研成果反哺教學(xué)實(shí)現(xiàn)兩者的融合共建,可以進(jìn)一步提高教學(xué)質(zhì)量,促進(jìn)高等教育的持續(xù)健康發(fā)展[5]?;诖?我們?cè)谝延锌蒲谐晒幕A(chǔ)上,設(shè)計(jì)了一種綜合實(shí)驗(yàn)裝置,用于測控類課程的實(shí)驗(yàn)教學(xué)。
相比于傳統(tǒng)的實(shí)驗(yàn)對(duì)象,飛行機(jī)器人對(duì)學(xué)生而言新奇有趣,能激發(fā)他們的學(xué)習(xí)興趣。從以應(yīng)用性為導(dǎo)向看,飛行機(jī)器人使用廣泛,可用于電力線路的巡檢、火災(zāi)探測、地震現(xiàn)場勘測等監(jiān)控任務(wù),如果在其上加裝機(jī)械臂或手爪則可完成各種復(fù)雜性作業(yè)[6-7];從學(xué)科綜合性來看,飛行機(jī)器人融合了計(jì)算機(jī)、自動(dòng)控制、檢測技術(shù)、無線通信等多個(gè)學(xué)科知識(shí)。因此,選用飛行機(jī)器人做綜合性實(shí)驗(yàn)對(duì)象,適合當(dāng)前測控類專業(yè)學(xué)生,滿足綜合性實(shí)驗(yàn)教學(xué)需求。
綜合性實(shí)驗(yàn)教學(xué)方案的設(shè)計(jì),要以學(xué)生已學(xué)知識(shí)為基礎(chǔ),并對(duì)實(shí)驗(yàn)內(nèi)容、方法適當(dāng)拓展,加深學(xué)生對(duì)學(xué)科相關(guān)知識(shí)的理解和掌握。用科研反哺教學(xué)時(shí),要著重考慮科研成果的技術(shù)前沿性與學(xué)生的接收能力之間的矛盾,如果解決不好會(huì)使學(xué)生產(chǎn)生挫敗感,反而會(huì)降低他們對(duì)實(shí)驗(yàn)的學(xué)習(xí)興趣。所以在設(shè)計(jì)時(shí)要使60%~70%的知識(shí)是課程已教內(nèi)容,30%~40%的知識(shí)為拓展內(nèi)容。采用模塊化的設(shè)計(jì)方案,在檢測技術(shù)、單片機(jī)原理與接口技術(shù)、電路分析等課程知識(shí)的基礎(chǔ)上,設(shè)計(jì)了位姿測量實(shí)驗(yàn);在自動(dòng)控制原理、計(jì)算機(jī)控制技術(shù)、嵌入式系統(tǒng)等課程知識(shí)的基礎(chǔ)上,設(shè)計(jì)了控制算法實(shí)驗(yàn);在傳感器技術(shù)、工業(yè)網(wǎng)絡(luò)技術(shù)等課程知識(shí)的基礎(chǔ)上,設(shè)計(jì)了無線網(wǎng)絡(luò)圖像傳輸實(shí)驗(yàn)。這三個(gè)實(shí)驗(yàn)?zāi)K組成了整個(gè)綜合性實(shí)驗(yàn)。
飛行機(jī)器人本體主要包括:中心固定板、軸臂、電機(jī)底座、電機(jī)、旋翼等。采用十字交叉的4旋翼結(jié)構(gòu)[8-10],中心固定板和電機(jī)底座使用玻纖材料板,軸臂使用直徑12 mm的碳纖維材料圓管,軸距390 mm,電機(jī)選用銀燕直流電機(jī)(型號(hào):AX2212,980 kV),旋翼選為9×6英寸,每個(gè)旋翼產(chǎn)生的升力為730 g,則4旋翼飛行機(jī)器人的總升力為2 920 g。將各部分組裝在一起,實(shí)物如圖1所示。
圖1 飛行機(jī)器人實(shí)物圖
控制器采用嵌入式ARM處理器STM32F103VE,通過I2C總線與位姿傳感器6軸運(yùn)動(dòng)處理組件MPU6050接口實(shí)現(xiàn)位姿的測量[11];通過串行SPI接口無線收發(fā)模塊XL24L01-D03實(shí)現(xiàn)控制命令的收發(fā)及位姿參數(shù)的傳輸;通過串口UART及串口轉(zhuǎn)USB的電路與上位機(jī)電腦相連接。
視頻采集電路的處理器采用嵌入式ARM處理器STM32F103RE,通過GPIO接口攝像頭OV2640;為方便調(diào)試需求,設(shè)計(jì)一個(gè)DB9連接的UART串口。WiFi無線網(wǎng)絡(luò)電路通過STM32F103RE的SDIO接口WiFi模塊MR-09來實(shí)現(xiàn),為保證信號(hào)的可靠接收、發(fā)送,在板上設(shè)計(jì)了一個(gè)天線。
電子調(diào)速器選用30A好盈天行者,其主要技術(shù)指標(biāo)為:
(1) 控制采用PWM波;
(2) PWM波頻率為50 Hz;
(3) 最大速度對(duì)應(yīng)占空比0.1;最小速度對(duì)應(yīng)占空比0.05;
(4) 最大短時(shí)電流40 A;
(5) 最高轉(zhuǎn)速:210 000 rpm(2極);70 000 rpm(6極)。
上位機(jī)監(jiān)控程序基于VS.net平臺(tái)采用C#語言開發(fā),上位機(jī)主要操作串口發(fā)送控制命令,接收位姿參數(shù)值,通過操控WiFi無線網(wǎng)卡來獲得視頻圖像,主要利用Socket來進(jìn)行網(wǎng)絡(luò)編程。
飛行機(jī)器人主要檢測的位姿為歐拉角,4旋翼飛行機(jī)器人的歐拉角由3個(gè)參數(shù)構(gòu)成,即圍繞旋翼前后軸(X軸)旋轉(zhuǎn)的滾動(dòng)角(roll),圍繞旋翼左右軸(Y軸)旋轉(zhuǎn)的俯仰角(pitch),以及圍繞垂直軸(Z軸)旋轉(zhuǎn)的偏航角(yaw)[12]。
MPU6050傳感器有以下技術(shù)參數(shù):
(1) 內(nèi)嵌三軸陀螺儀及三軸加速度計(jì),陀螺儀范圍:±250、±500、±1 000、±2 000°/s,加速度范圍:±2、±4、±8、±16 g;
(2) 16位ADC輸出;
(3) I2C總線訪問;
(4) 供電電壓范圍:2.375~3.46 V;
(5) 內(nèi)置數(shù)字運(yùn)動(dòng)處理單元(DMP),可以自動(dòng)融合相關(guān)算法,直接輸出歐拉角。
根據(jù)MPU6050的數(shù)據(jù)手冊(cè),設(shè)計(jì)其與微處理器STM32F103VE的接口電路如圖2所示,其中,SDA接微處理器的40腳PE9,SCL接微處理器的39腳PE8;R17、R18為I2C總線的10 kΩ上拉電阻。通過該I2C總線微處理器可以對(duì)MPU6050進(jìn)行設(shè)置并讀取其檢測的位姿數(shù)據(jù)。
圖2 MPU6050與微處理器接口電路圖
由以上技術(shù)參數(shù)可知,電源電壓可以工作在3.3 V,不必再設(shè)計(jì)電源轉(zhuǎn)換電路;在±180°范圍內(nèi),16位數(shù)字輸出的分辨率在0.005 5°,測量精度足夠高;選擇位姿傳感器MPU6050的一個(gè)很重要原因是內(nèi)置DMP,可以直接得到位姿參數(shù),不必再進(jìn)行數(shù)字濾波及算法融合,而且廠家提供了DMP的庫函數(shù),方便微處理器直接調(diào)用,故軟件設(shè)計(jì)不再贅述。
飛行機(jī)器人的控制方法有很多,考慮到本綜合實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)要以學(xué)生已學(xué)知識(shí)為基礎(chǔ),因此控制算法選用了經(jīng)典的PID控制。盡管如此,為滿足部分學(xué)生對(duì)其他控制算法的實(shí)驗(yàn)需求,在控制主板留有編程的接口,學(xué)生可通過ULINK編程器重寫控制部分程序,實(shí)驗(yàn)其他控制算法。
控制器輸出50 Hz的PWM波經(jīng)4個(gè)電子調(diào)速器分別控制4個(gè)電機(jī)來改變位姿參數(shù),再由位姿測量部分構(gòu)成反饋,控制器根據(jù)計(jì)算的位姿誤差進(jìn)行PID運(yùn)算,得到控制量即4個(gè)電機(jī)的PWM占空比,從而完成PID控制過程。由于在實(shí)驗(yàn)時(shí)需要學(xué)生了解PID的3個(gè)參數(shù)即比例、微分、積分常數(shù)對(duì)控制系統(tǒng)的影響,因此這3個(gè)參數(shù)為可改變的設(shè)置。為此設(shè)計(jì)了無線通信模塊來完成這部分功能,將位姿參數(shù)傳遞給上位機(jī),并將上位機(jī)的3個(gè)參數(shù)設(shè)置傳給控制器。
XL24L01-D03是采用挪威NORDIC公司的NRF24L01p 2.4G無線收發(fā)IC設(shè)計(jì)的一款高性能無線收發(fā)模塊,采用GFSK調(diào)制,工作在2 400~2 483 MHz的國際通用ISM頻段,最高調(diào)制速率可達(dá)2 Mbps。該模塊集成了所有與RF協(xié)議相關(guān)的高速信號(hào)處理部分,如自動(dòng)重發(fā)丟失數(shù)據(jù)包和自動(dòng)產(chǎn)生應(yīng)答信號(hào)等,內(nèi)部有FIFO可以與各種高低速微處理器接口。為簡化設(shè)計(jì)內(nèi)容,選用該模塊完成上述通信功能,與控制器接口電路如圖3所示。模塊的SPI接口用控制器的通用I/O口進(jìn)行模擬,產(chǎn)生SPI通信需要的時(shí)序,完成通信功能??刂破魍ㄟ^連接PA6的IRQ查詢通信狀態(tài)。
圖3 XL24L01-D03與控制器接口電路圖
PID控制算法由軟件實(shí)現(xiàn),為保證控制系統(tǒng)的采樣時(shí)間為常數(shù),利用控制器的定時(shí)中斷功能,即PID控制軟件設(shè)計(jì)在定時(shí)中斷服務(wù)程序中,設(shè)計(jì)流程如圖4所示??刂破髟谶M(jìn)入中斷后,首先通過I2C總線讀取MPU6050測出的當(dāng)前位姿參數(shù)值,再通過無線收發(fā)模塊XL24L01-D03將當(dāng)前位姿參數(shù)值發(fā)給上位機(jī),然后讀取存儲(chǔ)在本地的參考位姿值,計(jì)算位姿偏差,再讀取存儲(chǔ)在本地的PID常數(shù),根據(jù)PID公式計(jì)算對(duì)應(yīng)的4個(gè)電機(jī)的控制量,并將每個(gè)電機(jī)的控制量累加求和,得到每個(gè)電機(jī)的控制量,轉(zhuǎn)化為占空比后輸出PWM波控制電機(jī),最后中斷返回。
圖4 PID控制算法程序流程圖
本實(shí)驗(yàn)包括兩個(gè)主要部分,視頻圖像采集和網(wǎng)絡(luò)傳輸。視頻攝像頭的選型主要考慮,方便與嵌入式微處理器接口,采集的像素要盡量高,通過比較選用OV2640??紤]到無論視頻的采集還是傳輸都需要處理大量的數(shù)據(jù),因此選用具有高速SDIO接口的嵌入式ARM微處理器STM32F103RE來單獨(dú)處理視頻數(shù)據(jù)。攝像頭模塊OV2640與微處理器的接口電路如圖5所示[13]。
圖5 OV2640模塊與微處理器接口電路圖
進(jìn)行無線網(wǎng)絡(luò)傳輸部分設(shè)計(jì)時(shí),考慮到當(dāng)前課程教學(xué)中多以WiFi網(wǎng)絡(luò)為主,因此采用WiFi網(wǎng)絡(luò)來傳送視頻圖像。為接口方便選用MR09 WiFi模塊實(shí)現(xiàn)視頻圖像的無線傳送功能,MR09是臺(tái)灣USI基于Marvell8686開發(fā)的SPI和SDIO接口的WiFi無線模塊,與微處理器接口如圖6所示。
圖6 MR09模塊與微處理器接口電路圖
上位機(jī)在編程時(shí)串口利用了SerialPort控件,飛行控制的協(xié)議頭為“0x66”,位姿信號(hào)傳回的協(xié)議頭為“0x88”;圖像傳送時(shí),先發(fā)表征圖片大小的數(shù)據(jù),規(guī)定前8個(gè)字節(jié)用來表示圖片大小。
上位機(jī)監(jiān)控界面按功能分為以下部分:飛行控制、升力(油門)控制、位姿歐拉角、視頻監(jiān)測設(shè)置、串口通信設(shè)置、視頻顯示。編寫的上位機(jī)監(jiān)控界面如圖7所示。
圖7 上位機(jī)監(jiān)控界面
在實(shí)驗(yàn)前,要先將飛行機(jī)器人上電,上位機(jī)連接無線通信模塊XL24L01-D03。然后按以下步驟進(jìn)行實(shí)驗(yàn):
(1) 點(diǎn)擊圖7中的網(wǎng)絡(luò)設(shè)置按鈕,在彈出的界面中將上位機(jī)的無線網(wǎng)絡(luò)IP地址設(shè)定為“192. 168.10.12”,訪問的端口設(shè)為8888;
(2) 點(diǎn)擊視頻采集按鈕,則圖7中左部圖片位置會(huì)顯示攝像頭傳來的實(shí)時(shí)視頻,點(diǎn)擊拍照按鈕可獲得當(dāng)前一幅圖像并在視頻框內(nèi)顯示;
(3) 點(diǎn)擊串口設(shè)置下拉菜單選擇相應(yīng)的串口設(shè)備,然后點(diǎn)擊打開串口按鈕,則會(huì)建立與飛行機(jī)器人測控部分的連接;
(4) 用鼠標(biāo)雙擊飛行控制,在彈出的設(shè)置界面里輸入PID的三個(gè)常數(shù)值,然后點(diǎn)確定按鈕;
(5) 先將飛行控制中的滑塊拖至中間位置,然后由小到大拖動(dòng)升力控制滑塊,這時(shí)機(jī)器人開始起飛;
(6) 拖動(dòng)飛行控制中的滑塊,實(shí)現(xiàn)對(duì)機(jī)器人飛行運(yùn)動(dòng)軌跡的控制,圖7中右下綠色的歐拉角部分會(huì)實(shí)時(shí)顯示當(dāng)前位姿參數(shù)值;
(7) 雙擊歐拉角部分會(huì)彈出位姿變化曲線,其中飛行機(jī)器人懸停時(shí)的俯仰角如圖8所示。
圖8 俯仰角變化曲線圖
對(duì)該綜合實(shí)驗(yàn)平臺(tái)的多次測量結(jié)果表明,系統(tǒng)運(yùn)行穩(wěn)定,位姿參數(shù)的測量值準(zhǔn)確,數(shù)據(jù)的記錄精確,且多次重復(fù)實(shí)驗(yàn)所得誤差較小,視頻傳輸穩(wěn)定,畫面流暢。位姿變化曲線能充分反映控制算法的效果,便于學(xué)生分析比較,適于作為測控類專業(yè)學(xué)生的綜合性實(shí)驗(yàn),具有一定的推廣價(jià)值和應(yīng)用前景。