freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于ucos-ii系統(tǒng)的四旋翼飛行器的設(shè)計(jì)畢業(yè)論文-資料下載頁(yè)

2025-06-27 19:31本頁(yè)面
  

【正文】 令給CPU,結(jié)果功能是實(shí)現(xiàn)了,但是上位機(jī)只能對(duì)CPU操作一次,第二次操作就沒(méi)效果了,如下圖所示:圖67 上位機(jī)第一次讀取飛行器PID的值圖68 上位機(jī)第二次讀取飛行器的PID的值解決的辦法:經(jīng)過(guò)反復(fù)的試驗(yàn),在串口中只要用一個(gè)數(shù)組將讀取進(jìn)來(lái)的數(shù)據(jù)進(jìn)行緩存,CPU用一個(gè)帶幀頭碼的小數(shù)組循環(huán)掃描串口接收緩存數(shù)組,當(dāng)幀頭碼和讀取進(jìn)來(lái)的數(shù)據(jù)一致時(shí),CPU馬上讀取幀頭碼后面的數(shù)值。這種方法提高的CPU的處理速度,同時(shí)也縮減了串口中斷的代碼。如下圖所示,當(dāng)帶幀頭碼的小數(shù)組1001掃描到串口接收緩存數(shù)組1001時(shí),串口馬上讀取串口接收緩存數(shù)組1001后面的值。圖69 串口接收上位機(jī)數(shù)據(jù)的原理 總體測(cè)試結(jié)果(1) 調(diào)試MPU6000的姿態(tài)的實(shí)時(shí)監(jiān)控。1) 如圖67和68所示,通過(guò)SPI直接獲取MPU6000的值,直接通過(guò)串口通信傳輸給上位機(jī):圖67 超級(jí)終端打印MPU6000相關(guān)寄存器的值圖68 超級(jí)終端打印MPU6000加速度和角加速度的值2) 將電臺(tái)的其中一個(gè)接到上位機(jī)上,一個(gè)接到飛行器的主控板上,如圖所示:圖68 電臺(tái)與飛控板的連接圖69電臺(tái)與上位機(jī)的連接連接好之后,打開(kāi)如圖610的界面,將波特率設(shè)置成57600,打開(kāi)串口通信,按圖611所示,將四旋翼機(jī)傾斜30176。PC機(jī)如圖612所示,PITCH=176。,ROLL=176。說(shuō)明MPU6000測(cè)量準(zhǔn)確,但是出現(xiàn)了角度歸零滯后性相對(duì)較嚴(yán)重的現(xiàn)象。圖610 飛控姿態(tài)的監(jiān)控界面圖611 四旋翼機(jī)傾斜30176。圖612 PC機(jī)顯示四旋翼機(jī)電狀態(tài)解決方法:將MPU6000數(shù)據(jù)采樣率和四元數(shù)的陀螺儀測(cè)量偏差改大,但是會(huì)出現(xiàn)測(cè)量出來(lái)的值會(huì)出現(xiàn)抖動(dòng)現(xiàn)象,最后將陀螺儀采樣率設(shè)置成10ms并將四元數(shù)的15176。/s可以得到相對(duì)較好的效果。(2) 下圖是調(diào)試電調(diào)時(shí),遙控的輸出PWM波形和定時(shí)器最終輸出的PWM的波形圖613 遙控輸入PWM波形 圖614 定時(shí)器輸出PWM波形(3)以下是調(diào)試PID控制的效果圖:圖615 飛行器后仰、后面兩個(gè)電機(jī)加速圖616 飛機(jī)前傾、前面兩個(gè)電機(jī)加速圖617 飛機(jī)向左傾、左邊兩個(gè)電機(jī)加速圖618 飛機(jī)右傾、右邊的兩個(gè)電機(jī)加速(4) 目前還存在的問(wèn)題:本系統(tǒng)采用定時(shí)器來(lái)計(jì)時(shí)遙控發(fā)送過(guò)來(lái)的PWM波形的脈寬,由于定時(shí)器設(shè)定的分頻較大,導(dǎo)致采集出來(lái)的數(shù)據(jù)較小,誤差較大,導(dǎo)致遙控對(duì)四旋翼飛行器四個(gè)電機(jī)的控制相當(dāng)不穩(wěn)定,致使在試飛的時(shí)候,摔斷了多個(gè)螺旋槳。當(dāng)定時(shí)器的分頻改小時(shí),由于定時(shí)器的中斷過(guò)于頻繁,導(dǎo)致整個(gè)系統(tǒng)沒(méi)辦法正常執(zhí)行。由于時(shí)間原因,這個(gè)問(wèn)題還沒(méi)得到解決。 7 設(shè)計(jì)總結(jié)基于ARM CORTEX的uC/OSII四旋翼機(jī)姿態(tài)控制系統(tǒng)是一個(gè)各個(gè)任務(wù)能完成自己的功能,任務(wù)與任務(wù)間結(jié)合緊密的有機(jī)整體,可移植性好,易于擴(kuò)展。(1) 本課題的研究主要概括起來(lái)包括以下幾個(gè)方面:1) 考慮到四旋翼機(jī)姿態(tài)控制系統(tǒng)的安全性能和可擴(kuò)展性能,對(duì)總體硬件進(jìn)行詳細(xì)的設(shè)計(jì)。整個(gè)硬件設(shè)計(jì)包含了原理圖各個(gè)模塊的基本功能和擴(kuò)展功能的設(shè)計(jì),PCB飛控板圖的制作等流程。2) 展開(kāi)uC/OSII任務(wù)管理的思想,并對(duì)uC/OSII操作系統(tǒng)在STM32的移植做了簡(jiǎn)單介紹,最后對(duì)姿態(tài)控制系統(tǒng)進(jìn)行合理的任務(wù)劃分,并對(duì)每個(gè)任務(wù)進(jìn)行優(yōu)先級(jí)的規(guī)劃。3) 在相應(yīng)的硬件基礎(chǔ)上,展開(kāi)了對(duì)四旋翼機(jī)的基本硬件結(jié)構(gòu)的驅(qū)動(dòng)工作,包括GPIO,串口,定時(shí)器,SPI等的操作。4) 論文重點(diǎn)放在IMU姿態(tài)采集單元的姿態(tài)采集、解算和控制等姿態(tài)控制系統(tǒng)的關(guān)鍵技術(shù)問(wèn)題,并對(duì)姿態(tài)控制系統(tǒng)的PID控制做出了詳細(xì)的介紹和解析。(2) 由于作者的技術(shù)不夠扎實(shí),理論知識(shí)有限,本設(shè)計(jì)還存在大量的錯(cuò)誤之處和不足需要完善。1) 本設(shè)計(jì)中將flash的高速SPI和波特率相差較大MPU6000的SPI共用一個(gè)SPI接口,浪費(fèi)了系統(tǒng)SPI的功能,使系統(tǒng)的資源利用率不夠高。2) 在姿態(tài)采集時(shí)直接從姿態(tài)采集單元中采集出相應(yīng)的ADC采樣數(shù)值,再進(jìn)行復(fù)雜的四元數(shù)轉(zhuǎn)換,工程量相對(duì)較大。在今后的發(fā)展過(guò)程中可以巧妙運(yùn)用MPU6000的DMP操作模塊直接從硬件中讀取四元數(shù),再進(jìn)行姿態(tài)的轉(zhuǎn)換。3) 在軟件代碼實(shí)現(xiàn)上,所用的算法還不夠完善,需要進(jìn)一步的改進(jìn)。 致謝在福建工程學(xué)院四年里,我學(xué)到了很多東西,感謝各位領(lǐng)導(dǎo)、各位老師和同學(xué)這四年來(lái)對(duì)我的苦心栽培和照顧,給我提供了一個(gè)良好的學(xué)習(xí)環(huán)境。在此,我還要感謝學(xué)校的實(shí)驗(yàn)室給我提供了一個(gè)自由發(fā)揮的平臺(tái),也對(duì)實(shí)驗(yàn)室的學(xué)長(zhǎng)和同學(xué)們的熱心幫助和耐心指導(dǎo)表示由衷的感謝。這次,我在此特別向我的指導(dǎo)老師陳興武老師表示致謝,在從本系統(tǒng)硬件到軟件中的開(kāi)發(fā)過(guò)程中,是他給我指引與鼓勵(lì),讓我能夠沖破重重困難,將整個(gè)設(shè)計(jì)系統(tǒng)按計(jì)劃完成。從本論文的開(kāi)題、工作計(jì)劃、硬件設(shè)計(jì)、軟件設(shè)計(jì)到論文的撰寫等各個(gè)階段都是在陳老師的耐心指導(dǎo)下完成的。陳導(dǎo)師治學(xué)態(tài)度嚴(yán)謹(jǐn)、對(duì)待事情沉著冷靜、對(duì)專業(yè)的濃厚興趣感和誨人不倦精神使我獲益頗多。謹(jǐn)向?qū)熤乱宰钪孕牡母兄x。在任務(wù)的進(jìn)行和學(xué)習(xí)期間,感謝陳老師給了我技術(shù)和資金上的支持和鼓勵(lì)。感謝電子競(jìng)賽的老師很隊(duì)友們,感謝福建工程學(xué)院的校領(lǐng)導(dǎo)、老師們,感謝你們?cè)谛睦砗蛯W(xué)習(xí)上對(duì)我的虛心輔導(dǎo),同時(shí)我還要感謝我的父母和家人,沒(méi)有你們的苦心栽培和背后的支持,就沒(méi)有現(xiàn)在的我,謝謝! 參考文獻(xiàn)[1]岳基隆. 四旋翼無(wú)人機(jī)自適應(yīng)控制方法的研究[D]. 國(guó)防科學(xué)技術(shù)大學(xué)碩士學(xué)位論文,2010[2]中國(guó)航空學(xué)會(huì)編著. 2012年世界無(wú)人機(jī)大會(huì)論文集[M]. 北京中國(guó)航空學(xué)會(huì)出版社,2012[3] 中國(guó)航空學(xué)會(huì)編著. STM32系列ARM Cortex M3微控制器原理與實(shí)踐[M]. 北京中國(guó)航空學(xué)會(huì)出版社,2013[4]邵貝貝編著. 嵌入式實(shí)時(shí)操作系統(tǒng)uC/OSII (第二版)[M]. 北京航空航天大學(xué)出版社,2003.[5] 岳基隆,張慶杰,朱華勇. 微小型旋翼無(wú)人機(jī)進(jìn)展及關(guān)鍵技術(shù)淺析[D]. 國(guó)防科技大學(xué)碩士學(xué)位論文,2010[6]文錕編著. 基于計(jì)算動(dòng)詞PID控制器的四旋翼無(wú)人機(jī)控制及地面控制系統(tǒng)的設(shè)計(jì)[D]. 廈門大學(xué)碩士學(xué)位論文,2013 [7] 胡軍輝、[D]. 2010[8]姜印清編著. 基于μC/OSⅡ的小型無(wú)人機(jī)飛行控制系統(tǒng)軟件設(shè)計(jì)[D]. 南京航空航天大學(xué)碩士學(xué)位論文 2009[9]劉波文、孫巖編著. 嵌入式實(shí)時(shí)操作系統(tǒng)μC/OSⅡ經(jīng)典實(shí)例——基于STM32處理器[M]. 北京航空航天大學(xué)出版社 2012 [10] Sebastian . An e_cient orientation _lter for inertial and inertial/magnetic sensor arraysMadgwick 2010 附錄1 void SysTick_Init(void){ SysTick_Config(SystemCoreClock/OS_TICKS_PER_SEC)。 //使能并初始化系統(tǒng)定時(shí)器}void BSP_Init(void){ SystemInit()。 /*將系統(tǒng)時(shí)鐘初始化為72M*/ SysTick_Init()。 /*SysTick初始化函數(shù)*/}if !defined( _BSP_H )define _BSP_Hvoid SysTick_Init(void)。void BSP_Init(void)。endif附錄2 SPI的寫指令程序清單void MPU6000_SPI_WriteByte(uint16_t data){ uint16_t value。 u8 i。 value=data。 //PA7為MOSI for(i=0。i8。i++) { if (((value(7i))amp。0x01)==0x01) GPIO_SetBits(GPIOA, GPIO_Pin_7)。 //MOSI置1 else GPIO_ResetBits(GPIOA, GPIO_Pin_7)。 GPIO_ResetBits(GPIOA, GPIO_Pin_5)。 //時(shí)鐘線拉低 delay_us(5)。 GPIO_SetBits(GPIOA, GPIO_Pin_5)。 //時(shí)鐘線拉高 delay_us(5)。 } }附錄3 SPI的讀指令程序清單uint16_t MPU600_SPI_ReadByte(void){ u16 temp=0。 u8 i。 for (i=0。i8。i++) { GPIO_ResetBits(GPIOA, GPIO_Pin_5)。 //時(shí)鐘線拉低 delay_us(5)。 temp=(temp1)+(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_6))。 GPIO_SetBits(GPIOA, GPIO_Pin_5)。 //時(shí)鐘線拉高 delay_us(5)。 } return (temp)。 } 附錄4 姿態(tài)控制的PID程序清單void Get_PID_Cacu(float Exp_Pitch, float Exp_Roll,float Exp_Yaw){ // 得到當(dāng)前系統(tǒng)的誤差利用期望角度減去當(dāng)前角度 Error_Pitch = Exp_Pitch Pitch。 Error_Roll = Exp_Roll Roll。 Error_Yaw = Exp_Yaw Yaw。 if (fabs(Error_Pitch) = 20) //積分分離在姿態(tài)誤差角小于20176。時(shí)引入積分 { //累加誤差 ErrorI_Pitch += Error_Pitch。 //積分限幅 if (ErrorI_Pitch = PITCH_I_MAX) ErrorI_Pitch = PITCH_I_MAX。 else if (ErrorI_Pitch = PITCH_I_MAX) ErrorI_Pitch = PITCH_I_MAX。 } if (fabs(Error_Roll) = 20) { //累加誤差 ErrorI_Roll +=Error_Roll。 //積分限幅 if (ErrorI_Roll = ROLL_I_MAX) ErrorI_Roll = ROLL_I_MAX。 else if (ErrorI_Roll = ROLL_I_MAX) ErrorI_Roll = ROLL_I_MAX。 } ele=(s16)(Kp_Pitch*Error_Pitc+Ki_Pitch*ErrorI_Pitch Kd_Pitch * AngleSpeed_X)。 ail= (s16)(Kp_Roll*Error_Roll+ Ki_Roll * ErrorI_Roll Kd_Roll * AngleSpeed_Y)。 rud = (s16)(Kp *Error_Yaw)。 M1 = thr+ ele + ail + rud。 M2 = thr ele + ail rud。 M3 = thr ele ail + rud。 M4 = thr+ ele ail rud。 }附錄5 飛控板的原理圖附錄6 飛控板的PCB附錄7 飛控板的實(shí)物圖 附錄8 組裝好的四翼飛行器實(shí)物圖44
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1