基于STM32的小車控制_第1頁(yè)
基于STM32的小車控制_第2頁(yè)
基于STM32的小車控制_第3頁(yè)
基于STM32的小車控制_第4頁(yè)
基于STM32的小車控制_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、摘 要對(duì)于小車的控制,即是對(duì)于電機(jī)的控制。電機(jī)作為機(jī)電能量轉(zhuǎn)換裝置,其應(yīng)用范圍已遍及國(guó)民經(jīng)濟(jì)的各個(gè)領(lǐng)域以及人們的日常生活中,所以怎么更好的對(duì)電機(jī)進(jìn)行控制就顯得尤為重要?;贑ortex- M3內(nèi)核的STM32F10x系列芯片是新型的32位嵌入式微處理器,其性能優(yōu)良,移植性好,提高了對(duì)直流電機(jī)的控制效率,并對(duì)控制系統(tǒng)進(jìn)行模塊化設(shè)計(jì),有利于智能小車的功能擴(kuò)展和升級(jí)。本論文主要分析了基于STM32F103的小車控制系統(tǒng)的設(shè)計(jì)過(guò)程。此系統(tǒng)主要包括STM32F103控制器、液晶顯示電路、鍵盤控制電路、電機(jī)驅(qū)動(dòng)電路、紅外探測(cè)電路、觸角檢測(cè)電路等。以STM32F103主控芯片及其外圍擴(kuò)展電路實(shí)現(xiàn)系統(tǒng)整體功能

2、;小車基本運(yùn)動(dòng)模式的選擇及速度調(diào)節(jié)用按鍵開(kāi)關(guān)式的鍵盤輸入實(shí)現(xiàn);同時(shí)液晶模塊實(shí)時(shí)顯示小車運(yùn)動(dòng)參數(shù);用紅外探測(cè)電路實(shí)現(xiàn)小車循跡功能;用觸角傳感檢測(cè)模塊實(shí)現(xiàn)小車簡(jiǎn)單避障功能。在硬件設(shè)計(jì)的基礎(chǔ)上提出了實(shí)現(xiàn)電機(jī)控制功能、LCD顯示功能及小車簡(jiǎn)單循跡和避障功能的軟件設(shè)計(jì)方案,并在STM32集成開(kāi)發(fā)環(huán)境IAR EWARM 5.3下編寫了控制程序。關(guān)鍵詞:PWM,STM32F103,電機(jī),傳感器ABSTRACTThe controlling to the car is the controlling to the motor. As a mechanical and electrical energy con

3、version devices, motor has been applied in every field of national economy and peoples daily life, therefore, how to control the motor better is particularly important. The STM32F10x series chip based on Cortex-M3 kernel is the new 32-bit embedded MCU, which have the good performance and portability

4、, and the STM32F10x have improved the efficiency of DC motor control, furthermore, the modular design of control system is helpful for function expansion and upgrades. This paper mainly analyzes the design process of the cars control system ,which uses the STM32F103 as a master chip. This system pri

5、marily contains the STM32F103 controller, LCD circuit, the control circuit of keyboard, the circuit of motor-driven, the infrared detection circuit, the circuit of tentacles sensor etc. In this design, the whole system is controlled by the chip STM32F103 and its peripheral extended circuit; the basi

6、c models selection and speed accommodation can realize by the input of keyboard; at the moment , LCD module display the cars moving parameters real-timely; the infrared detection realize cars tracing function; tentacles sensor module complete the cars simple obstacle-avoidance function. Based on Har

7、dware design, the paper puts forward a software design scheme to realize the motor controlling, LCD display function , the cars simple trace and obstacle avoidance function. Then the control code is written on IAR EWARM 5.3 which is an IDE of STM32F103.KEY WORDS: PWM, STM32F103, motor, sensor目 錄 前 言

8、1第1章 緒論21.1 STM32芯片介紹21.1.1STM32處理器的分類21.1.2 STM32處理器的內(nèi)部結(jié)構(gòu)及特點(diǎn)31.1.3 TIMx定時(shí)器介紹41.2 小車及其驅(qū)動(dòng)器介紹61.2.1 小車結(jié)構(gòu)及功能簡(jiǎn)介61.2.2 電機(jī)驅(qū)動(dòng)電路簡(jiǎn)介7第2章 小車控制系統(tǒng)硬件設(shè)計(jì)92.1 系統(tǒng)功能實(shí)現(xiàn)及需求分析92.2 主要電路設(shè)計(jì)102.2.1 STM32F103及外圍電路設(shè)計(jì)102.2.2 電源電路設(shè)計(jì)122.2.3 電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)122.2.4 液晶顯示電路設(shè)計(jì)132.2.5 鍵盤擴(kuò)展電路設(shè)計(jì)142.2.6 觸角探測(cè)電路設(shè)計(jì)152.2.7 紅外探測(cè)電路設(shè)計(jì)15第3章 小車控制系統(tǒng)軟件設(shè)計(jì)17

9、3.1 IAR開(kāi)發(fā)環(huán)境介紹173.2 程序設(shè)計(jì)思路及部分模塊程序183.2.1 程序設(shè)計(jì)思路183.2.2 按鍵子程序193.2.3 循跡子程序213.2.4 自由行走子程序223.2.5 LCD顯示子程序23第4章 結(jié)論24致謝25參考文獻(xiàn)26附錄27前 言隨著計(jì)算機(jī)、微電子、信息技術(shù)的快速發(fā)展,智能化技術(shù)的開(kāi)發(fā)速度越來(lái)越快,程度越來(lái)越高,廣泛應(yīng)用于海洋開(kāi)發(fā)、宇宙探測(cè)、工農(nóng)業(yè)生產(chǎn)、軍事、社會(huì)服務(wù)、娛樂(lè)等各個(gè)領(lǐng)域。智能電動(dòng)小車系統(tǒng)以迅猛發(fā)展的汽車電子為背景,涵蓋了控制、模式識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科,主要由路徑識(shí)別、角度控制及車速控制等功能模塊組成,被應(yīng)用于隧道探測(cè)、機(jī)

