機器人小車概況_第1頁
機器人小車概況_第2頁
機器人小車概況_第3頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、機器人 小車隊員:劉汝磊、陳 齊、談仲武 陳喜、吳天威、沈博偉、孟杰單位:黃山學院指導老師:孫中勝2008年 7月 14日機器人小車摘 要:本系統(tǒng)以 89C52 單片機為核心,輔以步進電機、 LCD 顯示、 紅外傳感器和觸須傳感器數(shù)據(jù)采集等電路組成, 實現(xiàn)了機 器人小車的前后行走、左右轉(zhuǎn)彎、靈巧避障,尋軌行走、 LCD 顯示等功能。 避障采用了紅外避障和觸須避障兩種方案, 能更好 且更精確的避開障礙物。 使用 LCD 顯示, 豐富小車功能和構(gòu)造。Abstract: The system is designed to construct a wiredmonitor system of a ma

2、ster station controlling multiple slave stations,with a micro-controller 89C52 as the key, complimented by stepper motordrive, LCD display, infrared sensors and sensor data acquisition tentacles, and other circuit components, to achieve a robot walking around the car, turning around, ingenious obsta

3、cle avoidance, look for tracks Walking, LCD display, and other functions. Obstacle avoidance of the use of infrared obstacle avoidance and tentacles obstacle avoidance two programmes, better and more precise to avoid obstacles. The use of LCD display, rich car functions and structure.功能與方案1、前后行走與左右轉(zhuǎn)

4、彎小車行走是依靠左右邊的兩個伺服電機,伺服電機的工作原理 與普通的電機不通,它的動力來源于不同頻率的脈沖。在這里,給它 1.3ms左右的脈沖時,它就正轉(zhuǎn),如圖 1 所示。給它 1.5ms左右的脈 沖時,它就靜止,如圖 2所示。給它 1.7ms左右的脈沖時,它就反轉(zhuǎn), 如圖 3 所示。圖1 1.3 ms的控制脈沖序列使電機順時針全速旋轉(zhuǎn)圖 2 電機轉(zhuǎn)速為零的控制信號時序圖圖 3 1.7ms的連續(xù)脈沖序列使電機逆時針全速旋轉(zhuǎn)伺服電機與單片機的連接如圖 4 所示:圖4 伺服電機的連線原理圖 (左) 和實際接線示意圖 (右)不同頻率的脈沖是由單片機通過編程送出,如程序一所示:程序一:while(1)P

5、1_0=1;/P1_0輸出高電平delay_nus(1500); / 延時 1.5msP1_0=0;/P1_0輸出低電平delay_nus(20000); / 延時 20ms(伺服電機靜止)while(1)P1_0=1;/P1_0輸出高電平delay_nus(1300); / 延時 1.3msP1_0=0;/P1_0輸出低電平delay_nus(20000); / 延時 20ms(伺服電機正轉(zhuǎn) )P1_0=1;/P1_0輸出高電平delay_nus(1700); / 延時 1.7msP1_0=0;/P1_0輸出低電平delay_nus(20000); / 延時 20ms伺服電機反轉(zhuǎn) ) 機器人

6、小車的轉(zhuǎn)彎是通過讓一個伺服電機轉(zhuǎn)動, 另一個不轉(zhuǎn)或是反轉(zhuǎn) 來實現(xiàn)的 。2、機器人小車的避障功能 避障采取了兩種方案,一種是紅外避障,另一種是觸須避障。a、紅外避障 要想讓紅外接收裝置最大范圍地接收到反射回來的信號, 就一定要調(diào)整探頭和接收裝置的角度問題, 盡量讓它們工作在同 一條直線上。 有兩種方法可以控制紅外的探測范圍, 一種是軟件 方法, 一種是硬件方法。 軟件方法是通過程序修改紅外的發(fā)射頻 率,從而達到控制探測范圍的效果, 硬件方法是在紅外發(fā)射裝置 上接上一個電阻,便會減小紅外探測范圍,電阻越大,紅外探測 也就越小。紅外探測電路如圖 5 所示:圖5例小車左紅外探測如程序二:程序二:#in

7、clude<BoeBot.h>#include<uart.h>int P1_2state(void)return (P1&0x04)?1:0;int main(void)int counter;int irDetectLeft;uart_Init();printf("Program Running!n");while(1)for(counter=0;counter<38;counter+)P1_3=1;delay_nus(13);P1_3=0;delay_nus(13); irDetectLeft=P1_2state(); printf

8、("irDetectLeft=%dn",irDetectLeft); delay_nms(100);b、觸須探測: 觸須也是相當于一個開關(guān)作用,當遇到障礙物變形后,便會觸 碰到觸須附近的彈片, 這樣就相當于形狀閉合, 電路接通后便會送出 一個信號到我們小車上的單片機上, 單片機經(jīng)過處理后, 送出一個信 號到伺服電機,告訴前方有障礙物,需要轉(zhuǎn)彎,這樣就完成了小車避 障的功能觸須探測電路 如圖 6:圖6觸須探測如程序三:程序三:#include<BoeBot.h>#include<uart.h> int P1_4state(void)/ 獲取 P1_4

