機電課程設計報告匯總_第1頁
機電課程設計報告匯總_第2頁
機電課程設計報告匯總_第3頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、機電測控綜合訓練課程設計報告姓 名:梁志開班 級:機實 1001 班學 號: U201010585 指導老師:何嶺松陶凌陽林向南時間: 2014 年 3 月 7 日目錄一、設計背景···································

2、····二、設計內(nèi)容·······································三、程序框圖·····

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

4、························五、設計小結·························

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

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

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

8、南 車帶來安全問題,因此,本指南車又使用超聲波傳感器進行距離測量,當測量到與障礙物的距離達到危險距離的時候, 程序控制指南車停止 行駛,保障指南車的安全,是為安全指南車。 本次安全指南車的設計過程總共設計到三個設計內(nèi)容, 分別由本 組的 3 個人分別承擔完成。三個設計內(nèi)容包括傳感器測控電路的設 計、制作、調試(由本組的王健同學完成) ,單片機測控程序的設計、 編寫、調試(由本組的梁志開同學完成) ,LabView 測控程序的設計、 編寫、調試(由本組的梅志遠同學完成) 。下面的報告內(nèi)容將著重介紹由我自己完成的 keil 單片機 C 程序 的設計內(nèi)容。三、程序框圖 任何程序的設計首先都需要進行程

9、序思路的探索,本次課程設 計的安全指南車也經(jīng)過了這一過程。 下圖為安全指南車的程序思路流程圖指南針指南程超聲波傳感器測 距程判斷與障礙物的距離大于危險距離 小于危險距離如上圖可以知道本次設計的安全指南車的程序思路流程, 首先小 車執(zhí)行指南針指南程序, 能夠在任意方位都轉成朝南方行駛, 接著執(zhí) 行超聲波測距程序,持續(xù)與前方物體經(jīng)行距離測量,遇到障礙物時, 如果行駛至距離障礙物的安全距離以內(nèi)時, 單片機程序控制舵機停止 轉動進而使小車停止行駛,從而保證指南車的安全。有了程序思路流程圖之后, 就需要設計正規(guī)的程序框圖, 下面即四、程序編寫本部分內(nèi)容僅介紹幾個重要部分的程序編寫內(nèi)容, 更加完整 的單片

10、機程序將會在第六節(jié)程序附件中展示。、 指南針坐標值獲取程序由指南針傳感器的工作原理可知, 指南針的指南原理即算出地 磁場的坐標在指南針所處位置坐標上的坐標值、 ,經(jīng)過 angle = arctan(-y/x) 的計算即可算出方向角 的值。因此,必須首先獲 得、的值。、 指南車指南程序經(jīng)過計算得出 值之后,再轉化為弧度即得到角度的測量。 然 后通過語句判斷不同角度情況下調用不同的運動函數(shù) (因為指南 針傳感器安裝時其前方并非對著車前方, 而是有度的偏離, 故在 程序中看到的判斷角度與之前程序框圖的角度有度的偏離) 。指 南車轉向南方之后便跳出循環(huán),進入()函數(shù)即超聲波距離測 量函數(shù)。、 超聲波測

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

12、械改善生活美化生活的樂 趣。下面就說一說在承擔這個項目程序編寫中遇到的幾個問 題以及解決方法吧。、 完全指南無法實現(xiàn)因為本程序是每次測量之后會調用相關的運動函數(shù), 故存在一個 最小的運動角,所以本程序有南方左右誤差 10 度。、如何提高指南車的運動精度與運動平穩(wěn)性 同上,提高的方法有兩個:減小最小運動角,減小方向誤差角 度。六、程序附件以下是完整的程序。#include<AT89X52.h>#include<uart.h> #include<math.h>#include <stdio.h>#include<intrins.h>#in

13、clude "serial.h"#include "boebot.h"#define SIG P3_2#define HIGH_ENP2_2 = 1#define LOW_EN P2_2 = 0#define Reset 0x00#define Measure 0x08#define Report 0x0C#define Ready 0x0C#define NegMask 0xF800 int succeed_flag,test,timeH,timeL,time,distance;double angle;int flag=0;int x;int y;i

14、nt counter;int 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;d

15、elay_nms(200);void Left_Turn(void)for(counter=1;counter<=5;counter+)/ 向左轉 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+)/ 向右轉 1/4 圈 P1_1=1;delay_nus(1700);P1_1=0;P1_0=1; delay_nus(1700);P1_0=0; delay_nms(

16、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()/ 定時器 0 用于測量脈沖寬度TMOD |= 0x01;TF0 = 0;TR0 = 0;IT0 = 0;/ 定時器 1 為工作模式 1(16 位自動重裝模式 )/ 溢出標志清零/ 開啟定時器 , 但定時器的觸發(fā)由 /INT0 決定/ 外部中斷由低電平觸發(fā) ,也可設置為 1, 用下降沿

17、觸發(fā),而在此時,是高電平;ET0 = 1;EA = 1;/ 允許定時器 0 中斷/ 全局允許中斷/ 定時器 1 用于硬件串口通信TMOD |= 0x20; /SCON = 0x50; /TH1 = 0xFD; /TL1 = 0xFD;TR1 = 1; /TI = 1;定時器 0 方式 2.8 位自動重裝模式 模式 1,8 位數(shù)據(jù)波特率為 9600起動定時器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_

18、flag=0;SIG=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();void ex

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

溫馨提示

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

評論

0/150

提交評論