基于STM32酒店多功能小車系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
基于STM32酒店多功能小車系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
基于STM32酒店多功能小車系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
基于STM32酒店多功能小車系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
基于STM32酒店多功能小車系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

第4章軟件設(shè)計經(jīng)過上一章節(jié)對系統(tǒng)模塊的精心設(shè)計,已經(jīng)對硬件技術(shù)框架和電路功能結(jié)構(gòu)有了清晰的認(rèn)識。本章節(jié)將著重介紹軟件功能模塊的實現(xiàn)效果,以便讀者更加深入地了解系統(tǒng)的運作方式和性能表現(xiàn)。4.1編程語言程序開發(fā)軟件對于STM32微控制器的開發(fā),有多種軟件工具可供選擇,包括STM32CubeIDE、Keil5MDK、IAREmbeddedWorkbench、STM32CubeMX、GCC(使用ARMGCC或GNUArmEmbeddedToolchain)等,來編譯和調(diào)試STM32應(yīng)用程序。本課題選擇使用Keil5MDK作為開發(fā)平臺,Keil5MDK是ARM公司開發(fā)的一個完整的嵌入式開發(fā)平臺,包含了uVision5集成開發(fā)環(huán)境以及其他必要的組件和工具,是一種廣泛使用的開發(fā)套件,可用于多種微控制器平臺REF_Ref3578\r\h[10]。在嵌入式系統(tǒng)開發(fā)的廣袤天地中,Keil作為一款集成開發(fā)環(huán)境,無疑占據(jù)著舉足輕重的地位。它最初由德國的KeilSoftware公司精心打造,后被ARM公司收歸麾下,從此開啟了一段更為輝煌的發(fā)展歷程。Keil為開發(fā)者們搭建了一個功能完備的平臺,從代碼的構(gòu)思撰寫,到編譯、調(diào)試,直至最終生成可供目標(biāo)硬件運行的可執(zhí)行文件,整個開發(fā)流程都能在這個統(tǒng)一的環(huán)境中有序推進(jìn),極大地提升了開發(fā)效率。Keil的功能豐富而強(qiáng)大,宛如一座蘊(yùn)藏著無盡寶藏的寶庫。在代碼編輯環(huán)節(jié),它堪稱多面手,對C、C++以及匯編語言等主流編程語言均提供了全方位的支持。智能代碼提示功能宛如一位貼心的助手,在開發(fā)者輸入代碼時,適時地給出準(zhǔn)確的建議,有效減少了代碼拼寫錯誤;語法高亮顯示則像是為代碼繪制了一幅絢麗的色彩地圖,讓不同的語法元素一目了然,極大地提高了代碼編寫的準(zhǔn)確性和效率。其編譯器更是性能卓越,如同一位技藝精湛的工匠,能夠?qū)㈤_發(fā)者編寫的代碼精準(zhǔn)無誤地轉(zhuǎn)化為目標(biāo)硬件能夠識別并執(zhí)行的機(jī)器碼。在編譯過程中,它還會像一位嚴(yán)謹(jǐn)?shù)馁|(zhì)檢員,詳細(xì)地指出各種錯誤和警告信息,助力開發(fā)者迅速定位并解決問題。而調(diào)試功能,則是Keil的核心競爭力所在。它支持單步執(zhí)行,讓開發(fā)者能夠逐行審視代碼的運行邏輯;斷點設(shè)置功能,如同在程序的運行軌道上設(shè)置了精準(zhǔn)的觀測點,方便開發(fā)者在關(guān)鍵位置暫停程序,進(jìn)行深入分析;變量監(jiān)視功能,則像一位時刻關(guān)注程序狀態(tài)的觀察者,實時反饋變量的變化情況,幫助開發(fā)者精準(zhǔn)地找出程序中的邏輯錯誤和潛在隱患。從誕生之初的青澀版本開始,它便憑借簡潔易用的界面和高效實用的開發(fā)工具,贏得了開發(fā)者們的青睞。隨著時間的推移,Keil不斷推陳出新,歷經(jīng)多次更新迭代,功能日益強(qiáng)大,對新的硬件平臺和技術(shù)標(biāo)準(zhǔn)的支持也愈發(fā)完善。如今,它已然成為嵌入式開發(fā)領(lǐng)域的中流砥柱,為無數(shù)開發(fā)者提供了一個便捷、高效的開發(fā)環(huán)境,助力他們在嵌入式系統(tǒng)開發(fā)的道路上不斷探索創(chuàng)新。4.2編程語言介紹C語言是一門面向過程的、抽象化的通用程序設(shè)計語言。起初,C語言的誕生是為了給UNIX操作系統(tǒng)的開發(fā)提供有力支持,在那個系統(tǒng)編程尚不完善的時期,它的出現(xiàn)猶如一場及時雨,精準(zhǔn)地填補(bǔ)了行業(yè)空白。憑借簡潔高效的特性,C語言迅速在程序員群體中贏得青睞,以驚人的速度開枝散葉,成為軟件開發(fā)領(lǐng)域的關(guān)鍵力量。C語言的語法設(shè)計堪稱一絕,簡潔與高效完美融合,巧妙地在高級語言的便捷性和低級語言的操控性之間找到了絕佳的平衡點。它的數(shù)據(jù)類型豐富多樣,整型、浮點型、字符型等一應(yīng)俱全,無論面對何種復(fù)雜的數(shù)據(jù)處理需求,都能輕松應(yīng)對。C語言提供的運算符同樣豐富多元,從基礎(chǔ)的算術(shù)運算符,到復(fù)雜的邏輯運算符、位運算符,賦予開發(fā)者靈活多變的運算能力,讓程序設(shè)計更加得心應(yīng)手。在程序的控制結(jié)構(gòu)方面,C語言支持順序、選擇、循環(huán)三種基本結(jié)構(gòu),使得程序邏輯清晰、層次分明,易于編寫、閱讀與維護(hù)。不得不提的是指針,這是C語言最具特色的“秘密武器”,它允許開發(fā)者直接操作內(nèi)存地址,大大提升了程序的運行效率與靈活性。C語言的意義遠(yuǎn)不止于自身的應(yīng)用,它更是編程語言發(fā)展歷程中的一座重要里程碑。它的出現(xiàn),極大地推動了計算機(jī)技術(shù)的飛速發(fā)展,為后續(xù)編程語言的設(shè)計提供了寶貴的靈感與借鑒。如今的許多現(xiàn)代編程語言,如C++、Java等,都能看到C語言語法和設(shè)計理念的影子。C語言以其嚴(yán)謹(jǐn)?shù)木幊田L(fēng)格和對底層原理的深度挖掘,成為無數(shù)程序員的編程啟蒙語言,培養(yǎng)出一代又一代的編程精英。4.3軟件系統(tǒng)流程圖本設(shè)計選擇STM32系列微控制器作為主控芯片,設(shè)計合適的外圍電路,包括傳感器接口電路、無線通信模塊等。此多功能小車系統(tǒng)在接通電源以后,先將整個硬件系統(tǒng)進(jìn)行初始化,然后對各個硬件模塊進(jìn)行激活啟動,可選擇手機(jī)APP進(jìn)行手動控制,也能與小車進(jìn)行簡單的交流。在多功能小車系統(tǒng)察覺到已經(jīng)到達(dá)目的地時給用戶撥打電話。整個系統(tǒng)的主程序流程圖如下圖4.1所示。圖4.1主程序流程圖4.4循跡避障模塊的軟件實現(xiàn)循跡避障模塊的軟件設(shè)計涵蓋了多個核心環(huán)節(jié)。首先,初始化流程是不可或缺的,它涉及對紅外模塊和超聲波模塊的基礎(chǔ)設(shè)置。當(dāng)循跡避障模塊完成初始化并配置參數(shù)后,接下來的關(guān)鍵步驟是通過GPIO傳輸數(shù)據(jù)。一旦循跡模塊接收到這些數(shù)據(jù),它會根據(jù)之前設(shè)置的參數(shù),將這些數(shù)據(jù)進(jìn)行比較,選擇觸發(fā)的模式。然而,軟件設(shè)計并不僅僅止步于此。調(diào)試在整個過程中扮演著至關(guān)重要的角色。使用專業(yè)的調(diào)試工具,開發(fā)人員可以逐步跟蹤程序的執(zhí)行,確保每一步都按照預(yù)期進(jìn)行。此外,為了提高程序的運行效率和穩(wěn)定性,優(yōu)化也是必不可少的環(huán)節(jié)。循跡避障模塊的流程圖如圖4.2所示。圖4.2循跡避障模塊流程圖4.5語音模塊的軟件實現(xiàn)SU-03T模塊的軟件程序設(shè)計主要涉及數(shù)據(jù)采集以及數(shù)據(jù)處理等步驟。初始化SU-03T模塊的通信接口。該模塊中的SPK引腳與MIC引腳處于核心地位,它們賦予設(shè)備關(guān)鍵的音頻交互能力,使設(shè)備能夠與用戶進(jìn)行雙向音頻溝通。SPK引腳直接連接外部揚聲器,設(shè)備內(nèi)部生成的音頻信號會精準(zhǔn)傳輸至SPK引腳,這確保音頻信號高效、穩(wěn)定地驅(qū)動揚聲器發(fā)聲。MIC引腳能敏銳捕捉周圍環(huán)境中的聲音信號,并將其轉(zhuǎn)換為電信號,傳輸至SU-03T內(nèi)部進(jìn)行處理。MIC引腳采用高靈敏度設(shè)計,即便在復(fù)雜的環(huán)境噪聲條件下,也能較為準(zhǔn)確地采集聲音。SPK與MIC引腳相互協(xié)作,搭建起設(shè)備與用戶之間的雙向音頻交互橋梁,極大地拓展了SU-03T的應(yīng)用場景,讓設(shè)備能更好地融入人們的日常生活與工作,為用戶帶來便捷且豐富的音頻使用體驗。語音模塊的流程圖如圖4.3所示。圖4.3語音模塊流程圖4.6SIM900A模塊的軟件實現(xiàn)SIM900A傳感器是一款常用于撥打電話的傳感器。在軟件程序設(shè)計中,主要涉及傳感器的初始化、數(shù)據(jù)處理以及數(shù)據(jù)輸出等步驟。主要使用該模塊的GSM模塊使設(shè)備能給用戶進(jìn)行打電話。SIM900A模塊的流程圖如圖4.4所示。圖4.4SIM900A模塊流程圖4.7通信模塊的軟件實現(xiàn)STM32F103C8T6與Wi-Fi模塊的軟件程序設(shè)計首先需要初始化單片機(jī)的GPIO引腳模式,要設(shè)置為復(fù)用輸出。同時配置Wi-Fi模塊參數(shù),以便與手機(jī)進(jìn)行連接。設(shè)計STM32與Wi-Fi模塊之間的通信協(xié)議,包括數(shù)據(jù)格式、起始符、結(jié)束符、校驗等。實現(xiàn)USART的發(fā)送和接收功能,處理接收到的Wi-Fi數(shù)據(jù)。確保Wi-Fi模塊能夠接收來自單片機(jī)的數(shù)據(jù),并正確發(fā)送出去。系統(tǒng)初始化、通信協(xié)議設(shè)計、數(shù)據(jù)處理以及藍(lán)牙透傳模塊的配置是設(shè)計的重點。通過合理的程序設(shè)計和充分的測試,可以實現(xiàn)穩(wěn)定可靠的通信功能。如圖4.5所示。圖4.5通信模塊流程圖4.8小結(jié)在本章中,主要致力于多功能小車系統(tǒng)的軟件程序設(shè)計工作。具體來說,成功完成了多功能小車系統(tǒng)的主程序設(shè)計,并且對各個功能模塊進(jìn)行了詳盡的程序設(shè)計和相應(yīng)的程序代碼編寫。通過這一系列的努力,為多功能小車系統(tǒng)的正常運行奠定了堅實的基礎(chǔ)。第5章系統(tǒng)調(diào)試與測試本章節(jié)聚焦于畢業(yè)設(shè)計的系統(tǒng)測試環(huán)節(jié),旨在通過全面而細(xì)致的測試來檢驗系統(tǒng)的質(zhì)量,確保系統(tǒng)能夠穩(wěn)定、高效地運行,從而進(jìn)一步驗證了系統(tǒng)設(shè)計的可行性與實用性。5.1設(shè)計調(diào)試在進(jìn)行系統(tǒng)調(diào)試之前,必須先核查各個子系統(tǒng)之間的連接方式,包括電源與數(shù)據(jù)線的正確接入,同時驗證每個子系統(tǒng)的配置是否符合預(yù)定要求,確保它們都處于正常運作狀態(tài)。在驗證連接無誤后,可進(jìn)一步實施系統(tǒng)的功能檢測。根據(jù)系統(tǒng)類型,測試方法會有所區(qū)別。通過輸入多種指令,觀察控制器是否能精確響應(yīng)并有效控制對應(yīng)設(shè)備。除了功能層面的檢測,還需通過性能測試來評估系統(tǒng)的性能參數(shù),包括響應(yīng)時間、穩(wěn)定性及功耗等。這一環(huán)節(jié)通常需要配合專業(yè)的測試工具和軟件來進(jìn)行。此外,還需考慮異常狀況的測試。當(dāng)系統(tǒng)運行時遇到不合理數(shù)據(jù)或錯誤指令時,需針對這些特定情況設(shè)計測試方案,并在發(fā)現(xiàn)問題后進(jìn)行必要的優(yōu)化與修復(fù)工作。5.2系統(tǒng)電路測試在系統(tǒng)電路測試過程中,首先細(xì)致地將對應(yīng)的芯片和元件焊接至電路板上,并對芯片進(jìn)行編程操作,確保每一個組件都能按照預(yù)期工作。為了使電路正常運行,在Keil環(huán)境中精心編寫嵌入式程序,并通過觀察整個系統(tǒng)電路的運行狀態(tài),驗證程序的正確性。在確認(rèn)電路與程序均無誤后,將編寫好的程序?qū)懭胫骺匦酒校蛊渑c實際系統(tǒng)電路完美融合。最后,為實際電路提供穩(wěn)定可靠的電源,確保其能夠持續(xù)、穩(wěn)定地運行,從而完成整個系統(tǒng)電路的測試流程。這一系列的步驟旨在確保系統(tǒng)電路在投入使用前,能夠達(dá)到預(yù)期的性能和穩(wěn)定性要求。硬件設(shè)計效果圖如5.1圖所示。圖5.1硬件設(shè)計效果圖5.3系統(tǒng)功能測試5.3.1循跡避障測試系統(tǒng)上電后進(jìn)入初始化狀態(tài),手動點擊循跡,小車進(jìn)行循跡,在遇到障礙物時則進(jìn)行避障。紅外避障傳感器主要是輔助超聲波測距模塊,識別低處障礙物。對于該傳感器,只需要讀取其1/0口的電平信號,即可判斷是否遇到障礙物。通過調(diào)整單片機(jī)輸出的PWM波,控制小車轉(zhuǎn)向時的速度,確保其不會碰到障礙物REF_Ref28747\r\h[7]。循跡避障測試如圖5.2所示。圖5.2循跡避障測試5.3.2語音交互測試用戶可與系統(tǒng)進(jìn)行簡單的交流,用戶可詢問小車的名字,小車回答用戶,使系統(tǒng)更加靈活。語音交互測試如圖5.3所示。圖5.3語音交互測試5.3.3撥打電話測試當(dāng)小車到達(dá)目的地時,自動給用戶打電話告知。撥打電話測試如圖5.4所示。圖5.4撥打電話測試5.3.4通信測試通過手機(jī)APP連接小車,手動對小車進(jìn)行控制,控制小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)以及循跡。通信測試如圖5.5所示。圖5.5通信測試5.4總結(jié)在本章中,對整個設(shè)計完成以后進(jìn)行整體檢查,修改錯誤的地方,保證設(shè)計的質(zhì)量。使系統(tǒng)的表現(xiàn)與預(yù)設(shè)目標(biāo)一致,所有硬件設(shè)備均能穩(wěn)定工作,且數(shù)據(jù)能收上來和發(fā)出去,展示功能的均無異常。結(jié)論本設(shè)計詳細(xì)闡述了基于STM32的酒店多功能小車系統(tǒng)的設(shè)計與實現(xiàn)。該系統(tǒng)通過集成全面的功能,顯著提升了小車的智能化水平和管理效率。其中撥打電話模塊是本設(shè)計的一大亮點,系統(tǒng)能夠根據(jù)實際預(yù)留的電話對用戶進(jìn)行電話提示,這不僅確保了酒店的安靜,還體現(xiàn)了的設(shè)計理念。同時,小車配備了智能交互模塊,可通過語音識別和播報與用戶進(jìn)行簡單的交互,實現(xiàn)對小車控制,提升了用戶的服務(wù)體驗。此外,系統(tǒng)還配備了循跡和避障功能,為小車持久耐用提供了有力保障。本設(shè)計的基于STM32的酒店多功能小車系統(tǒng),通過高度集成和智能化管理,不僅提升了用戶的體驗,還為酒店提供了便捷、高效、安全的管理方案,展現(xiàn)了現(xiàn)代科技與酒店行業(yè)結(jié)合的巨大潛力。隨著科技的不斷發(fā)展,酒店多功能小車系統(tǒng)的未來充滿了無限可能。目前系統(tǒng)主要集中在路徑的選擇和用戶體驗上。未來,我們可以引入更高級的數(shù)據(jù)分析工具,對收集到的大量數(shù)據(jù)進(jìn)行深度挖掘,以提供更精準(zhǔn)的服務(wù)。物聯(lián)網(wǎng)技術(shù)將在未來酒店多功能小車系統(tǒng)中發(fā)揮更大作用。更多的設(shè)備將被納入系統(tǒng),形成一個更加智能、互聯(lián)的多功能小車。例如,人工智能技術(shù)的引入將使小車系統(tǒng)更加智能化。通過AI算法,系統(tǒng)可以自動提供酒店住房。隨著VR/AR技術(shù)的不斷發(fā)展,未來小車系統(tǒng)可以與之結(jié)合,為用戶提供更加沉浸式的體驗。隨著用戶體驗設(shè)計的不斷進(jìn)步,未來的小車系統(tǒng)將擁有更加直觀、人性化的交互界面,使得用戶和管理者都能更加方便地使用系統(tǒng)。未來的多功能小車系統(tǒng)將更加智能化、個性化和人性化,為用戶提供更加優(yōu)質(zhì)的酒店服務(wù),同時也為酒店的運營提供更加高效、科學(xué)的管理工具。參考文獻(xiàn)姜嬋.基于51單片機(jī)的WiFi智能小車設(shè)計[J].電子制作,2022,30(20):73-75+79.張妍.語音控制的智能小車設(shè)計研究[J].科技資訊,2025,23(01):33-35.張宵,黃海寧,羅偉泰.語音識別智能小車系統(tǒng)的設(shè)計與實現(xiàn)[J].廣西職業(yè)技術(shù)學(xué)院學(xué)報,2024,17(06):47-54.胡純.基于單片機(jī)的智能小車設(shè)計[J].現(xiàn)代信息科技,2024,8(14):161-167.李金彥.自尋跡智能小車控制系統(tǒng)的設(shè)計與實現(xiàn)[J].集成電路應(yīng)用,2022,39(12):10-13.陳志遠(yuǎn).基于深度學(xué)習(xí)的智能網(wǎng)聯(lián)小車巡航避障研究[D].重慶理工大學(xué),2023.周濤.基于STM32單片機(jī)的多功能避障小車[J].現(xiàn)代制造技術(shù)與裝備,2025,61(01):48-51+55.劉永超,蔡宇蝶,朱子溪.基于STM32室內(nèi)導(dǎo)航跟隨購物小車系統(tǒng)設(shè)計[J].家電維修,2024,(10):59-61.聶雄.基于SIM900A的智能家居報警系統(tǒng)設(shè)計[J].儀表技術(shù),2022,(01):8-12.高玉飛.基于STM32的掃地機(jī)器人設(shè)計與實現(xiàn)[D].鹽城工學(xué)院,2024.唐志軍,何欣榮.基于STM32單片機(jī)的智能小車設(shè)計[J].電子制作,2024,32(01):36-41.N.W,B.H,A.TD,etal.TheCloseAGNReferenceSurvey(CARS):Tracingthecircumnuclearstarformationinthesuper-EddingtonNLS1Mrk1044[J].Astronomy&Astrophysics,2022,663YuL,DingL,TianY4.TrackingControlforIntelligentTracingCarbasedonNovelPathTrackingStrategy[J].IAENGInternationalJournalofAppliedMathematics,2023,53(2).ShulinF,ZhanxinL,LiL,etal.PursuerNavigationBasedonProportionalNavigationandOptimalInformationFusion[J].Complexity,2021.附錄A系統(tǒng)整體原理圖附錄B實物硬件圖附錄CAPP頁面圖附錄D系統(tǒng)運行實況圖附錄E系統(tǒng)部分源代碼#include"stm32f10x.h"#include"stdio.h"#include"math.h"#include"Timer.h"#include"delay.h"#include"HC-SR04.h"#include"servo.h"#include"Motor.h"#include"HW.h"#include"IO.h"#include"sim900a.h"#include"usart.h"#include"usart2.h"#include"stdio.h"#include"string.h"#definedist_th15 uint8_tcar_mode; uint8_trec_cmd; uint8_thc_flag;uint32_tTimer_Count;charphonenumber[]={};//接受短信的號碼voidwifi_send_cmd(char*cmd,uint8_t*rev,uint16_txms){ while(1) { Usart2_SendString(cmd); Delay_ms(xms); if(*rev==0xFF) { *rev=0; break; } }}voidWifi_Init(void){ wifi_send_cmd("AT\r\n",&rec_cmd,500); wifi_send_cmd("AT+CWMODE=2\r\n",&rec_cmd,500); wifi_send_cmd("AT+CWSAP=\"wifi\",\"12345678\",11,0\r\n",&rec_cmd,500); wifi_send_cmd("AT+CIPMUX=1\r\n",&rec_cmd,500); wifi_send_cmd("AT+CIPSERVER=1,5000\r\n",&rec_cmd,500); wifi_send_cmd("AT+CIPSTO=0\r\n",&rec_cmd,500);}//超聲波避障voidHc_bz(void){ staticuint16_tdist; staticuint8_tdir_flag=0; if(hc_flag) { dist=sonar1_cm(); hc_flag=0; } if(dist==0) dist=dist_th+1; if(!dir_flag) { if(dist<dist_th) { Car_stop(); dir_flag=1; } } if(dir_flag) { Servo_SetAngle(0); Delay_ms(1500); dist=sonar1_cm(); if(dist>dist_th) { Servo_SetAngle(90); Car_right(1100,4); Car_run(600,3); Car_left(1000,4); Car_run(1000,4); while(1) //直到尋到線為止 { Car_run(50,2); Car_left(40,1); if(!HW1||!HW2) { Car_stop(); Delay_ms(500); Car_run(200,3); Car_right(1000,4); break; } elseif(!HW4||!HW5) { Car_stop(); Delay_ms(500); Car_run(200,3); Car_left(1000,4); break; } } dir_flag=0; } else { Car_stop(); } } }//紅外循跡voidHw_com(void){ staticuint8_tcall_flag,call_flag1,stop_flag=0; uint8_thw_flag[5]; hw_flag[0]=HW1; hw_flag[1]=HW2; hw_flag[2]=HW3; hw_flag[3]=HW4; hw_flag[4]=HW5; if(hw_flag[0]==1&&hw_flag[1]==1&&hw_flag[2]==0&&hw_flag[3]==1&&hw_flag[4]==1)//直行 Car_run(0,4),call_flag=1,stop_flag=0; //緩彎(校準(zhǔn)直線) elseif(hw_flag[0]==1&&hw_flag[1]==0&&hw_flag[2]==0&&hw_flag[3]==1&&hw_flag[4]==1) Car_left(10,3); elseif(hw_flag[0]==1&&hw_flag[1]==1&&hw_flag[2]==0&&hw_flag[3]==0&&hw_flag[4]==1) Car_right(10,3); elseif(hw_flag[0]==0&&hw_flag[1]==1&&hw_flag[2]==1&&hw_flag[3]==1&&hw_flag[4]==1) Car_left(100,3); elseif(hw_flag[0]==1&&hw_flag[1]==1&&hw_flag[2]==1&&hw_flag[3]==1&&hw_flag[4]==0) Car_right(100,3); elseif(hw_flag[0]==1&&hw_flag[1]==0&&hw_flag[2]==1&&hw_flag[3]==1&&hw_flag[4]==1) Car_left(10,3); elseif(hw_flag[0]==1&&hw_flag[1]==1&&hw_flag[2]==1&&hw_flag[3]==0&&hw_flag[4]==1) Car_right(10,3); elseif(hw_flag[0]==0&&hw_flag[1]==0&&hw_flag[2]==1&&hw_flag[3]==1&&hw_flag[4]==1) Car_left(50,2); elseif(hw_flag[0]==1&&hw_flag[1]==1&&hw_flag[2]==1&&hw_flag[3]==0&&hw_flag[4]==0) Car_right(50,2); //急彎 elseif(hw_flag[0]==0&&hw_flag[1]==0&&hw_flag[2]==0&&hw_flag[3]==1&&hw_flag[4]==1) Car_left(350,1); elseif(hw_flag[0]==1&&hw_flag[1]==1&&hw_flag[2]==0&&hw_flag[3]==0&&hw_flag[4]==0) Car_right(350,1); elseif(hw_flag[0]==0&&hw_flag[1]==0&&hw_flag[2]==0&&hw_flag[3]==0&&hw_flag[4]==1) Car_left(350,1); elseif(hw_flag[0]==1&&hw_flag[1]==0&&hw_flag[2]==0&&hw_flag[3]==0&&hw_flag[4]==0) Car_right(350,1); elseCar_stop(),call_flag1=1; if(!stop_flag) //送達(dá)成功 { if(hw_flag[0]==1&&hw_flag[1]==1&&hw_flag[2]==1&&hw_flag[3]==1&&hw_flag[4]==1) //撥打電話 { if(call_flag&&call_flag1) { Car_stop(); sim900a_call(phonenumber); Car_stop(); IO26=1; Delay_ms(10); IO26=0; call_flag=0; call_flag1=0; stop_flag=1; } } }}//wifi控制小車voidWifi_mode(void){ if(rec_cmd==1) //小車前進(jìn) Car_run(0,0); elseif(rec_cmd==2) //小車后退 Car_back(0,0); elseif(rec_cmd==3) //小車左轉(zhuǎn) Car_left(0,0); elseif(rec_cmd==4) //小車右轉(zhuǎn) Car_right(0,0); if(rec_cmd==11||rec_cmd==22||rec_cmd==33||rec_cmd==44) //小車停止 Car_stop();}//上電初始化voidPower_On_Init(){ Servo_Init(); Servo_SetAngle(90); //設(shè)置舵機(jī)初始角度 HW_Init(); //紅外引腳初始化 IO_Init(); Motor_Init(); usart1_Init(9600); //串口1初始化為9600,用于SIM通信 Usart2_Init(115200); HC_SR04_Init(); //超聲波初始化 Delay_ms(5000); TIM4_Config(); //定時器初始化 while(1) { if(Find_char((char*)Usart1_buff,"OK")) { Delay_ms(1500); usart1_SendString("AT\r\n"); } elsebreak; } Wifi_Init(); LEDinit=0; IO25=1; Delay_ms(20); IO25=0;}intmain(void){ Power_On_Init(); //上電初始化 while(1) { if(car_mode) Hw_com(); //循跡模式 elseWifi_mode(); //手動模式 }

溫馨提示

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

評論

0/150

提交評論