摘 要:本文對機器人滅火項目實施過程中的注意事項和要點進行分析。
關鍵詞:滅火機器人;實施策略;要求
中圖分類號:G427 文獻標識碼:A 文章編號:1992-7711(2012)24-084-1
機器人滅火項目的基本任務是制作一個由計算機程序控制的機器人,在一間模擬平面結構的房間里運動,找到一根燃燒的蠟燭并盡快將它撲滅。機器人小車在滅火場地搜尋房間,找到火焰,滅火。根據不同年級組,滅火后還選擇完成搜救、回家任務。詳細情況參見《全國中小學電腦制作活動競賽項目“機器人滅火比賽”規則》。房間的搜索是所有任務的前提,因此讓小車在搜索房間的過程中走得穩定、快速是大家追求的目標,實際這兩者是一對矛盾,大家一直在找這對矛盾的平衡點。為此現在的滅火機器人配載了多種傳感器,如電子指南針、紅外測距、紅外測障、地面灰度檢測,尤其是紅外測距傳感器,有的隊伍將小車前后裝了一圈,在程序中使用n層if語句嵌套。這無疑給調試增加了困難,也給機器人執行增加了時間開銷,因為這過程中要讀很多傳感器,紅外測距多數是模擬量輸出的還需A/D轉換,這樣可能導致本應立即調整的但因讀較多傳感器,錯過最佳調整時機,顯得反應遲鈍。
其實,我們仔細分析滅火場地,所有尺寸都是固定的,全國各地也都使用這個尺寸標準,因此如果我們有某種方法讓小車在場地上行走時盡量走直線,并且能夠控制準確的行走距離,那么小車的迷宮行走算法將變得簡單得多。比如小車在4輪驅動,頂部裝指南針,左前方和右前方各安裝1個紅外測距的裝置下,搜索4號房間的過程可以按下面步驟進行:從基地出發沿右墻壁走100厘米,然后左轉90度,再沿右墻壁前進45厘米到達4號房間門口,再左轉90度,不沿墻壁前進40厘米,檢測火焰……過程顯得很簡單,主要由沿墻壁行走和90度轉彎兩個過程實現,當然這個過程也要考慮小車的慣性(影響因素:小車自重、地面材料、輪胎的表面等)。實踐證明,這種方法避免了很多不可靠因素,如常規的左右手法則行駛策略中小車停止時的位置、姿態不確定;進房間時依靠灰度檢查地面白線會產生漏檢或錯檢。而用單純的距離判斷則不存在這些問題,設計好的4輪驅動小車行走時幾乎是直線,一段行走結束后的姿態比較穩定,依靠電子指南針實現近似90度轉彎也不是很困難,如果采用后退、撞墻的方法還可以更準確地控制行走距離并調正小車前進的姿態。
問題的關鍵是如何實現小車行走準確的距離。在此,筆者采用霍爾傳感器自制了從動輪驅動式測距傳感器,誤差在2厘米左右,采用霍爾傳感器是因為它的制作要求低,用光柵結構電路復雜,制作精度要求高;采用從動輪驅動可以避免輪胎打滑、空轉造成的誤差。下面簡單介紹該傳感器的原理與制作。
霍爾傳感器是根據霍爾效應制作的,現在市場上都有封裝好的成品,價格也不貴。當有磁場穿過傳感器的感應面時,輸出一低電平,否則輸出高電平,是一種開關量輸出,便于和控制器接口,主要用于監測運動物體運行參數的變化。例如位置、位移、角度、角速度、轉速等等,霍爾傳感器已得到廣泛應用。
在制作轉速測量的裝置時,應采用開關型霍爾元件,它有三個引腳(電源,地,輸出),典型工作電壓5v,這個電平符合TTL電氣標準可以直接與單片機等微處理器連接。在霍爾元件的輸出端與VCC之間接一上拉電阻(約10K),然后直接連接到單片機的輸入引腳(如:INT外部中斷引腳)。在單片機程序中對該引腳發出的脈沖計數,根據計數值及時間即可計算出物體運動速度、距離等參數,這就是霍爾器件實現測距的原理。當然,實際應用時應將強磁片安裝在運動物體上并靠近霍爾元件的感應面,物體的運動導致霍爾傳感器輸出脈沖。
要想對傳感器輸出的脈沖準確計數,應采用單片機的外部中斷方式接收,因為查詢方式是每隔一定時間輪詢一次判斷有無脈沖,如果脈沖正好發生在CPU執行其它指令時,將可能發生漏檢,這和輪詢時間間隔及脈沖低電平的保持時間有關。中斷方式可以有效避免漏檢。問題是大部分的控制器在設計時都沒有考慮為用戶保留外部中斷功能,因此實現起來還需對控制器作些改進,比如中鳴公司的RCU控制器核心單片機是8位AVR單片機,型號ATmega3216AU,其11,12引腳即外部中斷信號輸入點,用導線將其引出,與霍爾傳感器的輸出端連接,在“機器人快車”的編程環境中加入該型號單片機的GCC語言的中斷初始化代碼和中斷處理函數,中斷函數內執行計數變量加1操作,這樣可實現對脈沖的精確計數。在機器人小車運行前將待行走的距離轉化為需要的脈沖數,并對計數變量count清零,運行循環中檢測count的值,如果達到則停止馬達。中鳴公司最新的控制器X1RCU采用了ARM系列的單片機,芯片是意法公司的STM32F103VET6,它的中斷編程稍微復雜些。筆者也已經實現了這代控制器的外部中斷編程。
關于以上控制器中斷編程的實現細節可以參考它們的單片機編程資料,這里限于篇幅不做詳細介紹,在作者的另篇《霍爾傳感器測距功能的實現及應用》中有詳細描述。測距傳感器的制作應充分發揮DIY精神,因地制宜地進行。