張皓博,劉蘭波
(黑龍江工業學院 電信系,黑龍江 雞西 158100)
基于單片機設計的風力擺系統
張皓博,劉蘭波
(黑龍江工業學院 電信系,黑龍江 雞西158100)
摘要:系統是以STM32F103C8T6單片機為主要控制核心的風力擺控制系統,該系統包括了MPU6050陀螺儀,TTS音頻模塊,12864液晶屏顯示模塊以及L298N電機驅動模塊等控制模塊。系統主要由MPU6050陀螺儀采得姿態和運動數據,先測試出幾組具有代表性的數據,從而利用公式推導出風力擺擺動到任意位置時對應的pwm脈沖,根據計算出的脈沖,進而控制軸流風機的轉速,以此來控制推動風力擺的動力大小,實現對風力擺的控制。為了在系統控制過程中能更清楚地獲知數據,系統中有12864液晶屏顯示模塊以及TTS音頻模塊,對數據進行顯示并且用語音播報出來。
關鍵詞:MPU6050陀螺儀;PWM;軸流風機
0設計要求
0.1基本要求。
a.從靜止開始,15s內控制風力擺做類似自由擺運動,使激光筆穩定地在地面畫出一條長度不短于50cm的直線段,其線性度偏差不大于±2.5cm,并且具有較好的重復性;
b.從靜止開始,15s內完成幅度可控的擺動,畫出長度在30~60cm間可設置,長度偏差不大于±2.5cm的直線段,并且具有較好的重復性;
c.可設定擺動方向,風力擺從靜止開始,15s 內按照設置的方向(角度)擺動,畫出不短于20cm的直線段;
d.將風力擺拉起一定角度(30°~45°)放開,5s內使風力擺制動達到靜止狀態。
0.2擴展要求。
a.以風力擺靜止時激光筆的光點為圓心,驅動風力擺用激光筆在地面畫圓,30s 內需重復 3 次;圓半徑可在15~35cm范圍內設置,激光筆畫出的軌跡應落在指定半徑±2.5cm的圓環內;
b.繼續作圓周運動,在距離風力擺1~2m距離內用一臺50~60W臺扇在水平方向吹向風力擺,臺扇吹5s后停止,風力擺能夠在5s內恢復規定的圓周運動。
1方案選擇和論證
1.1方案比較與選擇。
根據設計要求,由軸流風機提供唯一動力,使風力擺進行擺動,構成風力擺控制系統,另使風力擺按要求進行擺動,并且讓激光筆的光點在地上按要求畫出軌跡。要完成上述任務,制定出以下方案:
方案一:采用STC89C51單片機作為主控芯片,選用12V、0.15A的軸流風機作為動力源,帶動風力擺運動。用proteus畫出主控電路圖并仿真,用keil調試程序,易于調試與修改。但由于該程序代碼量較大,并且上述單片機沒有自帶PWM脈沖發生器,不便于控制軸流風機的轉速,也就很難控制風力擺的走向,又因為STC89C51速度較慢,并且實驗室備用的都是采用DIP封裝模式,占電路很大空間,故放棄了STC89C51單片機。
方案二:采用STM32F103C8T6作為主控芯片,該單片機體型小,功能強,并且帶有PWM脈沖發生器,可以方便地控制軸流風機轉速。動力源采用12V、4.5A的大功率軸流風機作為風力擺的動力系統。在風力擺運動過程中,采用MPU6050陀螺儀芯片來檢測并獲得風力擺的角度等數據,并發回CPU中進行比較,計算,調整。但由于該方案采用大功率的軸流風機,對電源要求比較苛刻,要用12V輸出大電流穩定的電壓,來驅動4個大功率軸流風機運轉,控制方面該軸流風機自帶控制線,但軸流風機電源與單片機的電源規格相差比較大,不能直接用單片機控制,所以軸流風機與單片機采用單獨供電,并用光耦模塊來隔離兩個系統,保障系統穩定運行。
方案三:采用STM32F103C8T6作為主控芯片,選用12V、0.7A的軸流風機作為動力源,帶動風力擺運動,用L298N驅動模塊驅動風機,增加12864液晶屏來顯示系統運行狀態和操作界面。并用語音模塊提示系統是否完成規定動作并播放數據報告。雖然風機的風力不是很大,但是風機體積小,重力較小,利用風機的重力加速度和慣性使之來回擺動的方式使風力擺擺動的角度最大化,擴大擺動的角度范圍。
在測試過程中我們發現12V、4.5A軸流風機雖風力較大,但是由于功率較大,重量比較大,在選用3至4個電機組裝到一起時,重量出乎意料的大,單憑電機提供的動力很難帶動風力擺運動,而且該軸流風機啟動和制動的延時較大,無法在短時間內達到想要的速度和立即停止轉動的要求,給風力擺的控制帶來難度。而小功率的軸流風機雖然風力小,但是體積小重量輕,易于控制。所以經過各個方案的比較,在快速完成控制系統的前提下,確定了方案三,并采用mpu6050陀螺儀采集并反饋數據。
1.2 系統總體方案描述。