10、器人、考古、娛樂(lè)等許多方面。因此,對(duì)智能小車的研究具有重要的實(shí)際意義。嵌入式技術(shù)依靠其體積小、成本低、功能強(qiáng)等特點(diǎn),適應(yīng)了智能化發(fā)展的最新要求。單片機(jī)作為控制系統(tǒng)的微處理器,在數(shù)據(jù)處理和代碼存儲(chǔ)等方面都已經(jīng)無(wú)法滿足系統(tǒng)的要求,ARM微處理器資源豐富,具有良好的通用性。Cortex-M3是ARM公司最新推出的第一款基于ARMv7體系的處理器內(nèi)核。它主要針對(duì)MCU領(lǐng)域,在存儲(chǔ)系統(tǒng)、中斷系統(tǒng)、調(diào)試接口等方面做了較大的改進(jìn),有別于過(guò)去的ARM7處理器;Cortex-M3具有高性能、低功耗、極低成本、穩(wěn)定等諸多優(yōu)點(diǎn),非常適合汽車電子、工業(yè)控制系統(tǒng)、醫(yī)療器械、玩具等領(lǐng)域?;贑ortex-M3內(nèi)核的STM

11、32系列處理器于2007年由ST公司率先推出,它集先進(jìn)Cortex-M3內(nèi)核結(jié)構(gòu)、出眾創(chuàng)新的外設(shè)、良好的功耗和低成本于一體,極大的滿足自動(dòng)控制系統(tǒng)設(shè)計(jì)要求。作為先進(jìn)的32位通用微控制器的領(lǐng)跑者,STM32以其出眾的性能、豐富且靈活的外設(shè)、很高的性價(jià)比以及令人意外的功耗水準(zhǔn),使其自面世以來(lái)得到眾多設(shè)計(jì)者的青睞,眾多行業(yè)領(lǐng)導(dǎo)者紛紛選用STM32作為新一代產(chǎn)品的平臺(tái)。因此將STM32F103應(yīng)用于智能小車的控制系統(tǒng)是一種較好的選擇?;诖?,本文提出了一個(gè)比較合理的智能小車系統(tǒng)設(shè)計(jì)方案。整個(gè)小車系統(tǒng)以STM32F103芯片為控制核心,附以外圍電路,利用紅外探測(cè)器、觸角傳感器采集外界信息和檢測(cè)障礙物;充

12、分利用STM32F103的串口、并口資源和高速的運(yùn)算、處理能力,來(lái)實(shí)現(xiàn)小車自動(dòng)識(shí)別路線按跡行走、躲避障礙物,并且通過(guò)LCD顯示器實(shí)時(shí)顯示小車運(yùn)動(dòng)參數(shù);配置STM32F103通用定時(shí)器為PWM輸出模式產(chǎn)生PWM波,通過(guò)步進(jìn)調(diào)節(jié)PWM波占空比參數(shù)控制電機(jī)的轉(zhuǎn)速;設(shè)計(jì)簡(jiǎn)便的按鍵式鍵盤輸入來(lái)切換小車運(yùn)行模式,以及調(diào)節(jié)小車速度。第1章 緒論1.1 STM32芯片介紹2006年ARM公司推出了基于ARMv7架構(gòu)的Cortex系列的標(biāo)準(zhǔn)體系結(jié)構(gòu),以滿足各種技術(shù)的不同性能要求,包含A、R、M三個(gè)分工明確的系列1。其中,A系列面向復(fù)雜的尖端應(yīng)用程序,用于運(yùn)行開(kāi)放式的復(fù)雜操作系統(tǒng);R系列適合實(shí)時(shí)系統(tǒng);M系列則專門

13、針對(duì)低成本的微控制領(lǐng)域。Cortex-M3是首款基于ARMv7-M體系結(jié)構(gòu)的32位標(biāo)準(zhǔn)處理器,具有低功耗、少門數(shù)、短中斷延遲、低調(diào)試成本等眾多優(yōu)點(diǎn)。它是專門為在微控制系統(tǒng)、汽車車身系統(tǒng)、工業(yè)控制系統(tǒng)和無(wú)線網(wǎng)絡(luò)等對(duì)功耗和成本敏感的嵌入式應(yīng)用領(lǐng)域?qū)崿F(xiàn)高系統(tǒng)性能而設(shè)計(jì)的,它大大簡(jiǎn)化了編程的復(fù)雜性,集高性能、低功耗、低成本于一體2。半導(dǎo)體制造廠商意法半導(dǎo)體ST公司是ARM公司Cortex-M3內(nèi)核開(kāi)發(fā)項(xiàng)目一個(gè)主要合作方,2007年6月11日ST公司率先推出了基于Cortex-M3內(nèi)核的STM32系列MCU。本章將簡(jiǎn)要介紹STM32系列處理器的分類、內(nèi)部結(jié)構(gòu)及特點(diǎn),并對(duì)本設(shè)計(jì)中重點(diǎn)應(yīng)用的通用定時(shí)器做進(jìn)一

14、步分析。1.1.1 STM32處理器的分類STM32系列處理器目前分為2個(gè)系列。STM32F101是標(biāo)準(zhǔn)型系列,工作在36MHZ;STM32F103是增強(qiáng)型系列,工作在72MHZ,帶有更多片內(nèi)RAM和更豐富的外設(shè)。這兩個(gè)系列的產(chǎn)品擁有相同的片內(nèi)Flash選項(xiàng),在軟件和引腳封裝方面是兼容3。標(biāo)準(zhǔn)型系列是STM32處理器入門產(chǎn)品,其價(jià)格僅相同于16位MCU卻擁有32位MCU的性能,其外設(shè)的配置能提供優(yōu)秀的控制和聯(lián)接能力。增強(qiáng)型系列產(chǎn)品則將32位MCU的性能和功效引向一個(gè)新的級(jí)別。內(nèi)含的Cortex-M3內(nèi)核工作在72MHZ,能實(shí)現(xiàn)高端運(yùn)算,其外設(shè)的配置能提供極好的控制和聯(lián)接能力。 STM32全系列

15、處理器擁有的腳對(duì)腳、外設(shè)及軟件的高度兼容性,這給其應(yīng)用帶來(lái)全方位的靈活性,可以在不必修改原始框架及軟件的條件下,將應(yīng)用升級(jí)到需要更多的存儲(chǔ)空間,或精簡(jiǎn)到使用更少的存儲(chǔ)空間,或改用不同的封裝規(guī)格。 對(duì)于使用同一平臺(tái)進(jìn)行多個(gè)項(xiàng)目的開(kāi)發(fā)而言,STM32更是一種非常好的選擇。因?yàn)樵赟TM32全系列產(chǎn)品中,既有適合僅需少量的存儲(chǔ)空間和引腳,也有滿足需要更多的存儲(chǔ)空間和引腳;既有適于高性能應(yīng)用的,又有滿足低功耗要求的;既有適合低成本簡(jiǎn)單應(yīng)用,也有滿足高端復(fù)雜應(yīng)用的。全系列兼容,使得項(xiàng)目之間的代碼重用和代碼移植變得非常方便。1.1.2 STM32處理器的內(nèi)部結(jié)構(gòu)及特點(diǎn)STM32F103系列微處理器是首款基于

