雷道仲
(湖南信息職業技術學院,湖南 長沙 410200)
擂臺對抗機器人是一種常見的競賽機器人。這類機器人在競賽過程中,通常是甲、乙兩方機器人在一個規定的區域內,在限定的時間內誰先將對方機器人推出比賽規定的區域,誰就獲得該場次比賽的“冠軍”。本文所介紹的這款機器人就是中國教育機器人大賽的擂臺對抗機器人項目中的一款機器人。在這個擂臺對抗競賽項目中,雙方都要設計紅外傳感器、紅外遙控、超聲波三個機器人。本文主要介紹這個擂臺對抗競賽項目中的紅外傳感器機器人的設計過程。
根據擂臺對抗機器人競賽規則分析,紅外傳感器擂臺對抗機器人設計最關鍵的是能夠及時捕捉到對方機器人的位置,并能夠準確地識別比賽區域。因此,選取能夠快速感應對方機器人位置的傳感器,能夠識別黑、白區域的傳感器以及整個系統的控制芯片十分重要。能夠感知對方位置的傳感器有很多種,比如超聲波傳感器、紅外傳感器等;識別黑、白區域的傳感器有灰度傳感器、顏色傳感器等;作為整個系統的控制芯片的有51單片機、ARM處理芯片等[1]。
方案一:以ARM720T為本系統的控制核心,選取紅外光電傳感器作為位置捕捉傳感器,使用顏色傳感器來識別擂臺對抗機器人比賽的黑色區域。ARM處理芯片負責根據紅外光電傳感器收集的對方機器人的位置信號以及顏色傳感器判別的本機機器人的位置信號輸出相應的控制信號,控制機器人前進、后退或者左轉彎、右轉彎等。該方案系統控制框圖如圖1所示。該方案結構簡單、控制方便,軟件設計容易實現,但顏色傳感器在識別黑、白競賽區域的過程中,耗時相對較長,不利于本機機器人及時調整位置。

圖1 方案一系統框圖
方案二:系統采用“單片機+紅外傳感器+執行機構”的總體設計方案,系統總體框圖如圖2所示。其中,紅外發射傳感器在機器人行走的過程中對外發射出紅外信號,當紅外信號遇到對方機器人后,會被反射回來,紅外接收傳感器接收到反射回的紅外信號后,再由MCU根據紅外傳感器接收到的紅外發射信號來判斷對方機器人的位置,并調用相應的決策攻擊函數去攻擊對方的機器人,最終將對方機器人推出比賽的擂臺范圍,從而獲得本局比賽的勝利。QTI傳感器負責紅外傳感器擂臺對抗機器人的導航功能。

圖2 紅外傳感器擂臺對抗機器人系統框圖
紅外傳感器擂臺對抗機器人的電路原理圖如圖3所示。紅外傳感器由圖中的紅外發射開關、紅外發射二極管以及紅外接收器組成。紅外發射開關負責控制紅外發射二極管對外發射的紅外線的頻率,當發射出的紅外線碰到對方機器人后會被反射回來,被自己的紅外接收器接收,紅外傳感器擂臺對抗機器人收到反射回來的紅外信號后,會向對方機器人發出相應攻擊,直至將對方機器人推出擂臺范圍,則比賽獲勝。如果自己被推出擂臺,則比賽失敗。圖中的左右QTI傳感器用于支持擂臺對抗機器人的巡線功能,該QTI裝在機器人控制電路板底部,負責識別黑色比賽區域。左、右輪驅動電機為機器人的運動系統,在單片機發出的電機控制信號作用下完成擂臺對抗機器人的前進、后退、左轉彎、右轉彎等動作。

