機(jī)電課程設(shè)計(jì)報(bào)告_第1頁
機(jī)電課程設(shè)計(jì)報(bào)告_第2頁
機(jī)電課程設(shè)計(jì)報(bào)告_第3頁
機(jī)電課程設(shè)計(jì)報(bào)告_第4頁
機(jī)電課程設(shè)計(jì)報(bào)告_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、機(jī)電測(cè)控綜合訓(xùn)練課程設(shè)計(jì)報(bào)告 姓 名:梁志開班 級(jí):機(jī)實(shí)1001班學(xué) 號(hào):U201010585 指導(dǎo)老師:何嶺松 陶凌陽 林向南 時(shí) 間:2014年3月7日 目錄一、 設(shè)計(jì)背景···································&#

2、183;···二、 設(shè)計(jì)內(nèi)容·······································三、 程序框圖·····

3、··································四、 程序編寫···············

4、;························五、 設(shè)計(jì)小結(jié)························

5、3;··············六、 程序附件··································

6、83;····一、 設(shè)計(jì)背景本次課程設(shè)計(jì)名為機(jī)電測(cè)控綜合訓(xùn)練課程設(shè)計(jì),以課程提供的測(cè)控實(shí)踐平臺(tái)的實(shí)驗(yàn)條件為基礎(chǔ),自選一個(gè)機(jī)電測(cè)控方面的題目,在3周時(shí)間內(nèi)完成一個(gè)小型機(jī)電測(cè)控系統(tǒng)的設(shè)計(jì)與制作工作。課程設(shè)計(jì)旨在幫助我們了解和掌握機(jī)電測(cè)控產(chǎn)品設(shè)計(jì)、開發(fā)的實(shí)施過程和主要環(huán)節(jié),培養(yǎng)根據(jù)工程任務(wù),綜合應(yīng)用四年所學(xué)光、機(jī)、電、計(jì)算機(jī)等知識(shí),提出解決方案、實(shí)施解決方案、完成工程任務(wù)的能力以及理論聯(lián)系實(shí)際的設(shè)計(jì)思想和解決工程實(shí)際問題的能力。本次課程設(shè)計(jì)所選的機(jī)器人小車為德普施科技有限公司生產(chǎn)的寶貝車機(jī)器人,采用的51單片機(jī)問8位的AT89S52單片機(jī),可反復(fù)擦寫1000次

7、,配置十分靈活,可擴(kuò)展性強(qiáng)。二、 設(shè)計(jì)內(nèi)容根據(jù)本次課程設(shè)計(jì)的宗旨與條件,我們組經(jīng)過思考確定了設(shè)計(jì)項(xiàng)目,即安全指南車。本組安全指南車的項(xiàng)目采用的機(jī)器人小車為德普施科技有限公司友情提供的寶貝車機(jī)器人,采用AT89S52單片機(jī)對(duì)小車輪上的舵機(jī)進(jìn)行控制,傳感器使用的是HM55B指南針模塊和超聲波傳感器各一個(gè)。經(jīng)過硬件的組裝與調(diào)試之后,通過HM55B指南針模塊能夠?qū)υ撥囘M(jìn)行持續(xù)不斷的角度測(cè)量,并通過舵機(jī)控制使該樣車實(shí)現(xiàn)在初始方向任意的情況下均能自動(dòng)轉(zhuǎn)向,最終指向南方行駛;接著,又考慮到指南車在一直朝南行駛的途中可能會(huì)撞到障礙物,會(huì)給指南車帶來安全問題,因此,本指南車又使用超聲波傳感器進(jìn)行距離測(cè)量,當(dāng)測(cè)量

8、到與障礙物的距離達(dá)到危險(xiǎn)距離的時(shí)候,程序控制指南車停止行駛,保障指南車的安全,是為安全指南車。本次安全指南車的設(shè)計(jì)過程總共設(shè)計(jì)到三個(gè)設(shè)計(jì)內(nèi)容,分別由本組的3個(gè)人分別承擔(dān)完成。三個(gè)設(shè)計(jì)內(nèi)容包括傳感器測(cè)控電路的設(shè)計(jì)、制作、調(diào)試(由本組的王健同學(xué)完成),單片機(jī)測(cè)控程序的設(shè)計(jì)、編寫、調(diào)試(由本組的梁志開同學(xué)完成),LabView測(cè)控程序的設(shè)計(jì)、編寫、調(diào)試(由本組的梅志遠(yuǎn)同學(xué)完成)。下面的報(bào)告內(nèi)容將著重介紹由我自己完成的keil單片機(jī)C程序的設(shè)計(jì)內(nèi)容。三、 程序框圖任何程序的設(shè)計(jì)首先都需要進(jìn)行程序思路的探索,本次課程設(shè)計(jì)的安全指南車也經(jīng)過了這一過程。下圖為安全指南車的程序思路流程圖。指南針指南程序超聲波

