基于RaspberryPI的履帶式機(jī)械臂智能小車(chē)設(shè)計(jì)和實(shí)現(xiàn) 機(jī)械設(shè)計(jì)及其自動(dòng)化專(zhuān)業(yè)

上傳人:文*** 文檔編號(hào):55520242 上傳時(shí)間:2022-02-18 格式:DOCX 頁(yè)數(shù):40 大小:1.84MB
收藏 版權(quán)申訴 舉報(bào) 下載
基于RaspberryPI的履帶式機(jī)械臂智能小車(chē)設(shè)計(jì)和實(shí)現(xiàn) 機(jī)械設(shè)計(jì)及其自動(dòng)化專(zhuān)業(yè)_第1頁(yè)
第1頁(yè) / 共40頁(yè)
基于RaspberryPI的履帶式機(jī)械臂智能小車(chē)設(shè)計(jì)和實(shí)現(xiàn) 機(jī)械設(shè)計(jì)及其自動(dòng)化專(zhuān)業(yè)_第2頁(yè)
第2頁(yè) / 共40頁(yè)
基于RaspberryPI的履帶式機(jī)械臂智能小車(chē)設(shè)計(jì)和實(shí)現(xiàn) 機(jī)械設(shè)計(jì)及其自動(dòng)化專(zhuān)業(yè)_第3頁(yè)
第3頁(yè) / 共40頁(yè)

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《基于RaspberryPI的履帶式機(jī)械臂智能小車(chē)設(shè)計(jì)和實(shí)現(xiàn) 機(jī)械設(shè)計(jì)及其自動(dòng)化專(zhuān)業(yè)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于RaspberryPI的履帶式機(jī)械臂智能小車(chē)設(shè)計(jì)和實(shí)現(xiàn) 機(jī)械設(shè)計(jì)及其自動(dòng)化專(zhuān)業(yè)(40頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、基于RaspberryPI的履帶式機(jī)械臂智能小車(chē)摘要:近幾年來(lái),科學(xué)家在智能汽車(chē)領(lǐng)域越來(lái)越喜歡用RaspberryPI開(kāi)發(fā)平臺(tái), 這個(gè)開(kāi)發(fā)平臺(tái)憑借著它具有吸引力的價(jià)格、比較嬌小的尺寸、超強(qiáng)的感應(yīng)接口和強(qiáng)大的編程功能不斷的吸引了國(guó)內(nèi)和國(guó)外的開(kāi)發(fā)行業(yè)的關(guān)注,同時(shí),也為智能小車(chē)的開(kāi)發(fā)提供了良好的環(huán)境和創(chuàng)造了巨大的商業(yè)潛力,同時(shí)這項(xiàng)技術(shù)在高等教育領(lǐng)域也有很好的應(yīng)用和推廣前景。本文是將RaspberryPI技術(shù)在詳細(xì)分析移動(dòng)偵測(cè)系統(tǒng)原理過(guò)程中,改變工作模式,基于實(shí)現(xiàn)機(jī)制的基礎(chǔ)上,設(shè)計(jì)了履帶式機(jī)械臂智能小車(chē)系統(tǒng)的總體結(jié)構(gòu),并闡述了各個(gè)關(guān)鍵模塊的具體實(shí)現(xiàn)過(guò)程。關(guān)鍵詞: RaspberryPI;履帶式;機(jī)械臂

2、;物聯(lián)網(wǎng);智能小車(chē)Crawler manipulator intelligent car based on RaspberryPIAbstract: In recent years, scientists are increasingly fond of using RaspberryPI development platform in the field of smart cars. With its attractive price, relatively small size, super-strong sensing interface and powerful programming

3、 function, this development platform has attracted the attention of domestic and foreign development industries. At the same time, it also provides a good environment and creates great commercial potential for the development of smart cars. At the same time, this technology has good application and

4、promotion prospects in the field of higher education. In this paper, RaspberryPI technology is used to change the working mode during the detailed analysis of the principle of the Motion detecting system. Based on the implementation mechanism, the overall structure of the tracked manipulator intelli

5、gent trolley system is designed, and the specific implementation process of each key module is described.Key words: RaspberryPI;; Crawler type; Mechanical arm; Internet of things; Intelligent car目錄引言31背景和意義31.1 rasberrypi平臺(tái)概述31.2履帶式機(jī)器人手臂智能車(chē)系統(tǒng)的發(fā)展及現(xiàn)狀41.3履帶式機(jī)械臂智能小車(chē)訓(xùn)練控制系統(tǒng)的意義52履帶式機(jī)械臂智能小車(chē)硬件設(shè)計(jì)52.1履帶式機(jī)械手智能小

6、車(chē)供電方案72.2履帶式機(jī)械手智能小車(chē)控制中心102.3履帶式機(jī)械手智能小車(chē)電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)。113 .履帶式機(jī)械臂智能小車(chē)軟件設(shè)計(jì)113.1履帶式機(jī)械手智能小車(chē)路徑規(guī)劃設(shè)計(jì)133.2履帶式機(jī)械手智能小車(chē)驅(qū)動(dòng)設(shè)計(jì)143.2程序代碼144. 機(jī)械手臂的運(yùn)動(dòng)理論和總結(jié)展望分析35致謝38參考文獻(xiàn)39引言隨著現(xiàn)在計(jì)算機(jī)行業(yè)的高速發(fā)展,讓嵌入式高端技術(shù)也得到了迅猛的發(fā)展,RaspberryPI開(kāi)發(fā)平臺(tái)從歐洲傳入中國(guó)就以其小巧玲瓏的體積以及豐富多樣的傳感器接口與強(qiáng)大的編程功能,引起了的強(qiáng)烈反應(yīng)。在各類(lèi)履帶式機(jī)械臂智能小車(chē)中,智能運(yùn)輸類(lèi)應(yīng)用是當(dāng)前非常熱門(mén)的應(yīng)用之一自動(dòng)感應(yīng)運(yùn)輸物體是各類(lèi)機(jī)械臂智能小車(chē)中非常

7、廣泛的應(yīng)用之一,在這個(gè)應(yīng)用上,主要的功能就是將物品搬運(yùn)放置但情況很大程度上節(jié)省了我們的人力和物力。1背景和意義1.1 rasberrypi平臺(tái)概述RaspberryPI是一種嵌入式計(jì)算機(jī)硬件的平臺(tái),他的內(nèi)存大,占用體積小,由英國(guó)慈善組織 “拉斯伯瑞皮基金會(huì)”發(fā)布成立。該基金會(huì)建立這個(gè)的目的是在“改善學(xué)校的里面的計(jì)算機(jī)科學(xué)和相關(guān)的一些學(xué)科教育,使計(jì)算機(jī)的學(xué)習(xí)與使用更加有趣”。計(jì)算機(jī)平臺(tái)使用ARM11架構(gòu)處理器,開(kāi)始使用簡(jiǎn)化的Linux操作系統(tǒng)。基本使用平臺(tái)的硬件的尺寸大致在80mm50mm(也就類(lèi)似于普通集成電路卡上面的尺寸)。RaspberryPI系統(tǒng)被稱為“世界上最微型的桌面”。該平臺(tái)提供了

