Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
8,48 MB
Nội dung
CHƯƠNG 1: TỔNG QUAN VỀ ROBOT 1.1 Khái quát chung robot 1.1.1 Khái niệm trình phát triển robot *Sơ lược trình phát triển robot Thuật ngữ “Robot” xuất phát từ tiếng Sec (Czech) “Robota” có nghĩa cơng việc tạp dịch kịch Rossum’s Universal Robots Karel Capek, vào năm 1921 Trong kịch này, Rossum trai ông ta chếtạo máy gần giống với người để phục vụ người Có lẽ gợi ý ban đầu cho nhà sáng chế kỹ thuật cấu, máy móc bắt chước hoạt động bắp người Đầu thập kỷ 60, công ty Mỹ AMF (American Machine and Foundry Company) quảng cáo loại máy tự động vạn gọi “Người máy công nghiệp” (Industrial Robot) Ngày người ta đặt tên người máy công nghiệp (hay robot cơng nghiệp) cho loại thiết bị có dáng dấp vài chức tay người điều khiển tự động để thực số thao tác sản xuất Về mặt kỹ thuật, robot cơng nghiệp ngày nay, có nguồn gốc từ hai lĩnh vực kỹ thuật đời sớm cấu điều khiển từ xa (Teleoperators) máy công cụ điều khiển số (NC - Numerically Controlled machine tool) Các cấu điều khiển từ xa (hay thiết bị kiểu chủ-tớ) phát triển mạnh chiến tranh giới lần thứ hai nhằm nghiên cứu vật liệu phóng xạ Người thao tác tách biệt khỏi khu vực phóng xạ tường có vài cửa quan sát để nhìn thấy công việc bên Các cấu điều khiển từ xa thay cho cánh tay người thao tác; gồm có kẹp bên (tớ) hai tay cầm bên (chủ) Cả hai, tay cầm kẹp, nối với cấu sáu bậc tự để tạo vị trí hướng tùy ý tay cầm kẹp Cơ cấu dùng để điều khiển kẹp theo chuyển động tay cầm Vào khoảng năm 1949, máy công cụ điều khiển số đời, nhằm đáp ứng yêu cầu gia công chi tiết ngành chếtạo máy bay Những robot thực chất nối kết khâu khí cấu điều khiển từ xa với khả lập trình máy cơng cụ điều khiển số Dưới điểm qua số thời điểm lịch sử phát triển người máy công nghiệp Một robot công nghiệp chếtạorobot Versatran công ty AMF, Mỹ Cũng vào khoảng thời gian Mỹ xuất loại robot Unimate -1900 dùng kỹ nghệ ôtô Tiếp theo Mỹ, nước khác bắt đầu sản xuất robot công nghiệp : Anh -1967, Thuỵ Điển Nhật -1968 theo quyền Mỹ; CHLB Đức -1971; Pháp -1972; Ý-1973.Tính làm việc robot ngày nâng cao, khả nhận biết xử lý Năm 1967 trường Đại học tổng hợp Stanford (Mỹ) chếtạo mẫu robot hoạt động theo mơ hình “mắt-tay”, có khả nhận biết định hướng bàn kẹp theo vị trí vật kẹp nhờ cảm biến Năm 1974 Cơng ty Mỹ Cincinnati đưa loại robot điều khiển máy vi tính, gọi robot T3 (The Tomorrow Tool : Cơng cụ tương lai) Robot nâng vật có khối lượng đến 40 Kg Có thể nói, Robot tổ hợp khả hoạt động linh hoạt cấu điều khiển từ xa với mức độ “tri thức” ngày phong phú hệ thống điều khiển theo chương trình số kỹ thuật chếtạo cảm biến, cơng nghệ lập trình phát triển trí khôn nhân tạo, hệ chuyên gia Trong năm sau này, việc nâng cao tính hoạt động robot không ngừng phát triển Các robot trang bị thêm loại cảm biến khác để nhận biết môi trường chung quanh, với thành tựu to lớn lĩnh vực Tin học - Điện tửtạo hệ robot với nhiều tính đăc biệt Số lượng robot ngày gia tăng, giá thành ngày giảm Nhờ vậy, robot công nghiệp có vị trí quan trọng dây chuyền sản xuất đại Một vài số liệu số lượng robot sản xuất vài nước công nghiệp phát triển sau: Bảng 1 Số lượng robot sản xuất vài nước công nghiệp phát trin Nớc S X Nhật Mỹ Đức í Pháp Anh Hàn Quốc Năm 1990 60.118 4.327 5.845 2.500 1.488 510 1.000 Năm 1994 29.756 7.634 5.125 2.408 1.197 1.086 1.200 Năm 1998 67.000 11.100 8.600 4.000 2.000 1.500 - M nước phát minh robot, nước phát triển cao lĩnh vực nghiên cứu chếtạo sử dụng robot lại Nhật với hình ảnh robot Asimo hoạt động gần người Hình 1 Asimo Nhật Bản Còn nước ta ngành robot học phát triển mạnh mẽ đặc biệt đến năm 2007 công ty cổ phần robot TOSY Việt Nam robot TOPIO giống hình người Hình Robot TOPIO Việt Nam (robot đánh bóng bàn) 1.1.2 Phân loại RobotRobot phong phú đa dạng, phân loại theo cách sau - Phân loại theo kết cấu: Theo kết cấu tay máy người ta phân thành robot kiểu toạ độ Đề các, Kiểu toạ độ trụ, kiểu toạ độ cầu, kiểu toạ độ góc, robot kiểu SCARA - Phân loại theo hệ thống truyền động: có dạng truyền động phổ biến là: hệ truyền động điện, hệ truyền động thuỷ lực, hệ truyền động khí nén - Phân loại theo ứng dụng: dựa vào ứng dụng robot sản xuất có Robot sơn, robot hàn, robot lắp ráp, robot chuyển phôi v.v - Phân loại theo cách thức đặc trưng phương pháp điều khiển: có robot điều khiển hở (mạch điều khiển khơng có quan hệ phản hồi), Robot điều khiển kín (hay điều khiển servo) : sử dụng cảm biến, mạch phản hồi để tăng độ xác mức độ linh hoạt điều khiển Ngồi có cách phân loại khác tuỳ theo quan điểm mục đích nghiên cứu 1.3 RobottựhànhRobottựhành hay robot di động (mobile robot) định nghĩa loại xe robot có khả tự dịch chuyển, tự vận động (có thể lập trình lại được) điều khiển tự động có khả hồn thành cơng việc giao Mơi trường hoạt động robot đất, nước, khơng khí, khơng gian vũ trụ hay tổ hợp chúng Địa hình bề mặt mà robot di chuyển phẳng thay đổi, lồi lõm Theo phận thực chuyển động, ta chia robottựhành làm lớp: chuyển động chân (legged) bánh (wheeled) Trong lớp đầu tiên, chuyển động có nhờ chân khí bắt chước chuyển động người động vật Robot loại di chuyển tốt định hình lồi lõm, phức tạp Tuy nhiên, cách phối hợp chân vấn đề giữ vững tư làm cơng việc khó khăn Lớp lại (di chuyển bánh) tỏ thực tế hơn, chúng làm việc tốt hầu hết địa hình người tạo Điều khiển robot di chuyển bánh đơn giản nhiều đảm bảo tính ổn định cho robot Lớp cụ thể chia làm loại robot: Loại chuyển động bánh xe (phổ biến) (hình 1.3a, c, f), loại chuyển động vũng xích (khi cần mơmen phát động lớn hay cần di chuyển vùng đầm lầy, cát băng tuyết) ( Hình 1.3 b, g, h, I, k), loại hỗn hợp bánh xe xích (ít gặp) Hình Một số hình ảnh robottựhành * Ứng dụng robot sản xuất Từ đời robot áp dụng nhiều lĩnh vực góc độ thay sức người Nhờ dây chuyền sản xuất tổ chức lại, suất hiệu sản xuất tăng lên rõ rệt Mục tiêu ứng dụng robot nhằm góp phần nâng cao suất dây chuyền cơng nghệ, giảm gía thành, nâng cao chất lượng khả cạnh tranh sản phẩm đồng thời cải thiện điều kiện lao động Đạt mục tiêu nhờ vào khả to lớn robot như: làm việc mệt mỏi, dễ dàng chuyển nghề cách thành thạo, chịu phóng xạ môi trường làm việc độc hại, nhiệt độ cao, “cảm thấy” từ trường “nghe” siêu âm Robot dùng thay người trường hợp thực công việc không nặng nhọc đơn điệu, dễ gây mệt mỏi, nhầm lẫn Tiềm ứng dụng robottựhành rộng lớn Có thể kể đến robot vận chuyển vật liệu, hàng hóa tòa nhà, nhà máy, cửa hàng, sân bay thư viện, robot phục vụ quét dọn đường phố, khoang chân không, robot kiểm tra môi trường nguy hiểm, robot canh gác, thám, robot khám phá không gian, di chuyển hành tinh, robot hàn, sơn nhà máy, robot xe lăn phục vụ người khuyết tật,robot phục vụ sinh hoạt gia đình v.v Ví dụ số mơ hình robot tiêu biểu ứng dụng sản xuất sau: Hình Mơ hình robot phung thuốc sinh học Hình Robot khám bệnh Hình Robot nhặt chất hữu làm nhiên liệu Mặc dù nhu cầu ứng dụng cao, hạn chế chưa giải robottự hành, chi phí chếtạo cao, khơng cho phép chúng sử dụng rộng rãi Một nhược điểm khác robottựhành phải kể đến thiếu tính linh hoạt thích ứng làm việc vị trí khác Bài tốn tìm đường (navigation problem) robottựhành khơng phải loại tốn đơn giản nhiều người nghĩ lúc ban đầu CHƯƠNG 2: THIẾTKẾVÀCHẾTẠOVÀ VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN CHO ROBOTTỰHÀNH 2.1 Sơ đồ khối Robottựhành Nhiệm vụ khối - Khối nguồn: tạo điện áp +5V từ điện áp 12V từ acquy để cung cấp nguồn cho khối vi điều khiển, LCD, dò đường khối mạch giao tiếp - Khối vi điều khiển PIC 16F877A: có nhiệm vụ thu thập tín hiệu điều khiển từ khối mạch dò đường, cảm biến cơng tắc hành trình, sau xử lý tín hiệu đua lệnh cho khối chấp hành để điều khiển động - Khối mạch dò đường: bao gồm thu phát dùng làm đầu vào cho vi xử lý để điều khiển robot đường - Khối cơng tắc hành trình (CTHT): dùng để giới hạn việc chuyển động gắp vật động nâng vật - Khối nút bấm: bao gồm nút bấm dùng để khởi động, lựa chọn chiến thuật cho Robot - Khối hiển thị dùng LCD: hiển thị trạng thái dò đường Robot hiển thị thông tin cần thiết chương trình để việc giám sát chương trình dễ dàng - Khối mạch giao tiếp: dùng để giao tiếp cách ly mạch điều khiển mạch công suất tránh nhiễu từ mạch công suất mạch điều khiển - Khối mạch cơng suất: nhận tín hiệu từ vi điều khiển qua mạch giao tiếp để điều khiển động động động nâng, gắp 2.2 Thiếtkế khối mạch điều khiển Robot 2.2.1 Modul dò đường Sơ đồ nguyên lý modul dò đường J6 5VDC RA0-RA1-RA2-RA3-RA5-RE0-RE1-RE2 1 SIL-100-02 R8 R9 R10 R11 R12 R13 R14 R15 10k 220 10k 220 10k 220 10k 220 10k LED SIEU SANG DO C7 LED SIEU SANG DO CDS CDS K CDS LED SIEU SANG DO C6 K C5 K CDS LED SIEU SANG DO D7 1 D6 C4 K CDS K LED SIEU SANG DO D5 C3 LED SIEU SANG DO D4 1 CDS K CDS C2 LED SIEU SANG DO 2 D3 C1 K CDS K LED SIEU SANG DO D2 1 D1 C16 A R7 220 A R6 10k A R4 220 A R3 10k A R2 220 A R1 10k A R5 220 A D17 R43 Việc so sánh ngưỡng ADC định xem đâu vạch trắng đâu sân, từ định đâu mức đâu mức Giá trị ADC để so sánh cần lấy lần thử sân Lấy mẫu ADC sân thi đấu phương án hiệu dò đường, lấy mẫu ADC giúp tiết kiệm thời gian lấy mẫu sân so với phương pháp dùng mạch so sánh Ngoài lấy mẫu ADC xác, thích hợp với loại sân thi đấu mà khơng sợ trường hợp nhà robot chạy kiểu lên sân thi đấu robot lại chạy kiểu khác Hình ảnh Modul dò đường robot thực tế 2.2.2 Thiếtkế khối mạch giao tiếp mạch công suất Sơ đồ nguyên lý mạch công suất điều khiển động +24 +24 +12 +12 +12 +12 RL1 12V D6 2 R12 E C3 Q10 NPN M3 1nF 220 R11 R28 U2 A C R4 K PC817 100 4 K PC817 100 K C A K U4 1N4007 LED-YELLOW LED-YELLOW R21 E C1 Q4 NPN M1 1nF 220 R3 +12 3.3k 12V D2 D19 1N4007 D12 A A RL4 3.3k MOTOR DC MOTOR PHAI MOTOR TRAI R19 R20 220 220 +12 2 +12 100 K PC817 E R10 Q8 PNP 220 R9 R27 R17 220 D11 100 A Q3 C K PC817 1N4739A 3.3k E R2 D1 1N4007 U1 1N4007 IRF540 K C LED-YELLOW A D5 K R22 U3 NPN D18 Q9 PNP 220 R1 IRF540 Q2 R18 D10 220 1N4739A A NPN LED-YELLOW Q1 A Q7 D13 1 +12 MOTOR DC 3.3k +24 Mạch giao tiếp dùng opto PC817 để khuếch đại tín hiệu điều khiển cách ly nguồn mạch điều khiển mạch công suất Mạch công suất điều khiển động dùng Fet Relay vừa tận dụng hiệu FET, vừa đơn giản có relay Mạch dùng IRF540 cho dòng tải lên đến 33A cho phép chạy nhiều loại động với cơng suất khác nhau, q trình thi đấu thay đổi động co mà khơng cần phải thay đổi mạch công suất Do yêu cầu mạch điều khiển động nâng vật gắp vật cần đảo chiều quay hãm tốt nên mạch điều khiển động nâng vật gắp vật có sơ 2.4 Chương trình điều khiển Robot // Ten chuong trinh : dieu khien ROBOT gap vat DHSPKT Nam Dinh // Nguoi thuc hien : vietlamddt // Ngay thuc hien : 21/11 // Phien ban : // Mo ta phan cung : // Dung PIC16F877A - thach anh 20MHz // Cam bien duong noi voi Port A va E,cam bien tich cuc muc // Cac CTHT noi voi port B, CTHT tich cuc muc // + Cam bien phat hien vat noi voi pin_B0 // + CTHT nang tay gap noi voi pin_B5 // + CTHT tay gap noi voi pin_B4 // + CTHT gioi han mo tay gap vat noi voi pin_B2 // + CTHT gioi han dong gap vat noi voi pin_B3 // Su dung LCD 16x2 de hien thi, che bit // + RS noi voi pin_D1 // + R/W noi voi pin_D2 // + EN noi voi pin_D0 // + D4 noi voi pin_D4 // + D5 noi voi pin_D5 // + D6 noi voi pin_D6 // + D7 noi voi pin_D7 // Port C dieu khien dong co // + dao chieu dc phai noi voi pin_C0 // + PWM dc phai noi voi pin_C1 // + dao chieu dc trai noi voi pin_C2 // + PWM dc trai noi voi pin_C3 // + dao chieu dc nang, noi voi pin_C4, pin_C5 // + dao chieu dc gap vat noi voi pin_C6, pin_C7 // // Ngay hoan : // Ngay kiem tra : // Nguoi kiem tra : // // Chu thich : //======================================= #include #include #device *=16 adc=8 #use delay(clock=20000000) #fuses HS,NOPUT,NOWDT,NOPROTECT,NOLVP// thach anh tan so cao, #include // khai bao thu vien lcd 4bit #use fast_io(b) #use fast_io(a) #use fast_io(e) #use fast_io(c) // // KHAI BAO CAM BIEN, CTHT #define e3s rb0 //cam bien phat hien vat E3S-DS30E4 #define ht_tha rb4 //ctht mo tay gap khong gap vat #define ht_nang80 rb5 //ctht nang tay gap 80cm #define ht_ha rb7 //ctht vat #define ht_nang rb6 //bo thu phat quang de tay9, nang 20cm, 40cm #define start rb3 //nut an start #define chon_san rb1 //nut an chon san trai, phai #define cam_bien rb2 //nut an chon san trai, phai // // KHAI BAO CHAN DIEU KHIEN DONG CO #define tha_qua rc4 #define gap_qua rc5 #define ha_qua rc6 #define nang_qua rc7 // //khai bao bien chon san #define san_phai #define san_trai // int a,i,line,c,cambien,sovach,line_status,box,san; char hienthi[8];// mang cam bien void left_motor_stop(); void right_motor_stop(); void kiemtra(); void test_adc(); void lechduong(); void quaytrai(); void quayphai(); void quaytrai1(); void do_line(); void speed(signed int b0,signed int b1); void right_motor_foward(int val); void left_motor_foward(int val); void left_motor_reverse(int val); void right_motor_reverse(int val); void speed(signed int b0,signed int b1); // - void kiemtra() { if(e3s==0) //kiem tra cam bien phat hien vat { delay_ms(2); if(e3s==0) { box++; //bien dem qua setup_adc(adc_off); lcd_gotoxy(10,1); printf(lcd_putc,"CB:%u ",box); delay_us(20); left_motor_stop(); right_motor_stop(); //dung xe portc=0xff; speed(-85,-85); //ham de giam quan tinh cua xe delay_ms(55); left_motor_stop(); right_motor_stop(); // -if(box==1||box==3) //qua don va qua doi { tha_qua=0;gap_qua=1; //gap qua lcd_gotoxy(1,2); printf(lcd_putc,"gap qua "); delay_ms(1000); //delay de gap qua chat tha_qua=1;gap_qua=1; ha_qua=0;nang_qua=1; //nang qua while (sovach!=1) { setup_adc(adc_clock_internal);// thoi gian lay mau 2-6us setup_adc_ports(all_analog);// chon tat ca cac dau vao tu 0-7 test_adc(); do_line(); if(cambien>=4) { while(cambien>=4){speed(100,100);test_adc();} sovach++; lcd_gotoxy(10,2); printf(lcd_putc,"Vach:%u "sovach); } } speed(70,70); //cho xe di them doan delay_ms(650); ha_qua=1;nang_qua=1; //dung nang qua if (san==san_phai) {quayphai();} else quaytrai(); left_motor_stop(); right_motor_stop();delay_ms(50); sovach=0; } // -if(box==2||box==4) //o tha qua va { left_motor_stop(); right_motor_stop(); //dung xe speed(-75,-75); //ham de giam quan tinh cua xe delay_ms(45); left_motor_stop(); right_motor_stop(); tha_qua=1;gap_qua=0; //tha qua while(ht_tha==1) //kiem tra ctht tha vat { lcd_gotoxy(1,2); printf(lcd_putc,"tha qua "); tha_qua=1;gap_qua=0; } tha_qua=1;gap_qua=1; // dung tha qua if (box==2) { setup_adc(adc_clock_internal);// thoi gian lay mau 2-6us setup_adc_ports(all_analog); // chon tat ca cac dau vao tu 0-7 quaytrai1(); //quay dau xe } if (box==4) { ha_qua=0;nang_qua=1; //nang vat them de quay dau lcd_gotoxy(1,2); printf(lcd_putc,"nang qua"); delay_ms(1500); ha_qua=1;nang_qua=1; // dung nang qua setup_adc(adc_clock_internal);// thoi gian lay mau 2-6us setup_adc_ports(all_analog); // chon tat ca cac dau vao tu 0-7 quaytrai1();// quay dau xe left_motor_stop(); right_motor_stop(); //dung xe delay_ms(100); lcd_gotoxy(10,1); printf(lcd_putc,"CB:%u ",box); //hien thi len LCD } nang_qua=0;ha_qua=1; //ha qua while (sovach!=2) { setup_adc(adc_clock_internal);// thoi gian lay mau 2-6us setup_adc_ports(all_analog); // chon tat ca cac dau vao tu 0-7 test_adc(); do_line(); if(cambien>=4) { while(cambien>=4) { speed(100,100); test_adc(); } sovach++; lcd_gotoxy(10,2); printf(lcd_putc,"Vach:%u "sovach); } } nang_qua=1;ha_qua=1; if(sovach==2) { speed(70,70); //cho xe di them doan delay_ms(650); if (san==san_phai) {quayphai();} else quaytrai(); } sovach=0; } // -if (box==5) { nang_qua=1; ha_qua=1; tha_qua=0;gap_qua=1; //gap qua lcd_gotoxy(1,2); printf(lcd_putc,"gap qua "); delay_ms(700); //delay de gap qua chat tha_qua=1;gap_qua=1; nang_qua=1; ha_qua=0; delay_ms(500); while (ht_nang80==1) { setup_adc(adc_clock_internal);// thoi gian lay mau 2-6us setup_adc_ports(all_analog); // chon tat ca cac dau vao tu 0-7 test_adc(); do_line(); } nang_qua=1; ha_qua=1; } // -if (box==6) { speed(-85,-85); delay_ms(100); if (san==san_phai) { //speed (70,70);delay_ms(500); //speed(-85,60);delay_ms(700);speed (80,80);delay_ms(500); setup_adc(adc_clock_internal); // thoi gian lay mau 2-6us setup_adc_ports(all_analog); // chon tat ca cac dau vao tu 0-7 test_adc(); while(bit_test(line,2)==1) //kiem tra led so de dung quay { test_adc(); setup_adc(adc_clock_internal); // thoi gian lay mau 2-6us setup_adc_ports(all_analog); // chon tat ca cac dau vao tu 0-7 speed(-85,60); } speed (70,-60);delay_ms(30); } else {speed (70,70);delay_ms(500);}; tha_qua=1;gap_qua=0; //tha qua while(ht_tha==1) //kiem tra ctht tha vat { lcd_gotoxy(1,2); printf(lcd_putc,"tha qua "); tha_qua=1;gap_qua=0; } tha_qua=1;gap_qua=1; // dung tha qua {left_motor_stop();right_motor_stop();} while (start==1); } // setup_adc(adc_clock_internal); // thoi gian lay mau 2-6us setup_adc_ports(all_analog); // chon tat ca cac dau vao tu 0-7 } } } // void test_adc() // kiem tra cam bien { delay_ms(1); c=85; // gia tri so sanh cambien=0; // so cam bien vach for(i=0;i=c) // so sanh gia tri dau vao voi {bit_set(line,i);hienthi[i]=1;} else {bit_clear(line,i);hienthi[i]=0;cambien++;} } lcd_gotoxy(1,2); // hienthi ci tri led duong len LCD for(i=0;i=0) { c0=1-b0*2.5; left_motor_foward(c0); } else { c0=1+b0*2.5; left_motor_reverse(c0); } if(b1>=0) { c1=1-b1*2.5; right_motor_foward(c1); } else { c1=1+b1*2.5; right_motor_reverse(c1); } } // //chuong trinh dieu chinh robot di lech duong void lechduong() { if(line_status==0) {left_motor_stop();right_motor_stop();} if(line_status==1) speed(100,10); if(line_status==2) speed(10,100); } // //chuong trinh quay trai void quaytrai() { lcd_gotoxy(1,2); printf(lcd_putc,"quaytrai"); test_adc(); speed(-80,80);delay_ms(800); //cho xe lech khoi vi tri ban dau test_adc(); while(bit_test(line,6)==1) //kiem tra led so de dung quay { speed(-80,80); test_adc(); } left_motor_stop();right_motor_stop(); speed(80,-80); //ham de giam quan tinh cua xe delay_ms(100); left_motor_stop(); right_motor_stop(); } // void quaytrai1() { lcd_gotoxy(1,2); printf(lcd_putc,"quay dau"); test_adc(); speed(-80,80);delay_ms(800); //quay trai lan test_adc(); while(bit_test(line,6)==1) { speed(-80,80); test_adc(); } speed(-80,80);delay_ms(800); //quay trai lan test_adc(); while(bit_test(line,6)==1) { speed(-80,80); test_adc(); } left_motor_stop();right_motor_stop(); speed(80,-80); //ham de giam quan tinh cua xe delay_ms(100); left_motor_stop(); right_motor_stop(); } // void quayphai() { lcd_gotoxy(1,2); printf(lcd_putc,"quayphai"); test_adc(); speed(83,-78); //cho xe lech khoi vi tri ban dau delay_ms(800); test_adc(); while(bit_test(line,2)==1) { speed(83,-78); test_adc(); } left_motor_stop(); right_motor_stop(); speed(-85,85); //ham de giam quan tinh cua xe delay_ms(100); left_motor_stop(); right_motor_stop(); delay_ms(200); } // //chuong trinh xu ly robot duong void do_line() { if(box==2) { if(ht_ha==0){nang_qua=1;ha_qua=1;} else {nang_qua=0;ha_qua=1;} } if(box==4) { if(ht_ha==0){nang_qua=1;ha_qua=1;} else {nang_qua=0;ha_qua=1;} } if(line==0b11100111) {speed(100,100);line_status=0;} if(line==0b11110111) {speed(95,95);line_status=1;} if(line==0b11110011) {speed(95,90);line_status=1;} if(line==0b11111011) {speed(95,80);line_status=1;} if(line==0b11111001) {speed(95,75);line_status=1;} if(line==0b11111101) {speed(95,65);line_status=1;} if(line==0b11111100) {speed(95,60);line_status=1;} if(line==0b11111110) {speed(95,50);line_status=1;} if(line==0b11101111) {speed(95,100);line_status=2;} if(line==0b11001111) {speed(90,100);line_status=2;} if(line==0b11011111) {speed(80,100);line_status=2;} if(line==0b10011111) {speed(75,100);line_status=2;} if(line==0b10111111) {speed(65,100);line_status=2;} if(line==0b00111111) {speed(60,100);line_status=2;} if(line==0b01111111) {speed(50,100);line_status=2;} if(line==0b11111111) lechduong(); } // void main() { SET_TRIS_A(0b111111); // dau vao cam bien SET_TRIS_E(0b111); // dau vao cam bien SET_TRIS_b(0b11111111); // dau vao cam bien trisc=0; // dau dk dong co trisd=0; // dieu khien lcd portc=0xff; disable_interrupts(global); setup_adc(adc_clock_internal); // thoi gian lay mau 2-6us setup_adc_ports(all_analog); // chon tat ca cac dau vao tu 0-7 lcd_init();// khoi tao lcd delay_ms(100); line_status=0; line=0xff; for(i=0;i=4) { speed(100,100); test_adc(); } } do_line(); } } ... problem) robot tự hành khơng phải loại tốn đơn giản nhiều người nghĩ lúc ban đầu CHƯƠNG 2: THIẾT KẾ VÀ CHẾ TẠO VÀ VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN CHO ROBOT TỰ HÀNH 2.1 Sơ đồ khối Robot tự hành Nhiệm... cứu 1.3 Robot tự hành Robot tự hành hay robot di động (mobile robot) định nghĩa loại xe robot có khả tự dịch chuyển, tự vận động (có thể lập trình lại được) điều khiển tự động có khả hồn thành cơng... liệu Mặc dù nhu cầu ứng dụng cao, hạn chế chưa giải robot tự hành, chi phí chế tạo cao, khơng cho phép chúng sử dụng rộng rãi Một nhược điểm khác robot tự hành phải kể đến thiếu tính linh hoạt