周杰
摘要: 采用 STC89c52作為電腦鼠的控制核心,紅外發射LED和紅外一體化接收頭HS0038構成傳感器模塊完成迷宮路徑掃描,單片機控制左右334線AB相伺服電機實現電腦鼠,前進一格,后退一格,左轉90°,右轉90°的動作,根據設置的迷宮出口坐標,能夠完成對整個迷宮的搜索,并找到最佳行走路徑。
關鍵詞:STC89c52;傳感器;電機;迷宮
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)02-0138-03
1 概述
電腦鼠[1-2]是一種機電一體化裝置,是由單片機、傳感器、機電運動部件組成的一種能在迷宮行走的小型機器人。本文設計和完成了一種基于STC89c52簡易電腦鼠,電腦鼠可以在不同大小的迷宮[3][4]中自動記憶和選擇路徑,完成前進一格,后退一格,左轉90°,右轉90°的動作,并可以采用相應的算法,快速完成對整個迷宮路徑的搜索,進而找到最佳的走出迷宮的路線。
2 硬件設計
電腦鼠是指由車體、輪子、和驅動軟件構成。車體是由STC89c52(相當于人體的大腦部分)、傳感器模塊(完成迷宮障礙物的掃描)、電機模塊(完成相應的機械動作)和定時計數器模塊(完成電腦鼠的動作修正),組成的一個綜合的系統。
電腦鼠的基本構成如圖1所示:
2.1 電源模塊
STC89c52單片機的工作電壓為3.3v-5.5v,故可以采用電腦鼠采用單節鋰離子電池供電。
TP4054是一款完整的單節鋰離子電池充電器,TP4054可以適用于USB電源,如圖所示當充電完成,輸入電壓USB電源被拿掉時,可以自動進入低電流狀態。CHNG漏極開路狀態輸出,BAT充電電流輸出。
電腦鼠的電源模塊電路如圖2所示:
2.2 電機模塊
STC89c52的I/O口電流輸出能力有限,需要將單片機I/O口弱電流放大到足以驅動電機的電流。通過L9110電機驅動芯片,驅動左右兩個334線AB相伺服電機,通過L9110驅動芯片上IA、IB輸入的邏輯值的組合,可以控制AB相伺服電機停止,正轉和反轉。
P2.0、P2.1、P2.2、P2.3口是單片機的輸出口,Left motor1、Left motor2、Right motor1、Right motor2是左右兩個電機驅動電路控制引腳,Left motor和Right motor 3腳是電機光電碼盤A相脈沖輸出,連接到單片機的定時/計數器外部計數引腳,通過脈沖計數,可以完成電腦鼠左轉90°,右轉90°等操作。
電腦鼠電機模塊電路如圖3所示:
2.3 傳感器組設計
電腦鼠設計有5組傳感器。這5組傳感器分別安裝于電腦鼠的右前、右、左、左前、前、5個不同的方向。采用74HC138譯碼器將單片機的3位二進制編碼譯碼為8位控制線,采用分時檢測傳感器,使單片機能夠控制5組傳感器的工作。
傳感器電路由紅外發射LED和紅外一體化接收頭HS0038構成,紅外LED由載波發生器產生的CLOCK信號驅動產生38KHz紅外調制光。RP1為可調電阻,通過調節RP1來調節紅外LED發光強度,從而調整傳感器組檢測迷宮墻障礙物的距離。Sensor1用于控制該組傳感器是否工作,連接到3-8譯碼選擇電路。紅外調制光經障礙物反射由HS0038紅外一體化接收頭接收,進行放大濾波、解調等處理后輸出,單片機通過識別P2.5口的電平高低來判斷傳感器前面是否有障礙物。
單片機傳感器模塊電路如圖4所示:
3 軟件設計
3.1 構建迷宮
按照IEEE要求,迷宮大小為16*16的單元格組成,單元格格大小為18*18cm,電腦鼠PCB底盤大小為迷宮格一半8*8cm左右,現在模擬現場環境,將迷宮設置為8*8,單元格如圖5所示,起點坐標為(1,1),終點坐標為(8,8)。
3.2 電腦鼠軟件設計
電腦鼠是一個小型智能行走裝置,保證其可靠性取決于硬件和軟件設計,在電腦鼠的軟件設計可以分為兩個部分:走迷宮算法部分和底層驅動部分。
3.2.1 搜索迷宮算法程序
假設我們將電腦鼠放在起點坐標(1,1),按下啟動鍵,然后根據設定的終點坐標(8,8),通過到達終點服務程序找到終點,如果到達終點,蜂鳴器發出尖銳的報警聲,表明找到了終點坐標。搜索迷宮算法的主流程圖如圖6所示。
在主程序運行過程中,要調用中斷服務程序,即到達終點中斷服務程序如圖7所示,由于電腦鼠自身沒有思維能力,只能根據程序規則運行,電腦鼠到達終點服務程序,就是根據設定的終點坐標,采用一定的規則進行迷宮的搜索。常用的搜索法則有:
1) 右手規則:當電腦鼠走到迷宮的某一單元格時,電腦鼠的傳感器開始工作,電腦鼠掃描迷宮格擋板信息,優先檢測右方迷宮格是否可行,其次前方,最后才是左方。
2) 左手規則:左手法則與右手法則類似,當電腦鼠走到迷宮的某一單元格時,電腦鼠的傳感器開始工作,電腦鼠掃描迷宮格擋板信息,優先檢測左方方迷宮格是否可行,其次前方,最后才是右方。
3) 中右規則:優先檢測前方迷宮格是否可行,其次右方,最后才是左方。
4) 中左規則:優先檢測前方迷宮格是否可行,其次左方,最后才是右方。
5) 向心法則[7]:是右手法則,左手法則,中右規則,中左規則的結合,盡可能的朝著距離終點最近的方向前進。
本文采用向心手法則進行迷宮搜索。如圖7所示:電腦鼠根據向心法則[7]掃描坐標進行前進,當到達下一個迷宮格時,用當前迷宮格的坐標與終點坐標進行比較,如果是終點,就發出報警聲,如果不是就繼續查找,判斷當前坐標是否走過,如果走過則返回上一個分叉路口,如果沒有走過則采用向心法則搜索路徑,直到找到終點坐標為止[1][6]記錄下行走路徑,就找到了,迷宮的最短路徑。
3.2.2 底層驅動程序
底層驅動程序主要完成,電腦鼠的基本操作:左轉90°,右轉90°。當電腦鼠需要轉彎時,停在當前坐標,做原地90°旋轉,然后前進。如果是左轉,Left Motor反轉,Right Motor正轉。如果是右轉,Left Motor正轉,Right Motor反轉。
對于擋板信息的獲取,調用5路傳感器,掃描單元格前左右信息,如果有擋板,則該方向返回1,如果沒有擋板返回0。
如圖9所示,當電腦鼠到達某一點時,應該處于該單元格的中心,它距離擋板的距離允許在S±2cm,如果掃描到的距離大于該范圍,則認為有擋板返回1。當電腦鼠在行進過程中還可以通過S±2cm對電腦鼠進行姿態糾正。
4 結束語
本文給出了基于STC89c52電腦鼠的硬件設計方案以及軟件設計思路,電源模塊、電機模塊、傳感器模塊、硬件穩定設計簡單,且價格低廉。由于采用了模塊化設計思想,具有思路可移植性,可擴展性強等特點。
參考文獻:
[1] 齊英鑫.基于80C51 單片機的智能電動小車[J].科技信息,2008(31):36-37.
[2] 周立功.IEEE電腦鼠開發指南[M].廣州:廣州致遠電子有限公司,2008.
[3] 方金亮.基于 ARM 的IEEE 標準電腦鼠研究與實現[J].機械制造與自動化,2008(5):99-101.
[4] 周立功.Cortex-M3 開發指南[ M] .廣州:廣州致遠電子有限公司,2008.
[5] 方建軍, 何廣平.智能機器人[ M] .北京:化學工業出版社,2004.
[6] 鄧美清. 基于 STC12C56 單片機的電腦鼠設計與實現[J].科協論壇, 2011 (8) :78-78.
[7] 賀少波.基于向心法則的電腦鼠走迷宮算法設計與優化[J].計算機系統應用計算機系統應用 , 2012 , 21 (9) :79-82.endprint