基于ARM9的自由擺平板控制系統(tǒng)的設計及實現(xiàn)
本設計的重點在于通過加速度傳感器MMA7455采集各關節(jié)處角度信息,并根據(jù)得到的角度值及任務要求控制步進電機的運轉(zhuǎn),完成自由擺臂末端平板姿態(tài)的調(diào)整,完成預定任務。通過MMA7455加速度傳感器得到的是三軸加速度信息,而在實際控制過程中所需要的是角度信息,所以要用到三角函數(shù)完成加速度值到角度值的轉(zhuǎn)換,其次實踐證明MMA7455加速度傳感器穩(wěn)定性較差,需要通過滑動平均濾波算法對得到的三軸加速度值進行濾波處理,以達到精確控制的目的。而對于步進電機的精確控制則需要PID控制算法以去除控制過程中的抖動,達到自控系統(tǒng)“穩(wěn)、準、快”的設計要求。綜上所述,本系統(tǒng)中存在大量的數(shù)據(jù)運算及控制算法并且對實時性要求較高,因此選用主頻高達400 MHz的S3C2440作為主控芯片,一方面能保證系統(tǒng)基本功能的實現(xiàn),另一方面有助于系統(tǒng)中各種性能指標的提升。
1 硬件系統(tǒng)設計
本自由擺平板控制板采用S3C2440作為主控芯片,外接Nor Flash AM29LV160DB、Nand Flash K9F1208及兩塊SDRAM HY57V561620構(gòu)成嵌入式最小系統(tǒng)[1-4]。Nor Flash和Nand Flash同時存在的好處在于Nor Flash中存放BootLoader完成系統(tǒng)調(diào)試及NandFlash中程序的燒寫,方便調(diào)試。系統(tǒng)設計了5個功能按鍵分別接到S3C2440 5個外部中斷引腳(EINT8、11、13、14、15),另外接5個LED(GPH9、GPH10、GPF6、GPG1、GPB1)作為各類狀態(tài)的指示信號。通過S3C2440 6個普通I/O口模擬兩路IIC接口(GPF0~GPF5)分別接加速度傳感器1、2。4個I/O(GPE11、12、13、GPG2)口接步進電機驅(qū)動器。如圖1所示。
2 軟件系統(tǒng)設計
本系統(tǒng)軟件設計相對較復雜,既要考慮系統(tǒng)基本功能的實現(xiàn),又要考慮系統(tǒng)易于使用。從軟件功能看,主程序主要完成鍵值處理、LED顯示、調(diào)用相應任務子程序模塊以及各個任務模塊下相應算法的實現(xiàn),系統(tǒng)主流程如圖2所示。
2.1 加速度值到角度值的轉(zhuǎn)換算法
本自由擺平板控制系統(tǒng)安裝了兩個加速度傳感器MMA7455 , 即水平安裝于平板底部的加速度傳感器1 與垂直安裝在轉(zhuǎn)軸處的加速度傳感器2, 兩個加速度傳感器安裝位置不同, 使用目的不同, 因而對角度的轉(zhuǎn)換方法也不同[ 5]。加速度傳感器1 主要用于在靜態(tài)時對平板
姿態(tài)的判定, 因此采用加速度傳感器以Z 軸加速度值就可判斷出平板靜態(tài)時的姿態(tài), 如
圖3 所示。由圖可知Z 軸所得加速度值只是重力沿平板法線方向的一個分量。故此可
得:∠A=∠B=arcos(gz/g)
加速度傳感器2 主要用來動態(tài)測量擺桿擺角, 為克服誤差的引入, 采用X、Y 兩個軸向的加速度值來測量擺角, 測量原理如圖4 所示。
由圖4 可知:θ=artan(gy/gx)。
2.2 步進電機的PID 控制算法實現(xiàn)[6]
對于平板角度的調(diào)整是根據(jù)所采到的角度值和任務要求控制步進電機的轉(zhuǎn)動來實現(xiàn)的。而如果根據(jù)角度偏差e (k) 直接調(diào)整步進電機,則會帶來抖動、超調(diào)等問題, 故此考慮采用PID控制算法對步進電機進行調(diào)整。數(shù)字PID 算法如式(1)所示:
式(4)即為本系統(tǒng)所使用的PID 控制數(shù)學模型。系統(tǒng)進入穩(wěn)態(tài)后, 偏差是很小的。如果偏差在一個很小的范圍內(nèi)波動, 控制器讀到這樣微小的偏差計算后, 將會輸出一個微小的控制量, 此時輸出的控制值在一個很小的范圍內(nèi)不斷改變自己的方向, 頻繁動作, 從而發(fā)生抖動,這樣不利于平板的精確控制, 因此, 當控制過程進入這種狀態(tài)時,就進入系統(tǒng)設定的一個輸出允許帶e0, 即當采集到的偏差|e(k)|
2.3 平板旋轉(zhuǎn)任務的實現(xiàn)
單擺一個擺動周期為2 s,步進電機旋轉(zhuǎn)1°需要4個脈沖,故此任務中只需控制脈沖輸出頻率為720 Hz即可完成單擺擺動一個周期平板尋轉(zhuǎn)一圈的要求。
2.4 硬幣疊放任務實現(xiàn)
如圖6所示,將擺桿拉至一固定角度α(α在45°~60°之間),系統(tǒng)通過平板底部角度傳感器采集平板的傾角,根據(jù)PID算法控制步進電機將平板調(diào)至水平狀態(tài)。將8枚硬幣整齊疊放在平板中心位置,此時Z軸的加速度值等于1 g;放手后平板會略微傾斜,此時Z軸的加速度值小于1 g,因此可根據(jù)Z軸加速度值的大小判斷松手時刻,與此同時通過轉(zhuǎn)軸處的加速度傳感器采集擺桿與垂直方向的夾角(即擺角α),并控制步進電機偏轉(zhuǎn)α角度(即平板與擺桿垂直)。經(jīng)受力分析可知,在平板與擺桿垂直狀態(tài)時,各枚硬幣X和Y方向所受合力均為0(即硬幣處于平衡狀態(tài)),硬幣不會從平板滑落(對應多枚模式)。
2.5 激光筆照射任務實現(xiàn)[7]
假設單擺的初始位置在56.3°(arctan(1/r)=56.3°) 處,此時單擺的擺尖正指向A 點處( 若擺角擺于56.3° 位置處則平板正好修正90°), 此時平板與單擺平行, 若單擺順時針轉(zhuǎn)動角度θ ( 如圖7 所示) , 平板若要指向A 點,則需逆時針轉(zhuǎn)動β 角度,β 和θ 的計算關系如下( 假設單擺與平板平行, 最后減去90°就與題目要求一致):