ROBOT LAU NHÀ DÙNG PIC (có code và layout)

31 186 0
ROBOT LAU NHÀ DÙNG PIC (có code và layout)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ROBOT LAU NHÀ DÙNG PIC (có code và layout) .................................... ROBOT LAU NHÀ DÙNG PIC (có code và layout) .................................... ROBOT LAU NHÀ DÙNG PIC (có code và layout) .................................... ROBOT LAU NHÀ DÙNG PIC (có code và layout) .................................... ROBOT LAU NHÀ DÙNG PIC (có code và layout) ....................................

Trang 1/32 ĐỒ ÁN ROBOT LAU NHÀ Trang 2/32 MỤC LỤC Trang 3/32 DANH MỤC CÁC HÌNH VẼ Trang 4/32 DANH MỤC CÁC BẢNG BIỂU Trang 5/32 DANH MỤC CÁC TỪ VIẾT TẮT PIC Programmable Interface Controller LCD Liquid Crystal Display PWM Pulse-width Modulation CMOS Complementary Metal-Oxide-Semiconductor VCC Voltage Collector Collector GND Ground IC Integrated Circuit ENA Enable A ENB Enable B VEE Contrast Voltage RS Register Select RW Read/Write LED Light-emitting Diode CCP Compare/Capture/PWM Trang 6/32 CHƯƠNG - GIỚI THIỆU TỔNG QUAN ĐỀ TÀI 1.1 Giới thiệu Q trình cơng nghiệp 4.0 phát tri ển mạnh mẽ n ền cơng nghiệp hóa nước ta Các mơ hình tự động hóa đ ầu tư phát triển Trong đó, Robot mơ hình tự động quan - tâm ưu điểm mang nhiều tính ứng dụng Đề tài hướng đến nghiên cứu giải thuật cho Robot di chuy ển thực thi nhiệm vụ đề 1.1.1 Yêu cầu đặt Giải thuật cho Robot di chuyển phạm vi định s ẵn - 1.1.2 Hướng giải Sử dụng động để Robot di chuyển Dùng cảm biến đ ể xác định ô gạch né vật cản - Vẽ lưu đồ giải thuật lập trình Dùng trình biên dịch PIC C Compiler thi cơng phần cứng mô tả giải thuật cho Robot - 1.2 Nguyên lý chung Robot di chuyển thẳng dãy ô gạch, có th ể tự ch ỉnh đ ể không bị lệch sang dãy ô gạch khác Khi phát thấy tường vật cản, Robot xử lý tránh đụng tường di chuyển sang dãy khác ti ếp tục th ực thi cơng việc Hình 1-1: Mơ hình di chuyển Robot Trang 7/32 Robot gắn thêm LCD nhằm theo dõi thông s ố Robot th ực - thi công việc Điều giúp ta kiểm tra sai sót Robot trình làm việc - Trang 8/32 CHƯƠNG - TỔNG QUAN VỀ CÁC LINH KIỆN 2.1 PIC16F877A Vi điều khiển PIC16F877A vi điều khiển chế tạo v ới cơng nghệ CMOS Hình 2-1: PIC16F877A - Vi điều khiển PIC16F877A có 40 chân Hình 2-2: Sơ đồ chân PIC16F877A - Bảng sau mô tả đặc tính PIC16F877A: Trang 9/32 Bảng 2-1: Đặc tính PIC16F877A Tần số hoạt động Bộ nhớ Flash EEPROM Bộ nhớ liệu Các ports I/O Timers PWM Điện áp hoạt động 20 MHz KB 256 KB 368 KB ports A, B, C, D, E chế độ Timer chân PWM Vdc 2.2 Cảm biến dò line kênh Cảm biến dò line dùng để xác định ô gạch mà Robot qua Hình 2-3: Cảm biến dò line kênh - Sơ đồ chân: • • • • • • • • • - VCC: Chân cấp nguồn GND: Chân nối đất S1: Chân tín hiệu cảm biến kênh dò line S2: Chân tín hiệu cảm biến kênh dò line S3: Chân tín hiệu cảm biến kênh dò line S4: Chân tín hiệu cảm biến kênh dò line S5: Chân tín hiệu cảm biến kênh dò line CLP: Chân tín hiệu cơng tắc hành trình NEAR: Chân tín hiệu cảm biến hồng ngoại 2.3 Cảm biến siêu âm HC-SR04 Cảm biến siêu âm dùng để phát vật cản phía trước bên trái Robot, nhằm giúp Robot tránh vật cản Trang 10/32 Hình 2-4: Cảm biến siêu âm HC-SR04 - - Sơ đồ chân: • VCC: Chân cấp nguồn • TRIG: Chân ngõ vào phát xung tín hiệu • ECHO: Chân ngõ nhận xung tín hiệu trả • GND: Chân nối đất 2.4 Mạch điều khiển động L298 Mạch có chức điều khiển tốc độ động cơ, đáp ứng cho s ự di chuy ển Robot Mạch sử dụng nguồn cấp 12V ngõ vào, sau qua m ột IC ổn áp cấp 5V cho hai động ngõ mạch Hình 2-5: Mạch điều khiển động L298 - Sơ đồ chân: • IN1 IN2: Chân điều khiển động thứ Trang 17/32 Hình 4-3: Layout mạch nguồn PIC16F877A 4.2 Mơ hình mơ Robot lau nhà Hình 4-4: Khung Robot thiết kế phần mềm Corel Trang 18/32 Trang 19/32 Hình 4-5: Mơ hình mô Robot lau nhà Trang 20/32 CHƯƠNG ĐÁNH GIÁ KẾT LUẬN - 5.1 Thực nghiệm Như nêu phần nguyên lý hoạt động, Robot tự điều chỉnh - cân nhằm mục đích khơng di chuyển lệch sang dãy khác Dưới bảng đánh giá thực nghiệm: Kết thu độ lệch delta_t Bảng 5-1: Bảng đánh giá thực nghiệm Góc lệch 50 100 150 200 -50 -100 -150 -200 - Lần -9 -14 -15 -21 16 15 25 29 Lần -9 -13 -16 -23 13 21 23 26 Lần -7 -12 -17 -21 13 16 29 25 Lần -9 -12 -15 -19 12 21 30 32 Lần -5 -9 -16 -17 16 14 26 32 Lần -6 -12 -15 -22 14 18 27 31 5.2 Kết Từ số liệu trên, ta tính tốn thay đổi tốc độ động đ ể Robot thích nghi di chuyển cho độ lệch delta_t thấp - gần Robot di chuyển hồn thành số gạch quy định Tuy nhiên, Robot chưa thể tránh vật cản quay lại vị trí định sẵn nhiệm vụ ban đầu đề - 5.3 Đánh giá kết Thời gian tìm hiểu thực đề tài có gi ới hạn, v ới l ượng ki ến thức giới hạn nên Robot chưa thể hoàn thành hoàn tồn n ội - dung đồ án Robot nhiều giới hạn, độ ổn định Robot chưa cao Tuy nhiên dựa vào số liệu kết đạt Robot hồn tồn có hướng phát triển Trang 21/32 - 5.4 Hướng phát triển Có thể sử dụng encoder cho động giúp Robot nâng cao vi ệc di - chuyển Tối ưu hóa giải thuật để Robot nhớ đường nhằm tránh vật - cản quay lại vị trí định sẵn ban đầu Tối ưu hóa phương pháp lập trình giúp cho Robot có th ể th ực hi ện cơng việc lưu lốt, ổn định hiệu Trang 22/32 TÀI LIỆU THAM KHẢO Internet: [1] http://alldatasheet.com [2] http://microchip.com Tiếng Việt: [3] Giáo trình vi xử lý: “Vi điều khiển PIC” – Nguyễn Đình Phú, năm 2014 Trang 23/32 PHỤ LỤC A #include #define LCD_ENABLE_PIN #define LCD_RS_PIN PIN_D2 PIN_D0 #define LCD_RW_PIN PIN_D1 #define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5 #define LCD_DATA6 PIN_D6 #define LCD_DATA7 PIN_D7 #define cb1 input(PIN_B0) #define cb2 input(PIN_B1) #define cbgi input(PIN_B2) #define tri1 #define ech1 PIN_C6 input(PIN_B3) #fuses hs, noput, nowdt,noprotect, nodebug, nobrownout, nolvp, nocpd, nowrt #use delay(clock=20M) #use rs232(uart, baud = 9600, parity = n, bits = 8, stop = 1) #include unsigned int16 time = 0; Trang 24/32 unsigned int16 time1 = 0; unsigned int16 dem1 = 0; unsigned int16 dem = 0; int16 delta_t = 0; int en = 0; unsigned int soline = 0; int engi = 0; int en1 = 0; float d1 = 0; float kct = 0; void detect_line() { if( cb2 == && en == 0) { dem++; en = 1; } if(cb2 == 0); { Trang 25/32 en = 0; } if( cb1 == && en1 == 0) { dem1++; en1 = 1; } if(cb1 == 0); { en1 = 0; } if(cbgi == && engi == 0) { soline++; engi = 1; } if(cbgi == 0) Trang 26/32 { engi = 0; } } void distance1() { output_high(tri1); delay_us(20); output_low(tri1); while(ech1 == 0); set_timer1(0); while(ech1 == 1); d1 = get_timer1(); kct = (float)(d1*0.2/58); } void dithang(unsigned int x, unsigned int y ) { set_pwm1_duty(x); set_pwm2_duty(y); Trang 27/32 output_high(pin_C0); output_low(pin_C3); output_high(pin_C4); output_low(pin_C5); lcd_gotoxy(5,1); printf(lcd_putc," "); lcd_gotoxy(5,1); printf(lcd_putc, "%u", x); lcd_gotoxy(5,2); printf(lcd_putc, "%u", y); } void main() { lcd_init(); lcd_putc('\f'); setup_ccp1(CCP_PWM); // su dung chan cpp1 nhu PWM RC2 setup_ccp2(CCP_PWM); // su dung chan cpp2 nhu PWM RC1 setup_timer_2(T2_DIV_BY_1,255,1); setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); while(true) Trang 28/32 { dithang(220, 213); detect_line(); if(cb1 == 0) { time1 = dem1; } if(cb2 == 0) { time = dem; } lcd_gotoxy(1,1); printf(lcd_putc,"%d %d",cb1,cb2); lcd_gotoxy(1,2); printf(lcd_putc,"%lu",time); lcd_gotoxy(9,2); delta_t = time1 - time; printf(lcd_putc,"%lu",time1); lcd_gotoxy(9,1); Trang 29/32 printf(lcd_putc," "); lcd_gotoxy(9,1); printf(lcd_putc,"%ld",delta_t); if( delta_t < 0) if(delta_t >= -4 && delta_t = -10 && delta_t < -4)// sai lech { dithang(223,213); delta_t = 0; } else if( delta_t >= -16 && delta_t < -10)// sai lech 10 { dithang(225,213); delta_t = 0; } else if( delta_t >= -23 && delta_t < -16)//sai lech 15 Trang 30/32 { dithang(225,210); delta_t = 0; } else if(delta_t >= && delta_t && delta_t = 16 && delta_t = 23 && delta_t

