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