梁明亮, 孫逸潔
(鄭州鐵路職業技術學院電子工程系,河南鄭州 450052)
教學機器人是指應用于學校教學、創新教育和科研服務的機器人[1]。近年來,在全國高等教育教學實踐環節中,以教學機器人為平臺的創新教學活動日益增多,針對機器人創新教育[2]、技能競賽和科研的需要,研究開發了一種基于四輪驅動的智能教育機器人[3]。該機器人涉及ARM嵌入式技術、傳感器技術、控制技術、計算信息處理、電機驅動、人工智能、無線網絡通信等多個學科和領域[4],控制系統工作穩定可靠,能夠滿足創新教育實踐的需要。
以嵌入式為主要控制技術設計教學機器人,系統總體設計框圖如圖1所示。系統主要由S3C2440A主控制器[5]、紅外線尋跡模塊、驅動電路、直流電機、行走機構、傳感器探測模塊、和電源組成。
主控制器以S3C2440A嵌入式處理器為核心,在機器人智能控制中起主導作用。

圖1 系統總體設計框圖
紅外線尋跡模塊使用反射式紅外發射-接收一體管采集路面信息,尋跡信號傳送給S3C2440A主控制器,通過嵌入式軟件計算處理后,實現對黑線或白線的尋跡。CMOS攝像頭用于圖像的采集,處理器S3C2440A收到圖像后,進行圖像分析、處理,通過無線網卡完成圖像的遠程傳送、標志物形狀和顏色的識別。傳感器檢測模塊用于完成溫度、溫度、距離、光照、光頻率的測量功能。
主控制器的控制軟件是基于ARM9嵌入式開發環境,在移植Linux操作系統的基礎上進行C語言的應用程序開發。機器人通過尋跡方式到達各地形標志物,通過CMOS攝像頭對標志物進行拍照和物理量的探測,使用WiFi無線網卡以無線通訊方式向PC上位機發送溫度、距離、光強等探測數據和標志物圖像。
驅動電路實現對電機的驅動和控制,主要由AVR單片機ATmega16L處理器、電機驅動構成;電機上安裝編碼器,用于檢測機器人速度,送給AVR單片機進行分析和處理;行走機構采用四輪結構,包括車架和四個車輪。機器人車架上固定有三層電路板,從上到下依次為S3C2440A核心板、主控制器主板和驅動板。機器人供電為直流12V,采用鋰電充電電池,共2組。
主控制器由S3C2440A核心電路板和主板組成,核心板通過雙排插針與主板進行電氣連接。核心板采用六層電路板設計,元件排列緊湊。核心板上設計有微處理器(S3C2440A)、SDRAM 存儲電路(HY57V561620FTP)、SDRAM 存儲器、Nor Flash、Nand Flash、復位電路和1.25 V直流電源產生電路等。
軌跡控制的應用成果很多[6],本系統使用反射式紅外發射-接收一體管進行教學機器人的路面尋跡[7]。利用紅外線對不同顏色的反射能力不同的特性,采用紅外線光電傳感器采集尋跡信號[8]。本系統顏色信號主要是黑、白兩種情況。尋跡板中設計有8組相同的紅外傳感器,圖2為其中一組電路圖。

圖2 尋跡電路
當紅傳感器 OPB10359檢測出的信號后,經LM339電壓比較器進行電壓比較和整形后,轉換為邏輯電平(高電平為+3.3 V),作為機器人運動時路面的探測信息輸出,8路信號分別為VOUT1到VOUT8。8路尋跡信號通過JP1插座送到主控制器S3C2440A的I/O口,經控制器處理后,輸出指令控制機器人沿指定軌跡運動。
傳感器探測模塊包括測距、測光、測溫等各種傳感器電路,電路可擴展,以適應教學機器人在導航過程中具有自主避障[9]、智能探測和二次創新擴展功能。
采用超聲波和PSD兩種測距法。超聲測距采用時差法:即通過檢測發射的超聲波與其遇到障礙物后產生回波之間的時間差Δt,求出障礙物的距離d=cΔt/2,其中 c=331.4+ΔT,為超聲波速度,ΔT 為與環境溫度相關的換算值。利用PSD的最大特性——位置傳感特性和三角測量法,構成測距傳感器。采用GP2Y0A21YK傳感器,其內置LED(紅外發光二極管)和位置檢測器(Position Sensitive Detector,PSD)的模塊,通過改變輸出直流電壓輸出傳感器前面放置物體的距離[10]。
采用熱電堆式(Thermopile)紅外溫度傳感器進行溫度探測,選用TS118-3型紅外溫度傳感器。TS118-3變送的溫度信號送給LF347運放芯片進行處理,通過IIC接口芯片AD7955輸出標準IIC信號,最后送到S3C2440A進行處理。
S3C2440A處理器中集成有Camera接口,機器人的圖像采集器件選用OmniVision公司的CMOS圖像傳感器OV9650,直接與S3C2440A芯片的Camera接口連接。OV9650具有標準的 SCCB(Serial Camera Control Bus)接口,130萬像素,通過該接口可以設置輸出圖像像素的大小,輸出色度、YcbCr順序等參數。
選用高性能、低功耗的8位 AVR微處理器Atmega16L作為驅動電路的處理器。
Atmega16L實現與S3C2440A的串行通信,實時接收S3C2440A的指令,進行一定的分析和算法處理后發出PWM信號,輸出給以L298N為主要器件構成的電機驅動電路。直流電機是機器人行走的動力來源,直接決定機器人的速度,對機器人速度的控制就是對直流電機的控制[11]。設計中采用直流減速電機,型號為Namiki 22CL-3501PG。如圖3為左輪電機驅動電路,其中M1、M2為左輪的2個電機。