8、極極其的使用成本(新版RaspberryPI 3售價(jià)竟低于為35美元)。并且,它還配備了強(qiáng)大的開(kāi)發(fā)工具以及各種各樣類(lèi)型的接口,支持SD的卡支持以太網(wǎng)支持USB支持視音頻接口等等。目前,RaspberryPI在各種各樣嵌入式平臺(tái)開(kāi)發(fā)中具有超級(jí)高的性價(jià)比。與此同時(shí),系統(tǒng)中PI體積小,編程功能相當(dāng)強(qiáng)大,尤其適合各種物聯(lián)網(wǎng)或者高新技術(shù)的應(yīng)用的開(kāi)發(fā)。它廣泛的應(yīng)用于國(guó)內(nèi)各種物聯(lián)網(wǎng)發(fā)展和學(xué)校里面的計(jì)算機(jī)教育事業(yè)。自發(fā)布以來(lái),全球銷(xiāo)量已超過(guò)1250萬(wàn)臺(tái)。下面直接給出了Raspberry Pi的構(gòu)件圖,好讓我們有個(gè)直觀的印象。圖1.1 Raspberry Pi的構(gòu)件圖平臺(tái)位最新的系統(tǒng)加上了3456處理系統(tǒng)、還有

9、80個(gè)端口,不僅如此,還可以提供WIFI和藍(lán)牙的功能以及其他的一些多媒體的端口。開(kāi)發(fā)環(huán)境與語(yǔ)言作為拉斯伯瑞皮平臺(tái)的標(biāo)準(zhǔn)編程開(kāi)發(fā)語(yǔ)言部署在Linux系統(tǒng)中。它包含自己的一套標(biāo)準(zhǔn)庫(kù),不僅功能十分完善,語(yǔ)法也十分簡(jiǎn)單明了,內(nèi)存自我恢復(fù)功能強(qiáng)大。因此它非常適合系統(tǒng)過(guò)程管理和網(wǎng)絡(luò)程序開(kāi)發(fā)利用。通過(guò)平臺(tái)提供的各種各樣輸入/輸出端口,Python語(yǔ)言也可以輕松的控制各種其他電子設(shè)備以及傳感器,并收集外部環(huán)境的大數(shù)據(jù)。1.2履帶式機(jī)器人手臂智能車(chē)系統(tǒng)的發(fā)展及現(xiàn)狀遙控機(jī)械臂的設(shè)計(jì)和制造旨在培養(yǎng)我們的開(kāi)發(fā)能力和實(shí)踐動(dòng)手能力,以及思考問(wèn)題和處理問(wèn)題的能力,并且旨在將電子信息的各種各樣專(zhuān)業(yè)的理論知識(shí)經(jīng)過(guò)思考轉(zhuǎn)化為實(shí)踐

10、,通過(guò)理論聯(lián)系實(shí)際,并且可以能有效提高我們的各方面綜合素質(zhì)和能力。此外,各種傳感器、感應(yīng)器的開(kāi)發(fā)和使用、計(jì)算機(jī)技術(shù)的飛速發(fā)展和芯片集成度的迅猛提高使得自動(dòng)化技術(shù)在我們的生活中日益成熟,生活方式朝著人工智能的方向快速前進(jìn)。因此,我們大可以認(rèn)為該機(jī)械臂小車(chē)的設(shè)計(jì)大概是基于電子信息的發(fā)展技術(shù),通過(guò)我們各種傳感器的充分利用應(yīng)用以及與計(jì)算機(jī)還有通信網(wǎng)絡(luò)的高速結(jié)合。這使得智能汽車(chē)可以通過(guò)各種各樣的網(wǎng)絡(luò)中的聲音來(lái)判斷和控制。首先,它適用于我們當(dāng)今的自動(dòng)控制自動(dòng)技術(shù)。其次,它為智能化的發(fā)展未來(lái)研究做好了準(zhǔn)備鋪平了道路。1.3履帶式機(jī)械臂智能小車(chē)訓(xùn)練控制系統(tǒng)的意義隨著科學(xué)技術(shù)水平的發(fā)展,我們的生活越來(lái)越智能化,

11、人手相對(duì)大腦而言有太多的限制,例如,人手沒(méi)有太多的力量,不能在高溫、重傷風(fēng)、深海、外太空等特殊環(huán)境中工作。此外,隨著高科技時(shí)代的發(fā)展,一切都不是由人手完成的。因此,有必要設(shè)計(jì)一種機(jī)械臂來(lái)代替人的手臂。此外,大多數(shù)機(jī)械臂控制系統(tǒng)并不完美,控制起來(lái)也不復(fù)雜。為了使機(jī)器人爪到達(dá)某個(gè)目的地,需要幾條控制指令,超遠(yuǎn)程控制不能通過(guò)網(wǎng)絡(luò)進(jìn)行?;谶@些問(wèn)題,我們團(tuán)隊(duì)計(jì)劃設(shè)計(jì)這種智能機(jī)器人手臂。當(dāng)我們的控制系統(tǒng)發(fā)出命令以后,手機(jī)上面的應(yīng)用程序就可以根據(jù)我們的命令處理語(yǔ)音指令,然后再通過(guò)系統(tǒng)將命令發(fā)送給機(jī)械臂小車(chē),小車(chē)在這種情況下就會(huì)自己識(shí)別程序命令,然后處理指令,并根據(jù)指令與周?chē)沫h(huán)境咨詢相對(duì)應(yīng)的一些動(dòng)作,在這

12、個(gè)過(guò)程中,不需要人類(lèi)的參與,小車(chē)會(huì)自己動(dòng)作完成。圖1.2 信號(hào)傳輸機(jī)械臂的設(shè)計(jì)給人們帶來(lái)了極大的便利,生活中也越來(lái)越多的情況下,會(huì)使用機(jī)械臂幫助我們?cè)诜浅@щy的情況下緩存一些難以完成的事情, 2履帶式機(jī)械臂智能小車(chē)硬件設(shè)計(jì)本課題旨在設(shè)計(jì)一種智能小車(chē),硬件設(shè)計(jì)是整個(gè)系統(tǒng)設(shè)計(jì)的基礎(chǔ),而需求分析是系統(tǒng)硬件設(shè)計(jì)的前提,根據(jù)需求分析對(duì)硬件進(jìn)行模塊化的設(shè)計(jì),整個(gè)系統(tǒng)分為Raspberry Pi平臺(tái)系統(tǒng)、電源轉(zhuǎn)換電路、JTAG調(diào)試電路、數(shù)據(jù)采集電路、電機(jī)驅(qū)動(dòng)電路、無(wú)線通信電路等,模塊化設(shè)計(jì)不僅使系統(tǒng)對(duì)硬件資源的分配更合理,同時(shí)方便系統(tǒng)調(diào)試,下面具體介紹智能小車(chē)的硬件設(shè)計(jì)。該小車(chē)能夠檢測(cè)環(huán)境溫度和煙霧濃度,并

