姚蘊珍
【摘要】 本文以滅火機器人為研究對象,對該機器人的設計原理、主要思路以及實現方案做了詳盡說明。滅火機器人要求能夠在一間平面結構房子模型里運動,找到一根蠟燭并盡快將其熄滅。機器人主要由STM32F103微控制器、聲音接收模塊、火焰傳感器模塊、避障傳感器模塊、滅火模塊、電機及電機驅動板組成,利用傳感器組采集環境信號控制機器人的行動。機械結構為一個三輪小車,其中有兩個較大的主動輪和一個較小的從動輪。兩個主動輪所用的步進電機由TB6560電機驅動板控制帶動。滅火算法由火焰傳感器和避障傳感器所感應到的信號判斷運動方向和火焰位置,尋找到火源后利用風扇滅火。實驗表明,該機器人行動靈活快速,具有很高的準確性和穩定性。
【關鍵詞】 智能車 滅火 嵌入式
一、背景介紹
現在社會各種危險場所火災頻繁發生,火災及時補救已成為亟待解決的問題。由于消防員在時間和人身安全方面存在的一些局限性,滅火機器人的理念應運而生。本文針對基于STM32的滅火機器人系統進行設計,以STM32F103嵌入式芯片為核心,完成滅火機器人的軟、硬件設計。
二、總體思路
總體上,在機器人的設計中遵循穩中求快的基本原則。滅火機器人采用聲音啟動方式,車頂部裝有一個聲音接收模塊,將接收到的固定頻率的聲音信號輸送給主控芯片,控制小車啟動。小車采用后輪驅動,車前方中間有一個萬向輪從動。左右后輪各用一個直流步進電機驅動,通過控制兩個輪子的轉速達到前進和轉向的目的。車體前側半周裝有紅外避障傳感器可以避免碰撞墻壁。車體前部兩側裝有兩組火焰傳感器,通過火焰傳感器檢測火焰信號輸送給主控芯片來控制小車的前進方向,自動尋找火源;當接近火源時,小車前側底部的灰度傳感器將信號傳送給主控芯片以啟動滅火程序。小車采用風扇滅火,滅火完成后執行回家程序。小車運動的控制是通過初始化PWM輸出,更改自動重裝值來控制PWM周期,從而設定步進電機的旋轉速度。
三、硬件系統設計
整個系統以STM32F103為核心,設計了聲音接收模塊、避障傳感器模塊、火焰傳感器模塊、灰度傳感器模塊、電機驅動模塊,同時輔助于一定的機械結構設計,使整個有機地結合在一起。
1、芯片。設計采用的主控芯片為 STM32。其特點:具有128K字節的可編程 Flash、 20K字節的片內SRAM 數據存儲器、1024 個字節的片內在線可編程 E2PROM 數據存儲器(含 JTAG 接口)、2 個分別獨立可設置預分頻器的 8 位定時器/計數器、一個 16 位定時器/計數器、4 個通道的 PWM輸出、2 路 24 位 ADC、64 個可編程的 I/O 口(低功耗、最高工作頻率為 16MHz)。
2、電源模塊。驅動電路板中的電源模塊為系統其它各個模塊提供所需要的電源。設計中,除了需要考慮電壓范圍和電流容量等基本參數之外,還要在電源轉換效率、降低噪聲、防止干擾和電路簡單等方面進行優化。本次采用外接線的方式,通過開關電源為系統提供12V 電壓,避免了在調試過程中鋰電池電壓不足的情況。其中,直流減速電機采用12V 電壓供電,對于單片機系統及傳感器所需要的 5V 電壓,采用集成 LM2596DC-DC 穩壓芯片將 12V 電壓降至 5V 以滿足其供電要求。電源管理如圖所示:
3、傳感器模塊。機器人能否順利檢查每個房間火源情況,準確找到火源并熄滅,關鍵取決于傳感器。因此該系統設計選用紅外避障傳感器,遠紅外火焰傳感器和地面灰度傳感器,來實現傳感器模塊設計。采用 E18-D80NK 紅外避障傳感器,它是一種集發射與接收于一體的光電傳感器。發射光經過調制后發出,接收頭對反射光進行解調輸出,有效避免了可見光的干擾。通過調節尾部的電位器旋鈕,該傳感器可以檢測前方 3~80cm 的障礙物。該傳感器具有探測距離遠、受可見光干擾小、價格便宜、易于裝配、使用方便等特點。廣泛應用于機器人避障、流水線計件等眾多場合。此外,本設計還用到了灰度傳感器和火焰傳感器。
四、軟件系統設計
系統軟件采用C語言編程,主要包括主程序、電機模塊、時鐘模塊、聲音模塊、避障模塊、灰度模塊、尋房模塊、檢火模塊、滅火模塊和回家模塊等部分。主要用到的算法有右手法則沿墻走算法和趨光走算法。首先,機器人通過避障傳感器模塊獲取環境情況,利用右手法則找到第一個房間。通過PWM輸出的電脈沖信號控制步進電機的角位移來控制小車的速度。而后,小車通過灰度傳感器檢測到房間入口,而后利用火焰傳感器模塊對房間進行火焰檢測。如果未檢測到火焰,則掉頭繼續尋找下一個房間;如果檢測到火焰,則進入房間探測火焰位置,靠近火焰,灰度傳感器檢測到白線時,啟動滅火模塊進行滅火,滅火時小車左右搖擺確保火焰能撲滅。滅火后利用火焰傳感器進行火焰檢查,確認火焰完全熄滅后退房,最后,小車按照火焰所在的特定房間的回家路線回家。
五、問題與總結
在設計過程中可以發現,步進電機的速度與直流電機相比更難提高速度,需要單獨設計程序來控制,否則很難達到與直流電機相比理想的行進速度。為此提出如下解決方案:(1)提高PWM的輸出頻率來提高步進電機的速度。(2)重新在電機驅動模塊加入轉彎、旋轉較小角度的程序,來提高小車行進的準確性,如旋轉45度、30度等。
參 考 文 獻
[1] 紹貝貝. 單片機嵌入式應用的在線開發方法[M]. 北京:清華大學出版社.2004.10
[2] ST.STM32F103_x6x8xB數據手冊,2009.
[3] 杜剛,電路設計與制板:Protel應用教程[M].北京:清華大學出版社,2006.
[4] 許中大. 電機控制[M]. 杭州:浙江大學出版社,2002
[5] 李朝青. 單片機原理及接口技術[M].北京:北京航空航天大學出版社,1994.3