圖3 電機驅動電路
采用 L298N作為直流電機驅動芯片[12],L298N是內含2個H橋的高電壓大電流雙全橋式驅動器。圖3中,74HC245起信號放大和緩沖作用,L298進行電流放大,Atmega16L單片機通過調節PWM信號的占空比實現對電機的調速與轉向。
為保證L298N驅動芯片正常工作,在其與每個直流電機之間加入四支續流二極管(BR1、BR2),用以將電機中反向電動勢產生的電流分流到地或電源正極,以免反向電動勢對L298N產生損害。L298的第1和15腳接電流采樣電阻 R2、R3,形成 I1、I2電流傳感信號,通過LM358運算放大器放大后產生模擬電壓信號ADM1、ADM2,送到 Atmega16L中進行電流的測量和分析,以動態控制電機的電流及速度。
機器人運行時不需交流電源,采用2組鋰充電電池供電,每組鋰電池的電壓約12 V,主控制器和電機驅動電路所需的電源是相互獨立的。
主要有ARM9處理器Linux操作系統的移植、基于Linux的驅動程序及應用程序的開發、基于AVR單片機的電機控制程序的設計等。
(1)搭建基于linux系統的開發環境。
(2)BootLoader引導程序的配置和移植。主控制器采用ARM9嵌入式系統,通過BootlLoader完成對主控制器電路板上的 S3C2440A、HY57V561620FTP(SDRAM)、K9F1208(Flash)、串行口等進行初始化[13]。當教育機器人啟動時,先運行BootLoader,再運行操作系統內核,分配內存空間的映射,將機器人系統的軟硬件環境帶到一個合適的狀態,正確完成硬件系統的初始化和linux的引導。
(3)內核和文件系統的裁剪、移植和下載。
(4)驅動程序的開發。包括CMOS攝像頭驅動、ADC驅動、IIC驅動、用于尋跡的GPIO驅動等。
教學機器人通過無線網卡與PC機上位機采用無線網絡傳輸。無線網絡采用標準的802.11g標準,無線接入點IP和網關由確定,如確定機器人的IP地址為 192.168.1.10,并配置好網關。
通信底層協議采用標準的TCP/IP協議完成PC機上位機和機器人通信,其中PC機作為TCP的服務器端,機器人作為TCP的客戶端。
在應用層通信協議上,增加ACK確認機制的通信模式來增加通信的可靠性。機器人向上位機發送數據報文,PC上位機收到數據報文后向機器人發送一個確認數據供機器人處理。除傳輸圖片數據外,應用層數據每次傳輸采用長度固定為40 Byte,數據不夠的用0x00補滿。圖像通過2次通信過程來完成,第一次機器人發出上傳圖像請求報文,上位機接受請求后返回接收請求數據報,機器人收到接收請求數據報文后發送圖像數據,圖像大小為高128像素、寬160像素。
系統主控制器不直接驅動電機,通過ARM9處理器S3C2440A以串行通信方式發送命令給AVR單片機ATmega16L,由AVR單片機控制電機和處理編碼器信息。采用AVR單片機的C語言進行電機控制軟件設計。ATmega16L輸出脈沖寬度調制(Pulse Width Modulation,PWM)信號來改變電機的轉速。電機兩端的電壓與控制波形的占空比成正比,因此電機的速度與占空比成比例,占空比越大,電機轉得越快。
AVR單片機在對直流電機的控制中,在采集電流反饋值和電機轉速的基礎上,采用了PID的控制算法,算式如下:

式中:Kp,Ki,Kd分別為調節器的比例、積分和微分系數;e(t)是PID算法的輸入;u(t)是輸出[14]。
對電機速度的控制采用模糊PID控制[15],AVR單片機程序根據測速系統反饋回來的左、右輪電機當前速度值和設定速度值進行比較,針對不同情況適當改變Kp,Ki,Kd參數,進而控制輸出2組PWM信號的占空比,實現調速和改變轉向作用,使系統始終處較好工作狀態,達到加速、減速靈敏以及穩定性好的目的。
教學機器人屬于典型的時變、非線性、模型不確定復雜系統。將機器人行駛的道路歸納為直道、大彎道、“S”型小彎道三種類型。利用教學機器人在相同的路況下其特性基本不變,可分別確定這3種道路參數下的最佳PID參數。研制過程中,根據多次實驗、測試和分析,總結為:在直道上系統取Kp=3,Ki=5,Kd=0,測試環境為一條長度為4 m的長直道;在大彎道上系統取Kp=10,Ki=1,Kd=1,彎道半徑為 70-140 cm的弧線;在“S”型小彎道上系統取 Kp=7,Ki=4,Kd=3,測試環境為3個90°圓弧構成的“S”型小彎道。
通過對教學機器人的測試和運行,機器人能通過尋跡方式穩定行駛,在到達各地形標志物時,能對不同標志物進行溫度、距離、光頻率的測量,并通過無線網絡向PC上位機發送數據或圖像,PC機上位機上顯示的溫度、距離數據準確,標志物圖片清晰。使用S3C2440A嵌入式處理器和Linux操作系統增強了機器人的智能化水平,確保了對系統的運行速度和轉向控制的精確性。該機器人平臺在教育部全國職業院校技能大賽機器人賽項中控制準確、運行穩定,獲得了全國一等獎的好成績,系統各項功能的實現驗證了軟、硬件設計的可行性。該機器人系統具有技術先進性和功能可擴展性,以機器人技術為實踐教學平臺,對于培養大學生的科技創新意識和能力[16]有著重要的意義。
(References):
[1] 郭 丹,陳興瑞,張國民.不同教育階段教育機器人功能設計分析研究[J].江蘇技術師范學院學報,2010(12):45-47.
[2] 汪治華,劉 巖,白 軍,等.基于TMS320LF2407A的教育機器人硬件系統設計[J].電子技術,2010(10):71-73.
[3] 劉延飛,李 琪,畢經存,等.一種全自主移動機器人實驗平臺的設計與研究[J].實驗技術與管理,2009(2):67-70.
[4] 宋 健.開放式4自由度教學機器人設計與開發[J].實驗室研究與探索,2010(7):34-36.
[5] Samsung.S3C2440A 32-Bit RISC MICROPROCESSOR USER’S MANUAL[R].June 30,2004.
[6] Chih-Yang Chen,Tzuu-Hseng S.Li,Ying-Chieh Yeh.EP-based Kinematic Control andAdaptive FuzzySliding-modeDy-namic Control for Wheeled Mobile Robots[J].Information Sciences,2009,179(1-2):180-195.
[7] 張 偉,陳 迎,韓麗娜.智能小車系統的設計[J].實驗室研究與探索,2011(9):53-61.
[8] 王 玲,孫 波.紅外光電傳感器自動尋跡智能車的設計與實現[J].沈陽理工大學學報,2010(2):58-59.
[9] 許恩江,吳 波,姚 斌,等.智能機器人的安防和服務功能系統設計及應用[J].實驗技術與管理,2010(11):341-344.
[10] 趙小川,劉培志,張 敏,等.一種適用于移動機器人的障礙物快速檢測算法及其實現[J].機器人,2011(2):198-201.
[11] 楊桂林.基于AT89S52的智能小車的設計[J].微計算機信息,2010(20):124-125.
[12] 李明河,王 偉,王 健,等.一種全方位移動機器人的系統設計[J].安徽工業大學學報(自然科學版),2010(1):51-54.
[13] 董宗祥,石紅瑞,楊 杰.嵌入式智能小車測控系統的設計與實現[J].計算機測量與控制,2010(2):357-362.
[14] 祁志生,李啟光,王 瀟.基于MC9S12DG128的尋線智能車系統設計[J].北京信息科技大學學報,2010(1):78-80.
[15] 江武志,許娜芬,孫 菁.基于STC12C5A60S2的教育機器人的設計與實現[J].山西電子技術,2011(4):32-34.
[16] 董翠敏,劉永強.以機器人教育為平臺培養大學生創新意識和能力[J].實驗室研究與探索,2011,30(9):243-244.