13、將采集到的數(shù)據(jù)發(fā)送到計(jì)算機(jī),實(shí)現(xiàn)計(jì)算機(jī)的在線監(jiān)測(cè);同時(shí)小車(chē)還具有避障功能。根據(jù)系統(tǒng)的設(shè)計(jì)需求,本智能小車(chē)實(shí)現(xiàn)以下功能。 (1) 運(yùn)動(dòng)功能智能小車(chē)可以進(jìn)行后退、前進(jìn)、左右拐彎的運(yùn)動(dòng) (2) 避障功能可以避開(kāi)障礙物,選擇一條無(wú)碰路徑,其中涉及到傳感器的選擇和路徑規(guī)劃算法; (3) 測(cè)溫功能可以知曉溫度的變化,達(dá)到測(cè)量的程度; (4) 煙霧報(bào)警功能可以用來(lái)測(cè)量環(huán)境中的煙霧及有害氣體,濃度超標(biāo)時(shí)具有報(bào)警功能。 (5) 通信數(shù)據(jù)功能用無(wú)線通信數(shù)據(jù)來(lái)建立和計(jì)算機(jī)的連接。(6) 上位機(jī)顯示功能計(jì)算機(jī)能夠清晰的顯示智能小車(chē)采集到的數(shù)據(jù),將小車(chē)的位置還有運(yùn)動(dòng)軌跡以及各種數(shù)據(jù)進(jìn)行上傳。智能小車(chē)的硬件設(shè)計(jì)是以需求分

14、析為基礎(chǔ),選擇合適的控制器和傳感器,其中包括傳感器超聲波傳感器、溫度傳感器、煙霧檢測(cè)傳感器、電源電路與控制器接口電路、電機(jī)驅(qū)動(dòng)電路、調(diào)試接口電路等,而這些功能模塊,現(xiàn)在的Raspberry Pi平臺(tái)都已具備。 (1) 電源轉(zhuǎn)換電路 由于各元器件的工作電壓不盡相同,為了保證系統(tǒng)的正常運(yùn)行,需要設(shè)計(jì)出不同數(shù)值的電壓,而超聲波傳感器、溫度傳感器、氣體傳感器的工作電壓范圍是+5V,這就需要通過(guò)用系統(tǒng)電路模塊設(shè)計(jì)的要求來(lái)研制出不一樣的電壓值,這才能與系統(tǒng)的需求相掛鉤。因此,電源電路是系統(tǒng)設(shè)計(jì)的基礎(chǔ)。在這里Raspberry Pi采用的是5V,2A的Micro USB供電。(2) 無(wú)線通信模塊 通信模塊設(shè)

15、計(jì)采用 RS-232 電平轉(zhuǎn)換和 CC1101 無(wú)線收發(fā)芯片。通信模塊可以將智能小車(chē)采集到的數(shù)據(jù)實(shí)時(shí)地傳輸?shù)接?jì)算機(jī),同時(shí)短距離抗外干擾性強(qiáng)、可靠性比較高、地理環(huán)境因素限制少、實(shí)用方便快捷。 (3) JTAG 接口電路 JTAG 電路的主要作用就是用于燒寫(xiě) FLASH,由于 PC 機(jī)上是沒(méi)有 JTAG 接口的,同時(shí) JTAG 接口還可以用來(lái)調(diào)試程序,而調(diào)試程序?yàn)榱送ㄟ^(guò) JTAG 接口去調(diào)試目標(biāo)板上的程序,同樣是使用 PC 的并口轉(zhuǎn) JTAG 接口來(lái)實(shí)現(xiàn)與目標(biāo)板的通信。 (4) 溫度采集電路 溫度傳感器輸出信號(hào)有三種模式:數(shù)字式溫度傳感器、邏輯輸出溫度傳感器、模擬式溫度傳感器。此傳感器外圍配加的模

16、數(shù)用電路表示較為復(fù)雜,精確度比較低,本課題中選用數(shù)字溫度傳感器 DS18B20,數(shù)字溫度傳感器準(zhǔn)確度非常高、接線簡(jiǎn)單、性能穩(wěn)定的優(yōu)點(diǎn)。 (5) 氣體檢測(cè)傳感器 氣體檢測(cè)模塊用于檢測(cè)環(huán)境中有毒氣體的濃度,當(dāng)氣體濃度超過(guò)設(shè)定值時(shí),模塊會(huì)報(bào)警提示。 (6) 超聲波測(cè)距傳感器 超聲波測(cè)距傳感器主要有紅外線、激光以及超聲波測(cè)距傳感器三種。紅外的探測(cè)距離較短,只有幾十厘米,一般與其他傳感器結(jié)合使用。激光能夠?qū)崿F(xiàn)遠(yuǎn)距離測(cè)量,具有速度快、精確度高、抗干擾能力強(qiáng)、量程大,光線集中等優(yōu)點(diǎn),但其視場(chǎng)窄,難以覆蓋必需的測(cè)量范圍,再加上它的價(jià)格較貴,所以不是很適合用在小車(chē)上。課題中的智能小車(chē)用超聲波傳感器來(lái)測(cè)量距離。

17、(7) 驅(qū)動(dòng)電路模塊 驅(qū)動(dòng)電路是小車(chē)運(yùn)動(dòng)的基礎(chǔ),主要負(fù)責(zé)將來(lái)自控制器的控制信號(hào)轉(zhuǎn)化為能夠驅(qū)動(dòng)電機(jī)的信號(hào)模塊,電機(jī)的驅(qū)動(dòng)電路使用分立元件構(gòu)成的驅(qū)動(dòng)電路還有采用專(zhuān)業(yè)電機(jī)驅(qū)動(dòng)芯片,分立元件構(gòu)成的驅(qū)動(dòng)電路,這種芯片結(jié)構(gòu)較為簡(jiǎn)單、價(jià)格便宜,電路工作性能表現(xiàn)的不穩(wěn)定,所以選用專(zhuān)用芯片構(gòu)成驅(qū)動(dòng)電路。 (8)智能小車(chē)車(chē)體結(jié)構(gòu) 移動(dòng)機(jī)器人的車(chē)體結(jié)構(gòu)主要有足步、輪式以及履帶式三種類(lèi)型。足步式機(jī)器人從機(jī)械結(jié)構(gòu)設(shè)計(jì)到控制算法都比較復(fù)雜,主要應(yīng)用在崎嶇不平的路面,但是其機(jī)動(dòng)性相比自然界的節(jié)肢動(dòng)物,還是有很大差距。履帶式的實(shí)際支撐面積比較大,作業(yè)于松軟土地和泥場(chǎng),越野性能好,但是履帶機(jī)器人的體積和重量都很大,控制算法也有