16、ARMv7-M體系結(jié)構(gòu)的32位標(biāo)準(zhǔn)RISC (精簡(jiǎn)指令集)處理器,提供很高的代碼效率,在通常8位和16位系統(tǒng)的存儲(chǔ)空間上發(fā)揮了ARM 內(nèi)核的高性能。該系列微處理器工作頻率為72MHz,內(nèi)置高達(dá)128K 字節(jié)的Flash存儲(chǔ)器存儲(chǔ)器 存儲(chǔ)器是用來(lái)存儲(chǔ)程序和數(shù)據(jù)的部件,有了存儲(chǔ)器,計(jì)算機(jī)才有記憶功能,才能保證正常工作。它根據(jù)控制器指定的位置存進(jìn)和取出信息。 全文和20K 字節(jié)的SRAM,具有豐富的通用I/O 端口。其內(nèi)部結(jié)構(gòu)圖如圖1.1所示。 圖1.1 STM32F10x內(nèi)部結(jié)構(gòu)圖4STM32F103系列微處理器主要資源和特點(diǎn)如下5:1. 多達(dá)51個(gè)快速I /O 端口,所有I/O口均可以映像到16

17、個(gè)外部中斷, 幾乎所有端口都允許5V 信號(hào)輸入。每個(gè)端口都可以由軟件配置成輸出(推挽或開(kāi)漏)、輸入(帶或不帶上拉或下拉)或其它的外設(shè)功能口。2. 2個(gè)12位模數(shù)轉(zhuǎn)換器,多達(dá)16個(gè)外部輸入通道,轉(zhuǎn)換速率可達(dá)1MHz,轉(zhuǎn)換范圍為0 36V;具有雙采樣和保持功能;內(nèi)部嵌入溫度傳感器溫度傳感器 。3. 靈活的7路通用DMA 可以管理存儲(chǔ)器到存儲(chǔ)器、設(shè)備到存儲(chǔ)器和存儲(chǔ)器到設(shè)備的數(shù)據(jù)傳輸,無(wú)須CPU 任何干預(yù)。通過(guò)DMA可以使數(shù)據(jù)快速地移動(dòng),這就節(jié)省了 CPU 的資源來(lái)進(jìn)行其他操作。DMA 控制器支持環(huán)形緩沖區(qū)的管理,避免了控制器傳輸?shù)竭_(dá)緩沖區(qū)結(jié)尾時(shí)所產(chǎn)生的中斷。它支持的外設(shè)包括:定時(shí)器、ADC、SPI、

18、I2C和USART 等。4. 調(diào)試模式:支持標(biāo)準(zhǔn)的20腳JTAG 仿真調(diào)試以及針對(duì)Cortex- M3內(nèi)核的串行單線調(diào)試(SWD)功能。通常默認(rèn)的調(diào)試接口是JTAG 接口。5. 含有豐富的通信接口:三個(gè)USART異步串行通信接口、兩個(gè)I2C 接口、兩個(gè)SPI接口、一個(gè)CAN 接口和一個(gè)USB接口,為實(shí)現(xiàn)數(shù)據(jù)通信提供了保證。6. 內(nèi)部包含8個(gè)定時(shí)器。在本設(shè)計(jì)中電機(jī)調(diào)速通過(guò)定時(shí)器的PWM功能實(shí)現(xiàn)。這將在下一節(jié)做進(jìn)一步介紹。1.1.3 TIMx定時(shí)器介紹STM32F10x系列處理器內(nèi)部有8個(gè)定時(shí)器,其中TIM1和TIM8為高級(jí)控制定時(shí)器,TIM2、TIM3、TIM4和TIM5為4個(gè)獨(dú)立的通用定時(shí)器,

19、TIM6和TIM7為基本定時(shí)器。這8個(gè)定時(shí)器各包含一個(gè)16位自動(dòng)裝載計(jì)數(shù)器,由各自的可編程預(yù)分頻器驅(qū)動(dòng)。其中基本定時(shí)器可以為通用定時(shí)器提供時(shí)間基準(zhǔn),特別地可以為數(shù)模轉(zhuǎn)換器(DAC)提供時(shí)鐘,實(shí)際上,它們?cè)谛酒瑑?nèi)部直接連接到DAC并通過(guò)觸發(fā)輸出直接驅(qū)動(dòng)DAC。通用定時(shí)器TIMx,它適用于多種場(chǎng)合,包括測(cè)量輸入信號(hào)的脈沖長(zhǎng)度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和PWM)。通過(guò)對(duì)定時(shí)器預(yù)分頻器和RCC時(shí)鐘控制器預(yù)分頻器的編程,可將脈沖長(zhǎng)度和波形周期在幾個(gè)微秒到幾個(gè)毫秒間進(jìn)行調(diào)整。每個(gè)定時(shí)器都是完全獨(dú)立的,沒(méi)有互相共享任何資源,它們也可以一起同步操作。STM32F103主控芯片的8個(gè)定時(shí)器中,高級(jí)控

20、制定時(shí)器TIM1和TIM8及4個(gè)通用定時(shí)器均可生成PWM波。高級(jí)控制定時(shí)器與通用定時(shí)器相比較,它們有非常多的相似之處,雖然前者功能要強(qiáng)大些,但鑒于后者已能夠滿足設(shè)計(jì)要求,因此選用通用定時(shí)器作為PWM生成模塊。下面簡(jiǎn)要介紹通用定時(shí)器的特性及功能。通用定時(shí)器TIMx (TIM2、TIM3、TIM4和TIM5)主要特性如下6:1. 16位向上、向下、向上/向下自動(dòng)裝載計(jì)數(shù)器。2. 16位可編程(可以實(shí)時(shí)修改)預(yù)分頻器,計(jì)數(shù)器時(shí)鐘頻率的分頻系數(shù)為165536之間的任意數(shù)值。3. 4個(gè)獨(dú)立通道:輸入捕獲、輸出比較、PWM生成(邊緣或中間對(duì)齊模式)、單脈沖模式輸出。4. 使用外部信號(hào)控制定時(shí)器和定時(shí)器互連