圖1 單片機控制的框圖
如圖1所示,本系統風力擺部分由4只軸流風機作為唯一動力,通過陀螺儀采集風力擺的姿態及運動信息傳送到單片機,單片機對采集到的數據進行分析計算,實時計算出四個軸流風機對應的PWM輸出,來控制軸流風機的轉速,從而控制風力擺給各個方向的力,使其能在各個方向運動。我們還在主控系統上添加了按鍵和液晶屏,能通過按鍵和液晶屏的顯示來控制系統的運行模式及設定參數。
2理論分析與計算
2.1按指定長度畫直線方案。
pwm=( PWM_30-PWM_15)/15*(x-15)+PWM_15
pwm:各個點的PWM值;
PWM_30,PWM_15:以激光筆自然下垂時照射到地面的光點位置為基準(下稱基準點),改變風力擺角度,使激光筆的光點保持在距離基準點分別為30cm和15cm擺動時的PWM值;
x:需要激光筆光點離基準點的距離,最小刻度以及單位為厘米;
根據上文的公式,激光筆光點距基準點為15cm和30cm時各個軸流風機的PWM值,再把這兩個PWM值的差的絕對值平均分成15份,就能得到每偏離基準點1cm時PWM的值,后面的x可以根據我們需要激光筆的光點遠離基準點的距離而代入數值,從而計算出要達到要求時每個流風機的PWM值,單片機計算好了就輸出相對應的PWM值,從而控制流風機的轉速,進而由軸流風機轉速得到的力來控制風力擺的軌跡,當達到要求的軌跡后,一定的PWM值還能讓風力擺受力平衡,使激光筆畫線段時能有較好的重復性。
2.2按指定角度的畫直線設計方案。
根據上示的公式通過控制指定的軸流風機轉動即可畫出沿X軸或Y軸的直線,如果在控制沿X軸運動的時候同時也讓其沿Y軸運動,合運動則是成一定角度的直線運動。
根據實際測試得出,角度的大小由X軸和Y軸的pwm脈沖比決定,我們事先將各個角度對應的x,y軸的pwm脈沖值通過實驗測得并寫成二維數組。單片機通過查表法直接獲取該值。
2.3五內停止方案。
通過陀螺儀采集到風力擺的姿態并得到風力擺的運動方向,然后控制軸流風機吹向相反方向,使之產生阻力,使風力擺達到靜止的目的。由于我們選擇的軸流風機的風力太小了,所以停止的效果不是很理想,但基本可以滿足要求。
2.4畫指定半徑的圓。
首先先判斷風力擺的運動情況,保持風力擺能在x軸和y軸運動角度逐漸增大的同時,使風力擺受到的合力方向總是沿著順時針方向,這樣就能保證風力擺在做半徑不斷增大的畫圓運動。在沒達到指定半徑的時候處于加速階段,可以通過判斷風力擺在豎直方向的夾角來確定是否達到半徑,然后重新設定pwm值來保持半徑不變的圓周運動。
3電路與程序設計