18、待發(fā)展和完善。輪式機(jī)器人的運(yùn)動(dòng)速度還有方向易控制,操作容易。 輪式機(jī)器人的總類(lèi)也有很多,一般為三輪或四輪,三輪車(chē)的所有的車(chē)輪與地面都能保持良好的接觸,可滿足一般的使用要求,但穩(wěn)定性和承受能力較差。四輪結(jié)構(gòu)是最常見(jiàn)的結(jié)構(gòu)形式,具有良好的穩(wěn)定性和承受能力。但是轉(zhuǎn)向結(jié)構(gòu)有所不同,一種是前兩輪由轉(zhuǎn)向電機(jī)控制負(fù)責(zé)轉(zhuǎn)向,后兩輪由驅(qū)動(dòng)電機(jī)控制負(fù)責(zé)前進(jìn)和后退,這種結(jié)構(gòu)的車(chē)體轉(zhuǎn)向的角度不容易控制,而且轉(zhuǎn)向半徑也較大。另一種如圖 2-2 左右兩輪 A、B 由兩個(gè)電機(jī)單獨(dú)控制來(lái)實(shí)現(xiàn)小車(chē)的前行、后退,前后兩個(gè)為萬(wàn)向輪 C、D 輔助支撐作用,兩個(gè)驅(qū)動(dòng)輪之間差速來(lái)實(shí)現(xiàn)轉(zhuǎn)向功能,這種結(jié)構(gòu)的小車(chē)轉(zhuǎn)向更加靈活,控制精度較高,采

19、用差速轉(zhuǎn)向的方式。2.1履帶式機(jī)械手智能小車(chē)供電方案硬件系統(tǒng)整個(gè)工作基礎(chǔ)是電源,地位較高,人們很容易忽視,電源系統(tǒng)如果注意得當(dāng),整個(gè)系統(tǒng)的故障將會(huì)大大降低,設(shè)計(jì)電源的整個(gè)過(guò)程就是是一個(gè)權(quán)衡的過(guò)程,必須考慮如下因素:電源的功率;芯片及系統(tǒng)的散熱;輸出紋波;安全因素;電磁兼容和電磁干擾;體積限制及成本限制。 智能小車(chē)控制系統(tǒng)有多種電源需求,MiniARM 工控板需要+5V 和+3.3V 電壓,無(wú)線通信模塊是+5V 和+3.3V 電源,超聲波傳感器和氣體傳感器是+5V 電源,所以要設(shè)計(jì)不同電壓值的電源。由于系統(tǒng)對(duì) A/D 功能要求不高,所以模擬電源與數(shù)字電源沒(méi)有分開(kāi)供電。 考慮到小車(chē)的本身的移動(dòng)性,

20、所以交流轉(zhuǎn)直流的電壓開(kāi)關(guān)模塊不方便使用,所以選用了 9V(6 節(jié) 1.5V 的直流電池)直流電源,9V 電源經(jīng)過(guò) 7805 變壓芯片,得到+5V 電壓,電路圖如 3-3 所示:其中 LED6 為電源指示燈,R27 為限流電阻,T2、T4 為電路測(cè)試點(diǎn),C4、C5為輸入端濾波電容,C6、C7 為輸出端濾波電容。7805 是大多情況下使用的三端穩(wěn)壓集成芯片,最高輸入極限電壓為 36V,最低輸入電壓為 7V,最佳的工作狀態(tài)是輸入電壓與輸出電壓間的壓差為 34V 左右,輸出電壓為 5V,電路內(nèi)有過(guò)熱或者是調(diào)整管的電路保護(hù),用起來(lái)實(shí)用、方便,而且便宜。在實(shí)際應(yīng)用中,如果輸出的功率很大,要在穩(wěn)壓電路上安裝

21、比較大一點(diǎn)的散熱器。 +5V 既是末級(jí)電源,也是+3.3V 電源的前級(jí)電源。MiniARM 控制器需要的+3.3V電壓為+5V電壓通過(guò) SPX1117-3.3 穩(wěn)壓芯片來(lái)達(dá)到效果的,電壓轉(zhuǎn)換的電路如下圖。圖2.1 電壓轉(zhuǎn)換電路圖SPX1117 為一個(gè)低功耗、低壓差正向電壓調(diào)節(jié)器,其輸出電壓有 3.3V、3.0V、2.85V、1.8V、1.5V 等,800mA 的穩(wěn)定輸出電流,800mA 時(shí)低壓差為 1.1V。SPX1117 有多種封裝,本設(shè)計(jì)選用 TO-220。一個(gè) 10F 輸出電容可有效地保證穩(wěn)定性,同時(shí)還具有電流限制和熱保護(hù)功能,經(jīng)常用于高效率、低功耗設(shè)計(jì)中。 電源去耦電路的作用是去除電路

22、間的相互干擾信號(hào),從而減小 PCB 上的各種噪聲,使電源能夠穩(wěn)定工作。高頻器件運(yùn)轉(zhuǎn)時(shí),它們的電流是不連續(xù)的,間斷的,頻率還很高,在很短的距離內(nèi),線路產(chǎn)生的感抗會(huì)非常大,會(huì)導(dǎo)致器件在需要電流的時(shí)候,不能及時(shí)的供給,當(dāng)用大電容濾波時(shí),由于電解電容器繞層很多,因此有明顯的寄生電感,也會(huì)干擾用電設(shè)備的正常運(yùn)行,此時(shí)小電容就非常適合,所以要用多個(gè)小電容并聯(lián)起來(lái)使用。電源去耦電路如圖圖2.2 電源去耦合電路圖核心板上設(shè)計(jì)了復(fù)位電路,如圖3-6所示。按下按鍵后,會(huì)強(qiáng)制將CPU的復(fù)位引腳拉低,從而達(dá)到使系統(tǒng)復(fù)位的目的。M2005-NU11工控板含有ISP功能,因此可以設(shè)計(jì)一個(gè)ISP電路,如圖3-6 所示。LP

23、C2200芯片內(nèi)有一段引導(dǎo)程序,上電后被執(zhí)行,主要用來(lái)檢查P0.14引腳電平,如果是低,則進(jìn)入ISP程序,如果為高,則檢查用戶代碼部分的中斷向量和是否為0,如果校驗(yàn)正確,則執(zhí)行用戶代碼;如果無(wú)有效用戶代碼,則執(zhí)行ISP程序。在本設(shè)計(jì)中如果程序調(diào)試完畢后要脫機(jī)運(yùn)行,JP1跳線必須要斷開(kāi)。 圖2.3 ISP及復(fù)位電路圖2.2履帶式機(jī)械手智能小車(chē)控制中心( 一) 控制系統(tǒng)。機(jī)器小車(chē)所采用的控制平臺(tái)是Raspberry Pi,RaspberryPI是一種嵌入式計(jì)算機(jī)硬件的平臺(tái),他的內(nèi)存大,占用體積小,由英國(guó)慈善組織 “拉斯伯瑞皮基金會(huì)”發(fā)布成立。該基金會(huì)建立這個(gè)的目的是在“改善學(xué)校的里面的計(jì)算機(jī)科學(xué)和

