Đồ án Robot dò line

Giới thiệu .4

I. Tổng quan .4

1. Cấu trúc 4

2. Hệthống điều khiển .4

3. Sơ đồnguyên lý hệthống điều khiển .5

II. Hoạt động 7

1. Đặc tả đường đua .7

2. Hoạt động của động cơServo 10

3. Hoạt động của sensor .11

4. Giải thuật 12

5. Code điều khiển .13

III. Ứng dụng, hạn chếvà hướng giải quyết .28

pdf28 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 1939 | Lượt tải: 5download
Tóm tắt nội dung Đồ án Robot dò line, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
CR1L=0xff; 
 } 
//----------------------------------- 
 void set_pwm1A(int duty1A) 
 { 
 OCR1AH=0x00; 
 OCR1AL=(duty1A); 
 } 
//----------------------------------- 
 void set_pwm1B(int duty1B) 
 { 
 OCR1BH=0x00; 
 OCR1BL=(duty1B); 
 } 
//----------------------------------- 
 void SPEED(int L, int R) 
 { 
 set_pwm1A(R-8); 
 set_pwm1B(L); 
 } 
//----------------------------------- 
Đồ án môn học 1 Page 15 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
/* 
>>>>>DAO CHIEU DONG CO<<<<<< 
*/ 
//----------------------------------- 
 void DAO_A() 
 { 
 PORTD.5=~PORTD.5; 
 PORTD.6=~PORTD.6; 
 } 
//----------------------------------- 
 void DAO_B() 
 { 
 PORTD.7=~PORTD.7; 
 PORTB.0=~PORTD.0; 
 } 
//----------------------------------- 
//**********CHUYEN LINE********/ 
 void CHUYEN_PHAI() 
 { 
 while (1) 
 { 
 if (PINC==0x0c) x=0;//STRANGE 
 if (PINC==0x18) x=-18;//LEFT 18 
 if (PINC==0x06) x= 18;//RIGHT 18 
 if (PINC==0x00) //CHANGE LANE 
 { 
 x= 18; 
Đồ án môn học 1 Page 16 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 SPEED(235,160); 
 while(1) 
 { 
 if (PINC.1==1) 
 { x=-65; 
 SPEED(160,200); 
 delay_ms(90); 
 break; 
 } 
 } 
 break; 
 } 
 } 
 } 
//----------------------------------- 
 void CHUYEN_TRAI() 
 { 
 while(1) 
 { 
 if (PINC==0x0c) x=0; //STRANGE 
 if (PINC==0x18) x=-18; //LEFT 18 
 if (PINC==0x06) x= 18; //RIGHT 18 
 if (PINC==0x00) //CHANGE LANE 
 { 
 x= -18; 
 SPEED(160,235); 
 while(1) 
 { 
Đồ án môn học 1 Page 17 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 if(PINC.4==1) 
 { 
 x=65; 
 SPEED(210,160); 
 delay_ms(90); 
 break; 
 } 
 } 
 break; 
 } 
 } 
 } 
//----------------------------------- 
 void BE90() 
 { 
 SPEED(190,190); 
 DAO_A(); 
 DAO_B(); 
 SPEED(220,220); 
 delay_ms(230); 
 SPEED(190,190); 
 DAO_A(); 
 DAO_B(); 
 while(1) 
 { 
 if (PINC==0x18) x=-10;//LEFT 10 
 else if (PINC==0x06) x= 10;//RIGHT 10 
 else x=x; 
Đồ án môn học 1 Page 18 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 //------------------------------------------ 
 if 
 (PINC==0x3c||PINC==0x38||PINC==0x3e||PINC.5==1) 
 { 
 while(1) 
 { 
 if(PINC==0x00) 
 { 
 x= -65; 
 DAO_B(); 
 //Be sang trai 90 
 SPEED(200,245); 
 delay_ms(280); 
 SPEED(180,200); 
 while(1) 
 { 
 if(PINC.4==1) 
 { 
 DAO_B(); 
 break; 
 } 
 } 
 break; 
 } 
 } 
 break; 
 } 
 //------------------------------------------ 
Đồ án môn học 1 Page 19 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 if 
 (PINC==0x0f||PINC==0x07||PINC==0x1f||PINC.0==1) 
 { 
 while(1) 
 { 
 if(PINC==0x00) 
 { 
 x= 65; 
 DAO_A(); 
 //Be sang phai 90 
 SPEED(245,200); 
 delay_ms(280); 
 SPEED(200,180); 
 while(1) 
 { 
 if(PINC.3==1) 
 { 
 DAO_A(); 
 break; 
 } 
 } 
 break; 
 } 
 } 
 break; 
 } 
 } 
Đồ án môn học 1 Page 20 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 } 
/************************************************ 
*****Be goc***** 
Phai(0 -> 90); trai(0 -> -90) 
1485===>>>Giua 
 2200 >>> Phai 
 550 >>> Trai 
*************************************************/ 
//>>>>>>>>>>>>>Ngat tran timer0<<<<<<<<<<<<<<<<<<<// 
 interrupt [TIM0_OVF] void timer0_ovf_isr(void) 
 { 
 TCNT0=0x12; 
 switch (x) 
 { 
 case (0): 
 PORTD.4=1; 
 delay_us(1485); 
 PORTD.4=0; 
 break; 
 case (10): 
 PORTD.4=1; 
 delay_us(1573); 
 PORTD.4=0; 
 break; 
 case (18): 
 PORTD.4=1; 
 delay_us(1590); 
 PORTD.4=0; 
Đồ án môn học 1 Page 21 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 break; 
 case (20): 
 PORTD.4=1; 
 delay_us(1620); 
 PORTD.4=0; 
 break; 
 case (25): 
 PORTD.4=1; 
 delay_us(1800); 
 PORTD.4=0; 
 break; 
 case (45): 
 PORTD.4=1; 
 delay_us(1790); 
 PORTD.4=0; 
 break; 
 case (65): 
 PORTD.4=1; 
 delay_us(2040); 
 PORTD.4=0; 
 break; 
 case (-10): 
 PORTD.4=1; 
 delay_us(1470); 
 PORTD.4=0; 
 break; 
 case (-18): 
 PORTD.4=1; 
Đồ án môn học 1 Page 22 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 delay_us(1387); 
 PORTD.4=0; 
 break; 
 case (-20): 
 PORTD.4=1; 
 delay_us(1347); 
 PORTD.4=0; 
 break; 
 case (-25): 
 PORTD.4=1; 
 delay_us(1167); 
 PORTD.4=0; 
 break; 
 case (-45): 
 PORTD.4=1; 
 delay_us(1090); 
 PORTD.4=0; 
 break; 
 case (-65): 
 PORTD.4=1; 
 delay_us(940); 
 PORTD.4=0; 
 break; 
 } 
 } 
//----------------------------------------------------------------- 
 void main(void) 
Đồ án môn học 1 Page 23 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 { 
 PORTD.5=1; //Dieu khien cau H1 
 PORTD.6=0; 
 //------------------------- 
 //----DIEU KHIEN DONG CO------ 
 PORTD.7=1; //Dieu khien cau H2 
 PORTB.0=0; 
 //------------------------- 
 PORTB.1=0; 
 PORTB.2=0; 
 DDRB=0x07; 
 DDRC=0x00; 
 PORTD.4=0; 
 PORTD.2=1; 
 PORTD.3=1; 
 DDRD=0xf0; 
 //------------------------- 
 /*>>>>>Setup Timer0<<<<<<<<*/ 
 TCNT0=0x12; //Start at 18 >>> count time = 236*85us=20.06ms 
 TCCR0=0x05; //MODE CLOCK/1024 
 //------------------------- 
 //INTERRUPTS 
 TIMSK=0x01; //Cho phep ngat ngoai 
 #asm ("sei") 
 //-------PWM--------------- 
 setup_pwm(); 
 //------------------------- 
 while (1) 
Đồ án môn học 1 Page 24 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 { 
 if(PIND.2==0) 
 { 
 x= 0; 
 SPEED(230,230); 
 delay_ms(50); 
 SPEED(250,250); 
 delay_ms(50); 
 SPEED(230,230); 
 delay_ms(50); 
 while(1) 
 { 
 switch(PINC) 
 { 
 /********************************************************* 
 >>>>>>>>>>>>>>>>>> NORMAL<<<<<<<<<<<<<<<<< 
 *********************************************************/ 
 case (0x0c): // (001100) 
 x=0; 
 SPEED(215,215); 
 break; 
 /*********************************************************/ 
 case (0x18): // (011000) 
 x=-10; 
 SPEED(160,205); 
 break; 
 /*************************************************************************/ 
 case (0x06): // (000110) 
Đồ án môn học 1 Page 25 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 x= 10; 
 SPEED(205,160); 
 break; 
 SPEED(205,160); 
 break; 
 /*******************************************************/ 
 case (0x30): // (110000) 
 x=-25; 
 SPEED(160,225); 
 break; 
 /*********************************************************/ 
 case (0x03): // (000011) 
 x= 25; 
 SPEED(225,160); 
 break; 
 /********************************************************/ 
 //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<< 
 case (0x3c): // (111100) 
 delay_ms(10); 
 if(PINC==0x3f) 
 { 
 BE90(); 
 break; 
 } 
 SPEED(200,200); 
 DAO_A(); 
 DAO_B(); 
 delay_ms(100); 
Đồ án môn học 1 Page 26 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 DAO_A(); 
 DAO_B(); 
 CHUYEN_TRAI(); 
 break; 
 // ---------------------------------------- 
 //Chuan bi chuyen line trai 
 case (0x38): // (111000) 
 delay_ms(10); 
 if(PINC==0x3f) 
 { 
 BE90(); 
 break; 
 } 
 SPEED(200,200); 
 DAO_A(); 
 DAO_B(); 
 delay_ms(100); 
 DAO_A(); 
 DAO_B(); 
 CHUYEN_TRAI(); 
 break; 
 //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
 case (0x0f): // (001111) 
 delay_ms(10); 
 if(PINC==0x3f) 
 { 
 BE90(); 
 break; 
Đồ án môn học 1 Page 27 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 } 
 SPEED(200,200); 
 DAO_A(); 
 DAO_B(); 
 delay_ms(150); 
 DAO_A(); 
 DAO_B(); 
 CHUYEN_PHAI(); 
 break; 
 // ------------------------------------------- 
 //Chuan bi chuyen line phai 
 case (0x07): // (000111) 
 delay_ms(10); 
 if(PINC==0x3f) 
 { 
 BE90(); 
 break; 
 } 
 SPEED(200,200); 
 DAO_A(); 
 DAO_B(); 
 delay_ms(150); 
 DAO_A(); 
 DAO_B(); 
 CHUYEN_PHAI(); 
 break; 
 //>>>>>> MEET A CROSS <<<<<<<<<< 
 case (0x3f): // (111111) 
Đồ án môn học 1 Page 28 
GVHD: TS.Nguyễn Thanh Phương SVTH: Phạm Quốc Gia 
 ThS. Phạm Quốc Phương Lớp 08DDC-HUTECH 
 BE90(); 
 break; 
 //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 
 default:x=x; // DEFAULT 
 } 
 } 
 } 
 } 
 } 
/*************************END****************************/ 
III. Ứng dụng, hạn chế và hướng giải quyết: 
1. Ứng dụng: 
 Dựa vào cách hoạt động của robot dò line chúng ta có thể phát triển rộng hơn 
để tạo nên những robot có ứng dụng thực tế hơn như robot thay con người đi 
vào những nơi nguy hiểm, những robot làm 1 công việc trên 1 hành trình cố 
định..v.v. 
2. Hạn chế: 
- Tốc độ chưa cao. 
- Dễ bị trượt khỏi đường khi chạy vận tốc cao, khi bẻ cua, xuống dốc. 
3. Khắc phục: 
- Tăng số lượng sensor trên cần dò line. 
- Dùng động cơ bẻ góc RC Servo có đáp ứng tốt. 
- Dùng Vi điều khiển có tốc độ xử lý cao hơn. 
- Chất liệu bánh xe bám đường tốt. 
********************************END********************************* 

File đính kèm:

  • pdfĐồ án Robot dò line.pdf