改造者:黃賢帥
?
基于STM32的風力擺控制系統
改造者:黃賢帥
本系統以STM32 ARM單片機為控制核心,由功能按鍵選擇控制實現不同過程的切換,陀螺儀傳感器對擺桿的運行狀態進行實時檢測,形成單閉環的控制系統。STM32 ARM單片機對陀螺儀傳感器采集回來的數據進行處理,得出的控制量通過脈寬調制方式作用于直流風機驅動電路實現對風力擺的控制。本系統實現了風力擺在只受軸流風機為動力控制下快速起擺、畫圓、恢復靜止的功能。
設計任務
設計并制作一長約60~70cm的細管上端用萬向節固定在支架上,下方懸掛一組(2~4只)直流風機,構成一風力擺,如圖1所示。風力擺上安裝一向下的激光筆,靜止時,激光筆的下端距地面不超過20cm。設計一測控系統,控制各風機使風力擺按照一定規律運動,激光筆在地面畫出要求的軌跡。

圖1 風力擺結構示意圖
設計要求
(1)從靜止開始,15s內控制風力擺做類似自由擺運動,使激光筆穩定地在地面畫出一條長度不短于50cm的直線段,其線性度偏差不大于±2.5cm,并且具有較好的重復性;
(2)從靜止開始,15s內完成幅度可控的擺動,畫出長度在30-60cm間可設置,長度偏差不大于±2.5cm的直線段,并且具有較好的重復性;
(3)可設定擺動方向,風力擺從靜止開始,15s內按照設置的方向(角度) 擺動,畫出不短于20cm的直線段;
(4)將風力擺拉起一定角度(30~45°)放開,5s內使風力擺制動達到靜止狀態;
(5)以風力擺靜止時激光筆的光點為圓心,驅動風力擺用激光筆在地面畫圓,30s內需重復3次;圓半徑可在15~35cm范圍內設置,激光筆畫出的軌跡應落在指定半徑±2.5cm的圓環內。
本系統的機械結構采用單臂梁結構,萬向節固定在伸出的臂桿上,自由擺桿與萬向節鑲嵌起來,自由擺的狀態是垂直向下。在自由擺桿的下方把四個軸流風機呈十字形分布,使得風向分別朝向前后左右,形成起擺動力。擺桿是用鋁合金制作,陀螺儀平放在軸流風機的上方,很好地檢測運動狀態。同時把激光筆安裝在自由擺下方垂直向下。
本系統要求能夠精確控制各風機使風力擺按照一定規律運動,故使用陀螺儀傳感器、直流風機驅動模塊、STM32 ARM單片機等模塊實現符合系統要求的設計,下面分別論證對于這幾個模塊的選擇。
角度測量方案的論證與選擇
方案一:選用雙軸傾角傳感器模塊LE-60-OEMLE-60-OEM,測量重力加速度變化,轉為傾角變化,可測量雙向。具有穩定性高、低功耗、結構簡單等優點。響應速度為5Hz。它可以測量平衡板與水平方向的夾角,x,y方向可以測,但z軸不可測。且操作復雜,軟件處理難度大。
方案二: 采用陀螺儀MPU6050模塊,MPU6050為全球首例整合性6軸運動處理組件,相較于多組件方案,免除了組合陀螺儀與加速器時之軸間差的問題,減少了大量的封裝空間。并且以串口模式向MCU輸出MPU6050的測量數據。經過軟件濾波后可以得到較為精準的測量值。此方案優點是該模塊體積小,無需復雜的機械結構輔助。且與MUC連接僅需要2個I/O口。
基于上述理論分析和實際情況,故采用方案二。
直流風機驅動模塊的論證與選擇
方案一 : 采用L298N芯片構成的驅動模塊,L298N是ST公司生產的一種高電壓、大電流電機驅動芯片。該芯片采用15腳封裝。工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續工作電流為2A,采用標準邏輯電平信號控制。此方案可以通過PWM信號控制輸出電壓,但是持續工作電流為2A,無法滿足大電流風機的需求。
方案二 : 采用雙BTN7971構成H橋的驅動模塊,BTN7971芯片是應用于電機驅動的大電流半橋高集成芯片,最高工作電壓為24V,驅動電流最高為70A。集成的驅動IC具有邏輯電平輸入、電流診斷、斜率調節、死區時間產生和過溫、過壓、欠壓、過流及短路保護的功能。此方案優點是驅動模塊工作頻率高,響應時間短,能夠在較短的時間里快速調節風機轉速。
基于上述理論分析和實際情況,故采用方案二。
控制系統的論證與選擇
方案一:采用STC12C5A60S2單片機作為主控芯片,STC12C5A60S2是一款增強型51內核的8位單片機,與傳統51單片機相比具有程序執行速度較快、 A/ D 數據處理便捷、PWM輸出方便等優點,但是其僅僅集成兩路外部中斷和三路定時器,對外部輸入信號的處理能力略顯不足。
方案二:采用嵌入式系統STMF103ZET6的ARM單片機作為控制核心。STMF103ZET6是基于cortex-M3的32位控制器,具有運行速度快,外圍器件簡單,功耗低等特點。
本系統控制算法涉及單閉環,需要采集陀螺儀的實時信號,并且多通道輸出PWM調制,為保證輸入信號和輸出控制快速與精確地處理,根據實用、高效的原則,綜合比較以上兩種方案,故采用方案二。
風力擺在起擺過程中,包含了嚴重的非線性特性,不僅要求風力擺起擺速度快, 而且還要考慮線性度特性。由于風力擺要擺上一定的角度值,只對左右的兩個軸流風機進行風速控制,可以讓風力擺起擺,但是在要求快速起擺時,會產生一定的線性偏差,通過陀螺儀的反饋量進行調整控制前后的風機進行誤差消除,可以滿足系統要求。
電路的設計
系統總體框圖如圖2所示。
按鍵模塊設計
通過74ls148芯片構成中斷式鍵盤,74ls148是一款8線-3線的編碼芯片,其輸入輸出均為低電平有效。對其外接8個機械按鍵經過編碼后,通過MCU的中斷程序處理得到鍵值。此方案不需要程序一直執行鍵盤掃描程序,只有當輸入有效時才進入中斷處理得到鍵值,有效地提高程序的執行效率,按鍵模塊電路原理圖如圖3所示。

