孔慶 馬鳳偉 周文婷
濟寧職業(yè)技術學院機電工程系,山東 濟寧 272037
手動機器人控制系統(tǒng)設計
孔慶 馬鳳偉 周文婷
濟寧職業(yè)技術學院機電工程系,山東 濟寧 272037
手動機器人對于機器人比賽的制勝起著舉足輕重的作用,首先提出了手動機器人控制系統(tǒng)設計方案,然后根據(jù)控制方案分別進行了硬件、軟件的設計,最后總結了設計調(diào)試過程中的心得體會。
機器人比賽;手動機器人;控制系統(tǒng)
自2002年開始,中央電視臺每年舉行一次全國大學生機器人電視大賽(CCTVROBOCON),迄今為止,CCTVROBOCON已經(jīng)成功舉辦了十屆。每屆都有不同的主題,根據(jù)比賽要求,每個參賽隊要設計1臺或多臺自動機器人,1臺手動機器人。手動機器人將最重要的智能化傳感器和決策系統(tǒng)交給了人,在機器人還不能真正眼觀六路、耳聽八方、反應迅速、身手敏捷的時候,手動機器人不但不能放棄,還應當用于競賽中急難險重的關鍵環(huán)節(jié),是自動機器人最重要的合作伙伴[1]。
手動機器人的基本組成模塊有運動機構、機械手、推進機構以及提升機構。運動機構實現(xiàn)手動機器人前進、后退、左右轉(zhuǎn)向等動作;機械手用來抓取和放置物品;推進機構可使機械手向前或向后運動,用來調(diào)節(jié)機械手的水平位置;提升機構用來提升機械手或使機械手下降,便于調(diào)整機械手的垂直位置。手動機器人控制系統(tǒng)結構如圖1所示。
控制器是整個手動機器人的控制核心,它負責所有指令動作的控制和各模塊之間的協(xié)調(diào)。由于手動機器人控制對象較為固定和簡單,動作不是很復雜,不需要處理過多的指令,因此可以選用已經(jīng)非常成熟的工業(yè)單片機AT89S52。該單片機存儲形式采用馮!諾依曼結構(Von Neumann),程序存儲區(qū)與數(shù)據(jù)存儲區(qū)統(tǒng)一編址,存儲結構簡單,程序編寫量較小,比較容易控制,而且技術相當成熟,可靠性好。
控制鍵盤用于實現(xiàn)對機器人的行進及動作控制,可以采用游戲手柄改裝而成。它的主要功能是產(chǎn)生相應的動作指令,由指令編碼器編碼之后發(fā)送到機器人的控制器,控制器對指令解碼后,控制電機完成相應的動作。
圖1 手動機器人控制系統(tǒng)結構框圖
手柄與手動機器人本體不會距離太遠,一般在一兩米以內(nèi),可以選擇比較簡單的串行通訊方式。串行通訊操作簡單易控并且比較穩(wěn)定,接口采用航空接插件的形式,連接可靠。也可以采用USB通訊方式,但這種通訊方式需要另加轉(zhuǎn)接口。
手動機器人的動作由電機驅(qū)動完成,可以選用直流伺服電機作為動力源。直流伺服電機將控制信號轉(zhuǎn)換成機械軸的轉(zhuǎn)動,對控制信號的變化反應比較快[2]。
如前所述,控制器采用AT89S52工業(yè)單片機,AT89S52包括P0-P3四個端口,共32位輸入輸出(I/O)接口。由于手動機器人動作比較簡單,單片機本身的I/O口足夠用,因此只需要單片機最小系統(tǒng)[3]即可完成控制。為防止在比賽過程中,由于干擾等各種因素出現(xiàn)單片機死機而導致機器人無法正常動作的現(xiàn)象,需外加看門狗電路。復位及電源監(jiān)控由MAX813芯片來完成如圖2所示。
圖2 Max813應用電路圖
鋰電池具有重量輕、放電電壓穩(wěn)定、工作溫度范圍寬、自放電率低、儲存壽命長、無記憶效應及無公害等優(yōu)點[4],因此適宜用作手動機器人的電源??紤]到比賽中可能會出現(xiàn)電池輸出電壓波動以及機器人負載變化的現(xiàn)象,為使機器人能穩(wěn)定地工作,必須保證控制器供電電壓的穩(wěn)定性,可以采用穩(wěn)壓芯片來實現(xiàn),如圖3所示。
圖3 電源穩(wěn)壓電路圖
手柄與控制器之間通過串行方式通訊,硬件連接如圖4所示[5]。圖中,ATT用于提供手柄觸發(fā)信號;CLOCK是時鐘信號,用于保持數(shù)據(jù)同步;COMD表示信號流方向;從主機到手柄,用于傳輸控制器對手柄的命令;DATA表示信號流方向:從手柄到主機,用于手柄向控制器傳送動作指令。
電機的控制主要包括正反轉(zhuǎn)控制以及PWM調(diào)速控制,其硬件驅(qū)動如圖5所示。
直流電機的正反轉(zhuǎn)由M1、M2兩個I/O口控制K1和K2兩個繼電器來實現(xiàn)[6]。當K1公共端接+12V,K2公共端接地時,電機承受正向12V電壓,電機正轉(zhuǎn);當K1公共端接地,K2公共端接+12V時,電機承受反向12V電壓,電機反轉(zhuǎn)。行進中的軟啟動和軟停止采用PWM調(diào)速實現(xiàn),即通過給電機發(fā)送一個占空比可調(diào)的電壓,改變電機上的平均電壓,即可改變電機的轉(zhuǎn)速。
考慮到電機工作時的反電動勢會導致單片機死機,可以在電機兩端加瞬態(tài)電壓抑制器(TVS)吸收反電動勢[7]。
圖4 手柄與控制器連接圖
圖5 電機驅(qū)動電路圖
常用的51單片機編程語言有兩種,一種是匯編語言,一種是C語言。匯編語言是最接近機器碼的一種語言,其主要優(yōu)點是占用資源少、程序執(zhí)行效率高[8]。但是匯編語言不易移植,它的可讀性和可維護性不強。而C語言是一種結構化程序設計語言,具有功能豐富的庫函數(shù)、運算速度快、編譯效率高、有良好的可移植性,而且可以直接實現(xiàn)對系統(tǒng)硬件的控制[9]。C51是C語言在51系列單片機上的實現(xiàn),使用特定的編譯器Keil C,C51綜合了C語言和匯編語言的優(yōu)點,因此,采用C51來編寫控制程序是一個很好的選擇。
為加強程序的可讀性及易維護性,采用模塊化程序設計,即將手動機器人的各個動作分別編寫成子程序供主程序調(diào)用。主程序由一個大的循環(huán)程序組成,包括手柄與單片機的通訊、判斷按鍵、指令解碼及相應的動作輸出,程序流程圖如圖6所示。
圖6 主程序流程圖
通過不斷地嘗試、不斷地改進解決了系統(tǒng)實際調(diào)試過程中出現(xiàn)的一些問題,現(xiàn)將軟硬件調(diào)試過程中的經(jīng)驗總結如下:
(1)在設計電路時,要多查資料,準確把握相關元器件的特性及用法,這樣才能正確地選用器件,在檢查時也容易找出錯誤所在。
(2)安裝時不同作用的導線用不同的顏色、線號加以區(qū)別,導線要整齊,以便于修改。當出現(xiàn)問題時,要充分的利用萬用表和示波器來查錯。
(3)程序模塊化,每個模塊編成一個子程序,調(diào)試時根據(jù)出現(xiàn)的問題鎖定到某一個模塊,只要修改這個模塊就可以了。
[1](日本)森政弘,鈴木泰博.機器人競賽指南[M].北京:科學出版社,2002.
[2]王曉明.電動機的單片機控制[M]. 北京:北京航空航天大學出版社, 2011.
[3]張克明.MCS-51單片機實用教程[M]. 北京:科學出版社,2010.
[4]王民忠. 締造傳奇—機器人大賽揭秘[M].北京:科學出版社,2004年.
[5]劉穎,李曉龍.單片機與PC手柄的通訊[J].電子世界,2003,(1):38~39.
[6]姚四改.Protel 99 SE電子線路設計教程[M].上海:上海交通大學出版社,2003.
[7]劉南平.現(xiàn)代電子設計與制作技術[M]. 北京:電子工業(yè)出版社,2003.
[8]李華等.MCS-51系列單片機實用接口技術[M].北京:北京航空航天大學出版社,2002.
[9]譚浩強.C程序設計[M].北京:清華大學出版社,2000.
A
TP273
10.3969/j.issn.1001-8972.2012.14.055