圖2 陀螺儀模塊原理圖
3.1 陀螺儀模塊。
該陀螺儀模塊采用高精度的陀螺加速器MPU6050,通過處理器讀取MPU6050測量的數據通過串口輸出,該模塊包含數字濾波技術,有效降低干擾,提高測量精度。該芯片整合3軸陀螺儀、3軸加速器和六軸運動處理組件。MPU6000的角速度全格感測范圍為±250、±500、±1000與±2000°/sec(dps),可準確追蹤快速與慢動作,該芯片傳輸可透過最高至4000kHz的I2C或最高達20MHz的SPI。該芯片可在不同電壓下工作,VDD供電電壓介為2.5V±5%或3.3V±5%。邏輯接口VVDIO供電為1.8V±5%。該芯片運動處理數據庫支持Android、Linux與Windows平臺。陀螺儀角度計算方式:
angle_n = angle_n - 1 + (Gyro - C_Gyro) * R_Gyro
其中,angle_n為當前角度值,單位為度,Gyro為陀螺儀敏感軸偏轉值,C_Gyro為陀螺儀的零點偏移值,R_Gyro是陀螺儀比例。加速儀角度計算公式:
Angle_Z = (az - C_Z) * R_Z
其中angle_z為加速劑敏感軸Z軸產生的傾-角,單位為度,az是加速儀Z軸讀數,C_Z為Z軸零點偏移量,測量方法和陀螺儀的一樣,RZ為Z軸比例。
該芯片主要用做運動感測游戲,現實增強,光學穩像,姿勢快捷方式等領域。多安裝在智能手機、平板設備、手持型游戲產品、游戲機、3D遙控器和可攜式導航設備上。
3.2 TTS語音模塊。
TTS語音模塊主要用來播報系統當前的運行狀態,是否正常運行、達到題目要求。語音模塊采用的是8S003FP6芯片。芯片有靈活的時鐘控制,有4個主時鐘源,可以滿足絕大多數用戶配置要求。8S003FP6可以通過UART方式與單片機通信。并且還內置模數轉換器,可以節約主控板空間,快速處理信號,并且通過串口快速傳給單片機,提高系統的效率。
3.3 L298N電機驅動模塊。
L298N是一種高電壓、大電流的電機驅動芯片。其特點是工作電壓高,最高可在46V電壓下工作;輸出電流大,瞬間峰值可達3A,持續穩定工作電流也可達2A;額定功率可達25W。該模塊可用來驅動步進電機,直流電機,繼電器線圈等感性負載。一個芯片可同時驅動兩個直流電機,并且在工作時有信號提示,可調轉速。
3.4 12864液晶顯示模塊。
為了方便測試并直觀地展示系統的運行狀態,我們給控制系統部分添加了一塊12864液晶顯示屏來展示系統實時的工作狀態。下圖為單片機控制12864液晶屏的原理圖:

