1、引言
本項目設計的是無線遙控直升機接收控制電路。本設計采用飛思卡爾公司生產的MMA7260QT低量程三軸向加速度傳感器和低功耗的MC9S08QG8 微控制器,并配合極少量的外圍器件。該電路能接收無線遙控發射機的控制指令,使直升機以不同的速度前進、后退、轉彎,在沒有收到動作指令時能使直升機自動保持穩定。由于該電路的體積?。?2×12mm),重量輕,因此可以用于超小型遙控直升機。
2 、設計概述
該系統能通過紅外遙控指揮直升機以不同的速度前進、后退、轉向。該系統主要有兩大部分:第一部分輸入轉換、指令編碼、紅外發射部分;第二部分紅外接收、解碼、飛行狀態檢測、伺服電機控制部分。這兩部分的紅外接收部分不是本次設計的重點,不做詳述。
直升機是由三個小型電機控制的:一個主旋翼電機,控制飛機的上升或下降;一個尾翼電機,控制飛機的方向;一個前進/后退電機,控制飛機前進或后退。本系統利用螺旋槳產生的推力使直升機的重心發生改變,使直升機向前或向后傾斜,來實現直升機的前進或后退。對直升機的準確控制,就是通過對這三個電機速度的準確控制來實現的。
利用MMA7260QT三軸向加速度傳感器將直升機的飛行狀態信息轉換為相應的電壓信號,再利用MC9S08QG8微控制器的10位ADC轉換器將信號轉換為數字信號。MC9S08QG8的程序將這些信號綜合,自動控制直升機上的三個電機,使直升機狀態穩定。
3 、系統設計
3.1 設計思想和技術關鍵
遙控直升機的飛行受飛行環境和設備狀態的影響很大。隨著飛行環境和設備狀態的變化,想要保證穩定的飛行姿態是很難的。有了能自動調節飛行姿態的穩定器之后,操縱遙控直升機就變得非常簡單。該系統是采用飛思卡爾公司的MMA7260QT作為飛行狀態傳感器來實現的,具體實現方法如下:
Z軸是直升機的升降軸,在直升機靜止時讀取MMA7260QT的Z軸數據,作為參考點。飛機上升或下降時讀取的數值相對于參考點的變化量,就是Z軸的加速度az,那么飛機上升或下降的速度Vz就是az對時間的積分。上升為正、下降為負。程序按照適當的比例換算后控制主旋翼電機的轉速,使直升機保持為懸停狀態。當然,這只是對Z軸理想化后的理論計算。
由于當直升機發生傾斜時,Z軸的數據參考點會發生變化。這樣,還以原數據作為參考點得到的gz就不是正確的。為什么直升機傾斜會使靜止參考點發生變化呢?那是由MMA7260QT傳感器的特性決定的:當Z軸垂直于地面,也就是與重力方向平行時,在Z軸上已經加有一個重力加速度。當直升機發生傾斜時,Z軸上的加速度就只是重力的一部分,這樣實際的零加速度參考點已經發生了變化。所以,在求Z軸的加速度時,必須解決這個問題。
在直升機飛行過程中,由于直升機的重心很低,所以認為在X-Z面上是不會有傾斜的。Y-Z面的傾斜是操縱直升機前進或后退造成的,當Y-Z面發生傾斜時,Y軸的靜態參考點也一定發生了變化。當然,在Z軸和Y軸有合成加速度時,也會出現這種結果。無論是哪一種原因造成的,我們都要先去調整Y軸,使Y軸的數據值在靜態參考點上。在傾斜度為零、加速度也為零的狀態時,Z軸靜止沒有變化,這時的條件和理想化的條件是一樣的。所以,這時得到的gz是正確的。我們就在這時讀取gz的值,作為控制Z軸狀態的依據。
在實際飛行狀態中,傾斜產生的重力加速度與Y軸加速度的代數和為零是一個特殊狀態。這時直升機傾斜在Y軸產生的分力所產生的加速度正好與Y軸的實際加速度數值相等,而方向相反,安裝調整時要注意回避這一特殊狀態。
Y軸是直升機的前進/后退軸。因為直升機是在室內飛行,認為環境沒有風的影響。所以只要直升機有加速度存在,直升機就有傾斜。直升機前進或后退的力Fy是直升機的升力F0的方向與重力的反方向的夾角β的正弦函數。有Fy=F0sinβ,而Y軸的加速度ay正比于Fy。由于直升機的速度很低,忽略空氣阻力的作用,則:ay=Fy/M,式中M是直升機的質量。
同時,傾斜角會產生一個重力加速度gY,夾角也是β。它與重力加速度g0有:
gY=-g0sinβ。ay和gY的方向是相反的。測到的加速度a是ay和gY的代數和。這個代數和的方向及大小可以實測得到。
為了減少實測數據的工作量,只測出a的方向和大概數值即可??刂茣r使a逐步向零靠近,最終基本等于零。
由于在直升機轉向時,X軸有加速度,同時Y軸也會有加速度。為了簡化計算,Y軸的加速度也要在X軸的加速度為零時檢測。
當Y軸有操縱指令時,Y軸的自動控制暫時被停止。
X軸是直升機的左右轉向軸,在Z-X面上,直升機不會有傾斜,所以Z軸的加速度不會影響X軸的加速度。在直升機靜止時,若直升機發生方向改變,程序就控制尾翼電機,使方向改變停止,使X軸方向速度為零。當Y軸或X軸有操縱指令時,X軸的自動控制暫時被停止。
另外,直升機在飛行過程中,電機和螺旋槳轉動引起的振動也使傳感器產生失真數據。所以,需要排除自動干擾后的數據才能使用。那么,怎樣排除這些振動的干擾呢?該方案采用了兩種措施:一是將信號限制范圍,超過范圍的信號被排除。二是用累加平均法:用遠高于振動頻率的采樣率讀取數據,再以遠大于振動周期的時間段將數據平均。這樣得到的數據,可以排除大部分的振動干擾。
3.2 系統的功能和工作過程
直升機接通電源后,處于接收遙控信號狀態。
發射機必需先按下啟動按鈕,直升機方可啟動。在啟動之前,所有其它操作都是無效的。
收到并確認遙控信號的啟動信號時,同時啟動三個電機。電機的啟動速度很慢,保證直升機不會動。當電機的速度增加到使直升機有微小上升時,控制電路記憶保持直升機不動時電機的最大速度。這時啟動過程結束,直升機的移動可隨意遙控。
遙控器左手的縱向控制直升機的升降,右手的縱向控制進退,右手的橫向控制方向。長時間無正確的遙控信號時,程序會自動使直升機停下來。
電池電壓不足時,LED會亮1秒,暗1秒來指示。在電池低到一定程度時,會自動進入停止操作,并同時輸出電池電壓不足LED指示。
4、 系統框圖
系統框圖如圖1所示。
4.2 飛行姿態傳感器電路
該部分電路由MMA7260QT、R1、R2、R3、C1、C2、C3、C5組成。
MMA7260QT是一個三軸小量程加速度傳感器模塊。它的靈敏度可通過g-Select1和g-Select2來選擇。最高靈敏度可達800mV/g。工作電壓低、可工作電壓范圍寬(2.2~3.6V),功耗小(0.5mA,在睡眠狀態只有3μA)。非常適合電池供電的應用。另外,小尺寸封裝,使其重量也很輕。g-Select1和g-Select2分別接到PTA2和PTA3上??梢愿鶕枰x擇靈敏度。
XYZ軸的輸出經過電阻R1、R2、R3和電容C1、C2、C3濾波后分別接到了MCU的ADC輸入。 因為在這項應用中MMA7260QT 保持在工作狀態,所以Sleep Mode腳接到了VDD。C5是為了減小電源波動對傳感器的影響加的去耦電容。
XYZ軸輸出電路
XYZ軸輸出電路由電機Mz、Mx、My、MOSFET管T1、T2、T3、二極管D1、D2、D3和電阻R6、R7、8組成。XYZ軸電機控制信號分別通過普通的B口輸出腳PTB5、PTB4、PTB6輸出。這里PTB5、PTB4、TB6已經通過軟件將其做成PWM輸出口。它們輸出的是電壓PWM信號,通過PWM信號控制電機的轉速。
這個PWM信號通過電阻R6(R7、R8)送到MOSFET管的控制極,控制MOSFET管的通/斷,帶動電機工作。因為MOSFET是電壓控制器件,是不需要限流電阻的。這里的R6、R7、R8是為減小電機的脈沖干擾信號通過T1、T2、T3耦合對MCU的影響而設。
D1、D2、D3是在T1、T2、T3關斷時為電機提供電流通路。
Mz是主旋翼電機,帶動直升機的主旋翼,控制著直升機的升/降。
Mx是尾翼電機,帶動直升機的尾翼螺旋槳,控制著直升機的方向。
My是進/退電機,控制著直升機的前進/后退。
5 、系統軟件
5.1 軟件流程
軟件流程如圖3所示。
5.2 軟件描述
飛行姿態信號和電池電壓AD轉換程序
實現飛行姿態信號測量的方法是:首先用準確的時間間隔來測飛行姿態信號;將測得的數據進行比較,大于最大限制值時放棄;對于在規定范圍內的數據求代數和,同時記錄求和的次數;經過一段規定的時間后,將求得的代數和除以求和的次數,就得到了在這段規定時間的平均值。用計時器設一個定期的時間中斷就可實現測量時間的準確間隔。
實現飛行姿態信號測量的程序簡略如下:
在初始化程序中:設置ADC在CH4上,ADC關中斷連續轉換。在CH4上是X軸數據設置,MTIM計時模塊T_n時間中斷一次。
5.3 電池電壓監控程序
當檢測到電壓低到某一值時,程序會通過LED顯示,向操縱人員報警。如沒有及時控制直升機停止飛行,電壓會繼續降低。當電壓低到不能允許再低的時候,程序將強制直升機停止飛行。這個“強制停止”不是立刻將電機停止,那樣會使直升機墜落,而是平衡地減小PWM輸出,使直升機緩慢的降落。
責任編輯:gt
-
微控制器
+關注
關注
48文章
7489瀏覽量
151048 -
傳感器
+關注
關注
2548文章
50678瀏覽量
752004 -
無線
+關注
關注
31文章
5430瀏覽量
173083
發布評論請先 登錄
相關推薦
評論