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