21、的同步電路。 5. 如下事件發(fā)生時(shí)產(chǎn)生中斷/DMA:更新:計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過(guò)軟件或者內(nèi)部/外部觸發(fā));觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù));輸入捕獲;輸出比較。 6. 支持針對(duì)定位的增量(正交)編碼器和霍爾傳感器電路。7. 觸發(fā)輸入作為外部時(shí)鐘或者按周期的電流管理。對(duì)通用定時(shí)器TIMx功能簡(jiǎn)要描述如下7:時(shí)基單元可編程通用定時(shí)器的主要部分是一個(gè)16位計(jì)數(shù)器和與其相關(guān)的自動(dòng)裝載寄存器。這個(gè)計(jì)數(shù)器可以向上計(jì)數(shù) 、向下計(jì)數(shù)或者向上向下雙向計(jì)數(shù)。此計(jì)數(shù)器時(shí)鐘由預(yù)分頻器分頻得到。時(shí)基單元包含計(jì)數(shù)器寄存器(TIMx_CNT)、預(yù)分頻器寄存器 (TIMx_P

22、SC)和自動(dòng)裝載寄存器 (TIMx_ARR),它們都可以由軟件讀寫,在計(jì)數(shù)器運(yùn)行時(shí)仍可以讀寫。預(yù)分頻寄存器用于設(shè)定計(jì)數(shù)器的時(shí)鐘頻率;自動(dòng)裝載寄存器的內(nèi)容是預(yù)先裝載的,其內(nèi)容被永久的保存在影子寄存器,或每次更新事件UEA發(fā)生時(shí)傳送到影子寄存器;當(dāng)計(jì)數(shù)器達(dá)到溢出條件且當(dāng)TIMx_CR1寄存器中的UDIS位為0時(shí),產(chǎn)生更新事件。更新事件也可由軟件產(chǎn)生。定時(shí)器工作模式有計(jì)數(shù)器模式、輸入捕獲模式、PWM輸入模式、強(qiáng)制輸出模式、PWM模式等,根據(jù)設(shè)計(jì)要求,定時(shí)器應(yīng)配置成PWM模式生成不同占空比的PWM波。以下對(duì)PWM模式做簡(jiǎn)要介紹。脈沖寬度調(diào)制(PWM)模式可以產(chǎn)生一個(gè)由TIMx_ARR寄存器確定頻率、由

23、TIMx_CCRx寄存器確定占空比的信號(hào)。在TIMx_CCMRx寄存器中的OCxM位寫入110(PWM模式1)或111(PWM模式2),能夠獨(dú)立地設(shè)置每個(gè)OCx輸出通道產(chǎn)生一路PWM。使用PWM模式,必須通過(guò)設(shè)置TIMx_CCMRx寄存器的OCxPE位使能相應(yīng)的預(yù)裝載寄存器,最后還要設(shè)置TIMx_CR1寄存器的ARPE位,(在向上計(jì)數(shù)或中心對(duì)稱模式中)使能自動(dòng)重裝載的預(yù)裝載寄存器。因?yàn)閮H當(dāng)發(fā)生一個(gè)更新事件的時(shí)候,預(yù)裝載寄存器才能被傳送到影子寄存器,因此在計(jì)數(shù)器開(kāi)始計(jì)數(shù)之前,必須通過(guò)設(shè)置TIMx_EGR寄存器中的UG位來(lái)初始化所有的寄存器。OCx的極性可以通過(guò)軟件在TIMx_CCER寄存器中的C

24、CxP位設(shè)置,它可以設(shè)置為高電平有效或低電平有效。OCx的輸出使能通過(guò)(TIMx_CCER和TIMx_BDTR寄存器中)CCxE、CCxNE、MOE、OSSI和OSSR位的組合控制。在PWM模式(模式1或模式2)下,TIMx_CNT和TIMx_CCRx始終在進(jìn)行比較,依據(jù)計(jì)數(shù)器的計(jì)數(shù)方向以確定是否符合TIMx_CCRxTIMx_CNT或者TIMx_CNTTIMx_CCRx。 根據(jù)TIMx_CR1寄存器中CMS位的狀態(tài),定時(shí)器能夠產(chǎn)生邊沿對(duì)齊的PWM信號(hào)或中央對(duì)齊的PWM信號(hào)8。PWM輸出信號(hào)的占空比由TIMx_CRRx寄存器確定的。其公式為“占空比=(TIMx_CRRx/TIMx_ARR)*1

25、00%”,因此,可以通過(guò)向CRR中填入適當(dāng)?shù)臄?shù)來(lái)輸出自己所需的頻率和占空比的方波信號(hào),進(jìn)而實(shí)現(xiàn)本設(shè)計(jì)中調(diào)速功能。1.2 小車及其驅(qū)動(dòng)器介紹1.2.1 小車結(jié)構(gòu)及功能簡(jiǎn)介所謂小車控制實(shí)際上就是電機(jī)控制,本論文所設(shè)計(jì)的小車分為電機(jī)系統(tǒng)、顯示系統(tǒng)、控制系統(tǒng)、避障和循跡系統(tǒng)五大結(jié)構(gòu)。電機(jī)系統(tǒng)使用兩個(gè)電機(jī)(A和B),設(shè)定正轉(zhuǎn)、反轉(zhuǎn)和停止三種狀態(tài),分別控制左輪和右輪,通過(guò)兩個(gè)電機(jī)的轉(zhuǎn)動(dòng)狀態(tài)切換控制小車的行駛方向,例如前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn),實(shí)現(xiàn)小車的基本運(yùn)動(dòng)功能;通過(guò)對(duì)電機(jī)轉(zhuǎn)速的調(diào)節(jié)控制小車的運(yùn)動(dòng)速度。根據(jù)實(shí)際情況,假設(shè)兩個(gè)電機(jī)相對(duì)安裝,則表1-1是電機(jī)轉(zhuǎn)動(dòng)狀態(tài)與小車運(yùn)動(dòng)方向的關(guān)系表。表1-1 電機(jī)轉(zhuǎn)動(dòng)狀

26、態(tài)與小車運(yùn)動(dòng)方向關(guān)系表運(yùn)動(dòng)狀態(tài)電機(jī)A(右輪)電機(jī)B(左輪)前進(jìn)正轉(zhuǎn)反轉(zhuǎn)后退反轉(zhuǎn)正轉(zhuǎn)右轉(zhuǎn)停止正轉(zhuǎn)左轉(zhuǎn)正轉(zhuǎn)停止小車的顯示系統(tǒng),即小車裝有液晶顯示器(12864),初始化由編程設(shè)定,小車運(yùn)動(dòng)過(guò)程中實(shí)時(shí)顯示小車的運(yùn)動(dòng)參數(shù),并可在以后予以擴(kuò)展,根據(jù)實(shí)際運(yùn)用的需要顯示更多內(nèi)容。小車的控制系統(tǒng)為按鍵開(kāi)關(guān)式的鍵盤,設(shè)定小車啟動(dòng)/停止、自由行走模式/循跡模式、加速/減速六種狀態(tài),最初都賦以高電平,當(dāng)按鍵被按下時(shí),即觸發(fā)低電平,使小車按相應(yīng)狀態(tài)運(yùn)動(dòng)。小車避障系統(tǒng),即在自由行走模式下通過(guò)觸角傳感器對(duì)障礙物檢測(cè),使小車實(shí)現(xiàn)自動(dòng)避障功能。小車循跡系統(tǒng),即在循跡模式下通過(guò)紅外探測(cè)器對(duì)黑跡不斷進(jìn)行檢測(cè),自動(dòng)識(shí)別路線,使小車

