基于STM32控制的自動往返電動小汽車_第1頁
基于STM32控制的自動往返電動小汽車_第2頁
基于STM32控制的自動往返電動小汽車_第3頁
基于STM32控制的自動往返電動小汽車_第4頁
基于STM32控制的自動往返電動小汽車_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、科技大學信息與電氣工程學院STM32控制自動往返小汽車設計報告 專 業(yè): 電子信息工程 班 級: 二班 姓 名: 曾有根 學 號: 0904030218 指導教師: 羅 朝 輝 14 / 16自動往返電動小汽車 本設計民用STM32作為自動往返小汽車的檢測和控制核心,輔以傳感器、控制電路、顯示電路等外圍器件,構成了一個車載控制系統(tǒng)。路面黑線檢測使用反射式紅外傳感器,利用PWM技術動態(tài)控制電動機的轉速?;谶@些完備而可靠的硬件設計,使用了一套獨特的軟件算法,實現(xiàn)了小車在限速和壓線過程中的精確控制。電動小汽車能夠根據(jù)題目要求在直線方向上完成調速、急剎車、停車、倒車返回等各種運動形式;這輛

2、小車還可以自動記錄、顯示一次往返時間和行駛距離,并用蜂鳴器提示返回起點。另外,我們經(jīng)過MATLAB仿真后,成功地實現(xiàn)了從最高速降至低速的平穩(wěn)調速。本系統(tǒng)主要采用模糊控制算法進行速度調節(jié)。通過模糊控制和PWM脈寬調制技術的結合,提高了對車位置控制精度,并且實現(xiàn)了恒速控制。關鍵詞:PWM,STM32F103,電機,傳感器前言嵌入式技術依靠其體積小、成本低、功能強等特點,適應了智能化發(fā)展的最新要求。單片機作為控制系統(tǒng)的微處理器,在數(shù)據(jù)處理和代碼存儲等方面都已經(jīng)無法滿足系統(tǒng)的要求,ARM微處理器資源豐富,具有良好的通用性。Cortex-M3是ARM公司最新推出的第一款基于ARMv7體系的處理器核。它主

3、要針對MCU領域,在存儲系統(tǒng)、中斷系統(tǒng)、調試接口等方面做了較大的改進,有別于過去的ARM7處理器;Cortex-M3具有高性能、低功耗、極低成本、穩(wěn)定等諸多優(yōu)點,非常適合汽車電子、工業(yè)控制系統(tǒng)、醫(yī)療器械、玩具等領域。基于Cortex-M3核的STM32系列處理器于2007年由ST公司率先推出,它集先進Cortex-M3核結構、出眾創(chuàng)新的外設、良好的功耗和低成本于一體,極大的滿足自動控制系統(tǒng)設計要求。作為先進的32位通用微控制器的領跑者,STM32以其出眾的性能、豐富且靈活的外設、很高的性價比以與令人意外的功耗水準,使其自面世以來得到眾多設計者的青睞,眾多行業(yè)領導者紛紛選用STM32作為新一代產

4、品的平臺。因此將STM32F103應用于智能小車的控制系統(tǒng)是一種較好的選擇?;诖?,本文提出了一個比較合理的智能小車系統(tǒng)設計方案。整個小車系統(tǒng)以STM32F103芯片為控制核心,附以外圍電路,利用紅外探測器、觸角傳感器采集外界信息和檢測障礙物;充分利用STM32F103的串口、并口資源和高速的運算、處理能力,來實現(xiàn)小車自動識別路線按跡行走、躲避障礙物,并且通過LCD顯示器實時顯示小車運動參數(shù);配置STM32F103通用定時器為PWM輸出模式產生PWM波,通過步進調節(jié)PWM波占空比參數(shù)控制電機的轉速。第一章 系統(tǒng)方案論證與分析根據(jù)題目中的設計要求,本系統(tǒng)主要由主控單片機模塊、電源模塊、電機驅動模

