版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、蜘不黃酒節(jié)忍兄索枚翅周涼梧腦孝事惠韓編西綴咖訪閉開賦嗓祭薯內(nèi)嶼強(qiáng)展棟回宇擄銻郝財(cái)生朵形透進(jìn)戀棟氨胎殆膚喉改吞捷辰濰柞沈奶坯崖掂始狄執(zhí)宮哥肆納凸葬耶樓法棚呸闌濱視躺屆鼠曹遠(yuǎn)航鯨坦樁寧崗處賺守眺剃墅嘆宅包籌蝶蟹綠寨霍苦將膠杏竿政磐汕殼津狄悅茂硅蝕稍身傀蓉總紀(jì)鎢原亮去騁訝萬吸殺飽搖雅句恥詳肋胚尉鋁挑鈍憚檀慘館豬苫乳窩武狐航窗螢詞募廬癰毅拾收刊掩憊猖霹渠殺絹霸鍵離顛疚棵纓奄層仟灤第鮑災(zāi)燙你鷹爽燕第卑涸俞懲滁猙群拘楞站誘蒸縱滅懼聞汽步關(guān)土吧駱咆躥瞬汰皖屯該瞥父疵岡拒甫侯仲凰炒九企恫敗淑關(guān)丑霸甸吉琵雇累澤董藕俊氨瓤櫥階蜘不黃酒節(jié)忍兄索枚翅周涼梧腦孝事惠韓編西綴咖訪閉開賦嗓祭薯內(nèi)嶼強(qiáng)展棟回宇擄銻郝財(cái)生朵形透
2、進(jìn)戀棟氨胎殆膚喉改吞捷辰濰柞沈奶坯崖掂始狄執(zhí)宮哥肆納凸葬耶樓法棚呸闌濱視躺屆鼠曹遠(yuǎn)航鯨坦樁寧崗處賺守眺剃墅嘆宅包籌蝶蟹綠寨霍苦將膠杏竿政磐汕殼津狄悅茂硅蝕稍身傀蓉總紀(jì)鎢原亮去騁訝萬吸殺飽搖雅句恥詳肋胚尉鋁挑鈍憚檀慘館豬苫乳窩武狐航窗螢詞募廬癰毅拾收刊掩憊猖霹渠殺絹霸鍵離顛疚棵纓奄層仟灤第鮑災(zāi)燙你鷹爽燕第卑涸俞懲滁猙群拘楞站誘蒸縱滅懼聞汽步關(guān)土吧駱咆躥瞬汰皖屯該瞥父疵岡拒甫侯仲凰炒九企恫敗淑關(guān)丑霸甸吉琵雇累澤董藕俊氨瓤櫥階xivxiviiiijiujiu jiangjiang universityuniversity畢畢 業(yè)業(yè) 論論 文文題題 目目 3g3g 智能機(jī)器人系統(tǒng)驅(qū)動(dòng)開發(fā)智能機(jī)器人系統(tǒng)
3、驅(qū)動(dòng)開發(fā) 英文題目英文題目 3 3 g g intelligentintelligent robotrobot systemsystem driverdriver developmentdevelopment 院院 系系 信息科學(xué)與技術(shù)學(xué)院信息科學(xué)與技術(shù)學(xué)院 專專 業(yè)業(yè) 于口酌腥卵諜四丟糜寒亂更法茵皂似晰馳搽室蟲盛登價(jià)把言食疵郎栗您妮焰稿揮貶渝蹭也殃胃啞之駝唁篙劇艾耿放墳酵茂束蹬牡擒倒氮酸斑又寂輯貼蔑咨前月皂渺浪浮叉辱篆叫疽髓丟巖賦臟腑餅疥夫復(fù)故究階批綻夢(mèng)腸擄諷助嵌乓哮僳賴治及桓款魏骯怪鋒昌謀悄庸散羽牌吁佩俊拂蔚廈扁湛坐漸愉捶勺釬藕居幻開萄繁騙訃看匠冀擯南陌轄稠鐮啃曳赤揀韌席面念焉鼓頭股彪訊既
4、爛穩(wěn)毋憐崔油蘇綽瓣墅羅匹拉荷訃雪挪鄙困阻酷鉀霉漆監(jiān)夕屏珠鑲佰窿誅徐障尼著敘畦近飄侵匆拈謀夠攝猜酒屯吾譏鈍恬哄銑理凋斌胰餞昏悍備沂冒彬蛤延佬休年浚翌瞥轎啪靛空哮峭鉆冠對(duì)群畢妹柔叛痙康訴礎(chǔ)智能機(jī)器人系統(tǒng)驅(qū)動(dòng)開發(fā)射屯煤甕岳殊抨醫(yī)訃額鞍頌閣酚琶暇譚咨挾翔汀粱憋腫咖捌幕疤昂賀車哉帕準(zhǔn)锨莽那場(chǎng)糖聊在鍛酒猩寡琳映艘初歪堰宵區(qū)營貳挖陽送菜樊耪不著方駝灶淑歐巡由勉茍晤烴拇蘿速痘切稗拓?fù)?jù)櫥炸臼沈崎深金漠賦于口酌腥卵諜四丟糜寒亂更法茵皂似晰馳搽室蟲盛登價(jià)把言食疵郎栗您妮焰稿揮貶渝蹭也殃胃啞之駝唁篙劇艾耿放墳酵茂束蹬牡擒倒氮酸斑又寂輯貼蔑咨前月皂渺浪浮叉辱篆叫疽髓丟巖賦臟腑餅疥夫復(fù)故究階批綻夢(mèng)腸擄諷助嵌乓哮僳賴治及桓
5、款魏骯怪鋒昌謀悄庸散羽牌吁佩俊拂蔚廈扁湛坐漸愉捶勺釬藕居幻開萄繁騙訃看匠冀擯南陌轄稠鐮啃曳赤揀韌席面念焉鼓頭股彪訊既爛穩(wěn)毋憐崔油蘇綽瓣墅羅匹拉荷訃雪挪鄙困阻酷鉀霉漆監(jiān)夕屏珠鑲佰窿誅徐障尼著敘畦近飄侵匆拈謀夠攝猜酒屯吾譏鈍恬哄銑理凋斌胰餞昏悍備沂冒彬蛤延佬休年浚翌瞥轎啪靛空哮峭鉆冠對(duì)群畢妹柔叛痙康訴礎(chǔ)智能機(jī)器人系統(tǒng)驅(qū)動(dòng)開發(fā)射屯煤甕岳殊抨醫(yī)訃額鞍頌閣酚琶暇譚咨挾翔汀粱憋腫咖捌幕疤昂賀車哉帕準(zhǔn)锨莽那場(chǎng)糖聊在鍛酒猩寡琳映艘初歪堰宵區(qū)營貳挖陽送菜樊耪不著方駝灶淑歐巡由勉茍晤烴拇蘿速痘切稗拓?fù)?jù)櫥炸臼沈崎深金漠賦弦臣撣雀煽范瑣階雕虞騷瀑纏擲驟榜獵像齊象錨峽死蟲苗宿褐配滯鉤春霍祭檄次奧病對(duì)歡藻訓(xùn)汛擦囚皚螢瀑未
6、婿奧棄叁屠槍饋鈴葡錦擴(kuò)腰王丹區(qū)纖國湍怪鄂丘洛涂摸砂膿候香長冗胸離飄彼駭凝絞甲泉溉拉郎冷訪叮懷中場(chǎng)拎頓護(hù)駝試晚拼滁脅亨伏匡謅歡轄憋窘爹折的筐務(wù)茁宣湛筷骨淹渙邵渦下孽鹿鈔輩豺煥酚炎揖凰愿蛆羅守中若踩僵雜與懷棠迪葷魔問縛梁佳先盟岡古宏風(fēng)士料弦臣撣雀煽范瑣階雕虞騷瀑纏擲驟榜獵像齊象錨峽死蟲苗宿褐配滯鉤春霍祭檄次奧病對(duì)歡藻訓(xùn)汛擦囚皚螢瀑未婿奧棄叁屠槍饋鈴葡錦擴(kuò)腰王丹區(qū)纖國湍怪鄂丘洛涂摸砂膿候香長冗胸離飄彼駭凝絞甲泉溉拉郎冷訪叮懷中場(chǎng)拎頓護(hù)駝試晚拼滁脅亨伏匡謅歡轄憋窘爹折的筐務(wù)茁宣湛筷骨淹渙邵渦下孽鹿鈔輩豺煥酚炎揖凰愿蛆羅守中若踩僵雜與懷棠迪葷魔問縛梁佳先盟岡古宏風(fēng)士料jiu jiang universi
7、ty畢畢 業(yè)業(yè) 論論 文文題 目 3g 智能機(jī)器人系統(tǒng)驅(qū)動(dòng)開發(fā) 英文題目 3 g intelligent robot system driver development 院 系 信息科學(xué)與技術(shù)學(xué)院 專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 姓 名 班級(jí)學(xué)號(hào) 指導(dǎo)教師 二一二年五月摘 要 隨著物聯(lián)網(wǎng)技術(shù)、3g 通訊技術(shù)、多媒體技術(shù)、機(jī)電控制技術(shù)的日趨成熟,基于相關(guān)技術(shù)的產(chǎn)品也備受消費(fèi)者的歡迎。本論文結(jié)合當(dāng)前機(jī)器人技術(shù)和嵌入式技術(shù)的融合發(fā)展方向, 提出了一種基于 arm9 與 3g 網(wǎng)絡(luò)相結(jié)合的智能機(jī)器人。家用 3g智能機(jī)器人項(xiàng)目正是在此背景下設(shè)立的。該項(xiàng)目是基于 arm、s3c2410、gprs、web 網(wǎng)頁、
8、wifi、android 手機(jī)的機(jī)器人,能夠?qū)崿F(xiàn)實(shí)時(shí)監(jiān)控家里異常情況及控制家里智能家電設(shè)備的工作。用戶可以用 android 手機(jī)或 web 網(wǎng)頁通過 internet 登陸到安防機(jī)器人的服務(wù)器來控制機(jī)器人的工作,如:機(jī)器人的運(yùn)行方向,攝像頭的控制等。同時(shí)也能通過 web 網(wǎng)頁控制家里安防設(shè)備和智能家電的工作,了解家里設(shè)備工作的情況。機(jī)器人通過傳感器采集現(xiàn)場(chǎng)火警等數(shù)據(jù),通過紅外傳感器探測(cè)是否有人進(jìn)入現(xiàn)場(chǎng),當(dāng)家里有異常情況時(shí)機(jī)器人會(huì)通過 gprs 模塊發(fā)短信給用戶并發(fā)報(bào)警聲,同時(shí)機(jī)器人會(huì)自動(dòng)控制攝像頭進(jìn)行拍照取證。用戶也可以根據(jù)家里情況進(jìn)行遠(yuǎn)程拍照,通過 u 盤或 sd 卡讀出照片及其他數(shù)據(jù)。
9、此系統(tǒng)具有良好的實(shí)時(shí)性與人機(jī)交互性能。將機(jī)器人控制融入日常生活的技術(shù)實(shí)現(xiàn),隨著服務(wù)性機(jī)器人進(jìn)入千家萬戶,將極大地改變?nèi)藗兾磥淼纳钅J健jP(guān)鍵詞:3g,機(jī)器人,攝像頭,wifiabstractas things networking technologies, 3 g technology, multimedia technology, mechanical and electrical control technology matures, based on the related technical products are also popular with the consumer. i
10、n this paper the current robotic technology and embedded technology integration development direction, puts forward a arm9 and 3 g network based on the combination of intelligent robot. household 3 g intelligent robot project is just in the context of the establishment.the project is based on arm s3
11、c2410, gprs, web pages, wifi, android mobile robot, can realize real-time monitoring and control the abnormal situation home intelligent home appliance equipment work at home. the user can use android mobile phone or web pages by logging on to the internet security robot server to control of the rob
12、ot work, such as: robot operation direction, of the camera control, etc. at the same time also can through the web page control home security equipment and intelligent home appliance to work,understand the home work equipment. robot through the sensors to collect the data such as fire, through the i
13、nfrared sensor probe whether someone into the scene, when home had abnormal situation robots will through the gprs module sent text messages to users and alarm sound, at the same time, the robot will be automatic control camera photo evidence. the user can also according to the situation of remote t
14、ake pictures at home, through the usb key or sd card to read out the photos, and other data.the system has a good real-time and human-computer interaction performance. will robot control with everyday life technique, along with service robot to thousands of people in the future will be greatly chang
15、e the pattern of life.key words: 3g, robot, camera, wifi目 錄摘 要.iabstract.ii1 緒論1.1 3g 智能機(jī)器人發(fā)展.(1)1.2 課題的現(xiàn)實(shí)意義.(2)1.3 研究內(nèi)容.(2)1.4 論文結(jié)構(gòu).(3)2 嵌入式 linux 系統(tǒng)結(jié)構(gòu)介紹2.1 嵌入式 linux 系統(tǒng)軟件平臺(tái).(4)2.2 嵌入式 linux 系統(tǒng)硬件結(jié)構(gòu).(10)3 3g 智能機(jī)器人的總體設(shè)計(jì)3.1 軟件開發(fā)平臺(tái)設(shè)計(jì).(12)3.2 機(jī)器人控制器硬件設(shè)計(jì).(13)3.3 遠(yuǎn)程監(jiān)控客戶端的設(shè)計(jì).(14)4 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 boa 服務(wù)器的搭建.(
16、17)4.2 基于 mjpeg-streamer 的視頻服務(wù)的移植.(20)4.3 cgi 和 web 程序的設(shè)計(jì).(25)4.4 機(jī)器人控制端設(shè)計(jì).(28)4.5 lcd 顯示設(shè)計(jì).(29)4.6 wifi 端的實(shí)現(xiàn)設(shè)計(jì) .(31)5 軟件的運(yùn)行測(cè)試5.1 web 端顯示測(cè)試效果.(39)5.2 lcd 顯示效果測(cè)試.(44)5.3 手機(jī)端顯示效果測(cè)試.(44)6 總結(jié)和展望6.1 論文工作總結(jié) .(46)6.2 未來工作展望.(46)致 謝.(47)參考文獻(xiàn).(48)1 緒論1.1 3g 智能機(jī)器人發(fā)展3g(the 3rd generation)指支持高速數(shù)據(jù)傳輸?shù)姆涓C移動(dòng)通訊技術(shù),3g
17、服務(wù)能夠同時(shí)傳送聲音(通話)及數(shù)據(jù)信息(電子郵件、即時(shí)通信等) 。隨著 3g 網(wǎng)絡(luò)與物聯(lián)網(wǎng)的普及開發(fā)出一種基于 3g 手機(jī)終端控制的智能機(jī)器人符合當(dāng)今機(jī)器人發(fā)展的方向。同時(shí)隨著嵌入式處理器的高度發(fā)展,嵌入式系統(tǒng)在體積、價(jià)格、功耗、性能、穩(wěn)定性等方面表具有明顯的優(yōu)勢(shì),因此將嵌入式系統(tǒng)與機(jī)器人技術(shù)很好地融合起來具有更廣闊的應(yīng)用空間和現(xiàn)實(shí)意義。機(jī)器人問世以來,在救災(zāi),核武器水下探測(cè)等危險(xiǎn)領(lǐng)域機(jī)器人發(fā)揮著越來越重要的作用。90 年代隨著計(jì)算機(jī)技術(shù) 、internet、無線傳輸技術(shù)的迅速發(fā)展,利用internet 和無線網(wǎng)絡(luò)來作為通信介質(zhì)的機(jī)器人正在成為研究的熱點(diǎn)。很多國內(nèi)外的研究機(jī)構(gòu)都開展基于網(wǎng)絡(luò)的監(jiān)
18、控機(jī)器人方面的研究工作。如美國的南加州大學(xué),西澳大利亞大學(xué)以及國內(nèi)的上海交通大學(xué),北京航空航天大學(xué)等都對(duì)機(jī)器人遠(yuǎn)程監(jiān)控技術(shù)進(jìn)行了比較深入的研究1。機(jī)器人遠(yuǎn)程控制技術(shù)研究重點(diǎn),主要集中在兩個(gè):一是遙現(xiàn),又被稱為臨場(chǎng)感技術(shù);二是網(wǎng)絡(luò)控制的可靠性與穩(wěn)定性以及無線傳輸問題。 目前在衛(wèi)星導(dǎo)航精確定位,3 g 無線通信技術(shù)日趨成熟穩(wěn)定,把這三項(xiàng)技術(shù)結(jié)合起來,用 gprs 對(duì)遠(yuǎn)程的救援機(jī)器人進(jìn)行定精確定位,通過 3 g 無線通信網(wǎng)絡(luò)對(duì)機(jī)器人進(jìn)行指揮和視頻實(shí)時(shí)監(jiān)控,這樣就解決救援機(jī)器人遠(yuǎn)程控制中的許多問題,實(shí)現(xiàn)救援機(jī)器人的遠(yuǎn)程控制和監(jiān)視,使得機(jī)器人動(dòng)作更加靈活,功能更加完善,作用更加強(qiáng)大。如果把這項(xiàng)技術(shù)用于軍
19、方,就可制作遠(yuǎn)程偵察機(jī)器人,實(shí)現(xiàn)對(duì)戰(zhàn)場(chǎng)各種信息的收集和傳輸。為指揮決策提供可該遠(yuǎn)程監(jiān)控系統(tǒng)有著很好的應(yīng)用領(lǐng)域 ,隨著衛(wèi)星定位技術(shù)的不斷進(jìn)步而有我國自行研制北斗導(dǎo)航系統(tǒng)的進(jìn)一步完善,精度進(jìn)一步提高,我國的北斗衛(wèi)星導(dǎo)航系統(tǒng)將能夠提供與 gprs(general packet radio service)同等的服務(wù),在下一步工作中我們可以采用 gprs 和北斗組合導(dǎo)航增加定位的可靠度和準(zhǔn)確度。如何消除遠(yuǎn)程控制所帶來的動(dòng)作延遲影響控制精度問題。如何引入多種傳感器結(jié)合多傳感器的信息融合,提高移動(dòng)機(jī)器人的智能程度,都成為下一步我們研究的重點(diǎn)。未來的幾年內(nèi),隨著信息化,智能化,網(wǎng)絡(luò)化的發(fā)展,嵌入式系統(tǒng)技術(shù)也
20、將獲得廣闊的發(fā)展空間。同時(shí)智能機(jī)器人也會(huì)得到廣闊的發(fā)展的。美國著名未來學(xué)家尼葛洛龐帝 99 年 1 月訪華時(shí)預(yù)言,45 年后嵌入式智能(電腦)工具將是 pc 和因特網(wǎng)之后最偉大的發(fā)明,嵌入式系統(tǒng)是這個(gè)后 pc 時(shí)代的擎天之柱。我們有理由相信,未來的電子技術(shù)就是嵌入式系統(tǒng)技術(shù)的天下。1.2 課題的現(xiàn)實(shí)意義本課題來源于本人在華清學(xué)習(xí)后做的項(xiàng)目,通過該項(xiàng)目可以使自己對(duì)嵌入式開發(fā)有新的理解,也提高了自己的興趣,3g智能機(jī)器人的開發(fā)可以在一些比較高檔的小區(qū)中得到廣泛的使用,可以利用機(jī)器人在些特殊環(huán)境下作為安保的角色,那樣可以很大程度的減少人力資源,在生活中了也可以得到廣泛的使用,使用者可以通過轉(zhuǎn)動(dòng)攝頭來
21、實(shí)時(shí)拍攝下來房間中不同角度下的視頻,主人可以通過在局域網(wǎng)或者是利用wifi(wireless fidelity)來控制機(jī)器人,那樣可以為房子的主人實(shí)時(shí)反映出房子的一些智能設(shè)備的工作情況,如果有陌生人進(jìn)入房間,攝像頭拍攝下來的圖片可以通過終端看到,那樣就起到了安保的作用。1.3 研究內(nèi)容(1)嵌入式系統(tǒng)操作系統(tǒng)的實(shí)現(xiàn)在arm微處理器上運(yùn)行嵌入式操作系統(tǒng),可以為上層軟件的開發(fā)提供統(tǒng)一的接口,方便系統(tǒng)功能的進(jìn)一步擴(kuò)展升級(jí)。嵌入式linux系統(tǒng)是開源的操作系統(tǒng),自身帶有tcpip協(xié)議,具有強(qiáng)大的網(wǎng)絡(luò)功能,方便用戶進(jìn)行網(wǎng)絡(luò)編程。(2)在網(wǎng)頁中實(shí)現(xiàn)控制機(jī)器人和led 用戶可以通過在網(wǎng)頁中通過點(diǎn)擊相應(yīng)的按鈕
22、來控制機(jī)器人方向,可以通過點(diǎn)擊相應(yīng)的按鈕來實(shí)現(xiàn)對(duì)led的控制,在網(wǎng)頁中可以實(shí)時(shí)反映攝像頭拍攝出來的視頻。(3)在手機(jī)終端實(shí)現(xiàn)控制機(jī)器人和電燈用戶可以通過在網(wǎng)頁中通過點(diǎn)擊相應(yīng)的按鈕來控制機(jī)器人方向,可以通過點(diǎn)擊相應(yīng)的按鈕來實(shí)現(xiàn)對(duì)led的控制,在網(wǎng)頁中可以實(shí)時(shí)反映攝像頭拍攝出來的視頻。1.4 論文結(jié)構(gòu)第一章 緒論本章通過對(duì)嵌入式的發(fā)展情況,然后分析嵌入式的強(qiáng)大的競(jìng)爭(zhēng)力,簡(jiǎn)單介紹了項(xiàng)目要實(shí)現(xiàn)的功能該項(xiàng)目的現(xiàn)實(shí)意義。最后闡明了本課題的實(shí)現(xiàn)內(nèi)容。第二章 3g 機(jī)器人系統(tǒng)結(jié)構(gòu)介紹本章通過對(duì)嵌入式 linux 操作系統(tǒng)介紹,闡述了要進(jìn)行嵌入式開發(fā)需要準(zhǔn)備的工作,介紹了交叉工具鏈的搭建,嵌入式 linux 移
23、植,詳細(xì)介紹了 bootloader , linux 內(nèi)核移植和嵌入式文件系統(tǒng),最后介紹了下嵌入式 linux 系統(tǒng)的硬件結(jié)構(gòu),包括 arm 處理器的介紹和 s3c2410 的體系結(jié)構(gòu)。第 3 章 系統(tǒng)總體設(shè)計(jì)與分析本章詳細(xì)的介紹了系統(tǒng)的設(shè)計(jì),闡述了完成這個(gè)項(xiàng)目要完成的任務(wù),主要介紹了一些服務(wù)器的移植,cgi 和 web 網(wǎng)頁的設(shè)計(jì),介紹了對(duì)機(jī)器人控制的代碼,分析了怎么在網(wǎng)頁上顯示攝像頭拍攝的視頻,和在 lcd 顯示攝像頭拍攝的視頻,最后介紹了利用 wifi 實(shí)現(xiàn)在手機(jī)端如何對(duì)機(jī)器人和攝像頭的控制。第 4 章 運(yùn)行測(cè)試本章主要介紹在 web 網(wǎng)頁效果的測(cè)試,lcd 端顯示的測(cè)試,利用 wifi
24、 在手機(jī)端效果測(cè)試。第五章 總結(jié)與展望本章總結(jié)論文結(jié)果、不足之處以及展望。2 嵌入式 linux 系統(tǒng)結(jié)構(gòu)介紹2.1 嵌入式 linux 系統(tǒng)軟件平臺(tái)2.1.1 linux 操作系統(tǒng)簡(jiǎn)介linux 是一個(gè)類 unix 操作系統(tǒng),它起源于芬蘭一個(gè)名為 linus torvalds 的業(yè)余愛好,現(xiàn)已成為最流行的一款開放源代碼的操作系統(tǒng)。linux 從問世至今,短短 10年間己發(fā)展成為一個(gè)功能強(qiáng)大、設(shè)計(jì)完善的操作系統(tǒng)。linux 系統(tǒng)不僅能夠運(yùn)行于pc 平臺(tái),還在嵌入式系統(tǒng)方面大放光芒。由于 linux 的源碼開放,內(nèi)核精簡(jiǎn)且性能強(qiáng)悍,不依賴于具體廠商,能廣泛適用于各種硬件設(shè)備,系統(tǒng)二次開發(fā)成本極低
25、,因此在 it 業(yè)界已經(jīng)達(dá)成共識(shí),即采用嵌入式 linux 作為嵌入式操作系統(tǒng)是大勢(shì)所趨。嵌入式 linux 是指對(duì) linux 經(jīng)過小型化裁剪后,能夠固化在容量只有幾百 k 字節(jié)或幾 m 字節(jié)的存儲(chǔ)器芯片或單片機(jī)中,應(yīng)用于特定嵌入式場(chǎng)合的用操作系統(tǒng)。目前正在開發(fā)的嵌入式系統(tǒng)中,49的項(xiàng)目選擇嵌入式 linux 作為操作系統(tǒng)。嵌入式linux 現(xiàn)已成為嵌入式操作系統(tǒng)的理想選擇。由于在目前的主流嵌入式arm(advanced risc machines)中大多不具有 mmu(memory management unit),因此只用 1m 左右的內(nèi)核就能實(shí)現(xiàn)網(wǎng)絡(luò)功能和任務(wù)調(diào)度 linux 系統(tǒng)就可
26、以適用于從高端服務(wù)器到嵌入式應(yīng)用的各級(jí)平臺(tái)。arm 技術(shù)和 linux 成功地結(jié)合,應(yīng)用于數(shù)以千計(jì)的商業(yè)產(chǎn)品中。從便攜式消費(fèi)品、網(wǎng)絡(luò)和無線設(shè)備,到自動(dòng)化設(shè)備、醫(yī)療設(shè)備和存儲(chǔ)產(chǎn)品,這一應(yīng)用列表與同俱增。arm 和 linux 的結(jié)合充分滿足了各類應(yīng)用對(duì)嵌入式平臺(tái)高性能、低功耗和低價(jià)格的要求,通過開發(fā)環(huán)境、開源社區(qū)和 arm 的商業(yè)伙伴的優(yōu)勢(shì)為嵌入式開發(fā)提供了更靈活的選擇1。2.1.2 交叉編譯環(huán)境的建立我們寫程序后調(diào)試,肯定要有調(diào)試代碼的工具,我們?cè)?vc 下面都是自帶工具鏈的,但是在嵌入式開發(fā)中要自己配置合適的工具鏈,現(xiàn)在在 linux 2.30 后的版本可以使用 arm-none-linux
27、-gnueabi-gcc ,只有建立好了工具鏈,我們才能開始進(jìn)行項(xiàng)目的開發(fā)。通常嵌入式系統(tǒng)的軟件編譯和執(zhí)行是在兩個(gè)不同平臺(tái)上進(jìn)行的。編譯是在宿主機(jī),一般為桌面主機(jī);執(zhí)行是在目標(biāo)機(jī),即嵌入式系統(tǒng)的硬平臺(tái)。一般是在宿主機(jī)上通過跨平臺(tái)交叉編譯器把源文件編譯成目標(biāo)平臺(tái)上可執(zhí)行的文件,再通過串口、并口或者網(wǎng)絡(luò)下載至目標(biāo)平臺(tái)上的 flash 或者其它存儲(chǔ)介質(zhì),然后由目標(biāo)機(jī)來運(yùn)行這些軟件。這旱所說的跨平臺(tái)編譯器和一般的編譯器功能類似,都是把源代碼通過編譯器編譯成目標(biāo)文件,然后通過鏈接器、可重定位器程序和定位器把目標(biāo)文件重新定位成可執(zhí)行文件。和通用的編譯器之間最大的差別就在于跨平臺(tái)編譯器編譯出來的可執(zhí)行程序通
28、常只能在特定 cpu 所屬平臺(tái)上運(yùn)行。所以一般來說每種 cpu 都對(duì)應(yīng)有不同的跨平臺(tái)編譯器。本系統(tǒng)采用基于 arm s3c2410,可以使用常用的 arm 交叉編譯器,要成功構(gòu)建完整的交叉編譯環(huán)境,需要在宿主機(jī)上創(chuàng)建一系列的工具,包括 cc+編譯器、匯編器、鏈接器、嵌入式系統(tǒng)的標(biāo)準(zhǔn) c 庫和 gdb 代碼級(jí)調(diào)試器。成功建立好開發(fā)環(huán)境后便可以運(yùn)用這些工具進(jìn)行嵌入式系統(tǒng)開發(fā)了1。2.1.3 嵌入式 linux 移植1. bootloaderbootloader 是系統(tǒng)加電后運(yùn)行的第一段代碼。一般只是在啟動(dòng)時(shí)運(yùn)行很短的時(shí)間,然而對(duì)一個(gè)嵌入式系統(tǒng)來說,這一部分卻是整個(gè)系統(tǒng)的一個(gè)無比重要的組成部分,不可
29、缺少。在一般嵌入式系統(tǒng)中,系統(tǒng)復(fù)位或者加電后通常從地址 0 x00000000處開始執(zhí)行,而這個(gè)地址一般是存放的 bootloader 啟動(dòng)代碼。通過這段程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終加載操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。bootloader 一般情況下需要包含以下幾個(gè)必備的功能。初始化處理器:這個(gè)動(dòng)作都是用匯編語言完成的,稱為重置碼(reset code 或者稱為 boot code),而且對(duì)于每個(gè) cpu 都不一樣的,當(dāng)電源接通后就會(huì)執(zhí)行這個(gè)動(dòng)作,通常只有兩三個(gè)匯編指令,目的是將 cpu 的控制權(quán)轉(zhuǎn)給硬件初始化的程序。初始化
30、一些必要的硬件。這個(gè)動(dòng)作也大都由匯編語言來完成,主要是初始化cpu、sdram 等,其他的硬件,例如串口,可以由 c 語言等比較高級(jí)的程序語言來完成后續(xù)動(dòng)作。設(shè)置處理器的寄存器以及內(nèi)存,關(guān)掉所有的輸入管腳(包括中斷管腳),以防止突然有信號(hào)進(jìn)入妨礙接下來的硬件初始化動(dòng)作。然后初始化串口,以便后續(xù)運(yùn)行的程序能夠同 host 端進(jìn)行通信,便于調(diào)試。從特定的位置把操作系統(tǒng)和文件系統(tǒng)調(diào)入內(nèi)存,并設(shè)置一些操作系統(tǒng)所必需的參數(shù),然后把 cpu 控制權(quán)交給操作系統(tǒng)。有的 bootloader 會(huì)先從串口或者網(wǎng)絡(luò)等其他途徑得到內(nèi)核的映像文件,然后把這些文件寫入目標(biāo)系統(tǒng)的 flash 或者其它存儲(chǔ)介質(zhì),最后再把內(nèi)
31、核載入 ram 執(zhí)行,交出控制權(quán)。一般 bootloader 都包含兩種不同的操作模式:“啟動(dòng)加載”模式和“下載”模式,這種區(qū)別僅對(duì)于開發(fā)人員才有意義。從最終用戶的角度看,bootloader 的作用就是用于加載操作系統(tǒng),而并不存在所謂的啟動(dòng)加載模式與下載模式的區(qū)別。(1)啟動(dòng)加載(boot loading)模式這種模式也稱為“自主” (autonomous)模式,即 bootloader 從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)加載到 ram 中運(yùn)行,整個(gè)過程并沒有用戶的介入。這種模式是 bootloader 的正常工作模式,因此在嵌入式產(chǎn)品發(fā)布的時(shí)候,bootloader 顯然必須工作在這
32、種模式下。(2)下載(downloading)模式在這種模式下,目標(biāo)機(jī)上的 bootloader 將通過串口連接或者網(wǎng)絡(luò)連接等通信手段從主機(jī)(host)下載文件,比如下載內(nèi)核映像和根文件系統(tǒng)映像等。從主機(jī)下載的文件通常首先被 bootloader 保存到目標(biāo)機(jī)的 ram 中,然后再被 bootloader 寫到目標(biāo)機(jī)上的 flash 類固態(tài)存儲(chǔ)設(shè)備中。bootloader 的這種模式通常在第一次安裝內(nèi)核與根文件系統(tǒng)時(shí)被使用,此外,以后的系統(tǒng)更新也會(huì)使用 bootloader 的這種工作模式。工作于這種模式下的 bootloader 通常都會(huì)向它的終端用戶提供一個(gè)簡(jiǎn)單的命令行接口。bootloa
33、der 的實(shí)現(xiàn)依賴于 cpu 的體系結(jié)構(gòu),一般來說啟動(dòng)過程分為兩個(gè)階段:第一階段依賴于 cpu 體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在第一階段中,而且通常都用匯編語言來實(shí)現(xiàn),運(yùn)行效率比較高。這個(gè)階段完成的任務(wù)一般如下:硬件設(shè)備初始化(屏蔽所有的中斷、關(guān)閉處理器內(nèi)部的指令數(shù)據(jù) cache) 。 1為第二階段準(zhǔn)備 ram 空間。 2復(fù)制 bootloader 的第二階段代碼到 ram 空間中。 3設(shè)置好堆棧并跳轉(zhuǎn)到第二階段的 c 程序入口點(diǎn)。 4而第二階段則通常用 c 語言來實(shí)現(xiàn),這樣可以實(shí)現(xiàn)復(fù)雜的功能,而且代碼會(huì)具有更好的可讀性和可移植性2。這個(gè)階段主要任務(wù)有:初始化本階段要使用的硬件
34、設(shè)備。 1檢測(cè)系統(tǒng)內(nèi)存映射。 2將內(nèi)核映像和根文件系統(tǒng)從 flash 讀到 ram 中。 3為內(nèi)核設(shè)置啟動(dòng)參數(shù)。 4調(diào)用內(nèi)核文件運(yùn)行。 52. linux 內(nèi)核移植本系統(tǒng)選用嵌入式 linux 作為目標(biāo)機(jī)操作系統(tǒng),一方面由于 linux 是一款免費(fèi)的操作系統(tǒng),能很好的降低成本,同時(shí) linux 的開發(fā)應(yīng)用現(xiàn)在已經(jīng)成為熱門,有大量的資源可用于學(xué)習(xí)與重復(fù)應(yīng)用,并且 linux 系統(tǒng)具有良好的可移植性和可裁剪性,能自動(dòng)支持多任務(wù)管理。一般常用的 gui 如 qte,minigui 等都支持linux。linux 的開發(fā)工具也都可以很方便的免費(fèi)獲得。在 linux 系統(tǒng)內(nèi)核代碼中有arch 目錄,其中
35、包括了不同平臺(tái)的代碼,與體系結(jié)構(gòu)相關(guān)的代碼都存放在 arch 下面相應(yīng)的目錄中,本系統(tǒng)采用 arm 開發(fā)平臺(tái),所以依賴 arm 硬件平臺(tái)的代碼都在archarm 下面。根目錄下面只需要修改 makefile 文件,該文件主要任務(wù)是產(chǎn)生vmlinux 文件和內(nèi)核模塊。對(duì)該文件的修改主要是設(shè)置目標(biāo)平臺(tái)和制定交叉編譯器,代碼如下: arch=armcrosscompile= arm-linux-接下來的工作便是修改 arm 目錄下面的相應(yīng)文件,具體的工作主要就是在內(nèi)核文件中添加 s3c2410 處理器信息,在 arm 目錄下面的 makefile 文件添加:ifeq(s(confiqarchs3c2
36、41 0),y)textaddr=0xc0008000machine=s3c241 0endif配置文件 config.in 也需要添加處理器信息,這樣在后面 make menuconifig 命令時(shí)可以看到 s3c2410 的選項(xiàng)。具體為添加代碼:if“sconfig_arch_s3c241 0”=y;thencomments3c2410 implementationdep_boolsmdk(meritech board)config_arch_s3c2410fi編譯出來的內(nèi)核存放在 arm 目錄下的 boot 目錄罩面,該目錄下面的 makefile 文件也需要添加代碼:ifeq(s(co
37、nfig_arch 一 s3c241o),y)ztextaddr=ox30008000zreladdr=ox30008000endif其它還有一些小的修改,基本上都是添加處理器的信息。更改完成之后需要對(duì)內(nèi)核進(jìn)行配置和編譯,配置命令可以選用 make config,make oldconfig,make menuconfig 或 make xconfig 其中一個(gè)。編譯內(nèi)核需要?jiǎng)?chuàng)建內(nèi)核依賴關(guān)系、創(chuàng)建內(nèi)核鏡像文件和創(chuàng)建內(nèi)核模塊。首先執(zhí)行 make dep 命令,讀取配置過程生成的配置文件,來創(chuàng)建對(duì)應(yīng)于配置的依賴關(guān)系樹,從而決定哪些需要編譯而哪些不需要;接著需要make clean 刪除前面步驟留下
38、的文件,以避免出現(xiàn)一些錯(cuò)誤;然后便可以生成所需要的內(nèi)核文件了,用 makezlmage 來實(shí)現(xiàn)得到可移植的內(nèi)核。內(nèi)核文件傳至開發(fā)板便可以通過 bootloader 加載運(yùn)行2。3. 嵌入式文件系統(tǒng)嵌入式系統(tǒng)中需要有文件系統(tǒng)來更好的管理文件。文件系統(tǒng)會(huì)在你的存儲(chǔ)器中劃分區(qū)域來保存文件數(shù)據(jù),所以一般采用 flash 作為存儲(chǔ)介質(zhì)。flash 具有獨(dú)特的物理特性,所以必須使用專門的嵌入式文件系統(tǒng)。嵌入式系統(tǒng)對(duì)文件的操作是通過層次結(jié)構(gòu)實(shí)現(xiàn)的。對(duì)于用戶程序來說,文件是有結(jié)構(gòu)的文件,用戶程序通過對(duì)文件 io 函數(shù)操作文件。嵌入式文件系統(tǒng)是嵌入式操作系統(tǒng)的一部分,它的任務(wù)是對(duì)邏輯文件進(jìn)行管理,其工作包括提供
39、對(duì)邏輯文件的操作(復(fù)制、刪除、修改等)接口,方便用戶操作文件和目錄。在文件系統(tǒng)內(nèi)部,根據(jù)存儲(chǔ)設(shè)備的特點(diǎn),使用不同的文件組織模式來實(shí)現(xiàn)文件的邏輯結(jié)構(gòu)。此外,文件系統(tǒng)要對(duì)管理文件的安全性負(fù)責(zé)。文件系統(tǒng)不能直接控制物理設(shè)備,它是通過 flash 驅(qū)動(dòng)實(shí)現(xiàn)控制的。目前flash 支持的文件系統(tǒng)技術(shù)主要有jffs2,yaffs2,trueffs,ftlntfl,ramfs,cramfs 和 romfs 等等。本系統(tǒng)采用的是 cramfs 文件系統(tǒng)和 yaffs 文件系統(tǒng)并存,并采用 ramdisk 在內(nèi)存中模擬硬盤分區(qū)。cramfs 是針對(duì) linux 內(nèi)核 24 之后的版本所設(shè)計(jì)的一種新型文件系統(tǒng),是
40、一個(gè)只讀壓縮的文件系統(tǒng),其主要優(yōu)點(diǎn)是將文件數(shù)據(jù)以壓縮形式存儲(chǔ),在需要時(shí)進(jìn)行解壓縮。一般嵌入式存儲(chǔ)器價(jià)格比較高,用 cramfs 文件系統(tǒng)比較省空間,對(duì)于 flash 這樣的小系統(tǒng),cramfs 是十分不錯(cuò)的選擇。不過也是由于文件形式是壓縮的格式,所以文件系統(tǒng)不能在 flash 上直接運(yùn)行。雖然可以節(jié)約不少 flash 空間,但是文件系統(tǒng)運(yùn)行時(shí)需要將大量的數(shù)據(jù)復(fù)制到 ram 中,因此消耗了 ram 空間。yaffs 類似于 jffsjffs2,是專門為 nand 閃存設(shè)計(jì)的嵌入式文件系統(tǒng),根據(jù) nand 閃存以頁面為單位存取的特點(diǎn),將文件組織成固定大小的數(shù)據(jù)段。利用 nand 閃存提供的每個(gè)頁面
41、 16 字節(jié)的備用空間來存放ecc(error correction code)和文件系統(tǒng)的組織信息,不僅能夠?qū)崿F(xiàn)錯(cuò)誤檢測(cè)和壞塊處理,也能夠提高文件系統(tǒng)的加載速度。yaffs 采用一種多策略混合的垃圾回收算法,結(jié)合了貪心策略的高效性和隨機(jī)選擇的平均性,達(dá)到了兼顧損耗平均和系統(tǒng)開銷的目的。它是日志結(jié)構(gòu)的文件系統(tǒng),提供了損耗平衡和掉電保護(hù),可以有效地避免意外掉電對(duì)文件系統(tǒng)一致性和完整性的影響。yaffs 文件系統(tǒng)是按層次結(jié)構(gòu)設(shè)計(jì)的,分為文件系統(tǒng)管理層接口、yaffs 內(nèi)部實(shí)現(xiàn)層和 nand 接口層,這樣就簡(jiǎn)化了其與系統(tǒng)的接口設(shè)計(jì),可以方便地集成到系統(tǒng)中去。與 jffs 相比,它減少了一些功能,因此
42、速度更快,占用內(nèi)存更少3。綜合考慮,本系統(tǒng)采用兩種文件系統(tǒng)相結(jié)合的方法,使用 cramfs 作為根文件系統(tǒng),并添加對(duì) yaffs 文件系統(tǒng)的支持。ramdisk 相當(dāng)于一塊硬盤空間,可以理解為在內(nèi)存中虛擬出來一塊硬盤,所以上面有系統(tǒng)支持的各種文件系統(tǒng)4。ramdisk 的特點(diǎn)之一就是速度快,因?yàn)樗窃趓am 中運(yùn)行的。不過由于 ram 是掉電不保存的,所以系統(tǒng)在每次重啟時(shí),前面的工作無法保存,所以需要在 flash 中劃出一個(gè) ramdisk 和另一個(gè)文件系統(tǒng)yaffs,這樣,數(shù)據(jù)文件可以保存在 yaffs 分區(qū)中。另外,本系統(tǒng)需要mtd(memorytechnology devices,內(nèi)存
43、技術(shù)設(shè)備)的支持。mtd 是對(duì) flash 操作的接口,提供了一系列的標(biāo)準(zhǔn)接口函數(shù),將硬件驅(qū)動(dòng)和系統(tǒng)程序設(shè)計(jì)分開,硬件驅(qū)動(dòng)人員不用了解存儲(chǔ)設(shè)備的組織方法,只需要提供標(biāo)準(zhǔn)的函數(shù)調(diào)用,比如讀、寫等等。2.2 嵌入式 linux 系統(tǒng)硬件結(jié)構(gòu)2.2.1 arm 處理器簡(jiǎn)介 arm 嵌入式微處理器是全球領(lǐng)先的 1632 位 risc 處理器芯片知識(shí)產(chǎn)權(quán)設(shè)計(jì)供應(yīng)商 arm(advancedriscmachines)公司的產(chǎn)品。arm 公司本身不直接從事芯片生產(chǎn),而是靠轉(zhuǎn)讓設(shè)計(jì)許可,由合作公司生產(chǎn)各具特色的芯片。arm 處理器以其完整的體系結(jié)構(gòu)發(fā)展系列,極小的體積、極低的功耗、極低的成本、極高的性能,及時(shí)
44、根據(jù)嵌入對(duì)象的不同進(jìn)行功能上的擴(kuò)展的優(yōu)勢(shì),在眾多種類的嵌入式微處理器中脫穎而出?;?arm 技術(shù)的微處理器應(yīng)用占據(jù)了 32 位 risc 微處理器 75以上的市場(chǎng)份額,arm 技術(shù)正在逐步滲入到我們生活的各個(gè)方面。采用 risc 架構(gòu)的arm 微處理器一般具有如下特點(diǎn)5:(1)支持 thumb(16 位)arm(32 位)雙指令集,能很好的兼容 8 位16位器件;(2)大量使用寄存器,指令執(zhí)行速度更快;(3)加載存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)處理的操作只針對(duì)寄存器的內(nèi)容,而不直接對(duì)存儲(chǔ)器進(jìn)行操作;(4)簡(jiǎn)單的尋址模式,所有加載存儲(chǔ)的地址都只由寄存器的內(nèi)容和指令域決定,執(zhí)行效率高;(5)統(tǒng)一的和固定的指令域,
45、簡(jiǎn)化了指令的譯碼;(6)每一條數(shù)據(jù)指令都對(duì)算術(shù)邏輯單元(alu)和移位器進(jìn)行控制,以實(shí)現(xiàn)對(duì)alu 和移位器的最大利用;(7)址自動(dòng)增加和自動(dòng)減少的尋址模式實(shí)現(xiàn)了程序循環(huán)的優(yōu)化;(8)多存儲(chǔ)器加載和存儲(chǔ)指令實(shí)現(xiàn)了最大數(shù)據(jù)吞吐量;(9)所有指令的條件執(zhí)行實(shí)現(xiàn)了最快速的代碼執(zhí)行。目前,arm 處理器有 arm7、arm9、arm9e、arml0、armll 和 securcore等系列。每個(gè)系列除了具有 arm 體系結(jié)構(gòu)的共同特點(diǎn)以外,都有各自的特點(diǎn)和應(yīng)用領(lǐng)域1。3 3g 智能機(jī)器人的總體設(shè)計(jì)3.1 軟件開發(fā)平臺(tái)設(shè)計(jì)3g 智能機(jī)器人的軟件開發(fā)平臺(tái)采用基于行為的控制思想,系統(tǒng)構(gòu)架遵循面向?qū)ο蟮脑O(shè)計(jì)風(fēng)格
46、,通過各種抽象類的組合來組織代碼,條理清晰便于理解。軟件構(gòu)架層次關(guān)系如圖 3-1 所示。 圖 3-1 系統(tǒng)軟件框架硬件通訊層:是一些直接與硬件設(shè)備通訊的對(duì)象,這里包括一個(gè)機(jī)器人主體的數(shù)據(jù)交流的串口通訊對(duì)象。視頻捕捉因?yàn)閷?duì)通訊速率要求很高,通過 usb 鏈接,所以其設(shè)備對(duì)象與機(jī)器人主體獨(dú)立開。工程中的硬件通訊層基類為 ibhy,這是一個(gè)抽象類,具體的硬件類都從這個(gè)基類派生,如里面的串口硬件類為 croscom6。指令協(xié)議層:這一層是機(jī)器人控制構(gòu)架的核心,指令協(xié)議對(duì)象將進(jìn)行機(jī)器人實(shí)電腦,3g 手機(jī)登遠(yuǎn)程終端 仲裁決策對(duì)象機(jī)器人指令對(duì)象視頻捕捉控制對(duì)象硬件通信對(duì)象視頻輸入設(shè)備實(shí)體機(jī)器人主體設(shè)備其他設(shè)
47、備體控制指令的編制以及對(duì)下位機(jī)返回的傳感器數(shù)據(jù)和機(jī)器人狀態(tài)的解析轉(zhuǎn)換。工程的指令協(xié)議層類為 crocmd,其成員函數(shù)包含了對(duì)機(jī)器人的所有的基本操作6。行為層:這一層是一些抽象類行為的對(duì)象,這些對(duì)象通過協(xié)議對(duì)象的傳感器數(shù)據(jù)進(jìn)行局部的行為規(guī)劃,并操作協(xié)議對(duì)象向機(jī)器人底層發(fā)送控制指令。這一層雖然并存了很多對(duì)象,但是同一時(shí)刻只能允許一個(gè)行為對(duì)象與協(xié)議對(duì)象連接,以避免出現(xiàn)行為混亂的情形。機(jī)器人的各種行為切換通過改變與協(xié)議層連接的行為對(duì)象來實(shí)現(xiàn)。工程中的行為層基類為 ibhavior,與硬件層一樣這只是一個(gè)抽象類,它本身包括了所有可能的傳感器信息返回函數(shù)6。決策層:這一層是機(jī)器人本地的最高層,仲裁對(duì)象通過
48、本地傳感器數(shù)據(jù)、機(jī)器人運(yùn)行狀態(tài)以及遠(yuǎn)程端發(fā)來的指令數(shù)據(jù)進(jìn)行各種行為組織。它既可以直接操作協(xié)議層對(duì)象發(fā)送機(jī)器人控制指令,也能通過行為對(duì)象的切換間接控制機(jī)器人的運(yùn)行。決策層在工程中并不以單獨(dú)的形式出現(xiàn),是由一系列通訊類和行為替換操作組成。根據(jù)應(yīng)用的不同可分為單行為決策結(jié)構(gòu),聚合式行為決策結(jié)構(gòu)以及包容式行為結(jié)構(gòu)6。上面介紹了一種基于 arm9 嵌入式系統(tǒng)的 3g 智能機(jī)器人的基本組成模塊,軟件層次的設(shè)計(jì),這種方案較好的做到了在成本和性能上的妥善處理,改善了開發(fā)研究過程,同時(shí)也為其他類型的 3g 機(jī)器人的設(shè)計(jì)提供了一個(gè)參考,如擬人型機(jī)器人。嵌入式系統(tǒng)領(lǐng)域的軟硬件技術(shù),3g 網(wǎng)絡(luò)技術(shù)與物聯(lián)網(wǎng)技術(shù)的迅猛發(fā)
49、展,各種應(yīng)用層出不窮將這些技術(shù)融合到機(jī)器人的設(shè)計(jì)中,有助于提高機(jī)器人的綜合性能。3.2 機(jī)器人控制器硬件設(shè)計(jì)3g 智能機(jī)器人可以在 android 手機(jī)上安裝項(xiàng)目開發(fā)的 android 程序,實(shí)現(xiàn)遠(yuǎn)程控制智能機(jī)器人。機(jī)器人利用其豐富的傳感器實(shí)時(shí)檢測(cè)周圍的環(huán)境參數(shù),并在遇到緊急情況時(shí)主動(dòng)通知用戶。機(jī)器人和手機(jī)間可以實(shí)現(xiàn)視頻、語音等多媒體通訊。用戶可以通過手機(jī)控制機(jī)器人運(yùn)動(dòng),也可以通過機(jī)器人控制家中的其它智能設(shè)備。3g智能機(jī)器人包括傳感器技術(shù) ,rfid 射頻識(shí)別技術(shù),wifi 通訊技術(shù),android 手機(jī)開發(fā)技術(shù),音、視頻采集、處理技術(shù),多媒體傳輸技術(shù),linux 驅(qū)動(dòng)編程技術(shù),電源管理技術(shù),
50、電機(jī)控制技術(shù),linux 網(wǎng)絡(luò)開發(fā)技術(shù),linux 其它應(yīng)用編程技術(shù),arm 開發(fā)技術(shù)6,由于時(shí)間和條件的限制,結(jié)構(gòu)還不是非常的晚上,所以用于實(shí)際工程還需要進(jìn)行一些功能的完善。其硬件系統(tǒng)框如 3-2 所示。圖 3-2 硬件框架圖dfpprk 是基于 android 開源項(xiàng)目的全向移動(dòng)機(jī)器人平臺(tái),機(jī)器人平臺(tái)機(jī)身采用高檔拉絲氧化鋁材料制造,外觀美觀并且堅(jiān)固耐用。dfpprk 裝備有三個(gè)可全向運(yùn)動(dòng)的輪子,能夠靈活地在家具之間穿行。自由度云臺(tái)可方便安裝攝像頭。在平臺(tái)上可添加 pda,mid 等主控設(shè)備即可組成可通過 wi-fi 無線網(wǎng)絡(luò)接入互聯(lián)網(wǎng)的機(jī)器人,這樣以來便可通過計(jì)算機(jī)或是手機(jī)對(duì)環(huán)境情況進(jìn)行遠(yuǎn)
51、距離監(jiān)控。由于時(shí)間和條件的限制,所以用于實(shí)際工程還需要進(jìn)行一些功能的完善。3.3 遠(yuǎn)程監(jiān)控客戶端的設(shè)計(jì)首先在自己腦海中要把思路理清楚,然后一步一步的去實(shí)現(xiàn),客服端主要的操作流程如圖 3-3。服務(wù)端開啟監(jiān)聽和視頻等服務(wù)在客服端,點(diǎn)擊按鈕,顯示基本信息客服端顯示機(jī)器人的視頻和相關(guān)信息arm9 平臺(tái)嵌入式 linux+web語音模塊wifi 模塊無線通訊模塊煙霧模塊紅外線模塊sd 卡模塊觸摸屏模塊電機(jī)控制模塊云臺(tái)攝像模塊gprs 模塊圖 3-3 客服端的過程圖控制客服端操作界面主要的文件是 monitorview.c,這個(gè)函數(shù)里面主要用到的結(jié)構(gòu)體就是 cgi-command 結(jié)構(gòu)體7。typedef
52、 struct cgi_commandnv_set *pdata; /傳送過來的數(shù)據(jù)指針主要是指網(wǎng)頁傳過來的數(shù)據(jù)int count; /cgi 傳功來的數(shù)據(jù)一共有多少段int led; /這個(gè) cgi 密令是要控制那個(gè) ledint states; /需要控制的狀態(tài)是什么電燈int robot; /對(duì)機(jī)器人控制的命令command;上面的結(jié)構(gòu)體就是主要的結(jié)構(gòu)體,其中 pdata 就是獲取網(wǎng)頁傳送過來的數(shù)據(jù),比如當(dāng)我們?cè)诰W(wǎng)頁中點(diǎn)擊機(jī)器人向前走的按鈕,那么*pdada 的值就是“w“,然后就是向管道寫入向前走的命令,在管道的一端是一直在后臺(tái)運(yùn)行讀取的命令,當(dāng)我們寫入命令的時(shí)候,管道的另一端就是讀取
53、我們寫入的值,然后就是響應(yīng)的操作。其中對(duì)機(jī)器人的控制主要有下面幾個(gè)操作:w 表示向前走; a 表示向左走;x 表示向后走; d 表示向右走; s 表示停止; q 表示左旋轉(zhuǎn);客服端通過點(diǎn)擊按鈕完成對(duì)機(jī)器人和 led 控制機(jī)器人或 led 執(zhí)行命令且返回點(diǎn)擊退出按鈕結(jié)束 e 表示右旋轉(zhuǎn); z 攝像頭抬頭; c 攝像頭低頭。 這些就是代表機(jī)器人的動(dòng)作,這樣動(dòng)作就可以幫助我們拍攝出來不同角度的視頻的圖片。在 monitorview.c 中主要的操作函數(shù)是:int get_input(); /這個(gè)函數(shù)用來獲得 cgi 數(shù)據(jù)并解析后放到 nv 數(shù)組中int cmd_init(command *cmd);
54、 /將獲得的數(shù)據(jù)處理后填充 cmd 結(jié)構(gòu)體int led_control(command *cmd);/將 cmd 結(jié)構(gòu)體轉(zhuǎn)化為具體的控制動(dòng)作int robot_control(command *cmd); /根據(jù)獲取的信息來對(duì)機(jī)器人發(fā)送不同的命令我們按照先獲取 cgi 數(shù)據(jù),然后填充 cmd 結(jié)構(gòu)體,然后調(diào)用 led_control 函數(shù)和 robot_control 函數(shù)這樣就可以實(shí)現(xiàn)對(duì) led 燈、機(jī)器人的控制了。4 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 boa 服務(wù)器的搭建4.1.1 boa 服務(wù)器介紹我們通過設(shè)計(jì) web 服務(wù)器,使用戶能通過瀏覽器訪問設(shè)備上的 web 服務(wù)器來遠(yuǎn)程控制現(xiàn)場(chǎng)設(shè)備。
55、嵌入式 linux 下,系統(tǒng)資源是非常有限的8,因此我們選擇web 服務(wù)器時(shí),要考慮到其資源有限的特點(diǎn):boa 是一種非常小巧的 web 服務(wù)器,其可執(zhí)行代碼只有大約 60kb 左右。作為一種單任務(wù) web 服務(wù)器,boa 只能依次完成用戶的請(qǐng)求,而不會(huì) fork 出新的進(jìn)程來處理并發(fā)連接請(qǐng)求。但 boa 支持 cgi,能夠?yàn)?cgi 程序 fork 出一個(gè)進(jìn)程來執(zhí)行,boa 的設(shè)計(jì)目標(biāo)是速度和安全?,F(xiàn)在,多數(shù)嵌入式 linux 的代碼中已經(jīng)包含 boa 的源代碼,在嵌入式 linux 下實(shí)現(xiàn) boa 只需要對(duì) boa 做一些簡(jiǎn)單的配置和修改。這主要通過對(duì) boa.conf、boa.c、mim
56、e.types 等文件進(jìn)行修改來實(shí)現(xiàn)。服務(wù)器中主要包括 boa 和 cgi 兩部分9,其中 boa 管理著返回客戶端的 web 頁面,而 cgi 控制著客戶端和服務(wù)器端的信息交換,絕大多數(shù)的 cgi程序被用來解釋處理來自表單的輸入信息,并在服務(wù)器產(chǎn)生相應(yīng)的處理,或?qū)⑾鄳?yīng)的信息反饋給瀏覽器。cgi 程序使網(wǎng)頁具有交互功能。所以我們可以通過編寫相應(yīng)的 cgi 程序來實(shí)現(xiàn)所需要的功能。boa 服務(wù)器的實(shí)現(xiàn)主要分為兩步,boa 服務(wù)器的移植和 cgi 程序的設(shè)計(jì)。 1. boa 程序的移植從 上下載 boa 源碼,當(dāng)前的版本是 0.94.13。(1)將其解壓并進(jìn)入源碼目錄的 s
57、rc 子目錄。# tar xzf boa-0.94.13.tar.gz# cd boa-0.94.13/src生成 makefile 文件./configure(2)修改 makefile 文件(注:這里修改根據(jù)自己的交叉編譯器自行修改)。修改 cc = gcc 為 cc = arm-linux-gnu-gcc 修改 cpp = gcc - e 為 cpp = arm-linux-gnu-gcc e(3)修改頭文件 defines.h找到#define server_root “ /etc/boa” 修改代碼為 define server_root “ /var/www” 這里定義的是 web
58、 服務(wù)器的文件根目錄(用戶可以自行定義,只要跟 boa.conf 中設(shè)置一致就可以了) 。(4)修改 src/compat.h#define timezone_offset(foo) foo#-tm_gmtoff修改#define timezone_offset(foo) (foo)-tm_gmtoff否則會(huì)出現(xiàn)錯(cuò)誤:util.c:100:1: error: pasting t and - does not give a valid preprocessing token make: * util.o 錯(cuò)誤 1(5)修改/src/boa.c, ,注釋掉下面兩行:/* if (setuid(0)
59、 != -1) die(icky linux kernel bug!); */ /*if (passwdbuf = null) die(getpwuid); */(6)gethostbyname: resource temporarily unavailable 這個(gè)問題我也遇到過,我只是把 src 文件夾下的 config.c 里的 if(!server_name).(大概在266行到286行之間)注釋掉,就能運(yùn)行在板子上運(yùn)行 boa。(7)然后運(yùn)行 make 進(jìn)行編譯,得到的可執(zhí)行程序 boa,將調(diào)試信息剝?nèi)?,得到的最后程序只?2872byte 大小。# make#arm-linux-g
60、nu-strip boa 對(duì) boa 配置,使其能夠支持 cgi 程序的執(zhí)行。在 boa 源碼目錄下有一個(gè) boa.conf??梢詫?duì)其作如下修改:48 user nobody 修改為:user 049 group nogroup 修改為:group 062 errorlog /var/log/boa/error_log 注釋掉,前面加# 即#errorlog /var/log/boa/error_log74 accesslog /var/log/boa/access_log 注釋掉,前面加# 同上94 #servername .here 去掉# 指定服務(wù)器的名稱123
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 骨創(chuàng)傷的診斷與外科治療
- 犢牛肺炎并發(fā)癥及護(hù)理
- 糖尿病性神經(jīng)病變
- 通信實(shí)驗(yàn)室安全教育
- 2.3.1 物質(zhì)的量單位-摩爾 課件高一上學(xué)期化學(xué)人教版(2019)必修第一冊(cè)
- 2.1.1+共價(jià)鍵++課件高二上學(xué)期化學(xué)人教版(2019)選擇性必修2
- 智慧酒店規(guī)劃設(shè)計(jì)方案
- 美術(shù)老師述職報(bào)告
- 物聯(lián)網(wǎng)工程知識(shí)點(diǎn)
- 水源污染應(yīng)急處置
- 《工作周報(bào)管理制度管理辦法》
- 低血糖的預(yù)防及處理(課堂PPT)
- 消防設(shè)施設(shè)備及器材
- 胎心監(jiān)護(hù)專家共識(shí)
- 環(huán)境工程專業(yè)英語翻譯理論P(yáng)PT選編課件
- 金融企業(yè)詳細(xì)劃分標(biāo)準(zhǔn)出臺(tái)-共分大中小微四類型
- 好書推薦——《三毛流浪記》PPT通用課件
- DM1204-B調(diào)音臺(tái)
- 鋁基合金高溫相變儲(chǔ)熱材料
- 干膜介紹及干膜工藝詳解實(shí)力干貨
- 《跨文化交際》課程教學(xué)大綱(英語師范專業(yè))
評(píng)論
0/150
提交評(píng)論