范效瑋,湯臘梅,袁曉紅
(1.中南林業(yè)科技大學(xué),湖南長沙,410004;2.湖南工業(yè)職業(yè)技術(shù)學(xué)院,湖南長沙,410208)
隨著自動控制技術(shù)的發(fā)展,越來越多的作業(yè)是在及其危險、惡劣甚至是人類無法生存的環(huán)境中完成的。這種人力無法完成的作業(yè)需要由人遙控操作機器人或者由機器人自主來完成,把人從危險繁瑣的勞動中解脫出來,如人通過電腦遙控火星車在火星上前進(jìn)、挖掘、探測、采集標(biāo)本等。在現(xiàn)代戰(zhàn)爭和拆除危險爆炸物中,遙控機器人顯得越來越重要,在戰(zhàn)場上大量使用機器人可以減少人員的傷亡,同樣在拆彈方面,遙控機器人代替人操作也能大大降低傷亡的風(fēng)險[1]。
美國是機器人的誕生地,早在1962 年就研制出世界上第一臺工業(yè)機器人,比起號稱“機器人王國”的日本起步至少要早五六年[2]。70 年代后期,美國政府和企業(yè)界雖有所重視,但在技術(shù)路線上仍把重點放在研究機器人軟件及軍事、宇宙、海洋、核工程等特殊領(lǐng)域的高級機器人的開發(fā)上[3],致使日本的工業(yè)機器人后來居上,并在工業(yè)生產(chǎn)的應(yīng)用上及機器人制造業(yè)上很快超過了美國,產(chǎn)品在國際市場上形成了較強的競爭力。80 年代中后期,隨著各大廠家應(yīng)用機器人的技術(shù)日臻成熟,第一代機器人的技術(shù)性能越來越滿足不了實際需要,美國開始生產(chǎn)帶有視覺、力覺的第二代機器人,并很快占領(lǐng)了美國60%的機器人市場。盡管美國在機器人發(fā)展史上走過一條重視理論研究,忽視應(yīng)用開發(fā)研究的曲折道路,但是美國的機器人技術(shù)在國際上仍一直處于領(lǐng)先地位。
本系統(tǒng)以單片機AT89S52 為MCU,通過L298N 電機驅(qū)動模塊來驅(qū)動直流電機,無線傳輸采用單片機的串口和XL02-232AP1 無線模塊來完成,電機測速和循跡模塊均用到了紅外對管,通過電壓比較器LM393 將采集的模擬信號轉(zhuǎn)換為數(shù)字信號。系統(tǒng)的整體結(jié)構(gòu)框圖如圖1 所示。
圖1 系統(tǒng)硬件連接框圖
圖1 無線遙控循跡機器人整體結(jié)構(gòu)框圖系統(tǒng)整體電路如圖2 所示
圖2 多功能單片機音樂播放器原理圖
單片機幾乎集合了計算機系統(tǒng)的所有部件,包括運算器、控制器、IO 口,主要用來進(jìn)行數(shù)據(jù)采集、處理、顯示等,用匯編語言和C 語言[4]進(jìn)行開發(fā)。
匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器代碼的一種語言。其主要優(yōu)點是占用的資源少,程序執(zhí)行效率高。但編程難度大,程序代碼可讀性差,且對于不同的CPU,語言體系有所差異,不易移植。
C 語言是一種結(jié)構(gòu)化的高級語言。其優(yōu)點是可讀性好,移植容易,應(yīng)用廣泛。
因此,本設(shè)計的單片機程序選用C 語言作為程序設(shè)計語言。與之對應(yīng),選用基于C51 內(nèi)核的C 程序軟件開發(fā)平臺Keil C51。
Keil C51 是美國Keil Software 公司出品的51 系列兼容單片機C 語言軟件開發(fā)系統(tǒng)[5]。Kei1 C51 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,Keil C51 內(nèi)嵌有多種符合目前工業(yè)現(xiàn)行標(biāo)準(zhǔn)的開發(fā)工具,可以完成從工程建立和管理、編譯、連接,目標(biāo)代碼的生成,軟件仿真,硬件仿真等完整的開發(fā)流程。尤其C 編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了較高水平,可以附加靈活的控制選項,在開發(fā)大型項目時非常理想。Keil C51 集成開發(fā)調(diào)試界面如圖3 所示上位機軟件
圖3 Keil C51 集成開發(fā)調(diào)試界面
上位機軟件是電腦終端和單片機串口進(jìn)行通信的重要連接部分,負(fù)責(zé)傳遞電腦終端和單片機的信息。本設(shè)計使用SSCOM作為上位機的軟件,作為電腦終端無線遙控機器人的軟件。
圖4 SSCOM上位機軟件界面
啟動該系統(tǒng)時,首先將串口初始化并設(shè)定初始速度的PWM占空比為70,然后等待用戶輸入命令。由于上位機軟件一次只能發(fā)送一個字符,所以前進(jìn)和后退按鈕只需按一下發(fā)送一次字符,便于發(fā)送加速和減速的字符;在進(jìn)行左右轉(zhuǎn)向時,則要一直按著按鈕直至需要停止時松開,便于控制其轉(zhuǎn)向的角度;需要循跡時,按一下“k”按鈕,繼電器開啟循跡電路的電源便可以開始循跡。機器人運行過程中,每隔1 秒將測量出的運行速度返送回電腦終端。系統(tǒng)主程序流程圖5 所示。
圖5 系統(tǒng)主程序流程圖
本程序是控制串口[7]的子程序。串口初始化時,使用定時器1 來產(chǎn)生波特率,設(shè)定波特率為9600。發(fā)送和接收數(shù)據(jù)時,由于發(fā)送和接收數(shù)據(jù)共用一個SBUF 寄存器,傳輸完一個字節(jié)數(shù)據(jù)時,通過標(biāo)志位RI 或TI 會置位產(chǎn)生中斷。串口初始化程序如下:
電機調(diào)速由脈沖寬度調(diào)制P WM(PWM,Pulse Width Modulation)[6]來實現(xiàn),通過調(diào)節(jié)占空比,調(diào)節(jié)L298N 的輸出電壓從而達(dá)到控制電機轉(zhuǎn)速快慢的目的,該技術(shù)被廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中。
占空比是高電平在一個周期之內(nèi)所占的時間比率,如方波的占空比為50%,占空比為0.5,說明正電平所占時間為0.5 個周期。占空比波形如圖6 所示。
圖6 占空比波形
在初始化時,占空比設(shè)定為70,在機器人運行過程中可以通過無線遙控來對占空比進(jìn)行加減,以實現(xiàn)對機器人的速度控制。電機驅(qū)動程序流程圖如圖7 所示。
圖7 電機驅(qū)動程序流程圖
機器人有5 路循跡模塊,中間1 路,左右各2 路,運行速度設(shè)定適中,以防機器人沖出黑線。循跡程序如下:
運行結(jié)果
根據(jù)程序設(shè)定,在電腦上用“w”、“s”、“a”、“d”控制機器人的前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn),“+”,“-”控制占空比,調(diào)節(jié)機器人的運行速度,并將適時轉(zhuǎn)速送回電腦。由于機器人的兩邊的履帶各由一個電機控制,在轉(zhuǎn)彎時一個電機正轉(zhuǎn),另一個電機反轉(zhuǎn),從而使機器人可以在原地轉(zhuǎn)360 度轉(zhuǎn)彎,實現(xiàn)了對機器人操作的精準(zhǔn)性,運行時如圖8 所示。
圖8 總體效果圖
表1 為機器人運行時,通過調(diào)節(jié)占空比,得出機器人的運行速度,如表1,機器人處于循跡狀態(tài)時,在不同的速度下可以循跡的角度如表2。
表1 機器人運行速度與占空比的關(guān)系
表2 機器人運行速度與循跡角度的關(guān)系
機器人運動速度越快,循跡的角度越小。
本文設(shè)計了無線遙控循跡機器人。無線遙控循跡機器人系統(tǒng)是以單片機AT89S52 為核心,采用無線傳輸模塊XL02-232AP1 進(jìn)行遙控數(shù)據(jù)傳輸,L298N 電機驅(qū)動模塊作為機器人的動力系統(tǒng),通過終端顯示出機器人的運行狀態(tài),實現(xiàn)了對機器人進(jìn)行實時準(zhǔn)確的控制。本次設(shè)計采用了C 語言來編程,簡單、方便、便于理解。本設(shè)計基本上達(dá)到了設(shè)計的目的和要求。
[1]張俊健.單兵遙控機器人控制系統(tǒng)[J].兵工自動化,2009,(6):4-5.
[2]吳振彪.工業(yè)機器人(第二版)[M].北京:華中科技大學(xué)出版社,2006:10-12.
[3]李云江.機器人概論[M].上海:上海大學(xué)出版社,2011:5-8.
[4]王幸之.AT89 系列單片機原理與接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2004:189-196.
[5]戴亞文.基于AT89S52 單片機的智能循跡機器人設(shè)計[J].機電工程技術(shù),2009,(1):8-9.
[6]Ma, Wuxing.Elevator System and Control to Achieve Based on MCS-51 Singlechip [J].Com-puter Science and Electronics Engineering (ICCSEE),2012:10-12.
[7]梅開鄉(xiāng).電子電路設(shè)計與制作[M].北京:北京理工大學(xué)出版社,2010:70-76.