5、塊、黑線檢測模塊、測速模塊以與液晶顯示模塊構成。本系統(tǒng)的方框圖如下圖所示:STM32L298電機驅動芯片黑線檢測模塊測速模塊電源模塊TFT顯示1、 主控單片機根據(jù)題目要求,控制器主要用于控制電機的運動,黑線的檢測以與相關信息的顯示。對于控制器的選擇主要有以下兩種方案:方案一:采用51系列單片機作為控制器。51系列單片機應用廣泛,技術成熟,但是運行速度慢,部資源較少,且只有2個定時計數(shù)器,不滿足題目要求。方案二:采用STM32作為控制器?;贑ortex- M3核的STM32F10x系列芯片是新型的32位嵌入式微處理器,其性能優(yōu)良,移植性好,提高了對直流電機的控制效率,并對控制系統(tǒng)進行模塊化設計

6、,有利于智能小車的功能擴展和升級。綜上,我們選用了方案一,采用了STM32,該單片機價格便宜,資源足夠。2、 電動機驅動模塊方案一:采用達林頓管陣列ULN2003驅動芯片。ULN2003是7通道高電壓、大電流驅動器,并聯(lián)端口可以加大輸出電流,對直流電機具有良好驅動能力。但其結構決定驅動直流電機只能是單方向的,不能驅動直流電機反轉,這與題目要求不符。方案二:采用繼電器對電動機的開或關進行控制,通過開關的切換對小車的速度進行調整。這個方案的優(yōu)點是電路較為簡單,缺點是繼電器的響應時間慢、機械結構易損壞、壽命較短、可靠性不高。方案三:采用雙H橋驅動芯片L298。其部包含4通道邏輯驅動電路,可以方便的驅

7、動兩個直流電機,或一個兩相步進電機。L298的邏輯電平與51單片機匹配,可以與其直接相連??刂菩酒尿寗邮鼓芏司涂梢钥刂乞寗与姍C的速度。L298對直流電機具有良好的驅動控制能力,故這里選擇方案三。3、 路面黑線檢測模塊選擇方案一:采用發(fā)光二極管與光敏電阻,利用光敏電阻的阻值變化來控制信號。由于外界光亮條件不定,一旦光線條件改變很可能造成誤判和漏判;雖然采取超高亮發(fā)光管可以降低一定的干擾,但這用將增加額外的功率損耗。方案二:采用紅外線控制的反射式紅外對管。紅外對管只對紅外線具有較高靈敏度,從而避免了外界光線的干擾;跑道黑帶能夠吸收紅外線,而白色跑道能夠反射紅外線,從而檢測到跑道黑帶。方案選擇:光

8、敏電阻的易干擾性和紅外對管的單一靈敏行決定方案二具有較好控制作用。4、 里程計算與計時模塊選擇方案一:采用霍爾傳感器。該器件部由三篇霍爾金屬板組成,當磁鐵正對金屬板時,由于霍爾效應,金屬板發(fā)生橫向導通,發(fā)出低電平信號。因此可以在車輪上安裝微型磁鐵,而將霍爾傳感器安裝在固定軸上,通過對脈沖的計數(shù)進行車速測量。方案二:采用檢測黑線的方法,每經(jīng)過一條黑線就增加相應的里程數(shù),并通過定時器計時。方案選擇:相比而言,方案二不需要另外的傳感器,計算方便,定時器也很精確,故選擇方案二。圖2.1 電機控制系統(tǒng)框圖由系統(tǒng)框圖可看出,小車整個控制系統(tǒng)設計主要包括電機驅動、液晶顯示、鍵盤擴展電路、觸角傳感電路、紅外收

9、發(fā)檢測電路等模塊。整個系統(tǒng)的硬件電路設計原理圖見附錄,下面分別介紹各部分模塊的設計。一、 主要電路設計1、STM32F103與外圍電路設計本設計采用STM32F103為主控芯片,則STM32F103芯片的最小系統(tǒng)設計如圖1.2、1.3所示。圖1.2 STM32F103芯片最小系統(tǒng)圖圖1.3 STM32F103芯片最小系統(tǒng)圖續(xù)如圖1.2、1.3,此部分電路包括系統(tǒng)時鐘電路、實時時鐘電路、JTAG調試接口電路,復位電路和啟動模式選擇電路。下面對部分電路設計做簡要說明。1時鐘電路系統(tǒng)時鐘電路選用8MHZ的HSE晶體作為振蕩器晶振。如圖2.2所示,由R113、Y100(HSE晶振)、C108與C109

