哈工大單片機(jī)課設(shè)避障小車_第1頁
哈工大單片機(jī)課設(shè)避障小車_第2頁
哈工大單片機(jī)課設(shè)避障小車_第3頁
哈工大單片機(jī)課設(shè)避障小車_第4頁
哈工大單片機(jī)課設(shè)避障小車_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

HarbinInstituteofTechnology課程設(shè)計(jì)說明書〔論文〕設(shè)計(jì)題目:超聲波避障小車院系:學(xué)院班級:設(shè)計(jì)者:學(xué)號:指導(dǎo)教師:設(shè)計(jì)時(shí)間:哈爾濱工業(yè)大學(xué)哈爾濱工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書姓名:院〔系〕:專業(yè):班號:任務(wù)起至日期:年月日至年月日課程設(shè)計(jì)題目:超聲波避障小車技術(shù)參數(shù)和設(shè)計(jì)要求:技術(shù)參數(shù):工作電壓:5v工作電流:30mA典型,50mA最大工作頻率:38.5KHz最大探測距離:1.8m最小探測距離:3cm輸入觸發(fā)器:上升沿觸發(fā)回波脈沖:正TTL高電平脈沖寬度下一次測量的延時(shí):20mS設(shè)計(jì)要求:實(shí)現(xiàn)小車自動(dòng)避障任務(wù),采用超聲波模塊實(shí)現(xiàn)小車避障功能。工作量:總工作時(shí)間為10天;完成硬件電路的設(shè)計(jì)工作;設(shè)計(jì)程序流程圖并編寫、調(diào)試程序;硬件連接調(diào)試,完成設(shè)定的功能;最后撰寫開題報(bào)告和結(jié)題報(bào)告各一份。工作方案安排:——2023.8.28:任務(wù)布置、查閱資料,了解小車避障原理;——2023.8.30:根據(jù)要實(shí)現(xiàn)的功能及采用的方法設(shè)計(jì)程序流程并編寫程序;——2023.9.3:程序裝載、調(diào)試運(yùn)行各種擬實(shí)現(xiàn)的功能;——2023.9.5:完成設(shè)定要實(shí)現(xiàn)的功能,撰寫課程設(shè)計(jì)說明書;——2023.9.7:完成硬件調(diào)試、驗(yàn)收。同組設(shè)計(jì)者及分工:指導(dǎo)教師簽字___________________年月日教研室主任意見:教研室主任簽字___________________年月日*注:此任務(wù)書由課程設(shè)計(jì)指導(dǎo)教師填寫開題報(bào)告緒論課題目的通過上學(xué)期單片機(jī)課程的學(xué)習(xí),我們根本掌握了51單片機(jī)的根本使用方法,本學(xué)期開學(xué)初,單片機(jī)課程設(shè)計(jì)給了我們更大的挑戰(zhàn),課題的目的有以下幾點(diǎn)。進(jìn)一步熟練掌握單片機(jī)的使用方法、提高程序的編寫能力掌握單片機(jī)系統(tǒng)外擴(kuò)器件的連接與使用提高器件說明書以及時(shí)序過程的閱讀、理解能力掌握軟件和硬件調(diào)試的根本技巧與方法工程研究背景及意義在當(dāng)今社會(huì),汽車成為了越來越普遍,人們不可缺少的交通工具。但汽車的不斷增加,隨之而來就是越來越多的交通事故。交通事故成為了現(xiàn)在越來越嚴(yán)重的平安隱患。所以隨著汽車工業(yè)的快速開展,我們必須加強(qiáng)對汽車平安性能的考慮。所以,智能汽車概念應(yīng)運(yùn)而生,他既是汽車產(chǎn)業(yè)的機(jī)遇也是汽車產(chǎn)業(yè)的挑戰(zhàn)。汽車的智能化必將是未來汽車產(chǎn)業(yè)開展的趨勢,在這樣的背景下,我們開展了基于超聲波的智能小車的避障研究。超聲波作為智能車避障的一種重要手段,以其避障實(shí)現(xiàn)方便,計(jì)算簡單,易于做到實(shí)時(shí)控制,測量精度也能到達(dá)實(shí)用的要求,在未來汽車智能化進(jìn)程中必將得到廣泛應(yīng)用。我國作為一個(gè)世界大國,在高科技領(lǐng)域也必須占據(jù)一席之地,未來汽車的智能化是汽車產(chǎn)業(yè)開展必然的,在這種情況下研究超聲波在智能車避障上的應(yīng)用具有深遠(yuǎn)意義,這將對我國未來智能汽車的研究在世界高科技領(lǐng)域占據(jù)領(lǐng)先地位具有重要作用。設(shè)計(jì)要求采用超聲波模塊實(shí)現(xiàn)小車避障功能,實(shí)現(xiàn)小車自動(dòng)避障任務(wù)。主要設(shè)計(jì)內(nèi)容及方案總體方案設(shè)計(jì)系統(tǒng)采用51單片機(jī)作為核心控制單元用于智能車系統(tǒng)的控制,在超聲波檢測到障礙物之后,主控芯片根據(jù)距離值控制直流電機(jī)的轉(zhuǎn)動(dòng),在與障礙物距離較大的情況下,快速前進(jìn),在與障礙物距離較小但還未到達(dá)臨界轉(zhuǎn)彎方向值的時(shí)候,慢速前進(jìn)。在與障礙物距離很近需要轉(zhuǎn)向避障時(shí),方案上將嘗試進(jìn)行轉(zhuǎn)向,來進(jìn)行避障。系統(tǒng)總體的設(shè)計(jì)方框圖如圖2-1所示。圖圖STYLEREF1\s2SEQ圖2-\*ARABIC\s11系統(tǒng)總體方案圖圖1.2系統(tǒng)總體方框圖根據(jù)以上的總體方案設(shè)計(jì),我們進(jìn)行了主程序流程圖的設(shè)計(jì),下面為所設(shè)計(jì)的主程序的流程圖。其中DIS即為小車與障礙物的距離;圖STYLEREF1\s22主程序流程圖主要模塊的根本原理超聲波探測模塊超聲波探測模塊的根本原理及使用方法如下:IO口觸發(fā),給Sin口至少5~10us的高電平,啟動(dòng)測量;模塊自動(dòng)發(fā)送8個(gè)40Khz的方波,自動(dòng)檢測是否有信號返回;有信號返回,通過IO口Sin輸出一個(gè)高電平,高電平持續(xù)的時(shí)間就是超聲波從發(fā)射到返回的時(shí)間,測試距離=〔高電平時(shí)間*340〕/2。圖2-3超聲波探測模塊時(shí)序圖圖2-3超聲波探測模塊時(shí)序圖直流電機(jī)控制模塊機(jī)器人的動(dòng)作由伺服電機(jī)控制。伺服電機(jī)與單片機(jī)接口的連接,圖電機(jī)連接原理圖和實(shí)際接線圖,P1_0引腳的控制輸出用來控制右的伺服電機(jī),而P1_1那么用來控制左邊的伺服電機(jī)。圖2-4左、右電機(jī)連接圖控制電機(jī)運(yùn)動(dòng)轉(zhuǎn)速的是高電平持續(xù)的時(shí)間,當(dāng)高電平持續(xù)時(shí)間為1.3ms時(shí),電機(jī)順時(shí)針全速旋轉(zhuǎn),當(dāng)高電平持續(xù)時(shí)間1.7ms時(shí),電機(jī)逆時(shí)針?biāo)傩D(zhuǎn)。圖2-5電機(jī)順、逆時(shí)針旋轉(zhuǎn)控制脈沖圖所以可知,假設(shè)令左、右車輪電機(jī)高電平持續(xù)時(shí)間為1.5ms時(shí),小車將處于靜止?fàn)顟B(tài)。假設(shè)令左車輪電機(jī)高電平持續(xù)時(shí)間為1.7ms,右車輪電機(jī)高電平持續(xù)時(shí)間為1.3ms時(shí),那么左車輪電機(jī)逆時(shí)針,右車輪電機(jī)順時(shí)針,小車將會(huì)以最快的速度前進(jìn)。此時(shí),假設(shè)想改變小車的前進(jìn)速度,那么逐漸減小左電機(jī)的高電平時(shí)間,逐漸增加右電機(jī)的高電平時(shí)間,那么可以減小車速。同理可知,假設(shè)令左車輪電機(jī)高電平持續(xù)時(shí)間為1.3ms,右車輪電機(jī)高電平持續(xù)時(shí)間為1.7ms時(shí),那么左車輪電機(jī)順時(shí)針,右車輪電機(jī)逆時(shí)針,小車將會(huì)以最快的速度后退。當(dāng)需要轉(zhuǎn)彎時(shí),通過分析和測試我們可以知道,當(dāng)小車想左轉(zhuǎn)時(shí),需令左右兩輪均順時(shí)針旋轉(zhuǎn),而當(dāng)小車想右轉(zhuǎn)時(shí),需令左右兩輪均逆時(shí)針旋轉(zhuǎn)。通過對直流電機(jī)模塊的學(xué)習(xí)和了解,我已經(jīng)了解了控制小車運(yùn)動(dòng)的方法。需解決的關(guān)鍵問題關(guān)鍵問題首先是要學(xué)會(huì)使用超聲波測距器件,根據(jù)老師所提供的知識(shí),利用圖像讀懂超聲波器件的工作時(shí)序,根據(jù)時(shí)序以及超聲波測距器件的工作信號特點(diǎn),并且結(jié)合單片機(jī)的定時(shí)器/計(jì)數(shù)器等功能,來順利的完成小車對于前方障礙物距離的測量。另一個(gè)比擬關(guān)鍵的問題就是確定小車的避障方案,根據(jù)上方的主程序流程圖,我們采用一種避障方案,在接下的設(shè)計(jì)中,我們需要對于該方案能否正確躲避障礙進(jìn)行驗(yàn)證,并且需要不斷思考,提出更多的更好的更有效的避障方案。具體實(shí)施方案及程序2.4.1程序初始化初始化函數(shù)中需要對定時(shí)器/計(jì)數(shù)器的模式進(jìn)行設(shè)定,以及初始值的設(shè)定,流程圖如下程序如下:voidIO_init(void){EA=1; ET0=1; TMOD=0x11;//將T0定時(shí)器/計(jì)數(shù)器設(shè)置為16位計(jì)數(shù)模式 TH0=0x00;//初始值為0 TL0=0x00; TR0=0;//不開始計(jì)數(shù)}2.4.2測距函數(shù)測距函數(shù)是本程序的比擬關(guān)鍵的一個(gè)函數(shù),需要根據(jù)儀器的本身特點(diǎn)來進(jìn)行編程,流程圖如下測距函數(shù)如下:voidgetx(unsignedchara)//測距函數(shù){ TH0=TL0=0;//初始值設(shè)置為0 if(a) { Sin=0;//Sin置0 Sin=1;//Sin置1,并且延時(shí)一段時(shí)間,提供一個(gè)測距的觸發(fā)脈沖 delay_5us(); Sin=0;//Sin重新置0 } while(Sin); while(!Sin);//SIN信號從低電平變?yōu)楦唠娖剑藭r(shí)跳出該循環(huán)TR0置1,開始計(jì)數(shù) TR0=1; while(Sin);/SIN信號從高電平變?yōu)榈碗娖剑藭r(shí)跳出該循環(huán)TR0置0,停止計(jì)數(shù) TR0=0; LTime=TL0; HTime=TH0; Time=HTime*256+LTime;//將高8位乘以256加上低8位得到總值 Dis=Time/(2*29);//計(jì)算出所差距離 }2.4.3主函數(shù)主函數(shù)的流程圖如下主函數(shù)如下:voidmain()//主程序{ IO_init();//初始化 while(1) { getx(1);//測距 if(Dis>=50)//如果距離大于50 { Forward_fast(); //快速前進(jìn) } elseif(Dis>=10&&Dis<50)//如果距離在10與50之內(nèi) { Forward_slow(); //慢速前進(jìn) } else //否那么,小于10,需轉(zhuǎn)向避障 { Left_90(); //先左轉(zhuǎn)90度 getx(1); //測量距離 if(Dis>=10)//如果距離大于10 { Forward_slow(); //慢速前進(jìn) } else //如果距離依舊小于10 { Right_180(); //右轉(zhuǎn)180 getx(1);//測距 if(Dis>=10)//如果此時(shí)距離小于10 { Forward_slow(); //慢速前進(jìn) } else //否那么,繼續(xù)調(diào)試 { Right_90();//右轉(zhuǎn)90度 } } } }}2.4.4完整程序代碼與注釋#include<reg51.h>#include<intrins.h>sbitSin=P1^5;//超聲波模塊控制端口sbitright=P1^0;//右輪控制信號sbitleft=P1^1;//左輪控制信號unsignedintDis,Time;unsignedcharLTime,HTime;voidIO_init(void){EA=1; ET0=1; TMOD=0x11;//將T0定時(shí)器/計(jì)數(shù)器設(shè)置為16位計(jì)數(shù)模式 TH0=0x00;//初始值為0 TL0=0x00; TR0=0;//不開始計(jì)數(shù)}voiddelay_nus(unsignedinti)//延時(shí)函數(shù){ i=i/10; while(--i);}voiddelay_5us()//短時(shí)間延時(shí)函數(shù),為SIN高電平準(zhǔn)備{ _nop_();}voidgetx(unsignedchara)//測距函數(shù){ TH0=TL0=0;//初始值設(shè)置為0 if(a) { Sin=0;//Sin置0 Sin=1;//Sin置1,并且延時(shí)一段時(shí)間,提供一個(gè)測距的觸發(fā)脈沖 delay_5us(); Sin=0;//Sin重新置0 } while(Sin); while(!Sin);//SIN信號從低電平變?yōu)楦唠娖?,此時(shí)跳出該循環(huán)TR0置1,開始計(jì)數(shù) TR0=1; while(Sin);/SIN信號從高電平變?yōu)榈碗娖?,此時(shí)跳出該循環(huán)TR0置0,停止計(jì)數(shù) TR0=0; LTime=TL0; HTime=TH0; Time=HTime*256+LTime;//將高8位乘以256加上低8位得到總值 Dis=Time/(2*29);//計(jì)算出所差距離 }voidForward_fast(void)//快速前進(jìn){ left=1; delay_nus(1700); left=0; delay_nus(20000); right=1; delay_nus(1300); right=0; delay_nus(20000);}voidForward_slow(void)//慢速前進(jìn){ left=1; delay_nus(1580);//減小左電機(jī)的高電平時(shí)間,增加右電機(jī)的高電平時(shí)間,減小速度 left=0; delay_nus(20000); right=1; delay_nus(1420); right=0; delay_nus(20000);}voidLeft_90(void)//左轉(zhuǎn)90度{unsignedinti=0;while(i<20){ i++; left=1; delay_nus(1300);//令左、右兩輪均順時(shí)針轉(zhuǎn)動(dòng) left=0; delay_nus(20000); right=1; delay_nus(1300); right=0; delay_nus(20000);}}voidRight_180(){unsignedinti=0;while(i<38){ i++; left=1;//令左、右兩輪均逆時(shí)針轉(zhuǎn)動(dòng) delay_nus(1700); left=0; delay_nus(20000); right=1; delay_nus(1700); right=0; delay_nus(20000);}}voidRight_90()//令左、右兩輪均逆時(shí)針轉(zhuǎn)動(dòng){unsignedinti=0;while(i<20){ i++; left=1; delay_nus(1700); left=0; delay_nus(20000); right=1; delay_nus(1700); right=0; delay_nus(20000);} }voidmain()//主程序{ IO_init();//初始化 while(1) { getx(1);//測距 if(Dis>=50)//如果距離大于50 { Forward_fast(); //快速前進(jìn) } elseif(Dis>=10&&Dis<50)//如果距離在10與50之內(nèi) { Forward_slow(); //慢速前進(jìn) } else //否那么,小于10,需轉(zhuǎn)向避障 { Left_90(); //先左轉(zhuǎn)90度 getx(1); //測量距離 if(Dis>=10)//如果距離大于10 { Forward_slow(); //慢速前進(jìn) } else //如果距離依舊小于10 { Right_180(); //右轉(zhuǎn)180 getx(1);//測距 if(Dis>=10)//如果此時(shí)距離小于10 { Forward_slow(); //慢速前進(jìn) } else //否那么,繼續(xù)調(diào)試 { Right_90();//右轉(zhuǎn)90度 } } } }}結(jié)題報(bào)告1課題完成情況本超聲波避障小車的設(shè)計(jì)基于單片機(jī)原理和傳感器原理,以51單片機(jī)為主控芯片,采用直流電機(jī)為驅(qū)動(dòng)元件,通過軟件編程制作了一整套結(jié)構(gòu)完整,功能模塊化,反響較為靈敏的超聲波避障小車。經(jīng)過對該避障小車的避障測試實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果證明該避障小車能夠很好的按照預(yù)期完成避障動(dòng)作,并且能夠快速運(yùn)動(dòng)靈敏避障,效果良好,運(yùn)行穩(wěn)定性較好。2所遇問題及解決方案在進(jìn)行小車調(diào)試時(shí),我們遇到的一個(gè)最大困難就是當(dāng)我們前期的程序燒入芯片后,我們的小車運(yùn)行的非常不平穩(wěn),前進(jìn)運(yùn)行的非常不連貫。小車前進(jìn)一會(huì),就會(huì)有一段比擬明顯的時(shí)段停止。當(dāng)我遇到這個(gè)問題時(shí),我沒有慌亂,我一步一步的進(jìn)行了分析。首先,我疑心了前進(jìn)函數(shù)Forward〔〕出現(xiàn)問題,檢查Forward〔〕的后,發(fā)現(xiàn)提供應(yīng)左右車輪的PWM信號正常,沒有出現(xiàn)異常,而且出于控制變量思想,為了準(zhǔn)確的找到問題的癥結(jié)所在,我單獨(dú)講Forward〔〕函數(shù)燒入小車中,運(yùn)行后可以發(fā)現(xiàn),小車的運(yùn)行非常正常,不存在運(yùn)行不平穩(wěn)的現(xiàn)象。

在排除了Forward〔〕函數(shù)的問題后,我開始疑心是不是測速的函數(shù)getx〔〕對Forward〔〕函數(shù)造成了干擾。我們通過分析可以知道,forward〔〕函數(shù)提供了一個(gè)非常完美的驅(qū)動(dòng)電機(jī)的PWM信號,但是一旦在程序中,存在著一些其他例如測距程序,判斷語句等程序時(shí),會(huì)對其PWM信號產(chǎn)生一些干擾,應(yīng)盡可能的減少這些程序?qū)τ谛≤囘\(yùn)行程序的干擾。所以我將我之前使用的delay〔〕函數(shù)用系統(tǒng)的庫函數(shù)_nop()_來代替,再將更改后的程序下載入小車后,驚奇的發(fā)現(xiàn),小車能夠平穩(wěn)的運(yùn)行了。我們再進(jìn)一步的分析這個(gè)問題的原因,我們可以看到,在之前的delay〔〕函數(shù)中,我們使用了除法,除法在指令周期最長的一個(gè)指令,他會(huì)導(dǎo)致PWM信號在某一電平上停留的時(shí)間過長,影響信號的占空比與波形,而系統(tǒng)的庫函數(shù)運(yùn)行的時(shí)間那么比擬短,對其他函數(shù)的影響較小。以上就是我對這個(gè)問題的思考,可能我對這個(gè)問題的分析也存在一些不完善的地方,比方說,我自己也會(huì)問自己,指令的運(yùn)行周期長短,怎么會(huì)對毫秒級的PWM電機(jī)驅(qū)動(dòng)信號造成如此大的影響等等,課程設(shè)計(jì)結(jié)束后,我也會(huì)繼續(xù)的查找一些資料,多問問師兄和老師,爭取找到最完整,正確的答案。3心得體會(huì)這次課程設(shè)計(jì)給我們提供了一個(gè)非常好的時(shí)機(jī)來提高我們實(shí)際的應(yīng)用能力。從選題開始老師就給予我們很大的自主性,讓我們大家自主選題,這種開放式教學(xué)方式也從另一個(gè)方面激發(fā)起了我們?nèi)W(xué)習(xí)的欲望。這次課程設(shè)計(jì),給我更多的是一種模塊化的思想,將系統(tǒng)按我們所需的功能和系統(tǒng)所能提供的功能進(jìn)行模塊化的分類,將會(huì)使我們的工作變得一目了然,非常清晰。比方說這次我選的避障小車,可以分成超聲波測速模塊,電機(jī)驅(qū)動(dòng)模塊,單片機(jī)核心模塊三個(gè),三個(gè)局部各司其職,無論從硬件上還是軟件上,都能夠比擬清晰地將他們的功能區(qū)分開,從而有利于硬件的連接和程序的編寫。對于這次程序的編寫,我就是分塊編寫,按模塊調(diào)試,從而防止了許多錯(cuò)誤。從以后工作來看,這種模塊化處理問題的方式將會(huì)更加的有用,在公司和以后得科研工程中,系統(tǒng)一定是越來越復(fù)雜,不可能一個(gè)人完成所有的任務(wù),一定是一個(gè)團(tuán)隊(duì)來做這些系統(tǒng)的設(shè)計(jì),所以模塊化之后,能夠?qū)⑷蝿?wù)分配給每個(gè)人,最后大家還能夠很好的綜合到一起,大大的縮短了開發(fā)周期。這次課程設(shè)計(jì),提高了我對于陌生硬件的學(xué)習(xí)能力,超聲波儀器對我來說非常的陌生,所以通過這次的學(xué)習(xí),我感覺我學(xué)習(xí)硬件的能力有所提高,對于時(shí)序的理解能力也有了進(jìn)步。單片機(jī)主要的功能就是對各種各樣的外設(shè)進(jìn)行控制,在以后的工作學(xué)習(xí)中,我一定會(huì)遇到非常多的不熟悉的硬件,我相信,通過不斷地鍛煉積累,應(yīng)該有比擬強(qiáng)的學(xué)習(xí)能力。但是該超聲波避障小車還存在著許多的缺乏,比方說只能對正前方一定角度內(nèi)進(jìn)行探測,使用的是一路超聲波而不是多路超聲波探測,并且為了簡化,默認(rèn)的只是向同

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論