基于GPRS無(wú)線(xiàn)發(fā)射模塊的單片機(jī)智能小車(chē)_第1頁(yè)
基于GPRS無(wú)線(xiàn)發(fā)射模塊的單片機(jī)智能小車(chē)_第2頁(yè)
基于GPRS無(wú)線(xiàn)發(fā)射模塊的單片機(jī)智能小車(chē)_第3頁(yè)
基于GPRS無(wú)線(xiàn)發(fā)射模塊的單片機(jī)智能小車(chē)_第4頁(yè)
基于GPRS無(wú)線(xiàn)發(fā)射模塊的單片機(jī)智能小車(chē)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄1概述22系統(tǒng)原理22.1 底盤(pán)的選擇22.2 電機(jī)的選擇32.3電機(jī)驅(qū)動(dòng)模塊42.4 紅外循跡模塊72.5 超聲波測(cè)距模塊92.6 GPRS模塊102.6.1 LQ1000 GPRS DTU 概述102.6.2 使用方式113硬件系統(tǒng)設(shè)計(jì)113.1單片機(jī)選擇113.1.1 80C51單片機(jī)硬件結(jié)構(gòu)123.1.2 最小應(yīng)用系統(tǒng)設(shè)計(jì)133.2 電路設(shè)計(jì)163.2.1 電機(jī)安裝與驅(qū)動(dòng)163.2.2 紅外循跡模塊163.2.3 超聲波測(cè)距模塊163.2.4 DTU無(wú)線(xiàn)控制模塊173.3 小車(chē)的控制184軟件系統(tǒng)設(shè)計(jì)205.心得與體會(huì)216.附錄221 概述自第一臺(tái)工業(yè)機(jī)器人誕生以來(lái),機(jī)器人的發(fā)展

2、已經(jīng)遍及機(jī)械、電子、冶金、交通、宇航、國(guó)防等領(lǐng)域,其涉及到多個(gè)學(xué)科,機(jī)械、電工、自動(dòng)控制、計(jì)算機(jī)測(cè)量、人工智能、傳感技術(shù)等等,是眾多領(lǐng)域的高科技。近年來(lái)機(jī)器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。人們?cè)诓粩嗵接?、改造、認(rèn)識(shí)自然的過(guò)程中,制造能替代人勞動(dòng)的機(jī)器一直是人類(lèi)的夢(mèng)想。而智能小車(chē)比賽就是機(jī)器人技術(shù)的一個(gè)重要研究方向。智能小車(chē)作為機(jī)器人的典型代表,可以分為三大組成部分:傳感器檢測(cè)部分、執(zhí)行部分、CPU。在本次課程設(shè)計(jì)中,我所制作的智能小車(chē)要實(shí)現(xiàn)自動(dòng)避障功能,還擁有擴(kuò)展循跡等功能,感知導(dǎo)引線(xiàn)和障礙物?;谏鲜鲆?,傳感檢測(cè)部分考慮到小車(chē)一般不需要感知清晰的圖像,只要求粗略感知即

3、可,所以可以舍棄昂貴CCD傳感器而考慮使用價(jià)廉物美的紅外反射式傳感器來(lái)充當(dāng)。智能小車(chē)的執(zhí)行部分,是由直流電機(jī)來(lái)充當(dāng)?shù)模饕刂菩≤?chē)的行進(jìn)。CPU使用STC89C51單片機(jī),配合軟件編程實(shí)現(xiàn)。而本次課程設(shè)計(jì)所制作的小車(chē),其與眾不同的地方在于全部使用上位機(jī)通過(guò)無(wú)線(xiàn)模塊對(duì)其進(jìn)行控制,小車(chē)本身不具備任何輸入設(shè)備。小車(chē)可以工作在三種模式下,超聲波測(cè)距模式,紅外循跡模式以及無(wú)線(xiàn)控制模式。在無(wú)線(xiàn)控制模塊下可以遠(yuǎn)距離對(duì)其進(jìn)行前后左右停的操作。除此之外,還可以實(shí)現(xiàn)手機(jī)對(duì)小車(chē)的狀態(tài)控制。2 系統(tǒng)原理該智能小車(chē)模型是一輛由PCB和車(chē)體拼裝的小車(chē)。所有的機(jī)械結(jié)構(gòu)和零部件都安裝固定在電路板上,除幾個(gè)特殊模塊是由自己手動(dòng)

