




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于自由擺的平板控制系統 摘要本報告研究了基于自由擺的平板控制系統,分析了測控系統的結構與特點,結合現代控制技術、角度傳感器的應用技術以及電機控制技術并采用自動控制系統的調試技術、查表法設計技術、數字濾波設計等完成本系統的設計。系統采用STC89C52單片機最小系統作為控制核心,利用SCA61T高精度角度傳感器采集角度數據,然后根據角度數據控制采用驅動芯片TB6560AHQ和L297+L298N驅動42BYGH4604步進電機。在自由擺裝置的頂部安裝角度傳感器,實時檢測擺動角度并且采用均值數字濾波,使結果更加精確,在平板上加上MMA7455加速度傳感器,進行松手檢測,顯示裝置采用1602液晶。
2、關鍵字 SCA61T角度傳感器 單片機 自由擺 14 / 15文檔可自由編輯打印一、方案論證 1.1系統總體方案對題目進行分析,系統包含以下幾個部分:主控制電路、角度傳感器電路、電機驅動電路、液晶顯示部分和擺桿裝置。系統框圖如圖1-1所示。 圖1-1系統框圖1.2系統方案選擇與比較(1)主控制部分 方案一:使用ARM CORTEX-M3內核處理器控制,雖然功能強大,處理速度快,但是價格昂貴,性價比不高。 方案二:使用FPGA控制系統,同樣處理速度快,通過編程設計,可以很容易的實現控制和顯示,但是價格較貴。 方案三:采用單片機STC89C52控制,能夠達到題目要求,并且控制方法簡單,能夠完成題目
3、要求,價格低廉,故我們選用方案三。 (2)電機部分 方案一:采用直流電機控制,控制方便,價格便宜。但不容易控制角度,不符合設計要求。 方案二:采用步進電機控制,雖然控制難度加大,但是控制起來方便,且容易實現控制角度,故選擇方案二。(3)步進電機驅動部分 方案一:采用L297+L298N作為步進電機驅動,以它作為驅動步進電機抖動小,但是它使步進電機的最小步進度數不夠。 方案二:采用TB6560AHQ,它的特點是能夠細分步進度數,所以能夠達到很小的電機步進度數,但是步進度數小,抖動也大。 方案三:采用L297+L298N與TB6560AHQ結合的方式,在要求低抖動的裝置中采用LM297+L298N
4、驅動方式,在要求小步進度數的裝置中采用TB6560AHQ進行電機驅動。(4)角度傳感器部分方案一:采用 MMA7260 加速度傳感器,利用加速度轉換為傾角,從而測出角度值,但是精確度不高,穩定性不好。方案二:采用 AME-B001角度傳感器,0360測量范圍,但是安裝非常不方便,而且輸出信號為模擬信號,采集需要外加A/D轉換。方案三:使用SCA61T-FA1H1G角度傳感器,測量范圍9090,精確度0.07,且外圍電路簡單,滿足題目要求,故我們選用方案三。二、理論分析與計算2.1 數學分析與控制 為了確定步進電機的轉動角度,我們建立了自由擺的數學模型如圖2-1所示。BOA2A1A2A11,AO
5、圖2-1(1)當=時如上圖2-1所示,初始狀態平板保持與擺桿垂直,擺桿角度為,設平板與水平線的夾角為,則平板應轉動角,使激光筆打在B點。, 即在第一步電機轉動的角度 (1)問題的關鍵在于的計算(2) 當=時同理可得,2 (2)實現過程中,我們采用查表方式,計算擺角從60到-60以1為間隔計算的值,則為相鄰兩次值之差,故存在一個關于的序列。設為,n=1,2,3,因為平板轉動1的脈沖數是已知的,42BYGH4604步進電機在沒有細分的時候,脈沖200下,轉動360,所以每轉動一度1的脈沖數是已知的,則可求轉動所需的脈沖數。所以,又單擺的周期T可以通過計算得知,且初始已知。即在T/4內電機轉動的總脈
6、沖數是已知的,則電機的轉速可以通過脈沖的密度計算。如果n取得越大,那么結果越精確。在T/4內平板所在位置的線速度并不是一定的,在最高點速度達到最大,在最低點速度為0,所以在轉過相同的角度內,所運行的時間長短也不相同,因為在由最高點到最低點的過程中線速度是逐漸加大的,轉過相同角度的時間是逐漸減少的,所以,假設n取得很大,那么在每一個很小的區間里面近似可以看成勻速運動,那么在這個勻速區間內,我們取脈沖數是可以改變疏密程度的。在離最高點越近的地方,脈沖數應該越大,在快達到最低點時,脈沖數應該接近于0。 三、硬件設計3.1主控制部分電路如圖3-1所示,控制部分采用STC89C52為核心的最小系統方框圖
7、,具體電路見附錄。通過獨立按鍵,控制單片機執行操作命令,同時1602顯示數據,LED指示燈指示狀態。圖3-13.2 電機驅動電路3.2.1 基本部分電機驅動電路 基本部分電機驅動如下圖3-2-1所示,具體電路見附錄,采用L297+L298N作為電機驅動,這樣能夠很穩定的使步進電機轉動,從而不易使木板上的硬幣掉落。圖3-2-13.2.2 發揮部分電機驅動電路發揮部分電機驅動方框圖如圖3-2-2所示,具體電路見附錄,單片機數據通過光電耦合到步進驅動芯片TB6560AHQ,驅動步進電機轉動,TB6560AHQ有細分功能,能夠將步進電機轉角進一步細分,本設計采用1/16細分,42BYGH4604步進電
8、機的最小轉動度數為1.8,如果細分1/16,最小度數約為0.11,所以完全能夠滿足發揮部分的調整度數。 圖3-2-23.3 角度傳感器電路 SCA61T角度傳感器電路如下圖3-3所示,通過SPI數字接口通往單片機,SCA61T的測量角度為9090,數字接口分辨率為11位,精度很高。 圖3-33.4 自動啟動電機電路 采用7455加速度傳感器,當擺桿拉到一定角度時,只要一松手就能馬上檢測到加速度的變化,從而判斷松手,自動啟動電機轉動。其電路圖如下圖3-4所示。圖3-4四、軟件設計4.1 軟件流程圖 圖4-1基本部分函數流程圖 圖4-2 發揮部分函數流程圖4.2 軟件濾波發揮部分對于數據的處理非常
9、重要,這個對于步進電機轉動的角度有很大影響,為了讓數據穩定,我們采用加權求平均的辦法進行濾波。在發揮部分第一步,由于時間充足,我們采用1000次采樣,然后求加權平均值,所得到的數據非常穩定,這樣彌補了單片機RAM,又使結果更準確。具體函數見附錄。發揮部分第二步,速度非常快,屬于實時采樣,為了確保反應速度,我們采用16次加權平均值。五、測試方案及結果分析1控制電機使平板可以隨著擺桿的擺動而旋轉(35周),擺桿擺一個周期,平板旋轉一周(360)。表4-1平板旋轉角度與擺桿擺動周期之間的偏差記錄次數擺動周期數擺桿初始角度(度)平板初始角度(度)平板結束角度(度)偏差(度)13450112445022
10、3445011以電機軸到桿軸的方向為零度線,逆時針方向為正角度,順時針方向為負角度。2. 在平板上粘貼一張畫有一組間距為1cm平行線的打印紙。用手推動擺桿至一個角度(在 3045間),調整平板角度,在平板中心穩定放置一枚 1 元硬幣(人民幣),啟動后放開擺桿讓其自由擺動。表4-2板上放置一枚硬幣的擺動情況記錄次數擺桿啟動角度(度)是否擺動5個周期(硬幣不掉)滑離中心距離(CM)130是0.2240是0.3345是0.53. 用手推動擺桿至一個角度(在 4560間),調整平板角度,在平板中心穩定疊放 8 枚 1 元硬幣,啟動后放開擺桿讓其自由擺動。表4-3板上放置八枚硬幣擺動情況記錄次數擺桿啟動
11、角度(度)5個周期后板上留下的硬幣數保持疊放狀態的硬筆數1458825087360844. 在平板上固定一激光筆,光斑照射在距擺桿150cm距離處垂直放置的靶子上。擺桿垂直靜止且平板處于水平時,調節靶子高度,使光斑照射在靶紙的某一條線上,標識此線為中心線。用手推動擺桿至一個角度(在 3060間)。表4-4激光筆固定位置打靶準確情況記錄次數擺桿角度(度)調整時間(秒)(或是否超過15秒)距中心線的偏差(CM)1405-0.82455+0.23505+0.75. 在測試4的基礎上,放開讓擺桿自由擺動。表4-5激光筆移動打靶準確情況記錄次數擺桿啟動角度(度)靶上光斑距中心線的最大偏差(cm)130+
12、6245-7360-8結果分析:表4-1中的參數表明,完全滿足題目要求;表4-2同樣也滿足題目要求;表4-3中的數據表明,在角度小的時候系統的穩定度高,當角度大的時候掉落的硬幣增加,原因可能是電機反映速度達不到,和一些相應的機械誤差; 表4-4測試結果表明誤差很小,達到題目要求;表4-5通過多次實驗,并且多次修正軟件參數,最終達到理想的效果,實現系統設計。六、結論 本系統采用性價比高的STC89C52單片機,結合高精度角度傳感器SCA61T,采用加權平均法對信號濾波,1602液晶實時顯示,使用驅動芯片TB6560AHQ和L297+L298N驅動42BYGH4604步進電機。測試結果表明,系統功
13、能基本完成,達到題目要求。七、附錄7.1 電源電路7.2 單片機最小系統電路7.3 TB6560電機驅動電路7.4 L297+L298N電機驅動電路7.5 函數部分void SCA_delayus(int time) while(time-);void setnormal()unsigned char signal=0x00;char i;SCK_L;CS_L; for(i=0;ii)MO_H;else MO_L;SCK_H;SCA_delayus(1);SCK_L;SCA_delayus(1); for(i=0;i11;i+) SCK_H; /ret=1;/if(MI)ret|=0x01;/
14、else ret|=0x00;SCK_L; SCA_delayus(1); CS_H;unsigned int read()unsigned char signal=0x10;unsigned int ret=0;char i;SCK_L;CS_L; for(i=0;ii)MO_H;else MO_L;SCK_H;SCA_delayus(1);SCK_L;SCA_delayus(1); for(i=0;i11;i+) SCK_H; ret=1;if(MI)ret|=0x01;else ret|=0x00;SCK_L; SCA_delayus(1); CS_H;return ret;float
15、SCA_GET() int a;float b; a=read(); a=a-1024; b=a/819.0; /注:sensitivity(SCA61T-FAHH1G: 1638, SCA61T-FA1H1G: 819) b=asin(b); b=b*180.0/3.14159; b=b-err; /校正 return b;float filt500()int temp1=0,temp2=0,temp3=0,i;float b; temp1=read();for(i=0;i=100;i+) SCA_delayus(150);temp2=read(); /temp0=temp0*0.8+tem
16、p1*0.2; /temp3=temp1-temp2;temp1=temp2+0.9*(temp1-temp2); temp1=temp1-1024; b=temp1/819.0; /注:sensitivity(SCA61T-FAHH1G: 1638, SCA61T-FA1H1G: 819) b=asin(b); b=b*180.0/3.14159; /b=b-err; /校正 return b; float filt() /濾波函數int temp1=0,temp2=0,temp3=0,i;float b; temp1=read();for(i=0;i=1000;i+) SCA_delayu
17、s(200);temp2=read(); /temp0=temp0*0.8+temp1*0.2; /temp3=temp1-temp2;temp1=temp2+0.9*(temp1-temp2); temp1=temp1-1024; b=temp1/819.0; /注:sensitivity(SCA61T-FAHH1G: 1638, SCA61T-FA1H1G: 819) b=asin(b); b=b*180.0/3.14159; b=b-err; /校正 return b; float calc(float x)float a,b,c;a=x*PI/180.0;b=1.5-sin(a);c=
18、1-cos(a);c=atan(c/b);c=c*180.0/PI;c=c+x;if(c=0)c=-c; return c;float fudu(float fudu)float a,b,c;a=1.5-sin(fudu);b=1-cos(fudu);c=atan(b/a);c=c*180.0/PI;return c;void main() float x,f1; bit dir; int num1=0;float step=0; uart_init(); ZH_1602_init(); init7455(); write(0x18,0x80); /配置速度 delay(60000); while(1) /a=getYa(); if(key1=0)turn298(0,100,1); if(key4=0)turn298(1,100,1); if(key3=0)break; x=filt500(); ZH_1602_com(0,0x80); ZH_1602_float(x); x=calc(x); ZH_1602_com(0,0x88); ZH_1602_float(x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論