第一篇:基于Arduino單片機避障小車機器人畢業論文
論文編碼:TP39
Capital Normal University
首都師范大學本科畢業設計論文
基于行為設計的移動機器人設計與實現
——機器人機械設計模塊
Design and Implementation of Mobile Robot
Based on Behavior Design —— Robot Mechanical Solutions
論文作者: 張倩穎 院 系: 信息工程學院 專 業: 計算機科學與技術 學 號: 1111000055 指導老師: 徐敏 完成日期: 2015年 4月 25日
首都師范大學本科畢業設計論文
摘要
本文簡要介紹了基于行為設計的移動機器人設計與實現----一種基于Arduino新型集成開發環境的超聲波避障小車的工作原理。其中包括對小車的執行組件、搭建結構、傳感器、Arduino單片機軟件編程及試驗結果的介紹。
本方案以Arduino單片機為控制核心,基于蝙蝠超聲波測距的原理,利用超聲波傳感器,檢測小車前方障礙物的距離,然后把數據傳送給單片機。當超聲波檢測到距離小車前方25CM有障礙物時單片機就發出指令讓小車左轉一定角度,然后停止行進繼續探測.如果前方25CM沒有障礙物則直行,否則繼續左轉一定角度。如此通過超聲波不斷的循環檢測周邊環境的情況進行自動避障。
本系統在硬件設計方面,以Arduino單片機為控制核心,以超聲波傳感器檢測前方障礙物,從而自動避障。在軟件方面,利用Arduino語言進行編程,通過軟件編程來控制小車運轉。該系統在驅動方面采用L298N驅動2個直流電機帶動小車運行。并且,用PWM系統調速,控制小車前進的速度。實現小車根據外部環境,做出前進、后退和轉向等動作,從而完成避障的功能,本設計具有有一定的實用價值。
關鍵詞:Arduino單片機;超聲波傳感器;避障
I
基于行為設計的移動機器人設計與實現
ABSTRACT This paper describes the design of mobile robot behavior-based design and implement----A new ultrasound-based integrated development environment Arduino obstacle avoidance car works.These include the implementation of car components, building structures, sensors, Arduino microcontroller software programming and test results presentation.The program to Arduino microcontroller core, based on the principle of ultrasonic distance measurement bats using ultrasonic sensors to detect obstacles in front from the car, and then transmits the data to the microcontroller.When the ultrasonic distance in front of the car detects obstacles 25CM SCM issued a directive to make the car turn left on an angle, then continue probing stop traveling.If there is no obstacle in front of the 25CM straight, turn left or continue certain angle.So the case of the ultrasonic continuous loop through the surrounding environment to automatically detect avoidance.The system hardware design to Arduino microcontroller core, with ultrasonic sensors detect obstacles in front, so that automatic obstacle avoidance.On the software side, the use of Arduino programming language to control the car running through software programming.The system uses the driver side L298N drive two DC motors drive the car running.And, with the PWM system speed, speed control car forward.Realize the car according to the external environment, made forward, backward, and steering movements, thus completing the obstacle avoidance function, the design has a certain practical value.Key words: Arduino;ultrasonic sensors;obstacle avoidance
II
首都師范大學本科畢業設計論文
第一章 緒論....................................................................................................................................1 1.1 論文的選題背景...................................................................................................................1 1.2 Arduino單片機概述.............................................................................................................2 1.3 Arduino機器人發展現狀.....................................................................................................3 1.4 Arduino智能避障機器人研究意義和目的.........................................................................4 1.5項目主要研究內容...............................................................................................................5 第二章 避障小車機器人的總體設計............................................................................................6 2.1設計原理與方法...................................................................................................................6 2.2硬件設計...............................................................................................................................6 2.3 軟件設計...............................................................................................................................7 2.3.1 Arduino語言..................................................................................................................7 2.3.2 Arduino IDE....................................................................................................................8 2.4 實驗前期準備.....................................................................................................................10 第三章 硬件模塊..........................................................................................................................12 3.1 各模塊的的基本性能.........................................................................................................12 3.1.1 單片機模塊...................................................................................................................12 3.1.2 電機、電機驅動模塊...................................................................................................12 3.1.3避障模塊......................................................................................................................14 3.1.4電源模塊......................................................................................................................15 3.2 小車的基本搭建.................................................................................................................15 3.3連線.....................................................................................................................................17 3.3.1電機的連線..................................................................................................................17 3.3.2舵機的連線..................................................................................................................18 3.3.3超聲波的連線..............................................................................................................19 3.3.4 Arduino超聲波小車總體連線圖:.............................................................................20
III
基于行為設計的移動機器人設計與實現
第四章 軟件模塊..........................................................................................................................21 4.1 軟件設計思路.....................................................................................................................21 4.2 電機前進模塊.....................................................................................................................22 4.2 電機后退模塊.....................................................................................................................22 4.3 電機停止工作模塊.............................................................................................................23 4.4 電機左轉模塊.....................................................................................................................23 4.5 電機右轉模塊.....................................................................................................................24 4.6 防卡死模塊.........................................................................................................................25 第五章 實驗及結果分析..............................................................................................................26 5.1預期目標.............................................................................................................................26 5.2遇到的問題和解決方法.....................................................................................................26 5.3 硬件的調試與整合.............................................................................................................27 5.3.1調試思路......................................................................................................................27 5.3.2調試超聲波模塊..........................................................................................................27 5.3.3電機調試......................................................................................................................28 5.4 心得體會.............................................................................................................................28 第六章 設想與展望......................................................................................................................30 參考文獻.......................................................................................................................................31 致謝...............................................................................................................................................32 附錄...............................................................................................................................................33 超聲波智能避障車程序(ARDUINO)...................................................................................33
IV
首都師范大學本科畢業設計論文
第一章 緒論
1.1 論文的選題背景
隨著現代計算機技術的不斷發展和普及,機器人的發展已經遍及近年來機器人的智能水平不斷提高,并且迅速地改變著人們的生活方式。小到智能玩具,大到機械、電子、冶金、交通、宇航、國防等各個領域。人們將計算機技術更加廣闊的運用的人類生活中,制造能替代人勞動的機器一直是人類的夢想,并一直在為之努力。在我們的生活里,有很多的機器人,如圖1.1所示,這兩種機器人分別是掃地機器人和滅火機器人。他們在我們的生活中非常常見也很實用,他們的特點就是無需人們的控制,能夠自行運動完成他們的任務。那么這就需要一個非常必要的基礎功能,那就是能夠感知并躲避前方的障礙物。
因此,在本次的設計中,我們將設計出一個能夠避障機器人,在具有這個基本功能的基礎上,我們就可以為他附加更多的功能,賦予它更多的實用價值。選用Arduino單片機作為控制核心,使用仿生超聲波技術傳感器進行避障的實現。“智能避障機器人”作為現代社會的新產物,也是以后的發展方向,他可以按照預先設定的模式在一個特定的環境里自動的運作,無需人為管理,便可以完成預期所要達到的或是更高的目標。
圖1.1
基于行為設計的移動機器人設計與實現
1.2 Arduino單片機概述
Arduino,是一個基于開放原始碼的軟硬件平臺,構建于開放原始碼simple I/O介面版,并且具有使用類似Java,C語言的Processing/Wiring開發環境。它包含兩個主要的部分:硬件部分是可以用來做電路連接和Arduino電路板;另外一個則是Arduino IDE,你的計算機中的程序開發環境。你只要在IDE中編寫程序代碼,將程序上傳到Arduino電路板后,程序便會告訴Arduino電路板要做些什么了。
Arduino能通過各種各樣的傳感器來感知環境,通過控制燈光、馬達和其他的裝置來反饋、影響環境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進制文件,收錄進微控制器。對Arduino的編程是利用Arduino編程語言(基于 Wiring)和Arduino開發環境(based on Processing)來實現的。基于Arduino的項目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上運行的軟件,他們之間進行通信(比如 Flash, Processing, MaxMSP)來實現。可以自己動手制作,也可以購買成品套裝;Arduino所使用到的軟件都可以免費下載.硬件參考設計(CAD 文件)也是遵循availableopen-source協議, 你可以非常自由地根據你自己的要求去修改他們.Arduino可以使用開發完成的電子元件例如Switch或sensors或其他控制器、LED、步進馬達或其他輸出裝置。Arduino也可以獨立運作成為一個可以跟軟件溝通的接口,例如說:flash、processing、Max/MSP、VVVV或其他互動軟件…。Arduino開發IDE接口基于開放源代碼原,可以讓您免費下載使用開發出更多令人驚艷的互動作品。
其主要特點如下:
1)開放源代碼的電路圖設計,程序開發接口免費下載,也可依個人需求自己修改。2)使用低價格的微處理控制器(AVR系列控制器),可以采用USB接口供電,不需外接電源,也可以使用外部9VDC輸入。
3)Arduino支持ISP在線燒,可以將新的“bootloader”固件燒入AVR芯片。有了bootloader之后,可以通過串口或者USB to Rs232線更新固件。
4)可依據官方提供的Eagle格式PCB和SCH電路圖簡化Arduino模組,完成獨立運作的微處理控制;可簡單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達,…等)5)支持多種互動程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。
首都師范大學本科畢業設計論文
6)應用方面,利用Arduino,突破以往只能使用鼠標、鍵盤、CCD等輸入的裝置的互動內容,可以更簡單地達成單人或多人游戲互動。
我們為什么要使用Arduino?有很多的單片機和單片機平臺都適合用做交互式系統的設計。例如:Parallax Basic Stamp,Netmedia’s BX-24,Phidgets,MIT’s Handyboard和其它等等提供類似功能的。所有這些工具,你都不需要去關心單片機編程繁瑣的細節,提供給你的是一套容易使用的工具包。Arduino同樣也簡化了同單片機工作的流程,但同其它系統相比Arduino在很多地方更具有優越性,特別適合老師,學生和一些業余愛好者們使用:和其它平臺相比,Arduino板算是相當便宜了。最便宜的Arduino版本可以自己動手制作,即使是組裝好的成品,其價格也不會超過200元。而且Arduino軟件可以跨平臺運行在Windows,Macintosh OSX,和Linux操作系統。而大部分其它的單片機系統都只能運行在Windows上。另外,它具有簡易的編程環境。初學者很容易就能學會使用Arduino編程環境,同時它又能為高級用戶提供足夠多的高級應用。對于老師們來說,一般都能很方便的使用Processing 編程環境,所以如果學生學習過使用Processing 編程環境的話,那他們在使用Arduino開發環境的時候就會覺得很相似很熟悉。
軟件開源并可擴展-Arduino軟件是開源的,對于有經驗的程序員可以對其進行擴展。Arduino編程語言可以通過C++庫進行擴展,如果有人想去了解技術上的細節,可以跳過Arduino語言而直接使用AVR C 編程語言(因為Arduino語言實際上是基于AVR C的)。類似的,如果你需要的話,你也可以直接往你的Arduino程序中添加AVR-C 代碼。
Arduino基于AVR平臺,對AVR庫進行了二次編譯封裝,把端口都打包好了,寄存器啦、地址指針之類的基本不用管。大大降低了軟件開發難度,適宜非專業愛好者使用。優點和缺點并存,因為是二次編譯封裝,代碼不如直接使用AVR代碼編寫精練,代碼執行效率與代碼體積都弱于AVR直接編譯。
1.3 Arduino機器人發展現狀
我國目前的發展現狀是研制中的智能移動機器人智能水平并不高,只能說是智能移動機器人的初級階段。智能移動機器人研究中當前的核心問題有兩方面:一方面是,提高智能移動機器人的自主性,這是就智能移動機器人與人的關系而言,即希望智能
基于行為設計的移動機器人設計與實現
移動機器人進一步獨立于人,具有更為友善的人機界面。從長遠來說,希望操作人員只要給出要完成的任務,而機器能自動形成完成該任務的步驟,并自動完成它。另一方面是,提高智能移動機器人的適應性,提高智能移動機器人適應環境變化的能力,這是就智能移動機器人與環境的關系而言,希望加強它們之間的交互關系。
智能移動機器人涉及到許多關鍵技術,這些技術關系到智能移動機器人的智能性的高低。這些關鍵技術主要有以下幾個方面:多傳感信息耦合技術,多傳感器信息融合就是指綜合來自多個傳感器的感知數據,以產生更可靠、更準確或更全面的信息,經過融合的多傳感器系統能夠更加完善、精確地反映檢測對象的特性,消除信息的不確定性,提高信息的可靠性;導航和定位技術,在自主移動機器人導航中,無論是局部實時避障還是全局規劃,都需要精確知道機器人或障礙物的當前狀態及位置,以完成導航、避障及路徑規劃等任務;路徑規劃技術,最優路徑規劃就是依據某個或某些優化準則,在機器人工作空間中找到一條從起始狀態到目標狀態、可以避開障礙物的最優路徑;機器人視覺技術,機器人視覺系統的工作包括圖像的獲取、圖像的處理和分析、輸出和顯示,核心任務是特征提取、圖像分割和圖像辨識;智能控制技術,智能控制方法提高了機器人的速度及精度;人機接口技術,人機接口技術是研究如何使人方便自然地與計算機交流。
在各國的智能移動機器人發展中,美國的智能移動機器人技術在國際上一直處于領先地位,其技術全面、先進,適應性也很強,性能可靠、功能全面、精確度高,其視覺、觸覺等人工智能技術已在航天、汽車工業中廣泛應用。日本由于一系列扶植政策,各類機器人包括智能移動機器人的發展迅速。歐洲各國在智能移動機器人的研究和應用方面在世界上處于公認的領先地位。中國起步較晚,而后進入了大力發展的時期,以期以機器人為媒介物推動整個制造業的改變,推動整個高技術產業的壯大
1.4 Arduino智能避障機器人研究意義和目的
機器人的感覺傳感器種類非常多,其中視覺傳感器成為研制自動行走和駕駛機器人的重要部件。機器人要實現自動導引功能和避障功能就必須要感知導引線和障礙物,感知導引線相當給機器人一個視覺功能。本設計以超聲波作為智能車避障的一種重要手段,以其避障實現方便,計算簡單,易于做到實時控制,測量精度也能達到實用的要求,在未來汽車智能化進程中必將得到廣泛應用。我國作為一個世界大國,在高科
首都師范大學本科畢業設計論文
技領域也必須占據一席之地,未來汽車的智能化是汽車產業發展必然的,在這種情況下研究超聲波在智能車避障上的應用具有深遠意義,這將對我國未來智能汽車的研究在世界高科技領域占據領先地位具有重要作用。
本設計主要體現多功能小車的智能避障功能,本設計中的理論方案、分析方法及特色與創新點等可以為自動運輸機器人、采礦勘探機器人、家用自動清潔機器人等自動半自動機器人的設計與普及有一定的參考意義。同時小車可以作為玩具的發展對象,為中國玩具市場技術含量的缺乏進行一定的彌補,實現經濟收益,形成商業價值。我們所設計的智能移動機器人利用超聲波能夠在路面上順利躲避障礙物,從而在導盲和輔助人類行動方面也有著重要意義。
1.5項目主要研究內容
本設計題目為《基于行為設計的移動機器人設計與實現》是以Arduino單片機為控制核心,主要研究小車的避障功能。利用超聲波傳感器檢測道路上的障礙,然后把數據傳送給單片機,當超聲波檢測到距離小車前方有障礙物時單片機就發出指令讓小車左轉一定角度,然后停止運行繼續探測.如果前方沒有障礙物就直走,否則繼續左轉一定角度。如此通過超聲波不斷的循環檢測周邊環境的情況進行自動避障。該功能的小車能夠實現在無人操作的情況下在比較寬闊平坦的環境中避開障礙物。當機器人在行走過程中遇到前方障礙時,能夠根據有效范圍內的距離作出相應處理,由單片機軟件發出轉彎、直行、后退指令,避免機器與障礙物相撞。
基于行為設計的移動機器人設計與實現
第二章 避障小車機器人的總體設計
2.1設計原理與方法
本設計中直流電機PWM控制系統的主要功能包括實現對直流電機的加速、減速,并且可以調整電機的轉速,能夠很方便的實現電機的智能控制。主體電路:即直流電機PWM 控制模塊。這部分電路主要由AT89S52 單片機的 I/O 端口、定時計數器、外部中斷擴展等控制直流電機的加速、減速以及電機的正轉和反轉,并且可以調整電機的轉速,能夠很方便的實現電機的智能控制。其間是通過 AT89S52 單片機產生脈寬可調的脈沖信號并輸入到L298 驅動芯片來控制直流電機工作的。該直流電機PWM 控制系統由以下電路模塊組成:設計控制部分:主要由AT89S52 單片機的外部中斷擴展電路組成。直流電機PWM控制實現部分主要由一些二極管、電機和L298 直流電機驅動模塊組成。智能小車采用后輪驅動,兩個后輪各用一個電機,前輪是萬象輪,起到支撐和轉向的作用。
2.2硬件設計
本小車的硬件部分分為幾個模塊:超聲波傳感器、Arduino單片機、電源、兩個直流電動機、電機驅動板、車身。電源連接在Arduino單片機上給整個小車供電。小車以Arduino單片機為核心,連接電機驅動板控制兩個直流電動機的運轉,從而實現小車的前進。將超聲波傳感器安置在車身的最前端,用于探測前方是否有障礙物。當超聲波傳感器遇到障礙物,將反饋提供到單片機里從而做出向左旋轉的反應,再次檢測前方是否有障礙物,若有障礙物則繼續旋轉,沒有障礙物則電機驅動器驅動電機前進,從而實現整個小車的避障功能。硬件框架圖如圖2.1。
首都師范大學本科畢業設計論文
圖2.1 硬件設計框架
2.3 軟件設計
2.3.1 Arduino語言
Arduino語言具有如下特點:
1、開放源代碼的電路圖設計,程序開發接口免費下載,也可依需求自己修改。
2、使用低價格的微處理控制器(AVR系列控制器),可以采用USB接口供電,不需外接電源,也可以使用外部9VDC輸入。
3、Arduino支持ISP在線燒,可以將新的“bootloader”固件燒入AVR芯片。有了bootloader之后,可以通過串口或者USB to Rs232線更新固件。
4、可依據官方提供的Eagle格式PCB和SCH電路圖簡化Arduino模組,完成獨立運作的微處理控制;可簡單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超音波,熱敏電阻,光敏電阻,伺服馬達,?等)
5、支持多種互動程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。
6、應用方面,利用Arduino,突破以往只能使用鼠標、鍵盤、CCD等輸入的裝置的互動內容,可以更簡單地達成單人或多人游戲互動。Arduino的功能:
基于行為設計的移動機器人設計與實現
Arduino可以讓我們快速使用與Macromedia Flash, Processing, Max/MSP, Pure Data, SuperCollider等軟件結合,作出互動作品。Arduino可以使用現有的電子元件例如開關或者傳感器或者其他控制器件、LED、步進馬達或其他輸出裝置。Arduino也可以獨立運行,并與軟件進行交互,例如:Macromedia Flash, Processing,Max/MSP, Pure Data,VVVV或其他互動軟件,Arduino的IDE界面基于開放源代碼,可以讓我們免費下載使用,開發出更多令人驚艷的互動作品。
Arduino可使用ICSP線上燒入器,將「bootloader」燒入新的IC晶片;可依據官方電路圖,簡化Arduino模組,完成獨立運作的微處理控制;可簡單地與傳感器,各式各樣的電子元件連接(例如:紅外線,超聲波,熱敏電阻,光敏電阻,伺服馬達等);支援多樣的互動程序例如: Macromedia Flash、Max/Msp、VVVV、PD、C、Processing等;使用低價格的微處理控制器(ATMEGA 8-168);USB接口,不需外接電源。另外有提供9V直流電源輸入;在應用方面,利用Arduino,突破以往只能使用鼠標,鍵盤,CCD等輸入的裝置進行互動內容的設計,可以更簡單地達成單人或多人游戲互動。
2.3.2 Arduino IDE 如圖2.3這是運行界面。Arduino語言是一種類c的語言。在這個界面里有我們編程時最常用的東西。當我們把鼠標放在上面就會在右側出現按鍵的功能。
圖2.3 Arduino IDE運行界面
首都師范大學本科畢業設計論文
圖2.4就是upload上傳功能。最右邊的圖標是我們需要熟知的串口監視器,快捷鍵是:Ctrl+Shift+M。點這個圖標有用的前提是插上了串口設備,當然Arduino插在USB上也可以,因為板上的Atmega16U2就是USB轉串口的功能。
圖2.4 upload
上傳功能
如圖2.5這就是串口監視器的運行畫面相對于網上流傳的眾多串口調試軟件,它的功能可以說較為簡單。右下角是波特率,波特率接收端和發射端要相同,要不然收到的會是亂碼。
圖2.5 串口監視器
如果電腦沒找到串口或者驅動沒裝好,就會有如圖2.6的提示。serial port的意思是串行通訊接口。
圖2.6 Arduino IDE的菜單欄中有很多選項,例如“文件”“編輯”等英文界面。其中Sketch是草圖的意思,在Arduino IDE中,每個Arduino程序都稱為sketch,他是一個
基于行為設計的移動機器人設計與實現
可以上傳進Arduino Board中的程序包,當然經過編譯以后他就不是代碼包了。Tools里面第一項,自動格式,當你把一段從網上下載的源代碼放到sketch里面,會有一些縮進的亂碼,這時,Auto Format就起到了很好的作用。
當我們編寫好程序后,點擊Update,IDE會自動編譯,上傳。如果程序有錯誤,就會有如圖2.7的顯示,標出了行號。修改程序后就可以繼續編譯上傳了。
圖2.7
2.4 實驗前期準備
搭建小車的零件清單如下: 1.減速電機 2個 2.優質輪胎2個 3.電機固定件2個 4.萬向輪1個
5.100*150*2.6MM有機玻璃板 2片 6.L298N電機驅動板1個 7.ARDUINO 328給力板 1個 8.云臺 1個 9.舵機 1個 10.超聲波模塊1個 11.迷你面包板1個 12.6節5號電池盒一個 13.杜邦線 12條 14.1米長USB線1條
15.銅柱 35MM長 3個 12MM 4個
首都師范大學本科畢業設計論文
16.3MM螺絲螺母若干
基于行為設計的移動機器人設計與實現
第三章 硬件模塊
3.1 各模塊的的基本性能
3.1.1 單片機模塊
本設計采用Atmel Atmega328微處理控制器。其性能為:Digital I/O 數字輸入/輸出端共 0~13。Analog I/O 模擬輸入/輸出端共 0~5。支持ISP下載功能。輸入電壓:接上電腦USB時無須外部供電,外部供電7V~12V 直流電壓輸入。輸出電壓:5V 直流電壓輸出和3.3V 直流電壓輸出。
圖3.1 Arduino單片機實物圖
3.1.2 電機、電機驅動模塊
本設計采用由雙極性管組成的H橋電路(L298N)。用單片機控制晶體管使之工作在占空比可調的開關狀態,精確調整電機轉速。這種電路由于工作在管子的飽和截止模式下,則效率非常高;H橋電路保證了可以簡單地實現轉速和方向的控制,電子開關的速度很快,穩定性也很高。而且它有更強的驅動能力。而且L298N有過電流保護
首都師范大學本科畢業設計論文
功能,當出現電機卡死時,可以保護電路和電機。這種調速方式有調速特性優良、調整平滑、調速范圍廣、過載能力大,能承受頻繁的負載沖擊,還可以實現頻繁的無級快速啟動、制動和反轉等優點。因此決定采用使用功率三極管作為功率放大器的輸出控制直流電機。
圖 3.2 L298N引腳圖
圖3.3 L298N電路原理圖
基于行為設計的移動機器人設計與實現
圖3.4 L298N實物圖
3.1.3避障模塊
本設計采用HC-SR04超聲波測距模塊,該原件可提供2CM-400CM的非接觸式距離感測功能,測距精度可達高到3mm;模塊包括超聲波發射器,接收器和控制電路。
基本工作原理:(1)采用IO口TRIG觸發測距,給至少10us的高電平信號;(2)模塊自動發送8個40khz的方波,自動檢測是否有信號返回;(3)有信號返回,通過IO口ECHO輸出一個高電平,高電平持續的時間就是超聲波從發射到返回的時間。測試距離=(高電平時間*聲速(340M/S))/2;
圖3.5避障模塊實物圖
首都師范大學本科畢業設計論文
3.1.4電源模塊
本設計采用的電源為車載電源。為保證電源工作可靠,單片機系統與動力伺服系統的電源采用了大功率、大容量的蓄電池;而傳感器的工作電源則采用了小巧輕便的干電池。
圖3.6 電源模塊實物圖
3.2 小車的基本搭建
舵機,云臺和超聲波的連接步驟如下圖:
1.如圖3.7準備好云臺舵機超聲波安裝所需配件。
圖3.7 2.圖3.8取出舵機配件之一“十字膠體”將十字剪成四邊對等的長度,打磨成寬度一樣。
基于行為設計的移動機器人設計與實現
圖3.8 3.將2*8mm的和1.2*5mm的螺絲安裝到十字的第二個孔,裝到云臺底座上。在云臺底部的螺絲位套上螺母,并用熱熔膠固定如圖3.9。
圖3.9 4.將舵機裝上云臺的兩個邊翼,并用螺絲緊固如圖3.10。
圖3.10 5.將裝好的舵機放進固定好的十字膠體調整好方向后,從舵機組件包里取出2*6mm的螺絲安裝到舵機固定孔中。完成云臺安裝后用扎帶將超聲波模塊固定在云臺前端如圖3.11。
首都師范大學本科畢業設計論文
圖3.11 6.將6mm銅柱裝在云臺底座安裝孔并將裝好的云臺組件直接安裝到小車底盤上,小車搭建成品如圖3.12。
圖3.12 小車搭建成品
3.3連線
3.3.1電機的連線
L298N的供電處理:
用6節5號電池盒取一路電源給L298N電機驅動模塊供電,另一路給ARDUINO主板供電給L298N電機驅動模塊供電的電源+極接L298N的VMS接口,電源的-接L298N的GND接口,L298N板上的+5V接口放空不接。電機一接L298N的MOTOA,電機二接L298N的MOTOB。
基于行為設計的移動機器人設計與實現
圖3.13 電機的連線
3.3.2舵機的連線
首先設置函數:myservo.attach(5);// 定義伺服馬達輸出第5腳位。
舵機需要連接的有三條線,分別是+,-,信號。三條線均直接連接到Arduino板上。
接線方法:將+5V接到J5位,-位接到J6位,信號位接到J4位PWM口的第五腳。
連線方式如圖3.14所示:
圖3.14舵機的連線
首都師范大學本科畢業設計論文
3.3.3超聲波的連線
超聲波傳感器有四個腳,如圖3.15所示: 四個引腳的功能分別是: 1:VCC 接+5V。2:TRIQ 信號輸入。3:ECHO信號輸出。4:GND 接地。
圖3.15超聲波的引腳示意圖
超聲波模塊四個引腳直接與Arduino單片機連接,接線方法如圖3.16所示:
圖3.16超聲波與Arduino單片機接線
基于行為設計的移動機器人設計與實現
3.3.4 Arduino超聲波小車總體連線圖:
電機A和電機B將正負兩端接在L298N電機驅動板上,若正負兩級接反則車輪反轉。電機驅動板、舵機、超聲波模塊直接與Arduino核心控制板相連,電源模塊分別給電機驅動板和Arduino板供電。
圖3.17 Arduino超聲波小車總體連線圖
首都師范大學本科畢業設計論文
第四章 軟件模塊
4.1 軟件設計思路
在軟件設計方面,采用Arduino語言編程,編寫程序流程圖4.1
圖4.1 軟件編譯流程圖
基于行為設計的移動機器人設計與實現
4.2 電機前進模塊
在定義好各個引腳之后,進入主程序的編寫部分。我在程序控制模塊里主要編寫的是電機的控制函數。本程序中提及的digitalWrite函數的作用是設置引腳的輸出的電壓為高電平或低電平。該函數也是一個無返回值的函數,函數有兩個參數pin和value,pin參數表示所要設置的引腳,value參數表示輸出的電壓HIGH(高電平)或LOW(低電平)。
首先定義為advance前進函數: void advance(int a){ 編寫模擬信號,定義馬達右后動作為低電平,即不給電: digitalWrite(pinRB,LOW);編寫模擬信號,定義馬達右前動作為高電平: digitalWrite(pinRF,HIGH);編寫模擬信號,定義馬達左后動作為低電平: digitalWrite(pinLB,LOW);編寫模擬信號,定義馬達左前動作為高電平: digitalWrite(pinLF,HIGH);定義延時,即將前進動作保持一段時間,直到開始執行下一程序。delay(a * 100);延時 } 4.2 電機后退模塊
將函數定義為back后退函數 void back(int g)//后退 { 編寫模擬信號,定義馬達右后動作為高電平: digitalWrite(pinRB,HIGH);編寫模擬信號,定義馬達右前動作為低電平: digitalWrite(pinRF,LOW);
首都師范大學本科畢業設計論文
編寫模擬信號,定義馬達左后動作為高電平: digitalWrite(pinLB,HIGH);編寫模擬信號,定義馬達左前動作為低電平: digitalWrite(pinLF,LOW);定義延時,即將電機的后退動作保持一段時間,直到開始執行下一程序。delay(g * 100);} 4.3 電機停止工作模塊
將函數定義為stopp停止函數 void stopp(int f){ 編寫模擬信號,定義馬達右后動作為高電平: digitalWrite(pinRB,HIGH);編寫模擬信號,定義馬達右前動作為高電平digitalWrite(pinRF,HIGH);編寫模擬信號,定義馬達左后動作為高電平digitalWrite(pinLB,HIGH);編寫模擬信號,定義馬達左前動作為高電平digitalWrite(pinLF,HIGH);定義延時,即將電機的停止動作保持一段時間,直到開始執行下一程序。delay(f * 100);}
4.4 電機左轉模塊
將函數定義為left左轉函數 void left(int c){
基于行為設計的移動機器人設計與實現
編寫模擬信號,定義馬達右后動作為高電平 digitalWrite(pinRB,HIGH);編寫模擬信號,定義馬達右前動作為高電平 digitalWrite(pinRF,HIGH);編寫模擬信號,定義馬達左后動作為低電平 digitalWrite(pinLB,LOW);編寫模擬信號,定義馬達左前動作為高電平 digitalWrite(pinLF,HIGH);定義延時,即將電機的左轉動作保持一段時間,直到開始執行下一程序。delay(c * 100);}
4.5 電機右轉模塊
將函數定義為right右轉函數 void right(int b){ 編寫模擬信號,定義馬達右后動作為低電平 digitalWrite(pinRB,LOW);編寫模擬信號,定義馬達右前動作為高電平 digitalWrite(pinRF,HIGH);編寫模擬信號,定義馬達左后動作為高電平 digitalWrite(pinLB,HIGH);編寫模擬信號,定義馬達左前動作為高電平 digitalWrite(pinLF,HIGH);定義延時,即將電機的右轉動作保持一段時間,直到開始執行下一程序。delay(b * 100);}
首都師范大學本科畢業設計論文
4.6 防卡死模塊
該模塊為防止避障小車卡死的編譯,即當小車發生與障礙物距離過近的情況而無法轉彎時,該程序會指引小車向后倒退,倒退一定距離后左轉前進,若仍有障礙物則繼續倒退,若無障礙物則左轉后直行。即可防止車在行進途中卡在死巷里。
if(directionn == 2)//假如directionn(方向)= 2(倒車){ back(8);// 倒退(車)turnL(2);//些微向左方移動(防止卡在死巷里)Serial.print(“ Reverse ”);//顯示方向(倒退)}
基于行為設計的移動機器人設計與實現
第五章 實驗及結果分析
5.1預期目標
總體來說本次試驗達到預期目標。
(1)在車前方沒有障礙物時,小車沿直線向前走。
(2)在車前方有障礙物時,小車能避開障礙物,避障方法如下:超聲波檢測到障礙物后,先向左邊旋轉,檢測。如果旋轉后前面沒有檢測障礙物,則沿直線向前走;如果旋轉后檢測到前方仍有障礙物,則繼續旋轉,如果前面沒有障礙物,則沿直線向前行走;
但是該超聲波避障小車還存在著許多的不足,比如說只能對正前方一定角度內進行探測,使用的是一路超聲波而不是多路超聲波探測,并且為了簡化,默認的只是向同一個方向轉彎等,這些都是有待進一步發展和提高的。
5.2遇到的問題和解決方法
在此之前我們并沒有制作過任何智能的機器人。初定避障小車這個題目時,最初我們采用樂高機器人搭建了一個循跡避障的機器人,由于操作較為簡單,后來我們決定嘗試采用Arduino芯片,利用超聲波傳感器搭建出一臺智能的避障小車。最初我們對硬件的原理不夠明白,不知道采用哪些原件,課程設計指導書上介紹的也并不詳細,因此我們利用大量時間去圖書館查閱了許多資料,對其電機驅動、Arduino控制板以及超聲波傳感器的引腳、電路設計等各方面都做了近一步的了解之后才開始進行小車的搭建。
在選擇硬件設施上,我們也花了很大功夫。在最初我們設計了兩個驅動方案的選擇。一個是采用ULN2003驅動,它是由7組達林頓晶體管陣列和相應的電阻網絡以及鉗位二極管網絡構成,具有同時驅動7組負載的能力,一般用于高速大功率驅動電路。另個一就是采用由雙極性管組成的H橋電路(L298N)。用單片機控制晶體管使之工作在占空比可調的開關狀態,精確調整電機轉速。這種電路由于工作在管子的飽和截止模式下,則效率非常高;H橋電路保證了可以簡單地實現轉速和方向的控制,電子開關的速度很快,穩定性也很高。而且它有更強的驅動能力。此驅動板體積小,重量輕,而且它有一個外加的續流二極管,可以防止電機線圈在斷電時的方向電勢損壞芯片,同時也也安裝有散熱
首都師范大學本科畢業設計論文
片能使芯片溫度降低,盡量防止他自動斷電,讓驅動性能更加穩定。板子設有兩個電流反饋檢測接口、內邏輯取電選擇端、4個上拉電阻選擇端、2路直流電機接口、控制電機方向指向燈等等。這個板子不僅適用于智能程控小車、輪式機器人等,還可以配合各種控制器使用。因此經過一番對比和考慮,最終我們選擇了L298N電機驅動板。在超聲波的選擇上我們也出現了分期,本設計最終采用的是HC-SR04超聲波測距模塊。而最初我們選擇的事紅外傳感裝置。之所以最終沒有選擇紅外線傳感,是因為紅外線對使用環境有較高的要求,當遇上淺色或是深色的家居物品它無法反射回來,會造成機器人無法正常避障。而這款HC-SR04則采用仿生超聲波技術,類似鯨魚,蝙蝠采用聲波來偵測判斷障礙物以及及空間方位,該超聲波避障模塊包括超聲波發射器,接收器和控制電路,靈敏度較高,但技術成本也較高。
在搭建方面,我們完成程序的編譯通電之后,小車發生了原地旋轉的現象,經過觀察,我們發現小車在感應障礙物方面并沒有問題。問題出現在左側輪前轉,而右側輪后轉。所以我們將控制右側車輪的電機的接線進行改接,這個問題便得以解決。
在軟硬件調試方面,我們也遇到了一些問題。首先是避障小車的旋轉角度不夠,也許是因為地面摩擦力的關系,小車的旋轉角度并達不到我們所設定的左轉九十度。后來我們又將程序進行改進,設置的旋轉角度比九十度多一些,小車就可正常避障了。還有一個問題就是小車在遇到障礙物之后的反應速度并不是很快,需要障礙物在前面平行持續1,2秒才可以做出轉向的判斷,這個延遲反應也經常造成小車和障礙物發生碰撞,這也是我們遇到的最大問題,在這個問題上我們做了很多程序上的調試,但終究達不到很理想的效果,在后續的試驗中,我們準備嘗試換一個感測避障模塊進行嘗試改進。
5.3 硬件的調試與整合
5.3.1調試思路
本設計的智能避障小車,難點重點有兩大模塊。分別是:L298驅動模塊和超聲波測距模塊。我們在調試的時候我們把兩大模塊分別調試,最后再把所有模塊和硬件組合起來再進行最后的整機調試這樣一個調試的思路。
5.3.2調試超聲波模塊
超聲波模塊一共有四個腳,一個是VCC,一個是GND,還有兩個分別是超聲波的發射和接收引腳。連接電路時候只需引出四根插線,分別連接到89S52的對應引腳,燒制好
基于行為設計的移動機器人設計與實現
測試程序,測試結果圖如5.2.2。本設計四根插線分別連接到VCC,GND,還有發射和接收引腳分別為:P3.0和P3.2。
5.3.3電機調試
在電機驅動板上。有EA,I1,I2,EB,I3,I4六個端子用于控制電機。EA,EB為兩路電機的控制使能,通過PWM可以控制電機轉速,高電平有效。我們完成程序的編譯通電之后,小車發生了不停地旋轉的現象,我們觀察到小車在感應障礙物方面并沒有問題。問題出現在左側輪前轉,而右側輪后轉。所以我們將控制右側車輪的電機的接線進行修改,這個問題便得以解決。
圖5.1電機驅動板的引腳及其功能
5.4 心得體會
通過這次的項目實訓,我學習到了很多的電子知識,提高了我對于陌生硬件的學習能力。超聲波傳感器在此之前我沒有接觸過,對我來說非常的陌生,從一無所知慢慢查資料到能夠熟練應用,讓我知道了面對新的硬件應該怎么學習,在以后的工作學習中,我一定會遇到非常多的不熟悉的硬件,我相信,通過不斷地鍛煉積累,學習能力會進一步提高。這次實訓同時還加強了我實踐動手能力,特別培養了出現問題、分析問題、解決問題的能力,我相信這些能力的提高對我以后在從事任何工作都將會有極大的幫助。
這次的項目實訓讓我感觸最深的是:作為電子愛好者,電子制作中不管遇到什么問題和困境都要有一顆平靜的心和堅持不懈的精神,一顆浮躁的心是不會到達成功的彼岸。這次課程設計,給我更多的是一種模塊化的思想,將系統按我們所需的功能和系統所能提供的功能進行模塊化的分類,將會使我們的工作變得一目了然,非常清晰。比如說這次我選的避障小車,可以分成超聲波測速模塊,電機驅動模塊,單片機核心模塊三個,首都師范大學本科畢業設計論文
三個部分各司其職,無論從硬件上還是軟件上,都能夠比較清晰地將他們的功能區分開,從而有利于硬件的連接和程序的編寫。
從以后工作來看,這種模塊化處理問題的方式將會更加的有用,在公司和以后得科研項目中,系統一定是越來越復雜,不可能一個人完成所有的任務,一定是一個團隊來做這些系統的設計,所以模塊化之后,能夠將任務分配給每個人,最后大家還能夠很好的綜合到一起,大大的縮短了開發周期。這次的畢設實踐學習讓我受益匪淺。
基于行為設計的移動機器人設計與實現
第六章 設想與展望
隨著科技的迅猛發展,智能已經成為了現在的高科技的熱詞,智能機器人可以解決無數人類無法或者是很難解決的難題。本智能小車系統最誘人的前景就是可用于未來的智能汽車上了,當駕駛員因疏忽或打瞌睡時這樣的智能汽車的設計就能體現出它的作用。如果汽車偏離車道或距障礙物小于安全距離時,汽車就會發出警報,提醒駕駛員注意,如果駕駛員沒有及時作出反應,汽車就會自動減速或停靠于路邊,這樣就大大增大了駕車的安全系數,想的再長遠一點,這個避障功能可以作為無人駕駛機動的一個基本功能。無人駕駛的機動車行駛在路上,擁有定位和導航的功能后就可以將人或物品送到我們所需要送到的位置。這樣智能機器人的應用,就大大的減少了人力和物力,并且方便了更多不會駕駛機動車的市民。
這樣的避障小車還可以用于月球探測等的無人探月車,幫助我們傳達月球上更多的信息,讓我們更加的了解月球,為將來登月做好充分準備。這樣的小車在科學考察探測車上也有廣闊的應用前景,在科學考察中,有很多危險且人們無法涉足的地方,這時,智能科學考察車就能夠派上用場,在它上面裝上攝像機,代替人們進行許多無法進行的工作。智能車的應用減少了人們的工作危險系數,解決了惡劣環境下勘探的需求,實現了即是沒有人操作應用機器也能很好的完成工作,這項研發可謂是一舉多得。
在未來的社會中智能也是大勢所趨,而智能車作為智能機器人中一類必不可少的組成部分。最近幾年發展更是迅速,各個國家更是投入大量資金。它廣泛涉及人工智能、計算機視覺、自動控制、精密儀器、傳感和信息等一系列學科的創新研究,其研究成果可廣泛應用于工業、農業、醫藥、軍事、航空、信息技術等實際領域,智能機器人的發展水平可反映出一個國家的高科技水平和綜合國力,是國家綜合國力強大的標志,也是人類文明進步的標志。在我們未來的工作與生活中,會越來越多的需要機器人代替人力來工作和完成一些難度較大或較為費力的任務,對這些實用的機器人的需求也會越來越大。因此,機器人研發的前景是不可估量的。
首都師范大學本科畢業設計論文
參考文獻
[1] 袁新娜,與紅英編著.超聲波傳感器在智能小車避障系統中的應用.[A]中北大學(2009)08-0085-04 [2] 邵貝貝.單片機嵌入式應用的在線開發方法[M].北京.清華大學出社.2004 [3] 王曉明.電動機的單片機控制[M].北京.北京航空航天大學出版社.2002 [4] 臧杰,閻巖.汽車構造[M].北京.機械工業出版社.2005 哈爾濱工業大學課程設計說明書
[5] 安鵬,馬偉.S12單片機模塊應用及程序調試[J].電子產品世界.2006.第211期. 162-163 [6] 童詩白,華成英.模擬電子技術基礎[M].北京.高等教育出版社.2000 [7] 沈長生.常用電子元器件使用一讀通[M].北京.人民郵電出版社.2004 [8] 宗光華.機器人的創意設計與實踐[M].北京.北京航空航天大學出社.2004 [9] 張偉等.Protel DXP高級應用[M].北京.人民郵電出版社.2002 [10] 張文春.汽車理論[M].北京.機械工業出版社.2005 [11] 江海波,王卓然,耿德根編著.深入淺出AVR單片機.中國電力出版社,2008.31
基于行為設計的移動機器人設計與實現
致謝
歷時三個月的畢業設計已經告一段落。在我和我組成員張碩的共同努力下,本避障小車的任務已經基本完成。在這段時間里,非常感謝在遇到困難時我的同學們所給予的支持和鼓勵,給我提供專業的意見和建議。還有和我同組的同學張碩,我們共同查閱資料,克服許多在選擇小車部件、小車搭建和編程上的種種困難。也正是這次畢業設計使我深刻地認識到學好專業知識的重要性,也理解了理論聯系實際的含義,并且檢驗了大學四年的學習成果。我更明白了團隊合作的重要性。兩個人不僅有兩個大腦和更多的主意和知識,最重要的事能夠在遇到困難時可以相互鼓勵學習,互相分擔。也正是這種團結合作的精神促使了我們這次畢設任務的圓滿成功。
這三個月的設計是對過去所學知識的系統提高和擴充的過程,為今后的發展打下了良好的基礎。也非常感謝指導老師徐老師的支持和指導,每次我給徐老師發郵件她都會認真的給我批改,指出我的不足。也正是因為在老師的指導下我的論文進行不斷的改正,才有機會變得越來越好。
由于自身水平有限,設計中一定存在很多不足之處。雖然這次的畢業設計對于知識的運用和銜接還不夠熟練,但是我將在以后的工作和學習中繼續努力、不斷完善。敬請各位老師批評指正。
首都師范大學本科畢業設計論文
附錄
超聲波智能避障車程序(ARDUINO)
L = 左 R = 右 F = 前 B = 后 */ #include
int pinRB=10;// 定義10腳位右后 int pinRF=11;// 定義11腳位右前
int inputPin = A0;// 定義超音波信號接收腳位 int outputPin =A1;// 定義超音波信號發射腳位
int Fspeedd = 0;// 前速 int Rspeedd = 0;// 右速 int Lspeedd = 0;// 左速
int directionn = 0;// 前=8 后=2 左=4 右=6 Servo myservo;// 設 myservo int delay_time = 250;// 伺服馬達轉向后的穩定時間
int Fgo = 8;// 前進 int Rgo = 6;// 右轉 int Lgo = 4;// 左轉 int Bgo = 2;// 倒車
基于行為設計的移動機器人設計與實現
void setup(){ Serial.begin(9600);// 定義馬達輸出腳位 pinMode(pinLB,OUTPUT);// 腳位 8(PWM)pinMode(pinLF,OUTPUT);// 腳位 9(PWM)pinMode(pinRB,OUTPUT);// 腳位 10(PWM)pinMode(pinRF,OUTPUT);// 腳位 11(PWM)
pinMode(inputPin, INPUT);// 定義超音波輸入腳位 pinMode(outputPin, OUTPUT);// 定義超音波輸出腳位
myservo.attach(5);// 定義伺服馬達輸出第5腳位(PWM)} void advance(int a)// 前進 { digitalWrite(pinRB,LOW);// 使馬達(右后)動作 digitalWrite(pinRF,HIGH);digitalWrite(pinLB,LOW);// 使馬達(左后)動作 digitalWrite(pinLF,HIGH);delay(a * 100);}(電機前進函數)
void right(int b)//右轉(單輪){ digitalWrite(pinRB,LOW);//使馬達(右后)動作右后方的引腳的低電頻 digitalWrite(pinRF,HIGH);右前引腳高電頻 digitalWrite(pinLB,HIGH);digitalWrite(pinLF,HIGH);delay(b * 100);}
首都師范大學本科畢業設計論文
void left(int c)//左轉(單輪){ digitalWrite(pinRB,HIGH);digitalWrite(pinRF,HIGH);digitalWrite(pinLB,LOW);//使馬達(左后)動作 digitalWrite(pinLF,HIGH);delay(c * 100);}(high高頻是向前 low低頻向后)void turnR(int d)//右轉(雙輪){ digitalWrite(pinRB,LOW);//使馬達(右后)動作 digitalWrite(pinRF,HIGH);digitalWrite(pinLB,HIGH);digitalWrite(pinLF,LOW);//使馬達(左前)動作 delay(d * 100);} void turnL(int e)//左轉(雙輪){ digitalWrite(pinRB,HIGH);digitalWrite(pinRF,LOW);//使馬達(右前)動作 digitalWrite(pinLB,LOW);//使馬達(左后)動作 digitalWrite(pinLF,HIGH);delay(e * 100);} void stopp(int f)//停止 { digitalWrite(pinRB,HIGH);digitalWrite(pinRF,HIGH);digitalWrite(pinLB,HIGH);digitalWrite(pinLF,HIGH);
基于行為設計的移動機器人設計與實現
delay(f * 100);} void back(int g)//后退 {
digitalWrite(pinRB,HIGH);//使馬達(右后)動作 digitalWrite(pinRF,LOW);digitalWrite(pinLB,HIGH);//使馬達(左后)動作 digitalWrite(pinLF,LOW);delay(g * 100);}
void detection()//測量3個角度(0.90.179){ intdelay_time = 250;// 伺服馬達轉向后的穩定時間 ask_pin_F();// 讀取前方距離
if(Fspeedd< 10)// 假如前方距離小于10公分 { stopp(1);// 清除輸出資料 back(2);// 后退 0.2秒 }
if(Fspeedd< 25)// 假如前方距離小于25公分 { stopp(1);// 清除輸出資料 ask_pin_L();// 讀取左方距離
delay(delay_time);// 等待伺服馬達穩定 ask_pin_R();// 讀取右方距離
delay(delay_time);// 等待伺服馬達穩定
首都師范大學本科畢業設計論文
if(Lspeedd>Rspeedd)//假如左邊距離大于右邊距離 { directionn = Rgo;//向右走 }
if(Lspeedd<= Rspeedd)//假如左邊距離小于或等于右邊距離 { directionn = Lgo;//向左走 }
if(Lspeedd< 10 &&Rspeedd< 10)//假如左邊距離和右邊距離皆小于10公分 { directionn = Bgo;//向后走 } } else //加如前方不小于(大于)25公分 { directionn = Fgo;//向前走 } } void ask_pin_F()// 量出前方距離 { myservo.write(90);digitalWrite(outputPin, LOW);// 讓超聲波發射低電壓2μs delayMicroseconds(2);digitalWrite(outputPin, HIGH);// 讓超聲波發射高電壓10μs,這里至少是10μs delayMicroseconds(10);digitalWrite(outputPin, LOW);// 維持超聲波發射低電壓
基于行為設計的移動機器人設計與實現
float Fdistance = pulseIn(inputPin, HIGH);// 讀差相差時間
Fdistance= Fdistance/5.8/10;// 將時間轉為距離距離(單位:公分)Serial.print(“F distance:”);//輸出距離(單位:公分)Serial.println(Fdistance);//顯示距離
Fspeedd = Fdistance;// 將距離讀入Fspeedd(前速)} void ask_pin_L()// 量出左邊距離 { myservo.write(5);delay(delay_time);digitalWrite(outputPin, LOW);// 讓超聲波發射低電壓2μs delayMicroseconds(2);digitalWrite(outputPin, HIGH);// 讓超聲波發射高電壓10μs,這里至少是10μs delayMicroseconds(10);digitalWrite(outputPin, LOW);// 維持超聲波發射低電壓 float Ldistance = pulseIn(inputPin, HIGH);// 讀差相差時間
Ldistance= Ldistance/5.8/10;// 將時間轉為距離距離(單位:公分)Serial.print(“L distance:”);//輸出距離(單位:公分)Serial.println(Ldistance);//顯示距離
Lspeedd = Ldistance;// 將距離讀入Lspeedd(左速)} void ask_pin_R()// 量出右邊距離 { myservo.write(177);delay(delay_time);digitalWrite(outputPin, LOW);// 讓超聲波發射低電壓2μs delayMicroseconds(2);digitalWrite(outputPin, HIGH);// 讓超聲波發射高電壓10μs,這里至少是10μs delayMicroseconds(10);digitalWrite(outputPin, LOW);// 維持超聲波發射低電壓
首都師范大學本科畢業設計論文
float Rdistance = pulseIn(inputPin, HIGH);// 讀差相差時間
Rdistance= Rdistance/5.8/10;// 將時間轉為距離距離(單位:公分)Serial.print(“R distance:”);//輸出距離(單位:公分)Serial.println(Rdistance);//顯示距離
Rspeedd = Rdistance;// 將距離讀入Rspeedd(右速)}
void loop(){ myservo.write(90);//讓伺服馬達回歸預備位置準備下一次的測量 detection();//測量角度并且判斷要往哪一方向移動
if(、n == 2)//假如directionn(方向)= 2(倒車){ back(8);// 倒退(車)turnL(2);//些微向左方移動(防止卡在死巷里)Serial.print(“ Reverse ”);//顯示方向(倒退)} if(directionn == 6)//假如directionn(方向)= 6(右轉){ back(1);turnR(6);// 右轉
Serial.print(“ Right ”);//顯示方向(左轉)} if(directionn == 4)//假如directionn(方向)= 4(左轉){ back(1);turnL(6);// 左轉
Serial.print(“ Left ”);//顯示方向(右轉)}
基于行為設計的移動機器人設計與實現
if(directionn == 8)//假如directionn(方向)= 8(前進){ advance(1);// 正常前進 Serial.print(“ Advance ”);//顯示方向(前進)Serial.print(“ ”);}
首都師范大學本科畢業設計論文
第二篇:自動避障小車技術報告2
自動避障小車
技術報告
學
校:樂山師范學院成員:鄭素仙
朱平
吳志 指導老師:張九華
前言
設計背景:在科學探索和緊急搶險中經常會遇到對與一些危險或人類不能直接到達的地域的探測,這些就需要用機器人來完成。而在機器人在復雜地形中行進時自動避障是一項必不可少也是最基本的功能。因此,自動避障系統的研發就應運而生。
我們的自動避障小車就是基于這一系統開發而成的。隨著科技的發展,對于未知空間和人類所不能直接到達的地域的探索逐步成為熱門,這就使機器人的自動避障有了重大的意義。我們的自動避障小車就是自動避障機器人中的一類。自動避障小車可以作為地域探索機器人和緊急搶險機器人的運動系統,讓機器人在行進中自動避過障礙物。
目錄
一、設計目標:.........................................................4
二、方案設計:.........................................................4
2.1直流調速系統.................................................4 2.2檢測系統.....................................................5 三 硬件設計.............................................................6 3.1、SPCE061A單片機最小系統.....................................6
3.1.1.SPCE061A時鐘電路...........................................................................................8
3.1.2.PLL鎖相環...........................................................................................................9 3.1.3.看門狗Watchdog..................................................................................................9 3.1.4.低電壓復位(LVR).........................................................................................10 3.1.5.I/O端口..............................................................................................................10 3.1.6.時基與定時器.....................................................................................................11 3.1.7.SPCE061A的定時器/計數器............................................................................11 3.1.8.ADC、DAC........................................................................................................12 3.2、超聲波傳感器..............................................12 四 軟件設計...........................................................16 4.1軟件設計各模塊..............................................16 4.2速度控制....................................................17 4.3障礙物檢測..................................................17 4.4看門狗......................................................17 4.5基頻中斷....................................................18 4.6程序設計流程圖..............................................19 五:測試數據、測試結果分析及結論.......................................19 程序附錄...............................................................21 1.主程序:....................................................21 2.中斷程序....................................................24
3、測距程序....................................................28
一、設計目標:
1.小車從無障礙地區啟動前進,感應前進路線上的障礙物后,能自動避開障礙物。
2.根據障礙物的位置選擇下一步行進方向,選擇左拐還是右拐,若障礙物在左邊則自動右拐,若障礙物在右邊則左拐,若障礙物在正前方可任意選擇左拐或者是右拐,以達到避開障礙物的目的。
3.通過利用單片機內時鐘源的控制設定左拐和右拐的時間,從而能持續前進。
4.為達到速度的可控性,需設置兩個獨立按鍵對小車進行控速。
二、方案設計:
根據設計要求,確定如下方案:在現有玩具電動車的基礎上,加裝超聲波傳感器,實現對電動車的運行狀況的實時測量,并將測量數據傳送至單片機進行處理,然后由單片機根據所檢測的各種數據實現對電動車的智能控制。
這種方案能實現對電動車的運動狀態進行實時控制,控制靈活、可靠,精度高,可滿足對系統的各項要求。
2.1直流調速系統
采用脈寬調速系統
脈寬調速系統的主電路采用脈寬調制式變換器,簡稱PWM變換器。
脈寬調速也可通過單片機控制繼電器的閉合來實現,但是驅動能力有限。為順利實現電動小汽車的前行與倒車,本設計采用了可逆PWM變換器。可逆PWM變換器主電路的結構式有H型、T型等類型。我們在設計中采用了常用的雙極式H型變換器,它是由4個三極電力晶體管和4個續流二極管組成的橋式電路。如附錄一:
2.2檢測系統
檢測系統主要實現紅外傳感器,超聲波傳感,光電傳感器對車的運行進行實時測量,即利用這種傳感器對電動車的避障、位置、行車狀態進行測量。行車開始、結束及超聲波檢測:
在車的開始和結束階段,都是用紅外式的光電傳感器,當按下此光電開頭,小車就開始行駛,在完成任務后,再按下此開關,小車就停止前進。在前進的過程中不斷的發送超聲波,并對接到的進行處理計算。如果處理得到的結果是發現前面的障礙時,再行進一次距離的處理,當距離小是40CM時,讓小車倒退一段時間,再進行避障處理,如果距離大于40CM,就直接進避障處理。
三 硬件設計
3.1、SPCE061A單片機最小系統
我們用的是凌陽的SPCE061A單片機最小系統其概述如下: SPCE061A 是繼μ’nSP?系列產品SPCE500A等之后凌陽科技推出的又一款16位結構的微控制器。與SPCE500A不同的是,在存儲器資源方面考慮到用戶的較少資源的需求以及便于程序調試等功能,SPCE061A里只內嵌32K字的閃存(FLASH)。較高的處理速度使μ’nSP?能夠非常容易地、快速地處理復雜的數字信號。因此,與SPCE500A相比,以μ’nSP?為核心的SPCE061A微控制器是適用于數字語音識別應用領域產品的一種最經濟的選擇。
性能
16位μ’nSP?微處理器;
工作電壓(CPU)VDD為2.4~3.6V(I/O)VDDH為2.4~5.5V ;
CPU時鐘:0.32MHz~49.152MHz ;
內置2K字SRAM;
內置32K FLASH;
可編程音頻處理;
晶體振蕩器;
系統處于備用狀態下(時鐘處于停止狀態),耗電僅為2μA@3.6V;
2個16位可編程定時器/計數器(可自動預置初始計數值);
2個10位DAC(數-模轉換)輸出通道;
32位通用可編程輸入/輸出端口;
14個中斷源可來自定時器A / B,時基,2個外部時鐘源輸入,鍵喚醒;
具備觸鍵喚醒的功能;
使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數據;
鎖相環PLL振蕩器提供系統時鐘信號;
32768Hz實時時鐘;
7通道10位電壓模-數轉換器(ADC)和單通道聲音模-數轉換器;
聲音模-數轉換器輸入通道內置麥克風放大器和自動增益控制(AGC)功能;
具備串行設備接口;
具有低電壓復位(LVR)功能和低電壓監測(LVD)功能;
內置在線仿真電路ICE(In-Circuit Emulator)接口;
具有保密能力;
具有WatchDog功能;
16位μ’nSP?微處理器硬件結構圖
ICE_ENICE_SCKICE_SDA16位微控制器u'nSPFLASH雙16位定時器/計數器時基中斷控制+ICERAMVCPXI/RXO鎖相環振蕩器CPU時鐘實時時鐘7通道10位ADC單通道ADC+AGCMIC_IN低電壓監測/低電壓復位Watchdog串行異步通訊接口IOB7(RXD)IOB10(TXD)雙通道10位DAC串行輸入輸出接口IOB0(SCK)IOB1(SDA)AUD1AUD232管腳通用輸入輸出端口IOA150 3.1.1.SPCE061A時鐘電路
SPCE061A時鐘電路采用晶體振蕩器。下圖為SPCE061A時鐘電路的接線圖。外接晶振采用32768Hz。
3.1.2.PLL鎖相環
PLL電路的作用是將系統提供的實時時鐘的基頻(32768Hz)進行倍頻,輸出系統時鐘Fosc
32768Hz晶振鎖相環(PLL)系統時鐘發生器頻率:20.48M,24.576M,32.768M,40.96M,49.152Mb7b6b5Fosc(默認值24.576MHz)系統時鐘選頻P_SystemClock單元的第7,6,5位
3.1.3.看門狗Watchdog SPCE061A的清狗周期為0.75S;清看門狗操作寄存器:P_Watchdog_Clear(0x7012H)清狗操作:在每個0.75S的清狗周期里P_Watchdog_Clear寫入0x0001。
3.1.4.低電壓復位(LVR)
通過某種方式,使單片機內存各寄存器的值變為初始的操作稱為復位。SPCE061A的復位方式為低電壓復位。
3.1.5.I/O端口 OA口:
IOA0~IOA6:7路普通AD輸入端口,IOA0~IOA7:觸鍵喚醒功能
IOB口:
外部中斷輸入,串行接口、PWM輸出等復用端口
3.1.6.時基與定時器
時基信號可提供常用的、現成的頻率信號,完成部分定時器的功能
時間基準信號部分時基選頻時基中斷32768Hz RTCPLL倍頻定時器/計數器Fosc時鐘源 3.1.7.SPCE061A的定時器/計數器
遞增計數方式,自動重載定時器/計數器初始值,輸出4位可調脈寬比PWM信號,溢出頻率/2的方波輸出,多種時鐘源 11
輸入。
3.1.8.ADC、DAC SPCE061A的特色是其強大靈活的語音功能;而單片機對語音處理的支持,除了其處理能力外,還有片內集成的ADC、DAC;特別是集成有AGC電路的MIC通道。ADC轉換過程:
啟動自動方式 RDY=0SAR = 10 0000 0000BDAC0輸出Vdac0與Vin逐次比較比較結束,RDY=1結果存入結果寄存器等待讀取結果寄存器
3.2、超聲波傳感器
1.基本特性與參數指標
超聲波傳感器諧振頻率:40KHz; 模組傳感器工作電壓:4.5V~9V 模組接口電壓:4.5V~5.5V 2.主要功能
三種測距模式選擇跳線J1(短距、中距、可調距):
短距:20cm~100cm左右(根據被測物表面材料決定),精度1cm;
中距:70cm~400cm左右(根據被測物表面材料決定); 可調:范圍由可調節參數確定,當調節在合適的值時,最遠測距700cm左右; 3.結構示意圖
一般應用時,只需要用兩條10PIN排線把J5與SPCE061A的IOB口低八位連接,J4與IOB口高八位連接,同時設置好J1、J2跳線就完成硬件的連接了。不同測距模式的選擇只需改變測距模式跳線J1的連接方法即可。模組工作的性能與被測物表面材料有很大關系,如毛料、布料對超聲波的反射率很小,會嚴重影響測量結果 實物圖: 13
J1為選擇工作模式,J2選擇電源接口 4.電路原理圖介紹:
超聲波諧振頻率調理電路
由單片機產生40KHz的方波,并通過模組接口(J4)送到模組的CD4049,而后面的CD4049則對40KHz頻率信號進行調理,以使超聲波傳感器產生諧振。
超聲波回波接收處理電路
超聲波接收處理部分電路前級采用NE5532構成10000倍放大器,對接收信號進行放大;后級采用LM311比較器對接收信號進行調整,比較電壓為LM311的3管腳的輸入,可由J1跳線選擇不同的比較電壓以選擇不同的測距模式。
測距程序流程圖
超聲波測距的功能函數流程圖如圖。用戶只需進行六次測距操作,這六次的測量結果需要經過處理后才可得到最終的測距返回值,然后將返回值化成距離。
四
軟件設計
4.1軟件設計各模塊
void RunTime2Hz(void);設置2HZ基頻中斷向量函數。
void OffTime2Hz(void);清2HZ基頻中斷向量函數。void Clear_WatchDog(void);清看門狗函數
unsigned int SP_GetCh(void);取鍵值函數 void delay2s(int timer)可調的延遲函數
4.2速度控制
速度控制用TIMERA的PWM輸出控制,當它前進時設PWM為12/16,當它轉彎時設為8/16。其代碼為:*P_TimerA_Ctrl=0x0333;*P_TimerA_Data=0xff9f;
4.3障礙物檢測
用TIMERB的TONT輸出給超聲波提供出射頻率,并給它延遲一段時間,發射完時,清TIMERB,讓它工作在計時方式,當計到10000時!沒有收到回波,則說明前在無障礙。如果有收到回波則說明有障礙。
4.4看門狗
看門狗只要一定時間給其喂狗,就可以保證程序不會跑飛,跑飛就會自動復位。其代碼就只有一句: *P_Watchdog_Clear = 0x0001;
4.5基頻中斷
采用2HZ的基頻中斷,實現實時控制;一次中斷,中斷時間為0。5S,其代碼如下:
[P_INT_Ctrl] = r1;
INT IRQ;
//開中斷
4.6程序設計流程圖
五:測試數據、測試結果分析及結論
測試方法與儀器: 1.測試儀器
測試儀器包括數字萬用表、信號發生器、示波器、直流穩壓電源等。
2.測試方法
數字萬用表主要用來測試各個IO口的狀態;
信號發生器與示波器用于測試超聲波傳感器信號的接收與傳輸;
試驗測試能不能完成固定避障。
結論:
經過了我們的努力,我們基本上能完上避障的功能!當然我們之后還有很長的路要走,在之后我們會自己做一個最小系統,此次我們更側重于軟件方面的設計。同時我們還要設計更多的外圍電路,實現更多的功能。其中包括:紅外光電檢測用來檢測旁邊的物體;還有紅外遙控器,用來控制小車的運行與停止;再加一個顯示器,用來顯示路程和時間等等。
附錄一:
程序附錄:
程序設計中包括:主程序,測距程序,中斷程序組成;
1.主程序:
#include “SPCE061A.h” #include “ceju.h”
unsigned char INTflag;
//定時標識
unsigned int sum;
//2hz 計數器
1次為0。5秒 void RunTime2Hz(void);void OffTime2Hz(void);void Clear_WatchDog(void);void delay2s(int timer)
//設置基頻為2HZ的中斷,就是一次定時0。5S {
sum=timer;RunTime2Hz();
//運行中斷
while(!INTflag)
{
Clear_WatchDog();//清看門狗
}
INTflag = 0;
OffTime2Hz();
//結束中斷
} void delay2s(int timer);int main(void){ unsigned int Back_data;
*P_IOB_Dir=0x1f00;
IOB,IOB8~12同向輸出
*P_IOB_Attrib=0x1f00;*P_IOB_Data=0x0000;INTflag = 0;Clear_WatchDog();
while(1){
*P_TimerA_Ctrl=0x0373;
*P_TimerA_Data=0xff9f;
這14/16
Back_data = measure_Times(0);if(Back_data==0)
//裝距離 //
初
始
化
//清看門狗
//設前進PWM
//測距
//判斷是否為0,為0則為前進
{
*P_TimerA_Ctrl=0x0373;
*P_TimerA_Data=0xff9f;
}
else if(Back_data<=40)
40CM,小于則進行倒車
{
*P_TimerA_Ctrl=0x006;
*P_IOB_Data=0x1000;
delay2s(0);
*P_IOB_Data=0x0100;
delay2s(3);
}
else if(Back_data<=100)
1M,小于則進行避障
{
*P_TimerA_Ctrl=0x0333;
*P_IOB_Data=0x0400;
delay2s(1);
*P_IOB_Data=0x0800;
delay2s(1);
//判斷是否小于
//倒車
//前進 //判斷是否小于//左轉
//右轉 23
*P_IOB_Data=0x0400;
//左轉
delay2s(1);*P_TimerA_Ctrl=0x006;
//停止PWM運行
*P_IOB_Data=0x0000;
//停車
while(1)
{;}
}
else
Clear_WatchDog();
}
}
2.中斷程序: #include “SPCE061A.h” #include “ceju.h”
void IRQ3(void)__attribute__((ISR));
void IRQ3(void){ *P_INT_Clear = 0x0100;
//
//IRQ中斷服務程序 24
EXT1_IRQ_ult();
//調用超聲波測距的外部中斷服務程序 }
.TEXT.include SPCE061A.inc;.external _sum;.external _INTflag;.public _IRQ5;_IRQ5:
push r1,r4 to [sp];
r1 =0x0008;
test r1,[P_INT_Ctrl];
jnz L_4Hz;
r1 = 0x0004;
[P_INT_Clear] = r1;
r1 = [_sum]
r1 += 1;
//定時3秒的中斷程序
// Timer A FIQ entrence
//清中斷
//取時基信號量
cmp r1,4;
je loop0;
[_sum]=r1
//保存時基信號量
pop r1,r4 from [sp];
reti;
loop0:
r1 = 0x0001;
[_INTflag] = r1;
r1 = 0
[_sum] = r1 pop r1,r4 from [sp];
reti;
L_4Hz:
r1 = 0x0008;
[P_INT_Clear] = r1;
pop r1,r4 from [sp];reti;
//設置中斷標識
//清中斷 26
.external _sum;.include SPCE061A.inc;.CODE.public _Clear_WatchDog;_Clear_WatchDog:.PROC
R1=0x0001;
[P_Watchdog_Clear]=R1;
//清看門狗
retf;.ENDP
.public _RunTime2Hz;//初始化中斷為2HZ定時中斷源_RunTime2Hz:
.proc r1 = 0x0004;
[P_INT_Ctrl] = r1;
INT IRQ;
//開中斷
retf.endp;
.public _OffTime2Hz;_OffTime2Hz:.proc
r1 = [P_INT_Ctrl]
r1 &= 0xfffb;
[P_INT_Ctrl] = r1;
r1 = 0x0000
[_sum] = r1;
retf;.endp;
3、測距程序
#include “SPCE061A.h” #define LONG_SEND_TIMER 40KHz信號發射時長
#define LONG_SEND_TIMER2 測距時的40KHz信號發射時長#define LONG_WAIT_DELAY 的防余波干擾延時時長
#define LONG_WAIT_DELAY2 測距時的防余波干擾延時時長
1000 3000
600 1500
//中距測距時的//中距測距的補充
//中距測距
//中距測距的補充
#define LONG_RES_ADD 補償值
0x00B0 //中距測距的結果#define LONG_RES_ADD2 充測距時的結果補償值
#define LOW_SEND_TIMER 40KHz信號發射時長 #define LOW_SEND_TIMER2
0x0220 //中距測距的補
250
//短距測距時的 1000 //短距測距的補充測距時的40KHz信號發射時長 #define LOW_WAIT_DELAY 余波干擾延時時長
#define LOW_WAIT_DELAY2
400
//短距測距
180
//短距測距的防的補充測距時的防余波干擾延時時長 #define LOW_RES_ADD 果補償值
#define LOW_RES_ADD2 測距時的結果補償值
unsigned int Counter_buf;
//超聲波測距當中,用于0x00B0
//短距測距的補充
0x0034
//短距測距的結保存TimerB計數的變量,相當于時長 unsigned int EXT1_IRQ_flag=0;
//外部中斷標志變量,用于EXT1的IRQ中斷程序和測距程序同步
void Delay_ult(unsigned int timers){ unsigned int i;for(i=0;i __asm(“nop”);} } unsigned int Resoult_ult(unsigned int Counter){ unsigned int uiTemp;unsigned long ulTemp;ulTemp =(unsigned long)Counter*33500;度,以厘米為單位 ulTemp = ulTemp/196608; ulTemp = ulTemp>>1; //除二 uiTemp =(unsigned int)ulTemp;return uiTemp;} unsigned int measure2_ult(unsigned int type);unsigned int measure_ult(unsigned int type) 聲波測距模組的測距程序,完成一次測距 //計算距離 //*以聲音的速 // 超30 { unsigned int Exit_flag = 1;unsigned int uiTemp;unsigned int uiResoult;unsigned int uiSend_Timer,uiWait_Timer,uiRes_Add;unsigned int uiSystem_Clock;uiSystem_Clock = *P_SystemClock;//將當前的系統時鐘設置暫時保存起來 *P_SystemClock = 0x0088; //將系統時鐘設置為49MHz,分頻比為1,強振模式 if(type) //根據type即測距類型,選擇不同的測距參數 { } else { uiSend_Timer = LOW_SEND_TIMER;uiWait_Timer = LOW_WAIT_DELAY;uiRes_Add = LOW_RES_ADD; uiSend_Timer = LONG_SEND_TIMER;uiWait_Timer = LONG_WAIT_DELAY;uiRes_Add = LONG_RES_ADD; } *P_TimerB_Data = 0xfed2;*P_TimerB_Ctrl = 0x03c0; //發40KHz的信號觸發超聲波傳感器 率 while(*P_TimerB_Data //TrB 工作在192KHz頻 //等待發送 //關定時器B 再打開TimerA的計數(來源于EXT1) 斷 *P_INT_Ctrl = *P_INT_Ctrl_New|0x0100;*P_INT_Clear = 0xffff;__asm(“IRQ ON”); //清除中斷發生標志 //打開總中斷使能 //TimerA的溢出中斷{ } *P_INT_Clear = 0x0100; //開中斷前先清中 //以避開余波的干擾 *P_Watchdog_Clear = 0x0001;EXT1_IRQ_flag = 0;的標志變量置0 while(Exit_flag) { if(EXT1_IRQ_flag==1) //當該變量在timerA的FIQ中斷中被置1時表示接收到了回波 { Exit_flag = 0; //退出標示 Counter_buf = Counter_buf+uiRes_Add;//計數值加上一定的調整數據 uiResoult = Resoult_ult(Counter_buf);//對計數值進行處理,得出距離值 } if(*P_TimerB_Data>10000) //如計數值大于10000,表示超時 { Exit_flag = 0; uiResoult = measure2_ult(type);//再進行一次補充的測距,將會加長40KHz信號發射的量 } } *P_TimerB_Ctrl = 0x0006;//停止定時器B uiTemp = *P_TimerB_Data;*P_Watchdog_Clear = 0x0001;*P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);//關掉外部 中斷 置 } void EXT1_IRQ_ult(void) //超聲波測距模組的測距程序的EXT1中斷服務程序 { Counter_buf = *P_TimerB_Data;*P_TimerB_Ctrl = 0x0006; return uiResoult;__asm(“IRQ OFF”); *P_SystemClock = uiSystem_Clock;//恢復系統時鐘的設 //關掉總中斷 *P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);//關掉外部中斷 *P_INT_Clear = 0xffff;EXT1_IRQ_flag = 1; //清除中斷發生標志 //通知測距程序,外部中斷已發生 } unsigned int measure2_ult(unsigned int type) //補充進行一次遠距的測量,以保證能夠獲取測量結果 { unsigned int Exit_flag = 1; unsigned int uiResoult;unsigned int uiSend_Timer,uiWait_Timer,uiRes_Add;*P_TimerB_Ctrl = 0x0006; *P_INT_Ctrl = *P_INT_Ctrl_New&(~0x0100);//關掉外部中斷 __asm(“IRQ OFF”); //關掉總中斷 //清除掉中斷發生標志 *P_INT_Clear = 0xffff; if(type) //根據type即測距類型,選擇不同的測距參數 { } else { } uiSend_Timer = LONG_SEND_TIMER2;uiWait_Timer = LONG_WAIT_DELAY2;uiRes_Add = LONG_RES_ADD2;uiSend_Timer = LOW_SEND_TIMER2;uiWait_Timer = LOW_WAIT_DELAY2;uiRes_Add = LOW_RES_ADD2; *P_TimerB_Data = 0xfed2;*P_TimerB_Ctrl = 0x03c0;Delay_ult(uiSend_Timer);*P_TimerB_Ctrl = 0x0006;*P_TimerB_Data = 0x0000;*P_TimerB_Ctrl = 0x0001; while(*P_TimerB_Data *P_INT_Ctrl = *P_INT_Ctrl_New|0x0100;//打開外部中斷 *P_INT_Clear = 0xffff;__asm(“IRQ ON”); EXT1_IRQ_flag = 0; //TimerA的溢出中斷 //清除中斷發生標志 //打開總中斷使能 { } *P_Watchdog_Clear = 0x0001;的標志變量置0 while(Exit_flag){ if(EXT1_IRQ_flag==1) //當該變量在timerA的FIQ中斷中被置1時表示接收到了回波 { Exit_flag = 0; //exit Counter_buf = Counter_buf+uiRes_Add;//計數值加上一定的調整數據 uiResoult = Resoult_ult(Counter_buf);//對計數值進行處理,得出距離值 } if(*P_TimerB_Data>10000) //如計數值大于10000,表示超時 } unsigned int measure_Times(unsigned int type) //組合進行共6次的測距程序,包括對6次測量結果的取平均值處理 { } { } Exit_flag = 0;uiResoult = 0; *P_TimerB_Ctrl = 0x0006;return uiResoult;unsigned int uiResoult=0,uiMeasure_Index=0,i;unsigned int uiTemp_buf[6],uiTemp; unsigned int uiSystem_Clock; for(;uiMeasure_Index<6;uiMeasure_Index++){ //循環進行四次測量 //進行一次測uiTemp = measure_ult(type); 量,測量類型由type決定 if(uiMeasure_Index==0) //如果為本次測量的第一次測距,則直接保存在緩沖區第一個單元 uiTemp_buf[0] = uiTemp; else { //否,則對結果進行比較,進行排序,從大到小排 i = uiMeasure_Index;while(i){ if(uiTemp>uiTemp_buf[i-1]){ } else { //以下為排序的代碼 uiTemp_buf[i] = uiTemp_buf[i-1];uiTemp_buf[i-1] = uiTemp; } } } uiTemp_buf[i] = uiTemp;break; //退出排序 i--; //兩次測量之間的延時等待,利用以下代碼軟仿真時的cycles數結合設置的CPUCLK進行計算,大概72ms uiSystem_Clock = *P_SystemClock; //將之前的系統時鐘的設置用變量保存 *P_SystemClock = 0x000b; // 設 置 為24.576MHz 分頻比為8 for(i=0;i<5;i++){ } *P_SystemClock = uiSystem_Clock; //恢復系統時鐘Delay_ult(1000); //調用延時程序 *P_Watchdog_Clear = 0x0001;設置 } //此處延時結束 //對6次測距的結果進行處理 if(uiTemp_buf[5]==0){ //如果緩沖區中的最小的測距值為0,則采用中間4個數據進行平均 uiResoult = uiTemp_buf[1]+uiTemp_buf[2]+uiTemp_buf[3]+uiTemp_buf[4]; } else { //否則就取后5個數據uiResoult = uiResoult/4;進行平均 uiResoult = uiTemp_buf[1]+uiTemp_buf[2]+uiTemp_buf[3]+uiTemp_buf[4]+uiTemp_buf[5]; } } return uiResoult;uiResoult = uiResoult/5;40 外文翻譯 INTELLIGENT VEHICLE Our society is awash in “machine intelligence” of various kinds.Over the last century, we have witnessed more and more of the “drudgery” of daily living being replaced by devices such as washing machines.One remaining area of both drudgery and danger, however, is the daily act ofdriving automobiles 1.2 million people were killed in traffic crashes in 2002, which was 2.1% of all globaldeaths and the 11th ranked cause of death.If this trend continues, an estimated 8.5 million people will be dying every year in road crashes by 2020.In fact, the U.S.Department of Transportation has estimated the overall societal cost of road crashes annually in the United States at greater than $230 billion.When hundreds or thousands of vehicles are sharing the same roads at the same time, leading to the all too familiar experience of congested traffic.Traffic congestion undermines our quality of life in the same way air pollution undermines public health.Around 1990, road transportation professionals began to apply them to traffic and road management.Thus was born the intelligent transportation system(ITS).Starting in the late 1990s, ITS systems were developed and deployed.In developed countries, travelers today have access to signifi-cant amounts of information about travel conditions, whether they are driving their own vehicle or riding on public transit systems.As the world energy crisis, and the war and the energy consumption of oil--and are full of energy, in one day, someday it will disappear without a trace.Oil is not in resources.So in oil consumption must be clean before finding a replacement.With the development of science and technology the progress of the society, people invented the electric car.Electric cars will become the most ideal of transportation.In the development of world each aspect is fruitful, especially with the automobile electronic technology and computer and rapid development of the information age.The electronic control technology in the car on a wide range of 1 外文翻譯 applications, the application of the electronic device, cars, and electronic technology not only to improve and enhance the quality and the traditional automobile electrical performance, but also improve the automobile fuel economy, performance, reliability and emissions purification.Widely used in automobile electronic products not only reduces the cost and reduce the complexity of the maintenance.From the fuel injection engine ignition devices, air control and emission control and fault diagnosis to the body auxiliary devices are generally used in electronic control technology, auto development mainly electromechanical integration.Widely used in automotive electronic control ignition system mainly electronic control fuel injection system, electronic control ignition system, electronic control automatic transmission, electronic control(ABS/ASR)control system, electronic control suspension system, electronic control power steering system, vehicle dynamic control system, the airbag systems, active belt system, electronic control system and the automatic air-conditioning and GPS navigation system etc.With the system response, the use function of quick car, high reliability, guarantees of engine power and reduce fuel consumption and emission regulations meet standards.The car is essential to modern traffic tools.And electric cars bring us infinite joy will give us the physical and mental relaxation.Take for example, automatic transmission in road, can not on the clutch, can achieve automatic shift and engine flameout, not so effective improve the driving convenience lighten the fatigue strength.Automatic transmission consists mainly of hydraulic torque converter, gear transmission, pump, hydraulic control system, electronic control system and oil cooling system, etc.The electronic control of suspension is mainly used to cushion the impact of the body and the road to reduce vibration that car getting smooth-going and stability.When the vehicle in the car when the road uneven road can according to automatically adjust the height.When the car ratio of height, low set to gas or oil cylinder filling or oil.If is opposite, gas or diarrhea.To ensure and improve the level of driving cars driving stability.Variable force power steering system can significantly change the driver for the work efficiency and the state, so widely used 外文翻譯 in electric cars.VDC to vehicle performance has important function it can according to the need of active braking to change the wheels of the car, car motions of state and optimum control performance, and increased automobile adhesion, controlling and stability.Besides these, appear beyond 4WS 4WD electric cars can greatly improve the performance of the value and ascending simultaneously.ABS braking distance is reduced and can keep turning skills effectively improve the stability of the directions simultaneously reduce tyre wear.The airbag appear in large programs protected the driver and passenger's safety, and greatly reduce automobile in collision of drivers and passengers in the buffer, to protect the safety of life.Intelligent electronic technology in the bus to promote safe driving and that the other functions.The realization of automatic driving through various sensors.Except some smart cars equipped with multiple outside sensors can fully perception of information and traffic facilities and to judge whether the vehicles and drivers in danger, has the independent pathfinding, navigation, avoid bump, no parking fees etc.Function.Effectively improve the safe transport of manipulation, reduce the pilot fatigue, improve passenger comfort.Of course battery electric vehicle is the key, the electric car battery mainly has: the use of lead-acid batteries, nickel cadmium battery, the battery, sodium sulfide sodium sulfide lithium battery, the battery, the battery, the flywheel zinc-air fuel cell and solar battery, the battery.In many kind of cells, the fuel cell is by far the most want to solve the problem of energy shortage car.Fuel cells have high pollution characteristics, different from other battery, the battery, need not only external constantly supply of fuel and electricity can continuously steadily.Fuel cell vehicles(FCEV)can be matched with the car engine performance and fuel economy and emission in the aspects of superior internal-combustion vehicles.Along with the computer and electronic product constantly upgrading electric car, open class in mature technology and perfected, that drive more safe, convenient and flexible, comfortable.Electric cars with traditional to compete in the market, the car will was electric cars and intelligent car replaced.This is the question that day 外文翻譯 after timing will come.ABS, GPS, and various new 4WD 4WS, electronic products and the modern era, excellent performance auto tacit understanding is tie-in, bring us unparalleled precision driving comfort and safety of driving.The hardware and software of the intelligent vehicle are designed based on AVR.This system could set the route in advance.The vehicle could communicate with the PC vianRF401 and could run safely with the help of ultra sound detection and infrared measuring circuit.Neural network self-study is used to improve the intelligence of the vehicle.The performance of servo systems will determine the property of the robot.Based on AVRseries MCU,the velocity servo system for driving motor is created in this paper,including a discrete PIregulator which will work out a PWM control signal with applying the skill of integral separation.The velocities of motors will be controlled real-time with the speed sampling frequency set for 2KHz by using the AVR-GCC compiler software development.Compared to the servo system development based on the 51 Series MCU,the system here has these advantages of simpler peripheral circuit and faster data processing.The experiments demonstrate that,the mobile robot runs stably and smoothly by the control of AVR units,and that the design proposal especially benefits the development of intelligent mobile robots,also can be widely used in the development of other smart devices and product lines.A new design of contest robot control system based on AVR Atmega8 was put forward.According to the character of contest robot , the main control unit , motor drive unit , sense detection unit and LCD display unit were introduced.Furthermore the servo driver system based on MCBL3006S , the line t racker sensor system and the obstacle avoidance sensor system were presented in detail.Finally the performance shows that the control system is open,simple,easy programming,intelligent and efficiency.Avoidance rules of intelligent vehicle obstacle are intro ducted.Through the collection of infrared sensor formation,the rules use diode D1 to launch and diode D2 to receive infrared signals.Infrared transmitter signal without a dedicated circuit 外文翻譯 comes directly from the MCU clock frequency, which not only simplifier the circuit and debugging, but also make the circuit stability and anti-jamming capability greatly enhanced.After the experimental verification,the system runs reliably meet the design requirements.A smart car control system of the path information identified based on CCD camera was introduced.The hardware structure and scheme were designed.The control strategy of s teering mechanism was presented.The smart car not only can identify the road precisely, but also have ant-interference performance, and small steady state error.This article designed smart car system,includes the aspects of the sensor information acquisition and processing, motor drive, control algorithm and control strategy etc.Using laser sensor to collect the road information which can feedback to the micro-controller control system,then making analytical processing combined with the software.With velocity feedback and PID control algorithms to control steering engine and the speed of smart car.Verified by actual operation, this method makes smart car travel stably and reliably,and its average speed to reach 2.6m /s, and get a satisfied results.By the aid of the professional know ledge of control, patter n recognition, sensor technology, aut omotive electronics, electricity, computer, machinery and so on, an intelligent vehicle system is designed with PID control algorithm,CCD detection system and HC9SDG128 MCU.Code Warrior IDE integrated development programming environment is taken as a basic softy are platform that can automatically deal with the traffic and image pro cessing, and then adjust the moving direction along the scheduled or bit by t he aid of a CCD camera.The system has many advantages, such as high reliability , high stability, good speed ability and scalability.Based on the research background of the Free-Scale smart car competition,a smart track following car is designed.In the car, the photo electricity sensor is used to check the path and obtain the information of racing road, and calculate the error 外文翻譯 between the car and the black line.The fuzzy control is used to control the velocity of the car.The experiments show that the smart car based on the fuzzy control has high accuracy on the judgment of the path, stability and velocity control.外文翻譯 智能車 我們的社會充斥著各種各樣的“機器智能“。在過去的世紀,我們目睹越來越多日常生活中的“苦差事“被機器設備解決,如洗衣機。 然而,一個既枯燥又危險的保留區域就是日常駕駛汽車。2002年,120萬人死于交通事故,這是所有全球2.1%死亡,死因排名第11。如果這種趨勢繼續下去,估計從2020年起每一年死于道路交通統(ITS)。20世紀90年代中后期開始,它的系統進行了開發和部署。在發達國事故的人將達到850萬人。事實上,美國交通部估計交通事故的整體社會成本每年超過2300億美元。 數百或數千輛車共享相同的道路時,就導致了大家都熟悉的交通擠塞。交通擠塞破壞了我們的生活質量就像空氣污染損害公眾健康。1990年左右,公路運輸的專業人士開始申請讓他們在交通和道路管理。于是誕生了智能交通系家,旅客今天能夠獲得旅行條件的信息,無論是駕駛自己的車或乘坐公共交通系統。 隨著世界能源危機的持續,以及戰爭和能源-----石油的消耗及汽車飽有量的增加,能源在一天一天下降,終有一天它會消失的無影無蹤。石油不是在生資源。所以必須在石油耗凈之前找到一種代替品。隨著科技的發展社會的進步,有人發明了電動汽車。電動汽車將成為人們最為理想的交通工具。 世界在各各方面的發展都取得豐碩成果,尤其是隨著汽車電子技術和計算機以及發展迅速的信息時代。電子控制技術在汽車上得到了廣泛應用,汽車上應用的電子裝置越來越豐富,電子技術不僅用來改善和提高傳統汽車電器的質量和性能,而且還提高了汽車的動力性、燃油經濟性、可靠性以及廢氣排放的凈化性。汽車上廣泛使用電子產品不僅降低了成本,并且減少維護的復雜性。從發動機的燃油噴射點火裝置、進氣控制、廢氣排放控制、故障自診斷到車身輔助裝置都普遍采用了電子控制技術,可以說今后汽車發展主要以機電一體化。汽車上廣泛采用的電子控制點火系統主要有電子控制燃油噴射系統、電子控制點火系統、電子控制自動變速器、電子控制防滑(ABS/ASR)控制系統、電子控制懸架系統、電子控制動力轉向系統、車輛動力學控制系統、安全氣囊系統、主動安全帶系統、電子控制自動空調系統、導航系統還有GPS等。有了這些系 外文翻譯 統汽車響應敏捷,使用功能強,可靠性高,既保證發動機動力又降低燃油的消耗,而且又滿足排放法規的標準。 汽車是現代人必不可少的交通工具。而電動汽車給我們帶來無限樂趣外還能給我們勞累一天的身心得以放松。就拿自動變速器來說吧,汽車在行駛時,可以不踩離合器踏板,就可以實現自動換檔而發動機不會熄火,這樣有效的提高駕駛方便性減輕駕駛員的疲勞強度。自動變速器主要由液力變矩器、齒輪變速器、油泵、液壓控制系統、電子控制系統、油冷卻系統等組成。電子控制的懸架主要是用來緩沖路面對車身的沖擊力以及減少振動保證汽車平順性和操縱穩定性。當汽車行駛在不平坦的道路時汽車能能根據底盤和路面高度自動調整。當車高比設置的高度低時,就向氣室或油缸充氣或充油。如果是相反,就放氣或瀉油。從而保證汽車的水平行駛,提高行駛穩定性。可變力動力轉向系統因能顯著改變駕駛員的工作效率和狀態,所以在電動汽車上廣泛使用。VDC對汽車性能有著至關重要的作用它能根據需要主動對車輪進行制動來改變汽車的運動狀態,使汽車達到最佳的行駛狀態和操縱性能,并增加了汽車的附著性,控制性和穩定性。除了這些之外4WS、4WD的出現大大提高了電動汽車的價值與性能同步提升。ABS具有減少制動距離并能保持轉向操作能力有效提高行駛方向的穩定性同時減少輪胎的磨損。安全氣囊的出現在很大程序上保護了駕駛員和乘客的安全,大大降低汽車在碰撞時對駕駛員和乘客的緩沖,以過到保護生命安全的目的。 智能電子技術在汽車上得以推廣使得汽車在安全行駛和其它功能更上一層樓。通過各種傳感器實現自動駕駛。除些之外智能汽車裝備有多種傳感器能充分感知交通設施及環境的信息并能隨時判斷車輛及駕駛員是否處于危險之中,具備自主尋路、導航、避撞、不停車收費等功能。有效提高運輸過程中的安全,減少駕駛員的操縱疲勞度,提高乘客的舒適度。當然蓄電池是電動汽車的關鍵,電動汽車用的蓄電池主要有:鉛酸蓄電池、鎳鎘蓄電池、鈉硫蓄電池、鈉硫蓄電池、鋰電池、鋅―空氣電池、飛輪電池、燃料電池和太陽能電池等。在諸多種電池中,燃料電池是迄今為止最有希望解決汽車能源短缺問題的動力源。燃料電池具有高效無污染的特性,不同于其他蓄電池,其不需要充電,只要外部不斷地供給燃料,就能連續穩定地發電。燃料電池汽車(FCEV)具有可與內燃機汽車媲美的動力性能,在排放、燃油經濟性方面明顯優于內燃機車輛。 外文翻譯 隨著計算機和電子產品不斷開級換代,電動汽車技術也在日趨成熟與完善,使得駕駛更安全、方便、靈活、舒適。電動汽車真正能夠與傳統的燃油汽車相競爭,今后汽車市場終會被電動汽車和智能汽車所取代。這只是時間性的問題這一天終究會來到的。ABS、GPS、4WS、4WD以及各種新時代的電子產品與現代高性能汽車默契組合、絕妙搭配,帶給我們無與倫比的精準駕駛舒適性和行駛安全性。 以AVR 單片機為核心, 提出了一種智能探測小車的軟硬件設計方案。系統可以預先設定小車的行走路線, 能夠實現小車與計算機之間的無線通訊, 通過超聲測物和紅外測障電路使小車安全行走。另外, 系統通過JTAG 接口在線調試程序。軟件設計中采用神經網絡自學習, 大大增強了小車的智能化.執行元件的伺服系統性能將決定機器人的性能。基于AVR 系列單片機,并應用積分分離技術,設計離散PI 調節器,輸出PWM 控制信號,建立驅動電機的速度伺服控制系統。使用AVR - GCC 編譯軟件開發伺服系統軟件,設定速度采樣頻率為2KHz,實現對電機速度的實時控制。與基于51 系列單片機開發的伺服系統相比,本系統所需的外圍電路更簡單,數據處理速度更快。實現了機器人響應快速,移動平穩。該伺服系統的開發尤其適用于智能移動機器人,還可以廣泛應用于其它智能設備和生產線。 提出了一種基于AVR 單片機Atmega8 為核心控制器的比賽機器人控制系統,通過比賽機器人的特征分析,闡述了構成控制系統所需的主控單元、電機驅動單元、傳感檢測單元及LCD 顯示單元,其中詳細分析了以MCBL3006S 為核心的伺服電機驅動單元,以及關系比賽機器人基本功能實現的循線傳感系統及避障傳感系統,并給出部分程序。最后通過實踐表明,該控制系統開放性好、結構簡單、編程容易、智能并高效。 智能車的避障規則,通過對紅外傳感器的信息進行采集,使用二極管D1 發射紅外線,二極管D2 接收紅外信號。紅外線發射部分不設專門的信號發生電路,直接從單片機實現時鐘頻率,既簡化了線路和調試工作,又能使電路的穩定性和抗干擾能力大大加強。經實驗驗證,該系統運行可靠,達到了設計要求。 介紹一種基于CCD 攝像頭的路徑識別的智能車控制系統, 設計了硬件結構與方案, 提出了轉向機構的控制策略, 該智能車能準確實現自主尋跡, 具備抗干擾性極強, 穩態誤差小等特點。 外文翻譯 智能車系統,包括傳感器信息采集與處理、電機驅動、控制算法及控制策略等方面。采用激光傳感器采集道路信息并反饋給單片機控制系統,通過軟件進行相關分析處理,通過速度反饋和PID 算法控制舵機轉向和智能車速度。通過實際運行驗證,本方法使智能車運行穩定、可靠,其平均速度達到2.6m/s,得到比較理想的效果。 為了綜合利用控制、模式識別、傳感器技術、汽車電子、電氣、計算機、機械等專業領域知識, 設計實現了一個基于PID 控制算法, CCD 檢測系統, 并采用H C9SDG128 單片機作為主控芯片的智能車系統。該系統使用Codewar rio r IDE 集成開發環境作為程序設計的基本軟件平臺, 能利用攝像頭自動識別路況, 進行圖像處理, 進而調整方向沿預定軌道前行, 具有很強的可靠性、穩定性、快速性、擴展性。 以“飛思卡爾”杯智能車大賽為研究背景,開發了一種智能循跡小車。該小車采用光電傳感器檢測路徑,獲得賽道信息,求出小車與黑線間的偏差,采用模糊控制對小車的速度進行控制,使小車能夠自動跟隨直道和彎道。實踐表明,采用模糊控制的智能小車在路徑識別的精準度,穩定性,及速度控制上具有明顯優勢。 智能避障小車試驗報告與 總結 專業班級:12自動化-3 姓 名:李昆倫 學 號:1216306058 隨著科學技術的發展,機器人的感覺傳感器種類越來越多,其中視覺傳感器成為自動行走和駕駛的重要部件。視覺的典型應用領域為自主式智能導航系統,對于視覺的各種技術而言圖像處理技術已相當發達,而基于圖像的理解技術還很落后,機器視覺需要通過大量的運算也只能識別一些結構化環境簡單的目標。視覺傳感器的核心器件是攝像管或CCD,目前的CCD已能做到自動聚焦。但CCD傳感器的價格、體積和使用方式上并不占優勢,因此在不要求清晰圖像只需要粗略感覺的系統中考慮使用接近覺傳感器是一種實用有效的方法。 STC12C5A60S2/AD/PWM系列單片機是宏晶科技生產的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統8051,但速度快8-12倍。內部集成MAX810專用復位電路,2路PWM,8路速10位A/D轉換(250K/S),針對電機控制,強干擾場合。我們采用的就是STC12C5A60S2這種單片機。 避障系統可以采用反射式光電開關或者超聲波傳感器對前方的障礙物進行檢測,前者結構簡單,應用方便靈活,但不能獲知障礙物與小車間的具體距離;后者結構復雜,但可以測得障礙物與小車間的直線距離。本系統采用反射式光電開關E3F-DS10C4來檢測障礙物。E3F-DS10C4是漫反射式光電開關,NPN三線輸出方式,三線分別為電源線、輸出線、地線。它的靈敏度也可以調節,檢測距離比較遠,可以達到20cm。 紅外發射管,發射50hz調制的38k信號。當遇到障礙物時,發生漫反射,紅外接收頭接收到這一信號時,輸出端輸出50hz的信號。判斷這一信號,即可判斷,遇到了障礙物。 避障傳感器基本原理,利用物體的反射性質。在一定范圍內,如果沒有障礙物,發射出去紅外線,因為傳播距離越遠而逐漸減弱,最后消失,或者反射回來的光很弱時,輸出端呈低電平光電開關的檢測不受外界干擾。如果有障礙物,紅外線遇到障礙物,被反射到達傳感器接收頭,則輸出端呈高電平。傳感器檢測到這一信號,就可以確認正前方有障礙物,并送給單片機,單片機進行一系列的處理分析,協調小車兩輪工作。紅外避障基本原理大致就是如此。 利用紅外傳感器進行“前進-倒退-轉向”避障,在車的頭部安裝光電開關小車采用左右輪分別驅動小車進入障礙區后,在距離障礙物10cm到20cm的地方就可以檢測到前面有障礙物(改變光電開關的靈敏度可改變最遠檢測距離),然后小車剎車停止,并調整角度,車頭右偏一個角度,其方法是小車在前進制動過程中,先制動右輪,這樣左輪轉動快,使小車右轉,并制動停止,隨后小車加速后退,然后制動,在制動過程中,先制動右輪,左邊快而使車頭左偏,小車再前進,檢測前方是否有障礙物。如此循環,就可以繞開障礙物。前進停止和后退停止之間的距離約為30cm,只要小車前進時剎車行程小于傳感器檢測到障礙物的最大距離,就可以肯定小車車頭碰不到障礙物。調整適當的剎車行程和傳感器的靈敏度,便可實現這個條件。單片機電路: 電機驅動電路: 電源電路: 紅外傳感電路: 之后附上小車實物照片: 采用二輪驅動,后面一個萬向輪方便轉向,減少阻力。電源采用3.7v鋰電池供電。 至于程序輸入,如圖電源指示燈旁邊有個插口,可以連接數據線,安裝的驅動是PL2303Vista_Installer,燒寫軟件我采用的是stc-isp-15xx-v6.67D,至于程序則是在同學們的幫助下參考網上的改編的。程序有如下: #include“STC12C5A60S2.h” #include void delay(unsigned int n){ unsigned char i, j,k;for(k=0;k<=n;k++){ _nop_();_nop_();i = 20;j = 10;do { while(--j);} while(--i);} } void beep(void){ unsigned char i;for(i=0;i<3;i++){ BUZZ=~BUZZ;delay(10);} BUZZ=1;} void gogogo(void){ IN1=1;IN2=0;IN3=1;IN4=0;} void backbackback(void){ IN1=0;IN2=1;IN3=0;IN4=1;} void stop(void){ IN1=0;IN2=0;IN3=0;IN4=0;} void turnleft(void){ IN1=0;IN2=1;IN3=1;IN4=0;} void turnright(void){ IN1=1;IN2=0;IN3=0;IN4=1;} void main(void){ while(1){ if(bleft==0&&bright==1){ turnright();delay(3);stop();delay(3);} if(bleft==1&&bright==0){ turnleft();delay(3);stop();delay(3);} if(bleft==0&&bright==0){ gogogo();delay(3);stop();delay(3);} if(bleft==1&&bright==1){ turnright();delay(3);stop();delay(3);} } } 在焊接過程中,也出線了很多錯誤,再嚴重的一次是單片機底座引腳有一個沒有焊好,然后用萬用表連接了多次才發現,然后用一根小鐵絲從下面穿上去再用錫焊牢固。特別要注意的是色環電阻的識別計算方法,在這就不詳細介紹了。最難的莫過于程序的調試和小車的機械方面布局幾輪驅動一類的問題。總之,通過這次動手制作小車,我從中也學到了很多平時不知道的東西。以后有機會,會繼續加強這方面的動手學習能力。 (畢業論文)智能超聲波避障小車的設計與制作 江陰職業技術學院 項目設計報告 項目超聲波避障小車的設計與制作 專 業 學生姓名 班 級 學 號 指導教師 完成日期 摘 要 智能小車是一種能夠通過編程手段完成特定任務的小型化機器人它具有制作成本低廉電路結構簡單程序調試方便等優點由于具有很強的趣味性智能小車深受廣大機器人愛好者以及高校學生的喜愛 本論文介紹的是具有自動避障功能的智能小車的設計與制作以下簡稱智能小車論文對智能小車的方案選擇設計思路以及軟硬件的功能和工作原理進行了詳細的分析和論述經實踐驗收測試該智能小車的電路結構簡單調試方便系統反映快速靈活設計方案正確可行各項指標穩定可靠 Abstract Smart cars can be programmed to perform a specific task means the miniaturization of robot it has to make cost is low circuit simple structure convenient program test Because of it has strong interest intelligent robot car favored by the majority of the university students enthusiasts and love This paper introduces the is a automatic obstacle avoidance function of intelligent car design and production hereinafter referred to as the smart car the thesis to the intelligence of the car scheme selection design idea and the implementation of hardware and software function and working principle of a detailed analysis and discusses After practice acceptance test this intelligent car circuit structure is simple convenient debug fast flexible system reflect correct and feasible design scheme each index is steady and reliable 目 錄 摘 要 I Abstract II 目 錄 III 第一章 緒論 1 11項目研究背景及意義 1 12項目主要研究內容 1 13設計思路 1 14應用場合和功能 2 第二章 總體方案 3 21總體方案概述 3 22 總體電路原理圖 3 第三章 各模塊功能介紹 4 31障礙物測距系統 4 32顯示模塊 5 33驅動模塊 10 34電源模塊 12 第四章 軟件設計 13 41 程序設計流程圖 13 42 關鍵程序設計 14 第五章 系統調試 17 51 調試的思路 17 52 各模塊的調試 17 53 調試心得 19 第六章 結論與展望 61 結論 20 62 展望 20 致 謝 21 參考資料 22 附錄 23 1元器件清單 23 2樣機實物照片 24 3電路原理圖 25 相關程序 26 第一章 緒論 11項目研究背景及意義 智能作為現代社會的新產物是以后的發展方向他可以按照預先設定的 模式在一個特定的環境里自動的運作無需人為管理便可以完成預期所要達 到的或是更高的目標本設計主要體現多功能小車的智能模式設計中的理論 方案分析方法及特色與創新點等可以為自動運輸機器人采礦勘探機器人 家用自動清潔機器人等自動半自動機器人的設計與普及有一定的參考意義同 時小車可以作為玩具的發展對象為中國玩具市場技術含量的缺乏進行一定的 彌補實現經濟收益形成商業價值 超聲波作為智能車避障的一種重要手段以其避障實現方便計算簡單 易于做到實時控制測量精度也能達到實用的要求在未來汽車智能化進程中 必將得到廣泛應用我國作為一個世界大國在高科技領域也必須占據一席之 地未來汽車的智能化是汽車產業發展必然的在這種情況下研究超聲波在智 能車避障上的應用具有深遠意義這將對我國未來智能汽車的研究在世界高科 技領域占據領先地位具有重要作用 本智能小車系統最誘人的前景就是可用于未來的智能汽車上了當駕駛員 因疏忽或打瞌睡時這樣的智能汽車的設計就能體現出它的作用如果汽車偏離 車道或距障礙物小于安全距離時汽車就會發出警報提醒駕駛員注意如果 駕駛員沒有及時作出反應汽車就會自動減速或停靠于路邊 這樣的小車還可以用于月球探測等的無人探月車幫助我們傳達月球上更 多的信息讓我們更加的了解月球為將來登月做好充分準備 這樣的小車在科學考察探測車上也有廣闊的應用前景在科學考察中有 很多危險且人們無法涉足的地方這時智能科學考察車就能夠派上用場在 它上面裝上攝像機代替人們進行許多無法進行的工作 12項目主要研究內容 本設計題目為智能避障小車設計主要研究小車的避障功能小車遇到障礙物時當距離障礙物大于40cmPWM信號自增驅動電機加速小車加速前進當小于30cm時PWM信號自減驅動電機減速小車減速前進并且小車采取相應的避障措施這里探測裝置必不可少因為超聲波在距離檢測方面的較準確定位所以采用超聲波傳感器作為探測裝置由于超聲波遇到障礙物時發生像光一樣的反射和散射在經過多次發射之后再回到超聲波檢測端口會產生較嚴重的路程差從而影響對距離的檢測進而影響對障礙物的較準確定位通過軟件內部校準優化消除外部物理條件造成的誤差從而達到對障礙物的較準確定位 13設計思路 直流電機PWM控制系統的主要功能包括實現對直流電機的加速減速并且可以調整電機的轉速能夠很方便的實現電機的智能控制主體電路即直流電機 PWM 控制模塊這部分電路主要由 AT89S52 單片機 的 IO 端口定時計數器外部中斷擴展等控制直流電機的加速減速以及轉彎并且可以調整電機的轉速能夠很方便的實現電機的智能控制 其間是通過 AT89S52 單片機產生脈寬可調的脈沖信號并輸入到 L298 驅動芯片來 控制直流電機工作的該直流電機 PWM 控制系統由以下電路模塊組成設計控制部分 主要由 AT89S52 單片機的外部中斷擴展電路組成直流電機PWM控制實現部分主要由電機和 L298 直流電機驅動模塊組成設計顯示部分LCD 數碼顯示部分實現對超聲波測的距離的實時顯示 14應用場合和功能 應用場合智能小車是一種能夠通過編程手段完成特定任務的小型化機器人它具有制作成本低廉電路結構簡單程序調試方便等優點由于具有很強的趣味性智能小車深受廣大機器人愛好者以及高校學生的喜愛同時在玩具的應用上深受小朋友的青睞 功能本小車使用AT89S52單片機作為主控芯片它通過超聲波測距來獲取小車距離障礙物的距離并且用LED顯示出來當小車與障礙物的距離大于40cm時小車會沿直線前進當小車與障礙物的距離小于30cm時小車轉彎以避開障礙物并且此時蜂鳴器報警在避開障礙物后小車會沿直線前進 第二章 總體方案 21總體方案概述 本小車使用AT89S52單片機作為主控芯片它通過超聲波測距來獲取小車距離障礙物的距離并且用LCD顯示出來當小車與障礙物的距離大于40cm時小車會沿直線前進當小車與障礙物的距離小于30cm時小車轉彎以避開障礙物并且此時蜂鳴器報警在避開障礙物后小車會沿直線前進簡要框圖如圖2-1 圖 21簡要框圖 總體電路原理圖 第三章 各模塊功能介紹 31障礙物測距系統 方案一超聲波視覺 優點價格合理夜間不受影響易于多目標測量和分類分辨率好缺點測量范圍小對天氣變化敏感不能直接測量距離算法復雜處理速度慢 方案二激光雷達MMW雷達 優點夜間不受影響不受燈光天氣影響缺點對水灰塵燈光敏感價格貴 探測障礙的最簡單的方法是使用超聲波傳感器它是利用向目標發射超聲波脈沖計算其往返時間來判定距離的算法簡單價格合理所以我們選擇超聲波傳感器 超聲波測距原理 首先利用單片機輸出一個40kHz的觸發信號把觸發信號通過TRIG管腳輸入到超聲波測距模塊再由超聲波測距模塊的發射器向某一方向發射超聲波在發射時刻的同時單片機通過軟件開始計時超聲波在空氣中傳播途中碰到障礙物返回超聲波測距模塊的接收器收到反射波后通過產生一個回應信號并通過ECHO腳反饋給單片機此時單片機就立即停止計時時序圖如圖1所示由于超聲波在空氣中的傳播速度為340ms根據計時器記錄的時間t就可以計算出發射點距障礙物的距離即S VT2通過單片機來算出距離 圖31超聲波測距原理 32顯示模塊 方案一用LCD顯示 優點輻射小顯示內容多 低耗能散熱小顯示的畫面穩定不閃爍缺點不適合做圖圖像還原不好有可視范圍限制 方案二用LED顯示 優點亮度高成本低缺點不能顯示漢字顯示內容較少 對于本課題的要求我們選擇LCD實現功能顯示內容多低功耗顯示畫面穩定不閃爍硬件電路設計簡單 字符型液晶顯示模塊是一種專門用于顯示字母數字符號等點陣式LCD目前常用161162202和402行等的模塊下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例介紹其用法一般1602字符型液晶顯示器實物如圖 圖 3211602字符型液晶顯示器1602LCD主要技術參數 顯示容量16×2個字符 芯片工作電壓4555V 工作電流20mA 50V 模塊最佳工作電壓50V字符尺寸295×435 W×H mm 引腳功能說明1602LCD采用標準的14腳無背光或16腳帶背光接口各引腳接口說明如表所示編號 符號 引腳說明 編號 符號 引腳說明VSS 電源地 9 D2 數據VDD 電源正極 10 D3 數據VL 液晶顯示偏壓 11 D4 數據RS 數據命令選擇 12 D5 數據RW 讀寫選擇 13 D6 數據 6 E 使能信號 14 D7 數據D0 數據 15 BLA 背光源正極 8 D1 數據 16 BLK 背光源負極 表-2-1引腳接口說明表 第1腳VSS為地電源 第2腳VDD接5V正電源 第3腳VL為液晶顯示器對比度調整端接正電源時對比度最弱接地時對比度最高對比度過高時會產生鬼影使用時可以通過一個10K的電位器調整對比度 第4腳RS為寄存器選擇高電平時選擇數據寄存器低電平時選擇指令寄存器 第5腳RW為讀寫信號線高電平時進行讀操作低電平時進行寫操作當RS和RW共同為低電平時可以寫入指令或者顯示地址當RS為低電平RW為高電平時可以讀忙信號當RS為高電平RW為低電平時可以寫入數據 第6腳E端為使能端當E端由高電平跳變成低電平時液晶模塊執行命令 第7~14腳D0~D7為8位雙向數據線 第15腳背光源正極 第16腳背光源負極 1602LCD的指令說明及時序1602液晶模塊內部的控制器共有11條控制指令如表-2-2所示序號 指令 RS RW D7 D6 D5 D4 D3 D2 D1 D0 1 清顯示 0 0 0 0 0 0 0 0 0 1 2 光標返回 0 0 0 0 0 0 0 0 1 置輸入模式 0 0 0 0 0 0 0 1 ID S 4 顯示開關控制 0 0 0 0 0 0 1 D C B 5 光標或字符移位 0 0 0 0 0 1 SC RL 置功能 0 0 0 0 1 DL N F 置字符發生存貯器地址 0 0 0 1 字符發生存貯器地址置數據存貯器地址 0 0 1 顯示數據存貯器地址讀忙標志或地址 0 1 BF 計數器地址寫數到CGRAM或DDRAM 1 0 要寫的數據內容 11 從CGRAM或DDRAM讀數 1 1 讀出的數據內容 表-2-2控制命令表 1602液晶模塊的讀寫操作屏幕和光標的操作都是通過指令編程來實現的說明1為高電平0為低電平 指令1清顯示指令碼01H光標復位到地址00H位置 指令2光標復位光標返回到地址00H 指令3光標和顯示模式設置 ID光標移動方向高電平右移低電平左移 S屏幕上所有文字是否左移或者右移高電平表示有效低電平則無效 指令4顯示開關控制 D控制整體顯示的開與關高電平表示開顯示低電平表示關顯示 C控制光標的開與關高電平表示有光標低電平表示無光標 B控制光標是否閃爍高電平閃爍低電平不閃爍 指令5光標或顯示移位 SC高電平時移動顯示的文字低電平時移動光標 指令6功能設置命令 DL高電平時為4位總線低電平時為8位總線 N低電平時為單行顯示高電平時雙行顯示 F 低電平時顯示5x7的點陣字符高電平時顯示5x10的點陣字符 指令7字符發生器RAM地址設置 指令8DDRAM地址設置 指令9讀忙信號和光標地址 BF為忙標志位高電平表示忙此時模塊不能接收命令或者數據如果為低電平表示不忙 指令10寫數據 指令11讀數據 與HD44780相兼容的芯片時序表如下讀狀態 輸入 RS LRW HE H 輸出 D0D7 狀態字 寫指令 輸入 RS LRW LD0D7 指令碼E 高脈沖 輸出 無 讀數據 輸入 RS HRW HE H 輸出 D0D7 數據 寫數據 輸入 RS HRW LD0D7 數據E 高脈沖 輸出 無 表-2-3基本操作時序表 讀寫操作時序如圖和所示 圖 322 讀操作時序 圖 323 寫操作時序 33驅動模塊 方案一采用ULN2003驅動它是由7組達林頓晶體管陣列和相應的電阻網絡以及鉗位二極管網絡構成具有同時驅動7組負載的能力一般用于高速大功率驅動電路所以我們不采用這個方案 方案二采用由雙極性管組成的H橋電路L298N用單片機控制晶體管使之工作在占空比可調的開關狀態精確調整電機轉速這種電路由于工作在管子的飽和截止模式下則效率非常高H橋電路保證了可以簡單地實現轉速和方向的控制電子開關的速度很快穩定性也很高而且它有更強的驅動能力L298N有過電流保護功能當出現電機卡死時可以保護電路和電機等 L298N有過電流保護功能當出現電機卡死時可以保護電路和電機 等所以我們選擇L298N 下圖為L298內部圖 圖33L298內部原理圖 L298各引腳功能如下表 引腳 功能 SEN1SEN2 分別為兩個H橋的電流反饋腳不用時可以接地 23 1Y11Y2 輸出端與對應輸入端IN1IN2同邏輯 4 VS 驅動電壓最小值需比輸入的低電平電壓高25V 57 IN1IN2 輸入端TTL電平兼容 611 EN1EN2 使能端低電平禁止輸出GND 地 9 VSS 邏輯電源457V 1012 IN3IN4 輸入端TTL電平兼容 1314 2Y12Y2 輸出端與對應輸入端IN3IN4同邏輯 表3-3-1 封裝引腳及功能 驅動電機的運行IO端口狀態與電機制動對照表如下 IN1 IN2 IN3 IN4 EN1 EN2 轉速0 1 0 1 1 正轉 0 1 0 1 1 1 反轉1 1 1 1 1 停止 0 0 0 0 1 1 停止 X X X X 0 0 停止 表3-3-2 IO端口狀態與電機制動對照表 34電源模塊 我們選擇采用5v的獨立的穩壓電源 優點穩定可靠且有各種成熟電路可供選用 缺點各模塊都采用獨立電源會使系統復雜且可能影響電路電平綜合電源模塊的缺優點和電路的實際需求我們采用了兩塊獨立穩壓電源一塊給小車的電機驅動供電一塊給小車的芯片供電這樣彌補了單個獨立電源供電出現電力不足的情況 第四章 軟件設計 41 程序設計流程圖 本設計系統軟件采用模塊化結構由主程序、定時子程序電機驅動子程序、中斷子程序顯示子程序、算法子程序構成主程序流程圖如圖41所示 圖 41主程序流程圖 關鍵程序設計 PWM產生程序設計 void Timer2 void interrupt 5 TF2 0 RCAP2H 0x0fe RCAP2L 0x33 click if click 100 click 0 if click ZK1 PWM1 1 else PWM1 0 if click ZK2 PWM2 1 else PWM2 0 2超聲波的發射與接受程序設計 void zd3 interrupt 3 TH1 0x0f8 TL1 0x30 timer if timer 200 timer 0 TX 1 _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ TX 0 31602的初始化程序的設計 void ini_lcd1602 write_lcd1602 0x380 delay 1 write_lcd1602 0x0c0 delay 1 write_lcd1602 0x060 delay 1 write_lcd1602 0x010 delay 1 41602的寫程序的設計 void write_lcd1602 uchar cmduchar i lcd_mang rs i rw 0 e 0 _nop_ _nop_ e 1 _nop_ _nop_ P0 cmd _nop_ _nop_ _nop_ _nop_ e 0 51602的判忙程序的設計 void lcd_mang rs 0 rw 1 e 1 _nop_ _nop_ _nop_ _nop_ while P00x80 e 0 第五章 系統調試 51 調試的思路 本設計的智能避障小車一共分為四大模塊分別是L298驅動模塊超聲波測距模塊LCD顯示模塊以及蜂鳴器報警模塊調試的時候我們可以把四大模塊分別調試最后再把所有模塊組合起來再進行最后的整機調試這樣一個調試的思路 各模塊的調試 521 LCD的調試首先根據電路圖將顯示模塊焊好再用萬用表檢查電路是否出現短路一切都正常的情況下將LCD測試程序燒到芯片中觀察LCD的顯示是否正確如圖521一開始可能什么都不顯示這個時候我們只需調整LCD 3腳的變阻器阻值即可 圖 521LCD測試圖 522 超聲波的調試 超聲波模塊一共有四個腳一個是VCC一個是GND還有兩個分別是超聲波的發射和接收引腳連接電路時候只需引出四根插線分別連接到89S52的對應引腳燒制好測試程序測試結果圖如522本設計四根插線分別連接到VCCGND還有發射和接收引腳分別為P30和P32口 圖 522超聲波測試圖 523 蜂鳴器報警調試 蜂鳴器的連接很簡單只需用一個PNP管來做驅動當低電平到來時蜂鳴器發出聲音當高電平到來時沒有聲音本設計中蜂鳴器連接到P34口如圖523所示 圖523蜂鳴器報警電路 調試心得 通過系統的調試我們可以學到更多的知識我們也可以發現仿真和實物調試不同的地方程序設計的結果可能往往和實物調試出的結果不一樣這就需要我們去思考去斟酌去改進以達到預期效果通過程序和硬件的調試我們可以更深刻的理解各功能模塊之間的聯系也可以明白各調試的步驟 在調試的過程中我也遇到許多問題例如我在宿舍調試好小車之后帶到班級時候在插上電源試圖讓小車跑起來時候發現超聲波模塊失去了作用LCD不再顯示數據了后來我用電腦USB口供電發現也不可以檢查了許久才發現是超聲波模塊上的電源線和地線的兩根插線出現了斷路換線之后LCD正常顯示數值小車正常行駛整個調試過程需要硬件和軟件結合起來調試要仔細檢查電路認真思考程序 硬件部分調試的步驟 檢查原理圖連接是否正確用萬用表檢查是否有虛焊引腳短路現象檢查原理圖與上引腳是否一致680歐的電阻焊成了68千歐這使我深深感受到理論與實際間的差距在調試過程中發現插上編程器后不能燒制程序通過檢查電路發現AT89S52芯片的使能端沒有接VCC改好之后重新燒制發現還是不可以通過再次檢查發現是共陰管的驅動芯片74LS245的引腳出現焊接錯誤通過這些調試提高了我檢查電路的能力以及鞏固了電路圖的知識通過這樣的設計提高了我的動手能力每天在實驗室除了焊接線路板還可以上機編程使我軟件調試知識也提高了本設計采用的是89S52單片機這主要是因為該單片機的穩定性比較好還可以采用其它系列的單片機比如采用陵陽單片機就可以簡化編程但其穩定性不是很好 展望 1在本課題的基礎上我們可以在小車的底座下面裝一個吸塵裝置這樣就可以在小車行駛的過程中吸除一些預先放好的小紙屑 2設計出兩輛小車一輛小車放在另一輛的前面當前面一輛小車起動時候后面一輛小車也起動前面一輛小車轉彎的時候后面一輛也跟著轉彎前面一輛小車停止時后面一輛也跟著停止 致 謝 歷時三個月的畢業設計已經告一段落經過自己不斷的搜索努力以及白老師的耐心指導和熱情幫助本設計已經基本完成在這段時間里白老師嚴謹的治學態度和熱忱的工作作風令我十分欽佩他的指導使我受益非淺 通過這次畢業設計使我深刻地認識到學好專業知識的重要性也理解了理論聯系實際的含義并且檢驗了大學四年的學習成果雖然在這次設計中對于知識的運用和銜接還不夠熟練但是我將在以后的工作和學習中繼續努力不斷完善這三個月的設計是對過去所學知識的系統提高和擴充的過程為今后的發展打下了良好的基礎 由于自身水平有限設計中一定存在很多不足之處敬請各位老師批評指正 參考資料 趙負圖傳感器集成電路手冊第一版化學工業出版社2004590~591 2李華MCS-51系列單片機實用接口技術第三版北京1997年 3張紅潤實用自動控制成都科技大學出版社1990年1月 4康華光電子技術基礎北京高等教育出版社1983年10月 5潘新民微型計算機控制技術北京人民郵電技術出版社1988年3月 6趙依軍單片機微型接口技術北京人民郵電技術出版社1989年3月 7李廣弟單片機基礎北京北京航空航天大學出版社2001 8胡漢才單片機原理及其接口技術北京清華大學出版社1996 9王毅單片機器件應用手冊北京人民郵電出版社1995 附錄 1元器件清單 序號 元件名稱 數量 參數AT89S52單片機 超聲波模塊 1 L298n 1 智能避障小車底盤蜂鳴器LCD液晶屏 2樣機實物照片 3電路原理圖 相關程序 include include define uchar unsigned char define uint unsigned int unsigned char i sbit rs P26 定義引腳 sbit rw P25 sbit e P27 sbit TX P30 觸發信號引腳 sbit FM P34 sbit PWM1 P36 pwm信號輸出 sbit PWM2 P37 static char click 0 unsigned char ZK1ZK2 unsigned int time 0 unsigned int timer 0 unsigned long S bit flag 0 unsigned char code ASCII[19] 0123456789-MJU LI static unsigned char DisNum 0 顯示用指針 unsigned long S 0 unsigned char disbuff[11] 0 void Conut void time TH0256TL0 TH0 0 TL0 0 S time17 100 disbuff[0] 13 disbuff[1] 14 disbuff[2] 15 disbuff[3] 16 disbuff[4] 17 disbuff[5] 18 disbuff[6] S1000100 disbuff[7] 10 disbuff[8] S100010010 disbuff[9] S100010 10 disbuff[10] 12 void delay_1 void 誤差 0us unsigned char ab for b 215b 0b--for a 45a 0a-- void delay uchar a uchar i while a-- for i 0i 250i _nop_ _nop_ _nop_ _nop_ 判忙 void lcd_mang rs 0 rw 1 e 1 _nop_ _nop_ _nop_ _nop_ while P00x80 e 0 1602的寫 void write_lcd1602 uchar cmduchar i 當i為0的時候為向1602寫指令為1寫數據 lcd_mang rs i rw 0 e 0 _nop_ _nop_ e 1 _nop_ _nop_ P0 cmd _nop_ _nop_ _nop_ _nop_ e 0 1602的初始化 void ini_lcd1602 write_lcd1602 0x380 delay 1 write_lcd1602 0x0c0 delay 1 write_lcd1602 0x060 delay 1 write_lcd1602 0x010 delay 1 void Timer2Interrupt RCAP2H 0x0fe RCAP2L 0x33 ET2 1 T2定時器中斷 EA 1 總中斷 TR2 1 T2定時器 允許打開啟動void zd0 interrupt 1 flag 1 void zd3 interrupt 3 800MS啟動模塊 TH1 0x0f8 TL1 0x30 timer if timer 200 timer 0 TX 1 800MS _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ T1中斷用來掃描數碼管和計啟動一次模塊 _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ _nop_ TX 0 void Timer2 void interrupt 5 TF2 0 T2定時器發生溢出中斷時需要用戶自己清除溢出標記 RCAP2H 0x0fe RCAP2L 0x33 恢復定時器初始值 click if click 100 click 0 if click ZK1 PWM1 1 else PWM1 0 if click ZK2 PWM2 1 else PWM2 0 主函數 void main TMOD 0x19 設T0為方式1GATE 1 TH0 0 TL0 0 TH1 0x0f8 2MS定時 TL1 0x30 ET0 1 允許T0中斷 ET1 1 允許T1中斷 TR1 1 開啟定時器 Timer2Interrupt EA 1 開啟總中斷 ZK1 20 ZK2 20 ini_lcd1602 while 1 while INT0 0 當RX為零時等待 TR0 1 while INT0 1 當RX為1計數并等待 TR0 0 關閉計數 Conut 計算 if S 40 控制加速 FM 1 P1 0xaf ZK1 ZK1-5 ZK2 ZK2-5 else if S 30 控制轉向 FM 0 ZK1 ZK15 ZK2 ZK25 P1 0X8F delay_1 if ZK1 99 ZK1 1 if ZK1 1 ZK1 10 if ZK2 99 ZK2 1 if ZK2 1 ZK2 10 write_lcd1602 0x800 for i 0i 10i write_lcd1602 ASCII[disbuff[i]]1-31-第三篇:智能避障機器人設計外文翻譯
第四篇:智能避障小車試驗報告與總結
第五篇:(畢業論文)智能超聲波避障小車的設計與制作(可編輯)