版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄第1章 需求分析11.1 設計題目11.2 設計目的11.3 設計任務及要求11.3.1 總體任務11.3.2 個人任務11.3.3 設計要求11.4 硬件設備與開發(fā)工具21.4.1 硬件設備21.4.2 開發(fā)工具2第2章 概要設計32.1 總體方案設計32.2 小車循跡原理32.3 主要功能的設計原理及實現方法32.3.1 小車前進功能設計32.3.2 小車旋轉功能設計42.3.3 小車偏移修正功能設計4第3章 詳細設計53.1 硬件設計與實現53.2 系統主程序流程63.3 功能模塊詳細設計63.3.1 起點到d點路線模塊設計63.3.2 d點到終點路線模塊設計73.3.3 終點到中心
2、點模塊設計83.3.4 中心點到起始點路線模塊設計8第4章 系統調試與操作說明104.1 系統調試104.1.1 硬件調試104.1.2 軟件調試104.1.3 軟硬件聯調104.2 調試中遇到的問題104.3 操作說明11第5章 總結和體會12參考文獻12附錄14第1章 需求分析1.1 設計題目 小車循跡控制系統設計1.2 設計目的 (1)掌握和鞏固所學的51單片機知識,加強對相關知識的理解和運用。 (2)學會運用所學的專業(yè)知識,提高對實際問題的解決能力。 (3)提高編程能力和加強團隊合作。1.3 設計任務及要求1.3.1 總體任務(1)完成硬件設計并連線,以mcs-51單片機為控制核心,根
3、據4個qti傳感器采集的數據控制舵機的運轉,進而控制車輪的速度和方向。(2)用c語言編程實現以下小車行駛線路:起始點中心點d點,旋轉360度紅色點,旋轉180度原路返回。小車前行時慢速行駛,小車返回時速度加快。1.3.2 個人任務 用c語言編程實現小車旋轉180度原路返回這一模塊功能設計和總體調試,當小車原路返回時,速度加快,在小車原理返回時,不斷修正小車的行駛路線。1.3.3 設計要求完成設計方案論證,硬件原理圖設計、電路建構、軟件編程、調試、運行以及使用說明文檔的建立等一整套工作任務。控制軟件使用c語言編程;系統聯調,提交一個滿足要求的小車循跡控制系統設計。1.4 硬件設備與開發(fā)工具1.4
4、.1 硬件設備 由at89s52單片機最小系統板、四個qti傳感器、兩個舵機、兩個車輪、一塊7.4v鋰電池、穩(wěn)壓電路板、isp下載線、面包板組成的小車一臺,windows xp操作系統pc機一臺。1.4.2 開發(fā)工具keilc51編程軟件、progisp下載器、串口調試小助手等軟件。第2章 概要設計2.1 總體方案設計硬件設計部分,根據設計任務書的要求,小車要根據指定的軌道完成不同的路線的選擇,小車在前進的過程中,需要識別路面信號,故采用四個qit傳感器來探測信號,通過不停的檢測與判斷來控制小車。小車的運動軌跡需由核心單片機來控制,由at89s52單片機最小系統板來進行設計實現。軟件設計部分,
5、將整個過程分為四個子模塊來實現,分別為起點到d點,d點到終點,終點到中心點,中心點到起始點。在運動過程中還需設計旋轉360度和180度的旋轉子模塊,當小車偏離軌跡候后,需設計修正子模塊。最后為了使小車停到指定區(qū)域,還需編寫停止子模塊。2.2 小車循跡原理小車循跡的原理主要是通過小車上的四個qit傳感器不斷地來探測信號,當傳感器探測到黑色時,則返回給系統為1的信號,反之,則返回給系統0的信號,通過傳感器探測的信號,在小車的行駛路線中來進行相應的處理。 小車在循跡時,可能會出現偏移的情況,這時就需要對小車軌跡進行修正處理,當四個qti傳感器信號狀態(tài)為0110時,則表明小車為正確為正確行駛路線,繼續(xù)
6、直線運動;如果四個qti傳感器信號狀態(tài)為0100或1000時判定小車右偏時,對小車路線進行作左修正;如果四個qti傳感器信號狀態(tài)為0010或0001時判定小車位左偏,對小車前進路線進行做修正,這樣經過不斷修正來實現小車的循跡前進。2.3 主要功能的設計原理及實現方法2.3.1 小車前進功能設計此模塊原理是向伺服電機輸出若干個pwm波,波形的占空比可控制小車移動,通過時間寬度和延時產生信號,作用于電機,從而控制其運動。在本次設計中,向伺服電機pwm波過程已經被模塊化在頭文件中,即motion()函數中,通過對motion()函數的三個參數進行設置來實現控制電機轉動從而控制小車前進。2.3.2 小
7、車旋轉功能設計小車旋轉的原理是調整兩輪的移動方式、速度及移動步數。當需旋轉360度時,將左輪設置為后退狀態(tài),右輪為前進狀態(tài),多次調試測出旋轉所需的步數,旋轉360度時步數設置為100,當需要旋轉180度時,只需修改旋轉步數為50即可。2.3.3 小車偏移修正功能設計 小車偏移修正功能即對小車傳感器信號狀態(tài)進行檢測并作出相應的處理的過程,在修正過程中偏移情況及其信號狀態(tài)如下: 當小車發(fā)生左偏移時,各傳感器狀態(tài)信號如下: 此時通過調節(jié)左右輪的速度來實現,左偏時調用motor_motion(1770, 1740,1)實現左輪前進速度大于左輪前進速度來實現向右偏移來對偏移進行修正。 當小車發(fā)生右偏移時
8、,各傳感器狀態(tài)信號如下: 此時通過調節(jié)坐游輪的速度來實現,右偏時調用motor_motion(1550, 1300,1),通過調節(jié)左右輪的速度,當右輪速度大于左輪速度進行修正。當小車發(fā)生偏移后,先判斷是哪邊偏移,然后根據不同的情況進行修正。修正原理是,當通過調節(jié)左右輪的速度來達到的。當左偏移時調用,當右偏移時,調用。直到掃描信號為0110時,停止修正。第3章 詳細設計3.1 硬件設計與實現 小車是由多個硬件零件組裝而成,每個零件負責不同的功能,根據設計任務和要實現的主要功能,來進行硬件設計。硬件設計原理圖如下: 圖3-1 硬件原理圖根據硬件原理圖,來進行硬件間的連線,系統接線圖如下: 圖3-2
9、 硬件接線圖3.2 系統主程序流程小車循跡不僅需要硬件的支持,也需要軟件支持,通過程序進行小車控制。本次系統設計采用模塊化思想進行設計,本系統設計了四個模塊,分別為起點到c點路線模塊、c點到終點路線模塊、終點到中心點模塊、中心點到起始點路線模塊。通過對每個功能模塊的調用實現系統要求的功能。系統主流程圖如下: 開 始調用起始點到d點的函數run_start()調dc點到終點的函數run_point()調用終點到中心點的函數run_middle()調用中心點到起始點的函數run_back() 結束 圖3-3 系統主程序流程圖3.3 功能模塊詳細設計3.3.1 起點到d點路線模塊設計起點到d點,主要
10、是從開始就前進,在前進過程中不停檢測傳感器傳過來的信號,通過判斷小車是否偏離路線后決定是否修正。如果檢測到0000信號,則執(zhí)行旋轉360度程序。設計函數run_start()來實現此模塊功能。程序流程圖如下: 進行修正d點結束偏移?旋轉360度是否到達d點開始 圖3-4 起點-d點模塊流程圖3.3.2 d點到終點路線模塊設計d點到終點,首先在旋轉360后,要向前沖出2步,繼續(xù)前行,前行過程中也進行檢測也修正,當遇到1001信號時,執(zhí)行旋轉180度。設計函數run_point(),其關鍵代碼為:if(p21_state()&(!p22_state()&(!p23_state()&p24_stat
11、e()motor_motion(1300,1300,40);程序流程圖如下: 偏移?旋轉180度進行修正結束是否到達終點d點開始 圖3-5 d點-終點流程圖3.3.3 終點到中心點模塊設計終點到中心點循跡過程中,不斷地通過傳感器檢測信號,進行路線修正。當第一次檢測到1111信號時,這表示已經到達中心點,將檢測次數i加1。設計函數run_middle();模塊程序流程圖如下:1111?次數增1繼續(xù)前進終點開始 圖3-6 終點中心點流程圖3.3.4 中心點到起始點路線模塊設計中心點到終點行駛過程中,不斷檢測信號,進行路線修正,當第二次檢測到1111信號時,調用一個死循環(huán),不停執(zhí)行時小車停止的方法m
12、otor_motion(1500, 1500,1)。代碼如下: while(1)motor_motion(1500,1500,1);設計函數run_back(),其流程圖如下圖: 1111?小車停止繼續(xù)前進中心點開始 圖3-6 終點-起始點程序流程圖第4章 系統調試與操作說明本系統的調試共分為三大部分:硬件調試、軟件調試和軟硬件聯調。由于在系統設計中采用模塊設計法,所以方便對各電路模塊功能進行逐級測試:單片機控制模塊的調試、紅外對管尋跡模塊的調試及電機控制模塊和停車控制模塊的調試,最后將各模塊組合后結合軟件進行整體測試。4.1 系統調試4.1.1 硬件調試 將小車組裝完成后,根據硬件接線圖將各
13、個部件進行連接,然后結合軟件共同實現,當連接單片機與電機控制芯片的i/0加上一定的電平可以實現電機左右轉向,前后轉向以及停止等功能,同時通過程序延時降低電機轉速。4.1.2 軟件調試將編好的程序進行調試,主要是檢查語法錯誤并確認硬件完整無誤。由于本系統是分模塊進行程序設計的,所以調試時先分模塊進行調試。如小車旋轉程序和軌道修正程序,在調試時將它放在一個子程序里單獨測試,看其是否能夠完成預定的功能,如能,測試通過,否則,修改并反復測試直到通過。 雖然在軟件的調試過程中,綜合利用了設定斷點、單步、跟蹤等調試手段,使得調試工作更易進行。但是也出現了一定的問題,如小車速度沒起到明顯效果等等。通過了多次
14、分離合并,方法得以解決,以及多次修改參數,達到綜合效果。4.1.3 軟硬件聯調各功能模塊都調試通過之后,將各個模塊連接起來與硬件結合進行聯合調試。在進行聯合調試時,經過反復的實驗,不斷的來修改參數來完善結果。使程序按照要求設計的要求進行。4.2 調試中遇到的問題 在調試過程中,遇到了不少的問題,其中在進行小車360度旋轉時,由于小車旋轉的步數不確定,小車旋轉的角度沒有達到360度或者超過了360度,導致傳感器接收到的信號發(fā)生偏差,影響后續(xù)的功能模塊的實現。4.3 操作說明將已編好的源程序,在keilc51中進行編譯生成.hex文件,然后通過isp下載線和progisp軟件將已生成的.hex文件
15、燒寫到單片機中。當燒寫成功后,拔掉下載線,然后在已設定好的路徑上,擺正小車的位置,打開小車上的開關。觀察小車是否按照預定的路徑進行行駛。第5章 總結和體會本次計算硬件綜合設計采用的是團隊合作方式進行設計的,每個成員負責不同的模塊設計。每個人都付出了自己的努力,通過這次課程設計,使我不僅了解團隊合作的重要和強大,一個人的知識面和精力是有限的,在團隊中每個人都發(fā)揮出自己的力量,當將所有人的力量集中起來后,就能將軟件設計的更完善。 雖然在硬件綜合設計期間正在緊張的考研復習階段,但是,自己還是堅持獨立完成了自己負責的模塊,雖然沒有親自進行硬件的設計,但是通過自己動手編寫程序并和小組成員程序的結合并調試
16、成功,自己還是從中學到了不少東西。其次,使我明白編寫一個好程序不易,需要不斷調試和修改,使程序不斷地完善。設計過程中,我也深刻地認識到程序設計必須首先分析清楚系統的業(yè)務邏輯,把業(yè)務邏輯轉化為代碼。其次是不怕麻煩,多次調試,不斷改進,軟硬件結合后就具有一定的探究性。在整個過程中我學會了怎樣將程序植入到芯片里去,怎么燒寫程序。參考文獻 1 沈德金,陳粵初mcs-51系列單片機接口電路與應用程序實例北京航空航天大學出版社,19902 李華mcs一51系列單片機實用接口技術m北京:航空航天大學出版社2003設計者: 操時力 日 期: 2011年12月30日設計過程中質疑(或答辯)記載:1. 小車返回時
17、,如何加快小車的速度?答:修改motor_motion()中的參數,調節(jié)左輪和右輪的速度。2. 調試過程中遇到的問題和解決方案答:進行小車360度旋轉時,由于小車旋轉的步數不確定,小車旋轉的角度沒有達到360度或者超過了360度,導致傳感器接收到的信號發(fā)生偏差,影響后續(xù)的功能模塊的實現。通過不斷地測試和修改后,得到旋轉360度所需的步數。指導教師評語:評分:簽名:2011年 12 月 30 日附錄#include #include global.h#include motion.h#include qti.h#include delay.h#define angle 50/180轉角#defi
18、ne mid 1500/不動輪速#define low_left 1550/左輪慢速#define low_right 1450/右輪慢速#define hig_left 1700/左輪快速#define hig_right 1300/右輪快速void run_stat1(int left,int right)while(1) motor_motion(left, right,1); if(p21_state()&p22_state()&p23_state()&p24_state()=1)break; else if(p22_state()&(!p23_state()|(p21_state()
19、&(!p22_state()&(!p23_state()&(!p24_state() motor_motion(1550, 1300,1); /左轉修正 else if(!p22_state()&p23_state()|(!p21_state()& (!p22_state()&(!p23_state()&p24_state() motor_motion(1700, 1450,1); /右轉修正 else continue;void run_stat2(int left,int right)while(1) motor_motion(left, right,1); if(!p21_state()
20、&(!p22_state()&(!p23_state()&(!p24_state()=1)break; else if(p22_state()&(!p23_state()|(p21_state()&(!p22_state()&(!p23_state()&(!p24_state() motor_motion(1550, 1300,1); /左轉修正 else if(!p22_state()&p23_state()|(!p21_state()& (!p22_state()&(!p23_state()&p24_state() motor_motion(1700, 1450,1); /右轉修正 els
21、e continue;void run_point(int left,int right) motor_motion(left,right,2);while(1)motor_motion(left,right,1); if(p21_state()&p22_state()&p23_state()&p24_state()break; else if(!p21_state()&p22_state()&p23_state()&p24_state()break; else if(p22_state()&(!p23_state()|(p21_state()&(!p22_state()&(!p23_state()&(!p24
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版市政道路建設碎石采購合同3篇
- 電動汽車充電樁安裝工程合同
- 酒店辭職報告(15篇)
- 救助申請書15篇
- 心理健康培訓教育心得體會
- 2024年電視顯微鏡項目可行性研究報告
- 北京藝術傳媒職業(yè)學院《中國古典建筑與園林》2023-2024學年第一學期期末試卷
- 2025版船舶運輸擔保服務合同終止協議書標準范本3篇
- 二零二五年度交通設施工程款包稅及維護保養(yǎng)協議3篇
- 2025版石材綠色供應鏈購銷合作協議3篇
- 2024有限空間作業(yè)安全培訓
- GB/T 44312-2024巡檢機器人集中監(jiān)控系統技術要求
- 統編版九下全冊古詩詞理解性默寫及答案
- 【市質檢】福州市2024-2025學年高三年級第一次質量檢測 物理試卷(含答案)
- CJT 195-2004 外層熔接型鋁塑復合管
- 工程圖學及計算機繪圖習題集
- 中國心力衰竭診斷和治療指南2024解讀
- 人教版三年級數學上冊第七單元《長方形和正方形》(大單元教學設計)
- DBJ50-T-417-2022 建筑施工高處墜落防治安全技術標準
- 五年級上冊英語教案-Unit 4 Lesson 21 What Year Is It-冀教版
- 學年上學期期末職業(yè)高中高二年級數學練習試卷3
評論
0/150
提交評論