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

正文內(nèi)容

基于stm32的智能小車設(shè)計(jì)畢業(yè)設(shè)計(jì)(參考版)

2024-08-31 15:04本頁(yè)面
  

【正文】 //先占優(yōu)先級(jí) 2 級(jí) = 0。 //中斷分組初始化 = TIM5_IRQn。//IC1F=0000 配置輸入濾波器 不濾波 TIM_ICInit(TIM5, amp。 //映射到 TI1 上 = TIM_ICPSC_DIV1。 //CC1S=01 選擇輸入端 IC1 映射到 TI1 上 = TIM_ICPolarity_Rising。TIM_TimeBaseStructure)。 //設(shè)置時(shí)鐘分割 :TDTS = Tck_tim = TIM_CounterMode_Up。 //設(shè)定計(jì)數(shù)器自動(dòng)重裝值 =psc。 GPIO_ResetBits(GPIOA,GPIO_Pin_0)。 //PA0 輸入 GPIO_Init(GPIOA, amp。 //使能 GPIOA 時(shí)鐘 = GPIO_Pin_0。 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE)。 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure。同 時(shí)我還要感謝湯飛同學(xué)、柳曉峰同學(xué)的真誠(chéng)指點(diǎn),以及其他各位老師和同學(xué)的不吝指教,使我度過(guò)了緊張而又充實(shí)的三個(gè)月。我首先要感謝的是我的母校,它為我提供了一個(gè)良好的學(xué)習(xí)環(huán)境,非常感謝學(xué)院領(lǐng)導(dǎo)對(duì)我們畢業(yè)設(shè)計(jì)相關(guān)工作精心合理的安排。在這期間,我在所基于 stm32 的智能小車設(shè)計(jì) 42 學(xué)的基礎(chǔ)知識(shí)之上,去接觸 stm32,在接觸之初,我不斷的遇到問(wèn)題,而我也知道不經(jīng)一番寒徹骨,哪的梅香撲鼻來(lái)的道理,最終我克服了種種困難,不僅使自己的知識(shí)更加牢固,而且也鍛煉了自己的心性。 總的來(lái)說(shuō),設(shè)計(jì)方案是完善的,基本上達(dá)到了設(shè)計(jì)所要求的目標(biāo)。 上文提到的兩種方法,又受到所采購(gòu)的器件的物理尺寸的影響。 ? 增加轉(zhuǎn)彎額定值 S 在本次試驗(yàn)中,循跡探頭距小車的車輪距離太近,導(dǎo)致小車的額定值 S過(guò)小,進(jìn)而導(dǎo)致小車在循跡工作時(shí)誤差較大。在本次試驗(yàn)中我們采用的車輪直徑稍大,從而導(dǎo)致小車轉(zhuǎn)彎的靈敏度大大下降。小車的轉(zhuǎn)彎靈敏度與小車的車輪直徑有關(guān),具體來(lái)講就是: 在車輪角速度一定的情況下,車輪直徑越大,有公式 V=ω R,車輪的線速度就越大,那么在單位時(shí)間內(nèi)有,小車的行駛距離就會(huì)變大。 ? 減小轉(zhuǎn)彎時(shí)間 T 小車的轉(zhuǎn)彎時(shí)間 T與小車的轉(zhuǎn)彎靈敏度成反比 。假設(shè)小車的轉(zhuǎn)彎時(shí)間為 T,小車的轉(zhuǎn)彎時(shí)的速度為 V,我們要保證小車轉(zhuǎn)彎的路程不超過(guò)額定值 S,那么就有公式 VT=S。 在本方案中 ,由于受到所采購(gòu)的硬件模塊尺寸的影響,循跡模塊在進(jìn)行工作的時(shí)候,受到外部影響的因素很大。而在軟件設(shè)計(jì)方案中,我們只分析軟流程件設(shè)計(jì),以確定對(duì)應(yīng)的程序編碼。接著分別介紹了各個(gè)模塊的硬件設(shè)計(jì)方案以及軟件設(shè)計(jì)方案。 論文首先分析了研究智能小車的研究意義,對(duì)于此次研究的必要性進(jìn)行了可行性分析。本文的重點(diǎn)是基于stm32 微處理器為核心,添加其他外圍電路為輔助,并且加載必要的程序設(shè)計(jì),使小車智能化行動(dòng)。 PC7 的軟件仿真結(jié)果如下圖所示: 圖 PC7 腳電平仿真圖 程序下載 基于 stm32 的智能小車設(shè)計(jì) 37 串口下載軟件使用 mcuisp,該軟件屬于第三方軟件,由單片機(jī)在線編程網(wǎng)提供,該軟件啟動(dòng)界面如圖 所示: 圖 mcuisp 啟動(dòng)界面 我們使用 mcuisp 軟件進(jìn)行程序下載,程序 下載圖如下所示: 圖 mcuisp 程序下載圖 在程序調(diào)試中,我們知道 PC7 的電平變化已經(jīng)滿足了超聲波的發(fā)射條件,我們基于 stm32 的智能小車設(shè)計(jì) 38 本節(jié)就是對(duì)硬件進(jìn)行測(cè)試,驗(yàn)證本次方案是否成功。支持 ARM7, ARM9,和最新的 CortrxM3核處理器,自動(dòng)配置啟動(dòng)代碼,具有強(qiáng)大的軟件仿真功能,而且具有啟動(dòng)代碼小,性能高的優(yōu)點(diǎn),軟件 keil3 的操作主界面如圖 : 圖 Keil 主界面 在程序仿真中,我們只能觀察 PC7 腳位的電平變化,來(lái)判斷是否滿足超聲波的發(fā)射條件,而對(duì)于超聲波發(fā)射到接受的高電平持續(xù)時(shí)間 t,我們?cè)诔绦蚍抡嬷惺菬o(wú)法觀測(cè)到的。 我們 使用 keil3 軟件進(jìn)行程序仿真, 然后 使用 mcuscip 軟件把我們得到的目標(biāo)文件燒到處理器中,即程序下載。} EXTI_ClearITPendingBit(EXTI_Line1)。 編寫中斷服務(wù)函數(shù) 我們?cè)谥袛喑跏蓟?,就需要寫中斷服?wù)函數(shù)啦,我們就以 PE1 為例,當(dāng)PE1的值發(fā)生變化時(shí),我們就進(jìn)入中斷服務(wù)函數(shù),在中斷服務(wù)函數(shù)中判斷紅外探基于 stm32 的智能小車設(shè)計(jì) 35 測(cè)器是否在黑帶上方,如果在,此時(shí)我們需要使小車向左轉(zhuǎn),如果不在黑帶上方,小車就繼續(xù)前進(jìn)。當(dāng)紅外探測(cè)器模塊在白色上方時(shí),輸出為 1。但是, 在提升電路的處理速度的同時(shí),帶來(lái)的缺點(diǎn)就是分辨率降低,因?yàn)橹灰?du 附近輸出的電壓值就不會(huì)改變。加入 R4 電阻,就成為人們所說(shuō)的“施密特觸發(fā)器”,其特性圖如圖 所示: 基于 stm32 的智能小車設(shè)計(jì) 33 圖 施密特觸發(fā)器特性圖 當(dāng)輸入端的電壓發(fā)生轉(zhuǎn)化時(shí),只要在比較電壓值附近的干擾不超過(guò) du 之值,輸出的電壓就不會(huì)改變。 因此 可以通過(guò)調(diào)節(jié) R2 的電阻值,改變比較電壓的大小即“ —”端電壓的大小,從而控制探測(cè)的距離。其單個(gè) IR 探測(cè)器電路原理圖如圖 所示: 圖 IR 探測(cè)器電路原理圖 根據(jù)原理圖詳解下 IR 探測(cè)器的工作原理: VCC 為模塊提供電源,是 IR 探測(cè)器工作的前提條件,紅外發(fā)射管 DF2 發(fā)射紅外光到達(dá)“地面”,經(jīng)反射后紅外光會(huì)到達(dá) DS2 紅外接收管,由于不同顏色的地面會(huì)對(duì)光的吸收有著不同的效果,所以發(fā)射后的光的強(qiáng)度也會(huì)不同,反射強(qiáng)度不同, LM339 的 5 腳會(huì)輸入一個(gè)變化的電壓量, LM339 是一個(gè)電壓較器,當(dāng) LM339 的“ +”端輸入信號(hào)大于“ ”端的比較信號(hào)后, LM339 的輸出端截止,在外部的上拉電源的作用下,使 IR 探測(cè)器的輸出端輸出 +5v 的電壓。我們知道 IR 探測(cè)器是由紅外發(fā)射管、紅外接收管和部分電路組成。其中中間的 1 個(gè) IR 探測(cè)器在本實(shí)驗(yàn)中并未使用。要做到 4 路循跡,需要使用 4 個(gè)獨(dú)立的紅外探測(cè)器器件。考慮到成本和操作, 本實(shí)驗(yàn) 使用的紅外探測(cè)器。循跡模塊 的設(shè)計(jì)就是使小車能準(zhǔn)確的識(shí)別黑帶的軌跡。//開啟下一次捕獲 }} 循跡模塊設(shè)計(jì) 這節(jié)要完成的任務(wù)是使小車沿著黑帶運(yùn)動(dòng)。 } TIM_Cmd(TIM2, ENABLE)。 t=0。 rotate_Left()。} if(flag==2) {turn_Right()。}} else { if(flag==0){farward_Low()。 TIM_SetCompare2(TIM3,150)。 //舵機(jī)左轉(zhuǎn) } if(t==3) {t=0。//舵機(jī)右轉(zhuǎn) } if(t==2){ Leftstate=temp。 if(t==1) { Midstate=temp。t++。//得到總的高電平時(shí)間 TIM_Cmd(TIM2, DISABLE)。 temp*=65536。0X80)//成功捕獲到了一次上升沿 { temp=TIM5CH1_CAPTURE_STAamp。 //標(biāo)記捕獲到了上升沿 TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling)。 TIM_SetCounter(TIM5,0)。 //CC1P=0 設(shè)置為上升沿捕獲 }else //還未開始 ,第一次捕獲上升沿 { TIM5CH1_CAPTURE_STA=0。 //標(biāo)記成功捕獲到一次上升沿 TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5)。}} if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)//捕獲 1 發(fā)生捕獲事件 基于 stm32 的智能小車設(shè)計(jì) 30 { if(TIM5CH1_CAPTURE_STAamp。//標(biāo)記成功捕獲了一次 TIM5CH1_CAPTURE_VAL=0XFFFF。0X40)//已經(jīng)捕獲到高電平了 { if((TIM5CH1_CAPTURE_STAamp。 我們知道了如何設(shè)置 TIM5 的 CH1 為輸入捕獲模式,我們是在 TIM5 的中斷服務(wù)函數(shù)中采集持續(xù)時(shí)間 t 的, TIM5CH1_CAPTURE_STA 為輸入捕獲狀態(tài),TIM5CH1_CAPTURE_VAL 為輸入捕獲值, 中斷服務(wù)函數(shù)如下所示 : if((TIM5CH1_CAPTURE_STAamp。NVIC_InitStructure)。 = ENABLE。 =1。 TIM_ITConfig(TIM5,TIM_IT_Update|TIM_IT_CC1,ENABLE)。TIM5_ICInitStructure)。 = 0x00。 = TIM_ICSelection_DirectTI。 =TIM_Channel_1。TIM_TimeBaseStructure)?;?stm32 的智能小車設(shè)計(jì) 29 = TIM_CounterMode_Up。 =psc。 ? 初始化 TIM5,設(shè)置 TIM5 的 psc 和 arr。 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE)。 然后,我們?cè)倏纯纯刂萍拇嫫?TIMx_CR1,我們只用到了最低位,所以我們僅介紹位 0 的功能, TIMx_CR1 寄存器各位描述及位 0 功能描述如下如所示: 圖 TIMx_CR1 寄存器各位描述及位 0 功能描述 我們要使能計(jì)數(shù)器,所以位 0 設(shè)置為 1。 接著我們?cè)賮?lái)看看捕獲 /比較使能寄存器 TIMx_CCER,本節(jié)用到了 CC1E 和 CC1P兩位,描述如下圖所示: 圖 TIMx_CCER 最低兩位描述 基于 stm32 的智能小車設(shè)計(jì) 28 所以要使能通道 CH1輸入捕獲, CC1E 必須設(shè)置為 1,而 CC1P 則可以根據(jù)實(shí)際情況設(shè)置。 TIM5_PSC、 TIM5_ARR、 TIM5_CCR1 這 3個(gè)寄存器用法與前節(jié)中相同,我們就不在贅述,而在本實(shí)驗(yàn)中,捕獲 /比較寄存器 TIM5_CCMR1 非常重要,該寄存器的各位描述如下圖所示: 基于 stm32 的智能小車設(shè)計(jì) 27 圖 TIMx_CCMR1 各位描述 我們使用的是 TIM5 捕獲 /比較通道 CH1,所以圖中只介紹 [7:0]位。為了使 TIM5 通道 CH1 具有捕獲功能,我們需要用 到 TIM5_PSC、 TIM5_ARR、捕獲 /比較模式寄存器( TIM5_CCMR1)、捕獲 /比較使能寄存器 (TIM5_CCER)、捕獲 /比較寄存器( TIM5_CCR1)、 DMA/中斷使能寄存器( TIM5_DIER)、控制寄存器 (TIM5_CR1)。 輸入捕獲的原理,簡(jiǎn)單的講就是通過(guò)檢測(cè) TIM5(定時(shí)器)通道 CH1 的邊沿信號(hào),當(dāng)邊沿信號(hào)發(fā)生變化時(shí),當(dāng)前寄存器的值 TIM1_CNT 存放到通道的捕獲 /比較寄存器( TIM5_CCR1)里面。我們開啟 TIM5 通道 CH1(定時(shí)器 5)的輸入捕獲模式,采集 ECHO 端口的高電平持續(xù)時(shí)間。 GPIO_ResetBits(GPIOC,GPIO_Pin_7)。 GPIO_SetBits(GPIOC,GPIO_Pin_7)。 由于配置定時(shí)器中斷模式十分簡(jiǎn)單,我們就不在詳細(xì)介紹,其詳細(xì)代碼見附錄 4.定時(shí)器 TIM2 的中斷周期計(jì)算公式為 T=((arr+1)*(psc+1))/Tclk。 HCSR04 模塊程序設(shè)計(jì) 根據(jù)硬件電路的設(shè)計(jì),我們對(duì)避障子程序進(jìn)行設(shè)計(jì),程序流程圖如圖 所示: 基于 stm32 的智能小車設(shè)計(jì) 25 開 始系 統(tǒng) 初 始 化前 進(jìn)前 方 是 否 有 障 礙舵 機(jī) 左 轉(zhuǎn)否是小 車 左 方 是 否 有 障 礙否舵 機(jī) 右 轉(zhuǎn)小 車 右 方 是 否 有 障 礙小 車 左 轉(zhuǎn)是小 車 右 轉(zhuǎn)否小 車 后 轉(zhuǎn)避 障 子 程 序 結(jié) 束 圖 避障程序流程圖 避障模塊在程序設(shè)計(jì)中,我們的工作主要是: 控制超聲波的掃描周期 采集超聲波發(fā)射到接受的高電平持續(xù)時(shí)間 t 對(duì)采集的高電平持續(xù)時(shí)間 t進(jìn)行處理,判斷前方是否有障礙 下面我們就詳細(xì)介紹我們是怎么通過(guò)軟件設(shè)計(jì)來(lái)完成這幾個(gè)步驟的: 控制超聲波的掃描周期 根據(jù)表 22,我們采用的是 TIM2 來(lái)控制超聲波的掃描周期。 角度與脈寬的對(duì)應(yīng)圖如圖 所示: 基于 stm32 的智能小車設(shè)計(jì) 24 圖 舵機(jī)角度與脈寬對(duì)應(yīng)圖 HCSR04 模塊硬件電路設(shè)計(jì) 超聲波模塊硬件原理 圖如下圖所示: 圖 超聲波硬件原理圖 HC
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1