24、相關(guān)的一些學(xué)科教育,使計(jì)算機(jī)的學(xué)習(xí)與使用更加有趣”。計(jì)算機(jī)平臺(tái)使用ARM11架構(gòu)處理器,開(kāi)始使用簡(jiǎn)化的Linux操作系統(tǒng)?;臼褂闷脚_(tái)的硬件的尺寸大致在80mm50mm(也就類(lèi)似于普通集成電路卡上面的尺寸)??梢詫?shù)莓派連接電視、顯示器、鍵盤(pán)鼠標(biāo)等設(shè)備使用。( 二) 遠(yuǎn)程控制技術(shù)。本文選擇藍(lán)牙技術(shù)進(jìn)行遠(yuǎn)程控制, HC - 06 藍(lán)牙模塊。在機(jī)器小車(chē)的制造中藍(lán)牙模塊的作用主 要是接收 Android 手機(jī)發(fā)出的信號(hào),然后作用于單片機(jī)控制 系統(tǒng),從而實(shí)現(xiàn) Android 手機(jī)對(duì)機(jī)器小車(chē)的運(yùn)行遙控。 ( 三) 驅(qū)動(dòng)電路仿真。機(jī)器小車(chē)的底盤(pán)是由四個(gè)電機(jī)組 成,行走時(shí)只需要控制四個(gè)電機(jī)的啟停和正反轉(zhuǎn)即可

25、。在本 課題中是將左右兩邊的兩個(gè)電機(jī)分別串聯(lián)在一起,然后與驅(qū) 動(dòng)模塊連接。機(jī)器小車(chē)上配有機(jī)器臂,機(jī)器臂工作時(shí)應(yīng)處于 慢速狀態(tài),而將兩個(gè)電機(jī)串聯(lián)的方法剛好滿足了這一要求。 驅(qū)動(dòng)模塊使用的是 L298N 驅(qū)動(dòng)芯片,其仿真效果如下圖。 圖2.3 L298N 驅(qū)動(dòng)芯片仿真效果圖2.3履帶式機(jī)械手智能小車(chē)電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)。使用單片機(jī)實(shí)現(xiàn)復(fù)位,I / O 控制,PWM 調(diào)速等功能。 目前大多采用開(kāi)關(guān)型驅(qū)動(dòng)方式驅(qū)動(dòng)直流電機(jī),最常見(jiàn)的驅(qū)動(dòng) 方式是脈沖寬度制(PWM)。 本系統(tǒng)電機(jī)驅(qū)動(dòng)芯片采用 L298N,采 用單片機(jī) PWM 調(diào)速,L298N 驅(qū)動(dòng)兩組直流電機(jī),其單組驅(qū)動(dòng)電流 可達(dá) 2 A。 電機(jī)驅(qū)動(dòng)模塊原理

26、如圖所示。 圖2.4 電機(jī)驅(qū)動(dòng)模塊原理如圖Openwrt 是一個(gè)小型 Linux 系統(tǒng),路由器安裝上 Openwrt 后, 其功能將變?yōu)楫惓?qiáng)大,可作為一臺(tái)小型服務(wù)器,安裝好數(shù)據(jù)轉(zhuǎn)發(fā) 和監(jiān)控軟件,即可以實(shí)現(xiàn)與單片機(jī)的串口通信,并用 WIFI 傳輸視 頻信號(hào),實(shí)現(xiàn)視頻監(jiān)控功能,本系統(tǒng)安裝的視頻監(jiān)控軟件為 MJPG 。攝像頭通過(guò) USB 接口與路由器相連接,安裝好驅(qū)動(dòng) 和視頻監(jiān)控軟件后即可通過(guò)開(kāi)發(fā)路由 的 WIFI 功能傳輸視頻信號(hào)。3 .履帶式機(jī)械臂智能小車(chē)軟件設(shè)計(jì)語(yǔ)音指令由移動(dòng)應(yīng)用接收并通過(guò)網(wǎng)絡(luò)發(fā)送到汽車(chē)的ARM9處理器。ARM9通過(guò)網(wǎng)絡(luò)將機(jī)器人手臂周?chē)沫h(huán)境和汽車(chē)的狀態(tài)返回給操作者,從而實(shí)現(xiàn)

27、數(shù)據(jù)交互。如何使兩臺(tái)機(jī)器在不同的內(nèi)部網(wǎng)中進(jìn)行通信一直是一個(gè)難以解決的問(wèn)題。一般的解決方案是:使用服務(wù)器作為中介,首先將信息發(fā)送到外部網(wǎng)絡(luò)服務(wù)器,然后將其轉(zhuǎn)發(fā)到另一個(gè)局域網(wǎng)計(jì)算機(jī),或者通過(guò)虛擬局域網(wǎng)。然而,由于目前通信軟件的數(shù)量眾多,借用這些通信軟件的服務(wù)器是一個(gè)很好的選擇。我們的解決方案是利用微信開(kāi)源軟件,將自己開(kāi)發(fā)的應(yīng)用模塊以插件的方式嵌入到微信中。此外,汽車(chē)平臺(tái)還配備了ARM9處理器,可以作為安卓操作系統(tǒng)使用,因此我們可以安裝一個(gè)微信軟件。在本項(xiàng)目中,我們主要使用控制器的語(yǔ)音信息來(lái)操作機(jī)器人車(chē),但我們需要遠(yuǎn)程控制(不同網(wǎng)絡(luò)中的通信控制),因此不建議使用硬件設(shè)備來(lái)實(shí)現(xiàn)語(yǔ)音控制指令識(shí)別轉(zhuǎn)換,因

28、此在這里我們使用我們自己的應(yīng)用插件來(lái)執(zhí)行語(yǔ)音識(shí)別C。翻轉(zhuǎn)。在此之前,應(yīng)用程序?qū)⒄Z(yǔ)音信息識(shí)別為文本,然后通過(guò)網(wǎng)絡(luò)將文本信息發(fā)送給機(jī)器人臂車(chē)。機(jī)器人臂車(chē)接收到文本指令后,將其轉(zhuǎn)換為機(jī)器指令,最終達(dá)到語(yǔ)音控制。從軟件系統(tǒng)的角度,介紹了我們的智能車(chē)。眾所周知,軟件是所有硬件的靈魂。沒(méi)有它,無(wú)論硬件設(shè)計(jì)多么精致,都很難充分發(fā)揮它的作用。智能小車(chē)系統(tǒng)有三個(gè)組成部分:環(huán)境感知、決策規(guī)劃還有控制執(zhí)行。環(huán)境感知的輸出可以作為決策規(guī)劃的輸入。決策規(guī)劃的輸出是控制執(zhí)行的輸入??刂茍?zhí)行的輸出控制智能車(chē)輛適應(yīng)環(huán)境狀態(tài)的變化,從而形成實(shí)時(shí)閉環(huán)。隨著智能車(chē)的發(fā)展,單智能車(chē)處理問(wèn)題的能力有限,往往只處理簡(jiǎn)單的單輛車(chē)。很難適應(yīng)

