張皓博,劉蘭波
(黑龍江工業(yè)學(xué)院 電信系,黑龍江 雞西 158100)
基于單片機設(shè)計的風(fēng)力擺系統(tǒng)
張皓博,劉蘭波
(黑龍江工業(yè)學(xué)院 電信系,黑龍江 雞西158100)
摘要:系統(tǒng)是以STM32F103C8T6單片機為主要控制核心的風(fēng)力擺控制系統(tǒng),該系統(tǒng)包括了MPU6050陀螺儀,TTS音頻模塊,12864液晶屏顯示模塊以及L298N電機驅(qū)動模塊等控制模塊。系統(tǒng)主要由MPU6050陀螺儀采得姿態(tài)和運動數(shù)據(jù),先測試出幾組具有代表性的數(shù)據(jù),從而利用公式推導(dǎo)出風(fēng)力擺擺動到任意位置時對應(yīng)的pwm脈沖,根據(jù)計算出的脈沖,進而控制軸流風(fēng)機的轉(zhuǎn)速,以此來控制推動風(fēng)力擺的動力大小,實現(xiàn)對風(fēng)力擺的控制。為了在系統(tǒng)控制過程中能更清楚地獲知數(shù)據(jù),系統(tǒng)中有12864液晶屏顯示模塊以及TTS音頻模塊,對數(shù)據(jù)進行顯示并且用語音播報出來。
關(guān)鍵詞:MPU6050陀螺儀;PWM;軸流風(fēng)機
0設(shè)計要求
0.1基本要求。
a.從靜止開始,15s內(nèi)控制風(fēng)力擺做類似自由擺運動,使激光筆穩(wěn)定地在地面畫出一條長度不短于50cm的直線段,其線性度偏差不大于±2.5cm,并且具有較好的重復(fù)性;
b.從靜止開始,15s內(nèi)完成幅度可控的擺動,畫出長度在30~60cm間可設(shè)置,長度偏差不大于±2.5cm的直線段,并且具有較好的重復(fù)性;
c.可設(shè)定擺動方向,風(fēng)力擺從靜止開始,15s 內(nèi)按照設(shè)置的方向(角度)擺動,畫出不短于20cm的直線段;
d.將風(fēng)力擺拉起一定角度(30°~45°)放開,5s內(nèi)使風(fēng)力擺制動達到靜止狀態(tài)。
0.2擴展要求。
a.以風(fēng)力擺靜止時激光筆的光點為圓心,驅(qū)動風(fēng)力擺用激光筆在地面畫圓,30s 內(nèi)需重復(fù) 3 次;圓半徑可在15~35cm范圍內(nèi)設(shè)置,激光筆畫出的軌跡應(yīng)落在指定半徑±2.5cm的圓環(huán)內(nèi);
b.繼續(xù)作圓周運動,在距離風(fēng)力擺1~2m距離內(nèi)用一臺50~60W臺扇在水平方向吹向風(fēng)力擺,臺扇吹5s后停止,風(fēng)力擺能夠在5s內(nèi)恢復(fù)規(guī)定的圓周運動。
1方案選擇和論證
1.1方案比較與選擇。
根據(jù)設(shè)計要求,由軸流風(fēng)機提供唯一動力,使風(fēng)力擺進行擺動,構(gòu)成風(fēng)力擺控制系統(tǒng),另使風(fēng)力擺按要求進行擺動,并且讓激光筆的光點在地上按要求畫出軌跡。要完成上述任務(wù),制定出以下方案:
方案一:采用STC89C51單片機作為主控芯片,選用12V、0.15A的軸流風(fēng)機作為動力源,帶動風(fēng)力擺運動。用proteus畫出主控電路圖并仿真,用keil調(diào)試程序,易于調(diào)試與修改。但由于該程序代碼量較大,并且上述單片機沒有自帶PWM脈沖發(fā)生器,不便于控制軸流風(fēng)機的轉(zhuǎn)速,也就很難控制風(fēng)力擺的走向,又因為STC89C51速度較慢,并且實驗室備用的都是采用DIP封裝模式,占電路很大空間,故放棄了STC89C51單片機。
方案二:采用STM32F103C8T6作為主控芯片,該單片機體型小,功能強,并且?guī)в蠵WM脈沖發(fā)生器,可以方便地控制軸流風(fēng)機轉(zhuǎn)速。動力源采用12V、4.5A的大功率軸流風(fēng)機作為風(fēng)力擺的動力系統(tǒng)。在風(fēng)力擺運動過程中,采用MPU6050陀螺儀芯片來檢測并獲得風(fēng)力擺的角度等數(shù)據(jù),并發(fā)回CPU中進行比較,計算,調(diào)整。但由于該方案采用大功率的軸流風(fēng)機,對電源要求比較苛刻,要用12V輸出大電流穩(wěn)定的電壓,來驅(qū)動4個大功率軸流風(fēng)機運轉(zhuǎn),控制方面該軸流風(fēng)機自帶控制線,但軸流風(fēng)機電源與單片機的電源規(guī)格相差比較大,不能直接用單片機控制,所以軸流風(fēng)機與單片機采用單獨供電,并用光耦模塊來隔離兩個系統(tǒng),保障系統(tǒng)穩(wěn)定運行。
方案三:采用STM32F103C8T6作為主控芯片,選用12V、0.7A的軸流風(fēng)機作為動力源,帶動風(fēng)力擺運動,用L298N驅(qū)動模塊驅(qū)動風(fēng)機,增加12864液晶屏來顯示系統(tǒng)運行狀態(tài)和操作界面。并用語音模塊提示系統(tǒng)是否完成規(guī)定動作并播放數(shù)據(jù)報告。雖然風(fēng)機的風(fēng)力不是很大,但是風(fēng)機體積小,重力較小,利用風(fēng)機的重力加速度和慣性使之來回擺動的方式使風(fēng)力擺擺動的角度最大化,擴大擺動的角度范圍。
在測試過程中我們發(fā)現(xiàn)12V、4.5A軸流風(fēng)機雖風(fēng)力較大,但是由于功率較大,重量比較大,在選用3至4個電機組裝到一起時,重量出乎意料的大,單憑電機提供的動力很難帶動風(fēng)力擺運動,而且該軸流風(fēng)機啟動和制動的延時較大,無法在短時間內(nèi)達到想要的速度和立即停止轉(zhuǎn)動的要求,給風(fēng)力擺的控制帶來難度。而小功率的軸流風(fēng)機雖然風(fēng)力小,但是體積小重量輕,易于控制。所以經(jīng)過各個方案的比較,在快速完成控制系統(tǒng)的前提下,確定了方案三,并采用mpu6050陀螺儀采集并反饋數(shù)據(jù)。
1.2 系統(tǒng)總體方案描述。
圖1 單片機控制的框圖
如圖1所示,本系統(tǒng)風(fēng)力擺部分由4只軸流風(fēng)機作為唯一動力,通過陀螺儀采集風(fēng)力擺的姿態(tài)及運動信息傳送到單片機,單片機對采集到的數(shù)據(jù)進行分析計算,實時計算出四個軸流風(fēng)機對應(yīng)的PWM輸出,來控制軸流風(fēng)機的轉(zhuǎn)速,從而控制風(fēng)力擺給各個方向的力,使其能在各個方向運動。我們還在主控系統(tǒng)上添加了按鍵和液晶屏,能通過按鍵和液晶屏的顯示來控制系統(tǒng)的運行模式及設(shè)定參數(shù)。
2理論分析與計算
2.1按指定長度畫直線方案。
pwm=( PWM_30-PWM_15)/15*(x-15)+PWM_15
pwm:各個點的PWM值;
PWM_30,PWM_15:以激光筆自然下垂時照射到地面的光點位置為基準(下稱基準點),改變風(fēng)力擺角度,使激光筆的光點保持在距離基準點分別為30cm和15cm擺動時的PWM值;
x:需要激光筆光點離基準點的距離,最小刻度以及單位為厘米;
根據(jù)上文的公式,激光筆光點距基準點為15cm和30cm時各個軸流風(fēng)機的PWM值,再把這兩個PWM值的差的絕對值平均分成15份,就能得到每偏離基準點1cm時PWM的值,后面的x可以根據(jù)我們需要激光筆的光點遠離基準點的距離而代入數(shù)值,從而計算出要達到要求時每個流風(fēng)機的PWM值,單片機計算好了就輸出相對應(yīng)的PWM值,從而控制流風(fēng)機的轉(zhuǎn)速,進而由軸流風(fēng)機轉(zhuǎn)速得到的力來控制風(fēng)力擺的軌跡,當達到要求的軌跡后,一定的PWM值還能讓風(fēng)力擺受力平衡,使激光筆畫線段時能有較好的重復(fù)性。
2.2按指定角度的畫直線設(shè)計方案。
根據(jù)上示的公式通過控制指定的軸流風(fēng)機轉(zhuǎn)動即可畫出沿X軸或Y軸的直線,如果在控制沿X軸運動的時候同時也讓其沿Y軸運動,合運動則是成一定角度的直線運動。
根據(jù)實際測試得出,角度的大小由X軸和Y軸的pwm脈沖比決定,我們事先將各個角度對應(yīng)的x,y軸的pwm脈沖值通過實驗測得并寫成二維數(shù)組。單片機通過查表法直接獲取該值。
2.3五內(nèi)停止方案。
通過陀螺儀采集到風(fēng)力擺的姿態(tài)并得到風(fēng)力擺的運動方向,然后控制軸流風(fēng)機吹向相反方向,使之產(chǎn)生阻力,使風(fēng)力擺達到靜止的目的。由于我們選擇的軸流風(fēng)機的風(fēng)力太小了,所以停止的效果不是很理想,但基本可以滿足要求。
2.4畫指定半徑的圓。
首先先判斷風(fēng)力擺的運動情況,保持風(fēng)力擺能在x軸和y軸運動角度逐漸增大的同時,使風(fēng)力擺受到的合力方向總是沿著順時針方向,這樣就能保證風(fēng)力擺在做半徑不斷增大的畫圓運動。在沒達到指定半徑的時候處于加速階段,可以通過判斷風(fēng)力擺在豎直方向的夾角來確定是否達到半徑,然后重新設(shè)定pwm值來保持半徑不變的圓周運動。
3電路與程序設(shè)計
圖2 陀螺儀模塊原理圖
3.1 陀螺儀模塊。
該陀螺儀模塊采用高精度的陀螺加速器MPU6050,通過處理器讀取MPU6050測量的數(shù)據(jù)通過串口輸出,該模塊包含數(shù)字濾波技術(shù),有效降低干擾,提高測量精度。該芯片整合3軸陀螺儀、3軸加速器和六軸運動處理組件。MPU6000的角速度全格感測范圍為±250、±500、±1000與±2000°/sec(dps),可準確追蹤快速與慢動作,該芯片傳輸可透過最高至4000kHz的I2C或最高達20MHz的SPI。該芯片可在不同電壓下工作,VDD供電電壓介為2.5V±5%或3.3V±5%。邏輯接口VVDIO供電為1.8V±5%。該芯片運動處理數(shù)據(jù)庫支持Android、Linux與Windows平臺。陀螺儀角度計算方式:
angle_n = angle_n - 1 + (Gyro - C_Gyro) * R_Gyro
其中,angle_n為當前角度值,單位為度,Gyro為陀螺儀敏感軸偏轉(zhuǎn)值,C_Gyro為陀螺儀的零點偏移值,R_Gyro是陀螺儀比例。加速儀角度計算公式:
Angle_Z = (az - C_Z) * R_Z
其中angle_z為加速劑敏感軸Z軸產(chǎn)生的傾-角,單位為度,az是加速儀Z軸讀數(shù),C_Z為Z軸零點偏移量,測量方法和陀螺儀的一樣,RZ為Z軸比例。
該芯片主要用做運動感測游戲,現(xiàn)實增強,光學(xué)穩(wěn)像,姿勢快捷方式等領(lǐng)域。多安裝在智能手機、平板設(shè)備、手持型游戲產(chǎn)品、游戲機、3D遙控器和可攜式導(dǎo)航設(shè)備上。
3.2 TTS語音模塊。
TTS語音模塊主要用來播報系統(tǒng)當前的運行狀態(tài),是否正常運行、達到題目要求。語音模塊采用的是8S003FP6芯片。芯片有靈活的時鐘控制,有4個主時鐘源,可以滿足絕大多數(shù)用戶配置要求。8S003FP6可以通過UART方式與單片機通信。并且還內(nèi)置模數(shù)轉(zhuǎn)換器,可以節(jié)約主控板空間,快速處理信號,并且通過串口快速傳給單片機,提高系統(tǒng)的效率。
3.3 L298N電機驅(qū)動模塊。
L298N是一種高電壓、大電流的電機驅(qū)動芯片。其特點是工作電壓高,最高可在46V電壓下工作;輸出電流大,瞬間峰值可達3A,持續(xù)穩(wěn)定工作電流也可達2A;額定功率可達25W。該模塊可用來驅(qū)動步進電機,直流電機,繼電器線圈等感性負載。一個芯片可同時驅(qū)動兩個直流電機,并且在工作時有信號提示,可調(diào)轉(zhuǎn)速。
3.4 12864液晶顯示模塊。
為了方便測試并直觀地展示系統(tǒng)的運行狀態(tài),我們給控制系統(tǒng)部分添加了一塊12864液晶顯示屏來展示系統(tǒng)實時的工作狀態(tài)。下圖為單片機控制12864液晶屏的原理圖:
圖3 12864原理圖
2864液晶顯示模塊是128*64點陣的漢字圖形液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8000多個漢字、128個字符。有兩種界面來連接單片機:8位并行及穿行兩種連接方式。液晶屏與數(shù)碼管相比顯示內(nèi)容豐富,可顯示字、數(shù)、以及圖形,數(shù)碼管是自發(fā)光,而液晶是靠背光,發(fā)光恒定,不會閃爍,相比數(shù)碼管功率消耗較小。
4測試方案與測試數(shù)據(jù)
4.1測試儀器與測試方法。
風(fēng)力擺控制系統(tǒng)是由支架、控制系統(tǒng)和風(fēng)力擺組成,在系統(tǒng)的初步測試中,用木板臨時搭建了一個比較穩(wěn)定的支架,用來對系統(tǒng)的初步測試,在硬件完成之后,組裝好系統(tǒng)并開始測試,首先測試陀螺儀精度,通過程序進行數(shù)據(jù)擦除更新進行細微的調(diào)整,確定陀螺儀“零點”,從而保證能穩(wěn)定的、準確的拿到數(shù)據(jù),并在單片機中進行處理,在完成規(guī)定時間內(nèi)達到指定的角度之后,保證風(fēng)力擺能穩(wěn)定地在地上畫出所預(yù)期的線段,并且不超過誤差允許范圍有較好的重復(fù)性。第二個測試方案是使風(fēng)力擺離開中心垂直線一定角度后,在5S內(nèi)使風(fēng)力擺停在初始位置,通過風(fēng)力擺來回擺動的位置調(diào)節(jié)風(fēng)扇給擺動方向相反的力,幫助風(fēng)力擺在短時間內(nèi)回復(fù)初始位置。在測試過程中,如果擺動方向與風(fēng)機有一定夾角的時候,就會導(dǎo)致風(fēng)機給的推力與運動方向不在一條直線,風(fēng)力擺不能在短時間內(nèi)停下來,只能通過不斷的調(diào)試來慢慢找到兩個力的平衡位置。
4.2指標測試。
由靜止開始,15S內(nèi)控制風(fēng)力擺運動,使激光筆在地上畫出一條不短于50cm的直線,測試6次,測試數(shù)據(jù)和測試結(jié)果見表1。
從靜止開始,15s內(nèi)完成幅度可控的擺動,畫出長度在30~60cm之間可設(shè)置的直線段,表2為測試過程中各項數(shù)據(jù),線長以厘米為單位,每項數(shù)據(jù)都經(jīng)過5次測試統(tǒng)計后整理。
表1
表2
設(shè)定擺動方向,風(fēng)力擺從靜止開始,15s內(nèi)按照設(shè)置方向擺動,畫出不短于20cm的直線時線性度偏差,測試數(shù)據(jù)如表3所示。
表3
將風(fēng)力擺拉起一定角度(30°~45°),放開5s內(nèi)使其回復(fù)初始狀態(tài),測試數(shù)據(jù)見表4。
表4
5測試結(jié)果分析
風(fēng)力擺控制系統(tǒng)完成后,由于軸流風(fēng)機的風(fēng)力較小,所以外界各種因素都對系統(tǒng)有或多或少的影響。比如說連接線的硬度,外界風(fēng)力的干擾等因素。任何微小的因素都會導(dǎo)致風(fēng)力擺誤差超過規(guī)定范圍。在測試誤差的過程中,由于儀器限制,只能粗略測量,比如風(fēng)力擺的線性偏差,在測試過程中,系統(tǒng)每一次拆卸重組都會導(dǎo)致誤差出現(xiàn),需要細微調(diào)整。在設(shè)計風(fēng)力擺自動恢復(fù)的功能時,通過PWM脈沖控制的風(fēng)機風(fēng)力有限,在角度過大的時候5s內(nèi)不一定能使風(fēng)力擺恢復(fù)到初始位置。其他數(shù)據(jù)測試中比較穩(wěn)定,在規(guī)定誤差內(nèi)有較好的重復(fù)性。程序在設(shè)計過程中也考慮到了外界因素等問題,通過陀螺儀的反饋數(shù)據(jù)進行分析,并調(diào)節(jié)風(fēng)機使風(fēng)力擺自動校正誤差,維持系統(tǒng)穩(wěn)定。
參考文獻
[1]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第4版)[M].北京:高等教育出版社,1998.
[2]童詩白,徐振英.現(xiàn)代電子學(xué)及應(yīng)用[M].北京:高等教育出版社,1994.
[3]古天祥,王厚軍,習(xí)友軍,等.電子測量原理[M].北京:機械工業(yè)出版社,2006.
[4]周航慈.單片機應(yīng)用程序設(shè)計技術(shù)(修訂本)[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
作者簡介:張皓博,碩士,助教,黑龍江工業(yè)學(xué)院。