基于STM32單片機(jī)的物流運(yùn)輸車控制系統(tǒng)設(shè)計(jì)10000字【論文】_第1頁
基于STM32單片機(jī)的物流運(yùn)輸車控制系統(tǒng)設(shè)計(jì)10000字【論文】_第2頁
基于STM32單片機(jī)的物流運(yùn)輸車控制系統(tǒng)設(shè)計(jì)10000字【論文】_第3頁
基于STM32單片機(jī)的物流運(yùn)輸車控制系統(tǒng)設(shè)計(jì)10000字【論文】_第4頁
基于STM32單片機(jī)的物流運(yùn)輸車控制系統(tǒng)設(shè)計(jì)10000字【論文】_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于STM32單片機(jī)的物流運(yùn)輸車控制系統(tǒng)設(shè)計(jì)摘要隨著生活節(jié)奏的加快,社會(huì)經(jīng)濟(jì)的飛速發(fā)展,越來越多的人選擇了網(wǎng)絡(luò)購物的方式來購買自己喜歡的物品。網(wǎng)絡(luò)購物在帶給人們便利的同時(shí),因?yàn)樯唐焚徺I數(shù)量的增多,物流問題成為了網(wǎng)絡(luò)購物發(fā)展的問題之一。為了提高物流能力,物流公司就需要增加員工數(shù)量以及培養(yǎng)員工操作物流車的能力。因此,設(shè)計(jì)一個(gè)物流車控制系統(tǒng)就能盡最大可能減少人力成本,同時(shí)還能提高物流的效率。本文設(shè)計(jì)了一個(gè)以STM32單片機(jī)作為核心控制器,結(jié)合電機(jī)驅(qū)動(dòng)模塊,和紅外尋跡模塊,使小車能夠按照預(yù)定的軌道行駛。為了防止物流車出現(xiàn)安全事故,加入了紅外避障,可以在物流車遇到障礙物或者人的時(shí)候能夠及時(shí)停止以及躲避。為防止物流車處于一些不可預(yù)料的錯(cuò)誤導(dǎo)致物流車偏移了預(yù)定的軌道,或者需要暫時(shí)修改物流車的運(yùn)動(dòng)軌跡,在本設(shè)計(jì)中加入了紅外遙控,方便人工控制物流車的運(yùn)動(dòng)軌跡。關(guān)鍵詞:STM32;自動(dòng)尋跡;避障;紅外遙控目錄TOC\o"1-3"\h\u23865第1章緒論 1130351.1物流車控制系統(tǒng)的研究背景和意義 1196021.2行業(yè)現(xiàn)狀 1167301.2.1國內(nèi)發(fā)展現(xiàn)狀 1102351.2.2國外發(fā)展現(xiàn)狀 2180761.3課題研究主要內(nèi)容 220190第2章系統(tǒng)總體概念設(shè)計(jì) 4139732.1物流車控制系統(tǒng)的總體設(shè)計(jì)思路 4141232.2物流車控制系統(tǒng)的總體設(shè)計(jì)框圖 58872第3章系統(tǒng)的硬件設(shè)計(jì) 769433.1核心控制模塊的硬件設(shè)計(jì) 7145643.2電源模塊的硬件設(shè)計(jì) 7251623.3電機(jī)驅(qū)動(dòng)模塊的硬件設(shè)計(jì) 8218593.4障礙物檢測(cè)模塊的硬件設(shè)計(jì) 920263.4.1紅外檢測(cè)模塊的硬件設(shè)計(jì) 9327253.4.2超聲波檢測(cè)模塊的硬件設(shè)計(jì) 1042913.5紅外遙控模塊的硬件設(shè)計(jì) 11159623.6自動(dòng)尋跡模塊的硬件設(shè)計(jì) 1129988第4章系統(tǒng)的軟件設(shè)計(jì) 12122964.1電機(jī)驅(qū)動(dòng)模塊的軟件設(shè)計(jì) 12183684.2紅外檢測(cè)模塊的軟件設(shè)計(jì) 17135314.3超聲波檢測(cè)模塊的軟件設(shè)計(jì) 18267414.3.1超聲波模塊測(cè)距的工作原理 18219774.4紅外遙控模塊的軟件設(shè)計(jì) 20190104.4.1紅外解碼原理 20306474.4.2紅外解碼的方式 21199624.4.3軟件設(shè)計(jì) 22295034.5尋跡模塊的軟件設(shè)計(jì) 2232625總結(jié)與展望 2519014參考文獻(xiàn) 26第1章緒論1.1物流車控制系統(tǒng)的研究背景和意義近些年來,由于互聯(lián)網(wǎng)的發(fā)展及人民的經(jīng)歷能力的提高,越來越多的人會(huì)選擇網(wǎng)絡(luò)購物平臺(tái)來購物。隨之而來的就是越來越多的貨物需要通過物流交付到消費(fèi)者手中,這必將使得物流系統(tǒng)壓力逐年增加。為了緩解物流系統(tǒng)的壓力,我們就需要從物流系統(tǒng)的每一個(gè)環(huán)節(jié)去分析,然后優(yōu)化每一個(gè)環(huán)節(jié)[1]。物流系統(tǒng)是一套有機(jī)的物流服務(wù),包括至少兩個(gè)職能物流單位[2]。。物流的七個(gè)階段是:運(yùn)輸功能、倉儲(chǔ)功能、配送功能、裝卸功能、包裝功能、流通加工功能、信息處理功能。本文主要是針對(duì)物流的運(yùn)輸環(huán)節(jié)進(jìn)行研究與優(yōu)化。得益于嵌入式技術(shù)的日臻成熟,智能控制系統(tǒng)也到了飛速的發(fā)展,使用單片機(jī)控制物流車也變得實(shí)用和可行。使用單片機(jī)控制物流車一方面可以降低人力成本,只需要培養(yǎng)少數(shù)的人就可完成以前很多人才能完成的工作。特別是如今全球疫情的環(huán)境下,很多企業(yè)都出于安全的考慮減少了工作人員的數(shù)量,導(dǎo)致生產(chǎn)率受到了很大的影響。但是使用控制系統(tǒng)的話只會(huì)受到很小的影響。另一方面,單片機(jī)控制物流車可以提高物流車的運(yùn)輸效率,我們只需要在程序里面設(shè)置好路徑,物流車就可以自動(dòng)在預(yù)定的軌道里面行駛,而且有多臺(tái)物流車的話也可以通過程序設(shè)計(jì),讓多臺(tái)物流車之間沒有相互干涉的情況。隨著科技的不斷發(fā)展,科研方向更加多樣,物流車也會(huì)朝著人工智能的方面發(fā)展,物流車的功能也會(huì)不僅僅是運(yùn)輸這么簡單,可能會(huì)從單一的運(yùn)輸功能轉(zhuǎn)變?yōu)槎喙δ艿倪\(yùn)輸功能、配送功能和裝卸功能。這樣會(huì)更加有利于物流系統(tǒng)的優(yōu)化。1.2行業(yè)現(xiàn)狀1.2.1國內(nèi)發(fā)展現(xiàn)狀我國的智能車控制研究起步比較晚,但是隨著5G網(wǎng)絡(luò)的到來,我國的無人控制技術(shù)發(fā)展迅速,與一些發(fā)達(dá)國家之間的距離也越來越近。目前國內(nèi)的物流車已經(jīng)向智能的方向發(fā)展了,物流車已經(jīng)能夠?qū)崿F(xiàn)在指定的環(huán)境中自動(dòng)跟蹤車道線,在與指定環(huán)境類似的環(huán)境中自動(dòng)跟蹤道路,在復(fù)雜的道路自動(dòng)躲避道路中的障礙物、遇到較大型的障礙物主動(dòng)停車,然后將視頻信號(hào)發(fā)送給后臺(tái)進(jìn)行遙控駕駛。以菜鳥驛站的無人配送機(jī)器人為例,每次可以裝10至20個(gè)包裹,可以實(shí)現(xiàn)無人送貨上門,在全球疫情的情況下為消費(fèi)者提供了巨大的方便。無人配送機(jī)器人可以識(shí)別前面的人,并且可以和人對(duì)話。無人配送機(jī)器人可以自主規(guī)劃路線、自主配貨、提醒,是目前國內(nèi)智能物流車的代表之一。1.2.2國外發(fā)展現(xiàn)狀美國卡內(nèi)基梅隆大學(xué)研制了一種智能車,它具有行星探測(cè)車一樣的功能,能夠感知多種復(fù)雜的環(huán)境,能夠在一些陌生的復(fù)雜環(huán)境里面自動(dòng)學(xué)習(xí)、推理。國外的一些著名大學(xué)也紛紛投入精力在無人駕駛汽車方面的研究上,例如:斯坦福大學(xué)、麻省理工學(xué)院等。國外的研究都在往無人駕駛的和自主規(guī)劃路線方面發(fā)力,通過各種傳感器方案和通信方案來實(shí)現(xiàn)比較安全的無人駕駛。1.3課題研究主要內(nèi)容通過分析物流車控制系統(tǒng)的需求,使用STM32為主控芯片,配合各種模塊完成各需求的開發(fā)。主要需要實(shí)現(xiàn)的功能是物流車的電機(jī)驅(qū)動(dòng)、物流車的避障功能、物流車主動(dòng)尋跡功能、紅外遙控控制物流車運(yùn)動(dòng)。點(diǎn)擊驅(qū)動(dòng)功能需要引入電機(jī)驅(qū)動(dòng)模塊,然后通過STM32的控制改變電機(jī)的轉(zhuǎn)速從而完成物流車的前進(jìn)、后退、停車以及轉(zhuǎn)彎等基本功能。物流車的避障功能主要是考慮到物流車的安全問題,在遇到障礙物的時(shí)候可以及時(shí)停止,然后避開障礙物以防止物流車以及物流車內(nèi)部控制系統(tǒng)受損,同時(shí)也避免的工作人員與小車之間發(fā)生安全事故。物流車的尋跡功能是為了方便物流車可以在預(yù)定的軌道里面自動(dòng)駕駛,通過自動(dòng)尋跡模塊對(duì)地面軌道的掃描,然后將信息傳回到控制芯片從而控制物流車按照軌道自動(dòng)修正方向。紅外遙控控制物流車主要是防止一些不可控的因素導(dǎo)致物流車的運(yùn)動(dòng)軌跡偏移了正常的軌道,這時(shí)候需要人工控制物流車的運(yùn)動(dòng)軌跡,從而使得物流車能夠完成預(yù)定的任務(wù)。本文的主要工作如下:第一章:闡述論文的研究背景和意義,講述本文的主要內(nèi)容第二章:闡述物流車控制系統(tǒng)的總體概念設(shè)計(jì),介紹主要元器件第三章:提出系統(tǒng)的硬件設(shè)計(jì)方案,建立物流車控制系統(tǒng)的總體結(jié)構(gòu)框圖,對(duì)控制系統(tǒng)的硬件模塊進(jìn)行選型和分析第四章:提出系統(tǒng)的軟件設(shè)計(jì)方案,對(duì)每個(gè)模塊的主要代碼進(jìn)行分析與設(shè)計(jì)第2章系統(tǒng)總體概念設(shè)計(jì)2.1物流車控制系統(tǒng)的總體設(shè)計(jì)思路隨著電子技術(shù)發(fā)展的突飛猛進(jìn),以及處理器每年的更新?lián)Q代,在日常生活中使用嵌入式系統(tǒng)技術(shù)的產(chǎn)品層出不窮,使得一些操作復(fù)雜的產(chǎn)品變得操作簡單、功能簡單的產(chǎn)品變得功能更加多元。作為一種新的設(shè)計(jì)理念,在設(shè)計(jì)產(chǎn)品的時(shí)候加入嵌入式系統(tǒng)技術(shù)會(huì)賦予產(chǎn)品更多的優(yōu)點(diǎn)。本文的總體設(shè)計(jì)思路是以STM32為核心控制模塊,對(duì)直流電機(jī)進(jìn)行控制,從而控制物流車的運(yùn)動(dòng)功能。利用避障模塊來判斷物流車前面是否有障礙物,然后通過STM32控制物流車遇到障礙物時(shí)做出相應(yīng)的動(dòng)作。通過紅外遙控對(duì)物流車發(fā)送指令,然后STM32接收到信號(hào)之后控制物流車做出相應(yīng)的動(dòng)作,從而可實(shí)現(xiàn)人工遙控控制物流車的功能。加入尋跡模塊之后可以讓物流車沿著預(yù)設(shè)的地面軌道自動(dòng)行駛。本文的設(shè)計(jì)思路是漸進(jìn)增強(qiáng),即先完成最基本的功能,然后再逐步增加更加高級(jí)的功能。本文設(shè)計(jì)的物流車的預(yù)期的功能主要有一下幾點(diǎn):運(yùn)動(dòng)功能:通過直流電機(jī)來控制物流車車輪的轉(zhuǎn)速,從而可以實(shí)現(xiàn)物流車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、停車等操作。避障功能:通過避障模塊返回過來的信息可以判斷物流車前方是否有障礙物,然后根據(jù)我們?cè)O(shè)置的程序在遇到障礙物時(shí)做出預(yù)定的處理動(dòng)作。紅外遙控功能:通過紅外遙控控制物流車的前進(jìn)、后退、轉(zhuǎn)彎、停車等運(yùn)動(dòng)。尋跡功能:在地面使用黑色標(biāo)記為物流車設(shè)置運(yùn)動(dòng)軌道,物流車可以識(shí)別軌道自動(dòng)行駛。2.2物流車控制系統(tǒng)的總體設(shè)計(jì)框圖一般來說,嵌入式系統(tǒng)產(chǎn)品的設(shè)計(jì)主要包括兩個(gè)方面:硬件設(shè)計(jì)、軟件設(shè)計(jì)。硬件模塊設(shè)計(jì)的最主要的部分就是選用一個(gè)核心處理模塊,然后在核心處理模塊的基礎(chǔ)上增加一些功能模塊。軟件模塊的設(shè)計(jì)主要就是讓核心處理模塊可以操作這些功能模塊。硬件模塊結(jié)合軟件模塊才能實(shí)現(xiàn)一個(gè)令人滿意的嵌入式產(chǎn)品。本文選用STM32芯片作為核心處理模塊,物流車大致可以分為一下幾個(gè)部分:電源模塊、電機(jī)驅(qū)動(dòng)模塊、障礙物檢測(cè)模塊、紅外遙控模塊、自動(dòng)尋跡模塊。物流車控制系統(tǒng)的總體框圖如圖2-1所示圖2-1以上的總體框圖中,每一個(gè)模塊都在物流車控制系統(tǒng)中起到了重要的作用。STM32芯片在整個(gè)系統(tǒng)中,STM32是最核心的模塊,它的主要作用是:收集其他功能模塊返回的信息、處理數(shù)據(jù)、控制各個(gè)功能模塊的行為。電源模塊電源模塊的主要功能是給整個(gè)物流車控制系統(tǒng)提供所需要的電壓。電機(jī)驅(qū)動(dòng)模塊電機(jī)驅(qū)動(dòng)模塊主要負(fù)責(zé)控制物流車的運(yùn)動(dòng)狀態(tài),通過電機(jī)驅(qū)動(dòng)芯片控制直流電機(jī)的輸出從而控制車輪的轉(zhuǎn)速。障礙物檢測(cè)模塊障礙物檢測(cè)模塊主要使用傳感器檢測(cè)前方障礙物的距離然后將信息傳遞給核心處理模塊,核心處理模塊處理數(shù)據(jù)然后改變物流車的運(yùn)動(dòng)狀態(tài)。障礙物檢測(cè)模塊選擇紅外線傳感器和超聲波傳感器配合使用。兩種傳感器的檢測(cè)距離不同,配合使用可以擴(kuò)大障礙物檢測(cè)模塊的有效檢測(cè)范圍。紅外遙控模塊紅外遙控模塊可以讓物流車的控制方式從自動(dòng)控制方式變?yōu)槿斯た刂品绞?。紅外遙控模塊需要紅外遙控器和物流車上面的紅外接收模塊配合使用,紅外遙控接收模塊收集紅外遙控器發(fā)送的信號(hào)然后將信號(hào)傳遞給核心處理模塊,核心處理模塊處理數(shù)據(jù)然后改變物流車的運(yùn)動(dòng)狀態(tài)。自動(dòng)尋跡模塊自動(dòng)尋跡模塊是物流車自動(dòng)控制的核心模塊,可以讓物流車自動(dòng)沿著軌道運(yùn)動(dòng)。第3章系統(tǒng)的硬件設(shè)計(jì)3.1核心控制模塊的硬件設(shè)計(jì)為了讓物流車具有相應(yīng)迅速、運(yùn)動(dòng)平穩(wěn)的特性,選用STM32F103RCT6為控制芯片。本文選用的控制芯片為當(dāng)前主流的STM32系列芯片,STM32系列芯片是基于ARMCortex-M3處理器內(nèi)核的32位閃存微控制器。STM32具有高性能、低功耗、低電壓、實(shí)時(shí)性、高集成度、數(shù)字信號(hào)處理的功能和特點(diǎn),除了直接操作寄存器還可以通過庫函數(shù)來操作STM32,在編寫軟件程序時(shí)大大降低了工作難度。STM32F103RCT6芯片尺寸是32位,在速度方面主運(yùn)行頻率最大為72MHz,程序的存儲(chǔ)器容量為256KB,程序存儲(chǔ)器類型是FLASH,RAM容量為48K。STM32F103RCT6的最小系統(tǒng)如圖3-1所示圖3-13.2電源模塊的硬件設(shè)計(jì)電源模塊的作用是給系統(tǒng)中硬件模塊提供穩(wěn)定的、有效的電壓,從而保證整個(gè)系統(tǒng)可以正常運(yùn)轉(zhuǎn)。驅(qū)動(dòng)模塊的額定電壓為5V,本系統(tǒng)選定的電源為鋰電池,滿電情況下輸出電壓為8V左右,如果輸入電壓高于硬件模塊的額定電壓,該硬件模塊不僅不能正常工作反而還會(huì)因此燒毀,所以為了保重系統(tǒng)正常工作需要加入穩(wěn)壓芯片使電源輸出的電壓降低到5V。本系統(tǒng)選用LM7805型號(hào)的穩(wěn)壓芯片。電源模塊的原理圖如圖3-2所示圖3-23.3電機(jī)驅(qū)動(dòng)模塊的硬件設(shè)計(jì)電機(jī)驅(qū)動(dòng)模塊主要是通過STM32控制輸出脈沖的周期,從而控制電機(jī)的轉(zhuǎn)速和選擇方向,進(jìn)而完成物流車的前進(jìn)、后退、停車、轉(zhuǎn)彎等功能。本文選用的是直流電機(jī)來帶動(dòng)車輪旋轉(zhuǎn),直流電機(jī)相比于其他電機(jī)有以下幾種優(yōu)點(diǎn):1.直流電機(jī)的啟動(dòng)和調(diào)速性能好,調(diào)速范圍廣平滑,過載能力較強(qiáng),受電磁干擾影響小、2.直流電機(jī)的扭矩比較大,可以承受較大的載荷,能夠提升系統(tǒng)的穩(wěn)定性、3.直流電機(jī)的速度穩(wěn)定,轉(zhuǎn)速控制精準(zhǔn)、4.直流電機(jī)在控制速度方面比較簡單,只需要控制電壓的大小即可控制轉(zhuǎn)速。本文采用L293D電機(jī)控制芯片配合STM32輸出的PWM來控制電機(jī)的轉(zhuǎn)速。電機(jī)驅(qū)動(dòng)模塊的原理圖如圖3-3所示圖3-33.4障礙物檢測(cè)模塊的硬件設(shè)計(jì)障礙物檢測(cè)模塊用于檢測(cè)物流車前方是否存在障礙物并將是否有障礙物信息傳遞為單片機(jī)。障礙物檢測(cè)模塊由紅外檢測(cè)模塊和超聲波檢測(cè)模塊組成,紅外檢測(cè)模塊的檢測(cè)距離為2cm~30cm,超聲波檢測(cè)模塊的識(shí)別距離為2cm~400cm,兩者配合使用可以在保證識(shí)別范圍廣的情況下增加近距離的識(shí)別精度。3.4.1紅外檢測(cè)模塊的硬件設(shè)計(jì)紅外識(shí)別模塊的主要元器件是紅外發(fā)射管、紅外接收管、比較芯片。紅外識(shí)別模塊的工作原理是:紅外發(fā)射管不斷發(fā)出一定頻率的紅外線,紅外線遇到障礙物或者反射面的時(shí)候會(huì)被反射回來,反射回來的紅外線被紅外接收管接收,再經(jīng)過比較芯片處理后輸出數(shù)字信號(hào)。本文選用市面上常見的LM393作為比較芯片。紅外檢測(cè)模塊的原理圖如圖3-4所示圖3-43.4.2超聲波檢測(cè)模塊的硬件設(shè)計(jì)超聲波檢測(cè)模塊的檢測(cè)原理是:聲音在空氣中的傳播速度約為340m/s,超聲波模塊發(fā)射超聲波,超聲波遇到障礙物的時(shí)候回反射回來被超聲波模塊接收,超聲波從發(fā)射到接收的時(shí)間為△t,根據(jù)公式s=(v×△t)/2可以得到物流車與障礙物之間的距離。本文選用的是HC-RC40超聲波模塊,該模塊的識(shí)別范圍為2cm~400cm。超聲波模塊會(huì)自動(dòng)發(fā)射8個(gè)40KHz的方波并且檢測(cè)是否有信號(hào)返回,有信號(hào)返回就會(huì)輸出一個(gè)數(shù)字信號(hào)(高電平),高電平的持續(xù)時(shí)間就是超聲波從發(fā)射到接收所用的時(shí)間。超聲波檢測(cè)模塊的原理圖如圖3-5所示圖3-53.5紅外遙控模塊的硬件設(shè)計(jì)紅外遙控模塊需要紅外遙控器和紅外接收模塊配合使用,紅外遙控器由人工持有,紅外接收模塊安裝在物流車上面用于接收紅外遙控器發(fā)送的信號(hào)。紅外接收模塊選用市面上常用的紅外接收頭HS0038。紅外接收模塊原理圖如圖3-6所示圖3-63.6自動(dòng)尋跡模塊的硬件設(shè)計(jì)自動(dòng)尋跡模塊采用的是紅外尋跡,紅外尋跡的原理是:紅外線遇到不同顏色的物體會(huì)有不同程度的反射,白色物體幾乎不會(huì)吸收紅外光,反射強(qiáng)度最高。而黑色的物體會(huì)吸收絕大部分的紅外光,反射強(qiáng)度最低。紅外尋跡模塊有紅外光發(fā)射裝置和紅外光接收裝置,物流車啟動(dòng)時(shí)紅外光發(fā)射裝置會(huì)不停的發(fā)射紅外光,然后紅外光接收裝置接收紅外光。我們?cè)诘孛嫔箱佋O(shè)黑線來設(shè)置物流車的運(yùn)動(dòng)路線,單片機(jī)根據(jù)是否接收返回的紅外光來確定黑線的位置和物流車的行駛路線。自動(dòng)尋跡模塊的原理圖如圖3-7所示。圖3-7第4章系統(tǒng)的軟件設(shè)計(jì)4.1電機(jī)驅(qū)動(dòng)模塊的軟件設(shè)計(jì)電機(jī)驅(qū)動(dòng)模塊的功能是物流車的最基本功能,同時(shí)其他的功能模塊也需要配合電機(jī)驅(qū)動(dòng)模塊完成工作。電機(jī)驅(qū)動(dòng)模塊的軟件主要包含5個(gè)功能函數(shù):物流車前進(jìn)函數(shù)、物流車停止函數(shù)、物流車后退函數(shù)、物流車左轉(zhuǎn)函數(shù)、物流車右轉(zhuǎn)函數(shù)。5個(gè)功能最主要的實(shí)現(xiàn)原理就是使用PWM控制電機(jī)的旋轉(zhuǎn)速度和使用電機(jī)驅(qū)動(dòng)IO控制電機(jī)旋轉(zhuǎn)方向。為方便軟件的實(shí)現(xiàn),把主要實(shí)現(xiàn)原理封裝成一個(gè)函數(shù)setMotorRun用來設(shè)置電機(jī)的旋轉(zhuǎn)速度與旋轉(zhuǎn)方向。軟件的主要部分實(shí)現(xiàn)如下:定義電機(jī)常量與方法設(shè)置電機(jī)轉(zhuǎn)速和方向的函數(shù)封裝函數(shù)需要傳入兩個(gè)參數(shù):motorSelect(選擇的電機(jī))、speed(電機(jī)轉(zhuǎn)速)(3)前進(jìn)函數(shù)的實(shí)現(xiàn)物流車前進(jìn)需要讓左右的輪子都向前運(yùn)動(dòng)且速度相等,此時(shí)左輪為逆時(shí)針旋轉(zhuǎn),右輪為順時(shí)針旋轉(zhuǎn)。所以函數(shù)需要控制左右連個(gè)電機(jī)的旋轉(zhuǎn)速度大小相等方向相反。函數(shù)接收兩個(gè)參數(shù):speed(電機(jī)轉(zhuǎn)速)、time(函數(shù)延時(shí)時(shí)間)物流車剎車函數(shù)的實(shí)現(xiàn)物流車剎車時(shí)需要保證左輪和右輪都停止轉(zhuǎn)動(dòng),然后依靠輪胎與地面的摩擦讓物流車停下來。所以該函數(shù)需要讓兩個(gè)電機(jī)都停止轉(zhuǎn)動(dòng)。該函數(shù)接收一個(gè)參數(shù):time(函數(shù)延時(shí)時(shí)間)物流車后退函數(shù)的實(shí)現(xiàn)物流車的后退功能與前進(jìn)相似,左右輪子運(yùn)動(dòng)速度相同,同時(shí)向后運(yùn)動(dòng)。此時(shí)左輪為順時(shí)針旋轉(zhuǎn),右輪為逆時(shí)針旋轉(zhuǎn)。所以該函數(shù)需要控制左右電機(jī)的旋轉(zhuǎn)速度相同,旋轉(zhuǎn)方向相反。該函數(shù)接收連個(gè)參數(shù):speed(電機(jī)轉(zhuǎn)速)、time(函數(shù)延時(shí)時(shí)間)物流車左轉(zhuǎn)函數(shù)的實(shí)現(xiàn)物流車的左轉(zhuǎn)需要讓右輪的轉(zhuǎn)速比左輪的轉(zhuǎn)速高,在相同的時(shí)間內(nèi)物流車的右側(cè)需要比左側(cè)運(yùn)動(dòng)更多的距離。本函數(shù)設(shè)置左轉(zhuǎn)時(shí)左輪轉(zhuǎn)速為0,給右輪一個(gè)轉(zhuǎn)速從而實(shí)現(xiàn)物流車的左轉(zhuǎn)。該函數(shù)接收兩個(gè)參數(shù):speed(右電機(jī)的轉(zhuǎn)速)、time(函數(shù)延時(shí)時(shí)間)物流車的右轉(zhuǎn)函數(shù)的實(shí)現(xiàn)物流車的右轉(zhuǎn)需要讓左輪的轉(zhuǎn)速比右輪的轉(zhuǎn)速高,在相同的時(shí)間內(nèi)物流車的左側(cè)要比右側(cè)運(yùn)動(dòng)更多的距離。本函數(shù)設(shè)置右轉(zhuǎn)時(shí)右輪的轉(zhuǎn)速為0,給左輪一個(gè)轉(zhuǎn)速從而實(shí)現(xiàn)物流車的右轉(zhuǎn)。該函數(shù)接收兩個(gè)參數(shù):speed(左輪的轉(zhuǎn)速)、time(函數(shù)延時(shí)時(shí)間)4.2紅外檢測(cè)模塊的軟件設(shè)計(jì)紅外檢測(cè)模塊主要就是根據(jù)紅外傳感器返回的信號(hào)判斷前方是否有障礙物,如果是低電平那么檢測(cè)到前方有障礙物,如果是高電平那么前方?jīng)]有障礙物。紅外檢測(cè)模塊的軟件設(shè)計(jì)主要代碼實(shí)現(xiàn)如下:定義紅外傳感器常量紅外檢測(cè)函數(shù)的實(shí)現(xiàn)紅外檢測(cè)函數(shù)的主要內(nèi)容就是判斷IR_AVOID_IO是高電平還是低電平,高電平就代表前方無障礙物,低電平就代表前方有障礙物,然后分別對(duì)兩種情況做處理。在本函數(shù)的設(shè)計(jì)中,前方無障礙物設(shè)置物流車可以繼續(xù)前進(jìn),前方有障礙物會(huì)讓物流車停止。4.3超聲波檢測(cè)模塊的軟件設(shè)計(jì)4.3.1超聲波模塊測(cè)距的工作原理超聲波模塊測(cè)距的工作原理如下:給IO口的Trig引腳輸入一個(gè)至少為10us的高電平,此時(shí)就能夠驅(qū)動(dòng)超聲波模塊發(fā)出聲波。輸入高電平信號(hào)之后,超聲波模塊會(huì)自動(dòng)發(fā)射8個(gè)40KHz的方波,此時(shí)IO口的Echo輸出腳的電平信號(hào)時(shí)低電平。當(dāng)超聲波信號(hào)返回被接收到時(shí),IO口的Echo輸出腳會(huì)輸出一段高電平,這個(gè)高電平的持續(xù)時(shí)間就是超聲波從超聲波模塊發(fā)射到超聲波模塊接收時(shí)所用的總時(shí)間[3]。通過計(jì)算公式距離=速度x時(shí)間,將聲速(大約為340m/秒)和高電平持續(xù)時(shí)間的一半(高電平的持續(xù)時(shí)間是從發(fā)射到接收時(shí)的總時(shí)間,考慮到聲速很快,那么可以視為超聲波到達(dá)障礙物的時(shí)間與到達(dá)障礙物然后返回的時(shí)間是相等的[4])帶入到距離公式里面,可以計(jì)算出物流車與前方障礙物的距離。超聲波模塊的時(shí)序觸發(fā)圖如圖4-1所示圖4-1通過分析超聲波模塊的測(cè)距原理可以知道,軟件部分的主要工作是:讓Trig引腳出入一個(gè)至少10us的高電平,讀取Echo引腳的高電平持續(xù)時(shí)間。其中最關(guān)鍵的步驟就是讀取Echo引腳的高電平持續(xù)時(shí)間。本文使用外部中斷的方式來讀取高電平的持續(xù)時(shí)間。將中斷設(shè)置為上升沿觸發(fā),在觸發(fā)中斷時(shí)Echo引腳的電平信號(hào)剛好為高電平。在中斷函數(shù)里面先重置計(jì)數(shù)器的值,然后開啟定時(shí)器,之后使用while循環(huán)檢測(cè)當(dāng)前Echo引腳的電平信號(hào)是否為低電平,如果是低電平的話就表示此時(shí)此刻剛好從高電平跳轉(zhuǎn)到低電平[5]。之后關(guān)閉定時(shí)器,獲取計(jì)數(shù)器的值,計(jì)數(shù)器的個(gè)數(shù)乘以定時(shí)器的計(jì)時(shí)時(shí)間就是高電平的持續(xù)時(shí)間。4.3.2軟件設(shè)計(jì)(1)初始化配置中斷函數(shù)4.4紅外遙控模塊的軟件設(shè)計(jì)4.4.1紅外解碼原理紅外遙控模塊需要紅外遙控和紅外接收器配合使用,從紅外遙控發(fā)射信號(hào)到紅外接收器接收到信號(hào)的過程涉及到了紅外遙控信號(hào)的編碼與解碼[6]。本文選用的紅外遙控使用的是NEC協(xié)議。紅外接收頭接收到遙控器發(fā)射的紅外信號(hào)時(shí)為低電平,在沒有接收到信號(hào)的時(shí)候?yàn)楦唠娖?,每一次電平的高低變換稱為一個(gè)脈沖。NEC協(xié)議的接收部分時(shí)序圖如圖4-2所示,接收部分,低電平表示有紅外信號(hào),高電平表示沒有紅外信號(hào)。NEC碼規(guī)定,接收到的脈沖信號(hào),低電平的事件固定為0.56毫秒,如果高電平的時(shí)間為1.125-0.56=0.56毫秒,則這個(gè)脈沖代表0;如果高電平的時(shí)間為2.25-0.56=1.69毫秒,則這個(gè)脈沖代表1[7]。但是在實(shí)際使用情況下時(shí)間會(huì)有誤差,那么在編寫代碼的時(shí)候不是判斷具體的時(shí)間,而是在一個(gè)時(shí)間范圍里面去判斷高低電平的持續(xù)時(shí)間。圖4-2NEC遙控指令的數(shù)據(jù)格式為:引導(dǎo)碼、地址碼、地址反碼、控制碼、控制反碼。當(dāng)一個(gè)按鍵按下超過36ms時(shí),振蕩器使芯片激活,將會(huì)發(fā)射一組108ms的編碼脈沖,這108ms的編碼脈沖由一個(gè)引導(dǎo)碼(一個(gè)9ms的低電平和一個(gè)4.5ms的高電平組成)、8位地址碼(低位)、8位地址反碼(高位)、8位控制碼(低位)、8位控制反碼(高位)。NEC碼的數(shù)據(jù)格式如圖4-3所示。在程序的設(shè)計(jì)中,最主要的工作就是在接收到這個(gè)108ms的編碼脈沖之后先過濾掉引導(dǎo)碼然后獲取數(shù)據(jù)碼。這里需要區(qū)分引導(dǎo)碼和后面的8位數(shù)據(jù)格式碼(地址碼、地址反碼、控制碼、控制反碼),區(qū)分的方式也很簡單,引導(dǎo)碼的高電平持續(xù)時(shí)間為4.5ms左右,8位數(shù)據(jù)格式碼都是由0和1組成的,脈沖為位1時(shí)的高電平持續(xù)時(shí)間為1.69ms左右,脈沖為位0時(shí)的高電平持續(xù)時(shí)間為0.56ms左右,由于實(shí)際操作過程中有誤差,所以可以判斷高電平的持續(xù)時(shí)間在4ms到5ms之間的就是引導(dǎo)碼。圖4-34.4.2紅外解碼的方式紅外解碼最主要的步驟就是識(shí)別脈沖為位0或者位1,紅外解碼的方式也是有很多種,第一種方法就是通過讀取GPIO端口的輸入電平來判斷是位0還是位1,通過分析NEC協(xié)議的接收部分時(shí)序圖可以知道,不管是位0還是位1都包含了一個(gè)0.56ms的低電平,并且是從這個(gè)0.56ms的低電平開始的。區(qū)分位0和位1的方式就是判斷高電平的持續(xù)時(shí)間,高電平持續(xù)時(shí)間為0.56ms的就是位0,高電平持續(xù)時(shí)間為1.69毫秒的就是位1。讀取GPIO端口的輸入電平只能判斷當(dāng)前時(shí)刻是高電平還是低電平,但是可以通過延時(shí)函數(shù)來模擬高低電平的持續(xù)時(shí)間。可以從讀取到低電平開始設(shè)置一個(gè)0.56毫秒的延時(shí)函數(shù),延時(shí)過后就是高電平的持續(xù)時(shí)間,然后再設(shè)置一個(gè)0.56毫秒的延時(shí)函數(shù),0.56毫秒之后讀取到的電平如果是低電平就表示位0,如果讀取到的是高電平就表示位1。考慮到實(shí)際操作會(huì)出現(xiàn)誤差,第二次的延時(shí)時(shí)間需要比0.56毫秒略大一點(diǎn),但是不能超過1.12毫秒,可以取兩者的平均值(0.56+1.12)/2=0.84毫秒作為第二次的延時(shí)時(shí)長;第二種方法就是通過單片機(jī)的外部中斷功能,由于表示位0和表示位1的脈沖周期是不一樣的,表示位0的脈沖周期為1.125毫秒,表示位1的脈沖周期為2.25毫秒。通過外部中斷配合延時(shí)函數(shù)可以模擬出脈沖的周期,然后根據(jù)周期來判斷是位0還是位1。將外部中斷設(shè)置成沿下降沿觸發(fā),聲明一個(gè)時(shí)間變量t,在一個(gè)下降沿觸發(fā)之后使用一個(gè)循環(huán),循環(huán)里面調(diào)用延時(shí)函數(shù),讓t可以每20微秒自加一次,在下一次下降沿觸發(fā)的時(shí)候來計(jì)算本次脈沖的周期(t*0.02)毫秒,然后重置變量t用于計(jì)算下一個(gè)脈沖的周期。如果計(jì)算出來的周期是1.125毫秒左右則表示為位0,如果計(jì)算出來的周期是2.25毫秒左右則表示為位1;第三種方法就是通過單片機(jī)的輸入捕獲功能,識(shí)別位0和位1的方法也是位0和位1的高電平的持續(xù)時(shí)間不同,先設(shè)置定時(shí)器沿上升沿捕獲,觸發(fā)捕獲時(shí)剛好為高電平,此時(shí)計(jì)數(shù)器開始計(jì)數(shù),然后設(shè)置定時(shí)器沿下降沿捕獲,觸發(fā)下降沿捕獲時(shí)讀取計(jì)數(shù)器的值可以獲取高電平的持續(xù)時(shí)間,將獲取到的高電平的持續(xù)時(shí)間與位0和位1的高電平時(shí)間做對(duì)比,如果接近0.56毫秒則表示位0,如果接近1.69毫秒則表示位1,接著清空計(jì)數(shù)器為下一次捕獲做準(zhǔn)備[8]。對(duì)比了三種紅外解碼的方式,通過單片機(jī)的外部中斷去解碼的方法從代碼量上面來看比其他兩種方法更加少,從誤差的分析上面來看誤差的范圍更小可以讓識(shí)別更加準(zhǔn)確[9]。所以本文選擇的紅外解碼方式為通過單片機(jī)的外部中斷解碼。4.4.3軟件設(shè)計(jì)(1)初始化配置中斷函數(shù)4.5尋跡模塊的軟件設(shè)計(jì)尋跡模塊的主要功能是讓物流車沿著黑線自動(dòng)行駛,根據(jù)物流車相對(duì)于黑線的位置可以自動(dòng)改變運(yùn)動(dòng)方向使得物流車始終位于黑線上方[10]。判斷相對(duì)于黑線位置的方法就是根據(jù)紅外接收管接收過來的信號(hào)來判斷,遇到黑線時(shí)紅外光會(huì)被吸收,紅外接收管接收不到紅外光,返回高電平;遇到白色地板,紅外光被反射回來,紅外接收管接收到紅外,返回低電平[11]。物流車位于黑線之上,物理車底部安裝兩個(gè)紅外傳感器置于黑線左右兩側(cè),當(dāng)左右兩個(gè)傳感器都檢測(cè)到白色地板就表示物理車此時(shí)任然位于黑線之上,可讓物理車保持原來的運(yùn)動(dòng)狀態(tài)[12];當(dāng)左側(cè)的傳感器檢測(cè)到了白色地板,右側(cè)的傳感器檢測(cè)到了黑線,就代表物流車相對(duì)于黑線靠左側(cè)偏移了,此時(shí)需要控制物流車向右偏移以保證物流車位于黑線上方;當(dāng)左側(cè)的傳感器檢測(cè)到了黑線,右側(cè)的傳感器檢測(cè)到了白色地板,就代表物流車此時(shí)相對(duì)于黑線靠右側(cè)偏移了,此時(shí)需要控制物流車向左側(cè)偏移以保證物流車位于黑線上方;如果左右兩個(gè)傳感器同時(shí)檢測(cè)到了黑線,就表示物流車出于某種不可控的因素導(dǎo)致物流車偏移了原有軌道,此時(shí)需要停止物流車的運(yùn)動(dòng),然后通知技術(shù)人員來操作。下面為尋跡模塊的軟件設(shè)計(jì)的主要代碼的實(shí)現(xiàn):定義尋跡模塊的常量尋跡模塊函數(shù)的實(shí)現(xiàn)該函數(shù)主要根據(jù)左右傳感器返回的電平信號(hào)判斷物流車相對(duì)于黑線的位置,然后控制物流車做出對(duì)應(yīng)的動(dòng)作。總結(jié)與展望經(jīng)過了幾個(gè)月的努力,最終完成了物流運(yùn)輸車的控制系統(tǒng)的設(shè)計(jì)。本文從物流車的功能需求開始分析,將一個(gè)大的模塊分解成多個(gè)小的模塊,然后對(duì)每個(gè)小模塊進(jìn)行硬件和軟件的分析與設(shè)計(jì),最后一步一步組合成了一個(gè)完整的模塊。這些步驟也是學(xué)習(xí)知識(shí)和解決問題的一種好方法:分析問題、拆解問題、解決一個(gè)個(gè)小問題。本文設(shè)計(jì)的物流車控制系統(tǒng)在保證物流車的基本運(yùn)動(dòng)功能的情況下加入了紅外遙控、紅外避障、超聲波避

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論