29、連續(xù)的多任務(wù)。其次,它們適應(yīng)有限的環(huán)境,通常在特定的場(chǎng)景中。此外,盡管不同的智能車(chē)可以處理不同的任務(wù),但是在一定程度上,它滿足了我們的需求,但是機(jī)器人協(xié)作仍然沒(méi)有什么突破,我們無(wú)法處理復(fù)雜的策略。第三,不同的機(jī)器人可以執(zhí)行不同的任務(wù),收集大量的信息,但它們不能共享信息。他使用機(jī)器人?;谝陨蠁?wèn)題,我們將服務(wù)器作為智能車(chē)的服務(wù)控制中心,利用服務(wù)器作為智能小車(chē)系統(tǒng)的控制中心,有以下好處: (1) 信息共享:智能汽車(chē)共享服務(wù)器知識(shí)庫(kù)中所有環(huán)境的信息,因此當(dāng)汽車(chē)在不熟悉的環(huán)境中工作時(shí),您可以在工作前訪問(wèn)數(shù)據(jù)庫(kù),詢問(wèn)環(huán)境中是否有任何環(huán)境字母。如果服務(wù)器具有當(dāng)前的環(huán)境信息,則環(huán)境信息將傳輸?shù)街悄苘?chē)。獲取環(huán)

30、境信息當(dāng)汽車(chē)直接根據(jù)獲得的信息進(jìn)行任務(wù)處理后,汽車(chē)就保存了對(duì)環(huán)境信息的探索,肯定了。這只是個(gè)別車(chē)的很多,如果車(chē)的數(shù)量增加,效益就不能低估。 (2) 多車(chē)協(xié)作:當(dāng)智能車(chē)處理任務(wù)相對(duì)困難時(shí),需要多輛智能車(chē)的配合。例如,在A房間,有一件貨物需要智能車(chē)A運(yùn)到B房間,距離A房間2公里,如果是單個(gè)智能車(chē)A運(yùn)到,可能需要10分鐘,而A車(chē)的動(dòng)力只能支持運(yùn)行5分鐘才能到達(dá)C位置,在這種情況下,只有A車(chē)不能完成任務(wù)。智能車(chē)A把任務(wù)加狀態(tài)信息發(fā)送置服務(wù)器,服務(wù)器用收到的數(shù)據(jù)在C處搜索可使用智能小車(chē)。這個(gè)發(fā)現(xiàn)發(fā)現(xiàn)發(fā)現(xiàn)在C點(diǎn)附近的智能車(chē)B中有足夠的電力,然后服務(wù)器將信息發(fā)送給智能車(chē)B,這樣它就可以在智能車(chē)B處提貨,并來(lái)

31、完成A沒(méi)有完成的任務(wù)。(3) 遠(yuǎn)程監(jiān)控:這是智能系統(tǒng)的控制中心,要對(duì)所有的智能小車(chē)進(jìn)行實(shí)時(shí)監(jiān)控。該方法的優(yōu)點(diǎn)是能及時(shí)檢測(cè)智能車(chē)的故障,避免不必要的損失。此外,當(dāng)汽車(chē)不知道如何處理復(fù)雜的道路條件時(shí),智能汽車(chē)的運(yùn)動(dòng)可以手動(dòng)和遠(yuǎn)程控制。 (4) 知識(shí)存儲(chǔ):知識(shí)庫(kù)是服務(wù)器的核心模塊當(dāng)中十分重要的一個(gè)?,F(xiàn)在處在數(shù)據(jù)時(shí)代。數(shù)據(jù)就像地雷。數(shù)量和內(nèi)容越多,包含的價(jià)值就越大。此軟件系統(tǒng)設(shè)計(jì)用C語(yǔ)言模塊化結(jié)構(gòu), 包括主程序、pwm調(diào)速子程序、電機(jī)驅(qū)動(dòng)子程序、 中斷子程序、循跡行駛子程序、無(wú)線遙控子程序、避障行駛子程序、按鍵切換子程序等。系統(tǒng)主程序流程圖如下圖所示。 圖3.1 系統(tǒng)主程序流程圖3.1履帶式機(jī)械手智能

32、小車(chē)路徑規(guī)劃設(shè)計(jì)系統(tǒng)是用集成型紅外對(duì)管對(duì)尋跡單元的作為傳感器使用,紅外線發(fā)射紅外線后,紅外線二極管再進(jìn)行接收數(shù)據(jù)。使用紅外線進(jìn)行發(fā)射,可見(jiàn)光對(duì)接收信號(hào)幾乎沒(méi)有影響,用射極輸出器對(duì)信號(hào)屏蔽。小車(chē)底部的一處紅外線收發(fā)對(duì)管遇到黑帶時(shí),還能檢測(cè)到輸入電平為高電平,反過(guò)來(lái)是低電平。 3.2履帶式機(jī)械手智能小車(chē)驅(qū)動(dòng)設(shè)計(jì)智能小車(chē)的電機(jī)選用的是直流減速電機(jī),即齒輪減速電機(jī),是在普通直流電機(jī)的基礎(chǔ)上,加上配套齒輪減速箱。齒輪減速箱的作用是,提供較低的轉(zhuǎn)速,較大的力矩。同時(shí),齒輪箱不同的減速比可以提供不同的轉(zhuǎn)速和力矩。電機(jī)的工作電壓為3-6V,電壓為 6V 時(shí),無(wú)負(fù)載時(shí)轉(zhuǎn)速為 100 轉(zhuǎn)/分鐘,無(wú)負(fù)載時(shí)電流為 7

33、0mA,減速比為 1:48。 電機(jī)驅(qū)動(dòng)電路連接圖25如如 3-15 所示,主要包括光電耦合器件、電機(jī)驅(qū)動(dòng)芯片、整流電路三個(gè)部分。光電耦合器件選用的是 TLP521-4,其內(nèi)部含有四組光耦管,用來(lái)將控制信號(hào)與負(fù)載完全隔離,可以增加安全性,減小信號(hào)之間的干擾;電機(jī)驅(qū)動(dòng)芯片選用的是 L298N,為 15 腳 Multiwatt 封裝,其中 IN1、IN2、IN3、IN4 為控制信號(hào)輸入端,VS為電源電壓,最大可接 36V,VSS為工作電壓,最小 4.5V,最大 36V,在應(yīng)用中根據(jù)實(shí)際情況選擇 5V 電壓。整流電路選用 8 個(gè)二極管IN4007。圖3.2 整流電路圖測(cè)試分析:控制驅(qū)動(dòng)電路的輸入電平,