圖2 系統總體框圖

圖3 按鍵模塊電路原理圖
程序的設計
系統一開始就進行初始化設計,通過按下指定的按鍵進行功能的選擇。系統程序流程圖如圖4所示。
測試方案
調試軸流風機和陀螺儀等各個模塊分別能夠正常工作,之后將各個模塊組裝在一起,燒入程序逐漸調試整個系統正常工作。

圖4 系統程序流程圖
測試條件與儀器
測試條件:多長檢查硬件電路,確保硬件電路無虛焊,并且連線無誤。
測試儀器:數字萬用表、量角器、刻度尺、卷尺、秒表。
測試結果
根據系統設計要求進行逐項測試,設計要求(1)的測試結果如表1所示,設計要求(2)的測試結果如表2所示,設計要求(3)的測試結果如表3所示,設計要求(4)的測試結果如表4所示,設計要求(5)的測試結果如表5所示,設計要求(6)的測試結果如表6所示。統誤差;

表1 設計要求(1)的測試結果

表2 設計要求(2)的測試結果

表3 設計要求(3)的測試結果

表4 設計要求(4)的測試結果
(2)風力擺擺動角度由陀螺儀傳感器采集數據,經處理器計算控制直流風機轉動的過程需要消耗一定的時間。在這一定的時間之內風力擺又擺動了一定的角度。因此,電機的轉動總是晚于風力擺當時的角度產生誤差。
根據上述測試數據,可以得出以下結論:
(1)從靜止開始,15s內風力擺做類似自由擺運動,使激光筆穩定地在地面畫出一條長度不短于50cm的直線段,其線性度偏差不大于±2.5cm,并且具有較好的重復性;
(2)從靜止開始,15s內完成幅度可控的擺動,畫出長度在30~60cm間可設置,長度偏差不大于±2.5cm的直線段,并且具有較好的重復性;
(3)可設定擺動方向,風力擺從靜止開始,15s內按照設置的方向(角度) 擺動,畫出不短于20cm的直線段;
(4)將風力擺拉起一定角度(30~45°)放開,5s內風力擺制動達到靜止狀態;
(5)以風力擺靜止時激光筆的光點為圓心,驅動風力擺用激光筆在地面畫 圓,30s內需重復3次;圓半徑可在15~35cm范圍內設置,激光筆畫出的軌跡落在指定半徑±2.5cm的圓環內。
綜上所述,本系統達到設計要求。

表5 設計要求(5)的測試結果
測試結果分析
誤差分析:
(1)風力擺無法避免阻尼和前后擺動造成相應的系

黃賢帥
華南理工大學廣州學院
黃賢帥(1987-)男,廣東廣州人,本科生,助理工程師,主要研究方向為嵌入式系統、單片機應用。
10.3969/j.issn.1001-8972.2016.01.027