摘要:采用Freescale公司的MC9SDG128單片機進行控制,使用ROHM公司生產(chǎn)的發(fā)送接收一體化反射型光電傳感器RPR220,設(shè)計了一種新型迷宮機器人。該迷宮機器人能夠在程序中嚴(yán)格控制光電傳感器的開關(guān),同時用軟件消除外界干擾,取得了很好的探測效果 引言 迷宮機器人走迷宮競賽是一項綜合性十分強的競賽,它涉及的學(xué)科包括了計算機學(xué)、機械學(xué)、電工學(xué)、嵌入式開發(fā)知識以及算法的實現(xiàn)等。迷宮機器人是一種人工智能的機器人,又稱為電腦鼠(Micromouse)。它擁有靈活的“雙腿”,銳利的“眼睛”,還有聰明的“大腦”用于控制“眼睛”和“雙腿”協(xié)調(diào)工作,最終走出IEEE標(biāo)準(zhǔn)迷宮。迷宮由256個方塊(單元)組成,每個方塊的大小為18 cm見方,排成16行×16列。 迷宮機器人在迷宮中要能按照一定規(guī)則完成行走,所以機器人必須具備以下幾種能力: ◆穩(wěn)定且快速的行走能力; ◆正確判斷能力; ◆記憶路徑的能力。 很明顯,這些能力必須建立在迷宮墻壁能夠被準(zhǔn)確探知的基礎(chǔ)上,這就要求迷宮機器人要有很強的“觀察力”,即具有一雙“慧眼”。現(xiàn)實中,能夠進行避障的傳感器有很多,如CCD攝像頭、超聲波傳感器、光電傳感器等。從設(shè)計成本和使用方面綜合考慮,本設(shè)計采用紅外式光電傳感器。紅外傳感器的功能有兩個:一是判斷迷宮墻壁的有無,確定迷宮機器人的行進方向;二是根據(jù)傳感器獲得的數(shù)值判斷迷宮機器人和墻壁之間的距離,從而對迷宮機器人的姿態(tài)進行調(diào)整,避免迷宮機器人和墻壁發(fā)生碰撞。 1 光電傳感器原理 紅外光電傳感器工作原理如圖1所示。發(fā)送器對準(zhǔn)目標(biāo)發(fā)射光束,發(fā)射的光束一般來源于半導(dǎo)體光源、發(fā)光二極管(LED)、激光二極管及紅外發(fā)射二極管。光束不間斷地發(fā)射,或者改變脈沖寬度。接收器由光電二極管、光電三極管、光電池組成。在接收器的前面裝有光學(xué)元件(如透鏡和光圈等);在接收器后面的是檢測電路,用于濾除無效信號,以及對有效信號進行利用。 隨著車體和墻壁的距離不同,接收管接收到的信號的強弱也不同。當(dāng)車體距離墻壁較近時,大量發(fā)射的紅外光線經(jīng)墻壁反射后被接收管接收,產(chǎn)生的電壓較高;反之,車體距離墻壁較遠時,反射的紅外光線在傳播過程中會損耗,被接收管接收到的信號較弱,產(chǎn)生的電壓也就較低。根據(jù)接收管產(chǎn)生電壓的強弱,可以判斷車體與墻壁之間的距離,為迷宮機器人避障提供數(shù)據(jù)。 2 光電傳感器的選用 光電傳感器的特點:不受電磁波的干擾,非噪聲源,可實現(xiàn)非接觸性測量;受環(huán)境的影響非常大,物體的顏色、方向、周圍的光線都可能導(dǎo)致測量誤差;由于發(fā)射光線是光而不是聲音,可以在相當(dāng)短的時間內(nèi)獲得較多的紅外線傳感器測量值;測距范圍較近,大致為40 cm以內(nèi)。紅外傳感器發(fā)射管和接收管的類型很多,其工作光波長約為800~1100 nm。通常在小功率條件下的工作電壓為1.5~5 V左右,工作電流為3~10 mA左右。在本設(shè)計中選用了日本ROHM公司生產(chǎn)的發(fā)送接收一體化反射型光電傳感器RPR220。該光電管功率為80 mW,工作波長為800 nm,完全滿足迷宮機器人的使用要求。 3 光電傳感器應(yīng)用電路 在本設(shè)計中,采用Freescale公司的16位單片機MC9S12DG128對光電傳感器進行控制。單片機的A/D模塊進行信號采集,獲知當(dāng)前的墻壁信息和車體的位置信息。單片機采集到A/D數(shù)值后,通過RS232傳到PC機上。然后根據(jù)傳感器采得的數(shù)值為電機指定相應(yīng)的動作信號,控制迷宮機器人在迷宮中的姿態(tài),并且實時記錄迷宮墻壁有無的信息,為建立迷宮地圖提供數(shù)據(jù)。 3.1 傳感器電路 傳感器電路是獲知迷宮信息的主要途徑,其電路設(shè)計的好壞直接影響著機器人的工作。一般來說,傳感器電路由控制電路、發(fā)射管、接收管和信號處理電路構(gòu)成。陽光譜中含有紅外成分,所以在迷宮機器人中要想方設(shè)法將紅外光譜消除,才能保證迷宮機器人的正常運行。本設(shè)計使用了5路傳感器,分置于迷宮機器人的正前、偏左45°、左側(cè)、偏右45°、右側(cè)。每一路的打開與關(guān)閉由處理器控制,如圖2所示。 本設(shè)計中的傳感器電路如圖3所示。CTR1為傳感器的開關(guān)控制口,CTR1置高時,發(fā)射管兩端沒有電壓差,所以傳感器不會對外發(fā)射紅外信號;CTR1置低時,發(fā)射管和傳感器均工作,對外發(fā)射紅外光譜信號。當(dāng)發(fā)射的紅外光譜經(jīng)迷宮墻壁發(fā)射反射回迷宮機器人時,接收管會產(chǎn)生感應(yīng)電流。此時,RPR220的3號端口的電阻將該端的電動勢拉高。如果電流增大,那么3號端口輸出的地電動勢也會相應(yīng)增大,從而實現(xiàn)對迷宮環(huán)境的信息探測。 3.2 傳感器電路的使用 從前面的分析可以知道,傳感器采集信號時存在著陽光干擾。在設(shè)計期間,我們也進行了相應(yīng)的干擾實驗。結(jié)果表明,陽光的干擾十分強烈,完全可以使得紅外傳感器失去作用。因此,在傳感器電路的使用過程中必須考慮陽光對光電傳感器的干擾,可從硬件和軟件兩方面去消除陽光的影響。 在本設(shè)計中,采用了軟件消除誤差的方法。首先,CTR1置高,也就是傳感器發(fā)射管處于關(guān)閉狀態(tài)。這時使用處理器的A/D采集模塊對接收管的信號進行采集,作為基值A(chǔ)D1。然后,將CTR1置低,將發(fā)射管打開,再一次用處理器的A/D采集功能進行信號采集。這時采得的數(shù)據(jù)為AD2,是反射光譜和陽光紅外譜的混合信號,而真正的A/D值應(yīng)為AD=AD2-AD1。軟件消除陽光紅外光誤差的流程如圖4所示。 本設(shè)計采用MC9S12DG128處理器的PB0~PB4控制5個傳感器的開斷。實驗表明,軟件消除陽光紅外光誤差的方法效果較好。 3.3 實驗結(jié)果 該實驗使用RS232通信接口,將處理器采集獲得的A/D數(shù)值實時傳到上位機,然后改變車體與墻壁之間的距離,記錄各個點的A/D數(shù)值,利用MATLAB繪制出A/D值與距離之間的關(guān)系圖。 實驗表明,該方法能夠有效地在迷宮中進行距離的探測,最大探測距離達到20 cm,在1 cm處傳感器飽和,而迷宮機器人的要求能夠探測的最大距離為18 cm,飽和距離不能大于2 cm。顯然,該電路完全滿足使用要求。實驗程序如下所示: 實驗結(jié)果如圖5所示,可見距離與A/D采樣值成反比。 4 結(jié)論 本文設(shè)計了一款新型迷宮機器人,其中光電傳感器的設(shè)計部分采用RPR220實現(xiàn)。實驗表明,本設(shè)計的探測距離完全滿足迷宮機器人的使用要求。其創(chuàng)新點是使用軟件的方法進行干擾消除,有效地避免了陽光紅外信號的干擾,提高了迷宮機器人走迷宮的成功率,機器人的可靠性也得到了大幅的提升。 |