9、的狀態(tài)return (P1&0x10)?1:0;int P2_3state(void)/ 獲取 P2_3 的狀態(tài)return (P2&0x08)?1:0;int main(void)uart_Init();printf("WHISKER STARTESn");while(1)printf(" 右邊胡須的狀態(tài) :%d ",P1_4state();printf(" 左邊胡須的狀態(tài) :%dn",P2_3state(); delay_nms(150);3、小車尋軌軌道是用黑色絕緣在白色紙板上做成的一個 U 字型軌道。利用 紅外

10、識別軌道,紅外遇到白紙被反射,遇到黑色軌道就被吸收。在小 車的前端左右兩邊分別有一個紅外探測器, 當小車的紅外接收裝置接 收到反射回來的信號時, 小車就直走, 當紅外接收裝置沒有接收到信 號時,小車就轉(zhuǎn)彎,左邊接收到就左轉(zhuǎn)彎,右邊接收到就右轉(zhuǎn)彎。這 樣就可以讓小車尋著軌道行走了。軌道如圖 7 所示:圖7尋軌如程序四: 程序四: #include <BoeBot.h> #include <uart.h>#define LeftIR#define RightIR#define LeftLaunch#define RightLaunchP3_5P1_3P3_6P1_2/ 左邊

11、紅外接受連接到 P1_2/右邊紅外接收連接到 P3_5/左邊紅外發(fā)射連接到 P1_3/右邊紅外發(fā)射連接到 P3_6#define Kpl 70#define Kpr -70#define SetPoint 3#define CenterPulse 1500unsigned int time;int leftdistance,rightdistance;/ 左邊和右邊的距離int delayCount,distanceLeft,distanceRight,irDetectLeft,irDetectRight; unsigned int frequency5=29370,31230,33050,3

12、5700,38460;void timer_init(void)IE=0x82;TMOD |= 0X01;void FreqOut(unsigned int Freq)time = 256 - (50000/Freq);TH0 = 0XFF ;TL0 = time ;TR0 = 1;delay_nus(800);TR0 = 0;void Timer0_Interrupt(void) interrupt 1LeftLaunch = LeftLaunch;RightLaunch= RightLaunch;TH0 = 0XFF;TL0 = time;void Get_lr_Distances()un

13、signed char count;leftdistance = 0;rightdistance = 0;for(count = 0;count<5;count+)FreqOut(frequencycount);/開總中斷 EA,允許定時器 0中斷 ET0/定時器 0 工作在模式 1:16 位定時器模式/初始化左邊的距離/初始化右邊的距離irDetectRight = RightIR; irDetectLeft = LeftIR; if (irDetectLeft = 1)leftdistance+;if (irDetectRight = 1) rightdistance+;void S

14、end_Pulse(unsigned int pulseLeft,unsigned int pulseRight)P1_1=1;delay_nus(pulseLeft);P1_1=0;P1_0=1;delay_nus(pulseRight);P1_0=0;delay_nms(18);int main(void)unsigned int pulseLeft,pulseRight;uart_Init();timer_init();/printf("Progam Running!n");/printf("FREQENCY ETECTEDn");while(1)

15、Get_lr_Distances(); pulseLeft=(SetPoint-leftdistance)*Kpl+CenterPulse; pulseRight=(SetPoint-rightdistance)*Kpr+CenterPulse; printf("distanceLeft=%d distanceRight=%dn", leftdistance, rightdistance); Send_Pulse(pulseLeft,pulseRight);4、 LCD 顯示功能這一功能是為了讓小車更加的智能化。 具體的功能是: 顯 示小車動作的命令, 例如:小車要左轉(zhuǎn)彎,

16、 LCD 就顯示 turn left, 右轉(zhuǎn)彎顯示 turn right 前進顯示 forward.LCD 顯示有如程序五:程序五:#include <at89x52.h>#include <BoeBot.h>#include <LCD.h>void Forward(void)int i;for(i=1;i<=65;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1300);P1_0=0;delay_nms(20);void Left_Turn(void)int i;for(i=1;i<=26;

17、i+)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)int i;for(i=1;i<=26;i+)P1_1=1;delay_nus(1700);P1_1=0;P1_0=1;delay_nus(1700);P1_0=0;delay_nms(20);void Backward(void)int i;for(i=1;i<=65;i+)P1_1=1;delay_nus(1300);P1_1=0;P1_0=1;delay_nus(1700);P1_0

18、=0;delay_nms(20);int main(void)charNavigation10='F','L','F','F','R','B','L','B','B ','Q'int address=0;LCM_Init();while(Navigationaddress!='Q')switch(Navigationaddress)case 'F':Forward();Display_List_Char(0,0,"case:F");Display_List_Char(1,0,"Forward ");delay_nms(500) break;case 'L':Left_Turn();Display_List_Char(0,0,"case:L");Display_List_Char(1,0,"Turn Left ");delay_nms(500);break;case 'R':Rig

溫馨提示

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

評論

0/150

提交評論