27、按指定的路線行駛。1.2.2 電機(jī)驅(qū)動(dòng)電路簡(jiǎn)介電機(jī)驅(qū)動(dòng)電路采用L298芯片控制,其內(nèi)部原理圖如圖1.2。L298是恒壓恒流雙H橋集成電機(jī)芯片,可同時(shí)控制兩個(gè)電機(jī),且輸出電流可達(dá)到2A。直流電機(jī)驅(qū)動(dòng)電路使用最廣泛的就是H型全橋式電路,這種驅(qū)動(dòng)電路可以很方便實(shí)現(xiàn)直流電機(jī)的四象限運(yùn)行,分別對(duì)應(yīng)正轉(zhuǎn)、正轉(zhuǎn)制動(dòng)、反轉(zhuǎn)、反轉(zhuǎn)制動(dòng)。S2S4S3S1圖1.2 L298內(nèi)部原理圖全橋式驅(qū)動(dòng)電路的4只開(kāi)關(guān)管都工作在斬波狀態(tài),如圖1.2所示,S1、S2為一組,S3、S4 為另一組,兩組的狀態(tài)互補(bǔ),一組導(dǎo)通則另一組必須關(guān)斷。當(dāng)S1、S2導(dǎo)通時(shí),S3、S4關(guān)斷,電機(jī)兩端加正向電壓,可以實(shí)現(xiàn)電機(jī)的正轉(zhuǎn)或反轉(zhuǎn)制動(dòng);當(dāng)S3、

28、S4導(dǎo)通時(shí),S1、S2關(guān)斷,電機(jī)兩端為反向電壓,電機(jī)反轉(zhuǎn)或正轉(zhuǎn)制動(dòng)。在小車動(dòng)作的過(guò)程中,我們要不斷地使電機(jī)在四個(gè)象限之間切換,即在正轉(zhuǎn)和反轉(zhuǎn)之間切換,也就是在S1、S2導(dǎo)通且S3、S4關(guān)斷,到S1、S2關(guān)斷且S3、S4導(dǎo)通,這兩種狀態(tài)之間轉(zhuǎn)換。在這種情況下,理論上要求兩組控制信號(hào)完全互補(bǔ),但是,由于實(shí)際的開(kāi)關(guān)器件都存在開(kāi)通和關(guān)斷時(shí)間,絕對(duì)的互補(bǔ)控制邏輯必然導(dǎo)致上下橋臂直通短路,比如在上橋臂關(guān)斷的過(guò)程中,下橋臂導(dǎo)通了。這個(gè)過(guò)程可用圖1.3說(shuō)明。圖1.3上下橋臂導(dǎo)通圖因此,為了避免直通短路且保證各個(gè)開(kāi)關(guān)管動(dòng)作之間的協(xié)同性和同步性,兩組控制信號(hào)在理論上要求互為倒相的邏輯關(guān)系,而實(shí)際上卻必須相差一個(gè)足

29、夠的死區(qū)時(shí)間,這個(gè)矯正過(guò)程既可以通過(guò)硬件實(shí)現(xiàn),即在上下橋臂的兩組控制信號(hào)之間增加延時(shí),也可以通過(guò)軟件實(shí)現(xiàn)。對(duì)于PWM(脈沖寬度調(diào)制)控制,通常配合橋式驅(qū)動(dòng)電路實(shí)現(xiàn)直流電機(jī)調(diào)速,非常簡(jiǎn)單,且調(diào)速范圍大,它的原理就是直流斬波原理。若S3、S4 關(guān)斷,S1、S2受PWM控制,假設(shè)高電平導(dǎo)通,忽略開(kāi)關(guān)管損耗,則在一個(gè)周期內(nèi)的導(dǎo)通時(shí)間為t,周期為T,則電機(jī)兩端的平均電壓為:U=Vcc*t/ T=*Vcc ,其中=t/T稱為占空比,Vcc為電源電壓(電源電壓減去兩個(gè)開(kāi)關(guān)管的飽和壓降)9。PWM的占空比決定輸出到直流電機(jī)電樞電壓的平均電壓,進(jìn)而決定了直流電機(jī)的轉(zhuǎn)速。L298的EN A(第6引腳)、EN B(

30、第11引腳)分別與兩路PWM波輸出端相連,控制電機(jī)是否轉(zhuǎn)動(dòng)。IN1-IN4兩對(duì)I/O輸入,控制電機(jī)轉(zhuǎn)動(dòng)方向。SENSE A、SENSE B為電流反饋引腳。Vss電壓最小為4.5V,最大可達(dá)36V;Vs電壓最大值也是36V。但經(jīng)過(guò)實(shí)驗(yàn),Vs電壓應(yīng)該比Vss電壓高,否則有時(shí)會(huì)出現(xiàn)失控現(xiàn)象。第2章 小車控制系統(tǒng)硬件設(shè)計(jì)2.1 系統(tǒng)功能實(shí)現(xiàn)及需求分析本設(shè)計(jì)采用STM32F103芯片作為控制器來(lái)實(shí)現(xiàn)對(duì)小車電機(jī)、液晶顯示模塊、外置鍵盤、傳感器探測(cè)等外設(shè)的控制是一個(gè)合理的解決方案。STM32F103具有豐富的外設(shè)接口、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn),采用模塊化設(shè)計(jì),滿足實(shí)際需要及擴(kuò)展;用液晶顯示模塊可以實(shí)時(shí)顯示小車的工作狀

