【《某單片機(jī)控制清潔小車的硬件和軟件設(shè)計(jì)案例分析》7000字(論文)】_第1頁(yè)
【《某單片機(jī)控制清潔小車的硬件和軟件設(shè)計(jì)案例分析》7000字(論文)】_第2頁(yè)
【《某單片機(jī)控制清潔小車的硬件和軟件設(shè)計(jì)案例分析》7000字(論文)】_第3頁(yè)
【《某單片機(jī)控制清潔小車的硬件和軟件設(shè)計(jì)案例分析》7000字(論文)】_第4頁(yè)
【《某單片機(jī)控制清潔小車的硬件和軟件設(shè)計(jì)案例分析》7000字(論文)】_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

清潔機(jī)器人軟件設(shè)計(jì)前文對(duì)基于單片機(jī)的掃地機(jī)器人系統(tǒng)的硬件電路設(shè)計(jì)部分都進(jìn)行了詳細(xì)的介紹。本章將介紹基于單片機(jī)的掃地機(jī)器人的核心部分,即系統(tǒng)軟件部分設(shè)計(jì)。在實(shí)際工作中,C語言作為51單片機(jī)的主要開發(fā)語言,對(duì)程序設(shè)計(jì)都是通過它來進(jìn)行編寫。由對(duì)應(yīng)的編譯器,編寫正確的執(zhí)行代碼,這樣大大提高了程序的開發(fā)效率。C語言具有程序簡(jiǎn)潔,使用起來十分方便,數(shù)據(jù)結(jié)構(gòu)多樣性高,對(duì)結(jié)構(gòu)化程序設(shè)計(jì)有著極大的優(yōu)勢(shì),在代碼編寫完成后,有著極高的程序執(zhí)行效率。C語言函數(shù)一般由一或多個(gè)函數(shù)組成,程序從主函數(shù)開始執(zhí)行,在主函數(shù)中可以調(diào)用其他函數(shù)。但受到單片機(jī)硬件的影響,在結(jié)合單片機(jī)特點(diǎn)的情況下,51單片機(jī)所使用的C語言函數(shù)與標(biāo)準(zhǔn)的C語言有些不太一樣。這種改變后的程序被稱為C51程序。軟件的編寫還可以采用匯編語言,這是一種更接近機(jī)器碼,理論上性能比C語言更高的語言。當(dāng)C語言轉(zhuǎn)化為機(jī)器碼時(shí)所耗費(fèi)的時(shí)間于內(nèi)存都會(huì)比編程語言更多,但在平時(shí)的一般應(yīng)用中,這點(diǎn)差別是可以忽略的。而且C語言的眾多優(yōu)點(diǎn)也是匯編語言所不能替代的,匯編語言晦澀難懂,而C語言的簡(jiǎn)潔,直接面向使用,可讀性強(qiáng),邏輯上的易懂,后期維護(hù)和代碼的跟新也要更加方便,在遇見高時(shí)效要求的情況時(shí)還可以通過嵌入?yún)R編代碼來解決。所以本次智能清潔小車的軟件設(shè)計(jì)采用C語言來就行編寫。2.1軟件開發(fā)環(huán)境在實(shí)際工作中,C語言作為51單片機(jī)的主要開發(fā)語言,對(duì)程序設(shè)計(jì)都是通過它來進(jìn)行編寫。由對(duì)應(yīng)的編譯器,編寫正確的執(zhí)行代碼,這樣大大提高了程序的開發(fā)效率。C語言具有程序簡(jiǎn)潔,使用起來十分方便,數(shù)據(jù)結(jié)構(gòu)多樣性高,對(duì)結(jié)構(gòu)化程序設(shè)計(jì)有著極大的優(yōu)勢(shì),在代碼編寫完成后,有著極高的程序執(zhí)行效率。C語言函數(shù)一般由一或多個(gè)函數(shù)組成,程序從主函數(shù)開始執(zhí)行,在主函數(shù)中可以調(diào)用其他函數(shù)。但受到單片機(jī)硬件的影響,在結(jié)合單片機(jī)特點(diǎn)的情況下,51單片機(jī)所使用的C語言函數(shù)與標(biāo)準(zhǔn)的C語言有些不太一樣。這種改變后的程序被稱為C51程序。軟件的編寫還可以采用匯編語言,這是一種更接近機(jī)器碼,理論上性能比C語言更高的語言。當(dāng)C語言轉(zhuǎn)化為機(jī)器碼時(shí)所耗費(fèi)的時(shí)間于內(nèi)存都會(huì)比編程語言更多,但在平時(shí)的一般應(yīng)用中,這點(diǎn)差別是可以忽略的。而且C語言的眾多優(yōu)點(diǎn)也是匯編語言所不能替代的,匯編語言晦澀難懂,而C語言的簡(jiǎn)潔,直接面向使用,可讀性強(qiáng),邏輯上的易懂,后期維護(hù)和代碼的跟新也要更加方便,在遇見高時(shí)效要求的情況時(shí)還可以通過嵌入?yún)R編代碼來解決。所以本次智能清潔小車的軟件設(shè)計(jì)采用C語言來就行編寫。KeiluVision4程序開發(fā)軟件是由美國(guó)KeilSoftware公司研發(fā)并首先推出面世的集成開發(fā)環(huán)境,主要功能是用于程序的編譯及仿真。其功能豐富強(qiáng)度,但同時(shí)界面非常友好便于使用。Keil軟件推出多年,并隨著技術(shù)的不斷發(fā)展進(jìn)步,已經(jīng)迭代出很多個(gè)新的版本。本設(shè)計(jì)使用的是KeiluVision4,使用其可以打開任意老版本軟件輸出的工程文件。隨著版本的升級(jí),其操作界面仍然進(jìn)行了保留,方便開發(fā)者使用,新版本主要的優(yōu)化點(diǎn)在于功能的優(yōu)化,以及性能的提升,使編譯速度更快,編譯后的文件更小。Keil軟件的所有版本都支持C語言編程。并且當(dāng)編程過程中,出現(xiàn)語法錯(cuò)誤時(shí),系統(tǒng)會(huì)醒目的提示用戶。STC89C52等非常的微控制器,均可在使用Keil4進(jìn)行程序設(shè)計(jì)。同時(shí),使用其提供的仿真功能也是非常的方便。Keil4軟件的部分特點(diǎn):(1)可以自動(dòng)生成完善的啟動(dòng)代碼,不需要開發(fā)者在枯燥難懂的啟動(dòng)代碼上花費(fèi)時(shí)間,因此使用其進(jìn)行項(xiàng)目的開發(fā),效率會(huì)非常的高,可以最大程度上縮短設(shè)計(jì)的周期。并且其編程界面簡(jiǎn)單直觀,對(duì)開發(fā)者使用非常友好;(2)KEIL的在線仿真功能非常的實(shí)用,通過下載器連接硬件,及可實(shí)現(xiàn)實(shí)時(shí)的在線仿真功能,對(duì)于查找BUG非常的方便;(3)其內(nèi)部集成了很多微處理器的庫(kù)及開發(fā)環(huán)境,是單片機(jī)開發(fā)環(huán)境的首選;(4)支持使用ULINK2或者JLINK進(jìn)行仿真或者下載,速度很快,可靠行很高;下圖2.1為本次設(shè)計(jì)編寫程序建立界面。 圖2.1LEIL界面在對(duì)程序進(jìn)行編寫的過程中,要實(shí)現(xiàn)所需要的功能需要經(jīng)過不斷的調(diào)試、修改。這是一個(gè)極其消耗時(shí)間的過程,編譯后沒有錯(cuò)誤的程序才可以生成HEX文件。編譯成功如圖2.2所示: 圖2.2編譯成功界面在經(jīng)過耗時(shí)最長(zhǎng)的程序編譯及調(diào)試后,要做的就是將生成的HEX文件下載到我們所選的STC89C52單片芯片中,我所使用的下載軟件是普中科技的PZ-ISP下載軟件。圖2.3為下載界面。圖2.3程序下載成功界面2.2程序設(shè)計(jì)流程 下面將具體的對(duì)系統(tǒng)軟件編程思路進(jìn)行介紹,系統(tǒng)上電后,首先進(jìn)行系統(tǒng)的初始化,然后通過按鍵的狀態(tài)來檢測(cè)使用者是否人為的進(jìn)行了速度的設(shè)定,如果使用者沒有進(jìn)行速度的設(shè)定,則掃地機(jī)器人按照系統(tǒng)預(yù)設(shè)的速度行進(jìn)。如果按下加速按鍵,則會(huì)在預(yù)設(shè)行進(jìn)速度的基礎(chǔ)上進(jìn)行加速;反之,如果按下減速按鍵,則會(huì)在預(yù)設(shè)行進(jìn)速度的基礎(chǔ)上進(jìn)行減速。系統(tǒng)的加速和減速的調(diào)節(jié),在程序內(nèi)部是通過PWM調(diào)速程序?qū)崿F(xiàn)。此掃地機(jī)器人有三種掃地模式,分別為:往返清掃模式、任意清掃模式和延邊清掃模式,可以通過模式選擇按鍵來對(duì)此三種模式進(jìn)行切換,每按一次按鍵則切換一種模式。當(dāng)掃地機(jī)器人工作在往返清掃模式時(shí),機(jī)器人會(huì)以S型路線進(jìn)行往返清掃;當(dāng)掃地機(jī)器人工作在往任意掃模式時(shí),當(dāng)前方出現(xiàn)障礙物時(shí),機(jī)器人先后退,然后向右邊轉(zhuǎn)向,進(jìn)行清掃功能;當(dāng)掃地機(jī)器人工作在往返清掃模式時(shí),它會(huì)沿著墻壁的邊緣進(jìn)行清掃;其能夠自動(dòng)準(zhǔn)確的進(jìn)行避障,主要是依賴于掃地機(jī)器人上面安裝的三個(gè)紅外避障傳感器,通過三個(gè)紅外避障傳感器的輸出,系統(tǒng)就可以判斷出哪個(gè)方位存在障礙物,從而進(jìn)行停止,轉(zhuǎn)彎,繼續(xù)前進(jìn)等操作。當(dāng)掃地機(jī)器人工作在任一清掃模式下,掃地風(fēng)扇都是全程開啟狀態(tài)。整體的設(shè)計(jì)流程圖如下圖2.4所示。圖2.4主程序流程本次設(shè)計(jì)為智能清潔小車,程序主要實(shí)現(xiàn)的功能是小車在工作時(shí)對(duì)周邊障礙物的識(shí)別于躲避,并在工作環(huán)境中正確穩(wěn)定的實(shí)現(xiàn)清掃工作,做到對(duì)地面的全面清潔。在此要求上設(shè)計(jì)出了三種不同的清掃模式,來幫助清潔小車應(yīng)對(duì)復(fù)雜的工作環(huán)境。且三種工作模式可以互相補(bǔ)充,支持清潔小車更好的完成預(yù)定工作。模式一:往返清掃模式當(dāng)清潔小車工作在一個(gè)相對(duì)障礙物存在較少,環(huán)境不太復(fù)雜的房間中時(shí)。我設(shè)計(jì)出了往返清掃的工作模式。在這種模式下小車可以清掃到房間地面的每個(gè)部分。以房間的一個(gè)角作為起點(diǎn)開始工作,沿著邊緣開始對(duì)房間進(jìn)行清掃。起點(diǎn)以一個(gè)空間平面最左側(cè)平行位置開始,清潔小車先向前沿直線行駛到對(duì)面墻壁前,前側(cè)紅外傳感器與左側(cè)紅外傳感器此時(shí)同時(shí)檢測(cè)到障礙物后小車停止前進(jìn),并向后退1秒,然后向右側(cè)轉(zhuǎn)向90度,再向前行進(jìn)1秒,右轉(zhuǎn)90度,最后后退兩秒。同理,當(dāng)清潔小車行駛到對(duì)面墻壁前時(shí),前側(cè)紅外傳感器感應(yīng)到障礙物,執(zhí)行上述操作,完成掉頭。整體路徑呈現(xiàn)S形。往返清掃模式流程圖見圖2.5。圖2.5往返清掃模式流程圖模式二:任意清掃模式設(shè)計(jì)的第二種模式是任意清掃模式,當(dāng)清潔小車工作的環(huán)境中存在過多的障礙物時(shí),才用往返清掃模式就不能滿足清掃到房間中每個(gè)方法的要求,至此情況下,可以采用任意清掃模式。在這種工作模式下隨著時(shí)間的延長(zhǎng)也能做到清掃到房間每處的要求,但所需的時(shí)間過長(zhǎng)。任意清掃模式流程圖見圖2.6。圖2.6任意清掃模式流程圖模式三:邊緣清掃模式在對(duì)前兩種清掃模式測(cè)試后發(fā)現(xiàn)對(duì)房間邊緣沿墻壁部分清掃結(jié)果并不滿意。經(jīng)檢驗(yàn)發(fā)現(xiàn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論