Đồ á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
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:
- Đồ án Robot dò line.pdf