緒 論
智能小車通過各種感應(yīng)器獲得外部環(huán)境信息和內(nèi)部運(yùn)動(dòng)狀態(tài),實(shí)現(xiàn)在復(fù)雜環(huán)境背景下的自主運(yùn)動(dòng),從而完成具有特定功能的機(jī)器人系統(tǒng)。而隨著智能化電器時(shí)代的到來,它們?cè)跒槿藗兲峁┑氖孢m的生活環(huán)境的同時(shí),也提高了制造智能化電器對(duì)于人才要求的門檻。智能小車是集成了多種高新技術(shù),它不僅融合了電子、傳感器、計(jì)算機(jī)硬件、軟件等許多學(xué)科的知識(shí),而且還涉及到當(dāng)今許多前沿領(lǐng)域的技術(shù),它是一個(gè)國家高科技技術(shù)水平的重要體現(xiàn)。通過建立起簡易智能小車的設(shè)計(jì),引導(dǎo)學(xué)生從理論走向?qū)嵺`,培養(yǎng)同學(xué)們的動(dòng)手能力,使同學(xué)們?cè)诹私庵悄芑娖鞯墓ぷ髟淼幕A(chǔ)上,還使同學(xué)們獲得完成整體項(xiàng)目的能力,并掌握了Stm32開發(fā)板的編程原理,為同學(xué)們進(jìn)入ARM領(lǐng)域提供了基礎(chǔ)。另外,本次課程設(shè)計(jì),使同學(xué)們了解自己的不足之處,從而使同學(xué)們有目標(biāo)的提升自己的能力。
單片機(jī)類型選擇
方案一:可以使用現(xiàn)在比較主流的單片機(jī)STC89C5單片機(jī)進(jìn)行數(shù)據(jù)處理。這款單片機(jī)具有的特點(diǎn)是內(nèi)存和51的單片機(jī)相比多了4KB內(nèi)存,但是價(jià)格和51單片機(jī)一樣。并且支持?jǐn)?shù)據(jù)串行下載和調(diào)試助手。此款單片機(jī)是有ATMEL公司生產(chǎn),可用5V電壓編程,而且擦寫時(shí)間僅需l0ms。STC89C5芯片提供三級(jí)程序存儲(chǔ)器加密,提供了方便靈活而可靠的硬加密手段,能完全保證程序或系統(tǒng)不被仿制。P0口是三態(tài)雙向口,通稱數(shù)據(jù)總線口,因?yàn)橹挥性摽谀苤苯佑糜趯?duì)外部存儲(chǔ)器的讀/寫操作。
方案二:STM32103基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M3內(nèi)核。時(shí)鐘頻率達(dá)到72MHz,是同類產(chǎn)品中性能最高的產(chǎn)品;內(nèi)置32K到128K的閃存,閃存執(zhí)行代碼,STM32功耗36mA,是32位市場上功耗最低的產(chǎn)品,相當(dāng)于0.5mA/MHz。
STM32有4個(gè)p口;SPI-NSS片選,使能。
SPI-MISO數(shù)據(jù)輸出;SPI-SCK時(shí)鐘線;SPI-MOSI數(shù)據(jù)輸入。
比較這兩種方案,因?yàn)镾TM32是帶有豐富的庫文件,指令集較多,綜合考慮單片機(jī)的各部分資源和作為學(xué)生能夠獲得的資源,經(jīng)過對(duì)比此次設(shè)計(jì)要求,選擇用STM32系列芯片完成。而且學(xué)校也提供了相應(yīng)的硬件操作平臺(tái),實(shí)際操作起來比較方便,故STM32F103C8T6為更合理的選擇。
STM32STM32概述
? ?STM32系列是為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cortex-M3內(nèi)核。按性能分成兩個(gè)不同的系列:“增強(qiáng)型”STM32F103系列和“基本型”STM32F101系列。增強(qiáng)型系列的時(shí)鐘頻率能達(dá)到72MHz,是同類產(chǎn)品中頻率最高的;基本型的時(shí)鐘頻率為36MHz,用16位產(chǎn)品一樣的價(jià)格得到比16位產(chǎn)品更大的性能,是16位產(chǎn)品的最好選擇。兩個(gè)系列都有內(nèi)置的32K到128K的閃存,不同的是SRAM的最大容量和外設(shè)接口的組合。時(shí)鐘頻率為72MHz時(shí),從閃存執(zhí)行代碼來看,STM32功耗36mA,是32位市場上功耗最低的產(chǎn)品,相當(dāng)于0.5mA/MHz[6]。
以STM32103C8T6單片機(jī)為處理器,該單片機(jī)為32位處理器。內(nèi)核為Cortex-M3,其并行總線結(jié)構(gòu),嵌套中斷向量控制單元,調(diào)試系統(tǒng)和它標(biāo)準(zhǔn)的存儲(chǔ)映射。嵌套中斷向量控制器(Nested Vector Interrupt Controller,簡稱NVIC)是Cortex-M3處理器中一個(gè)比較關(guān)鍵的組件,它為基于Cortex-M3的微控制器提供了標(biāo)準(zhǔn)的中斷架構(gòu)和優(yōu)秀的中斷響應(yīng)能力,為超過240個(gè)中斷源提供專門的中斷入口,而且可以為每個(gè)中斷源賦予單獨(dú)的優(yōu)先級(jí)。采用NVIC可以達(dá)到非??斓闹袛囗憫?yīng)速度,從收到中斷請(qǐng)求到執(zhí)行中斷服務(wù)的第一條指令僅需12個(gè)周期。這種極快的響應(yīng)速度一方面得益于Cortex-M3內(nèi)核對(duì)堆棧的自動(dòng)處理機(jī)制,這種機(jī)制是通過固化在CPU內(nèi)部的微代碼實(shí)現(xiàn)的。另一方面,在中斷請(qǐng)求連續(xù)出現(xiàn)的情況下,NVIC使用一種稱為“尾鏈”的技術(shù),使連續(xù)而來的中斷可以在6個(gè)時(shí)鐘周期內(nèi)得到服務(wù)。在中斷的壓棧階段,更高優(yōu)先級(jí)的中斷可以不耗費(fèi)任何額外的CPU周期就能完成嵌入低優(yōu)先級(jí)中斷的動(dòng)作。具體的細(xì)節(jié)后面我會(huì)繼續(xù)總結(jié)的。用戶可以通過設(shè)置CPU自動(dòng)進(jìn)入低功耗狀態(tài),而使用中斷來將其喚醒,CPU在中斷時(shí)間來臨之前會(huì)一直保持睡眠狀態(tài)[7]。
Cortex-M3的CPU支持兩種運(yùn)行模式:線程模式(Thread Mode)與處理模式(Handler Mode)并且需要注意的是,這兩種模式都擁有各自獨(dú)立的堆棧。這種設(shè)計(jì)使得開發(fā)人員可以進(jìn)行更為精密的程序設(shè)計(jì),對(duì)實(shí)時(shí)操作系統(tǒng)的支持也就更好了。Cortex-M3處理器還包含了一個(gè)24位可自動(dòng)重裝載定的定時(shí)器,可以為內(nèi)核(RTOS)提供一個(gè)周期中斷。
在指令集方面,ARM7和ARM9都有兩種指令集(32位指令集和16位指令集),而Cortex-M3系列處理器支持Thumb-2指令集。由于Thumb-2指令集融合了Thumb指令集和ARM指令集,使得32位指令集的性能和16位指令集的代碼密度之間取得了平衡[5]。 專業(yè)嵌入式、單片機(jī)技術(shù)實(shí)訓(xùn)。而且,ARM Thumb-2 專門為C/C++編譯器設(shè)計(jì),這就意味著Cortex-M3系列處理器的開發(fā)應(yīng)用可以全部在C語言環(huán)境中完成。
STM32微控制器的推出標(biāo)志著ST公司在兩條產(chǎn)品主線(低價(jià)位主線和高性能主線)上邁出了重大一步。STM32最初發(fā)布時(shí)有14個(gè)不同型號(hào),分為兩個(gè)版本:最高CPU時(shí)鐘為72MHZ的“增強(qiáng)型”和最高CPU時(shí)鐘為36MHZ的“基本型”。這些不同STM32型號(hào)里內(nèi)置的Flash最大可達(dá)128KB,SRAM最大為20KB,在STM32發(fā)布之初,配置更大Flash,RAM和更復(fù)雜外設(shè)的版本就已經(jīng)在規(guī)劃之中了。不管是什么版本,什么型號(hào)的STM32器件,它們?cè)谝_功能和應(yīng)用軟件上是兼容的。這就使得開發(fā)人員在使用STM32系列微控制器時(shí),不必改動(dòng)PCB就可以根據(jù)需要隨意更換器件型號(hào)。乍一看STM32的設(shè)備配備,與往日熟悉的51單片機(jī)倒有幾分相似。一般,STM32都會(huì)配備常見外設(shè),諸如多通道ADC,通用定時(shí)器,I2C總線接口,SPI總線接口,CAN總線接口,USB控制器,實(shí)時(shí)時(shí)鐘RTC等。但是,它的每一個(gè)外部設(shè)備都具有獨(dú)特之處。例如,12位精度的ADC具備多種轉(zhuǎn)換模式,并帶有一個(gè)內(nèi)部溫度傳感器,帶有雙ADC的STM32器件,還可以使兩個(gè)ADC同時(shí)工作,從而衍生出了更為高級(jí)的9種轉(zhuǎn)換模式;STM32的每一個(gè)定時(shí)器都具備4個(gè)捕獲比較單元,而且每個(gè)定時(shí)器都可以和另外的定時(shí)器聯(lián)合工作以生成更為精密的時(shí)序;STM32有專門為電機(jī)控制而設(shè)的高級(jí)定時(shí)器,帶有6個(gè)死區(qū)時(shí)間可編程的PWM輸出通道,同時(shí)其帶有的緊急制動(dòng)通道可以在異常情況出現(xiàn)時(shí),強(qiáng)迫PWM信號(hào)輸出保持在一個(gè)預(yù)訂好的安全狀態(tài);SPI接口含有一個(gè)硬件CC8單元,支持8位字節(jié)和16位半字?jǐn)?shù)據(jù)的CC8計(jì)算。在對(duì)SD或MMC等存儲(chǔ)介質(zhì)進(jìn)行數(shù)據(jù)存取時(shí)相當(dāng)有用。而且,STM32還包含了7個(gè)DMA通道。沒惡搞通道都可以用來在設(shè)備與內(nèi)存之間進(jìn)行8位,16位,32位數(shù)據(jù)的傳輸。每個(gè)設(shè)備都可以向DMA控制器請(qǐng)求發(fā)送或者接收數(shù)據(jù)。STM32內(nèi)部總線仲裁器和總線矩陣將CPU數(shù)據(jù)接口和DMA通道之間的連接大大的簡化了,這就意味著DMA通道單元是很靈活的其使用方法簡單,足以應(yīng)付微控制器應(yīng)用中常見的數(shù)據(jù)傳輸要求。
一、硬件方案
硬件構(gòu)成:本系統(tǒng)采用STM32單片機(jī)+時(shí)鐘晶振電路+復(fù)位電路(上電自復(fù)位,手動(dòng)復(fù)位)+超聲波模塊+Hx711檢測模塊+L9110S電機(jī)驅(qū)動(dòng)模塊+蜂鳴器+紅外接收頭遙控+電源供電電路。
?
二、設(shè)計(jì)功能
1、以STM32F103RBT6為主控芯片,實(shí)現(xiàn)對(duì)小車的控制,使小車能夠做出前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等基本行駛動(dòng)作,通過紅外遙控控制小車工作模式的轉(zhuǎn)換(自由行走避障模式、跟隨模式);
2、利用壓力傳感器測重,放在小車上物品的重量在500g范圍以內(nèi)可以跟隨,如果超過范圍,就停止不動(dòng),蜂鳴器響提示超重;
三、實(shí)物圖?
?
?文章來源地址http://www.zghlxwxcb.cn/news/detail-555585.html
四、原理圖
在本設(shè)計(jì)做的過程中,硬件和軟件方面都遇到了許多問題,但是相比于軟件,在硬件方面還是比較快解決的方面,因?yàn)橛布潜容^容易檢查出來錯(cuò)誤的,軟件比較晦澀難懂,還是有一定難度。
在硬件調(diào)試問題上,首先焊接好了元器件實(shí)物板后,先用萬用表測量這個(gè)工業(yè)板子的電源方面,電源方面是最重要的問題,應(yīng)該是特別需要檢查的地方,以防止電源的短路和正負(fù)極的錯(cuò)誤。然后在仔細(xì)檢查電路的連接是否有問題,或者有沒有虛焊或者沒有焊接到的地方,然后核對(duì)一下元器件的安裝是否有問題,安裝上去是否符合規(guī)定,由于已經(jīng)是大學(xué)四年都是做過了很多實(shí)訓(xùn)過來了,對(duì)于這些還是游刃有余的,但是在上機(jī)調(diào)試后還是發(fā)現(xiàn)了很多的問題。
?
?
五、PCB圖
在本設(shè)計(jì)做的過程中,硬件和軟件方面都遇到了許多問題,但是相比于軟件,在硬件方面還是比較快解決的方面,因?yàn)橛布潜容^容易檢查出來錯(cuò)誤的,軟件比較晦澀難懂,還是有一定難度。
在硬件調(diào)試問題上,首先焊接好了元器件實(shí)物板后,先用萬用表測量這個(gè)工業(yè)板子的電源方面,電源方面是最重要的問題,應(yīng)該是特別需要檢查的地方,以防止電源的短路和正負(fù)極的錯(cuò)誤。然后在仔細(xì)檢查電路的連接是否有問題,或者有沒有虛焊或者沒有焊接到的地方,然后核對(duì)一下元器件的安裝是否有問題,安裝上去是否符合規(guī)定,由于已經(jīng)是大學(xué)四年都是做過了很多實(shí)訓(xùn)過來了,對(duì)于這些還是游刃有余的,但是在上機(jī)調(diào)試后還是發(fā)現(xiàn)了很多的問題。
?
?
六、程序源碼 ?
Keil 5是美國Keil Software公司出品的51和STM32系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個(gè)集成開發(fā)環(huán)境(μVision)將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果你使用C語言編程,那么Keil幾乎就是你的不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令你事半功倍。
?
?
資料包括:
文章來源:http://www.zghlxwxcb.cn/news/detail-555585.html
?
需要完整的資料可以點(diǎn)擊下面的名片加下我,找我要資源壓縮包的百度網(wǎng)盤下載地址及提取碼。
到了這里,關(guān)于100、基于STM32單片機(jī)自動(dòng)跟隨小車 紅外遙控控制小車避障模式 跟隨模式設(shè)計(jì)(程序+原理圖+PCB源文件+流程圖+硬件設(shè)計(jì)資料+元器件清單等)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!