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

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于stm32的智能小車設(shè)計(jì)-預(yù)覽頁

2025-07-14 13:10 上一頁面

下一頁面
 

【正文】 由系統(tǒng)時(shí)鐘電路、實(shí)時(shí)時(shí)鐘電路、JTAG調(diào)試接口電路,復(fù)位電路和啟動(dòng)模式選擇電路組成。如圖所示,當(dāng)按鍵懸空時(shí)RST輸入為高電平,當(dāng)按鍵按下時(shí),RST腳輸入為低電平,從而電路復(fù)位。比如,我們在單片機(jī)C51中,同樣,我們在stmM32的開發(fā)中過程中,我們同樣可以對(duì)寄存器直接操作:GPIOxBRR=0x0011。比如,上面通過控制BRR寄存器來控制電平的變化,官方庫封裝了一個(gè)函數(shù):Void GPIO_ResetBits(GPIO_TypeDef * GPIOx,uint16_t GPIO_Pin){GPIOxBRR = GPIO_Pin。首先外部信號(hào)從編號(hào)為1的輸入線進(jìn)入。最后經(jīng)過編號(hào)為4的與門進(jìn)入NVIC中斷控制器,如果 “中斷屏蔽寄存器”的對(duì)應(yīng)位置0,外部的中斷請求信號(hào)不能傳輸?shù)絅VIC中斷控制器,從而實(shí)現(xiàn)中斷的屏蔽。 開啟I/O的復(fù)用時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO,ENABLE)。 GPIO_Init(GPIOE, amp。 =EXTI_Line1。 EXTI_Init(amp。 = 0x00。NVIC_InitStructure)。然后我們介紹一下本實(shí)驗(yàn)采用了那些定時(shí)器,以及這些定時(shí)器所要完成的功能有哪些。 //延時(shí)函數(shù)初始化 NVIC_Configuration()。 //掃描軌跡 TIM2_Int_Init(4999,7199)。}} 電機(jī)驅(qū)動(dòng)模塊Stm32對(duì)小車的控制,就是對(duì)電機(jī)的控制,通過控制電機(jī)的轉(zhuǎn)向,小車的運(yùn)動(dòng)狀態(tài)就會(huì)發(fā)生改變。 驅(qū)動(dòng)模塊電路設(shè)計(jì): 驅(qū)動(dòng)模塊電路原理圖表22是各個(gè)端口狀態(tài)與運(yùn)動(dòng)方向的關(guān)系,其關(guān)系如下表所示:表22 端口與運(yùn)動(dòng)方向關(guān)系表電機(jī)M1IN1IN2電機(jī)M2IN3IN4停止00停止00正轉(zhuǎn)10正轉(zhuǎn)10反轉(zhuǎn)01反轉(zhuǎn)01-11-11車輪電機(jī)的動(dòng)作由GPIO口的輸出實(shí)現(xiàn),本節(jié)主要配置運(yùn)動(dòng)方向和運(yùn)動(dòng)速度,對(duì)于運(yùn)動(dòng)速度的控制,我們必須使用PWM,通過改變PWM的占空比來調(diào)節(jié)速度的大小,其主要代碼設(shè)計(jì)如下所示:void TIM3_PWM_Init(u16 arr,u16 psc){ ….}要想使stm32的通用定時(shí)器TIMx產(chǎn)生PWM輸出,需要用到的寄存器有:預(yù)分頻寄存器(TIMx_PSC)、自動(dòng)重裝載寄存器(TIMx_ARR)、捕獲/比較模式寄存器(TIMx_CCMR1/2)、捕獲/比較使能寄存器(TIMx_CCER)、捕獲/比較寄存器(TIMx_CCR1~4)。其中Tclk為系統(tǒng)時(shí)鐘周期。然后我們介紹捕獲/比較使能寄存器(TIMx_CCER),該寄存器控制著各個(gè)輸入/輸出通道的開關(guān),對(duì)于該寄存器,各位描述如下圖所示: TIMx_CCER寄存器描述該寄存器比較簡單,因?yàn)槲覀冎唤榻B通道1,所以我們只講CC1E位。至此,我們把用到的幾個(gè)寄存器都介紹完畢,下面我們就介紹如何通過庫函數(shù)來配置實(shí)現(xiàn)PWM三路輸出。庫函數(shù)使能TIMGPIO以及復(fù)用功能時(shí)鐘的方法是:RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE)。在開啟了TIM3的時(shí)鐘之后,我們要設(shè)置PSC和ARR寄存器的值來控制PWM的輸出周期。 =TIM_CounterMode_Up。 設(shè)置TIM3_CHCHCH3的PWM模式,使能TIM3的CHCHCH3輸出。 = 0。 TIM_OC1Init(TIM3, amp。 216。216。其中arr和psc可以控制PWM波的周期,TIM3_CCRx可以控制PWM波的占空比。對(duì)各個(gè)I/O端口配置的過程相似,我們僅以PD8為例:主要過程如下所示:216。=GPIO_Mode_Out_PP。216?!覀冋{(diào)用這些函數(shù),就可以實(shí)現(xiàn)不同運(yùn)動(dòng)方向的控制。避障模塊所采用的器件在市場中有許多類型,比如紅外檢測,光位移檢測,超聲波檢測等。在程序編寫過程中,如果小車前方遇見障礙時(shí),我們可以直接控制舵機(jī)的轉(zhuǎn)向,而小車的車身可以保持不變,在測量結(jié)束后,小車再做相應(yīng)的動(dòng)作。因此測量距離=(高電平持續(xù)時(shí)間*340m/s)/2。所以測距時(shí),為了防止發(fā)射信號(hào)丟失,否則可能導(dǎo)致測量結(jié)果不準(zhǔn)確。判斷轉(zhuǎn)動(dòng)方向,再驅(qū)動(dòng)無核心馬達(dá)開始轉(zhuǎn)動(dòng),透過減速齒輪將動(dòng)力傳至擺臂,同時(shí)由位置檢測器送回反饋信號(hào)。在此試驗(yàn)中,我們只需簡單了解電路的設(shè)計(jì),對(duì)于其基本原理可以不用過多涉獵,我們只需明白它們的工作原理,并且能夠簡單運(yùn)用即可。Tclk為系統(tǒng)周期,我們采用PC7作為觸發(fā)信號(hào),根據(jù)超聲波時(shí)序圖,我們需要在中斷程序中給PC7一個(gè)持續(xù)10ms的高電平,中斷服務(wù)程序如下:void TIM2_IRQHandler(void) //TIM2中斷{ if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) {TIM_ClearITPendingBit(TIM2, TIM_IT_Update )。}}采集超聲波發(fā)射到接受的持續(xù)時(shí)間t在本節(jié)試驗(yàn)中,我們使用了通用定時(shí)器TIM5的輸入捕獲功能,輸入捕獲模式具有測量頻率或者測量脈沖的寬度的功能。我們的實(shí)驗(yàn)就是采集捕獲/比較寄存器(TIM5_CCR1)中的值并進(jìn)行處理,完成相應(yīng)的動(dòng)作。本次試驗(yàn)我們設(shè)置CC1S[1:0]=01,IC1PSC[1:0]=00,IC1F[3:0]=0000。至此,我們所使用的寄存器一一介紹完畢,下面介紹怎么配置輸入/捕獲步驟:216。 216。 =TIM_CKD_DIV1。216。 = TIM_ICSelection_DirectTI。TIM5_ICInitStructure)。216。 = ENABLE。 使能定時(shí)器 TIM_Cmd(TIM5,ENABLE )。0X3F)==0X3F)//高電平太長了 { TIM5CH1_CAPTURE_STA|=0X80。0X40) //捕獲到一個(gè)下降沿 { TIM5CH1_CAPTURE_STA|=0X80。 //清空 TIM5CH1_CAPTURE_VAL=0。 //CC1P=1 設(shè)置為下降沿捕獲}}}對(duì)采集的時(shí)間t進(jìn)行處理,判斷前方是否有障礙我們對(duì)采集時(shí)間t的處理也是在TIM5的中斷服務(wù)函數(shù)中的,我們根據(jù)因測量距離=(高電平持續(xù)時(shí)間t*340m/s)/2,得出只要高電平持續(xù)時(shí)間t1500us,距離就小于25cm,就會(huì)判定前方有障礙,其詳細(xì)代碼如下: if(TIM5CH1_CAPTURE_STAamp。//溢出時(shí)間總和 temp+=TIM5CH1_CAPTURE_VAL。flag++。 TIM_SetCompare2(TIM3,250)。 rotate_Left()。} if(flag=3) {flag=0。 flag=0。要想使小車沿著黑帶運(yùn)動(dòng),必須使小車感應(yīng)到黑跡在什么地方,然后讓小車的中央處理單元驅(qū)動(dòng)硬件電路完成相應(yīng)的行為動(dòng)作。 循跡模塊結(jié)構(gòu)及其原理紅外探測器(IR)是由紅外發(fā)射管、紅外接收管和部分電路組成。: 紅外模塊正反面本實(shí)驗(yàn)使用的IR5集成模塊是由5個(gè)相同的IR探測器電路組成的,所以我們只需要了解一個(gè)IR探測器的工作原理即可。同理,在“+”端電壓小于“—”端電壓時(shí),LM339輸出端電壓飽和使IR探測器輸出為低電壓。R4正反饋的引入,不僅提高了電路的處理速度,而且可以免除由于寄生電路耦合而產(chǎn)生的自己震蕩。因此我們采用中斷的方式進(jìn)行循跡,因?yàn)椴捎玫氖?路循跡,所以我們需要4個(gè)管腳與其一一對(duì)應(yīng),對(duì)應(yīng)關(guān)系如下表:表23管腳與紅外探測器位置對(duì)應(yīng)關(guān)系表管腳名稱紅外探測器位置PE1左PE2最左PE3右PE4最右在配置好管腳與紅外位置關(guān)系之后,我們就需要進(jìn)行中斷初始化,我們在這里就不做介紹。} //清除LINE2上的中斷標(biāo)志位 上文提到了各個(gè)模塊的電路設(shè)計(jì)及其程序設(shè)計(jì),本章就根據(jù)各個(gè)模塊的電路設(shè)計(jì)進(jìn)行相應(yīng)的編程。因此我們只能通過對(duì)硬件進(jìn)行測試,來完成對(duì)整個(gè)產(chǎn)品設(shè)計(jì)的考核。整個(gè)智能小車系統(tǒng)以stm32微處理器為核心,外圍電路包括避障電路、循跡電路、電機(jī)驅(qū)動(dòng)電路等,這些外圍電路通過stm32微處理器結(jié)合起來,使得各個(gè)模塊在保證工作準(zhǔn)確性的同時(shí),提高了小車的智能化。在硬件設(shè)計(jì)方案中包括對(duì)各個(gè)硬件電路所采用的器件進(jìn)行分析和對(duì)硬件電路的設(shè)計(jì)分析,從而決定器件的使用方案,以及硬件電路圖的設(shè)計(jì)。在本次試驗(yàn)設(shè)計(jì)中,由于循跡探頭的安裝距離小車車輪很近,當(dāng)循跡探頭采集數(shù)據(jù)傳輸?shù)紺PU時(shí),小車已經(jīng)向前行駛了一段時(shí)間。 減小轉(zhuǎn)彎時(shí)間T小車的轉(zhuǎn)彎時(shí)間T與小車的轉(zhuǎn)彎靈敏度成反比。在本次試驗(yàn)中我們采用的車輪直徑稍大,從而導(dǎo)致小車轉(zhuǎn)彎的靈敏度大大下降。解決此問題,我們可以拉大車輪與循跡探頭的距離。致謝一個(gè)學(xué)期的學(xué)習(xí)和鍛煉,使我的畢業(yè)論文設(shè)計(jì)基本完成。當(dāng)然,我的指導(dǎo)老師張健,我非常感謝他在我畢業(yè)設(shè)計(jì)的整個(gè)過程中始終予以的熱情指導(dǎo)和督促,對(duì)我提出的疑惑耐心地指點(diǎn),他的指點(diǎn)是我克服困難、完成設(shè)計(jì)的重要因素,對(duì)我一個(gè)月的實(shí)習(xí)也產(chǎn)生了鼓勵(lì)和支持的作用。 NVIC_InitTypeDef NVIC_InitStructure。 //PA0 清除之前設(shè)置 = GPIO_Mode_IPD。 //PA0 下拉 //初始化定時(shí)器5 TIM5 = arr。 //TIM向上計(jì)數(shù)模式 TIM_TimeBaseInit(TIM5, amp。 //上升沿捕獲 = TIM_ICSelection_DirectTI。TIM5_ICInitStructure)。 //從優(yōu)先級(jí)0級(jí) = ENABLE。//允許更新中斷 ,允許CC1IE捕獲中斷 TIM_Cmd(TIM5,ENABLE )。 //使能復(fù)用功能時(shí)鐘 // 中斷線以及中斷初始化配置 下降沿觸發(fā) GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource1)。 = ENABLE。 =EXTI_Line2。 EXTI_Init(amp。 EXTI_Init(amp。 EXTI_Init(amp。 //搶占優(yōu)先級(jí)2, = 0x06。 = EXTI2_IRQn。 //使能外部中斷通道 NVIC_Init(amp。 //搶占優(yōu)先級(jí)2 = 0x07。 //根據(jù)NVIC_InitStruct中指定的參數(shù)初始化外設(shè)NVIC寄存器 = EXTI4_IRQn。 //使能外部中斷通道 NVIC_Init(amp。 //清除LINE1上的中斷標(biāo)志位 EXTI_ClearITPendingBit(EXTI_Line3)。 GPIO_SetBits(GPIOD,GPIO_Pin_10)。 }void Left_Low(void){ GPIO_SetBits(GPIOD,GPIO_Pin_8)。 TIM_SetCompare1(TIM3,1000)。 GPIO_SetBits(GPIOD,GPIO_Pin_10)。}void backward(void){ GPIO_ResetBits(GPIOD,GPIO_Pin_8)。 TIM_SetCompare1(TIM3,2000)。 GPIO_SetBits(GPIOD,GPIO_Pin_10)。}附錄4void TIM2_Int_Init(u16 arr,u16 psc){ TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure。 //設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值 計(jì)數(shù)到5000為500ms =psc。TIM_TimeBaseStructure)。 //先占優(yōu)先級(jí)0級(jí) = 3。 //根據(jù)NVIC_InitStruct中指定的參數(shù)初始化外設(shè)NVIC寄存器 TIM_Cmd(TIM2, ENAB
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1