31、態(tài),比如顯示小車是處在自由行走模式還是在循跡模式等;利用鍵盤的外部輸入實(shí)現(xiàn)對(duì)小車行走模式的選擇和速度的步進(jìn)調(diào)節(jié);利用傳感器檢測(cè)外界信息,實(shí)現(xiàn)小車簡(jiǎn)單的避障和循跡功能。基于設(shè)計(jì)功能需求,本設(shè)計(jì)采用的是低電平觸發(fā)的按鍵開(kāi)關(guān)式鍵盤,這樣可以合理地利用硬件資源,操作簡(jiǎn)便,并且編程靈活。本論文設(shè)計(jì)的小車控制系統(tǒng)框圖如圖2.1所示。圖2.1 電機(jī)控制系統(tǒng)框圖由系統(tǒng)框圖可看出,小車整個(gè)控制系統(tǒng)設(shè)計(jì)主要包括電機(jī)驅(qū)動(dòng)、液晶顯示、鍵盤擴(kuò)展電路、觸角傳感電路、紅外收發(fā)檢測(cè)電路等模塊。整個(gè)系統(tǒng)的硬件電路設(shè)計(jì)原理圖見(jiàn)附錄,下面分別介紹各部分模塊的設(shè)計(jì)。2.2 主要電路設(shè)計(jì)2.2.1 STM32F103及外圍電路設(shè)計(jì) 本

32、設(shè)計(jì)采用STM32F103為主控芯片,則STM32F103芯片的最小系統(tǒng)設(shè)計(jì)如圖2.2、2.3所示。圖2.2 STM32F103芯片最小系統(tǒng)圖圖2.3 STM32F103芯片最小系統(tǒng)圖續(xù)如圖2.2、2.3,此部分電路包括系統(tǒng)時(shí)鐘電路、實(shí)時(shí)時(shí)鐘電路、JTAG調(diào)試接口電路,復(fù)位電路和啟動(dòng)模式選擇電路。下面對(duì)部分電路設(shè)計(jì)做簡(jiǎn)要說(shuō)明。1時(shí)鐘電路系統(tǒng)時(shí)鐘電路選用8MHZ的HSE晶體作為振蕩器晶振。如圖2.2所示,由R113、Y100(HSE晶振)、C108及C109構(gòu)成系統(tǒng)時(shí)鐘電路。HSE晶體可以通過(guò)設(shè)置時(shí)鐘控制寄存器里RCC_CR中的HSEON位被啟動(dòng)和關(guān)閉。實(shí)時(shí)時(shí)鐘電路選擇LSE時(shí)鐘模式,如圖2.2

33、所示,由Y101(LSE晶振)、C112及C113構(gòu)成LSE旁路,提供一個(gè)32.768kHz頻率的外部時(shí)鐘源。LSE晶體是一個(gè)32.768kHz的低速外部晶體或陶瓷諧振器。它為實(shí)時(shí)時(shí)鐘或者其他定時(shí)功能提供一個(gè)低功耗且精確的時(shí)鐘源。2啟動(dòng)模式選擇電路如圖2.3所示,通過(guò)BOOT1:0引腳可以選擇三種不同啟動(dòng)模式。如下表2-1所示。 表2-1 啟動(dòng)模式啟動(dòng)模式選擇引腳啟動(dòng)模式說(shuō)明BOOT1BOOT0X0主閃存存儲(chǔ)器主閃存存儲(chǔ)器被選為啟動(dòng)區(qū)域01系統(tǒng)存儲(chǔ)器系統(tǒng)存儲(chǔ)器被選為啟動(dòng)區(qū)域11內(nèi)置SRAM內(nèi)置SRAM被選為啟動(dòng)區(qū)域在系統(tǒng)復(fù)位后,SYSCLK的第4個(gè)上升沿,BOOT引腳的值將被鎖存。此時(shí)可以通過(guò)

34、設(shè)置BOOT1和BOOT0引腳的狀態(tài),來(lái)選擇在復(fù)位后的啟動(dòng)模式。2.2.2 電源電路設(shè)計(jì)由于各電路模塊所需電壓不同,本設(shè)計(jì)需多種電源供電。STM32F103主控芯片采用3.3V供電,電機(jī)驅(qū)動(dòng)采用5V與12V,紅外收發(fā)檢測(cè)電路采用5V與3.3V,液晶顯示與觸角傳感電路均采用3.3V供電。外部電源采用12V的直流電壓,因此根據(jù)設(shè)計(jì)要求,本設(shè)計(jì)進(jìn)行了電源轉(zhuǎn)換設(shè)計(jì)。1. 采用KA7805芯片實(shí)現(xiàn)12V到5V的轉(zhuǎn)換。KA7805的作用是輸入大于5V的直流電壓,輸出5V的直流電壓,且管腳較少,易于連接和實(shí)現(xiàn),穩(wěn)定性高。圖2.4為KA7805芯片引腳接線圖。圖2.4 KA7805引腳接線圖2.本設(shè)計(jì)采用LM

35、1117-3.3芯片將5V轉(zhuǎn)換為3.3V,具體電路設(shè)計(jì)如圖2.5 所示。圖2.5 LM1117-3.3引腳接線圖2.2.3 電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)STM32F103芯片外部擴(kuò)展的電機(jī)驅(qū)動(dòng)電路采用L298芯片控制,其基本電路圖如圖2.6。圖2.6 電機(jī)驅(qū)動(dòng)電路基本電路原理圖如圖2.6所示,小車運(yùn)動(dòng)狀態(tài)通過(guò)電機(jī)A和B的不同方向轉(zhuǎn)動(dòng)來(lái)實(shí)現(xiàn),電機(jī)有正轉(zhuǎn)、反轉(zhuǎn)和停止三種狀態(tài),每個(gè)電機(jī)由一對(duì)I/O口進(jìn)行控制。表2-2是I/O端口狀態(tài)與電機(jī)制動(dòng)對(duì)照表。表2-2 I/O端口狀態(tài)與電機(jī)制動(dòng)對(duì)照表電機(jī)AIN1IN2電機(jī)BIN3IN4停止00停止00正轉(zhuǎn)10正轉(zhuǎn)10反轉(zhuǎn)01反轉(zhuǎn)011111L298芯片采用5V(VSS)與

36、12V(VS)直壓供電,EN A和EN B分別用STM32F103主控芯片的TIM3_CH3和PB1/ADC_IN9/TIM3_CH4控制,產(chǎn)生PWM1和PWM2兩路PWM波輸出,IN1-IN4分別用PE3-PE6實(shí)現(xiàn)I/O輸出控制電機(jī)轉(zhuǎn)動(dòng)方向。在L298與電機(jī)之間加入二極管,以保護(hù)電路。2.2.4 液晶顯示電路設(shè)計(jì)顯示模塊采用LCD12864與STM32F103主控芯片串行通信方式,即LCD12864的15引腳(并/串行接口選擇)接地。液晶顯示模塊LCD12864的外部引腳連接關(guān)系如圖2.7。圖2.7 LCD12864的外部引腳連接圖2.2.5 鍵盤擴(kuò)展電路設(shè)計(jì)鍵盤擴(kuò)展電路與STM32F10

