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

正文內(nèi)容

基于stm32的智能小車(chē)設(shè)計(jì)畢業(yè)設(shè)計(jì)(編輯修改稿)

2024-10-02 15:04 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 塊結(jié)構(gòu)及其原理 電機(jī)驅(qū)動(dòng)模塊的實(shí)物圖如圖 所示: 圖 驅(qū)動(dòng)電路實(shí)物圖 電機(jī)驅(qū)動(dòng)模塊的主要器件是芯片 LM293D,內(nèi)部原理圖如圖 所示: 圖 電機(jī)驅(qū)動(dòng)內(nèi)部原理圖 全橋式驅(qū)動(dòng)電路的 4 只開(kāi)關(guān)管都工作在斬波狀態(tài),如圖 所示, K K2為一組, K K4 為另一組,兩組的狀態(tài)互補(bǔ),一組導(dǎo)通則另一組必定關(guān)斷。當(dāng)K K2 導(dǎo)通時(shí), K K4關(guān)斷,電機(jī)兩端加正向電壓,電機(jī)實(shí)現(xiàn)正轉(zhuǎn)或反轉(zhuǎn)制動(dòng);當(dāng) K K4 導(dǎo)通時(shí), K K2關(guān)斷,電機(jī)兩端為反向電壓,電機(jī)實(shí)現(xiàn)反轉(zhuǎn)或正轉(zhuǎn)制動(dòng)。 驅(qū)動(dòng)模塊電路設(shè)計(jì) K1 K3 K4 K2 基于 stm32 的智能小車(chē)設(shè)計(jì) 17 電機(jī)驅(qū)動(dòng)模塊的電路原理如圖 所示: 圖 驅(qū)動(dòng)模塊電路原理圖 表 22 是各個(gè)端口狀態(tài)與運(yùn)動(dòng)方向的關(guān)系,其關(guān)系如下表所示: 表 22 端口與運(yùn)動(dòng)方向關(guān)系表 電機(jī) M1 IN1 IN2 電機(jī) M2 IN3 IN4 停止 0 0 停止 0 0 正轉(zhuǎn) 1 0 正轉(zhuǎn) 1 0 反轉(zhuǎn) 0 1 反轉(zhuǎn) 0 1 - 1 1 - 1 1 驅(qū)動(dòng) 軟件程序設(shè)計(jì) 車(chē)輪電機(jī)的動(dòng)作由 GPIO 口的輸出實(shí)現(xiàn),本節(jié)主要配置運(yùn)動(dòng)方向和運(yùn)動(dòng)速度,對(duì)于運(yùn)動(dòng)速度的控制,我們必須使用 PWM,通過(guò)改變 PWM 的占空比來(lái)調(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)。我們先介紹這幾個(gè)寄存器,然后介紹如何使用庫(kù)函數(shù)產(chǎn)生 PWM輸出。下面我們就簡(jiǎn)單介紹下這些寄存器: 首先是預(yù)分頻寄存器( TIMx_PSC),該寄存器可以用設(shè)置對(duì)時(shí)鐘進(jìn)行分頻,然后在提供給計(jì)數(shù)器作為計(jì)數(shù)器的時(shí)鐘。該寄存器的各位功能如圖所示: 基于 stm32 的智能小車(chē)設(shè)計(jì) 18 圖 TIMx_PSC 寄存器各位描述 接下來(lái)介紹 自動(dòng)重裝載寄存器( TIMx_ARR),該寄存器的各位描述如下圖所示: 圖 TIMx_ARR 寄存器各位描述 通過(guò)設(shè)置這兩個(gè)寄存器,我們就可以算出 PWM 的輸出周期,計(jì)算公式為: Tout=((arr+1)*(psc+1))/Tclk。其中 Tclk 為系統(tǒng)時(shí)鐘周期。 其次我們介紹 捕獲 /比較模式寄存器( TIMx_CCMR1/2),總共有兩個(gè), TIMx_CCMR1 和TIMx_CCMR2, TIMx_CCMR1 控制通道 CH1 和 CH2, TIMx_CCMR2控制 CH3 和 CH4。因?yàn)檫@ 2個(gè)寄存器差不多,我們僅以通道 CH1 為例,介紹其中的 TIMx_CCMR1 為例,該寄存器的各位描述如下圖所示: 圖 TIMx_CCMR1/2 寄存器各位描述 這里我們只介紹該寄存器的 OCxM 位,我們就以 TIMx_CCMR1 中的 OC1M(控制通道 CH1)為例,該位功能如下圖所示: 基于 stm32 的智能小車(chē)設(shè)計(jì) 19 圖 OC1M 功能描述 我們使用的是 PWM 輸出模式,所以 OC1M 必須設(shè)置為 110/111。 OC2M(控制通道 CH2)各位描述與 OC1M 相同,我們這要不在敘述。 然后我們介紹 捕獲 /比較使能寄存器( TIMx_CCER),該寄存器控制著各個(gè)輸入 /輸出通道的開(kāi)關(guān),對(duì)于該寄存器,各位描述如下圖所示: 圖 TIMx_CCER 寄存器描述 該寄存器比較簡(jiǎn)單,因?yàn)槲覀冎唤榻B通道 1,所以我們只講 CC1E 位。如果我們想使能輸入 /捕獲 1,我們只需使用 CC1E 位。要想使 PWM 從 I/O 口輸出,此位必須設(shè)置為 1。 最后介紹捕獲 /比較寄存器( TIMx_CCR1~4),總共有 4 個(gè),分別對(duì)應(yīng) CH1~4,因?yàn)檫@ 4 個(gè)寄存器相似,我們僅以 TIMx_CCR1 為例,該寄存器的給位介紹如下圖所示: 圖 TIMx_CCR1 寄存器各位描述 基于 stm32 的智能小車(chē)設(shè)計(jì) 20 在輸出模式下,該寄存器的值與 CNT 中的值進(jìn)行比較,根據(jù)結(jié)果,實(shí)現(xiàn)電平的翻轉(zhuǎn)。至此,我們把用到的幾個(gè)寄存器都介紹完畢,下面我們就介紹如何通過(guò)庫(kù)函數(shù)來(lái)配置實(shí)現(xiàn) PWM 三路輸出。 ? 開(kāi)啟 TIM3 時(shí)鐘以及復(fù)用功能輸出。 使能 GPIO 和端口復(fù)用功能時(shí)鐘。庫(kù)函數(shù)使能 TIM GPIO 以及復(fù)用功能時(shí)鐘的方法是: RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE)。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE)。 ? 初始化 TIM3,設(shè)置 TIM3 的 PSC 和 ARR。在開(kāi)啟了 TIM3 的時(shí)鐘之后,我們要設(shè)置 PSC 和 ARR 寄存器的值來(lái)控制 PWM 的輸出周期。調(diào)用的格式如下: =arr。 =psc。 =0。 =TIM_CounterMode_Up。 TIM_TimeBaseInit(TIM3, amp。TIM_TimeBaseStructure)。 ? 設(shè)置 TIM3_CH CH CH3 的 PWM 模式,使能 TIM3 的 CH CH CH3輸出。在庫(kù)函數(shù)中 PWM 通道設(shè)置是通過(guò) TIM_OC1Init~TIM_OC4Init 來(lái)設(shè)置的,這里我們需要 3 路 PWM 輸出,所以 我們需要使用函數(shù) TIM_OC1Init、TIM_OC2Init、 TIM_OC3Init。庫(kù)函數(shù)的調(diào)用格式如下: =TIM_OCMode_PWM1。 =TIM_OutputState_Enable。 = 0。 = TIM_OCPolarity_High。 TIM_OC2Init(TIM3, amp。TIM_OCInitStructure)。 TIM_OC1Init(TIM3, amp。TIM_OCInitStructure)。 TIM_OC3Init(TIM3, amp。TIM_OCInitStructure)。 ? 使能 TIM3。完成以上配置后,我們要使能定時(shí)器 TIM3。庫(kù)函數(shù)調(diào)用格式如下: TIM_Cmd(TIM3, ENABLE)。 基于 stm32 的智能小車(chē)設(shè)計(jì) 21 ? 通過(guò)修改 TIM3_CCRx(x 為 1,2,3)來(lái)控制占空比。庫(kù)函數(shù)格式如下: Void TIM_SetComparex(TIM3,uint16_t Compare2)。 我們可以知道,通過(guò)定時(shí)器 3 控制 PWM 波的占空比,從而實(shí)現(xiàn)速度方面的控制。其中 arr 和 psc 可以控制 PWM 波的周期, TIM3_CCRx 可以控制 PWM 波的占空比。我們只需要調(diào)用此函數(shù)就可以實(shí)現(xiàn)不同的速度控制。 對(duì)于運(yùn)動(dòng)方向控制的代碼我們就以后退為例, 由于端口寄存器過(guò)于簡(jiǎn)單,我們不在此介紹端口的寄存器。我們僅介紹如何通過(guò)庫(kù)函數(shù)進(jìn)行端口配置。對(duì)各個(gè) I/O端口配置的過(guò)程相似,我們僅以 PD8 為例: 主要 過(guò)程 如下所示: ? 使能 I/O 口時(shí)鐘 ,調(diào)用格式如下所示: RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOC, ENABLE)。 ? 初始化 I/O 參數(shù) ,調(diào)用格式如下所示: =GPIO_Pin_8。 =GPIO_Mode_Out_PP。 = GPIO_Speed_50MHz。 GPIO_Init(GPIOD, amp。GPIO_InitStructure)。 ? 操作 I/0 口 GPIO_SetBits(GPIOD,GPIO_Pin_8)。PD8 置 1 GPIO_ResetBits(GPIOD,GPIO_Pin_8)。PD8 置 0 我們知道了如何對(duì)端口進(jìn)行操作之后就可以隨意的控制小車(chē)的運(yùn)動(dòng)啦, 運(yùn)動(dòng)方向的程序設(shè)計(jì),其基本函數(shù)單元如下所示: void Left_Low(void)?!?我們調(diào)用這些函數(shù),就可以實(shí)現(xiàn)不同運(yùn)動(dòng)方向的控制。主要代碼詳見(jiàn)附錄 3. 避障模塊設(shè)計(jì) 在人類(lèi)身體構(gòu)造系統(tǒng)中 ,眼睛可以使我們非常方便的采集到外界環(huán)境的信息 ,然后 把信息 及時(shí)的傳輸?shù)酱竽X,并對(duì)外界環(huán)境 信息 的變化做出相應(yīng)的處理 。而對(duì)智能小車(chē)來(lái)說(shuō),避障模塊之于小車(chē)就相當(dāng)于眼睛之于人類(lèi)。避障模塊可以采集外部地形數(shù)據(jù),然后把所采集的地形數(shù)據(jù)傳輸?shù)街醒胩幚砟K,從而實(shí)現(xiàn)躲避障礙的功能。避障模塊所采用的器件在市場(chǎng)中有許多類(lèi)型,比如紅外檢測(cè),光位移檢基于 stm32 的智能小車(chē)設(shè)計(jì) 22 測(cè),超聲波檢測(cè)等。本次試驗(yàn)我們使用的是 HCSR04 超聲波檢測(cè),超聲波由于具有檢測(cè)能力強(qiáng),傳播路徑寬,因此我們決定使用 HCSR04 器件。 在使用 HCSR04 模塊進(jìn)行超聲波測(cè)距的同時(shí) ,我們可以使用舵機(jī)進(jìn)行輔助。舵機(jī)的主要作用是改變 HCSR04 模塊的照射方向,從而控制超聲波的發(fā)射方向。在程序編寫(xiě)過(guò)程中,如果小車(chē)前方遇見(jiàn)障礙時(shí),我們可以直接控制舵機(jī)的轉(zhuǎn)向,而小車(chē)的車(chē)身可以保持不變,在測(cè)量結(jié)束后,小車(chē)再做相應(yīng)的動(dòng)作。 避障模塊器件結(jié)構(gòu)及其原理 HCSR04 超聲波測(cè)距模塊測(cè)量范圍在 2cm400cm 之間,可以實(shí)現(xiàn)無(wú)接觸式測(cè)距功能。 HCSR04 超聲波測(cè)距模塊由一個(gè)超聲波發(fā)射器、一個(gè)超聲波接收器和控制電路組成,避障模塊的實(shí)物結(jié)構(gòu)圖如圖 所示: 圖 實(shí)物正反面結(jié)構(gòu)圖 如結(jié)構(gòu)圖所示 VCC 提供 5v 電源, GND 為接地線, TRIG 為觸發(fā)信號(hào)線, ECHO為回向信號(hào)輸出線?;驹砣缦拢翰捎?IO 口 TRIG 觸發(fā)測(cè)距,給至少 10us 的高電平信號(hào),在 TRIG 觸發(fā)沿到來(lái)后,超聲波發(fā)射器會(huì)自動(dòng)發(fā)出 8 個(gè) 40KHz 的方波,并且檢測(cè)是否有信號(hào)返回,當(dāng)超聲波接收器接收到超聲波時(shí),表明有信號(hào)返回,通過(guò) IO 口 ECHO 輸出一高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間。因此測(cè)量距離 =(高電平持續(xù)時(shí)間 *340m/s) /2。測(cè)量時(shí)序圖如圖 所示: 基于 stm32 的智能小車(chē)設(shè)計(jì) 23 圖 超聲波時(shí)序圖 我們根據(jù)時(shí)序圖,可以編寫(xiě)相應(yīng)的程序代碼。為了防止發(fā)射信號(hào)對(duì)回向信號(hào)的影響,我們的測(cè)量周期不易過(guò)小。并且由于 HCSR04 的感應(yīng)角度不大于 15176。,所以測(cè)距時(shí),為了防止發(fā)射信號(hào)丟失,我們要求被測(cè)物體的面積不應(yīng)小于 平方米,否則可能導(dǎo)致測(cè)量結(jié)果不準(zhǔn)確。 舵機(jī)在避障模塊的主要作用前面已經(jīng) 提到,本節(jié)主要講解舵機(jī)的工作特性。舵機(jī)的實(shí)物圖如圖 所示: 圖 舵機(jī)實(shí)物圖 舵機(jī)的工作工作原理是 stm32 微處理器發(fā)出數(shù)據(jù)給舵機(jī),舵機(jī)內(nèi)部有一個(gè)基準(zhǔn)電路,它會(huì)產(chǎn)生周期為 20ms,寬度為 的基準(zhǔn)信號(hào),它將微處理器傳輸?shù)闹绷髌秒妷号c電位器的電壓數(shù)據(jù)進(jìn)行比較,獲得電壓差輸出。經(jīng)由電路板上的IC 判斷轉(zhuǎn)動(dòng)方向,再驅(qū)動(dòng)無(wú)核心馬達(dá)開(kāi)始轉(zhuǎn)動(dòng),透過(guò)減速齒輪將動(dòng)力傳至擺臂,同時(shí)由位置檢測(cè)器送回反饋信號(hào)。舵機(jī)的轉(zhuǎn)動(dòng)角度與 stm32 所提供的 PWM 信號(hào)相關(guān)。標(biāo)準(zhǔn)信號(hào) PWM 周期為 20ms,理論上來(lái)講脈寬為 1~2ms,實(shí)際我們的脈寬為 ~,脈寬與所轉(zhuǎn)的角度一一對(duì)應(yīng)。 角度與脈寬的對(duì)應(yīng)圖如圖 所示: 基于 stm32 的智能小車(chē)設(shè)計(jì) 24 圖 舵機(jī)角度與脈寬對(duì)應(yīng)圖 HCSR04 模塊硬件電路設(shè)計(jì) 超聲波模塊硬件原理 圖如下圖所示: 圖 超聲波硬件原理圖 HCSR04 模塊主要由發(fā)射器、接收器和部分電路組成。在此 試驗(yàn)中,我們只需簡(jiǎn)單了解電路的設(shè)計(jì),對(duì)于其基本原理可以不用過(guò)多涉獵, 我們只需明白它們的工作原理,并且能夠簡(jiǎn)單運(yùn)用即可。 HCSR04 模塊程序設(shè)計(jì) 根據(jù)硬件電路的設(shè)計(jì),我們對(duì)避障子程序進(jìn)行設(shè)計(jì),程序流程圖如圖 所示: 基于 stm32 的智能小車(chē)設(shè)計(jì) 25 開(kāi) 始系 統(tǒng) 初 始 化前 進(jìn)前 方 是 否 有 障 礙舵 機(jī) 左 轉(zhuǎn)否是小 車(chē) 左 方 是 否 有 障 礙否舵 機(jī) 右 轉(zhuǎn)小 車(chē) 右 方 是 否 有 障 礙小 車(chē) 左 轉(zhuǎn)是小 車(chē) 右 轉(zhuǎn)否小 車(chē) 后 轉(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)控制超聲波的掃描周期。首先我們把 TIM2設(shè)置為定時(shí)器中斷模式,代碼格式為 void TIM2_Int_Init(u16 arr,u16 psc)。 由于配置定時(shí)器中斷模式十分簡(jiǎn)單,我們就不在詳細(xì)介紹,其詳細(xì)代碼見(jiàn)附錄 4.定時(shí)器 TIM2 的中斷周期計(jì)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1