Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 105 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
105
Dung lượng
4,31 MB
Nội dung
MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP ii LỜI CAM ĐOAN iv LỜI CẢM ƠN v MỤC LỤC vi DANH MỤC HÌNH viii DANH MỤC BẢNG xi TÓM TẮT xii CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ HỆ THỐNG VI CƠ ĐIỆN TỬ ( MEMS ) 2.1.1 Tổng quan hệ thống vi điện tử ( MEMS ) 2.1.2 Ứng dụng MEMS 2.2 TỔNG QUAN VỀ ĐƠN VỊ ĐO LƯỜNG QUÁN TÍNH ( IMU ) 2.2.1 Tổng quan đơn vị đo lường quán tính ( IMU ) 2.2.2 Tổng quan gia tốc kế Accelerometers 2.2.3 Tổng quan quay hồi chuyển Gyroscopes 2.3 GIỚI THIỆU PHẦN CỨNG 2.3.1 Module cảm biến gia tốc MPU-6050 (Motion Processing Unit) 2.3.2 VI ĐIỀU KHIỂN 21 2.3.3 MODULE BLUETOOTH 24 2.3.4 Module điều khiển động BTS7960 27 2.3.5 Cảm biến khoảng cách VL53L0X 28 2.3.6 Servo SG90 30 2.3.7 Mạch giảm áp DC LM2596 3A 31 2.4 CÁC CHUẨN TRUYỀN DỮ LIỆU 32 2.4.1 Chuẩn truyền thông nối tiếp bất đồng UART 32 2.4.2 Chuẩn truyền thông I²C 33 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 35 vi 3.1 GIỚI THIỆU 35 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 35 3.2.1 Thiết kế sơ đồ khối hệ thống 35 3.2.2 Tính tốn thiết kế mạch 37 a Thiết kế xử lý tín hiệu điều khiển - khối cảm biến gia tốc MPU – 6050 37 b Thiết kế xử lý tín hiệu điều khiển động 42 d Thiết kế khối cảm biến khoảng cách phát vật cản VL53L0X Servo 44 d Thiết kế khối nguồn Acquy 24VDC 45 3.2.3 Sơ đồ nguyên lý toàn mạch 48 CHƯƠNG THI CÔNG HỆ THỐNG 50 4.1 GIỚI THIỆU 50 4.2 THI CƠNG VÀ ĐĨNG GÓI HỆ THỐNG 50 4.2.1 Thi công kiểm tra khối nguồn 50 4.2.2 Thi cơng xử lý tín hiệu điều khiển MPU – 6050 51 4.2.3 Thi công điều khiển động 53 4.2.4 Thi công khối cảm biến khoảng cách phát vật cản VL53L0X 55 4.3 LẬP TRÌNH HỆ THỐNG 55 4.3.1 Lưu đồ giải thuật 55 a Lưu đồ xử lý tín hiệu cảm biến MPU-6050 56 b Lưu đồ xử lý điều khiển động 58 4.3.2 Phần mềm lập trình cho vi điều khiển Arduino IDE 63 4.4 LẬP TRÌNH MƠ PHỎNG 65 4.4.1 Lưu đồ 65 4.4.2 Xử lý tín hiệu 65 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 71 4.5.1 Viết tài liệu hướng dẫn sử dụng 71 CHƯƠNG 5: KẾT QUẢ – NHẬN XÉT – ĐÁNH GIÁ 73 5.1 KẾT QUẢ 73 5.2 NHẬN XÉT, ĐÁNH GIÁ 81 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 83 6.1 KẾT LUẬN 83 6.2 HƯỚNG PHÁT TRIỂN 83 TÀI LIỆU THAM KHẢO 84 vii DANH MỤC HÌNH Hình Module cảm biến gia tốc MPU -6050 10 Hình 2 Kit Vi điều khiển arduino pro mini 21 Hình Kit Vi điều khiển Arduino Nano V3.0 22 Hình Module Bluetooth HC-05 25 Hình Module Bluetooth HC – 06 26 Hình Module cầu H BTS7960 27 Hình Cảm biến khoảng cách VL53L0X 29 Hình Servo SG90 30 Hình Mạch giảm áp DC LM2596 3A 31 Hình 10 Chuẩn truyền thông UART 32 Hình 11 Ví dụ chuẩn truyền thông I²C 33 Hình Sơ đồ khối hệ thống 36 Hình Định hướng trục cảm biến MPU-6050 38 Hình 3 Hướng trục góc quay 39 Hình Sơ đồ tín hiệu cảm biến MPU-6050 40 Hình Sơ đồ nguyên lý xử lý tín hiệu MPU-6050 42 Hình Hình ảnh động xe lăn 43 Hình Sơ đồ nguyên lý mạch điều khiển động 44 Hình Sơ đồ nguyên lý khối cảm biến khoảng cách VL53L0X servo 45 Hình Hình ảnh Acquy xe lăn điện 46 Hình 10 Sơ đồ nguyên lý khối nguồn acquy 47 Hình 11 Sơ đồ nguyên lý khối xử lý tín hiệu cảm biến MPU-6050 48 Hình 12 Sơ đồ nguyên lý khối xử lý tín hiệu, điều khiển động 49 Hình Nguồn acquy công tắc 50 Hình hình ảnh tai nghe 51 Hình Vị trí lắp đặt cảm biến MPU-6050 52 viii Hình 4 Vị trí lắp đặt pin 52 Hình Vị trí công tắc cổng sạc pin 52 Hình Vị trí kết nối thiết bị 53 Hình Đóng gói thiết bị điều khiển 53 Hình Hộp đựng điều khiển động 54 Hình Hình ảnh module bên hộp điều khiển động 54 Hình 10 Hộp điều khiển động hoàn thiện 54 Hình 11 hình ảnh đầu nối với hộp cảm biến servo 55 Hình 12 Vị trí đặt cảm biến khoảng cách servo trước 55 Hình 13 Lưu đồ giải thuật hệ thống điều khiển xe lăn điện qua cảm biến gia tốc 56 Hình 14 Lưu đồ chương trình xử lý tính hiệu cảm biến MPU-6050 57 Hình 15 Lưu đồ chương trình kiểm tra giá trị gửi tín hiệu điều khiển 57 Hình 16 Lưu đồ giải thuật xử lý điều khiển động 58 Hình 17 Lưu đồ chương trình đọc giá trị cảm biến 59 Hình 18 Lưu đồ chương trình đọc giá trị cảm biến phía trước 59 Hình 19 Lưu đồ chương trình đọc giá trị cảm biến sau 60 Hình 20 Lưu đồ chương trình xử lý có tín hiệu cảm biến phía trước 60 Hình 21 Lưu đồ chương trình xử lý có tín hiệu cảm biến phía sau 61 Hình 22 Chương trình điều khiển động 62 Hình 23 Chương trình chạy servo 62 Hình 24 Chương trình delay_ms 63 Hình 25 Giao diện Arduino IDE 64 Hình 26 Lưu đồ kiểm tra giá trị cảm biến để gửi tín hiệu điều khiển 65 Hình 27 Tín hiệu thơ 65 Hình 28 Tín hiệu gật liên tục 66 Hình 29 Tín hiệu cài đặt giá trị offset 66 Hình 30 Tín hiệu giá trị offset thiết lập 67 Hình 31 Tín hiệu thiết bị đặt nằm 67 Hình 32 Tín hiệu tiến 68 Hình 33 Tín hiệu lùi ngửa đầu sau 68 ix Hình 34 Tín hiệu lùi quay đầu trái 69 Hình 35 Tín hiệu lùi quay đầu qua phải 69 Hình 36 Tín hiệu sang trái 70 Hình 37 Tín hiệu sang phải 71 Hình Hộp điều khiển hồn chỉnh 73 Hình Hình ảnh tai nghe điều khiển hồn thiện 74 Hình Hình ảnh hộp chứa cảm biến khoảng cách hồn thiện 74 Hình Hình ảnh xe lăn lắp hộp cảm biến điều khiển 75 Hình 5 Hình ảnh ngồi lên xe lăn 75 Hình Động tác cúi đầu để điều khiển trước 76 Hình Động tác ngước lên xe trước 76 Hình Động tác nghiêng đầu sang trái 77 Hình Động tác nghiêng đầu sang phải 77 Hình 10 Động tác ngửa đầu phía sau 78 Hình 11 Động tác quay nhìn đằng sau 78 Hình 12 Hình ảnh xe dừng gặp tường 79 Hình 13 Hình ảnh xe dừng lùi gặp tường 79 Hình 14 Xe dừng trước gặp tủ máy tính 80 Hình 15 Xe dừng trước gặp người 80 Hình 16 Xe lùi gặp người đứng 81 x DANH MỤC BẢNG Bảng Thông số kỹ thuật cảm biến quay hồi chuyển Gyroscope 12 Bảng 2 Thông số kỹ thuật cảm biến gia tốc Accelerometer 13 Bảng Cấu trúc ghi 25 14 Bảng Cấu trúc ghi 27 15 Bảng Bảng phạm vi thang đo đầu quay hồi chuyển 16 Bảng Cấu trúc ghi 28 16 Bảng Phạm vi toàn thang đo đầu gia tốc 17 Bảng Cáu trúc ghi 59 đến 64 17 Bảng Bảng độ nhạy gia tốc 19 Bảng 10 Cấu trúc ghi 67 đến 72 19 Bảng 11 Độ nhạy quay hồi chuyển 20 Bảng Thông số kỹ thuật động DC 43 Bảng Khoảng cách trung bình đo VL53L0X 44 Bảng 3 Thông số đo 46 Bảng Hướng dẫn sử dụng xe lăn 72 xi TÓM TẮT Đề tài “Nghiên cứu, thiết kế thi công điều khiển xe lăn điện sử dụng cảm biến gia tốc” sản phẩm nghiên cứu tạo điều khiển không dây sử dụng cử đầu để điều khiển hoạt động xe lăn điện Cụ thể hơn, hoạt động điều khiển dựa cử đầu thu thập từ cảm biến gia tốc MPU6050 xử lý vi điều khiển Arduino Promini, sau truyền tín hiệu xử lý tín hiệu điều khiển động xe bluetooth, điều khiển hoạt động xe lăn điện Nhóm sử dụng cảm biến khoảng cách VL53L0X để phát vật cản trước sau xe giúp xe tránh va chạm Việc thiết kế thi cơng điều khiển với tiêu chí an tồn, dễ sử dụng giá thành hợp lý cho người dùng người khuyết tật, bệnh nhân ưu tiên đặt lên hàng đầu xii ĐỒ ÁN TỐT NGHIỆP CHƯƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Theo công bố Tổng cục thống kê UNICEF ngày 11 -1 -2019, 7% dân số Việt Nam từ tuổi trở lên – khoảng 6,2 triệu người người khuyết tật Bên cạnh đó, có 13% dân số - gần 12 triệu người, sống chung hộ gia đình có người khuyết tật Người khuyết tật phân thành loại dạng tật, là: khuyết tật vận động (chân, tay); khuyết tật nghe, nói (câm, điếc); khuyết tật nhìn (khuyết tật mắt, khiếm thị); khuyết tật thần kinh, tâm thần (người rối loạn thần kinh, người điên); khuyết tật trí tuệ (bại não, động kinh, tự kỷ); khuyết tật khác (nạn nhân chất độc da cam, người nhiễm vi rút độc hủy hoại thể…).[1] Cơ sở hạ tầng nước ta chưa phát triển hạng mục dành cho người khuyết tật Nhà nước trợ cấp dụng cụ hỗ trợ cho người khuyết tật chân tay giả, xe lăn, máy trợ thính…nhưng người khuyết tật vận động hay nghe, nhìn xe lăn vật dụng cần thiết để di chuyển Tuy nhiên, để người khuyết tật tự lại xe lăn địi hỏi phải có điều khiển để xe lăn di chuyển theo ý muốn người khuyết tật Có nhiều nghiên cứu điều khiển cho xe lăn điện báo “GyroAccelerometer based Control of an Intelligent Wheelchair” [2] nhớm tác giả Rafia Hassani, Mohamed Boumehraz, Maroua Hamzi, Zineb Habba mắt ngày tháng năm 2018, đề tài xe lăn điện điều khiển cử động đầu nhóm sinh viên đại học sư phạm kỹ thuật Đà Nẵng, Đại học giao thơng vận tải, … cịn số nhược điểm thiết bị điều khiển sơ sài, sử dụng cảm biến siêu âm phát vật cản nhiều gây thẩm mĩ, … Với mục đích tạo điều khiển giúp người khuyết tật di chuyển dễ dàng xe lăn vận dụng ưu điểm nhằm khắc phục số nhược điểm mà nghiên cứu trước thực hiện, nhóm xin giới thiệu đề tài: “Nghiên cứu, thiết kế thi công điều khiển xe lăn điện cảm biến gia tốc”, nhóm tiến hành nghiên cứu thực Với mơ hình này, BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP - Y SINH ĐỒ ÁN TỐT NGHIỆP phát triển điều khiển biến xe lăn thành vật dụng hữu ích giúp cho người khuyết tật lại dễ dàng 1.2 MỤC TIÊU Mục tiêu nghiên cứu đề tài “Nghiên cứu, thiết kế thi công điều khiển xe lăn điện sử dụng cảm biến gia tốc” sử dụng vi điều khiển Arduino Pro Mini xử lý tín hiệu từ cảm biến gia tốc MPU - 6050 sau giao tiếp với Arduino Nano xử lý tín hiệu điều khiển động đặt xe để điều khiển xe lăn điện, tích hợp cảm biến khoảng cách lazer VL53L0X để phát vật cản trước sau 1.3 NỘI DUNG NGHIÊN CỨU Để thực đề tài: “Nghiên cứu, thiết kế, thi công điều khiển xe lăn điện sử dụng cảm biến gia tốc”, cần nghiên cứu nội dung sau đây: NỘI DUNG 1: Tìm hiểu cách thức hoạt động module liên quan NỘI DUNG 2: Nghiên cứu thuật tốn xử lý tín hiệu từ cảm biến gia tốc MPU6050 NỘI DUNG 3: Giải pháp truyền tín hiệu giao tiếp cảm biến gia tốc MPU – 6050 điều khiển động NỘI DUNG 4: Giải pháp thiết kế xử lý tín hiệu cảm biến khoảng cách lazer VL53L0X phát vật cản NỘI DUNG 5: Hoàn thiện hệ thống điều khiển tiến hành chạy thử nghiệm xe, thêm giải pháp an toàn cho người điều khiển xe NỘI DUNG 6: Đánh giá kết thực 1.4 GIỚI HẠN Bộ xử lý tín hiệu điều khiển MPU-6050 sử dụng nguồn cấp từ pin sạc 5VDC Bộ xử lý tín hiệu điều khiển động sử dụng nguồn cấp Acqui 24VDC cho động DC 24VDC - 15.8A - 250W Giao tiếp truyền tín hiệu module bluetooth HC-05 xử lý tín hiệu MPU6050 module HC-06 xử lý tín hiệu điều khiển động có giới hạn sử dụng phạm vi 10 mét BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH ĐỒ ÁN TỐT NGHIỆP Dùng cảm biến khoảng cách lazer VL53L0X để phát vật cản trước sau xe lăn có giới hạn đo trung bình sau: Tối thiểu: 2cm Trong nhà: Nền màu trắng: 200cm+, màu khác: 80cm Ngoài trời: Nền màu trắng: 80cm, màu khác: 50cm 1.5 BỐ CỤC Chương 1: Tổng quan Chương trình bày đặt vấn đề dẫn nhập lý chọn đề tài, mục tiêu, nôi dung nghiên cứu, giới hạn thông số bố cục đồ án Chương 2: Cơ sở lý thuyết Nội dung chương bao gồm lý thuyết xử lý tín hiệu cảm biến gia tốc MPU – 6050, cảm biến phát vật cản VL53L0X, giới thiệu vi điều khiển Arduino thư viện liên quan Chương 3: Thiết kế thi cơng Chương tìm hiểu sơ đồ cách kết nối cho hệ thống Chương 4: Thi công hệ thống Nội dụng chương q trình thực thi cơng điều khiển bao gồm xử lý tín hiệu điều khiển MPU6050 xử lý tín hiệu điều khiển động Chương 5: Nhận xét đánh giá Nội dụng chương tổng hợp kết đạt sau thi cơng mơ hình với nhận xét đánh giá trình thực Chương 6: Kết luận hướng phát triển Nội dụng chương tổng hợp kết đạt sau thi cơng mơ hình với nhận xét đánh giá q trình thực BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP - Y SINH ĐỒ ÁN TỐT NGHIỆP TÀI LIỆU THAM KHẢO [1] Việt Nam công bố kết Điều tra Quốc gia quy mô lớn người khuyết tật (2016) – www.unicef.org – 1/2019 [2] Gyro-Accelerometer based Control of an Intelligent Wheelchair Received 19 December 2017, Published online: June2018 [3] An Introduction to MEMS (Micro-electromechanical Systems) - Prime Faraday Technology Watch – 01/ 2002 [4] Ryan Goodrich – Accelerometer - What They Are and How They Work - LiveScience Contributor – 01/10/2013 [5] Con quay hồi chuyển - www.wikipedia.org [6] A Guide to using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications - www.starlino.com – 12/2009 [7] Gadget Gangster - Accelerometer & Gyro Tutorial - www.instructables.com [8] InverseSense Inc (2011), “MPU-6000 and MPU-6050 Product Specification Revision 3.1”, PS-MPU-6000A-00 Rev 3.1, 24/10/2011 [9] BTS 7960 high current PN half bridge datasheet – 12/2004 [10] Stmicroelectronics - VL53L0X datasheet – 4/2018 [11] Giới Thiệu Giao Diện Arduino IDE – www.hourofcode.vn [12] Introduction to Kalman Filter – www.kalmanfilter.net SÁCH THAM KHẢO [13] Nguyễn Đình Phú, “Giáo trình vi xử lý”, NXB Trường ĐH Sư Phạm Kỹ Thuật Tp.HCM,2016 [14] Phạm Quang Huy, “Arduino dành cho người tự học” , NXB Thanh Niên , 2019 [15] Hanoi Aptech , “Giáo trình lập trình C “ , NXB Hà Nội [16] Rafia Hassani, Mohamed Boumehraz, Maroua Hamzi, Zineb Habba – GyroAccelerometer based Control of an Intelligent Wheelchair – 06/2018 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH 84 ĐỒ ÁN TỐT NGHIỆP PHỤ LỤC Chương trình xử lý tín hiệu cảm biến MPU-6050 #include //Thư viện giao tiếp I2C #include #include SoftwareSerial BTSerial(3, 4); // RX | TX const int MPU_addr=0x68; //Địa I2C MPU6050 int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; float accX,accY,accZ; float gyroX, gyroY, gyroZ; float angleAccX,angleAccY,angleAccZ; float gyroXoffset,gyroYoffset,gyroZoffset; float angleX,angleY,angleZ ; float angleGyroX,angleGyroY,angleGyroZ; float preInterval,interval; float gyroX_K,gyroY_K,gyroZ_K; float angleX_K,angleY_K,angleZ_K; boolean straight_sig,back_sig,right_sig,left_sig; boolean flat_straight,flat_back_1,flat_back_2,allow_straight,allow_back,enable; int a,b,c,d; int a1; //khai báo lọc SimpleKalmanFilter simpleKalmanFilter_angleX(1, 1, 0.01); SimpleKalmanFilter simpleKalmanFilter_angleY(1, 1, 0.001); SimpleKalmanFilter simpleKalmanFilter_angleZ(1, 1, 0.001); SimpleKalmanFilter simpleKalmanFilter_GyroX(1, 1, 0.01); SimpleKalmanFilter simpleKalmanFilter_GyroY(1, 1, 0.001); SimpleKalmanFilter simpleKalmanFilter_GyroZ(1, 1, 0.001); void calcGyroOffsets(){ float x=0,y=0,z=0; int16_t rx, ry, rz; for (int i = 0;i