34、然后用萬(wàn)用表測(cè)試輸出電壓的大小,檢驗(yàn)與預(yù)定的結(jié)果一致時(shí),接通電機(jī),編寫(xiě)電機(jī)驅(qū)動(dòng)程序,小車(chē)能夠?qū)崿F(xiàn)前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)的功能。 3.2程序代碼1. 初始化以及模式控制/* Function main* brief 對(duì)串口發(fā)送過(guò)來(lái)的數(shù)據(jù)解析,并執(zhí)行相應(yīng)的指令* paramin void* retval void* par History 無(wú)*/int main() g_modeSelect = 1; /wiringPi初始化 wiringPiSetup(); digitalWrite(OutfirePin, HIGH); /初始化電機(jī)驅(qū)動(dòng)IO為輸出方式 pinMode(Left_motor_go

35、, OUTPUT); pinMode(Left_motor_back, OUTPUT); pinMode(Right_motor_go, OUTPUT); pinMode(Right_motor_back, OUTPUT); /創(chuàng)建兩個(gè)軟件控制的PWM腳 softPwmCreate(Left_motor_pwm,0,255); softPwmCreate(Right_motor_pwm,0,255); /定義左右傳感器為輸入接口 pinMode(AvoidSensorLeft, INPUT); pinMode(AvoidSensorRight, INPUT); /定義尋跡紅外傳感器為輸入模式

36、pinMode(TrackSensorLeftPin1, INPUT); pinMode(TrackSensorLeftPin2, INPUT); pinMode(TrackSensorRightPin1, INPUT); pinMode(TrackSensorRightPin2, INPUT); /定義光敏電阻引腳為輸入模式 pinMode(LdrSensorLeft, INPUT); pinMode(LdrSensorRight, INPUT); /初始化蜂鳴器IO為輸出方式 pinMode(buzzer, OUTPUT); digitalWrite(buzzer, HIGH); /初始化

37、超聲波引腳模式 pinMode(EchoPin, INPUT); /定義超聲波輸入腳 pinMode(OutfirePin, OUTPUT); /初始化RGB三色LED的IO口為輸出方式,并初始化 pinMode(LED_R, OUTPUT); pinMode(LED_G, OUTPUT); pinMode(LED_B, OUTPUT); softPwmCreate(LED_R,0,255); softPwmCreate(LED_G,0,255); softPwmCreate(LED_B,0,255); /初始化舵機(jī)引腳為輸出模式 pinMode(FrontServoPin, OUTPUT);

38、 /初始化舵機(jī)引腳為輸出模式 pinMode(FrontServoPin, OUTPUT); pinMode(ServoUpDownPin, OUTPUT); pinMode(ServoLeftRightPin, OUTPUT); /舵機(jī)位置初始化 servo_init(); /打開(kāi)串口設(shè)備,如若失敗則會(huì)打印錯(cuò)誤信息return -1; while(1) /調(diào)用串口解包函數(shù) serialEvent(); if (NewLineReceived) printf(serialdata:%sn,InputString); serial_data_parse(); /調(diào)用串口解析函數(shù)NewLineRe

39、ceived = 0; /切換不同功能模式 switch (g_modeSelect) case 1: break; /暫時(shí)保留 case 2: Tracking_Mode(); break; /巡線模式 /舵機(jī)云臺(tái)的控制 Servo_Control_Thread(); /讓串口平均每秒發(fā)送采集的數(shù)據(jù)給上位機(jī) if(g_modeSelect = 1) serialtime-; if(serialtime =0) count-; serialtime = 5000; if(count = 0) serial_data_postback(fd); serialtime = 5000; count

40、= 20; usleep(10); serialClose(fd); /關(guān)閉串口 return 0;2. 舵機(jī)旋轉(zhuǎn)一定的角度/* Function servo_pulse* 控制0-180度* paramin1 ServPin:舵機(jī)控制引腳* paramin2 myangle:舵機(jī)轉(zhuǎn)動(dòng)指定的角度* paramout void* retval void* par History 無(wú)*/void servo_pulse(int v_iServoPin, int myangle) int PulseWidth; /定義脈寬變量 delayMicroseconds(PulseWidth); /延時(shí)脈寬

41、值的微秒數(shù)* paramin pos:指定的角度* paramout void* retval void* par History 無(wú)*/void servo_appointed_detection(int pos) int i = 0;3. 超聲波測(cè)距函數(shù)/* Function Distance* brief 超聲波測(cè)一次前方的距離* paramin void* paramout void* retval float:distance返回距離值* par History 無(wú)*/float Distance()float distance;struct timeval tv1;struct t

42、imeval tv2;struct timeval tv3;struct timeval tv4;long start, stop;digitalWrite(TrigPin, LOW);delayMicroseconds(2);start = tv3.tv_sec * 1000000 + tv3.tv_usec;while(!digitalRead(EchoPin) = 1)return -1; /超時(shí)返回-1 start = tv1.tv_sec*1000000+tv1.tv_usec;while(!digitalRead(EchoPin) = 0)gettimeofday(&tv3,NUL

43、L); /超時(shí)重測(cè)機(jī)制開(kāi)始計(jì)時(shí)stop = tv3.tv_sec*1000000+tv3.tv_usec;if (stop - start) 30000)return -1; /超時(shí)重測(cè)機(jī)制結(jié)束計(jì)時(shí)gettimeofday(&tv2, NULL); /當(dāng)echo腳電平變低時(shí)結(jié)束計(jì)時(shí) start = tv1.tv_sec * 1000000 + tv1.tv_usec;stop = tv2.tv_sec * 1000000 + tv2.tv_usec; distance = (float)(stop - start)/1000000 * 34000 / 2;printf(distance: %f

44、n, distance);return distance;4. 小車(chē)前進(jìn)、后退、剎車(chē)、左拐、右拐等運(yùn)行函數(shù)/* Function run* brief 小車(chē)前進(jìn)* retval void* par History 無(wú)*/void run(unsigned int LeftCarSpeedControl,unsigned int RightCarSpeedControl) /左電機(jī)前進(jìn) softPwmWrite(Left_motor_pwm, LeftCarSpeedControl*0.95); /右電機(jī)前進(jìn) softPwmWrite(Right_motor_pwm, RightCarSpeed

45、Control); /* Function brake* brief 小車(chē)剎車(chē)* paramin void* paramout void* retval void* par History 無(wú)*/void brake() digitalWrite(Left_motor_go, LOW); digitalWrite(Left_motor_back, LOW); digitalWrite(Right_motor_go, LOW); digitalWrite(Right_motor_back, LOW); /* Function left* par History 無(wú)*/void left(unsi

46、gned int LeftCarSpeedControl,unsigned int RightCarSpeedControl) /左電機(jī)停止 softPwmWrite(Left_motor_pwm, LeftCarSpeedControl); /右電機(jī)前進(jìn) softPwmWrite(Right_motor_pwm, RightCarSpeedControl); /* Function spin_left* brief 小車(chē)原地左轉(zhuǎn)(左輪后退,右輪前進(jìn))* retval void* par History 無(wú)*/void spin_left(unsigned int LeftCarSpeedCo

47、ntrol,unsigned int RightCarSpeedControl) /左電機(jī)后退 softPwmWrite(Left_motor_pwm, LeftCarSpeedControl); /右電機(jī)前進(jìn) softPwmWrite(Right_motor_pwm, RightCarSpeedControl); /* Function right* brief 小車(chē)右轉(zhuǎn)(左輪前進(jìn),右輪不動(dòng))* paramout void* retval void* par History 無(wú)*/void right(unsigned int LeftCarSpeedControl,unsigned int

48、 RightCarSpeedControl) /左電機(jī)前進(jìn) digitalWrite(Left_motor_go, HIGH); /左電機(jī)前進(jìn)使能 digitalWrite(Left_motor_back, LOW); /左電機(jī)后退禁止 softPwmWrite(Left_motor_pwm, LeftCarSpeedControl); /右電機(jī)停止 softPwmWrite(Right_motor_pwm, RightCarSpeedControl); /* Function spin_right* brief 小車(chē)原地右轉(zhuǎn)(右輪后退,左輪前進(jìn))* paramout void* retval

49、 void* par History 無(wú)*/void spin_right(unsigned int LeftCarSpeedControl,unsigned int RightCarSpeedControl) /左電機(jī)前進(jìn) softPwmWrite(Left_motor_pwm, LeftCarSpeedControl); /右電機(jī)后退 softPwmWrite(Right_motor_pwm, RightCarSpeedControl); /* Function back* brief 小車(chē)后退* paramout void* retval void* par History 無(wú)*/voi