Ngày đăng: 04/05/2018, 18:04

Từ khóa liên quan

Mục lục

  • DANH MỤC CÁC HÌNH VẼ

  • DANH MỤC CÁC BẢNG BIỂU

  • DANH MỤC CÁC TỪ VIẾT TẮT

  • CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN ĐỀ TÀI

    • 1.1 Giới thiệu

      • 1.1.1 Yêu cầu đặt ra

      • 1.1.2 Hướng giải quyết

      • 1.2 Nguyên lý chung

      • CHƯƠNG 2. TỔNG QUAN VỀ CÁC LINH KIỆN

        • 2.1 PIC16F877A

        • 2.2 Cảm biến dò line 5 kênh

        • 2.3 Cảm biến siêu âm HC-SR04

        • 2.4 Mạch điều khiển động cơ L298

        • 2.5 Các linh kiện khác

          • 2.5.1 Màn hình LCD

          • 2.5.2 Mạch ổn áp LM2596

          • CHƯƠNG 3. SƠ ĐỒ KHỐI VÀ LƯU ĐỒ GIẢI THUẬT

            • 3.1 Sơ đồ khối

            • 3.2 Lưu đồ giải thuật

            • 3.3 Nguyên lý hoạt động

            • CHƯƠNG 4. THI CÔNG PHẦN CỨNG

              • 4.1 Schematic và layout của mạch vi điều khiển PIC16F877A

              • 4.2 Mô hình mô phỏng Robot lau nhà

              • CHƯƠNG 5. ĐÁNH GIÁ VÀ KẾT LUẬN

                • 5.1 Thực nghiệm

                • 5.2 Kết quả

                • 5.3 Đánh giá kết quả

Tài liệu cùng người dùng

Tài liệu liên quan