羅明璋,尹志豪,李修權(quán),黑創(chuàng),黃力,劉杰
《單片機(jī)原理與接口技術(shù)》《C語言程序設(shè)計》和《感測技術(shù)》課程是電氣信息類專業(yè)的必修課,課程實踐性較強(qiáng)。目前,大多數(shù)高校電氣信息類專業(yè)《C語言程序設(shè)計》課程教學(xué)目標(biāo)不明確,與《單片機(jī)原理與接口技術(shù)》課程脫節(jié)較嚴(yán)重[1],導(dǎo)致學(xué)生動手能力不強(qiáng),影響就業(yè)。而C語言是單片機(jī)嵌入式系統(tǒng)編程開發(fā)的基礎(chǔ),單片機(jī)是控制采集系統(tǒng)的核心,感測技術(shù)是信息采集的源頭,為此,筆者設(shè)計了一個可以綜合完成基于C語言的單片機(jī)和傳感器課程實驗的交叉科目實驗教學(xué)平臺。
圖1 實驗教學(xué)平臺硬件設(shè)計框圖
本著易維護(hù)、易擴(kuò)展、易改造的原則,基于單片機(jī)的傳感器實驗教學(xué)硬件平臺由基礎(chǔ)核心板(以下簡稱基礎(chǔ)板)和傳感器擴(kuò)展板(以下簡稱擴(kuò)展板)組成,其硬件設(shè)計框圖如圖1所示?;A(chǔ)板選用基于Cortex-M3內(nèi)核的STM32F103RCT6微控制器芯片,該芯片最高時鐘頻率為72MHz,在內(nèi)部集成了定時器/計數(shù)器、RS232串口、FLASH、SRAM、JLINK等功能,并連接了鍵盤、LED等外部電路,可以實現(xiàn)如表1所示的實驗教學(xué)內(nèi)容。傳感器擴(kuò)展板是為了擴(kuò)展基礎(chǔ)板功能以實現(xiàn)感測技術(shù)實驗教學(xué)內(nèi)容,它包括基于霍爾編碼器或增量光電編碼器的直流電機(jī)驅(qū)動(擴(kuò)展板1)、紅外遙控檢測模塊(擴(kuò)展板2)、MPU6050加速度傳感器、激光傳感器(擴(kuò)展板3)、機(jī)械手驅(qū)動(擴(kuò)展板4)、電渦流傳感器(擴(kuò)展板5)、ESP8266無線通信模塊(擴(kuò)展板6)。
表1 實驗項目內(nèi)容
為了在教學(xué)中能夠更加直觀的觀測感測技術(shù)實驗和綜合創(chuàng)新結(jié)果,基于LabView設(shè)計的上位機(jī)軟件如圖2所示,功能主要包含學(xué)生信息登錄、網(wǎng)絡(luò)通信、直流電機(jī)控制、機(jī)械手控制,加速度、位移數(shù)據(jù)繪圖、保存和數(shù)據(jù)處理。硬件配置使用STM32CubeMX,以實現(xiàn)快速配置,也可以自主配置。嵌入式編程采用Keil5使用C語言編程。
圖2 實驗平臺上位機(jī)軟件
不同于傳統(tǒng)51內(nèi)核單片機(jī)的開發(fā)方式,STM32嵌入式開發(fā)需要對芯片所封裝的函數(shù)庫及時鐘系統(tǒng)掌握后才能完成表1所述的實驗項目:
1)明確《單片機(jī)原理與接口技術(shù)》《感測技術(shù)》和《C語言程序設(shè)計》的實驗?zāi)康?,在此基礎(chǔ)上確定實驗所需要的實驗平臺的硬件配置;
2)對實驗項目中使用的傳感器原理進(jìn)行調(diào)研、學(xué)習(xí),一是對傳感器原理進(jìn)行明確,二是對傳感器模塊的接口和通信方式的學(xué)習(xí);
3)確定與上位機(jī)通信方式及通信協(xié)議;
4)在Keil5中根據(jù)前3步的分析進(jìn)行程序設(shè)計并利用STM32CubeMX對STM32引腳狀態(tài)進(jìn)行快速配置,也可以自行調(diào)用函數(shù)配置;
5)下載程序到基礎(chǔ)板中進(jìn)行驗證,若驗證結(jié)果與實驗?zāi)康牟灰恢?則利用JLINK對程序?qū)崿F(xiàn)在線調(diào)試,最終實現(xiàn)實驗?zāi)康摹?/p>
筆者以基于無線網(wǎng)絡(luò)的懸臂梁共振阻尼實驗的設(shè)計案例來說明教學(xué)實驗項目設(shè)計的方法和流程。該實驗通過控制懸臂梁的振動,使懸臂梁達(dá)到共振,控制渦流調(diào)諧質(zhì)量阻尼器(ECTMD),測量懸臂梁的振動情況,并將得到的數(shù)據(jù)在上位機(jī)進(jìn)行繪圖,驗證ECTMD的阻尼效果。
圖3 基于無線網(wǎng)絡(luò)的懸臂梁共振阻尼實驗裝置
實驗裝置如圖3所示,基礎(chǔ)板及擴(kuò)展板均包含在實驗平臺箱體內(nèi)。振動源采用質(zhì)量不平衡的可調(diào)速的直流電機(jī)作為振動激勵器,位移測量采用加速度傳感器直接安裝在結(jié)構(gòu)需要測量的部位,測得該點的加速度,然后將加速度信號2次積分后得到振動位移信號[2]。ECTMD由一個小懸臂梁、一個銅板和一個嵌有磁鐵的丙烯酸玻璃立方體構(gòu)成,小懸臂梁一端固定在可控懸臂梁上,另一端附著在立方體亞克力玻璃上,銅板固定在主懸臂梁上,通過控制機(jī)械手的開關(guān)與閉合從而控制ECTMD的有無。最后通過無線網(wǎng)絡(luò)將數(shù)據(jù)打包發(fā)送到上位機(jī),在上位機(jī)實時顯示曲線。
圖4 懸臂梁共振阻尼實驗系統(tǒng)硬件設(shè)計
實驗平臺箱體內(nèi)基礎(chǔ)板及擴(kuò)展板的硬件設(shè)計如圖4所示,主要由電源模塊、位移測量模塊、電機(jī)轉(zhuǎn)速測量模塊、舵機(jī)驅(qū)動、電機(jī)驅(qū)動和網(wǎng)絡(luò)通信模塊組成。
電源模塊主要由變壓器、整流電路、濾波電路及穩(wěn)壓電路組成,變壓器將220V、50Hz的交流電轉(zhuǎn)化成所需的電壓信號,接通整流電路將交流電變?yōu)槊}沖形式的直流電壓,然后通過濾波電路濾去較大紋波的電壓,最后通過穩(wěn)壓電路得到所需的±5V和±12穩(wěn)定電壓[3]。+12V為直流電機(jī)驅(qū)動器和舵機(jī)(機(jī)械手)驅(qū)動器提供電源,+5V為STM32核心板、MPU6050加速度傳感器和增量式光電編碼器提供電源。
位移測量模塊采用MPU6050加速度傳感器對主懸臂梁的位移進(jìn)行采集,MPU6050內(nèi)部集成姿態(tài)解算器,對信號進(jìn)行卡爾曼濾波,將各個軸的加速度信號發(fā)送到上位機(jī),上位機(jī)將加速度信號進(jìn)行2次積分后得到振動位移信號。
直流電機(jī)作為振動源,通過STM32輸出不同占空比的PWM波形來調(diào)速,驅(qū)動模塊采用了TB6612FNG直流電機(jī)驅(qū)動模塊。在±12V供電的情況下,將±5V轉(zhuǎn)化到±12V電壓以達(dá)到驅(qū)動電機(jī)的目的,并且該模塊采用MOSFET-H橋式結(jié)構(gòu),可以雙路輸出,熱耗性良好。由于實驗過程中需要主懸臂梁持續(xù)保持共振,要求電機(jī)轉(zhuǎn)速穩(wěn)定,實驗中使用到了PID算法。采用了一個增量光電式編碼器,該編碼器的轉(zhuǎn)化結(jié)果幾乎不受外界振動影響,并可以將電機(jī)轉(zhuǎn)速轉(zhuǎn)化為脈沖數(shù),將該值作為閉環(huán)算法中的反饋值對電機(jī)速度進(jìn)行調(diào)整。
舵機(jī)作為機(jī)械手的驅(qū)動源控制ECTMD,通過控制STM32輸出不同占空比的PWM控制機(jī)械手的動作。該模塊采用了MG995模擬舵機(jī)。由于舵機(jī)的旋轉(zhuǎn)角度與占空比之間的關(guān)系受舵機(jī)供電情況和機(jī)械手機(jī)械結(jié)構(gòu)的影響。在多次實驗后采用LM2596S調(diào)壓模塊將原有+12V電壓調(diào)節(jié)到+7V電壓給舵機(jī)供電,PWM占空比為5.5%時機(jī)械手張開,PWM占空比為8.9%時機(jī)械手閉合。
圖6 調(diào)速中斷子程序 圖7 串口中斷子程序設(shè)計框圖 設(shè)計框圖
該實驗平臺的硬件與上位機(jī)采用無線網(wǎng)絡(luò)通信,該無線通信模塊采用ESP8266芯片,這是一個完整且自成體系的WiFi網(wǎng)絡(luò)解決方案,能夠獨立運行,可以作為從機(jī)搭載與其他主機(jī)MCU運行[4],能夠?qū)⒋跀?shù)據(jù)以TCP/IP協(xié)議的方式傳輸?shù)缴衔粰C(jī),以保證數(shù)據(jù)穩(wěn)定傳輸。
基于上述搭建的硬件系統(tǒng)裝置采用圖5所示的軟件主程序框圖來進(jìn)行程序設(shè)計。系統(tǒng)上電之后開始系統(tǒng)的初始化,包括系統(tǒng)時鐘、各個端口GPIO狀態(tài)、串口中斷、定時器中斷、計數(shù)器計數(shù)模式、PID參數(shù)和PWM輸出模式的相關(guān)配置。由于采用增量式光電編碼器,當(dāng)電機(jī)每轉(zhuǎn)一周編碼器輸出15000個高電平,實驗中采用了一個定時器和一個計數(shù)器對其實現(xiàn)采樣。在初始化中將計數(shù)器的值設(shè)置為0,其模式設(shè)置為上升沿觸發(fā)模式,即每一次上升沿來到計數(shù)器加1,并將定時器設(shè)置為10ms中斷1次。該配置可以使用STM32CubeMX軟件生成,生成的代碼可以作為教學(xué)過程中的參考。在初始化函數(shù)之后,主程序進(jìn)入循環(huán)程序之中,該循環(huán)主要判斷2個全局變量Flag的狀態(tài)來決定,是否向在數(shù)據(jù)包中摘取相應(yīng)的數(shù)據(jù)向上位機(jī)發(fā)送數(shù)據(jù)包、是否執(zhí)行從上位處收到的命令以完成相應(yīng)的動作。
當(dāng)主程序每10ms進(jìn)入1次中斷時,讀取1次計數(shù)器中的值并將計數(shù)器中的值進(jìn)行清空。將讀取到的計數(shù)器值作為PID算法函數(shù)的入口參數(shù),得到下一次PWM占空比的指導(dǎo)值,將該值輸出到PWM中實現(xiàn)調(diào)速的目的,其過程如圖6所示。該實驗中采用的位置式PID算法,結(jié)構(gòu)比較清晰,參數(shù)整定也較為明確[5],且在采樣周期為10ms時,速度調(diào)控可以達(dá)到0.03r/s。
為避免數(shù)據(jù)丟失,該程序采用將上位機(jī)命令和傳感器數(shù)據(jù)分離在不同串口通信的方式。串口1接受MPU6050傳感器數(shù)據(jù),在中斷中判斷其加速度的幀頭,在主函數(shù)中摘取X軸加速度。串口2與上位機(jī)通信,在中斷中判斷是否為有效命令,如命令有效則在主函數(shù)中進(jìn)行相應(yīng)動作,詳細(xì)框圖如圖7所示。
圖8 主懸臂梁的阻尼振動曲線
通過配套的上位機(jī)軟件和實驗硬件平臺,得到2種阻尼模態(tài)下主懸臂梁的振動情況。當(dāng)不存在ECTMD時即系統(tǒng)自由振動情況下,可以觀測到振動衰減的很慢,衰減到零時間很長, 大概需要25s左右,如圖8(a)所示。在同等激勵情況下,在ECTMD作用下,振動位衰減快,衰減到零時間大概需要5s左右,如圖8(b)所示。產(chǎn)生這種現(xiàn)象的原因是ECTMD模態(tài)下產(chǎn)生較大的振動阻尼,即當(dāng)ECTMD模態(tài)阻尼振動實驗時,解鎖了小懸臂梁,其端尾帶有一個磁鋼,主懸臂梁振動帶動磁鋼與銅板之間的相對運動,銅板內(nèi)部的磁通量發(fā)生變化從而在金屬板內(nèi)形成電渦流繼而產(chǎn)生一個反向的洛倫茲力阻礙懸臂梁運動[6]。
筆者所給出的基于單片機(jī)的感測技術(shù)教學(xué)平臺,主要通過3種開設(shè)方式使用:
1)隨課實驗,即在《感測技術(shù)》課程、《嵌入式單片機(jī)開發(fā)》課程開設(shè)部分實驗課時,該部分實驗屬于基礎(chǔ)實驗,實驗平臺可以滿足大部分實驗要求,特別在《感測技術(shù)》課程實驗時還可以結(jié)合到《單片機(jī)原理與接口技術(shù)》課程知識,共同應(yīng)用2個學(xué)科知識解決問題,有利于學(xué)生對知識的融會和理解。
2)創(chuàng)新實驗,在各種技術(shù)科學(xué)類競賽中,可以利用該平臺進(jìn)行競賽培訓(xùn)。這種方式開設(shè)在開放實驗室中,由于專業(yè)知識涉及較多,需要老師進(jìn)行指導(dǎo)和教學(xué)。
3)教學(xué)演示實驗,對于建筑學(xué)科結(jié)構(gòu)共振只有理論的講解,沒有實驗,可利用該實驗平臺在理論課講解中穿插演示實驗的內(nèi)容,讓學(xué)生更好的理解振動方面的知識。
介紹了整個教學(xué)實驗平臺的硬件構(gòu)成和軟件操作,以基于無線網(wǎng)絡(luò)的懸臂梁共振阻尼實驗為例說明了實驗教學(xué)的設(shè)計流程。該平臺使《C語言程序設(shè)計》《單片機(jī)原理與接口技術(shù)》《感測技術(shù)》課程內(nèi)容融會貫通,實現(xiàn)了基于無線網(wǎng)絡(luò)的遠(yuǎn)程教學(xué),突破了地域和時域的限制增強(qiáng)了師生之間雙向交流互動[7],在高校實驗教學(xué)中有良好的應(yīng)用價值。
[參考文獻(xiàn)]
[1]陳景波,陳飛,李智超.“C語言”課程中融入“單片機(jī)”內(nèi)容的教學(xué)研究[J].中國電力教育,2013(26):71~72.
[2]劉繼承,徐慶華,查建新.用加速度傳感器測量振動位移的方法[J].現(xiàn)代雷達(dá),2007(5):69~71.
[3]康華光.電子技術(shù)模擬部分[M].第6版.北京:高等教育出版社,2014:481~482.
[4]范興隆.ESP8266在智能家居監(jiān)控系統(tǒng)中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(9):52~56.
[5]王祎晨.增量式PID和位置式PID算法的整定比較與研究[J].工業(yè)控制計算機(jī),2018,31(5):123~124.
[6]肖登紅,潘強(qiáng),何田.一種新型電渦流阻尼器及阻尼性能研究[J].噪聲與振動控制,2014,34(6):197~201.
[7]楊澤平,趙敏,萬鋒,等.基于Web的遠(yuǎn)程實驗教學(xué)輔助平臺[J].實驗室研究與探索,2014,33(8):115~118.