50、d back(unsigned int LeftCarSpeedControl,unsigned int RightCarSpeedControl) /左電機(jī)后退 softPwmWrite(Left_motor_pwm, LeftCarSpeedControl); /右電機(jī)后退 softPwmWrite(Right_motor_pwm, RightCarSpeedControl);5. 小車(chē)巡線模式函數(shù)/*模式2 巡線模式*/* Function Tracking_Mode* brief 巡線模式* paramin1 void* paramout void* retval void* par

51、History 無(wú)*/int g_trackstate = 0;void Tracking_Mode() char *p=ReturnTemp; memset(ReturnTemp,0,sizeof(ReturnTemp); track_test(); /在巡線過(guò)程中發(fā)送巡線傳感器效果 serialtime-; if(serialtime = 0) count-;serialtime = 5000; if(count = 0) strcat(p,4WD,CSB0,PV8.4,GS0,LF); strcat(p,infrared_track_value); strcat(p,HW00,GM00#

52、); serialPrintf(fd, p); serialtime = 5000; count = 20; /四路循跡引腳電平狀態(tài) / 0 0 X 0 / 1 0 X 0 / 0 1 X 0 /以上6種電平狀態(tài)時(shí)小車(chē)原地右轉(zhuǎn),速度為250,延時(shí)80ms /處理右銳角和右直角的轉(zhuǎn)動(dòng) if ( (TrackSensorLeftValue1 = LOW | TrackSensorLeftValue2 = LOW) & TrackSensorRightValue2 = LOW) g_trackstate = 1; spin_right(200, 200); / luz 250, 250 delay(

53、80); /四路循跡引腳電平狀態(tài) / 0 X 0 0 / 0 X 0 1 / 0 X 1 0 /處理左銳角和左直角的轉(zhuǎn)動(dòng) else if ( TrackSensorLeftValue1 = LOW & (TrackSensorRightValue1 = LOW | TrackSensorRightValue2 = LOW) g_trackstate = 2; spin_left(200, 200); / luz 250, 250 delay(80); / 0 X X X /最左邊檢測(cè)到 else if ( TrackSensorLeftValue1 = LOW) g_trackstate =

54、3; spin_left(160, 160); /luz 200, 200 /delay(10); / X X X 0 /最右邊檢測(cè)到 else if ( TrackSensorRightValue2 = LOW ) g_trackstate = 4; spin_right(160, 160); /luz 200, 200 /delay(10); /四路循跡引腳電平狀態(tài) / X 0 1 X /處理左小彎 else if ( TrackSensorLeftValue2 = LOW & TrackSensorRightValue1 = HIGH) g_trackstate = 5; left(0,

55、 176); /luz 0, 220 /四路循跡引腳電平狀態(tài) / X 1 0 X /處理右小彎 else if (TrackSensorLeftValue2 = HIGH & TrackSensorRightValue1 = LOW) g_trackstate = 6; right(176, 0); /luz 220,0 /四路循跡引腳電平狀態(tài) / X 0 0 X /處理直線 else if (TrackSensorLeftValue2 = LOW & TrackSensorRightValue1 = LOW) g_trackstate = 7; run(204, 204); /luz 255

56、, 255 else switch(g_trackstate) /當(dāng)為1 1 1 1時(shí)小車(chē)保持上一個(gè)小車(chē)運(yùn)行狀態(tài) 6. 攝像頭舵機(jī)根據(jù)超聲波測(cè)距距離的動(dòng)作函數(shù)/* Function servo_color_carstate* brief 舵機(jī)轉(zhuǎn)向超聲波測(cè)距避障行駛,led根據(jù)車(chē)的狀態(tài)顯示相應(yīng)的顏色* paramin void* paramout void* retval void* par History 無(wú)*/ void servo_color_carstate() float distance; /定義舵機(jī)位置變量和小車(chē)前方,左側(cè),右側(cè)距離 int iServoPos = 0; int L

57、eftDistance = 0; /左方距離值變量LeftDistance int RightDistance = 0; /右方距離值變量RightDistance int FrontDistance = 0; /前方距離值變量FrontDistance color_led_pwm(255, 0, 0);/開(kāi)紅燈 back(80,80); /避免突然停止,剎不住車(chē) delay(80); brake(); /舵機(jī)旋轉(zhuǎn)到0度,即右側(cè),測(cè)距 servo_appointed_detection(0); delay(500); distance = Distance_test(); /測(cè)距 RightD

58、istance = distance; /所測(cè)的右側(cè)距離賦給變量RightDistance /printf(rightdistance :%dn,RightDistance); /舵機(jī)旋轉(zhuǎn)到180度,即左側(cè),測(cè)距 servo_appointed_detection(180); delay(500); distance = Distance_test(); /測(cè)距 LeftDistance = distance;/所測(cè)的左側(cè)距離賦給變量LeftDistance / printf(leftdistance :%dn,LeftDistance); /舵機(jī)旋轉(zhuǎn)到90度,即左側(cè),測(cè)距 servo_appointed_detection(90); delay(500); distance = Distance_test();

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!