9、傳感器測(cè)距程序判斷與障礙物的距離小于危險(xiǎn)距離大于危險(xiǎn)距離停止行駛朝南行駛?cè)缟蠄D可以知道本次設(shè)計(jì)的安全指南車的程序思路流程,首先小車執(zhí)行指南針指南程序,能夠在任意方位都轉(zhuǎn)成朝南方行駛,接著執(zhí)行超聲波測(cè)距程序,持續(xù)與前方物體經(jīng)行距離測(cè)量,遇到障礙物時(shí),如果行駛至距離障礙物的安全距離以內(nèi)時(shí),單片機(jī)程序控制舵機(jī)停止轉(zhuǎn)動(dòng)進(jìn)而使小車停止行駛,從而保證指南車的安全。開始有了程序思路流程圖之后,就需要設(shè)計(jì)正規(guī)的程序框圖,下面即安全指南車的程序框圖。初始化測(cè)量角度10°<<0°其他角度180°<350°右轉(zhuǎn)前進(jìn)左轉(zhuǎn)測(cè)量距離>停止前進(jìn)四、 程序編寫本

10、部分內(nèi)容僅介紹幾個(gè)重要部分的程序編寫內(nèi)容,更加完整的單片機(jī)程序?qū)?huì)在第六節(jié)程序附件中展示。、 指南針坐標(biāo)值獲取程序由指南針傳感器的工作原理可知,指南針的指南原理即算出地磁場(chǎng)的坐標(biāo)在指南針?biāo)幬恢米鴺?biāo)上的坐標(biāo)值、,經(jīng)過angle = arctan(-y/x)的計(jì)算即可算出方向角的值。因此,必須首先獲得、的值。、 指南車指南程序經(jīng)過計(jì)算得出值之后,再轉(zhuǎn)化為弧度即得到角度的測(cè)量。然后通過語句判斷不同角度情況下調(diào)用不同的運(yùn)動(dòng)函數(shù)(因?yàn)橹改厢槀鞲衅靼惭b時(shí)其前方并非對(duì)著車前方,而是有度的偏離,故在程序中看到的判斷角度與之前程序框圖的角度有度的偏離)。指南車轉(zhuǎn)向南方之后便跳出循環(huán),進(jìn)入()函數(shù)即超聲波距離測(cè)

11、量函數(shù)。、 超聲波測(cè)距程序先經(jīng)過初始化,然后在信號(hào)端給觸發(fā)信號(hào)使超聲波傳感器發(fā)射超生波,然后經(jīng)反射回來的超聲波測(cè)出超聲波反射時(shí)間,進(jìn)而通過公式算出距離,然后判斷與障礙物之間的距離,若距離大于安全距離則繼續(xù)向前行駛,并繼續(xù)重復(fù)超聲波測(cè)距的程序,反之若小于安全距離則調(diào)用停止程序,并跳出超聲波測(cè)距的循環(huán)程序。五、 設(shè)計(jì)小結(jié)通過為期周的機(jī)電測(cè)控綜合訓(xùn)練課程設(shè)計(jì),我認(rèn)為自己在復(fù)習(xí)以前學(xué)過的知識(shí)的同時(shí),也讓我學(xué)到了不少工科生所應(yīng)該具備的能力,動(dòng)手實(shí)踐的能力、團(tuán)隊(duì)合作的能力、與人溝通的能力等等。在順利完成本次課程設(shè)計(jì)的同時(shí),也讓我感受到學(xué)習(xí)機(jī)械的樂趣,將機(jī)械知識(shí)運(yùn)用在實(shí)際生活?yuàn)蕵分械臉啡ぃ\(yùn)用機(jī)械改善生活美

