臧申俊
隨著科學(xué)技術(shù)的高度發(fā)展,機(jī)器人已經(jīng)逐步在各行各業(yè)得到廣泛的應(yīng)用,比如在未知或危險(xiǎn)環(huán)境下,多機(jī)器人協(xié)同完成任務(wù)是最好的選擇。因此,基于移動(dòng)機(jī)器人的研究逐漸成為當(dāng)前的一大熱點(diǎn)。結(jié)合群體智能這個(gè)研究方向,設(shè)計(jì)該自主式機(jī)器人,主要目的是設(shè)計(jì)一群個(gè)體功能簡(jiǎn)單的機(jī)器人,為群體智能方向的研究提供硬件平臺(tái)。本文描述的機(jī)器人采用的是luminary 的LM3S1968處理器,機(jī)器人之間通過(guò)Xbee通信模塊進(jìn)行通信,利用紅外傳感器感來(lái)進(jìn)行蔽障,達(dá)到群體協(xié)作共同完成相應(yīng)的任務(wù)。
從功能模塊劃分,系統(tǒng)由主控板,功能板和電機(jī)電源組成。
主控板主要由CPU及其外圍電路,以及一些調(diào)試用LED燈和按鍵組成。其電源輸入是由功能板上提供的5V電源,穩(wěn)壓芯片用的是LM1117-3.3V。經(jīng)過(guò)電源轉(zhuǎn)換后,電源DP3V3穩(wěn)定在3.3V,為整個(gè)主控板供電[1]。如圖1所示。
1.1.1 CPU
主控板所選用的CPU是luminary 的LM3S1968。該CPU使用到的功能模塊有:GPIO端口,JTAG接口,定時(shí)器模塊,通用異步收發(fā)器等。其他模塊考慮到擴(kuò)展應(yīng)用的需要,在主控板上引出了接口,將來(lái)的使用者可根據(jù)需要進(jìn)行調(diào)整。
圖1 主控板
1.1.2 時(shí)鐘晶振
圖2 CPU外部時(shí)鐘
CPU內(nèi)部本身有一個(gè)12MHz的內(nèi)部振蕩器,但頻差較大。因此機(jī)器人用的是一個(gè)外部的8MHz晶振作時(shí)鐘源,電路如圖2。而圖中另一個(gè)4.194M的晶振是供休眠模式使用的,在休眠模式中,CPU通過(guò)切換成較低頻率的時(shí)鐘來(lái)達(dá)到節(jié)能的目的。
1.1.3 復(fù)位電路
CPU的Reset是低電平有效,引腳外接到Reset按鍵,當(dāng)按鍵按下時(shí)引腳輸入低電平,使CPU復(fù)位。初始狀態(tài)下復(fù)位后的CPU內(nèi)程序被清空。
1.1.4 LED與按鍵
主控板上的LED燈和按鍵主要是用來(lái)作程序調(diào)試用的,如圖3和圖4所示。LED在相對(duì)應(yīng)的GPIO輸出為低電平時(shí)點(diǎn)亮,燈D1是電源指示燈,D2是休眠模式指示燈,D3~D6是調(diào)試用燈;而按鍵電路中,按下按鍵則輸出一個(gè)低電平,其中Reset是復(fù)位鍵,Wake是休眠模塊用到的,KEY1和KEY2是調(diào)試用按鍵。
圖3 LED電路
圖4 按鍵電路
1.1.5 接口
在主控板上一共有一個(gè)電源接口、三個(gè)雙排插口和四組排針口。如圖1所示。
功能板是主控板的控制信號(hào)的執(zhí)行者,主要包括電源模塊、紅外測(cè)距、電機(jī)及驅(qū)動(dòng)、串口等功能塊[2]。如圖5。
圖5 功能板
1.2.1 電源
在功能板上存在著兩種供電電壓,分別為從電源的穩(wěn)壓輸入5V和3.3V,其中3.3V為紅外接收管和串行紅外接口供電,5V為板上的其他設(shè)備供電。
1.2.2 紅外測(cè)距
圖6 紅外測(cè)距模塊電路
如圖6所示,在機(jī)器人上一共放置了五對(duì)測(cè)距紅外,上圖僅代表一對(duì)測(cè)距紅外和4066模擬開(kāi)關(guān)芯片的聯(lián)接。當(dāng)前方無(wú)障礙物時(shí)接收管斷開(kāi),輸出一個(gè)高電平,當(dāng)前方有障礙物時(shí)發(fā)射管發(fā)射的紅外光反射回來(lái),接收管導(dǎo)通,輸出一個(gè)低電平。為了調(diào)節(jié)發(fā)射強(qiáng)度,機(jī)器人在每個(gè)發(fā)射管上都連有一個(gè)電位器,可以通過(guò)調(diào)節(jié)電阻值大小來(lái)改變發(fā)射管的發(fā)射強(qiáng)度。
1.2.3 電機(jī)
采用四相步進(jìn)電機(jī),電機(jī)的轉(zhuǎn)速可以通過(guò)改變控制引腳狀態(tài)轉(zhuǎn)變的速度來(lái)控制。由于驅(qū)動(dòng)電流過(guò)小,電機(jī)的四個(gè)引腳無(wú)法用GPIO口直接驅(qū)動(dòng),選用BA6845FS芯片驅(qū)動(dòng)[3] ,如圖7所示。
圖7 步進(jìn)電機(jī)驅(qū)動(dòng)電路
1.2.4 串口
圖8 UART與MAX232電路圖
串口部分留出了兩對(duì)UART口和一個(gè)串行紅外通信模塊。CPU上的UART引腳需要經(jīng)過(guò)232芯片,從TTL信號(hào)轉(zhuǎn)換為RS232信號(hào)。串行紅外的通信不需要經(jīng)過(guò)232芯片的轉(zhuǎn)換,但需要一個(gè)集成的串行紅外模塊,電子鼠使用的是類(lèi)似的HSDL-3600串行紅外通信芯片,芯片連接與3602相同[4]。在使用時(shí),將兩個(gè)機(jī)器人的紅外通信口相對(duì),即可進(jìn)行串口的通信。
1.2.5 接口
在功能板上有兩個(gè)插口是與主控板相連接的,JP1對(duì)應(yīng)的是主控板上的插口CONNECTOR, JP2對(duì)應(yīng)的是插口UART1&IRC,以及功能板上還有一類(lèi)接口是連接外部器件。如圖5所示。
在這個(gè)部分中,將對(duì)這機(jī)器人的驅(qū)動(dòng)程序進(jìn)行說(shuō)明,包括接口、模塊定義和實(shí)現(xiàn)等。
我們?cè)隍?qū)動(dòng)文件中,定義了一些常量和結(jié)構(gòu)體控制機(jī)器人的運(yùn)動(dòng),為上層功能提供數(shù)據(jù)接口,還定義了GPIO口的控制信號(hào)映射關(guān)系,以避免每次需要查找電路圖GPIO口連線(xiàn)。
在開(kāi)始使用驅(qū)動(dòng)程序之前,對(duì)CPU的時(shí)鐘、GPIO、LED燈、紅外測(cè)距、電機(jī)、定時(shí)器等各個(gè)模塊進(jìn)行了初始化。用來(lái)記錄電機(jī)當(dāng)前行止?fàn)顟B(tài)、轉(zhuǎn)向、總步數(shù),電子鼠X、Y坐標(biāo)、朝向、行止?fàn)顟B(tài)、速度以及五個(gè)測(cè)距紅外的讀數(shù)值。
通過(guò)電機(jī)相位控制對(duì)電機(jī)的相位作記錄,根據(jù)當(dāng)前電機(jī)轉(zhuǎn)向把相位向前或者向后推進(jìn)一格。定時(shí)器中斷服務(wù)程序使用了CPU的兩個(gè)32位定時(shí)器Timer0和Timer1,分別對(duì)左輪和右輪進(jìn)行定時(shí)驅(qū)動(dòng)。電機(jī)轉(zhuǎn)速設(shè)置是通過(guò)改變相應(yīng)定時(shí)器的置數(shù)值,改變定時(shí)器觸發(fā)中斷的周期,從而改變電機(jī)的轉(zhuǎn)速。
為了實(shí)現(xiàn)驅(qū)動(dòng)的透明度,在電機(jī)控制之上加一層對(duì)機(jī)器人運(yùn)動(dòng)狀態(tài)的控制。主要運(yùn)動(dòng)狀態(tài)有左轉(zhuǎn)90度,左轉(zhuǎn)180度,右轉(zhuǎn)90度,右轉(zhuǎn)180度,熄火,前進(jìn)等。
定時(shí)掃描紅外測(cè)距模塊。在系統(tǒng)定時(shí)器SysTick的中斷服務(wù)程序中,驅(qū)動(dòng)打開(kāi)紅外測(cè)距模塊,對(duì)5個(gè)紅外測(cè)距進(jìn)行逐一掃描讀數(shù),將讀到的結(jié)果保存在結(jié)構(gòu)體變量Telemeter中。
驅(qū)動(dòng)的一個(gè)應(yīng)用例子,通過(guò)狀態(tài)機(jī)模型實(shí)現(xiàn)機(jī)器人從初始點(diǎn)跑到終點(diǎn),其間避開(kāi)所遇到的障礙的功能。機(jī)器人根據(jù)當(dāng)前位置和目標(biāo)點(diǎn)位置貪婪地做出決策。如圖7所示:
圖7 狀態(tài)轉(zhuǎn)化流程模型圖
本文描述了機(jī)器人的結(jié)構(gòu)設(shè)計(jì),利用其基本功能實(shí)現(xiàn)了拼字母這一應(yīng)用場(chǎng)景,并驗(yàn)證了其性能。目前該設(shè)計(jì)中還有許多需要改進(jìn)的地方,如布線(xiàn)、需要對(duì)功能板進(jìn)行升級(jí),將通信模塊集成到功能板上,給機(jī)器人控制加上反饋模塊,該模塊可以是指南針模塊或車(chē)輪轉(zhuǎn)數(shù)計(jì)數(shù)模塊,等等。
[1] 劉霞等.電子設(shè)計(jì)與實(shí)踐[M] .電子工業(yè)出版社,2009.
[2] (美)卡特索利斯著,徐君明,等譯.嵌入式硬件設(shè)計(jì)[M] ..中國(guó)電力版社,2004.
[3] 王水平,周培志,張耀進(jìn)等.PWM 控制與驅(qū)動(dòng)器使用指南及應(yīng)用電路[M] ..西安電子科技大學(xué)出版社,2005.
[4] 海濤,龍軍主編.計(jì)算機(jī)通信技術(shù)[M] ..重慶大學(xué)出版社,2005.