蔡靜怡 王才嶧
摘 要:智能作為現代的新發明,是現如今重點的發展方向,為了符合發展趨勢,文章設計的智能小車采用STM32芯片作為檢測和控制的核心,分析了基于STM32F103ZET6微處理器的智能小車控制系統的系統設計過程。用紅外線傳感器感應障礙物,調用中斷子程序實現智能小車的智能避障。小車可應用于科學勘探或災害現場的救援用途。
關鍵詞:STM32;紅外線;智能小車;自動避障
在進入21世紀以來,隨著生產自動化的發展需要,機器人的智能化與集成度越來越高,已經越來越廣泛地應用到生活生產中。對于機器人的定義從來都沒有一個統一的標準,在大多數專家學者看來,所謂機器人就是通過軟件編程控制硬件,使其能夠實現它應該完成的任務。但是在我國的學者眼中,機器人就是一種自動化機器,它能夠具有高度的靈活性,并且具備一些和智能生物相似的智能能力的自動化機器。伴隨著科技水平的提高,智能小車能夠使用的傳感器種類也越來越多,其中紅外線傳感器已經成為智能小車智能避障的重要部件。此系統是基于紅外傳感器的系統及運用紅外傳感器,實現對前方障礙物的檢測。紅外傳感器的典型應用領域為自主式智能避障系統。小車要實現自動避障功能,就必須能感知到障礙物,這相當于給小車一個視覺功能。自動避障小車可以作為困難環境檢測機器人和搶險機器人的運動系統,讓機器人在行進中自動避過障礙物,幫助人們完成相應的任務。
在現實生活中,例如在一些火災或者一些自然災害的現場,經常需要人進入一些危險或不能直接到達的地方進行觀察,采集數據,這時就需要智能小車來完成。智能小車主要由人手動操縱,但在一些特殊的環境中,比如火災現場,能見度非常的低,當前方出現障礙物時,人的肉眼可能無法觀察到,但紅外線傳感器依舊能檢測到障礙物,所以自動避障是一項必不可少,也是最基本的功能[1]。
1 系統功能設計
1.1 設計目的
在一些火災救援現場,環境極度的惡劣,地形復雜,氧氣稀薄。這時貿然地讓消防員進入火災現場,風險很大,此時智能小車就起到了很大的作用。讓智能小車先進入火災現場進行勘測,掌握一些現場的內部情況,反饋給外面的消防員們,就可以給消防員們提供很多的便利,節約了尋找火源的時間,能讓他們更加快速地了解現場的火情,間接減少了消防員們的傷亡。但是單純依靠手動操控智能小車,對操控者的技術要求很高,一旦環境發生變化,可能無法及時修正控制路線,所以需要在原先手動遙控的基礎上增加一點輔助自動避障能力,增加可操作性。
1.2 避障的概念
物體的運動方向隨著外界障礙的出現作出改變的過程稱為避障。在人類身體構造系統中,眼睛可以使我們非常方便地采集到外界環境的信息,然后把信息及時傳輸到大腦,并對外界環境信息的變化作出相應的處理,而對智能小車來說,避障模塊之于小車就相當于眼睛之于人類,避障模塊可以采集外部地形數據,然后把所采集的地形數據傳輸到中央處理模塊,當檢測到障礙物時,中央處理模塊調用中斷子程序,實現智能小車的避障。另外值得一提的是,避障功能是在原先手動控制的基礎上增加自動避障功能。這種實現方式不影響主程序的編寫,是在原先主程序不變的情況下,插入中斷子程序,從而比較便捷地實現小車的自動避障[2]。
2 硬件設計
2.1 STM32簡介
STM32處理器的出現為微控制系統、工業控制系統、汽車車身系統和無線網絡以及對功耗和成本敏感的嵌入式應用領域實現高系統性能提供了基礎。使編程的復雜性及其高性能、低功耗、低成本大大簡化,并使它們融為一體。目前為止,STM32系列處理器暫時分為兩個系列,其中STM32F101系列是標準型系列,工作頻率設定在36 MHz。STM32F103系列是增強型系列,工作頻率設定在72 MHz,其帶有更多片內RAM和更豐富的外設資源。這兩個系列的產品在軟件和引腳封裝方面具有兼容性,并且擁有相同的片內flash資源,使軟件開發和升級更加方便。本次試驗我們使用的是STM32F103處理器。
2.2 車的構造
由4路直流電機驅動模塊、兩個紅外接收傳感器、兩節5 V穩壓直流電池(可充電)、STM32F103ZET6芯片和智能小車底座構成。
2.3 避障模塊的設計
小車的避障模塊分為兩個部分,主程序為手動的遙控小車的前進后退和轉向。當智能小車傳感器檢測到前方出現障礙,但操縱者并未察覺到障礙物時,傳感器將信號傳輸給STM32芯片,調用中斷子程序,避開前方的障礙物,避開障礙物后繼續執行操控者的指令,實現小車的智能避障。
2.4 介紹STM32的中斷原理
STM32單片機的硬件將外設的中斷源分為2個級別,這2個級別就是STM32F103系列單片機的搶占優先級和響應優先級。如果兩個中斷源的搶占優先級和響應優先級都是一樣的話,則看哪個中斷先發生就先執行。高優先級的搶占優先級是可以打斷正在進行的低搶占優先級中斷的。而搶占優先級相同的中斷,高的響應優先級不可以打斷正在執行的低響應優先級的中斷。
STM32的每個I/O都可以作為外部中斷的中斷輸入口,這點也是STM32的強大之處。STM32F103的中斷控制器支持19個外部中斷/事件請求。每個中斷設有狀態位,每個中斷/事件都有獨立的觸發和屏蔽設置。
一般情況下,系統代碼執行過程中,只設置一次中斷優先級分組,比如分組2,設置好分組之后一般不會再改變分組。隨意改變分組會導致中斷管理混亂,程序出現意想不到的執行結果[3]。
3 軟件設計
避障信號流圖如圖1所示。
當前方未出現障礙物時,智能小車正常運行;當出現障礙物時,傳感器接收到信號,通過傳感器電路將信號發送給STM32主控制器,系統調用中斷子程序,最終電機驅動電路調整智能小車的運行路徑。具體流程如下:當左右傳感器任意一邊檢測到障礙物時,智能小車先后退500 ms,再右轉600 ms,然后繼續直行;當左右傳感器都檢測到障礙物時,智能小車先后退300 ms,再右轉400 ms,然后繼續直行。主程序及中斷程序如圖2—3所示。
4 結語
本課題適應時代的發展需求,對智能避障小車系統進行了學習和研究,提出了設計的思路與中斷避障子程序的流程,介紹了智能小車各個模塊的硬件電路設計方案和對硬件電路的設計分析。這款智能小車的優點體現在以下幾個方面:(1)只需要較少的硬件成本。比如只需要兩個紅外傳感器便可實現基本的避障功能。(2)采用了STM32單片機。STM32單片機具有許多優點如使用了用途非常廣泛的ARM內核、集成了非常豐富的接口,通信模塊以及其他功能模塊、可選擇的型號非常多,基本上都不需要外部的硬件擴展、對各種流行的嵌入式操作系統支持比較好,各大嵌入式操作系統網站基本上都會提供支持它的相應的代碼。(3)可以方便地對已有的設備進行改造。只需要加入編寫好的中斷程序,就可實現自主避障,且不影響原有的主程序。(4)紅外傳感器和STM32的成本相對不高,且插入的中斷程序的內容也并不復雜,但它們對實現小車的避障功能起到了質的提高。
在軟件設計方案中,我們只分析軟件流程設計,以確定對應的程序編碼。最后我們對軟件、硬件進行測試,對于軟件進行測試,我們使用Keil軟件程序仿真,而對于硬件測試我們進行了人為設障[4]。
在本方案中,系統的缺陷在于面對不同工作設備及工作環境下避障策略存在局限性。比如:(1)小車傳感器數量太少且傳感器的種類比較單一,作為改進,可以在設備上多方位安裝不同性能的傳感器,例如超聲波傳感器、軌跡傳感器等,甚至可以采用CCD攝像機、激光雷達等,以此來提高小車的自動化程度和自動化效率。(2)從移動機構的設計來講,驅動電機是選擇步進電機還是直流電機,控制方法是選擇開環控制還是閉環控制,還需要進行深入的分析,步進電機和直流電機各有優缺點,開環控制和閉環控制各有利弊,關于他們的選擇,應該綜合考慮工作效率、能源利用率、設計難易及控制復雜程度等多項因素,最終找到最優的方案。(3)從多功能的角度出發,任何時候多功能服務機器人都比單一功能的服務機器人更受青睞。避障小車是一個可移動的智能平臺,在避障功能之外,可以進行功能擴展,比如進行圖像的采集和傳輸、WiFi通訊、循跡等。(4)從自主避障策略和路徑規劃來說,小車應具備自主選擇最優路徑的能力。總的來說,設計方案是比較完善的,基本上達到了設計所要求的目標。
[參考文獻]
[1]劉佳.芻議智能機器人及其關鍵技術[J].企業導報,2012(1):264-265.
[2]鐘科,陳向東.智能家居服務網關的設計[J]通信技術,2012(8):65-67.
[3]周柱,孟文,田環宇.基于stm32智能小車設計[J].技術與市場,2011(6):1-2.
[4]熊有倫,錢思.清潔機器人系統設計與智能避障問題的研究[J].機械與電子,2007(1):61-65.