4、焊之外,其余是買(mǎi)回的封裝好的模塊。其穩(wěn)定性更高。2.1 底盤(pán)的選擇底盤(pán)的作用在于固定電機(jī),并安置其他模塊。根據(jù)個(gè)人喜好,可以選擇4輪的和2輪+萬(wàn)向輪式的。我選擇的是4輪驅(qū)動(dòng)小車(chē)。2.2 電機(jī)的選擇圖2.1 直流減速電機(jī)右圖為小車(chē)使用的直流減速電機(jī),減速比為1:48,額定電壓為39V.當(dāng)我們?cè)谥绷麟姍C(jī)的兩極施加一定的電壓后,電機(jī)開(kāi)始勻速轉(zhuǎn)動(dòng),如果這時(shí)候?qū)㈦姌O對(duì)調(diào),原來(lái)的正極變負(fù)極、負(fù)極變正極,那么電機(jī)就會(huì)反向轉(zhuǎn)動(dòng)。小車(chē)轉(zhuǎn)彎則是通過(guò)左右兩側(cè)電機(jī)速度不同來(lái)控制的。圖2.2 直流減速電機(jī)參數(shù)下圖是典型的“H”橋電路,采用下面這種電路,即可實(shí)現(xiàn)上面所說(shuō)的電極翻轉(zhuǎn),從而達(dá)到電機(jī)的正反轉(zhuǎn)。圖2.3“H”橋電

5、路常態(tài)下,4個(gè)橋臂的開(kāi)關(guān)保持開(kāi)路狀態(tài),這時(shí)候電機(jī)兩端懸空,沒(méi)有電壓。當(dāng)1、4開(kāi)關(guān)閉合,2、3開(kāi)關(guān)打開(kāi),電流從1號(hào)開(kāi)關(guān)流經(jīng)電機(jī),再?gòu)?號(hào)開(kāi)關(guān)流出,這時(shí)候電機(jī)正轉(zhuǎn)。 當(dāng)2、3開(kāi)關(guān)閉合,1、4開(kāi)關(guān)打開(kāi),電流從2號(hào)開(kāi)關(guān)流經(jīng)電機(jī),再?gòu)?號(hào)開(kāi)關(guān)流出,這時(shí)候電機(jī)反轉(zhuǎn)。通過(guò)上面的分析,我們只需要通過(guò)控制1、2、3、4 號(hào)開(kāi)關(guān)的打開(kāi)與關(guān)閉,即可以實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)向的控制。如果在改變開(kāi)關(guān)的導(dǎo)通時(shí)間,即控制pwm占空比,就可以實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的調(diào)節(jié)。下面我們將要介紹電機(jī)驅(qū)動(dòng)模塊。2.3電機(jī)驅(qū)動(dòng)模塊圖2.4 電機(jī)驅(qū)動(dòng)模塊L298N電路圖L298N是專(zhuān)用驅(qū)動(dòng)集成電路,屬于H橋集成電路,與L293D的差別是其輸出電流增大,功率

6、增強(qiáng)。其輸出電流為2A,最高電流4A,最高工作電壓50V,可以驅(qū)動(dòng)感性負(fù)載,如大功率直流電機(jī),(二相、三相、四相)步進(jìn)電機(jī),伺服電機(jī),電磁閥等,特別是其輸入端可以與單片機(jī)直接相聯(lián),從而很方便地受單片機(jī)控制。當(dāng)驅(qū)動(dòng)直流電機(jī)時(shí),可以直接控制兩路電機(jī),并可以實(shí)現(xiàn)電機(jī)正轉(zhuǎn)與反轉(zhuǎn),實(shí)現(xiàn)此功能只需改變輸入端的邏輯電平。本模塊具有體積小,控制方便的特點(diǎn)。具體使用方法:板上的EN1與EN2為高電平時(shí)有效,只有當(dāng)EN1與EN2為高電平時(shí),電機(jī)才旋轉(zhuǎn),則電機(jī)不轉(zhuǎn),這里的電平指的是TTL電平。EN1為IN1和IN2的使能端,EN2為IN3和IN4的使能端。當(dāng)EN1=1,IN1=1 INT2=0時(shí)電機(jī)1正轉(zhuǎn),EN1=

7、1,IN1=0 IN2=1電機(jī)1反轉(zhuǎn)。同理,當(dāng)EN2=1,IN3=1 IN4=0電機(jī)2正轉(zhuǎn),EN2=1,IN3=0 IN4=1電機(jī)2反轉(zhuǎn)。A-、B-接電機(jī)1,C-、D-接電機(jī)2。圖2.5 L298N實(shí)物圖下面,我們將要研究L289N的供電問(wèn)題,L298N的輸出電壓跟供電電壓是有關(guān)系的:經(jīng)過(guò)實(shí)驗(yàn)我們發(fā)現(xiàn),輸入多少V,輸出就差不多是多少V(略有損耗)。由原理圖我們知道,L298N供電方式有兩種。方式一,由于L298N的邏輯控制電壓是5V的,所以可以為它提供5V電源。方式二,用12V鉛蓄電池為其供電,A通道和B通道輸出的是驅(qū)動(dòng)電機(jī)的12V電壓,同時(shí)選擇板載5V使能,這時(shí)+5V供電端可以輸出5V電壓(

8、此時(shí)不能再給+5V供電端加電壓了,否則會(huì)燒掉78M05),向外供電,以方便外部的控制電路使用。圖2.6 L298N工作方式2.4 紅外循跡模塊此模塊是為智能小車(chē),機(jī)器人等自動(dòng)化機(jī)械裝置提供一種多用途的紅外線(xiàn)探測(cè)系統(tǒng)的解決方案。該傳感器模塊對(duì)環(huán)境光線(xiàn)適應(yīng)能力強(qiáng) , 其具有一對(duì)紅外線(xiàn)發(fā)射與接收管,發(fā)射管發(fā)射出一定頻率的紅外線(xiàn),當(dāng)檢測(cè)方向遇到障礙物 ( 反射面)時(shí),紅外線(xiàn)反射回來(lái)被接收管接收,經(jīng)過(guò)比較器電路處理之后,同時(shí)信號(hào)輸出接口輸出數(shù)字信號(hào)(一個(gè)低電平信號(hào)),可通過(guò)電位器旋鈕調(diào)節(jié)檢測(cè)距離,有效距離范圍2 6 0cm ,工作電壓為3.3V-5V 。該傳感器的探測(cè)距離可以通過(guò)電位器調(diào)節(jié)、具有干擾小、

9、便于裝配、使用方便等特點(diǎn),可以廣泛應(yīng)用于機(jī)器人避障 、 避障小車(chē)、流水線(xiàn)計(jì)數(shù)及黑白線(xiàn)循跡等眾多場(chǎng)合。下面我們來(lái)了解一下此模塊的具體介紹,其中,每1 路的傳感器的紅外發(fā)射管不斷發(fā)射紅外線(xiàn),當(dāng)發(fā)射出的紅外線(xiàn)沒(méi)有被反射回來(lái)或被反射回來(lái)但強(qiáng)度不夠大時(shí),紅外接收管一直處于關(guān)斷狀態(tài),此時(shí)模塊的TTL 輸出為高電平,相應(yīng)指示二極管一直處于熄滅狀態(tài);當(dāng)被檢測(cè)物體出現(xiàn)在檢測(cè)范圍內(nèi)時(shí),紅外線(xiàn)被反射回來(lái)且強(qiáng)度足夠大,紅外接收管導(dǎo)通,此時(shí)模塊的TTL 輸出端為低電平,指示二極管被點(diǎn)亮。圖2.7 紅外循跡模塊實(shí)物圖下面是接法說(shuō)明:圖2.8 紅外循跡模塊引腳介紹模塊接線(xiàn)說(shuō)明:1.DO1-1 路TTL 電平輸出2.DO2-

10、2 路TTL 電平輸出3.DO3-3 路TTL 電平輸出4.DO4-4 路TTL 電平輸出5.GND-接電源負(fù)極6.VCC-接電源正極2.5 超聲波測(cè)距模塊圖2.9 超聲波模塊實(shí)物圖 其工作原理如下:控制口發(fā)一個(gè)10US以上的高電平,就可以在接收口等待高電平輸出。一有輸出就可以開(kāi)定時(shí)器計(jì)時(shí),當(dāng)此口變?yōu)榈碗娖綍r(shí)就可以讀定時(shí)器的值,此時(shí)就為此次測(cè)距的時(shí)間,方可算出距離。如此不斷的周期測(cè),就可以達(dá)到你移動(dòng)測(cè)量的值了。(1)采用 IO 觸發(fā)測(cè)距,給至少10us 的高電平信號(hào);(2)模塊自動(dòng)發(fā)送8 個(gè)40khz 的方波,自動(dòng)檢測(cè)是否有信號(hào)返回;(3)有信號(hào)返回,通過(guò)IO 輸出一高電平,高電平持續(xù)的時(shí)間就

11、是(4)超聲波從發(fā)射到返回的時(shí)間測(cè)試距離=(高電平時(shí)間*聲速(340M/S/2;超聲波時(shí)序圖如下:圖2.10 超聲波時(shí)序圖其接口定義如下:Vcc、 Trig(控制端)、 Echo(接收端)、 Gnd2.6 GPRS模塊此模塊是本課程設(shè)計(jì)重點(diǎn),也是相對(duì)于以往智能小車(chē)創(chuàng)新之處。在本課程設(shè)計(jì)中,我們使用了靈旗通信的 LQ1000 GPRS DTU通信模塊。圖2.11 LQ1000 GPRS DTU實(shí)物圖2.6.1 LQ1000 GPRS DTU 概述LQ1000 GPRS DTU采用了先進(jìn)的GPRS無(wú)線(xiàn)通信技術(shù)、嵌入式單片機(jī)技術(shù)和TCP/IP網(wǎng)絡(luò)通信技術(shù),其穩(wěn)定性強(qiáng)、可靠性高、實(shí)時(shí)性好、應(yīng)用性廣、功

12、能強(qiáng)大,是一種實(shí)現(xiàn)串口設(shè)備數(shù)據(jù)通過(guò)無(wú)線(xiàn)透?jìng)鞯街行能浖挠辛υO(shè)備。LQ1000 GPRS DTU 提供標(biāo)準(zhǔn)RS232/485數(shù)據(jù)接口,可以方便的連接RTU、PLC、串口儀表、工控機(jī)等設(shè)備,僅需一次性完成初始化配置,用戶(hù)設(shè)備就可以與數(shù)據(jù)中心通過(guò)GPRS無(wú)線(xiàn)網(wǎng)絡(luò)建立連接,實(shí)現(xiàn)數(shù)據(jù)的全透明傳輸。2.6.2 使用方式安裝SIM卡將SIM卡從DTU的外殼背面的插槽中插入,SIM卡座插入插槽后需要卡緊,以防SIM未插入到位導(dǎo)致終端通信異常。然后用螺絲鎖緊插槽外的擋板。目前在中國(guó)大陸地區(qū)的中國(guó)移動(dòng)和中國(guó)聯(lián)通的手機(jī)卡都可以使用。在其他國(guó)家或地區(qū)的GPRS網(wǎng)絡(luò)的手機(jī)卡也可以使用。DTU一共有四種應(yīng)用方式圖2.12

13、 LQ1000 GPRS DTU應(yīng)用方案我們所應(yīng)用的是第一種方案,只不過(guò)稍稍做些改動(dòng),進(jìn)行DTU與中心軟件進(jìn)行通信。3 硬件系統(tǒng)設(shè)計(jì)3.1單片機(jī)選擇一個(gè)單片機(jī)應(yīng)用系統(tǒng)的硬件電路設(shè)計(jì)包含有兩部分內(nèi)容:一是系統(tǒng)擴(kuò)展,即單片機(jī)內(nèi)部的功能單元,如ROMRAMI/O口定時(shí)/記數(shù)器中斷系統(tǒng)等能量不能滿(mǎn)足應(yīng)用系統(tǒng)的要求時(shí),必須在片外進(jìn)行擴(kuò)展,選擇適當(dāng)?shù)男酒?,設(shè)計(jì)相應(yīng)的電路。二是系統(tǒng)配置,既按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤(pán)顯示器打印機(jī)A/DD/A轉(zhuǎn)換器等,要設(shè)計(jì)合適的接口電路。3.1.1 80C51單片機(jī)硬件結(jié)構(gòu)80C51單片機(jī)是把那些作為控制應(yīng)用所必需的基本內(nèi)容都集成在一個(gè)尺寸有限的集成電路芯片上。如果

14、按功能劃分,它由如下功能部件組成,即微處理器、數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器、并行I/O口、串行口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)及特殊功能寄存器。它們都是通過(guò)片內(nèi)單一總線(xiàn)連接而成,其基本結(jié)構(gòu)依舊是CPU加上外圍芯片的傳統(tǒng)結(jié)構(gòu)模式。但對(duì)各種功能部件的控制是采用特殊功能寄存器的集中控制方式。1) 微處理器該單片機(jī)中有一個(gè)8位的微處理器,與通用的微處理器基本相同,同樣包括了運(yùn)算器和控制器兩大部分,只是增加了面向控制的處理功能,不僅可處理數(shù)據(jù),還可以進(jìn)行位變量的處理。2) 數(shù)據(jù)存儲(chǔ)器片內(nèi)為128個(gè)字節(jié),片外最多可外擴(kuò)至64k字節(jié),用來(lái)存儲(chǔ)程序在運(yùn)行期間的工作變量、運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等,所以稱(chēng)為

15、數(shù)據(jù)存儲(chǔ)器。3)程序存儲(chǔ)器由于受集成度限制,片內(nèi)只讀存儲(chǔ)器一般容量較小,如果片內(nèi)的只讀存儲(chǔ)器的容量不夠,則需用擴(kuò)展片外的只讀存儲(chǔ)器,片外最多可外擴(kuò)至64k字節(jié)。4) 中斷系統(tǒng)具有5個(gè)中斷源,2級(jí)中斷優(yōu)先權(quán)。5) 定時(shí)器/計(jì)數(shù)器片內(nèi)有2個(gè)16位的定時(shí)器/計(jì)數(shù)器, 具有四種工作方式。6) 串行口1個(gè)全雙工的串行口,具有四種工作方式??捎脕?lái)進(jìn)行串行通訊,擴(kuò)展并行I/O口,甚至與多個(gè)單片機(jī)相連構(gòu)成多機(jī)系統(tǒng),從而使單片機(jī)的功能更強(qiáng)且應(yīng)用更廣。7) P1口、P2口、P3口、P4口為4個(gè)并行8位I/O口。8) 特殊功能寄存器共有21個(gè),用于對(duì)片內(nèi)的個(gè)功能的部件進(jìn)行管理、控制、監(jiān)視。實(shí)際上是一些控制寄存器和狀

16、態(tài)寄存器,是一個(gè)具有特殊功能的RAM區(qū)。由上可見(jiàn),80C51單片機(jī)的硬件結(jié)構(gòu)具有功能部件種類(lèi)全,功能強(qiáng)等特點(diǎn)。特別值得一提的是該單片機(jī)CPU中的位處理器,它實(shí)際上是一個(gè)完整的1位微計(jì)算機(jī),這個(gè)一位微計(jì)算機(jī)有自己的CPU、位寄存器、I/O口和指令集。1位機(jī)在開(kāi)關(guān)決策、邏輯電路仿真、過(guò)程控制方面非常有效;而8位機(jī)在數(shù)據(jù)采集,運(yùn)算處理方面有明顯的長(zhǎng)處。MCS-51單片機(jī)中8位機(jī)和1位機(jī)的硬件資源復(fù)合在一起,二者相輔相承,它是單片機(jī)技術(shù)上的一個(gè)突破,這也是MCS-51單片機(jī)在設(shè)計(jì)的精美之處。3.1.2 最小應(yīng)用系統(tǒng)設(shè)計(jì)80C51是片內(nèi)有ROM/EPROM的單片機(jī),因此,這種芯片構(gòu)成的最小系統(tǒng)簡(jiǎn)單可靠。

17、在本次課程設(shè)計(jì)中,我使用的便是51單片機(jī)最小系統(tǒng)。用80C51單片機(jī)構(gòu)成最小應(yīng)用系統(tǒng)時(shí),只要將單片機(jī)接上時(shí)鐘電路和復(fù)位電路即可,如圖80C51單片機(jī)最小系統(tǒng)所示。由于集成度的限制,最小應(yīng)用系統(tǒng)只能用作一些小型的控制單元。其應(yīng)用特點(diǎn):有可供用戶(hù)使用的大量I/O口線(xiàn)。內(nèi)部存儲(chǔ)器容量有限。圖3.1 80C51單片機(jī)最小系統(tǒng)應(yīng)用系統(tǒng)開(kāi)發(fā)具有特殊性。1、時(shí)鐘電路80C51雖然有內(nèi)部振蕩電路,但要形成時(shí)鐘,必須外部附加電路。80C51單片機(jī)的時(shí)鐘產(chǎn)生方法有兩種。內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。本設(shè)計(jì)采用內(nèi)部時(shí)鐘方式,利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2引腳上外接定時(shí)元件,內(nèi)部的振蕩電路便產(chǎn)生自激振

18、蕩。本設(shè)計(jì)采用最常用的內(nèi)部時(shí)鐘方式,即用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHZ到12MHZ之間選擇。電容值無(wú)嚴(yán)格要求,但電容取值對(duì)振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響,CX1、CX2可在20pF到100pF之間取值,但在60pF到70pF時(shí)振蕩器有較高的頻率穩(wěn)定性。所以本設(shè)計(jì)中,振蕩晶體選擇6MHZ,電容選擇65pF。在設(shè)計(jì)印刷電路板時(shí),晶體和電容應(yīng)盡可能靠近單片機(jī)芯片安裝,以減少寄生電容,更好的保證振蕩器穩(wěn)定和可靠地工作。為了提高溫度穩(wěn)定性,應(yīng)采用NPO電容。2、復(fù)位電路80C51的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳RST通過(guò)一個(gè)斯密特觸發(fā)器用來(lái)抑

19、制噪聲,在每個(gè)機(jī)器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。最簡(jiǎn)單的上電自動(dòng)復(fù)位電路中上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。只要Vcc的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。時(shí)鐘頻率用6MHZ時(shí)C取22uF,R取1K。除了上電復(fù)位外,有時(shí)還需要按鍵手動(dòng)復(fù)位。本設(shè)計(jì)就是用的按鍵手動(dòng)復(fù)位。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中電平復(fù)位是通過(guò)RST端經(jīng)電阻與電源Vcc接通而實(shí)現(xiàn)的。按鍵手動(dòng)復(fù)位電路見(jiàn)圖3.2。時(shí)鐘頻率選用6MHZ時(shí),C取22uF,Rs取200,RK取1K。圖3

20、.2 80C51復(fù)位電路3.2 電路設(shè)計(jì)選好單片機(jī)后,我們將各個(gè)模塊逐個(gè)進(jìn)行調(diào)試。3.2.1 電機(jī)安裝與驅(qū)動(dòng)將四個(gè)電機(jī)安裝在小車(chē)底盤(pán)上,并固定好,然后將電機(jī)與L298N模塊相連,通過(guò)以上的介紹,我們可以知道,如果是做兩輪驅(qū)動(dòng),需要一個(gè)L298N,4輪驅(qū)動(dòng)需要用2個(gè)L298N。其中,一個(gè)控制左上,右上, 一個(gè)控制左下,右下。我們分別將其編號(hào)為1號(hào)和2號(hào)。1號(hào)L298N的in1in2控制右上,in3in4控制左上。2號(hào)L298N的in1in2控制左下,in3in4控制右下。我們用P00P03控制L298N輸入,這樣,兩個(gè)l298n需要8個(gè)輸入,即占用單片機(jī)的8個(gè)端口,在實(shí)驗(yàn)的過(guò)程中,我們發(fā)現(xiàn),左上

21、左下的電機(jī)是同步的,右上右下電機(jī)是同步的。因此說(shuō),1號(hào)L298N的in1in2和2號(hào)L298N的in3in4是相同的控制信號(hào),1號(hào)L298N的in3in4和2號(hào)L298N的in1in2是相同的控制信號(hào),我們自己焊了一個(gè)板子,具有三排排針,然后對(duì)應(yīng)的引腳短路,其中一排連接單片機(jī)的引腳,另外兩排分別連接1號(hào)L298N和2號(hào)L298N。這樣,我們就節(jié)省了四個(gè)單片機(jī)的IO輸出。IN 1/IN2IN 3 /IN41右上左上2左下右下圖3.3 L298N引腳控制在此模塊中,我們采用第一種供電方式,即直接用單片機(jī)供電。3.2.2 紅外循跡模塊我們將紅外循跡模塊的D0D3與單片機(jī)的P04P07口相連。用來(lái)檢測(cè)

22、數(shù)據(jù)的輸出,是否檢測(cè)到障礙物,當(dāng)檢測(cè)到障礙物,會(huì)輸出低電平。3.2.3 超聲波測(cè)距模塊將Echo與P11相連,Trig與P12相連。3.2.4 DTU無(wú)線(xiàn)控制模塊首先,對(duì)DTU進(jìn)行設(shè)置。使用串口線(xiàn)將DTU與電腦相連,打開(kāi)設(shè)備管理器,查看所用端口。然后打開(kāi)LQ1000 GPRS DTU參數(shù)配置與服務(wù)端軟件。圖3.4 LQ1000 GPRS DTU參數(shù)配置打開(kāi)串口,進(jìn)入設(shè)置,然后是終端參數(shù)聯(lián)網(wǎng)設(shè)置。其接入中心IP設(shè)置為所在網(wǎng)絡(luò)IP地址。點(diǎn)擊設(shè)置按鈕。圖3.5 LQ1000 GPRS DTU終端參數(shù)聯(lián)網(wǎng)設(shè)置返回LQ1000 GPRS DTU參數(shù)配置與服務(wù)端軟件。點(diǎn)擊退出設(shè)置。以上是DTU設(shè)置過(guò)程。3

23、.3 小車(chē)的控制本課程設(shè)計(jì),集成了三個(gè)模塊,紅外循跡,超聲波測(cè)距與無(wú)線(xiàn)通信模塊,因此此智能小車(chē)可以工作在三種工作方式下。默認(rèn)為無(wú)線(xiàn)控制模塊。三種工作模式的選擇都是通過(guò)DTU無(wú)線(xiàn)模塊進(jìn)行控制。選擇不同的模式,將給單片機(jī)發(fā)送不同的指令。如下圖是自己編寫(xiě)的上位機(jī)程序,右下角部分是控制面板。圖3.6 LQ1000 GPRS DTU上位機(jī)程序當(dāng)我們選擇超聲波測(cè)距模式時(shí),小車(chē)會(huì)進(jìn)行超聲波測(cè)距,并適時(shí)根據(jù)距離障礙物的距離進(jìn)行運(yùn)動(dòng)方式的調(diào)整,我們將閾值設(shè)置為15,當(dāng)距離小于15cm時(shí),小車(chē)的運(yùn)動(dòng)狀態(tài)為先后退0.8秒后向右運(yùn)動(dòng)0.8秒。當(dāng)小車(chē)工作在紅外循跡模塊時(shí),小車(chē)會(huì)按照地面上的黑線(xiàn)前進(jìn),及時(shí)調(diào)整方向。當(dāng)小車(chē)

24、工作在無(wú)線(xiàn)模式下,我們可以控制小車(chē)5種運(yùn)動(dòng)狀態(tài),前后左右停。除此之外,小車(chē)還可以由手機(jī)控制其運(yùn)動(dòng)狀態(tài)。下面介紹手機(jī)控制小車(chē)運(yùn)動(dòng)過(guò)程。如下圖是手機(jī)控制小車(chē)運(yùn)動(dòng)的APP。圖3.7 手機(jī)控制小車(chē)運(yùn)動(dòng)APP首先輸入DTU所在網(wǎng)絡(luò)IP地址。點(diǎn)擊連接。下面即可對(duì)小車(chē)的運(yùn)動(dòng)狀態(tài)進(jìn)行控制。4 軟件系統(tǒng)設(shè)計(jì)圖4 智能小車(chē)系統(tǒng)程序框圖其中,軟件程序包括三部分。第一部分,51單片機(jī)程序編寫(xiě),將各個(gè)模塊模塊化到一起,控制小車(chē)工作在各個(gè)模式。如上圖所示是智能小車(chē)的系統(tǒng)程序框圖。主要處理流程包括初始化、判斷等。初始化主要設(shè)定處理的各項(xiàng)外設(shè),如時(shí)鐘、定時(shí)器、IO輸入輸出、SPI、UART、DMA等等。第二部分,上位機(jī)程序的

25、編寫(xiě)。由C+的MFC程序。編寫(xiě)了控制小車(chē)運(yùn)動(dòng)的控制面板。第三部分,手機(jī)App編寫(xiě)。這部分是求教于實(shí)驗(yàn)室的師兄幫助編寫(xiě)完成的。5.心得與體會(huì)經(jīng)過(guò)半個(gè)學(xué)期的努力,終于順利的完成了基于GPRS無(wú)線(xiàn)發(fā)射模塊的51單片機(jī)智能小車(chē)設(shè)計(jì),可以實(shí)現(xiàn)用上位機(jī)控制小車(chē)工作在不同的工作模式下,或者是利用手機(jī)APP控制小車(chē)的運(yùn)動(dòng)狀態(tài)。在制作的過(guò)程中,遇到了許多問(wèn)題,并不斷去解決,學(xué)習(xí)到了許多知識(shí)。首先對(duì)于單片機(jī)的基礎(chǔ)知識(shí)有了一定的了解,更加深入的了解了定時(shí)器,中斷的使用。除此之外,學(xué)習(xí)了GPRS模塊,可以完成遠(yuǎn)距離無(wú)線(xiàn)控制。軟件方面,進(jìn)一步學(xué)習(xí)了程序的模塊化,使得程序更加簡(jiǎn)潔。另外,學(xué)習(xí)了c+編程,編寫(xiě)了上位機(jī)MFC

26、程序。十分具有成就感。存在的問(wèn)題,因?yàn)樵谡麄€(gè)過(guò)程中將重點(diǎn)放在無(wú)線(xiàn)模塊的調(diào)試,對(duì)于超聲波與紅外循跡模塊沒(méi)有過(guò)多的投入,導(dǎo)致成果檢測(cè)的時(shí)候發(fā)現(xiàn)超聲波測(cè)距模塊硬件出現(xiàn)問(wèn)題,導(dǎo)致效果不穩(wěn)定。對(duì)于紅外循跡模塊,最初小車(chē)的速度過(guò)快,當(dāng)循跡轉(zhuǎn)彎的時(shí)候小車(chē)來(lái)不及反應(yīng),所以看起來(lái)不夠靈敏,因此降低占空比,降低小車(chē)的速度可以很好的解決這個(gè)問(wèn)題。整體來(lái)說(shuō),雖然任務(wù)大體完成,單仍然存在許多可以改進(jìn)的地方。例如小車(chē)的速度不能實(shí)時(shí)的控制,距離可以返回給上位機(jī)但是不能顯示在小車(chē)上,因此說(shuō)另外可以添加顯示模塊,對(duì)速度距離進(jìn)行實(shí)時(shí)的顯示。對(duì)于超聲波和紅外效果也可以進(jìn)一步進(jìn)行改進(jìn)。另外還可以集成攝像頭模塊等。此次的課程設(shè)計(jì)不僅教

27、會(huì)了我專(zhuān)業(yè)知識(shí),更加讓我明白了要想學(xué)到東西要親自動(dòng)手這個(gè)道理,一個(gè)部分一個(gè)部分的完成,一個(gè)問(wèn)題一個(gè)問(wèn)題的解決。將各個(gè)部分整合到一起,軟件與硬件是分不開(kāi)的。遇到問(wèn)題也要不驕不躁,認(rèn)真學(xué)習(xí)進(jìn)而解決問(wèn)題。6.附錄Main.c/*- P0.1-P0.4用于電機(jī)控制 中斷用來(lái)接收數(shù)據(jù)-*/#include <reg52.h>/包函8051內(nèi)部資源的定義#include <intrins.h>#include <stdio.h> #include "delay.h" #include "move.h"#include "

28、chuankou.h"#include "hongwai.h"#include "UltrasonicDistanceDriver.h"#include "UltrasonicDistanceConfig.h"/#include " " /unsigned char temp; bit rec=0, send=1; /#include"" main() char pcOutBuf30; /串口返回超聲波測(cè)距字符串緩存 unsigned int iOld=0; /超聲波測(cè)得的距離 uns

29、igned int control_flag; InitUART(); while(1) control_flag=get_control_flag(); if(control_flag=1) send_byte(temp); while(control_flag=1) InitUltrasonicDistance(); /當(dāng)調(diào)用測(cè)距函數(shù)后,返回為0,表示測(cè)距成功,否則測(cè)距函數(shù)正在延遲中/當(dāng)取值有效時(shí),如果與前次值沒(méi)變化,則不作更新 iOld = getDistance(); /sprintf(pcOutBuf, "S=%drn", iOld); /SerialSendSt

30、r(pcOutBuf); /送到串口 if(iOld<30) stop_car(); delay1ms(10); back(); delay1ms(1000); delay1ms(1000); stop_car(); delay1ms(10); turn_right(); /右邊不轉(zhuǎn) 左邊轉(zhuǎn) int1,2控制右側(cè) delay1ms(1000); delay1ms(1000); else straight(); else if(control_flag=2) hongwai(); /P0=0XF0; send_byte(temp); else if(control_flag=3) /sta

31、te='W' while(temp!='I'&&temp!='U') send_byte(temp); if( temp='Q') stop_car(); delay1ms(5); straight(); delay1ms(100); delay1ms(100); else if(temp='H') stop_car(); delay1ms(5); back(); delay1ms(100); delay1ms(100); else if(temp='Y') turn_right()

32、; /右邊不轉(zhuǎn) 左邊轉(zhuǎn) int1,2控制右側(cè) delay1ms(1000); delay1ms(1000); else if(temp='Z') turn_left(); /左邊不轉(zhuǎn) 右邊轉(zhuǎn) delay1ms(1000); delay1ms(1000); else if(temp='T') stop_car(); delay1ms(1000); delay1ms(1000); /*-Move.c-*/#include<reg51.h>#include "move.h"#include "delay.h" voi

33、d straight() int1=1; int2=0; int3=1; int4=0; void back() int1=0; int2=1; int3=0; int4=1; void turn_right() /右邊不轉(zhuǎn) 左邊轉(zhuǎn) int1,2控制右側(cè) int1=0; int2=0; int3=1; int4=0; void turn_left() /左邊不轉(zhuǎn) 右邊轉(zhuǎn) int1=1; int2=0; int3=0; int4=0; void stop_car() /停 int1=0; int2=0; int3=0; int4=0; /*-hongwai.c-*/#include <re

34、g52.h>/包函8051內(nèi)部資源的定義#include <intrins.h>#include "move.h"#include "delay.h"#include "hongwai.h" void hongwai() if(text1=0&&text2=0&&text3=1) /探測(cè)到之后輸出為0; stop_car();delay1ms(100);turn_right(); delay1ms(1000); delay1ms(1000); if(text1=1&&t

35、ext2=0&&text3=0) /探測(cè)到之后輸出為0; stop_car();delay1ms(100);turn_left();delay1ms(1000); delay1ms(1000);else stop_car();delay1ms(100);straight();delay1ms(100); /*-chuankou.c-*/#include <reg52.h>/包函8051內(nèi)部資源的定義#include <intrins.h>#include "chuankou.h"unsigned int control_flag;vo

36、id InitUART(void) TMOD = 0x20; SCON = 0x50; TH1 = 0xFD; TL1 = TH1; PCON = 0x00; EA = 1; ES = 1; TR1 = 1;control_flag=3;void send_byte(unsigned char str1) if(rec=1)&&(send=1) /rec=1 說(shuō)明接收完數(shù)據(jù)既沒(méi)有發(fā)也沒(méi)有收 SBUF=str1; rec=0; send=0; /*- *向串口發(fā)送一個(gè)字符串 以'0'結(jié)束 *param char *str 需要發(fā)送的字符串指針 *return vo

37、id *-*/void SerialSendStr(char *str) while(*str)send_byte(*str+);unsigned int get_control_flag() return control_flag;void UARTInterrupt(void) interrupt 4 if(RI) RI = 0;temp=SBUF;rec=1;if(temp='U') control_flag=1;if(temp='I') control_flag=2;if(temp='W') control_flag=3; else TI = 0;send=1;/*-UltrasonicDistance.c-*/#include <reg52.h>/包函8051內(nèi)部資源的定義#include <intrins.h>#include "UltrasonicDistanceDriver.h"#include "UltrasonicDistanceConfig.h"/*/ HC-SR04 超聲波測(cè)距模塊操作庫(kù) /-/ 晶振:11.0592 / Create Date:201

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論