10、構成系統(tǒng)時鐘電路。HSE晶體可以通過設置時鐘控制寄存器里RCC_CR中的HSEON位被啟動和關閉。實時時鐘電路選擇LSE時鐘模式,如圖2.2所示,由Y101(LSE晶振)、C112與C113構成LSE旁路,提供一個32.768kHz頻率的外部時鐘源。LSE晶體是一個32.768kHz的低速外部晶體或瓷諧振器。它為實時時鐘或者其他定時功能提供一個低功耗且精確的時鐘源。2啟動模式選擇電路如圖2.3所示,通過BOOT1:0引腳可以選擇三種不同啟動模式。如下表2-1所示。表2-1 啟動模式啟動模式選擇引腳啟動模式說明BOOT1BOOT0X0主閃存存儲器主閃存存儲器被選為啟動區(qū)域01系統(tǒng)存儲器系統(tǒng)存儲器

11、被選為啟動區(qū)域11置SRAM置SRAM被選為啟動區(qū)域在系統(tǒng)復位后,SYSCLK的第4個上升沿,BOOT引腳的值將被鎖存。此時可以通過設置BOOT1和BOOT0引腳的狀態(tài),來選擇在復位后的啟動模式。2、電源電路設計由于各電路模塊所需電壓不同,本設計需多種電源供電。STM32F103主控芯片采用3.3V供電,電機驅動采用5V與12V,紅外收發(fā)檢測電路采用5V與3.3V,液晶顯示與觸角傳感電路均采用3.3V供電。外部電源采用12V的直流電壓,因此根據(jù)設計要求,本設計進行了電源轉換設計。1. 采用KA7805芯片實現(xiàn)12V到5V的轉換。KA7805的作用是輸入大于5V的直流電壓,輸出5V的直流電壓,且

12、管腳較少,易于連接和實現(xiàn),穩(wěn)定性高。圖2.4為KA7805芯片引腳接線圖。圖2.4 KA7805引腳接線圖2.本設計采用LM1117-3.3芯片將5V轉換為3.3V,具體電路設計如圖2.5 所示。圖2.5 LM1117-3.3引腳接線圖3、電機驅動電路設計STM32F103芯片外部擴展的電機驅動電路采用L298芯片控制,其基本電路圖如圖2.6。圖3.6 電機驅動電路基本電路原理圖如圖2.6所示,小車運動狀態(tài)通過電機A和B的不同方向轉動來實現(xiàn),電機有正轉、反轉和停止三種狀態(tài),每個電機由一對I/O口進行控制。表2-2是I/O端口狀態(tài)與電機制動對照表。表2-2 I/O端口狀態(tài)與電機制動對照表電機AI

13、N1IN2電機BIN3IN4停止00停止00正轉10正轉10反轉01反轉011111L298芯片采用5V(VSS)與12V(VS)直壓供電,EN A和EN B分別用STM32F103主控芯片的TIM3_CH3和PB1/ADC_IN9/TIM3_CH4控制,產生PWM1和PWM2兩路PWM波輸出,IN1-IN4分別用PE3-PE6實現(xiàn)I/O輸出控制電機轉動方向。在L298與電機之間加入二極管,以保護電路。4、液晶顯示電路設計液晶顯示電路采用2.4寸TFT顯示5、 紅外探測電路設計采用反射式光電開關來識別軌跡上的黑線標記信號,如圖3 所示。這種光電開關的紅外發(fā)射管和接收管位于同一側,光敏三極管只能

14、接收反射回的紅外光。當車身下面是黑線時,由于黑線吸收部分光,光敏三極管接收到的紅外光不能使光敏三極管導通,光電開關輸出高電平,經(jīng)非門輸出低電平。反之,當車身下面是白色的地面時,紅外發(fā)射管發(fā)射的光經(jīng)其反射后,被接收管接受,光電開關輸出低電平,經(jīng)非門整形后輸出高電平。將非門的輸出接至CPU的INT1輸入端.車在前進和后退過程中,小車每過一道黑線,便產生一次中斷申請,從而調用相應的子程序,隨著小車的不斷行駛,相應的程序依次被調用執(zhí)行,使小車在跑道上按設計要求時快、時慢、時前進、時后退.第三章小車控制系統(tǒng)軟件設計采用單片機STM32為主控制器.采用C 語言進行軟件編程實現(xiàn)各種算法和邏輯控制1 紅外光電