37、3的5個(gè)I/O引腳相連,實(shí)現(xiàn)對(duì)按鍵檢測(cè)。鍵盤擴(kuò)展電路與STM32F103引腳連接圖如圖2.8。圖2.8 鍵盤擴(kuò)展電路引腳連接圖鍵盤擴(kuò)展電路采用按鍵開(kāi)關(guān)式電路,添加上拉電阻以保持按鍵檢測(cè)默認(rèn)為高電平,采用低電平觸發(fā)方式,只要有按鍵按下,即觸發(fā)相應(yīng)電機(jī)轉(zhuǎn)動(dòng)狀態(tài)。詳細(xì)對(duì)照見(jiàn)表2-3。表2-3 小車狀態(tài)與各按鍵高低電平對(duì)照表按鍵1按鍵2按鍵3按鍵4按鍵5啟動(dòng)/停止低電平高高高高循跡模式高高低電平高高自由行走模式高高高低電平高加速高高高低電平高減速高高高高低電平2.2.6 觸角探測(cè)電路設(shè)計(jì)觸角傳感器由兩條胡須構(gòu)成,每條胡須都可簡(jiǎn)化為一個(gè)機(jī)械式的、接地常開(kāi)的單刀單擲開(kāi)關(guān),當(dāng)胡須沒(méi)有被觸動(dòng),連接胡須的I/O

38、管腳的電壓是3.3V;當(dāng)胡須被觸動(dòng)時(shí),I/O短接到地,所以I/O管腳的電壓是0V。通過(guò)低電平觸發(fā)方式,使小車實(shí)現(xiàn)簡(jiǎn)單的避障功能。觸角探測(cè)電路與主控芯片STM32F103的2個(gè)I/O口相連,接收檢測(cè)信號(hào)。觸角傳感電路與STM32F103引腳連接圖如圖2.9。圖2.9 觸角傳感電路2.2.7 紅外探測(cè)電路設(shè)計(jì)直流驅(qū)動(dòng)紅外探測(cè)器電路的設(shè)計(jì)如圖2.10所示,R401和V1構(gòu)成簡(jiǎn)單直流發(fā)光二極管驅(qū)動(dòng)電路,NE555及其外圍元件構(gòu)成施密特觸發(fā)器,其出發(fā)電平可通過(guò)W2控制,接收管V2和電阻R406構(gòu)成光電檢測(cè)電路,通過(guò)NE555輸出的TTL電平可直接驅(qū)動(dòng)主控芯片I/O口。根據(jù)不同地面對(duì)紅外光不同的反射狀況,

39、紅外探測(cè)器接收管接收不同反射,當(dāng)尋到黑跡時(shí),紅外光被吸收,輸出高電平;在光滑地面時(shí)則紅外光被大部分反射接收,輸出低電平。本次設(shè)計(jì)中,紅外發(fā)射與接收都由主控芯片STM32F103控制,STM32F103的PE1、PE2實(shí)現(xiàn)對(duì)發(fā)射電路的控制;PD5、PD6與紅外接收相連,實(shí)現(xiàn)紅外接收信號(hào)的檢測(cè)。為方便對(duì)小車的控制,采用兩個(gè)紅外探測(cè)器分別對(duì)左右側(cè)進(jìn)行探測(cè),根據(jù)左右兩側(cè)接收到的信號(hào)可方便對(duì)小車的運(yùn)動(dòng)方向進(jìn)行快速調(diào)整。具體電路設(shè)計(jì)如圖2.10所示。圖2.10 紅外收發(fā)檢測(cè)電路第3章 小車控制系統(tǒng)軟件設(shè)計(jì)3.1 IAR開(kāi)發(fā)環(huán)境介紹IAR Systems是全球領(lǐng)先的嵌入式系統(tǒng)開(kāi)發(fā)工具和服務(wù)的供應(yīng)商,提供的產(chǎn)

40、品和服務(wù)涉及到嵌入式系統(tǒng)的設(shè)計(jì)、開(kāi)發(fā)和測(cè)試的每一個(gè)階段,包括:帶有C/C+編譯器和調(diào)試器的集成開(kāi)發(fā)環(huán)境(IDE)、實(shí)時(shí)操作系統(tǒng)和中間件、開(kāi)發(fā)套件、硬件仿真器以及狀態(tài)機(jī)建模工具。IAR軟件是嵌入式設(shè)計(jì)軟件產(chǎn)品中優(yōu)質(zhì)的開(kāi)發(fā)工具。它最著名的產(chǎn)品是C編譯器IAR Embedded Workbench,支持眾多知名半導(dǎo)體公司的微處理器。許多全球著名的公司都在使用IAR SYSTEMS提供的開(kāi)發(fā)工具,用以開(kāi)發(fā)他們的前沿產(chǎn)品,從消費(fèi)電子、工業(yè)控制、汽車應(yīng)用、醫(yī)療、航空航天到手機(jī)應(yīng)用系統(tǒng)。IAR Embedded Workbench for ARM 是IAR Systems公司為ARM微處理器開(kāi)發(fā)的一個(gè)集成開(kāi)

41、發(fā)環(huán)境。比較其他的ARM開(kāi)發(fā)環(huán)境,IAR EWARM具有入門容易、使用方便和代碼緊湊等特點(diǎn)。IAR EWARM中包含一個(gè)全軟件的模擬程序(simulator),用戶不需要任何硬件支持就可以模擬各種ARM內(nèi)核、外部設(shè)備甚至中斷的軟件運(yùn)行環(huán)境,從中可以了解和評(píng)估IAR EWARM的功能和使用用法。IAR EWARM包含項(xiàng)目管理器、編輯器、編譯連接工具和支持RTOS的調(diào)試工具,在該環(huán)境下可以使用C/C+和匯編語(yǔ)言方便地開(kāi)發(fā)嵌入式應(yīng)用程序。IAR EWARM主界面如圖3.1所示。圖3.1 IAR EWARM主界面3.2 程序設(shè)計(jì)思路及部分模塊程序3.2.1 程序設(shè)計(jì)思路整個(gè)小車控制系統(tǒng)的程序設(shè)計(jì)采用模

