Điều khiển xe lăn bằng giọng nói hoặc smartphone

112 31 0
Điều khiển xe lăn bằng giọng nói hoặc smartphone

Đ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

TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o -Tp HCM, ngày 20 tháng 12 năm 2019 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Lê Văn Luận Chuyên ngành: Kỹ thuật Điện - Điện tử MSSV: 15141206 Mã ngành: 141 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2015 Lớp: Họ tên sinh viên 2: Phạm Minh Kha MSSV: 13141132 Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 141 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2013 Lớp: I TÊN ĐỀ TÀI: ĐIỀU KHIỂN XE LĂN ĐIỆN BẰNG GIỌNG NÓI HOẶC SMARTPHONE II NHIỆM VỤ Các số liệu ban đầu: • Xe lăn điện • Xe chạy tiến, chạy lùi, xoay trái, xoay phải, điều chỉnh thay đổi tốc độ di chuyển • Sử dụng module có sẵn thị trường để phục vụ thi cơng đề tài Nội dung thực hiện: • Tìm hiểu xe lăn điện • Tìm hiểu chuẩn truyền thơng UART • Tìm hiểu cách điều chế độ rộng xung PWM • Tìm hiểu mạch cơng suất điều khiển động DC i • Tìm hiểu module wifi ESP8266, mạch nhận dạng giọng nói Voice Recognition V3, mạch giảm áp DC LM2596, cầu H BTS7960 • Tìm hiểu ứng dụng MIT App Inventor viết phần mềm Android • Thiết kế giao diện để điều khiển: App android • Viết chương trình điều khiển cho ESP8266, nạp code chạy thử nghiệm sản phẩm, chỉnh sửa hồn thiện hệ thống • Thực viết luận văn báo cáo • Tiến hành báo cáo đề tài tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 26/08/2019 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 26/12/2019 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: CÁN BỘ HƯỚNG DẪN TH S NGUYỄN THANH NGHĨA BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH ii TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o -Tp HCM, ngày 20 tháng 12 năm 2019 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Lê Văn Luận Lớp: 15141DT2A MSSV: 15141206 Họ tên sinh viên 2: Phạm Minh Kha Lớp: 13141DT1A MSSV: 13141132 Tên đề tài: ĐIỀU KHIỂN XE LĂN ĐIỆN BẰNG GIỌNG NÓI HOẶC SMARTPHONE Tuần/ngày Tuần Nội dung - Gặp GVHD để nghe phổ biến yêu cầu làm đồ án, tiến hành chọn đồ án (26/8 –1/9) - GVHD tiến hành xét duyệt đề tài Tuần (2/9 – 8/9) - Viết đề cương - Viết lịch trình làm đề tài Tuần (9/9 – 15/9) Xác nhận GVHD -Tìm hiểu sở lý thuyết liên quan với đề tài: xe lăn điện, mạch nhận dạng giọng nói Voice Recognition V3,mạch giảm áp DC LM2596 3A, ESP8266 NodeMCU, mạch cầu H BTS7960, chuẩn giao tiếp, Tuần (16/9 – 22/9) -Tìm hiểu sở lý thuyết liên quan với đề tài: xe lăn điện, mạch nhận dạng giọng nói Voice Recognition V3, ESP8266 NodeMCU, mạch giảm áp DC LM2596 3A, động DC giảm tốc, mạch cầu H BST7960, chuẩn giao tiếp, Tuần (23/9– 29/9) - Tìm hiểu giao tiếp module thiết bị - Tiến hành thiết kế sơ đồ khối, giải thích chức khối iii - Tính tốn thiết kế khối nguồn Tuần (30/9 – 6/10) - Tìm hiểu giao tiếp module thiết bị - Tiến hành thiết kế sơ đồ khối, giải thích chức khối - Tính tốn thiết kế khối nguồn động mạch Tuần (7/10 – 13/10) -Kết nối tất khối lại thiết kế sơ đồ tồn mạch, giải thích ngun lý hoạt động mạch Tuần (14/10 – 20/10) -Kết nối tất khối lại thiết kế sơ đồ toàn mạch, giải thích nguyên lý hoạt động mạch Tuần (21/10 – 27/10) - Lập trình cho module ESP8266 NodeMCU Tuần (28/10 –3/11) - Lập trình cho module ESP8266 NodeMCU tiến hành test xe Tuần 10 (4/11 – 10/11) - Lập trình cho module ESP8266 NodeMCU tiến hành test xe Tuần 11 (11/11 – 17/11) - Lập trình module ESP8266 NodeMCU tiến hành test xe Tuần 12 (18/11 – 24/11) - Lập trình cho module ESP8266 NodeMCU tiến hành test xe - Viết báo cáo nội dung làm Tuần 13 (25/11 – 1/12) - Lập trình cho module ESP8266 NodeMCU tiến hành test xe Viết báo cáo nội dung làm Tuần 14 (2/12 – 8/12) - Viết báo cáo nội dung làm Tuần 15 (9/12 – 15/12) - Hoàn thiện báo cáo gởi cho GVHD để xem xét góp ý lần cuối trước in báo cáo Tuần 16 (16/12 – 22/12) - Nộp báo cáo iv Tuần 17 - Làm slide báo cáo báo cáo đề tài (23/12 – 29/12) GV HƯỚNG DẪN (Ký ghi rõ họ tên) v LỜI CAM ĐOAN Đề tài tự thực dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Người thực đề tài Lê Văn Luận Phạm Minh Kha vi LỜI CẢM ƠN Sau hồn thành đề tài, lời nói nhóm em xin gửi lời cảm ơn chân thành đến quý Thầy, Cô Trường Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh chung đặc biệt Thầy, Cô Khoa Điện - Điện Tử nói riêng dành hết tâm huyết giảng dạy, truyền đạt kinh nghiệm kiến thức quý báu cho chúng em suốt năm học vừa qua, tạo tiền đề để thực đề tài tạo tảng cho tương lai sau chúng em Nhóm em xin cảm ơn sâu sắc chân thành tới Thầy NGUYỄN THANH NGHĨA trực tiếp hướng dẫn chúng em cách tận tình suốt trình làm đề tài, Thầy tạo điều kiện hỗ trợ chúng em mình, cung cấp thiết bị đưa hướng đi, cách giải phù hợp để chúng em vượt qua khó khăn Một lần em xin chân thành cảm ơn Thầy Cuối chúng em xin gửi lời cảm ơn đến gia đình, người thân bạn bè giúp đỡ vật chất lẫn tinh thần để nhóm em hồn thành đề tài dễ dàng Xin cảm ơn người Trong trình tìm hiểu thực đề tài, thời gian kiến thức chúng em có giới hạn nên khơng thể có thiếu sót Vì vậy, nhóm chúng em mong nhận đóng góp quý báu Thầy, Cô để đề tài chúng em hoàn thiện Người thực đề tài Lê Văn Luận Phạm Minh Kha vii 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 iii LỜI CAM ĐOAN vi LỜI CẢM ƠN vii MỤC LỤC viii DANH MỤC HÌNH ẢNH xi DANH MỤC BẢNG xiv DANH SÁCH CÁC TỪ VIẾT TẮT xv TÓM TẮT xvi Chương 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 .3 Chương CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ XE LĂN 2.1.1 Lịch sử phát triển .4 2.1.2 Sự đa dạng xe lăn 2.1.3 Ưu nhược điểm 16 2.2 ĐIỀU KHIỂN TỐC ĐỘ ĐỘNG CƠ SỬ DỤNG PWM 16 2.2.1 Giới thiệu 16 2.2.2 Nguyên lý điều chế độ rộng xung PWM 16 2.2.3 Phương pháp điều chế độ rộng xung PWM 18 2.2.4 Ứng dụng điều chế độ rộng xung PWM điều khiển 18 2.3 CHUẨN GIAO TIẾP UART 18 2.3.1 Khái niệm 18 2.3.2 Các đặc điểm quan trọng chuẩn truyền thông UART .20 2.3.3 Ứng dụng 21 viii 2.3.4 Ưu nhược điềm 21 2.4 CHUẨN GIAO TIẾP WI-FI 22 2.4.1 Giới thiệu 22 2.4.2 Nguyên tắc hoạt động 22 2.4.3 Một số chuẩn kết nối 23 2.5 GIỚI THIỆU PHẦN CỨNG 24 2.5.1 Module Wifi ESP8266 NodeMCU 24 2.5.2 Mạch cầu H - BTS7960 28 2.5.3 Động DC giảm tốc 31 2.5.4 Mạch hạ áp LM2596 37 2.5.5 Mạch nhận dạng giọng nói Voice Recognition V3 38 2.5.6 Nguồn pin 43 Chương TÍNH TỐN VÀ THIẾT KẾ 45 3.1 GIỚI THIỆU 45 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 45 3.2.1 Thiết kế sơ đồ khối hệ thống 45 3.2.2 Tính toán thiết kế 46 Chương THI CÔNG HỆ THỐNG 51 4.1 LẬP TRÌNH HỆ THỐNG 51 4.2 GIAO DIỆN ĐIỀU KHIỂN 54 4.3 GIỚI THIỆU PHẦN LẬP TRÌNH VI ĐIỀU KHIỂN 57 4.4 HUẤN LUYỆN GIỌNG NÓI CHO MODULE VR3 58 4.5 PHẦN MỀM LẬP TRÌNH CHO ĐIỆN THOẠI 62 4.6 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 64 4.6.1 Viết tài liệu hướng dẫn sử dụng 64 4.6.2 Quy trình thao tác 67 Chương KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 68 5.1 KẾT QUẢ ĐẠT ĐƯỢC 68 5.1.1 Tổng quát kết đạt 68 5.1.2 Kết mạch điều khiển trung tâm 68 5.1.3 Kết thực nghiệm 71 ix 5.1.4 Kết ứng dụng điều khiển 71 5.2 NHẬN XÉT, ĐÁNH GIÁ 72 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73 6.1 KẾT LUẬN 73 6.2 HƯỚNG PHÁT TRIỂN 73 PHỤ LỤC 75 x BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH74PHỤ LỤC CHƯƠNG TRÌNH CHO ARDUINO #include #include #include #include #include "VoiceRecognitionV3.h" #define D0 16 #define D1 #define D2 #define D3 #define D4 #define D5 14 /**#define D6 12 #define D7 13 #define D8 15*/ #define D9 #define D10 #define ENA_DC1 D0 // L_ENA vs R_ENA noi chung #define LPWM_1 D1 #define RPWM_1 D2 #define ENA_DC2 D3 // L_ENA vs R_ENA noi chung #define LPWM_2 D4 #define RPWM_2 D5 VR myVR(15,13); // 2:RX 3:TX, you can choose your favourite pins // uint8_t records[7]; // save record uint8_t buf[64]; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH75 //int led=12; //Led la bien dieu khien den led Gan chan dieu khien Led vao chan 12 cua ESP (1 la sang, la tat) int toi=0; int lui=0; int trai=0; int phai=0; int dung=0; #define toi1Record(0)//nhan gia tri tu lenh 0//#define toi2Record(1)//#define toi3Record(2)//#define toi4Record(3)//#define toi5Record(4)#define lui1Record(5) // nhan gia tri tu lenh 5//#define lui2Record(6)//#define lui3Record(7)//#define lui4Record(8)//#define lui5Record(9)#define trai1Record(10)// nhan gia tri tu lenh 10//#define trai2Record(11)//#define trai3Record(12)//#define trai4Record(13)//#define trai5Record(14)#define phai1Record(15)// nhan gia tri tu lenh 15//#define phai2Record(16)//#define phai3Record(17)//#define phai4Record(18)//#define phai5Record(19)#define dung1Record(20)// nhan gia tri tu lenh 20#define dung2Record(21)//#define dung3Record(22)//#define dung4Record(23) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH76//#define dung5Record (24) const char* ssid = "WiFi_ESP8266_NODEMCU"; ESP8266WebServer server(80); String data = "S"; unsigned short speedCar = ; void printSignature(uint8_t *buf, int len) { int i; for(i=0; i0x19 && buf[i]0){ printSignature(buf+4, buf[3]); } else{ Serial.print("NONE"); } Serial.println("\r\n"); } void setup() { pinMode(LPWM_1, OUTPUT); pinMode(LPWM_2, OUTPUT); pinMode(RPWM_2, OUTPUT); pinMode(RPWM_1, OUTPUT); pinMode(ENA_DC1, OUTPUT); pinMode(ENA_DC2, OUTPUT); //pinMode(led, OUTPUT); myVR.begin(9600); Serial.begin(115200); WiFi.mode(WIFI_AP); WiFi.softAP(ssid); server.on("/", HTTP_handleRoot); server.onNotFound(HTTP_handleRoot); server.begin(); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH78 if(myVR.clear() == 0){ Serial.println("Recognizer cleared."); }else{ Serial.println("Not find VoiceRecognitionModule."); Serial.println("Please check connection and restart Arduino."); while(1); } if(myVR.load((uint8_t)toi1Record) >= 0){ Serial.println("toiRecord1 loaded"); } if(myVR.load((uint8_t)lui1Record) >= 0){ Serial.println("luiRecord1 loaded"); } if(myVR.load((uint8_t)trai1Record) >= 0){ Serial.println("traiRecord1 loaded"); } if(myVR.load((uint8_t)phai1Record) >= 0){ Serial.println("phaiRecord1 loaded"); } if(myVR.load((uint8_t)dung1Record) >= 0){ Serial.println("dungRecord1 loaded"); } if(myVR.load((uint8_t)dung2Record) >= 0){ Serial.println("dungRecord2 loaded"); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH79void app() { /** Voice Recording*/ server.handleClient(); if('1'== data[0]){speedCar =65;Serial.println("Toc 1");}elseif('2'==data[0]){speedCar=130;Serial.println("Toc 2");}elseif('3'==data[0]){speedCar=195;Serial.println("Toc 3");}elseif('4'==data[0]) {speedCar=260;Serial.println("Toc 4");}elseif('5'==data[0]){speedCar=325;Serial.println("Toc 5");}//if((data[0] =='F')||(toi==1)){goAhead();Serial.println("dang toi");delay(0);}elseif((data[0]=='B')||(lui==1)){goBack(); else if ((data[0]== 'L')||(trai == 1)) {goLeft(); else if ((data[0]== 'R')||(phai == 1)) {goRight(); == 'S')) Serial.println("dang re phai");delay(0);} else if ((dung == 1)||(data[0] Serial.println("dang dung");delay(0);} } void record() { int ret; ret = myVR.recognize(buf, 50); if (ret >0){ switch(buf[1]){ case toi1Record: {stopCar(); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH80{toi = 1; lui=0; trai=0; phai =0;dung=0; } //ct chay dk xe break; case lui1Record: {toi = 0; lui=1; trai=0; phai =0;dung=0;} //ct chay dk xe break; case trai1Record: {toi = 0; lui=0; trai=1; phai =0;dung=0;} }//ct chay dk xe break; case phai1Record: {toi = 0; lui=0; trai=0; phai =1;dung =0;} break; case dung1Record: {toi = 0; lui=0; trai=0; phai =0;dung=1;} //ct chay dk xe break; case dung2Record: {toi = 0; lui=0; trai=0; phai =0;dung=1;} //ct chay dk xe default: Serial.println("Record function undefined"); break; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH81printVR(buf); //Serial.println((char *)buf[1]+(String)"xxxxxxxxxxxxxxxxxxxxxx"); /** voice recognized */ } } void detect() { server.handleClient(); while ((data[0] == 'F') || (data[0] == 'B') || (data[0] == 'L') || (data[0] == 'R')) {toi = 0; lui=0; trai=0; phai =0;dung=0;break; } } void stopCar() { digitalWrite(ENA_DC1,LOW); digitalWrite(ENA_DC2,LOW); delay(100); analogWrite(RPWM_1, 0); analogWrite(LPWM_1, 0); analogWrite(RPWM_2, 0); analogWrite(LPWM_2, 0); delay(0); } void goAhead() { digitalWrite(ENA_DC1,HIGH); digitalWrite(ENA_DC2,HIGH); delay(100); analogWrite(RPWM_1, speedCar); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH82analogWrite(LPWM_1, 0); analogWrite(RPWM_2, speedCar); analogWrite(LPWM_2, 0); delay(0); } void goBack() { digitalWrite(ENA_DC1,HIGH); digitalWrite(ENA_DC2,HIGH); delay(100); analogWrite(RPWM_1, 0); analogWrite(LPWM_1, speedCar); analogWrite(RPWM_2, 0); analogWrite(LPWM_2, speedCar); delay(0); } void goLeft() { digitalWrite(ENA_DC1,HIGH); digitalWrite(ENA_DC2,HIGH); delay(100); analogWrite(RPWM_1, 0); analogWrite(LPWM_1, 0); analogWrite(RPWM_2, speedCar); analogWrite(LPWM_2, 0); delay(0); } void goRight() { digitalWrite(ENA_DC1,HIGH); digitalWrite(ENA_DC2,HIGH); delay(100); analogWrite(RPWM_1, speedCar); analogWrite(LPWM_1, 0); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH83analogWrite(RPWM_2, 0); analogWrite(LPWM_2, 0); delay(0); } void loop() { record(); delay (50); detect(); delay (50); app(); } void HTTP_handleRoot(void) { data = server.arg("kitu"); server send(200, "text/html","1"); Serial.println(data); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH84 ... cứu đề tài: ? ?Xe lăn điện điều khiển tay kết hợp giọng nói? ?? từ năm 2012 dựa vào hai nguyên tắc điều khiển điều khiển tay qua Joystick điều khiển giọng nói qua hệ thống nhận dạng giọng nói Sản phẩm... tài ? ?Điều khiển xe lăn điện giọng nói smartphone? ?? đề tài luận văn tốt nghiệp Đây đề tài có ý nghĩa nhân văn sâu sắc, giúp ích cho người tàn tật khơng có khả điều khiển xe lăn tay chân Xe lăn điều. .. tiêu đề tài sử dụng mạch nhận dạng giọng nói đồng thời kết hợp với việc điều khiển qua smartphone để để ứng dụng vào việc điều khiển xe lăn Xe lăn người dùng điều khiển tiến, lùi, rẽ trái, rẽ phải

Ngày đăng: 26/05/2021, 10:38

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan