阮文進
【摘要】 隨著嵌入式技術的飛速發(fā)展,嵌入式系統(tǒng)已經在各個領域有廣泛的應用。本設計采用嵌入式ARM9模塊化設計實現智能小車多功能控制。在三星S3C2440 ARM芯片上移植嵌入式Linux操作系統(tǒng),修改驅動程序來實現小車的控制。該小車主要功能模塊有:主控模塊,直流電機驅動模塊,圖像采集處理模塊,數據傳輸模塊,超聲波測距模塊,紅外避障模塊,舵機模塊等組成。
【關鍵詞】 嵌入式 智能小車 ARM9 S3C2440
一、引言
現代的電子信息不斷發(fā)展,智能移動機器人已經成為熱門,是現在自動化發(fā)展趨勢。本文設計出一種基于 ARM9的智能小車控制系統(tǒng),具有直流電機控制效率高,有友好的人機界面簡化了控制和開發(fā)過程,模塊化設計方案便于智能小車的功能擴展和升級。系統(tǒng)采用無線控制智能小車,通過Android手機以WiFi通信方式控制小車模型的行駛方式,小車還裝監(jiān)控攝像頭,超聲波模塊實現無線監(jiān)控,自動行駛。
二、嵌入式智能小車整體功能
智能小車有如下功能:小車底盤采用四輪結構,直流電機控制小車行駛,舵機控制攝像頭旋轉方向,紅外避障功能,超聲波測距功能,圖像采集,壓縮,傳輸功能,攝像頭拍到的視頻進行壓縮處理并通過WiFi模塊傳輸到手機上,手機也可以拍照并把圖片保存到手機中。
三、嵌入式智能小車控制系統(tǒng)設計
1、主控模塊??刂葡到y(tǒng)的主控制器采用三星公司 S3C2440為處理器[3],主頻為400MHZ,S3C2440采用ARM920T內核。主控制器包括核心板和底板,核心板上有S3C2440A、SDRAM存儲電路、Nor Flash、Nand Flash,系統(tǒng)時鐘,電源等。底板包括一些擴展電路模塊如:串口,網口,usb接口等。主控模塊是智能小車的控制中樞,所有的應用程序、智能系統(tǒng)、硬件驅動都是在這個開發(fā)板上開發(fā)的。它負責直流電動機調速控制信號,超聲波測距信號,舵機旋轉控制,圖像采集,處理與無線通信信號等,從而實現各功能模塊的協調控制。
2、外設控制模塊。1)電機驅動模塊。采用H橋電路來驅動直流電動機,以L298N芯片為主的電機驅動電路。對電機的調速采用PWM調速方法配合橋式L298N電路實現直流電機調速非常簡單,范圍大。通過開發(fā)板的GPIO接收輸入信號,改變芯片控制端的電平,即可對兩個左右電機進行正反轉,停止等操作從而實現小車的前進,后退,左轉,右轉,停止功能。2)小車底盤。本智能小車為了實現前進,后退,左轉,右轉,爬波等功能所以采用路虎5的底盤,配有兩個WD電動機和兩條履帶。底盤參數如下:尺寸:245mm*225mm*74mm(長*寬*高);電機電壓:7.2V;工作電流:160-180 mA;最大速度:30 cm/s;行駛速度:1Km/hr;爬坡能力:> 30°等。3)舵機。為了攝像頭能自由轉動以便觀察更多的區(qū)域,本系統(tǒng)采用兩個舵機分別是輝盛MG955和輝盛SG90。它是一種位置伺服的驅動器,具有力矩大和工作速度快可以讓攝像頭的角度不斷變化并能夠保持控制系統(tǒng)。4)電源電路。電源電路是給小車上的所有元器件和開發(fā)板提供電壓的,在驅動電路板上,使用7.4V1000MA 的鋰電池作為電源,芯片 LM2596s 給 GEC2440發(fā)開板供電,LM7805 給舵機和超聲波供電。
3、避障監(jiān)測模塊。智能小車超聲波模塊采用 三個 HCSR04超聲波測距模塊,可提供 2cm-400cm的非接觸式距離感測功能;模塊包括超聲波發(fā)射器,接收器與控制電路。超聲波測距借助于超聲脈沖回波渡越時間法測距實現的。采用IO口TRIG觸發(fā)測距,給最少10ms高電平。模塊自動發(fā)送8個40khz的方波,自動檢測是否有信號返回,有返回輸出一個高電平。傳感寄到目標物體的距離 D 可以從傳感器發(fā)出到接收經歷時間 T和超聲波空氣的傳播速度C算出來:D= TC /2。小車有及時的辦法躲避障礙物從而保證小車行駛安全。
4、圖像采集處理模塊。運用S3C2440 的GPIO接口編程通過CMOS攝像頭發(fā)送指令采集圖像,通過壓縮,裁剪處理以指定的格式下保存到指定的文件夾中,并利用無線WiFi傳輸到遠程縮主機上實現遠程監(jiān)控。通過S3C2440的GPIO接口控制ov9650攝像頭采集圖像,因為攝像頭采集到的是16bit的rgb流,libjpeg庫提供的壓縮程序將其壓縮并保存成jpg文件,可是該庫只能壓縮24位的,于是先將RGB565轉換成RGB24再調用該庫的壓縮函數壓縮成所需的jpeg圖片,最后保存無線通訊終端,實現遠程訪問。
四、智能小車控制軟件設計
4.1 Linux系統(tǒng)移植及文件系統(tǒng)制作
首先搭建Linux嵌入式系統(tǒng)開發(fā)環(huán)境;要運行在一塊開發(fā)板上的 Bootloader 程序能夠運行在另一塊開發(fā)板上,需要修改 Bootloader 的源程序以適應自己的開發(fā)板,所以要進行Bootloader引導程序的配置和移植,通過Bootloader 來初始化硬件如:內存,flash,網卡,時鐘等;內核,即操作系統(tǒng)。它為底層的可編程部件提供服務,為上層應用程序提供執(zhí)行環(huán)境。把linux-2.6 內核進行配置核移植 引導內核啟動,初始化環(huán)境,把系統(tǒng)集成的LCD,網卡,串中,Flash集成到鏡像文件zImage 或uImage。最后進行文件系統(tǒng)設計,制作基本系統(tǒng):bash, init, busybox,基本工具,基本庫,基本配置文件和自定義或需要移植的相關文件。
4.2驅動程序開發(fā)
驅動是用來控制底層硬件工作,并為上層(應用程序提供相應的接口,可通過調用這些接口實現對底層硬件的一系列操作)。主要的驅動程序要設計有:1、car_driver.ko 是對小車的行走方面進行操作的驅動;2、GEC2440_pwm.ko 是對小車上的舵機云臺進行控制的驅動;3、Csb.ko 是用來測試小車與障礙物之間距離的超聲波模塊驅動;4、GEC2440_ camera.ko 主要是用來采集攝像頭的原始圖像數據的驅動;5、rt3070ap.ko rtnet3070ap.ko rtutil3070ap.ko 這三個. ko 文件為無線網卡的驅動。
4.3應用程序開發(fā)
下位機ARM部分先啟動,主要是負責接收客戶端發(fā)送過來的命令,根據命令進行一系列的動作控制,并可以在不同的用戶之間進行切換。自定義的C主控程序開發(fā)部分實現:接收上位機發(fā)送過來的命令,行走控制,云臺轉動,視頻采集,避障控制,數據處理,提供網絡訪問服務,手動控制模式和自動避障模式切換,并顯示在UI屏幕上。視頻服務程序部分通過移植開源源碼包mjpg-streamer來實現數據發(fā)送,把攝像頭的數據傳遞到手機端;上位機手機作為客戶端通過Android程序開發(fā)實現遠程控制小車的行進方向,獲取視頻數據。采用TCP 網絡傳輸協議,服務器和客戶端的數據傳輸。網絡編程部分主要包括阻塞I/O處理,多路復用,信號驅動套接字socket等內容。
五、智能小車運行檢測
小車在實驗室條件下對整個系統(tǒng)進行測試,首先配置手機WiFi的IP地址和網關,打開設置好的Android軟件進入主界面再進入小車控制界面。智能小車有兩種駕駛模式:手動駕駛模式通過觸摸手機屏幕上顯示的圖標來控制小車前進,后退,左轉,右轉,停止功能,攝像頭旋轉,抓拍圖片和接換到自動模式,也可以通過手機的重力感應來控制手機的行駛方向;自動駕駛模式通過超聲波模塊來測距并有及時的策略來躲避障礙,保證小車準確行駛。通過測試智能小車運行平穩(wěn),實時性好,完成任務準確。
六、結論
該智能小車采用手機重力感應控制使得小車和人交互帶來方便,高清度的超聲波模塊保證系統(tǒng)行駛安全。采用功能強大的 ARM嵌入式系統(tǒng)與智能控制,嵌入式對智能小車的控制系統(tǒng)進行模塊化設計,有利于小車功能的進一步升級和改進,提高了系統(tǒng)設計效率。本系統(tǒng)可以作為移動機器人可以應用作為智能玩具,競賽機器人,偵探小車。
參 考 文 獻
[1] 李磊,葉濤,譚民,等. 移動機器人技術研究 現狀與未來[J].機器人,2002
[2] 魯濤,原魁,朱海兵. 智能輪椅研究現狀及發(fā)展趨勢[J].機器人技術與應用,2008