圖3 紅外傳感器擂臺對抗機器人原理圖
本設計中的紅外傳感器由紅外線收、發對管以及紅外發射控制開關構成。紅外線發射器則是將紅外線發射管封裝在了LED發光二極管中。通常是根據應用場合的不同來封裝不同波長的紅外線發射管,比如用于紅外遙控器、紅外光電開關、紅外線發射設備的波長則要封裝940 nm;用于醫療設備則封裝875 nm;用于紅外線監控設備的則需要封裝850 nm波長。本設計中選取采用封裝940 nm波長的紅外發射管。
本設計中,運用紅外線收、發對管完成擂臺對抗機器人的位置識別。具體過程如下:擂臺對抗機器人在黑色比賽區域運動時,51單片機P1.4引腳發出一定頻率的高、低電平從而控制N2的導通與截止來控制向外發射紅外線光波的頻率,紅外線光波在空中傳播的過程中,遇到對方擂臺對抗機器人時會被反射回來,進而被安裝在51單片機P1.5引腳的紅外線接收器所接收。
擂臺對抗機器人通電后,在51單片機P1.2和P1.3引腳控制的左、右巡線QTI傳感器的引導下,在比賽的黑色區域運動。QTI在機器人運動過程中,當掃描到底部的黑色區域時,返回給51單片機P1.2和P1.3引腳的信號為高電平,則控制機器人(電機)繼續運動;如果機器人運動到比賽區域的邊緣,掃到白色時,返回給51單片機P1.2和P1.3引腳的則是低電平,這時51單片機的P1.0和P1.1引腳會輸出控制信號使機器人趕緊后退到比賽的黑色區域。
擂臺對抗機器人在運動的過程中,51單片機P1.4引腳輪流輸出高、低不同的電平控制NPN型三極管N2的導通與截止,從而控制紅外線發光管向外發射紅外線光波的頻率。當向外發射的紅外線光波遇到對方擂臺對抗機器人時,部分光波被反射回來,被安裝在本機機器人上的51單片機P1.5引腳的紅外線接收器所接收。51單片機接收此信號后,根據實際在51單片機的P1.0和P1.1引腳輸出電機控制信號,控制電機使機器人完成前進(攻擊對方)、后退、左轉彎或右轉彎等動作[2]。
擂臺對抗機器人主要完成以下幾個任務:(1)擂臺對抗機器人的運動控制,包括機器人前進、后退、左轉彎及右轉彎等;(2)不斷檢測比賽擂臺的邊緣線;(3)不斷檢測對方機器人的位置,并根據位置做出本機機器人位置的調整或是相應攻擊等。以下是擂臺機器人運動控制函數。


根據上述程序設計思路,繪制出如圖4所示的主程序流程圖。系統通電后,擂臺對抗機器人向前直走,在直走過程中,巡線QTI傳感器不斷檢測是否到擂臺邊緣,如果是,繼續判斷機器人是否正對著邊緣;如果是,機器人直接后退;如果機器人處于邊緣偏左,則機器人先右轉調整角度,再后退;如果機器人處于邊緣靠右,則先左轉調整角度,再后退。

圖4 紅外傳感器主程序流程圖
按圖3所示的電路原理圖連接控制電路,在Keil C中編輯、編譯控制程序直到仿真通過,再通過51單片機程序下載器將產生的可執行文件燒寫到紅外傳感器擂臺對抗機器人控制板中的單片機程序存儲器中。開機運行后,機器人會不斷檢測擂臺比賽范圍邊緣線,當沒有發現對方機器人時,會一直在比賽范圍內轉圈,在發現對方機器人后,會主動發起攻擊,直至將對方推出比賽范圍,獲得本局比賽勝利,如果自己被推出比賽范圍,則本局比賽失敗。
該紅外傳感器擂臺對抗機器人參加2015年中國教育機器人大賽的擂臺對抗機器人項目競賽獲得了高職組“冠軍”。在比賽過程中,該機器人檢測紅外信號靈敏,捕捉對方擂臺對抗機器人能力強,具有較強的攻擊策略,攻擊能力強,且性能穩定,能夠為同類擂臺對抗機器人的設計提供可靠參考和借鑒。