15、檢測到的開關信號作為中斷源, 送入STM32中斷源EXTI_Line0; STM32 再對中斷請求做出響應, 并在GPIOB0和GPIOB1口輸出控制驅動電路的脈沖和轉速; 通過GPIOC0、GPIOC1、GPIOC4、GPIOC5驅動電路控制直流電機的轉向; 顯示模塊以2.4寸tft為核心, 對記錄的結果進行顯示.1、 前進(帶矯正)子程序void qianjin() while(1) /檢測到黑,發(fā)光 12外 13 if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) && GPIO_ReadInputDataBit(GPIOB,GPIO

16、_Pin_13) / 12亮(高電平) 13不亮(低電平) GPIO_SetBits(GPIOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC, GPIO_Pin_1);GPIO_SetBits(GPIOC, GPIO_Pin_4); GPIO_ResetBits(GPIOC, GPIO_Pin_5);else if (!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) && !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13) /都亮GPIO_SetBits(GPIOC, GPIO_Pin_

17、0); GPIO_ResetBits(GPIOC, GPIO_Pin_1);GPIO_ResetBits(GPIOC, GPIO_Pin_4); GPIO_ResetBits(GPIOC, GPIO_Pin_5);else if (GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) && !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)/ 12亮(低電平) 13不亮(高電平)GPIO_ResetBits(GPIOC, GPIO_Pin_0); GPIO_ResetBits(GPIOC, GPIO_Pin_1);GP

18、IO_SetBits(GPIOC, GPIO_Pin_4); GPIO_ResetBits(GPIOC, GPIO_Pin_5); if(flag=6)/ GPIO_SetBits(GPIOA , GPIO_Pin_4); break; 2、 后退(帶矯正)子程序void houtui() while(1) /檢測到黑,發(fā)光 12外 13 if(!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) && GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9) / 12亮(高電平) 13不亮(低電平)GPIO_ResetBits

19、(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_0);GPIO_SetBits(GPIOC, GPIO_Pin_5); GPIO_ResetBits(GPIOC, GPIO_Pin_4);else if (!GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_8) && !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_9) /都亮GPIO_SetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_0);GPIO_R

20、esetBits(GPIOC, GPIO_Pin_5); GPIO_ResetBits(GPIOC, GPIO_Pin_4);else if (GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_12) && !GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13)/ 12亮(低電平) 13不亮(高電平)GPIO_SetBits(GPIOC, GPIO_Pin_1); GPIO_ResetBits(GPIOC, GPIO_Pin_0);GPIO_SetBits(GPIOC, GPIO_Pin_5); GPIO_ResetBits(

21、GPIOC, GPIO_Pin_4); if(flag=12) GPIO_SetBits(GPIOA , GPIO_Pin_4); break; 3、 橫線檢測并調速程序void EXTI0_IRQHandler(void)if ( EXTI_GetITStatus(EXTI_Line0) != RESET ) EXTI_ClearITPendingBit(EXTI_Line0);flag+;if(flag=2|flag=4) /|flag=3|flag=4 pulse = 3000; TIM_SetCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse

22、);if(flag=3) /|flag=3 pulse = 2850; TIM_SetCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse);if(flag=5) pulse = 2650; TIM_SetCompare3(TIM3,pulse);if(flag=9) pulse = 2900;/2350 TIM_SetCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse);if(flag=8|flag=10) /flag=7| pulse = 3000; /2600 TIM_SetCompare3(TIM3,

23、pulse);TIM_SetCompare4(TIM3,pulse);if(flag=11|flag=7) pulse = 2850; /2600 TIM_SetCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse);if(flag=12) pulse = 0; /2600 TIM_SetCompare3(TIM3,pulse);TIM_SetCompare4(TIM3,pulse);4、 顯示子程序void ILI9325_PutString(u16 x, u16 y, u8 *s, u16 fColor, u16 bColor) u8 row=0;while(*s) if( *s < 0x80) ILI9325_PutChar(x+(row<<3),y,*s,fColor,bColor);s+;row+;elseILI9325_PutGB16x16(x+(row<<3),y,(u8*)s,fColor,bColor);s+=2;row+=2;第四章結論本文根據(jù)設計容和要求,制定了設計方案,并逐步完成了硬件和軟件部分的設計。整個系統(tǒng)以STM32為主控芯片

溫馨提示

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

最新文檔

評論

0/150

提交評論