1. Trang chủ
  2. » Luận Văn - Báo Cáo

(Đồ án hcmute) xe lăn phương thẳng đứng

143 3 0

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO KHĨA LUẬN TỐT NGHIỆP NGÀNH CƠNG NGHỆ KỸ THUẬTÐIỆN TỬ - TRUYỀN THÔNG XE LĂN PHƯƠNG THẲNG ÐỨNG GVHD: TS NGUYỄN THANH HẢI SVTH: THANG KIẾN SANG MSSV: 12141374 NGUYỄN NGỌC NAM PHƯƠNG 12119109 SKL 0 0 Tp Hồ Chí Minh, năm 2016 an Xe Lăn Phƣơng Thẳng Đứng CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc l p – Tự – Hạnh phúc *** -Tp Hồ Chí Minh, tháng năm 2016 NHIỆM VỤ ĐỒ N M N H Họ tên sinh viên: THANG KIẾN SANG Họ tên sinh viên: NGUYỄN NGỌC NAM PHƢƠNG Ngành: CNKT ĐIỆN TỬ-TRUYỀN THÔNG Giảng viên hƣớng dẫn: TS NGUYỄN THANH HẢI Ngày nh n ề tài: 23/2/2016 MSSV: 12141374 MSSV: 12119109 Lớp: 12141CLDT2 ĐT: 0906738806 Ngày nộp ề tài: 16/7/2016 Tên ề tài : XE LĂN PHƢƠNG THẲNG ĐỨNG Các số liệu, tài liệu ban ầu: - Tìm hiểu tài liệu, nghiên cứu trƣớc ây xe lăn iện nƣớc - Phát triển mơ hình xe lăn iện dựa ý tƣởng xe lăn ứng Matia Robotics Nội dung thực ề tài: - Thiết kế thi công phần khí, khung xe - Thiết kế thi công board công suất - Thiết kế thi công board vi iều khiển - Thiết kế thi công board giao tiếp iều khiển từ xa - Kết nối hệ thống - Viết phần mềm - Kiểm tra chạy thử nghiệm - Viết báo cáo Sản phẩm: GIẢNG VIÊN HƢỚNG DẪN Trang ii an Xe Lăn Phƣơng Thẳng Đứng CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc l p – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT ỦA GI O VIÊN HƢỚNG DẪN Họ tên Sinh viên: Thang Kiến Sang MSSV: 12141374 Họ tên Sinh viên: Nguyễn Ngọc Nam Phƣơng MSSV: 12119109 Ngành: Công nghệ kỹ thu t Điện Tử Truyền Thông Tên ề tài: XE LĂN PHƢƠNG THẲNG ĐỨNG Họ tên Giáo viên hƣớng dẫn: TS Nguyễn Thanh Hải NHẬN XÉT Về nội dung ề tài & khối lƣợng thực hiện: Ƣu iểm: Khuyết iểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng năm 20… Giáo viên hƣớng dẫn (Ký & ghi rõ họ tên) Trang iii an Xe Lăn Phƣơng Thẳng Đứng CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc l p – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT ỦA GI O VIÊN PH N IỆN Họ tên Sinh viên: Thang Kiến Sang MSSV: 12141374 Họ tên Sinh viên: Nguyễn Ngọc Nam Phƣơng MSSV: 12119109 Ngành: Công nghệ kỹ thu t Điện Tử Truyền Thông Tên ề tài: XE LĂN PHƢƠNG THẲNG ĐỨNG Họ tên Giáo viên phản biện: NHẬN XÉT Về nội dung ề tài & khối lƣợng thực hiện: Ƣu iểm: Khuyết iểm: 10 Đề nghị cho bảo vệ hay không? 11 Đánh giá loại: 12 Điểm:……………….(Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng năm 20… Giáo viên phản biện (Ký & ghi rõ họ tên) Trang iv an Xe Lăn Phƣơng Thẳng Đứng LỜI M ƠN Nhóm xin gửi lời cám ơn sâu sắc tới thầy NGUYỄN THANH HẢI tận tình giúp đỡ, hướng dẫn nhóm suốt q trình thực đề tài Trong thời gian làm việc với thầy, nhóm tiếp thu thêm nhiều kiến học tập tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu thầy điều cần thiết cho nhóm trình học tập cơng tác sau Nhóm xin gửi lời cảm ơn đến gia đình, cha mẹ ủng hộ tạo điều kiện để nhóm hoàn thành đồ án thời gian đề Ngồi nhóm gửi lời cám ơn đến tập thể cơng ty Nguyễn Hùng thời gian nhóm làm đề tài hỗ trợ công cụ điều kiện để nhóm thực đề tài Mặc dù nhóm thực đề tài cố gắng hoàn thiện báo cáo đồ án, trình soạn thảo kiến thức cịn hạn chế nên cịn nhiều thiếu sót Nhóm thực đề tài mong nhận đóng góp ý kiến quý Thầy Cô bạn sinh viên Sau nhóm thực xin chúc Thầy Cơ sức khoẻ, thành công tiếp tục đào tạo nên nhân tài đóng góp cho đất nước Chúc anh chị, bạn sức khỏe, học tập thật tốt để không phụ cơng lao Thầy Cơ giảng dạy Nhóm thực xin chân thành cảm ơn Sinh viên thực Thang Kiến Sang Nguyễn Ngọc Nam Phƣơng Trang v an Xe Lăn Phƣơng Thẳng Đứng TÓM TẮT Nội dung ề tài xe lăn phƣơng thẳng ứng trình bày nghiên cứu thiết kế xe lăn cho phép ngƣời ngồi, di chuyển theo phƣơng thẳng ứng Đây ý tƣởng xe lăn giúp ngƣời ngồi chuyển sang trạng thái ứng nhằm giúp họ có nhiều không gian tiện nghi sinh hoạt giảm hạn chế thƣờng gặp dùng xe lăn Đề tài xe lăn phƣơng thẳng ứng ƣợc thiết kế thi công bao gồm phần cơ, ộng lực phần iều khiển Các thành phần thiết kế nhƣ truyền ộng xích, vít me, vi iều khiển, cảm biến,…Về việc nghiên cứu ề tài ƣợc thực thơng qua bƣớc thiết kế khí chủ yếu với phƣơng pháp thử sai, tính tốn chọn ộng cho phần ộng lực xe Sau ó thực thi công mạch hệ thống iều khiển, cơng suất thực l p trình giao tiếp cảm biến, iều khiển hệ thống Thu t toán PID ƣợc áp dụng việc l p trình iều khiển xe nhằm em lại tính ổn ịnh iều khiển ộng cơ, kết hợp với cảm biến nhƣ gia tốc la bàn nhƣ với kết hợp với module SIM, cảm biến o khoảng cách hồng ngoại việc thực iều khiển từ xa qua remote nhằm nâng cao tính an tồn cho hệ thống Sau thời gian thực nghiên cứu ề tài kết thu ƣợc xe lăn với hệ thống iều khiển tƣơng ối trực quan qua Joytick, ngƣời dùng thực hoạt ộng yêu cầu trạng thái ngồi nhƣ ứng cách dễ dàng thơng qua ghế ngồi iều chỉnh ộ cao, tính tiện nghi an tồn ƣợc thể thông qua việc xe iều chỉnh hệ thống cách tự ộng dựa vào thông tin thu th p từ cảm biến yêu cầu ngƣời dùng Trang vi an Xe Lăn Phƣơng Thẳng Đứng MỤ LỤ NHIỆM VỤ ĐỒ N M N H ii PHIẾU NHẬN XÉT ỦA GI O VIÊN HƢỚNG DẪN iii PHIẾU NHẬN XÉT ỦA GI O VIÊN PH N IỆN iv LỜI M ƠN v TÓM TẮT vi MỤ LỤ vii DANH MỤ TỪ VIẾT TẮT xi DANH MỤ HÌNH NH, IỂU ĐỒ xii DANH MỤ NG IỂU .xv HƢƠNG 1: TỔNG QUAN 1.1 Lý chọn ề tài 1.2 Tóm tắt .1 1.3 Tính cấp thiết ề tài 1.4 Mục tiêu nghiên cứu 1.5 Nhiệm vụ nghiên cứu .4 1.6 Phƣơng pháp nghiên cứu 1.7 Bố cục Đồ án .4 HƢƠNG 2: Ơ SỞ LÝ THUYẾT 2.1 Kỹ thu t y sinh 2.2 Ứng dụng PWM iều khiển tốc ộ ộng 2.2.1 Nguyên lý iều chế ộ rộng xung PWM 2.2.2 Ứng dụng PWM iều khiển 2.3 Ứng dụng encoder o tốc ộ ộng 2.4 Thu t toán PID hệ thống tự ộng 2.5 Vi iều khiển 2.5.1 Sơ lƣợc vi iều khiển 2.5.2 Một vài họ vi iều khiển phổ biến Trang vii an Xe Lăn Phƣơng Thẳng Đứng 2.6 Giới thiệu chuẩn giao tiếp I2C 2.7 Linh kiện bán dẫn .8 2.8 Lý thuyết khí 10 2.8.1 Giới thiệu hộp giảm tốc 10 2.8.2 Giới thiệu truyền xích .10 2.8.3 Giới thiệu truyền vít me - ốc 11 2.9 Sơ lƣợc cảm biến từ trƣờng .12 HƢƠNG 3: LỰA H N, TÍNH TO N VÀ THIẾT KẾ PHẦN ỨNG 14 3.1 Yêu cầu xe lăn phƣơng thẳng ứng 14 3.2 Sơ khối hệ thống 14 3.2.1 Sơ khối 14 3.2.2 Chức khối .15 3.2.3 Mô tả sơ hệ thống xe lăn phƣơng thẳng ứng .17 3.3 Lựa chọn vi iều khiển cho hệ thống .20 3.3.1 Giới thiệu PIC 18F4550 20 3.3.2 Giới thiệu PIC 18F4431 21 3.3.3 Giới thiệu PIC 16F887 22 3.4 Module SIM 900A 23 3.5 Module MPU6050-GY521 24 3.6 Module RF UART HC-11 25 3.7 Module Encoder .25 3.8 Lựa chọn thiết bị hiển thị thông tin 26 3.9 Tính tốn lựa chọn nguồn Acquy 27 3.10 Tính tốn lựa chọn ộng 28 3.11 Tính tốn ộng trục vít me cho hệ thống nâng hạ ghế 32 3.12 Khối nguồn 36 3.13 Cơng tác hành trình 38 3.14 Thiết kế board công suất 38 3.15 Cảm biến la bàn số HMC5883L 40 Trang viii an Xe Lăn Phƣơng Thẳng Đứng 3.16 Mạch remote 41 3.17 Cảm biến hồng ngoại Sharp GP2Y0A710K0F 43 3.18 Thiết kế khung xe lăn 44 3.19 Thiết kế kết nối hệ thống iện 46 HƢƠNG 4: THIẾT KẾ PHẦN MỀM 53 4.1 Giải thu t PID cho iều khiển ộng 53 4.1.1 Sử dụng encoder ể ọc tốc ộ ộng 53 4.1.2 Tính tốn hệ số PWM .53 4.1.3 Sử dụng Timer1 .54 4.1.4 Lƣu giải thu t chƣơng trình PID 55 4.1.4.1 Lƣu chƣơng trình 55 4.1.4.2 Lƣu giải thu t hàm ngắt I2C 55 4.1.4.3 Lƣu giải thu t hàm ngắt timer1 .56 4.1.4.4 Lƣu giải thu t hàm ngắt 56 4.1.4.5 Lƣu giải thu t PID 56 4.2 Giao tiếp với module SIM thông qua UART 62 4.2.1 Lƣu configmodule 63 4.2.2 Lƣu giải thu t gửi tin nhắn .64 4.2.3 Lƣu giải thu t thực gọi .64 4.3 Tính tốn thơng số MPU6050 64 4.4 Khối iều khiển trung tâm 66 4.4.1 Lƣu hàm main 66 4.4.2 Lƣu chƣơng trình ọc liệu cảm biến la bàn số .67 4.4.4 Lƣu chƣơng trình safe() .68 4.4.5 Lƣu chƣơng trình Joytick_control() 68 4.4.3 Lƣu chƣơng trình ọc liệu từ cảm biến gia tốc 70 4.5.6 Lƣu chƣơng trình dieu_huong() 70 4.4.7 Lƣu chƣơng trình dung_yen() 71 4.4.8 Lƣu chƣơng trình di_thang_re() 72 Trang ix an Xe Lăn Phƣơng Thẳng Đứng 4.4.9 Lƣu chƣơng trình di_lui_re() .72 4.4.10 Lƣu chƣơng trình xoay_trai() 72 4.4.11 Lƣu chƣơng trình xoay_phai() 76 4.4.12 Lƣu chƣơng trình Chair_control() .77 4.5 Remote iều khiển xe từ xa sóng RF 78 4.6 Khối vi iều khiển slave 78 HƢƠNG 5: KẾT QU THỰ NGHIỆM 85 5.1 Mô hình xe lăn sau hồn thành 85 5.2 Nh n xét xe lăn phƣơng thẳng ứng: .95 HƢƠNG 6: KẾT LUẬN VÀ HƢỚNG PH T TRIỂN .98 6.1 Kết lu n 98 6.2 Giới hạn 98 6.3 Phƣơng hƣớng phát triển 98 TÀI LIỆU THAM KH O 100 PHỤ LỤ .102 Trang x an Xe Lăn Phƣơng Thẳng Đứng printf(lcd_putc,"Loading System"); //Init_Input(); Init_I2C(); HMC5883L_init(); delay_ms(100); InitMpu6050(); delay_ms(100); x = ReadMpu6050(MPU6050_RA_WHO_AM_I); IF (x != 0x68) { LCD_Gotoxy(1,3); printf(lcd_putc,"Connection ERR!!!"); return; } compass(); g0=g; measure_MPU(); delay_ms(100); lcd_putc('\f'); while(true) { key(); safe(); if (TT=='H') joytick_control(); chair_control(); } } void Init_lcd(void) { lcd_init(); lcd_putc('\f'); } void Init_Input(void) { Khoa Đào Tạo Chất Lượng Cao – ĐH Sư Phạm Kỹ Thuật TPHCM an Trang 114 Xe Lăn Phƣơng Thẳng Đứng PORT_B_PULLUPS(0b11000011); } void measure_MPU() { accX = GetdataMpu6050(MPU6050_RA_ACCEL_XOUT_H); accY = GetdataMpu6050(MPU6050_RA_ACCEL_YOUT_H); accZ = GetdataMpu6050(MPU6050_RA_ACCEL_ZOUT_H); gyroX = GetdataMpu6050(MPU6050_RA_GYRO_XOUT_H); gyroY = GetdataMpu6050(MPU6050_RA_GYRO_YOUT_H); set_ticks(0); accXangle = (atan2(accY,accZ)+PI)*RAD_TO_DEG; double gyroXrate = (double)gyroX/131.0; gyroXangle += gyroXrate*((double)(get_ticks()-timer)/1000); kalAngleX = kalmanCalculate( accXangle, gyroXrate, (get_ticks()-timer) ); timer = get_ticks(); if(kalAngleX!=AX) { LCD_Gotoxy(1,2); printf(lcd_putc,"x= %f", kalAngleX); AX = kalAngleX; } set_ticks(0); accYangle = (atan2(accX,accZ)+PI)*RAD_TO_DEG; double gyroYrate = (double)gyroY/131.0; gyroYangle += gyroYrate*((double)(get_ticks()-timer)/1000); kalAngleY = kalmanCalculate( accYangle, gyroYrate, (get_ticks()-timer) ); timer = get_ticks(); if(kalAngleY!=AY) { LCD_Gotoxy(11,2); printf(lcd_putc,"y= %f", kalAngleY); AY = kalAngleY; } } Khoa Đào Tạo Chất Lượng Cao – ĐH Sư Phạm Kỹ Thuật TPHCM an Trang 115 Xe Lăn Phƣơng Thẳng Đứng void joytick_control() { doc_joytick(); dieuhuong(); if( pulseL != L || pulseR != R) { if( !pulseL && !pulseR ) { Send_Data( pulseL, slave1_addr); Send_Data( pulseR, slave2_addr); } doc_joytick(); dieuhuong(); if(pulseL-L>1 || pulseR-R>1) { for(i=0; i=1) L++; if(pulseR-R>=1) R++; Send_Data( R, slave2_addr); Send_Data( L, slave1_addr); doc_joytick(); dieuhuong(); if( !pulseL && !pulseR ) { Send_Data( pulseR, slave2_addr); Send_Data( pulseL, slave1_addr); break; } else if(L>pulseL || R>pulseR) { L=pulseL; R=pulseR; Send_Data( pulseR, slave2_addr); Khoa Đào Tạo Chất Lượng Cao – ĐH Sư Phạm Kỹ Thuật TPHCM an Trang 116 Xe Lăn Phƣơng Thẳng Đứng Send_Data( pulseL, slave1_addr); break; } else if((L==pulseL && R==pulseR)) break; lcd_gotoxy(1,3); printf(lcd_putc,"L=%d R=%d ",L, R); lcd_gotoxy(1,3); printf(lcd_putc,"x=%Ld y=%Ld ",pulseL, pulseR); delay_ms(50); } } else { Send_Data( pulseR, slave2_addr); Send_Data( pulseL, slave1_addr); } } L= pulseL; R= pulseR; lcd_gotoxy(1,3); printf(lcd_putc,"A=%d B=%d ",L, R); lcd_gotoxy(1,3); printf(lcd_putc,"L=%Ld R=%Ld ",pulseL, pulseR); } void chair_control() { tocdo_ghe() ; lcd_gotoxy(10,1); printf(lcd_putc,"ghe=%Ld ",kqadc4); if(!pulseL && !pulseR) { while (!input(but_up) && input(tick_top)) { c_up delay_ms(20); Khoa Đào Tạo Chất Lượng Cao – ĐH Sư Phạm Kỹ Thuật TPHCM an Trang 117 Xe Lăn Phƣơng Thẳng Đứng setup_ccp1(ccp_pwm); set_pwm1_duty(tocdo_ghecp); delay_ms(1); } while (( TT=='D'||!input(but_dow) )&& input(tick_bott)) { c_dow delay_ms(20); setup_ccp1(ccp_pwm); set_pwm1_duty(tocdo_ghecp); delay_ms(1); } set_pwm1_duty(0); setup_ccp1(ccp_off); c_up } } void compass() { g = HMC5883L_heading(); LCD_Gotoxy(1,1); printf(lcd_putc,"%03.0f N", g); } void safe() { if(!input(tick_top)) maxpulse = 2; else if(!input(tick_bott)) maxpulse = 12; else maxpulse = 5; if(!input(pin_b7)) Send_Data(16, slave3_addr); if(!input(pin_b2)) output_toggle(pin_d3); compass(); measure_MPU(); if( !PulseL && !PulseR) { Khoa Đào Tạo Chất Lượng Cao – ĐH Sư Phạm Kỹ Thuật TPHCM an Trang 118 Xe Lăn Phƣơng Thẳng Đứng if(abs(g-g0) >2) { Send_Data( 0, slave2_addr); Send_Data( 0, slave1_addr); } } g0=g; if(kalAngleY>195 || kalAngleY195 || kalAngleX225 || kalAngleY225 || kalAngleX195 || kalAngleY195 || kalAngleX= 45) output_high(pin_d3); else if(tem (marginU-100)) { pulseL=3; pulseR=1; } else if(kqadcx(marginU-100)) { pulseL= 1; pulseR=0; } else if(kqadcx marginU) { di_thang_re(); } else if(kqadcy < marginD) { if (ran == 'A') di_lui_re(); else if (ran == 'S') dung_yen(); } else if ((kqadcy < marginU) && (kqadcy > marginD)) { if(kqadcx >= marginU) { xoay_trai(); } else if(kqadcx

Ngày đăng: 27/12/2023, 03:49

Xem thêm: