基于AT89s52微處理器的機(jī)器人車體系統(tǒng)智能小車設(shè)計(jì)畢業(yè)論文
《基于AT89s52微處理器的機(jī)器人車體系統(tǒng)智能小車設(shè)計(jì)畢業(yè)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于AT89s52微處理器的機(jī)器人車體系統(tǒng)智能小車設(shè)計(jì)畢業(yè)論文(44頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于AT89s52微處理器的機(jī)器人車體系統(tǒng) 摘 要 智能作為現(xiàn)代社會(huì)的新產(chǎn)物,是以后的發(fā)展方向它可以按照預(yù)先設(shè)定的模塊在一個(gè)特定的環(huán)境里自動(dòng)的運(yùn)作,無(wú)需人為管理,便可以完成預(yù)期所要達(dá)到的或更高的目標(biāo)。 本文設(shè)計(jì)是基于AT89s52微處理器的機(jī)器人車體系統(tǒng)和XL02-232AP1微功率無(wú)線透明傳輸模塊的無(wú)線通信系統(tǒng),以此實(shí)現(xiàn)小車的前進(jìn)、后退、停止、及直角特別是圓弧形拐彎,本設(shè)計(jì)主要體現(xiàn)多功能小車的智能模式,設(shè)計(jì)中的理論方案、分析方法及特色與創(chuàng)新點(diǎn)等可以為自動(dòng)運(yùn)輸機(jī)器人、采礦機(jī)器人、家用自動(dòng)清潔機(jī)器人,特別是智能足球機(jī)器人的設(shè)計(jì)與普及有一定的參考意義。同時(shí)小車可以作為玩具的發(fā)展方向,
2、為中國(guó)玩具市場(chǎng)技術(shù)含量的缺乏進(jìn)行一定的彌補(bǔ),實(shí)現(xiàn)經(jīng)濟(jì)收益,形成商業(yè)價(jià)值。 關(guān)鍵詞:?jiǎn)纹瑱C(jī),智能小車,AT89s52,XL02-232AP1 ABSTRACT As a new product of modern society,intelligence is the trend in future development.It can work in some specific environment according to the mode which sets in advance.Dispensing with beha
3、vior adjustment management,but it can achieve the expected,even higher goal. This design is based on the robot body AT89s52 microprocessor system and XL02-232AP1 transparent micro-power wireless transmission module of the wireless communication system,to achieve the car forward, backward, stop,
4、 especially the arc-shaped bend at right angles The design mainly reflected a smart-car model,The theoretical scheme,analysis method,uniqueness and innovation etc.that pointed in this paper,I think they are will be certain reference value in design an popularity of automatic or semi-automatic robo
5、t such as automatic transportation robot,prospecting robot,cleaning household robot, especially intelligent soccer robot.This car can be used as a model of development of toy,to make up the deficiency of technical content in the Chinese toy market,to realize economic profit and to form commercia
6、l value. KEY WORDS:MCU,smart-car robot, AT89s52,XL02-232AP1 前 言 1 第1章 設(shè)計(jì)環(huán)境建設(shè) 4 1.1 硬件環(huán)境 4 1.1.1 硬件系統(tǒng)鋪設(shè) 4 1.1.2 硬件設(shè)備 4 1.2 軟件環(huán)境 5 第2章 智能小車車體 6 2.1 智能小車的硬件結(jié)構(gòu) 6 2.1.1 主控芯片的選擇 6 2.1.2 主要芯片介紹 6 2.1.3 小車控制板電路圖 11 2.1.4 小車電路板成品樣圖 11 2.2 智能小車關(guān)鍵代碼 12 2.3 智能小車程序介紹 12 2.3.1
7、上位機(jī)程序介紹 12 2.3.2 下位機(jī)程序介紹 13 第3章 無(wú)線收發(fā)模塊 20 3.1 無(wú)線模塊的選擇 20 3.1.1 XL02-232AP1的端口定義及連接示意圖 20 3.1.2 無(wú)線模塊的性能 22 3.2 配置接口通訊協(xié)議 24 3.2.1 接口 25 3.2.2 命令 25 3.3 參數(shù)范圍 26 3.4 發(fā)送串口控制命令 26 第4章 電機(jī)驅(qū)動(dòng)模塊 27 4.1 電機(jī)方案的論證與比較 27 4.2 電機(jī)驅(qū)動(dòng)芯片 27 第5章 經(jīng)驗(yàn)總結(jié)與展望 29 5.1 設(shè)計(jì)中解決的問(wèn)題 29 5.2 總結(jié)與展望 30 致 謝 31 參考文獻(xiàn) 32 附錄
8、一:原理圖 33 附錄二:上位機(jī)主要程序代碼: 34 第IV頁(yè) 前 言 1、課題背景及意義 機(jī)器人學(xué)是一門(mén)與機(jī)器人設(shè)計(jì)、制造和應(yīng)用相關(guān)的科學(xué)。機(jī)器人學(xué)又稱為機(jī)器人技術(shù)或機(jī)器人工程學(xué),主要研究機(jī)器人的控制與被處理物體之間的相互關(guān)系。機(jī)器人學(xué)涉及的專業(yè)領(lǐng)域很多,主要內(nèi)容有運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)、系統(tǒng)結(jié)構(gòu)、傳感技術(shù)、控制技術(shù)、行動(dòng)規(guī)劃和應(yīng)用工程等。 智能車是機(jī)器人學(xué)中的一類,是具有自主性、適應(yīng)性和交互性等于一體的綜合系統(tǒng),它融合了自動(dòng)控制、人工智能、機(jī)械工程、信息融合、傳感器技術(shù)、圖像處理技術(shù)以及計(jì)算機(jī)等
9、多門(mén)學(xué)科的最新研究成果,對(duì)智能車的研究不僅具有理論意義而且具有實(shí)際價(jià)值。 智能車在我們的現(xiàn)實(shí)生活中的應(yīng)用意義極大。人類的研究活動(dòng)已擺脫了地球生物圈的束縛而廣泛地進(jìn)入外層空間和海洋深處。對(duì)月球和太陽(yáng)系其他行星的探測(cè),對(duì)太陽(yáng)系以外的宇宙進(jìn)行考察,對(duì)數(shù)千米以下的海底的研究,都是目前單靠人力所不能及的。智能機(jī)器人正在代替人們完成這些任務(wù)。在戰(zhàn)場(chǎng)上的軍事活動(dòng)中,在惡劣環(huán)境條件下的生產(chǎn)勞動(dòng)中,凡不宜由人直接承擔(dān)的任務(wù),均可由智能機(jī)器人代替,如智能小車可以適應(yīng)不同環(huán)境,不受溫度、濕度等條件的影響,完成危險(xiǎn)地段、人類無(wú)法介入等特殊情況下的任務(wù)。 本設(shè)計(jì)是智能小車的運(yùn)動(dòng)軌跡的研究,是智能小車研究領(lǐng)域的重要組
10、成部分,初步實(shí)現(xiàn)了多學(xué)科領(lǐng)域的綜合研究。 2、國(guó)內(nèi)外研究及現(xiàn)狀 從20世紀(jì)70年代,歐美等發(fā)達(dá)國(guó)家開(kāi)始進(jìn)行無(wú)人駕駛車的研究,大致可以分為三個(gè)階段:軍事用途、高速公路和城市環(huán)境。在軍事用途方面,早在80年代初期,美國(guó)國(guó)防部就資助自主陸地車輛ALV(AutonomousLandVehicle)的研究。進(jìn)入21世紀(jì),美國(guó)國(guó)防部連續(xù)舉辦大挑戰(zhàn)(Grand Challenge)比賽 活動(dòng),對(duì)促進(jìn)智能車輛技術(shù)交流與創(chuàng)新起到很大激勵(lì)作用。隨著現(xiàn)實(shí)需要,智能車輛的研究逐漸轉(zhuǎn)向民用領(lǐng)域,最早實(shí)現(xiàn)在高速公路應(yīng)用領(lǐng)域。高速公路無(wú)人駕駛研究的典型代表有美國(guó)CMU大學(xué)的NavLab-5系統(tǒng),意大利帕
11、爾瑪大學(xué)的ARGO系統(tǒng)和德國(guó)聯(lián)邦國(guó)防大學(xué)的VAMP系統(tǒng)。 在城市交通方面,歐洲Yamaba公司推出了旅游接待智能車輛CyberCab 。在2005年日本愛(ài)知世博會(huì)上,豐田公司成功演示了ITMS無(wú)人駕駛公交系統(tǒng)。美國(guó)在城市環(huán)境智能車輛研發(fā)方面起步較晚,目前與歐洲和日本存在一些差距。 由于起步較晚,國(guó)內(nèi)智能車研究水平總體上與發(fā)達(dá)國(guó)家相比存在不小的距離。但經(jīng)過(guò)各高校和研究單位的不懈努力,仍取得了階段行的成果。國(guó)內(nèi)清華大學(xué)、國(guó)防科技大學(xué)、上海交通大學(xué)、西安交通大學(xué)、吉林大學(xué)、同濟(jì)大學(xué)和南京理工大學(xué)等都有過(guò)智能車的研究項(xiàng)目。我國(guó)的智能車發(fā)展也主要運(yùn)用在軍事用途、高速公路和城市交通三個(gè)領(lǐng)域。 “八五
12、”、“九五”期間由國(guó)內(nèi)六所重點(diǎn)大學(xué)聯(lián)合研制成功了我國(guó)第一輛智能車ALVLAB1和第二代智能車ALVLAB2。目前,我國(guó)正在組織研究第三代的陸地自主車ALVLAB3。THMR-V(TsingHua Mobile Robot V)清華V型智能車是一個(gè)比較成功的范例。它由清華大學(xué)計(jì)算機(jī)系智能技術(shù)與系統(tǒng)國(guó)家重點(diǎn)實(shí)驗(yàn)室在中國(guó)科學(xué)院院士張鈸主持下研制的新一代智能移動(dòng)機(jī)器人,兼有面向高速公路和一般道路的功能 。 除了清華大學(xué),越來(lái)越多的研究機(jī)構(gòu)、學(xué)者也加入到這一新興學(xué)科中來(lái)。比如上海交通大學(xué)設(shè)計(jì)的自動(dòng)駕駛汽車,能根據(jù)道路彎曲程度的變化,實(shí)時(shí)計(jì)算出車輛的轉(zhuǎn)向盤(pán)角度輸入,控制車輛按預(yù)設(shè)道路行駛。 3、課
13、題研究?jī)?nèi)容 智能車的研究是紛繁復(fù)雜的,而無(wú)論是怎樣的功能,車體的運(yùn)動(dòng)系統(tǒng)是可少的。 本文設(shè)計(jì)方案以多功能的智能小車作為載體,以單片機(jī)AT89S52為核心,以XL02-232AP1微功率無(wú)線透明傳輸模塊為輔助系統(tǒng),由驅(qū)動(dòng)執(zhí)行電路完成小車的行駛,通過(guò)計(jì)算機(jī)的控制對(duì)小車狀態(tài)作出實(shí)時(shí)反應(yīng),并輸出相應(yīng)的控制指令;能夠?qū)崿F(xiàn)小車的前進(jìn),停止,后退,三個(gè)等級(jí)的左右轉(zhuǎn)向,以及小車的弧形運(yùn)動(dòng)。是智能車的基礎(chǔ)研究領(lǐng)域。 第1章 設(shè)計(jì)環(huán)境建設(shè) 1.1 硬件環(huán)境 要迅速反應(yīng)、精確計(jì)算高效率的完成復(fù)雜功能,就需要一個(gè)運(yùn)
14、作穩(wěn)定良好的硬件環(huán)境。而提升硬件環(huán)境質(zhì)量。 高質(zhì)量的硬件可以提供更加清晰豐富的數(shù)據(jù),收集足夠而標(biāo)準(zhǔn)的有用信息。當(dāng)然,硬件系統(tǒng)牢固的架構(gòu)與良好的信息傳導(dǎo)性能,將會(huì)極大地提高整個(gè)系統(tǒng)的信息傳遞速率與系統(tǒng)穩(wěn)定性,也是提高系統(tǒng)有效信息傳遞效率的可靠保證。硬件系統(tǒng)鋪設(shè)過(guò)程中要預(yù)留有足夠的調(diào)試空間,要有目的有計(jì)劃的建設(shè)系統(tǒng)關(guān)鍵節(jié)點(diǎn),足夠而適當(dāng)?shù)恼{(diào)試空間可以提升系統(tǒng)的各方面適應(yīng)性和可靠性。 1.1.1 硬件系統(tǒng)鋪設(shè) 計(jì)算機(jī) 無(wú)線收發(fā)模塊 智能小車 決策系統(tǒng) 串口操作指令 圖1-1 1.1.2 硬件設(shè)備 本設(shè)計(jì)中用到的硬件設(shè)備包括:可執(zhí)行串口控制指令的
15、智能小車一輛,無(wú)線收發(fā)模塊一套,USB轉(zhuǎn)串口設(shè)備一套,軟件開(kāi)發(fā)包一套,電池、導(dǎo)線若干。 1.2 軟件環(huán)境 設(shè)計(jì)中用到的軟件操作系統(tǒng)是windows xp,編程中用到了vc,在模擬仿真中用到了Keil C,protel,proteus等。 第2章 智能小車車體 智能小車車體是整個(gè)設(shè)計(jì)中的核心,它是這個(gè)系統(tǒng)運(yùn)作的最終執(zhí)行者。它表現(xiàn)了整個(gè)智能小車設(shè)計(jì)的系統(tǒng)執(zhí)行效率。 2.1 智能小車的硬件結(jié)構(gòu) 2.1.1 主控芯片的選擇 方案一:采用單個(gè)單片機(jī)作為主控芯片。由于
16、AT89S52具有32個(gè)I/O口,能滿足小車各部分對(duì)I/O口的需求,另外只用一個(gè)單片機(jī)可以很好的控制小車。 方案二:采用雙單片機(jī)作為主控芯片。利用兩塊AT89S52分別對(duì)小車的各部分進(jìn)行檢測(cè)和控制,雖然減輕了單個(gè)單片機(jī)的負(fù)擔(dān),提高了系統(tǒng)的工作效率,但是存在很多的I/O的資源浪費(fèi),并且兩個(gè)單片機(jī)不容易控制,所以不采用該方案。使用方案一。 2.1.2 主要芯片介紹 A AT89S52芯片 圖2-1 AT89S52 是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使
17、用Atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM, 32 位I/O 口線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位 定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式
18、下,CPU 停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 P0 口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。 P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。 此外,P1.0和P1.1分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和定時(shí)器/計(jì)數(shù)器2 的觸發(fā)輸入(P1.1/T2EX)。 在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。 P2 口:P2 口是一個(gè)具
19、有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) TTL 邏輯電平。 P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p3 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。 此外,P3口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)。 RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。 ALE/PROG:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:
20、每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。對(duì)FLASH存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無(wú)效。 PSEN:程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。 EA/VPP:外部訪問(wèn)允許,欲使
21、CPU僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這必須是該器件是使用12V編程電壓Vpp。 XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。 XTAL2:振蕩器反相放大器的輸出端。 B L293D芯片 圖2-2 L293D通過(guò)內(nèi)部邏輯生成使能信號(hào)。H-橋電路的輸入量可以用來(lái)設(shè)置馬達(dá)轉(zhuǎn)動(dòng)方向,使
22、能信號(hào)可以用于脈寬調(diào)整(PWM)。另外,L293D將2個(gè)H-橋電路集成到1片芯片上,這就意味著用1片芯片可以同時(shí)控制2個(gè)電機(jī)。每1個(gè)電機(jī)需要3個(gè)控制信號(hào)EN1、EN2、IN1、IN2,其中EN1、EN2是使能信號(hào),IN1、IN2為電機(jī)轉(zhuǎn)動(dòng)方向控制信號(hào),IN1、IN2分別為1,0時(shí),電機(jī)正轉(zhuǎn),反之,電機(jī)反轉(zhuǎn)。選用一路PWM連接EN12引腳,通過(guò)調(diào)整PWM的占空比可以調(diào)整電機(jī)的轉(zhuǎn)速。選擇一路I/O口,經(jīng)反向器74HC14分別接IN1和IN2引腳,控制電機(jī)的正反轉(zhuǎn)。 L293D額定工作電流為1A,最大可達(dá)1.5A,Vss電壓最小4.5V,最大可達(dá)36V;Vs電壓最大值也是36V,但經(jīng)過(guò)實(shí)驗(yàn),Vs電
23、壓應(yīng)該比Vss電壓高,否則有時(shí)會(huì)出現(xiàn)失控現(xiàn)象。L293D內(nèi)部集成了續(xù)流二極管,因此可以直接驅(qū)動(dòng)感性負(fù)載,如線圈和電機(jī)。 表2-1是其使能、輸入引腳和輸出引腳的邏輯關(guān)系: 表2-1 EN A(B) IN1(IN3) IN2(IN4) 電機(jī)運(yùn)行情況 H H L 正轉(zhuǎn) H L H 反轉(zhuǎn) H 同IN2(IN4) 同IN1(IN3) 快速停止 L X X 停止 C MAX232芯片 MAX232芯片(如圖2-3)是美信公司專門(mén)為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計(jì)的單電源電平轉(zhuǎn)換芯片,使用+5v單電源供電。 圖2-3 引
24、腳介紹: 第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個(gè)電源,提供給RS-232串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入
25、轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 第三部分是供電。15腳GND、16腳VCC(+5v)。 主要特點(diǎn): (1)符合所有的RS-232C技術(shù)標(biāo)準(zhǔn) (2)只需要單一 +5V電源供電 (3)片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V- (4)功耗低,典型供電電流5mA (5)內(nèi)部集成2個(gè)RS-232C驅(qū)動(dòng)器 (6)內(nèi)部集成兩個(gè)RS-232C接收器 2.1.3 小車控制板電路圖 涉及到的主要配件有:300rad/min直流電機(jī),ATmega8515L芯片,MAX232芯片,濾波器,電
26、容,電阻,二級(jí)管,串口接口,開(kāi)關(guān)等,智能小車的原理圖詳見(jiàn)附錄1。 2.1.4 小車電路板成品樣圖 圖2-4 智能小車車體及無(wú)線接收模塊 圖2-5 無(wú)線發(fā)射模塊 圖2-6 USB轉(zhuǎn)串口模塊 2.2 智能小車關(guān)鍵代碼(見(jiàn)附錄2) 本程序在Icc AVR仿真調(diào)試IDE中由C語(yǔ)言編寫(xiě)后生成 .Hex文件,再由雙龍MCU下載程序SLISP下載到小車單片機(jī)上。它的功能為接受串口傳入的16位控制命令01、02、03、04、05,并根據(jù)接收到的16位控制命令實(shí)現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)及
27、停止功能。此程序不具有應(yīng)答反饋和路徑判斷功能,屬于完全被動(dòng)的執(zhí)行上位機(jī)命令的客戶端程序。 2.3 智能小車程序介紹 本設(shè)計(jì)程序分為上位機(jī)和下位機(jī),上位機(jī)主要通過(guò)MFC控制窗口對(duì)小車發(fā)送運(yùn)動(dòng)指令,上位機(jī)通過(guò)MFC讀取指令,由計(jì)算機(jī)的串口發(fā)送給XL02-232AP1無(wú)線發(fā)送模塊。無(wú)線接收模塊接收命令后進(jìn)行分析解碼,傳送給單片機(jī)AT89S52,單片機(jī)讀取指令,發(fā)送控制命令給電動(dòng)機(jī)驅(qū)動(dòng)芯片L293D,驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn),從而實(shí)現(xiàn)智能小車的運(yùn)動(dòng)。 2.3.1 上位機(jī)程序介紹 上位機(jī)是用MFC寫(xiě)成的應(yīng)用程序,主要目的為通過(guò)COM口向串口發(fā)送數(shù)據(jù)到無(wú)線發(fā)送模塊,經(jīng)接收模塊接收
28、后控制小車的運(yùn)行軌跡。 例如:小車的左直角拐彎的控制代碼如下 void CRobot2Dlg::OnButton7() { // TODO: Add your control notification handler code here CSerial ser; char buf[1]; buf[0]=Rob_left_one; ser.Open(com,9600); ser.SendData(buf,com); ser.Close(); } 通過(guò)運(yùn)行程序,點(diǎn)擊此按鈕可以實(shí)現(xiàn)小車的左轉(zhuǎn)彎的運(yùn)動(dòng)。 2.3.2 下位機(jī)程序介紹 A 主要功能及
29、實(shí)現(xiàn) 本設(shè)計(jì)主要實(shí)現(xiàn)了只能小車在運(yùn)動(dòng)過(guò)程中的直行,后退,停止及轉(zhuǎn)彎,下面詳細(xì)介紹各功能的實(shí)現(xiàn)情況。 sbit input1=P1^3; sbit input2=P1^2; sbit input4=P1^0; sbit input3=P1^1; sbit en=P3^6; 分別定義input1,input2,input4,input3為P1口的第3,2,0,1位,以便進(jìn)行位操作,定義en為p3口的第六位。 首先進(jìn)行單片機(jī)的初始化。 TMOD=0x22; TH0=0x38; TL0=0x38; TH1=0xfd; TL1=0xfd;
30、 TR0=1; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; ET0=1; 對(duì)定時(shí)器方式選擇寄存器TMOD的操作,確定是按定時(shí)器的工作模式,TH0和TL0分別是定時(shí)器0的高低8位,賦初值為0x38,TH1和TL1分別是定時(shí)器1的高低八位,賦初值為0xfd。TR0=1,TR1=1表示分別啟動(dòng)T0和T1計(jì)數(shù)器REN為接收控制位,REN=1表示允許接收。SM0=0,SM1=1表示單片機(jī)的串行口的通信方式是10位異步收發(fā)方式,所用的波特頻率則由定時(shí)器控制完成。在中斷初始化方面,EA=1表示開(kāi)單片機(jī)所有中斷,ES=1開(kāi)串行口中斷,ET0=1
31、開(kāi)TO中斷,初始化完畢,進(jìn)入主程序循環(huán)。 主程序中,建立void carmov(uchar left,uchar right)函數(shù),方便主程序循環(huán)語(yǔ)句while()的調(diào)用。 利用switch語(yǔ)句的判斷,例如小車的右轉(zhuǎn): case 0x06: carmov(UF,US); break;//小車原地 case 0x07: carmov(UF,UL); break;//小車右轉(zhuǎn)弧形拐彎1級(jí) case 0x08: carmov(UF,UM); break;//小車右轉(zhuǎn)弧形拐彎2級(jí) 單片機(jī)對(duì)接收到的指令通過(guò)上述語(yǔ)句進(jìn)行判斷,若收到的為0x08,則執(zhí)行第三條語(yǔ)句,調(diào)用car
32、mov函數(shù),函數(shù)的兩個(gè)初始值分別為UF和UM,在程序中已定義#define UF 1,#define UM 2,運(yùn)行carmov函數(shù),首先進(jìn)行左輪運(yùn)動(dòng)情況的判斷,在此例中,我們選擇左輪的初值為UF。 if(left==UF) { input1=1; input2=0; } input1和input2分別賦值為1和0,表示小車左輪全速前進(jìn)。 繼續(xù)運(yùn)行程序進(jìn)行小車的右輪運(yùn)動(dòng)情況的判斷,此例中,我們選擇右輪的初值為UM。 else if(right==UM) { if(num<60) { input4=1; inp
33、ut3=0; } else { input4=1; input3=1; } } 首先判斷num是否小于60,若小于,則將input4和input3分別賦值為1及0,既右輪前進(jìn),否則將二者賦值為1和1,右輪停止。 通過(guò)左右輪的單獨(dú)控制,完成小車的向右2級(jí)弧形拐彎。在本程序設(shè)計(jì)中,巧用定時(shí)器中斷模擬產(chǎn)生了PWM信號(hào),以實(shí)現(xiàn)控制舵機(jī)。 void tim0() interrupt 1 { num++; if(num>=90) num=0; } 簡(jiǎn)單介紹單片機(jī)模擬產(chǎn)生PWM信號(hào)。單片機(jī)系統(tǒng)實(shí)現(xiàn)對(duì)電機(jī)的控制,必須
34、首先完成兩個(gè)任務(wù):首先是產(chǎn)生基本的PWM周期信號(hào);其次是脈寬的調(diào)整,即單片機(jī)模擬PWM信號(hào)的輸出,并且調(diào)整占空比。 在此,我們?cè)O(shè)計(jì)num初值為0,num自加,如果num>=90時(shí),則將num變?yōu)?繼續(xù)中斷程序運(yùn)行,在此我們用定時(shí)器中斷模擬出PWM波,將其分成90等份,在小車轉(zhuǎn)動(dòng)過(guò)程中,可以限制num值的大小而調(diào)整PWM波中高電平的占空比,從而實(shí)現(xiàn)小車電機(jī)在一個(gè)PWM周期波中的轉(zhuǎn)數(shù)控制,達(dá)到小車拐彎角度的控制。 具體的設(shè)計(jì)過(guò)程:例如想讓小車轉(zhuǎn)向左極限的角度,它的正脈沖為2ms,則負(fù)脈沖為脈沖周期20ms-2ms=18ms,所以開(kāi)始時(shí)在控制口發(fā)送高電平,然后設(shè)置定時(shí)器在2ms后發(fā)生中斷,中斷發(fā)
35、生后,在中斷程序里將控制口改為低電平,并將中斷時(shí)間改為18ms,再過(guò)18ms進(jìn)入下一次定時(shí)中斷,再將控制口改為高電平,并將定時(shí)器初值改為2ms,等待下次中斷到來(lái),如此往復(fù)實(shí)現(xiàn)PWM信號(hào)輸出到電機(jī)。用修改定時(shí)器中斷初值的方法巧妙形成了脈沖信號(hào),調(diào)整時(shí)間段的寬度便可使小車運(yùn)動(dòng)。 為保證軟件在定時(shí)中斷里采集其他信號(hào),并且使發(fā)生PWM信號(hào)的程序不影響中斷程序的運(yùn)行(如果這些程序所占用時(shí)間過(guò)長(zhǎng),有可能會(huì)發(fā)生中斷程序還未結(jié)束,下次中斷又到來(lái)的后果),所以需要將采集信號(hào)的函數(shù)放在長(zhǎng)定時(shí)中斷過(guò)程中執(zhí)行,也就是說(shuō)每經(jīng)過(guò)兩次中斷執(zhí)行一次這些程序,執(zhí)行的周期還是20ms。
36、 B 程序流程圖 開(kāi)始 中斷返回 定時(shí)器初始化開(kāi)定時(shí)器中斷 改變定時(shí)時(shí)間輸出管腳取反 運(yùn)行其他中斷程序 有中斷 是否為長(zhǎng)中斷 圖2-7 產(chǎn)生PWM信號(hào)流程圖 開(kāi)始 接收中斷標(biāo)志位RI清零 讀取數(shù)據(jù) 結(jié)束 圖2-8 串口中斷程序流程圖 開(kāi)始 結(jié)束 num++ num>=90? num=0 是 否 圖2-9 定時(shí)器中斷流程圖 開(kāi)始 初始化 前進(jìn) 原地左轉(zhuǎn) 向左弧形轉(zhuǎn)彎 向右弧形轉(zhuǎn)彎 原地右轉(zhuǎn) 后退 停止
37、圖2-10 主程序流程圖 第3章 無(wú)線收發(fā)模塊 在小車系統(tǒng)中,控制系統(tǒng)的基本任務(wù)是:接收系統(tǒng)通過(guò)無(wú)線通信發(fā)射裝置傳來(lái)的運(yùn)動(dòng)控制指令,然后根據(jù)接收到的運(yùn)動(dòng)指令控制小車左、右輪的停止或轉(zhuǎn)動(dòng)以實(shí)現(xiàn)規(guī)劃的運(yùn)動(dòng)。機(jī)器人能否正確接收運(yùn)動(dòng)控制指令,決定于無(wú)線通信系統(tǒng)的性能。所以通信速率高、集成度好、可靠性高、抗干擾能力強(qiáng)的無(wú)線通信系統(tǒng)對(duì)于正確實(shí)現(xiàn)小車的運(yùn)動(dòng)規(guī)劃具有重要的意義。 3.1 無(wú)線模塊的選擇 本設(shè)計(jì)中采用一款低功耗超高頻的XL02-232AP1數(shù)據(jù)收發(fā)模塊,它具有通信速率高、性能可靠、體積小的優(yōu)點(diǎn),只接少許外圍電路即可工作,使用非常方便,既
38、可發(fā)送又可接收。 其特點(diǎn)主要有: ★300米傳輸距離 ★工作頻率在428.8-435.1MHz,(默認(rèn)433.92MHZ) ★可設(shè)置ID:范圍0-65535,默認(rèn)ID:12345 ★串口速率1.2K---38.4KBPS.(默認(rèn)9.6KBPS) ★數(shù)據(jù)格式8N1 ★方便快捷的參數(shù)設(shè)置 3.1.1 XL02-232AP1的端口定義及連接示意圖 A 端口定義: 表3-1 管腳 定義 說(shuō)明 電平 備注 1 VCC 電源 +5v 模塊的第一方形焊盤(pán) 2 GND 地 GND 3 TXD 模塊數(shù)據(jù)輸出 TTL
39、 4 RXD 模塊數(shù)據(jù)輸入 TTL 5 SET 設(shè)置時(shí)拉低,平時(shí)懸空 進(jìn)入設(shè)置模塊時(shí),請(qǐng)先將此端口拉低,再給模塊上電,此時(shí)綠燈長(zhǎng)亮 6 GND 地 GND 7 NC 不連接 B 連接示意圖 圖3-1 圖3-2 3.1.2 無(wú)線模塊的性能 A 通信方式 在智能小車運(yùn)動(dòng)過(guò)程中,機(jī)器人的無(wú)線通信協(xié)議采用廣播式通信方式。上位機(jī)通過(guò)無(wú)線通信設(shè)備,發(fā)出數(shù)據(jù),小車從數(shù)據(jù)串中確定出發(fā)給自己的命令 B 程序 小車無(wú)線接收程序是串行通信中斷服務(wù)程序,其流程框圖見(jiàn)圖3-3“串行通信中斷程序流程”。
40、 開(kāi)始 同步標(biāo)志1? 幀頭1-55H? 同步標(biāo)志2? 同步標(biāo)志3? 幀頭3-55H? 幀頭2-FAH? 置同步標(biāo)志-1 置同步標(biāo)志-3 置同步標(biāo)志-0 置同步標(biāo)志-2 置同步標(biāo)志-0 開(kāi)始接收數(shù)據(jù),送到暫存區(qū),數(shù)據(jù)和CRC校驗(yàn) 最后字節(jié)-CRC? 最后一個(gè)字節(jié)? 置同步標(biāo)志-0 置新接收成功標(biāo)志-1 置同步標(biāo)志-0 恢復(fù)現(xiàn)場(chǎng)返回 N N N Y Y Y N N N N N Y Y Y Y Y 圖3-3 串行口通信中斷程序流程 由流程圖3-3可知,必須通過(guò)啟始同步碼3道關(guān)驗(yàn)證,才能開(kāi)始接收數(shù)據(jù)。一
41、幀數(shù)據(jù)接收完后,字節(jié)還要進(jìn)行CRC(循環(huán)冗余校驗(yàn))。CRC校驗(yàn)字節(jié)是每個(gè)數(shù)據(jù)字節(jié)相互異或后的結(jié)果。接收到的數(shù)據(jù)校驗(yàn)正確則接收,否則放棄這幀數(shù)據(jù)。 C 干擾與噪聲 造成無(wú)線通信系統(tǒng)可靠性不高的原因很多,主要原因是存在著各種噪聲和干擾。它們的來(lái)源不同,有電臺(tái)干擾、通信信號(hào)干擾及驅(qū)動(dòng)左右輪的直流電機(jī)產(chǎn)生的干擾,以及系統(tǒng)設(shè)備本身所產(chǎn)生的各種噪聲等。 為了抑制系統(tǒng)干擾及噪聲,應(yīng)盡可能提高無(wú)線模塊的工作電壓和發(fā)射功率。發(fā)射器是通過(guò)通信線纜與上位機(jī)相連的,發(fā)射器輸入端加上光電隔離電路,以排除上位機(jī)的干擾。使用的發(fā)射和接收天線的長(zhǎng)度保持一致,且均垂直于水平面向上。通信中出現(xiàn)失誤的情況是難以避免的,因
42、此在通信協(xié)議中加入起始幀頭和校驗(yàn)碼,通過(guò)抗干擾方法設(shè)計(jì)接收軟件程序,提高數(shù)據(jù)接收的準(zhǔn)確性。 3.2 配置接口通訊協(xié)議 圖3-4 操作步驟:按圖3-4中標(biāo)識(shí),把無(wú)線模塊插入轉(zhuǎn)接板相對(duì)位置。將無(wú)線發(fā)射模塊接到計(jì)算機(jī)串口上面,并將無(wú)線接收模塊接到小車串口上。首次使用無(wú)線收發(fā)模塊要進(jìn)行調(diào)試:將電源開(kāi)關(guān)置于ON,電源指示燈紅燈亮,再將設(shè)置開(kāi)關(guān)置于ON,設(shè)置狀態(tài)燈綠燈亮。此時(shí),可以用相關(guān)軟件調(diào)試無(wú)線收發(fā)模塊通信協(xié)議。本設(shè)計(jì)中,采用RF-Magic調(diào)試無(wú)線模塊。在正常通訊情況下,設(shè)置開(kāi)關(guān)置于OFF。 3.2.1 接口 通訊接口: RS232 – TTL 通訊速率: 960
43、0bps 通訊格式: 1 start bit , 8 data bits , no parity bit , 1 stop bit 注意:在配置模式下串口恒為以上格式。 配置使能:config pin 低電平進(jìn)入配置模式 config pin 高電平進(jìn)入正常模式 頻率計(jì)算:x = 設(shè)置RF頻率參數(shù) TX = 6.4Mhz * (67 + x/65535) 例如:頻率高字節(jié) = 0xcc; 頻率低字節(jié) = 0xcc; 則 x = 0xcccc TX = 6.4Mhz * (67 +
44、0xcccc/0xffff) = 6.4Mhz * (67 +0.8) = 433.92Mhz 例如:頻率高字節(jié) = 0xaa; 頻率低字節(jié) = 0x00; 則 x = 0xaa00 TX = 6.4Mhz * (67 + 0xaa00/0xffff) = 6.4Mhz * (67 +0.664) = 433.05Mhz 3.2.2 命令 (1)寫(xiě)命令:0xF8 (2)數(shù)據(jù)格式: ① 主機(jī)發(fā)送: 0xF8+串口速率+RF發(fā)射功率+ RF頻率高字節(jié)+RF頻率低字節(jié)+ ID高字節(jié)+ID低字節(jié)+和校驗(yàn)字節(jié)
45、 注:和校驗(yàn)字節(jié) = 所有參數(shù)累加和的低字節(jié)(不包括命令字節(jié)) ② 模塊應(yīng)答:配置成功應(yīng)答0xAA,否則無(wú)應(yīng)答 3.3 參數(shù)范圍 表3-2 功率 01-04 ;0dbm,5dbm,10dbm,15dbm RS232速率 01-06;1.2kbps,2.4kbps,4.8kbps,9.6kbps,19.2kbps,38.4kbps 頻率 428.8MHZ – 435.1MHZ; 0x0000 – 0xfbff ID 0x0000 – 0xffff 3.4 發(fā)送串口控制命令 無(wú)線模塊接口為串口,采用9600波特率通信,串口控制程序?qū)崿F(xiàn)串口的開(kāi)啟,發(fā)送命令,接收
46、回饋信息,關(guān)閉串口等復(fù)雜過(guò)程,確保無(wú)線通信的穩(wěn)定性和可靠性。 第4章 電機(jī)驅(qū)動(dòng)模塊 本次設(shè)計(jì)中采用了L293D驅(qū)動(dòng)兩臺(tái)獨(dú)立直流電機(jī)分別控制小車的左后輪和右后輪,向小車發(fā)送左轉(zhuǎn)或右轉(zhuǎn)指令時(shí),可以分別控制兩輪的轉(zhuǎn)速,使程序簡(jiǎn)潔,方便。前輪則用一個(gè)可自由旋轉(zhuǎn)360度的小輪代替,無(wú)論是停止還是轉(zhuǎn)向,前輪都可以隨之改變,方便操作,簡(jiǎn)化了程序的復(fù)雜性。 電機(jī)驅(qū)動(dòng)芯片方面,采用的是L293D驅(qū)動(dòng)直流電機(jī)轉(zhuǎn)動(dòng),既方便簡(jiǎn)潔,又實(shí)惠耐用。 4.1 電機(jī)方案的論證與比較 方案一:采用步進(jìn)電機(jī),精確度較高,一般步進(jìn)電機(jī)的精度為步進(jìn)的3%-5%,且不積累,缺點(diǎn)
47、是體積較大,速度較慢,且價(jià)格較高。 方案二:采用直流電機(jī),直流電機(jī)運(yùn)轉(zhuǎn)平穩(wěn),可以保證小車運(yùn)行的精度,雖然其控制的精確度沒(méi)有直流電機(jī)的高,但完全可以滿足本設(shè)計(jì)中的要求,而且價(jià)格也比較合理。 4.2 電機(jī)驅(qū)動(dòng)芯片 L293D采用16引腳DIP封裝,其內(nèi)部集成了雙極型H-橋電路,所有的開(kāi)量都做成n型。這種雙極型脈沖調(diào)寬方式具有很多優(yōu)點(diǎn),如電流連續(xù);電機(jī)可四角限運(yùn)行;電機(jī)停止時(shí)有微振電流,起到“動(dòng)力潤(rùn)滑”作用,消除正反向時(shí)的靜摩擦死區(qū):低速平穩(wěn)性好等。 L293D芯片的詳細(xì)介紹請(qǐng)參照論文中的2.1.1-b 圖4-1 第5章 經(jīng)驗(yàn)
48、總結(jié)與展望 5.1 設(shè)計(jì)中解決的問(wèn)題 首先遇到的問(wèn)題是小車CPU芯片的選擇,在權(quán)衡各種問(wèn)題及考慮到自己掌握的知識(shí)等問(wèn)題后,選擇使用了AT89S52。首先,這個(gè)芯片與89C51類似,而89C51使我們已經(jīng)學(xué)過(guò)的單片機(jī),其次,AT89S52的功能及引腳完全可以滿足此次設(shè)計(jì)的需要。 在進(jìn)行上位機(jī)與下位機(jī)傳輸?shù)膯?wèn)題上,經(jīng)過(guò)上網(wǎng)搜索與老師的答疑,選擇了一款低功耗超高頻的XL02-232AP1數(shù)據(jù)收發(fā)模塊,它可以解決在無(wú)線模塊中干擾最大的噪聲問(wèn)題,既方便又實(shí)惠。在電機(jī)驅(qū)動(dòng)模塊上,選擇了兩個(gè)直流電機(jī)分別單獨(dú)控制小車的左右輪,解決了在轉(zhuǎn)彎時(shí)單片機(jī)程序控制同時(shí)控制小車左右輪不同轉(zhuǎn)速的問(wèn)題。
49、設(shè)計(jì)小車弧形拐彎時(shí)遇到的最大問(wèn)題是怎樣實(shí)現(xiàn)小車兩輪的不同轉(zhuǎn)速,在咨詢老師和查閱相關(guān)書(shū)籍后得知,可以用單片機(jī)模擬實(shí)現(xiàn)PWM波,PWM波可控制電機(jī)的運(yùn)轉(zhuǎn)。我們可以巧妙的利用定時(shí)器的中斷來(lái)實(shí)現(xiàn)單片機(jī)模擬PWM波的產(chǎn)生,利用變量num的大小調(diào)整可以調(diào)整一個(gè)波形周期內(nèi)高電平所占的占空比,從而實(shí)現(xiàn)車輪在一個(gè)周期內(nèi)的轉(zhuǎn)數(shù),從宏觀上即可實(shí)現(xiàn)小車的弧形拐彎。 上位機(jī)的程序也是比較苦難的,由于平時(shí)很少接觸MFC窗口的編程,開(kāi)始編寫(xiě)上位機(jī)程序時(shí)遇到了不小的阻力,但是指導(dǎo)老師適時(shí)的給我們輔導(dǎo)了這方面的知識(shí),使我在編程中解決了不小的困難。 電源選擇方面,無(wú)線驅(qū)動(dòng)用的電池必須滿足6V以上方可實(shí)現(xiàn)其正常運(yùn)行。由于用到的
50、電機(jī)耗電量比較大,六節(jié)干電池只用了十幾分鐘就耗完了,剛開(kāi)始不知道,以為是編程出現(xiàn)了問(wèn)題,不能滿足程序的長(zhǎng)時(shí)間運(yùn)行,在考慮并調(diào)試之后,終于發(fā)現(xiàn)了這一個(gè)問(wèn)題,問(wèn)題得到圓滿的解決。 5.2 總結(jié)與展望 智能小車的設(shè)計(jì)一直是我所想做的,它不但滿足了我的興趣愛(ài)好,而且還能將大學(xué)四年中的知識(shí)很好的應(yīng)用到設(shè)計(jì)中。 此次設(shè)計(jì)主要是嵌入式方面的內(nèi)容,用到的軟件知識(shí)有MFC,VC等,在模擬實(shí)現(xiàn)過(guò)程中也用到了protel和protus等,硬件方面用到了了單片機(jī)的相關(guān)知識(shí)。設(shè)計(jì)中很好的將這些知識(shí)聯(lián)系統(tǒng)一起來(lái),做到融會(huì)貫通。最重要的是在此次設(shè)計(jì)中,解決了很多平時(shí)理論學(xué)習(xí)匯總很少遇到的實(shí)
51、際問(wèn)題,例如小車電源的選擇過(guò)程中,費(fèi)了很大的周折,最讓我記憶深刻的是小車電機(jī)電池的問(wèn)題。還有就是USB轉(zhuǎn)串口的問(wèn)題,雖然最后未能圓滿解決此問(wèn)題,但是解決問(wèn)題的過(guò)程中還是收獲不少。 隨著科技的迅猛發(fā)展,智能已經(jīng)成為了現(xiàn)在的高科技的熱詞,智能機(jī)器人可以解決無(wú)數(shù)人類無(wú)法或者是很難解決的難題。智能是大勢(shì)所趨,而智能車作為智能機(jī)器人中一類必不可少的組成部分,最近幾年發(fā)展更是迅速,各個(gè)國(guó)家更是投入大量資金。它廣泛涉及人工智能、計(jì)算機(jī)視覺(jué)、自動(dòng)控制、精密儀器、傳感和信息等一系列學(xué)科的創(chuàng)新研究,其研究成果可廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、醫(yī)藥、軍事、航空、信息技術(shù)等實(shí)際領(lǐng)域,集中反映出一個(gè)國(guó)家的高科技水平和綜合國(guó)力,
52、是國(guó)家綜合國(guó)力強(qiáng)大的標(biāo)志,也是人類文明進(jìn)步的標(biāo)志。 參考文獻(xiàn) [1]船倉(cāng)一郎,土屋堯,崛桂太郎(日).機(jī)器人控制電子學(xué).北京:科技出版社.2004.11~12 [2]陳繼榮.智能電子制作創(chuàng)新制作-機(jī)器人制作入門(mén).北京:科學(xué)出版社.2007.66~71 [3]Rowel O.Atienza,Marcelo H.Ang Jr. A Flexible Control Architecture for Mobile Robots:An Application for a Walking Robot.Journal of Intelligent a
53、nd Robotic Systems,Springer Netherlands.2001.29~48 [4]V.E.Pavlovsky,S.A.Polivtseev,T.S.Khashan.Intelligent Technical Audition and Vision Sensors for Walking Robot Realizing Telepresence Functions.Climbing and Walking Robots,2006,Vol.10:387~397 [5]江晉劍,錢(qián)萌.一種基于AT89S52的簡(jiǎn)易智能小車設(shè)計(jì):科技論文.成都:電子科技大學(xué)高能所,2007.
54、97~100 [6]胡漢才.單片機(jī)原理及接口技術(shù)(第二版).北京:清華大學(xué)出版社,2004.61~65.206~207.337~338 [7]肖偉,武強(qiáng),閆秀桃,劉根.L293D在護(hù)士移動(dòng)機(jī)器人主控電路板設(shè)計(jì)中的應(yīng)用.國(guó)外電子元器件,2007,Vol.11:64~66 [8]趙負(fù)圖.光電檢測(cè)控制電路手冊(cè).北京:化學(xué)工業(yè)出版社.2001.34~39 [9]趙負(fù)圖.無(wú)線電接收發(fā)射應(yīng)用集成電路手冊(cè).北京:化學(xué)工業(yè)出版社.2003.45~54 [10]何立民. MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社,2001.81~90 附
55、錄一:原理圖 附錄二:上位機(jī)主要程序代碼: void CRobot2Dlg::OnUp() { //實(shí)現(xiàn)小車的向前移動(dòng) CSerial ser; char buf[1]; buf[0]=Roa_forward; ser.Open(com,9600); ser.SendData(buf,com); ser.Close(); } void CRobot2Dlg::OnLeft() { //實(shí)現(xiàn)小車的向左直角拐彎 CSerial ser; char buf[1]; buf[0]=Roa_left_one; ser.Open(co
56、m,9600); ser.SendData(buf,com); ser.Close(); } void CRobot2Dlg::OnDown() { // 實(shí)現(xiàn)小車的向后移動(dòng) CSerial ser; char buf[1]; buf[0]=Roa_back; ser.Open(com,9600); ser.SendData(buf,com); ser.Close(); } void CRobot2Dlg::OnStoper() { // 小車停止 CSerial ser; char buf[1]; buf[0]=
57、Roa_stop; ser.Open(com,9600); ser.SendData(buf,com); ser.Close(); } void CRobot2Dlg::OnRignt() { // 小車向右弧形拐彎2級(jí) CSerial ser; char buf[1]; buf[0]=Roa_right_three; ser.Open(com,9600); ser.SendData(buf,com); ser.Close(); } void CRobot2Dlg::OnButton7() { //小車
58、向左直角拐彎 char buf[1]; buf[0]=Rob_left_one; ser.Open(com,9600); ser.SendData(buf,com); ser.Close(); } void CRobot2Dlg::OnButton6() { // 小車向左弧形拐彎2級(jí) CSerial ser; char buf[1]; buf[0]=Rob_left_three; ser.Open(com,9600); ser.SendData(buf,com); ser.Close(); } 下位機(jī)主要程序代碼:
59、
#include
60、 enrig=P3^7; uchar rec,nub; void init() { //初始化操作 nub=0; rec=0; enlef=0; enrig=0; TMOD=0x22; TH0=0x38; TL0=0x38; TH1=0xfd; TL1=0xfd; TR0=1; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; ET0=1; } void carleft(uchar k_lef,uchar cnt_lef) { if(k_lef==1) { in
61、put1=1;
input2=0;
}
else if(k_lef==2)
{
input1=0;
input2=1;
}
if(nub 62、 if(nub 63、); break;
default: break;
}
//右輪運(yùn)動(dòng)判斷
switch(right)
{
case UF: carright(1,90); break;
case UM: carright(1,60); break;
case UL: carright(1,30); break;
case US: carright(1,18); break;
case ST: carright(0,0); break;
default: break;
}
}
void main()
{
init(); 64、
while(1)
{
switch(rec)
{
case 0x11: carmov(BF,BF); break;//小車后退
case 0x12: carmov(UF,UF); break;//小車前進(jìn)
case 0x13: carmov(US,UF); break;//小車直角左轉(zhuǎn)
case 0x14: carmov(UL,UF); break;//小車弧形左轉(zhuǎn)1級(jí)
case 0x15: carmov(UM,UF); break;//小車弧形左轉(zhuǎn)2級(jí)
case 0x16: carmov(UF,US); brea 65、k;//小車直角右轉(zhuǎn)
case 0x17: carmov(UF,UL); break;//小車弧形右轉(zhuǎn)1級(jí)
case 0x18: carmov(UF,UM); break;//小車弧形右轉(zhuǎn)2級(jí)
case 0x19: carmov(ST,ST); break;//小車停止
default: break;
}
}
}
void ser() interrupt 4
{
RI=0;
rec=SBUF;
}
void time0() interrupt 1
{
nub++;
if(nub>=90)
nub=0;
}
第40頁(yè)
- 溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案