42、塊化的編程思想,整個(gè)主程序的流程圖如圖3.2。圖3.2 主程序流程圖根據(jù)圖3.2,程序主要包括程序初始化、按鍵掃描子程序、自由行走模式子程序、循跡模式子程序、LCD顯示子程序。程序初始化,包括對(duì)STM32F103系統(tǒng)模塊、液晶顯示模塊、PWM波輸出模塊、電機(jī)驅(qū)動(dòng)模塊的初始化,然后編寫各子模塊的實(shí)現(xiàn)程序。 3.2.2 按鍵子程序 系統(tǒng)初始化完成后,進(jìn)入鍵盤掃描子程序,其程序流程圖如圖3.3。開(kāi) 始是否自由行走模式自由行走模式轉(zhuǎn)換為循跡模式Y(jié)ESN0N0是否開(kāi)始執(zhí)行設(shè)置執(zhí)行標(biāo)志YES是否加速是否減速YESYESYES退出PWM波占空比減10/300PWM波占空比增10/300占空比是否超出范圍PW

43、M波輸出調(diào)節(jié)N0N0維持原始PWM波輸出N0圖3.3 鍵盤掃描子程序流程圖由上章鍵盤擴(kuò)展電路設(shè)計(jì)可知,啟動(dòng)/停止由1鍵控制切換,在程序中通過(guò)判斷標(biāo)志變量值來(lái)切換;自由行走模式和循跡模式單獨(dú)按鍵控制;按小車加速和減速鍵,對(duì)小車速度進(jìn)行相應(yīng)調(diào)節(jié)。本設(shè)計(jì)中小車運(yùn)動(dòng)方向轉(zhuǎn)變時(shí),速度未做單獨(dú)處理,因此要求小車的運(yùn)動(dòng)速度不宜過(guò)快,否則方向不易控制。通過(guò)對(duì)PWM波占空比范圍的控制限定小車的速度范圍,占空比一般在150/300以下,因此本次設(shè)計(jì)中占空比范圍設(shè)定為40/300-160/300。通過(guò)對(duì)定時(shí)器配置,產(chǎn)生時(shí)鐘頻率為10KHZ,周期為2.99ms的PWM波,由加速/減速鍵步進(jìn)調(diào)節(jié)占空比參數(shù)TIM4_CC

44、Rx值,實(shí)現(xiàn)對(duì)小車運(yùn)行速度的控制。具體定時(shí)器配置10以TIM3通道3為例程序如下: void PWM_Channel _ configuration(u16 CCR_Val)u16 CCR3_Val=CCR_Val;TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; /PWM模式 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; /輸出使能 TIM_OCInitStructure.TIM_Puls

45、e = CCR3_Val; /設(shè)置占空比=CCR_Val/(TIM_Period +1) TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; /比較輸出極性 TIM_OC3Init(TIM3, &TIM_OCInitStructure); /配置通道3 TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable); /使能 TIM3在 CCR3上的預(yù)裝載寄存器 TIM_ARRPreloadConfig(TIM3, ENABLE); /使能TIM3在 ARR 上的預(yù)裝載寄存器 TIM_Cmd(TIM

46、3, ENABLE); 3.2.3 循跡子程序循跡模式鍵按下,小車進(jìn)入循跡模式,其流程圖如圖3.4。圖3.4 循跡子流程圖將小車置于黑跡上,進(jìn)入循跡模式,主控芯片控制紅外探測(cè)器使能,此時(shí)左右紅外探測(cè)器均未檢測(cè)到出界,小車開(kāi)始向前行走,此后根據(jù)左右探測(cè)器的檢測(cè)信號(hào)對(duì)小車的運(yùn)動(dòng)狀態(tài)進(jìn)行相應(yīng)調(diào)整,使小車按設(shè)定的軌跡行走,實(shí)現(xiàn)簡(jiǎn)單的循跡功能。3.2.4 自由行走子程序自由行走模式鍵按下,小車進(jìn)入自由行走模式,其子程序流程圖如圖3.5。圖3.5 自由行走子流程圖如圖3.5所示,在自由行走模式下,由觸角傳感器檢測(cè)障礙物,低電平觸發(fā)來(lái)控制小車的運(yùn)動(dòng)方向。3.2.5 LCD顯示子程序顯示模塊實(shí)時(shí)顯示三個(gè)小車運(yùn)

47、動(dòng)參數(shù),小車行走模式、小車運(yùn)動(dòng)方向及速度級(jí)數(shù),為滿足顯示要求,顯示子程序主要調(diào)用了三個(gè)函數(shù):(1)寫字節(jié)函數(shù)void LCD_Write(u32 inst,u8 ddata)(2)寫字符串函數(shù)void LCD_Dis_Str(u8 row,u8 col,u8 *str)(3) 寫十進(jìn)制數(shù)函數(shù)void LCD_Dis_Digital(u8 row,u8 col,u32 Dig_Data)利用這3個(gè)主要函數(shù)實(shí)現(xiàn)了狀態(tài)參數(shù)的實(shí)時(shí)更新。第4章 結(jié)論本文根據(jù)設(shè)計(jì)內(nèi)容和要求,制定了設(shè)計(jì)方案,并逐步完成了硬件和軟件部分的設(shè)計(jì)。整個(gè)系統(tǒng)以STM32為主控芯片,實(shí)現(xiàn)對(duì)小車簡(jiǎn)單運(yùn)動(dòng)的控制,其中硬件部分包括STM3

48、2F103及外圍電路、電平轉(zhuǎn)換電路、電機(jī)驅(qū)動(dòng)電路、液晶顯示電路、紅外循跡檢測(cè)電路、觸角傳感避障電路、鍵盤擴(kuò)展電路,完成各部分電路設(shè)計(jì)并使用PROTEL畫出電路設(shè)計(jì)原理圖;軟件部分在STM32集成開(kāi)發(fā)環(huán)境IAR EWARM 5.3下編寫各模塊程序,包括PWM波輸出模塊、液晶顯示模塊、鍵盤掃描模塊、自由行走避障模塊和紅外循跡模塊,并通過(guò)主控制程序?qū)⒏髂K融合一起。整個(gè)設(shè)計(jì)將硬件與軟件相結(jié)合,實(shí)現(xiàn)對(duì)小車的控制,使小車能夠做出前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等動(dòng)作,并通過(guò)液晶顯示器實(shí)時(shí)顯示小車的運(yùn)動(dòng)參數(shù),同時(shí)可通過(guò)鍵盤輸入對(duì)小車行走模式進(jìn)行切換及對(duì)小車速度進(jìn)行調(diào)節(jié),并且能夠在不同模式下通過(guò)傳感檢測(cè)電路實(shí)現(xiàn)簡(jiǎn)單的避障和循跡功能。論文基本完成了硬件和軟件的設(shè)計(jì),并使之

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論