Báo cáo môn Vi điều khiển: Xe dò line MCR Micom Car Rally trình bày các nội dung chính: phần cơ khí, mạch điện, lập trình. Đây là tài liệu tham khảo dành cho sinh viên ngành Cơ khí - chế tạo.
TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT TP.HCM KHOA CƠ KHÍ CHẾ TẠO MÁY BÁO CÁO MƠN VI ĐIỀU KHIỂN XE DÒ LINE MCR Micom Car Rally CBGD Nguyễn Tấn Nó Thành viên: Phạm Anh Vũ Võ Thanh Phúc Ngô Văn Tửng Phạm Thanh Sơn Trƣơng Đăng Khoa TP.HCM, Ngày tháng năm 2014 11911028 11911018 11911027 11911021 11911009 Báo cáo Micom Car Rally GIỚI THIỆU Tự động hóa tổng hịa nhiều lĩnh vực khí, điều khiển, cơng nghệ thông tin điện tử Các lĩnh vực kết hợp với tạo thành hệ thống tự động hóa cao tự động hóa tồn q trình sản xuất Ngành cơng nghiệp tự động hóa ngày có vai trị quan trọng cần thiết để đáp ứng mục tiêu phát triển kinh tế, tiến trình cơng nghiệp-hiện đại hóa nhanh Hiện có nhiều loại robot: + Quy mơ lớn như: Những cánh tay máy dây chuyền sản xuất, hệ thống sản xuất tự động… + Nhỏ robot có khả di chuyển, làm công việc nguy hiểm thay người, robot giúp người già, robot bán hàng… Lần nhóm thực làm xe MCR (xe dò line) Đây sở, tảng để làm lớn hơn, có ích q trình học tập làm việc sau 2|Page Báo cáo Micom Car Rally CHƢƠNG 1: PHẦN CƠ KHÍ 3|Page Báo cáo Micom Car Rally Thiết kế xe Solidwork : Vật tư làm xe mica dày 2mm Các phần chính: + Thân Hình Thân + Thanh dị line Hình Thanh dị line 4|Page Báo cáo Micom Car Rally Hai bánh xe sau làm từ ống nước Ø42 mica, sử dụng bánh cấu truyền động xoay qua lại quạt máy Nhiệm vụ: Motor quay, thông qua dây đai truyền động cho bánh xe tạo lực kéo xe phía trước Hình Cấu tạo bánh xe sau 5|Page Báo cáo Micom Car Rally Hình Bánh xe sau Hai bánh xe trước lấy từ lắp ghép kỹ thuật cấp Hình Bánh trước động servo 6|Page Báo cáo Micom Car Rally Các vòng trịn có nhiệm vụ cố định động với trục bánh xe Hình Tấm mica cố định động 7|Page Báo cáo Micom Car Rally Thiết kế xe bằngAutoCAD : File thiết kế (dùng cắt mica): Hình File cắt mica xe 8|Page Báo cáo Micom Car Rally CHƢƠNG 2: MẠCH ĐIỆN 9|Page Báo cáo Micom Car Rally Board cảm biến dị đƣờng: a Hình dáng: Hình Hình dáng thực tế board dị đường b Sơ đồ nguyên lý: Hình Nguyên lý c Mạch in: Hình 10 Mạch in board cảm biến 10 | P a g e Báo cáo Micom Car Rally d Nguyên lý hoạt động: + Khối vi điều khiển: sử dụng PIC16F887, dao động xung 20 Mhz + Các chức năng: NUT1, NUT2, NUT3 sử dụng cho chức START, MODE… dùng INT chân RB0, còi BUZZER dùng cho báo hiệu hay gỡ rối chương trình + Các cổng xuất nhập: dùng để kết nối mạch nạp, mạch nguồn, mạch công suất, mạch cảm biến + Khối nguồn vào: dùng 5V, sử dụng IC ổn áp 7805 18 | P a g e Báo cáo Micom Car Rally *Hình ảnh sản phẩm: Hình 21 Sản phẩm sau hồn thành phần khí mạch điện 19 | P a g e Báo cáo Micom Car Rally CHƢƠNG 3: LẬP TRÌNH 20 | P a g e Báo cáo Micom Car Rally Lập trình phần mềm MPLAP Code Main.c #include CONFIG (HS & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT& BORDIS & IESODIS & FCMDIS & LVPDIS); #include "main.h" #include "Init.h" #include "doccambien.h" #include "Motor.h" #define _XTAL_FREQ 20000000 char cambien; char cline, cua; unsigned char TURN; char RUN, x; int y; void main(){ init(); y=30000; x=0; while(1){ if (RUN == 0) { TURN = CENTER; LEDA=0; LEDB=0; DIR_L=0; DIR_R=0; Left_Wheel(0); Right_Wheel(0); } while(RUN){ read_adc(); switch(cambien) { case 0b00011000: TURN = CENTER; Right_Wheel(250); Left_Wheel(250); break; case 0b00001000: TURN = SlightRight; Right_Wheel(250); Left_Wheel(250); break; case 0b00001100: 21 | P a g e Báo cáo Micom Car Rally case case case case case case case TURN = SlightRight; Right_Wheel(150); Left_Wheel(190); break; 0b00000100: TURN = SlightRight-3; Right_Wheel(150); Left_Wheel(190); break; 0b00000110: TURN = SmallRight; Right_Wheel(150); Left_Wheel(190); break; 0b00000111: TURN = MiddleRight; Right_Wheel(130); Left_Wheel(210); break; 0b00000011: TURN = MiddleRight; Right_Wheel(100); Left_Wheel(200); break; 0b00000001: TURN = LargeRight; Right_Wheel(100); Left_Wheel(200); break; 0b00010000: TURN = SlightLeft; Right_Wheel(250); Left_Wheel(250); break; 0b00110000: TURN = SlightLeft; Right_Wheel(190); Left_Wheel(150); break; case 0b00100000: TURN = SlightLeft+3; Right_Wheel(190); Left_Wheel(150); break; case 0b01100000: 22 | P a g e Báo cáo Micom Car Rally TURN = SmallLeft; Right_Wheel(190); Left_Wheel(150); break; case 0b11100000: TURN = MiddleLeft; Right_Wheel(190); Left_Wheel(130); break; case 0b11000000: TURN = MiddleLeft; Right_Wheel(190); Left_Wheel(110); break; case 0b10000000: TURN = LargeLeft; Right_Wheel(190); Left_Wheel(110); break; case 0b11111000: TURN = CENTER; y ; break; case 0b11110000: TURN = CENTER; y ; break; case 0b11100000: TURN = CENTER; y ; break; case 0b00011111: TURN = CENTER; y++; break; case 0b00001111: TURN = CENTER; y++; 23 | P a g e Báo cáo Micom Car Rally break; case 0b00000111: TURN = CENTER; y++; break; case 0b00000000: x=1; break; default: break; TURN = CENTER; } if (x==1 && y>30050){ y=30000; x=0; TURN = 60; LEDA=1; LEDB=1; delay_ms(300); } if (x==1 && y=2000) { t=0; RC0=1; } if(t>=TURN) RC0=0; 24 | P a g e Báo cáo Micom Car Rally T0IF=0; } //INTERRUPT NUT AN A if (INTF==1){ RUN=1; INTF=0; } } Main.h #define _XTAL_FREQ #define SPEAKER #define led #define BUZZ RD0 //set thi bat LEDA RD1 //set thi bat LEDB RD2 #define #define #define #define #define 20000000 BUTA BUTB BUTC RB1 RB2 RB4 DIR_L RC3 DIR_R RC4 //GOC XOAY RCSERVO #define CENTER 160 #define #define #define #define SlightLeft SmallLeft MiddleLeft LargeLeft #define #define #define #define SlightRight SmallRight MiddleRight LargeRight 110//change 50 to 115 125 135 140 105 95 85 80 Doccambien.c #include #include "main.h" #include extern char cambien; float sosanh[8]= {2.1,2.2,2.2,2.3,2.3,2.4,2.0,2.0}; 25 | P a g e Báo cáo Micom Car Rally char kenh_adc[8]= {0b0000,0b0001,0b0010,0b0011,0b0100,0b0101,0b0110,0b01 11}; // Ham đoc nhieu kenh ADC void read_adc(void){ cambien=0; static int i; static int temp; temp=0; for(i=0;i< 8;i++){ CHS3=0; CHS2=kenh_adc[i]>>2; CHS1=(kenh_adc[i]>>1) & 0b0001; CHS0=kenh_adc[i] & 0b0001; GODONE=1; while (GODONE); temp=ADRESH; if ((temp*5.0/255.0)