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