基于ARM-Linux多功能機器人的設計
摘要:針對目前機器人技術普遍存在的成本高、功耗大、實時性差的缺點,采用性能高、成本低、功耗低的S3C2440芯片作為核心處理器,移植實時性較高的Linux操作系統(tǒng),以增強系統(tǒng)的實時性和可靠性,實現(xiàn)機器人的精確實時控制。并通過設計視頻采集模塊、語音識別模塊、無線傳輸模塊等功能模塊,使系統(tǒng)具有實時監(jiān)控、語音控制、無線傳輸等功能。
本文引用地址:http://butianyuan.cn/article/201609/304473.htm目前機器人技術已廣泛應用在太空探測、救災防爆、海洋開發(fā)等領域,但是其存在的成本高、功耗大、實時性差的問題一定程度上阻礙了機器人進入人們日常生活。ARM處理器是一種高性能、低成本、低功耗的RISC芯片,并移植功能強大、運行穩(wěn)定的Linux操作系統(tǒng)能使系統(tǒng)的成本、實時性、功耗等性能指標得以改善。
基于以上考慮,文中選用基于ARM處理器的嵌入式平臺,通過設計視頻采集模塊、語音識別模塊、無線傳輸模塊,構建一個相對完善的多功能機器人??蓱糜跓o人工廠、倉庫、服務機器人、未知路線探測和人類不能存在或長期存在等環(huán)境中。
1 系統(tǒng)總體設計方案
整個系統(tǒng)的設計分為硬件設計和軟件設計兩部分。系統(tǒng)的總體結構如圖1所示。硬件部分主要包括:控制器的選擇以及控制器與外圍設備的接口電路,采用模塊化設計,主要包括電源模塊、電機驅動模塊、視頻采集處理模塊、語音通信模塊等。系統(tǒng)軟件以Linux操作系統(tǒng)作為開發(fā)平臺,設計各功能模塊具體程序以及設備的驅動程序等。
1.1 系統(tǒng)硬件設計
1.1.1 主控制板
ARM嵌入式處理器是一種高性能、低功耗的RISC芯片,具有性能高、成本低和功耗低的特點,不僅能完成控制功能,對運算速度要求較高的場合也能適用,還能運行如Linux、WinCE等復雜的操作系統(tǒng)。ARM微處理器正迅速成為多媒體數(shù)字消費、手持設備、便攜式通信設備以及嵌入式解決方案市場中RISC批量生產的標準。
主控制板采用TQ2440開發(fā)板作為系統(tǒng)控制和數(shù)據(jù)處理的硬件平臺,開發(fā)板的主控制芯片S3C2440主頻400MHz,性能好、功耗低、體積小、接口豐富,是三星公司生產的一款基于ARM920T核的16/32位RISC微處理器。
TQ2440開發(fā)板具有LCD控制器、64MB Nand Flash、64MB SDRAM控制器、一個UART擴展接口、一個五線異步串行接口、RJ45網(wǎng)絡接口、DM 9000E 100M網(wǎng)卡芯片、CMOS攝像頭接口、觸摸屏接口等,支持WinCE、Linux等操作系統(tǒng)。
1.1.2 視頻采集模塊
圖像采集設備采用OV9650 CMOS攝像頭模塊,130萬像素,最高分辨率可達1 300x1 028,敏感度高、功耗低,成像清晰,支持多種圖像格式,支持自動圖像控制,適用于手持設備、攝像監(jiān)控設備,并且與TQ2440開發(fā)板完全配套。
1.1.3 電機驅動模塊及電機
系統(tǒng)采用了L298電機驅動模塊,驅動電壓為2~46 V,峰值電流為2 A,最大功率可達80 W,同時支持PWM調速;采用FAULHABER空心杯減速電機,工作電壓為12 V,空載轉速為8100RPM,減速后速為120 RPM,輸出功率為17 W。
1.2 系統(tǒng)軟件設計
系統(tǒng)軟件主要包括移植Linux操作系統(tǒng),設備驅動的編寫,基于V4L的視頻采集程序設計,嵌入式Web服務器的設計、語音控制系統(tǒng)的設計等。
1.2.1 嵌入式Linux環(huán)境的建立
嵌入式操作系統(tǒng)具有處理能力強、體積小、性能強、功耗低、可靠性高等突出的特征,目前已在消費電子、網(wǎng)絡通信、軍事國防、工業(yè)控制等領域得到廣泛應用。Linux系統(tǒng)源代碼開放、內核可裁減性強,具有良好的移植性,且集成了TCP/IP協(xié)議,有較好的網(wǎng)絡功能,因此選用Linux嵌入式系統(tǒng)作為整個系統(tǒng)軟件開發(fā)的平臺。
先安裝虛擬機,在虛擬機上安裝內核版本為2.6.30的Fedora 10 Linux操作系統(tǒng),交叉編譯uboot、kernel、cramfs文件系統(tǒng),在配置菜單中選擇相應的配置后編譯內核,得到內核鏡像文件.zImage,將其下載至開發(fā)板并完成對宿主機的tftp、nfs服務的配置后,即可控制和調試開發(fā)板。
1.2.2 攝像頭驅動
使用的Linux版本支持OV9650攝像頭模塊,只需在Linux Kernel中添加對模塊的支持即可成功驅動設備。通過CAMIF接口將OV9650攝像頭連接到開發(fā)板,設備的驅動程序可直接控制攝像頭并進行數(shù)據(jù)的傳輸。
將OV9650的驅動程序載入內核時要先對其內部寄存器進行初始化操作,目的是申請所需資源并設置相關的設備;設備成功初始化之后開始進行圖像的采集。完成圖像采集過程后釋放初始化時申請的資源,然后退出并關閉設備,完成采集工作。
1.2.3 無線網(wǎng)卡驅動
無線網(wǎng)卡選用Ralink Rt2870 Wireless LAN Card,通過USB HOST接口將其連接到開發(fā)板,無線協(xié)議棧的接口由設備驅動提供。由于USB總線首先被CPU檢測到,其次才是無線網(wǎng)卡芯片,因此需要在完成Linux操作系統(tǒng)下USB的驅動后再進行無線網(wǎng)卡芯片的驅動,并且在初始化網(wǎng)卡時需先向USB子系統(tǒng)進行注冊,判斷網(wǎng)卡是否接入系統(tǒng)。無線網(wǎng)絡的軟、硬件層次結構圖如圖2所示。
將USB HOST設置為內核模式,重新編譯內核后下載至開發(fā)板,啟動開發(fā)板,插入并掛載U盤。將Ralink Rt2870 Wireless LAN Card驅動保存到Linux目錄并解壓,進入到解壓之后生成的文件夾,修改驅動源碼根目錄下的Makefile文件后編譯驅動,生成.ko文件。將.ko文件復制到文件系統(tǒng)的/tmp目錄下,重啟開發(fā)板,進入文件系統(tǒng)后利用insmod命令將模塊加載至內核,完成對設備的驅動。之后插入USB無線網(wǎng)卡,通過#ifcontig ra0 up命令激活無線網(wǎng)卡,其中ra0為網(wǎng)卡接口。完成激活后對無線網(wǎng)絡進行配置,配置完成后,打開瀏覽器,輸入無線網(wǎng)絡的賬號、密碼即可實現(xiàn)網(wǎng)絡連接功能。
2 功能模塊的設計
2.1 基于V4L視頻采集模塊的設計
V4L是Linux操作系統(tǒng)為視頻設備專門提供的應用程序接口,也是系統(tǒng)對視頻設備在內核層次上的驅動。通過標準的系統(tǒng)調用就可操縱視頻設備,完成打開設備、讀寫設備和關閉設備等操作。通過make memuconfig命令進入內核配置菜單,在Multimedia devices子菜單中選中Video for Linux,完成內核中對V4L模塊的加載。
評論