12、化生活的樂趣。下面就說一說在承擔(dān)這個(gè)項(xiàng)目程序編寫中遇到的幾個(gè)問題以及解決方法吧。、 完全指南無法實(shí)現(xiàn)因?yàn)楸境绦蚴敲看螠y(cè)量之后會(huì)調(diào)用相關(guān)的運(yùn)動(dòng)函數(shù),故存在一個(gè)最小的運(yùn)動(dòng)角,所以本程序有南方左右誤差10度。 、如何提高指南車的運(yùn)動(dòng)精度與運(yùn)動(dòng)平穩(wěn)性 同上,提高的方法有兩個(gè):減小最小運(yùn)動(dòng)角,減小方向誤差角度。六、 程序附件以下是完整的程序。#include<AT89X52.h>#include<uart.h>#include<math.h>#include <stdio.h>#include<intrins.h>#include "

13、serial.h"#include "boebot.h"#define SIG P3_2#define HIGH_EN P2_2 = 1#define LOW_ENP2_2 = 0#define Reset 0x00#define Measure 0x08#define Report 0x0C#define Ready 0x0C#define NegMask 0xF800int succeed_flag,test,timeH,timeL,time,distance;double angle;int flag=0;int x;int y;int counter;in

14、t radian;int degrees;double angle;void Stop(void) for(counter=1;counter<=5;counter+) /停止 P1_1=1; delay_nus(1500); P1_1=0; P1_0=1; delay_nus(1500); P1_0=0; delay_nms(20); void For_Ward(void) for(counter=1;counter<=5;counter+) /向前 P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0;

15、 delay_nms(200); void Left_Turn(void) for(counter=1;counter<=5;counter+)/向左轉(zhuǎn)1/4圈 P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); void Right_Turn(void) for(counter=1;counter<=5;counter+)/向右轉(zhuǎn)1/4圈 P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; d

16、elay_nms(20); void Back_Ward(void) for(counter=1;counter<=5;counter+)/向后退 P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1700); P1_0=0; delay_nms(20); void IO_init()/定時(shí)器0用于測(cè)量脈沖寬度TMOD |= 0x01;/定時(shí)器1為工作模式1(16位自動(dòng)重裝模式)TF0 = 0;/溢出標(biāo)志清零TR0 = 0;/開啟定時(shí)器,但定時(shí)器的觸發(fā)由/INT0決定 IT0 = 0;/外部中斷由低電平觸發(fā),也可設(shè)置為1,用下降沿觸發(fā),

17、而在此時(shí),是高電平;ET0 = 1;/允許定時(shí)器0中斷 EA = 1;/全局允許中斷/定時(shí)器1用于硬件串口通信TMOD |= 0x20; /定時(shí)器0方式2.8位自動(dòng)重裝模式SCON = 0x50; /模式1,8位數(shù)據(jù)TH1 = 0xFD; /波特率為9600TL1 = 0xFD;TR1 = 1; /起動(dòng)定時(shí)器TI = 1;void dis() IO_init(); test=0; timeH=0; timeL=0; SIG = 0; while(1) EA=0; SIG = 1; delay_nus(5); SIG = 0; delay_nus(750); succeed_flag=0; SI

18、G=1; EA=1; EX0=1; TH0=0; TL0=0; TF0=0; TR0=1; delay_nms(20); TR0=0; EX0=0; if(succeed_flag=1) time=timeH*256+timeL; distance=time/58; printf("The distance is "); printf("%d cm.n",distance); if(distance>=10) For_Ward(); else if(distance<10) Stop(); break; while(1) Stop();voi

19、d exter() interrupt 0 timeH=TH0; timeL=TL0; succeed_flag=1; EX0=0;void timer0() interrupt 3 TH0=0; TL0=0;void Compass_Get_Axes()unsigned char status;x = 0x0000;y = 0x0000; HIGH_EN; /EN為低電平有效LOW_EN;ShiftOut(MSBFIRST, Reset, 4); /輸入Reset指令,并執(zhí)行HIGH_EN;LOW_EN;ShiftOut(MSBFIRST, Measure, 4); /輸入測(cè)量指令,測(cè)量status = 0;do HIGH_EN; LOW_EN; ShiftOut(MSBFIRST, Report,

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論