圖3 12864原理圖
2864液晶顯示模塊是128*64點陣的漢字圖形液晶顯示模塊,可顯示漢字及圖形,內置8000多個漢字、128個字符。有兩種界面來連接單片機:8位并行及穿行兩種連接方式。液晶屏與數碼管相比顯示內容豐富,可顯示字、數、以及圖形,數碼管是自發光,而液晶是靠背光,發光恒定,不會閃爍,相比數碼管功率消耗較小。
4測試方案與測試數據
4.1測試儀器與測試方法。
風力擺控制系統是由支架、控制系統和風力擺組成,在系統的初步測試中,用木板臨時搭建了一個比較穩定的支架,用來對系統的初步測試,在硬件完成之后,組裝好系統并開始測試,首先測試陀螺儀精度,通過程序進行數據擦除更新進行細微的調整,確定陀螺儀“零點”,從而保證能穩定的、準確的拿到數據,并在單片機中進行處理,在完成規定時間內達到指定的角度之后,保證風力擺能穩定地在地上畫出所預期的線段,并且不超過誤差允許范圍有較好的重復性。第二個測試方案是使風力擺離開中心垂直線一定角度后,在5S內使風力擺停在初始位置,通過風力擺來回擺動的位置調節風扇給擺動方向相反的力,幫助風力擺在短時間內回復初始位置。在測試過程中,如果擺動方向與風機有一定夾角的時候,就會導致風機給的推力與運動方向不在一條直線,風力擺不能在短時間內停下來,只能通過不斷的調試來慢慢找到兩個力的平衡位置。
4.2指標測試。
由靜止開始,15S內控制風力擺運動,使激光筆在地上畫出一條不短于50cm的直線,測試6次,測試數據和測試結果見表1。
從靜止開始,15s內完成幅度可控的擺動,畫出長度在30~60cm之間可設置的直線段,表2為測試過程中各項數據,線長以厘米為單位,每項數據都經過5次測試統計后整理。

表1

表2
設定擺動方向,風力擺從靜止開始,15s內按照設置方向擺動,畫出不短于20cm的直線時線性度偏差,測試數據如表3所示。

表3
將風力擺拉起一定角度(30°~45°),放開5s內使其回復初始狀態,測試數據見表4。

表4
5測試結果分析
風力擺控制系統完成后,由于軸流風機的風力較小,所以外界各種因素都對系統有或多或少的影響。比如說連接線的硬度,外界風力的干擾等因素。任何微小的因素都會導致風力擺誤差超過規定范圍。在測試誤差的過程中,由于儀器限制,只能粗略測量,比如風力擺的線性偏差,在測試過程中,系統每一次拆卸重組都會導致誤差出現,需要細微調整。在設計風力擺自動恢復的功能時,通過PWM脈沖控制的風機風力有限,在角度過大的時候5s內不一定能使風力擺恢復到初始位置。其他數據測試中比較穩定,在規定誤差內有較好的重復性。程序在設計過程中也考慮到了外界因素等問題,通過陀螺儀的反饋數據進行分析,并調節風機使風力擺自動校正誤差,維持系統穩定。
參考文獻
[1]閻石.數字電子技術基礎(第4版)[M].北京:高等教育出版社,1998.
[2]童詩白,徐振英.現代電子學及應用[M].北京:高等教育出版社,1994.
[3]古天祥,王厚軍,習友軍,等.電子測量原理[M].北京:機械工業出版社,2006.
[4]周航慈.單片機應用程序設計技術(修訂本)[M].北京:北京航空航天出版社,2002.
Class No.:TP273Document Mark:A
(責任編輯:宋瑞斌)
The Wind Pendulum System Based on Single Chip Microcomputer
Zhang Haobo, Liu Lanbo
(Dept. of Communication Engineering, Heilongjiang University of Technology, Jixi, Heilongjiang 158100,China)
Abstract:The control core of the wind pendulum control system is STM32F103C8T6 micro-controller.The system includes the MPU6050 gyroscope, TTS audio module, 12864 LCD screen display module and L298N motor driver module and other control modules. The attitude and motion data of the system are mainly composed of MPU6050 gyroscope. First, several representative data are tested, and the PWM pulse is derived from the formula to the arbitrary position. According to the calculated pulse, the speed of the axial fan is controlled so as to realize the control of the wind. In order to facilitate more clearly informed of the data, The system contains 12864 LCD screen display module and TTS audio module. Data can be more accurate display and broadcast.
Key words:MPU6050 gyroscope; PWM; Axial Fan
中圖分類號:TP273
文獻標識碼:A
文章編號:1672-6758(2016)02-0029-4
作者簡介:張皓博,碩士,助教,黑龍江工業學院。