Thiết kế và thi công găng tay phát hiện vật cản cho người khiếm thị sử dụng Raspberry Pi giao tiếp với cảm biến siêu âm và báo hiệu bằng giọng nói thông qua loa. Chương trình được viết trên hệ điều hành của Raspberry Pi.
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP Y SINH ĐỒ ÁN MÔN HỌC ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI GVHD: Th.S Võ Đức Dũng Sinh viên thực MSSV Nguyễn Văn Thi 17129043 Nguyễn Ngọc Phương Uyên 17129060 Khóa: 2017 Ngành: Điện tử y sinh TP.Hồ Chí Minh, tháng 06, năm 2020 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI LỜI CAM ĐOAN Chúng em tuyên bố sản phẩm báo cáo làm từ kiến thức tổng quát chuyên ngành chúng em Bên cạnh đó, chúng em tìm nhiều nguồn tài liệu để hoàn thành nhiệm vụ chúng em Các kết nghiên cứu kết luận báo cáo trung thực, không chép từ nguồn Nếu chúng em làm, chúng em hoàn toàn chịu trách nhiệm chịu hình phạt thầy chịu trách nhiệm hướng dẫn môn ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI LỜI CẢM ƠN Để hoàn thành dự án này, chúng em muốn nói lời cảm ơn đến giảng viên chúng em Đại học Sư phạm Kỹ thuật Hồ Chí Minh giúp chúng tơi có kiến thức giảng viên Khoa Điện tử Kỹ thuật Điện để có kiến thức chuyên mơn Từ đó, chúng em có kiến thức ổn định có điều kiện tốt để nghiên cứu nghiên cứu Và đặc biệt cảm ơn Th.S Võ Đức Dũng giúp đỡ chúng em, cho chúng em hướng tốt để thực dự án đề xuất giải pháp để giải vấn đề mà chúng em gặp phải Trong lịch trình dự án, chúng em ln có kiến thức lời khuyên từ thầy với tập trung cao độ Điều quan trọng trình học tập làm việc chúng em Mặc dù có nỗ lực tốt nhất, thời gian kinh nghiệm thực tế nhóm chưa ổn, lỗi khơng thể tránh khỏi Chúng mong nhận ý kiến từ giáo viên Xin chân thành cảm ơn! TP Hồ Chí Minh, ngày 25 tháng 06 năm 2020 Sinh viên Nguyễn Văn Thi Nguyễn Ngọc Phương Uyên ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH SÁCH HÌNH ẢNH DANH SÁCH BẢNG TÓM TẮT CHƯƠNG 1: TỔNG QUAN 1.1 1.2 1.3 1.4 1.5 Lý chọn đề tài Mục tiêu Nội dung nghiên cứu 10 Giới hạn 10 Bố cục đề tài 10 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 12 2.1 Cảm biến siêu âm 12 2.1.1 Khái niệm sóng siêu âm 12 2.1.2 Cảm biến siêu âm 12 2.1.2.1 Cảm biến HC-SR04 12 2.1.2.2 Cấu trúc bên cảm biến 13 2.1.2.3 Nguyên lý hoạt động cảm biến 13 2.2 Raspberry Pi 3B 15 2.3 Nguồn 18 2.4 Loa toàn dải 21 2.5 Mạch khuếch đại PAM8403 22 CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 25 3.1 Giới thiệu hệ thống 25 3.2 Thiết kế tính tốn hệ thống 25 3.2.1 Thiết kế sơ đồ khối 25 3.2.2 Phân tích phần cứng 25 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI CHƯƠNG 4: THI CÔNG HỆ THỐNG 30 4.1 Giới thiệu 30 4.2 Thực thi hệ thống 30 4.2.1 Thi công 33 4.2.2 Lập trình 33 4.2.3 Lưu đồ 35 4.2.4 Kết 37 KẾT LUẬN 39 TÀI LIỆU THAM KHẢO 40 PHỤ LỤC 41 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI DANH SÁCH HÌNH ẢNH Hình Cảm biến siêu âm HC-SR04 12 Hình Cấu trúc bên cảm biến siêu âm HC-SR04 13 Hình Hình ảnh minh họa phát thu tín hiệu cảm biến siêu âm HC-SR04 15 Hình Mặt trước-sau Raspberry Pi 3B 16 Hình Sơ đồ kết nối bên Raspberry Pi 3B 17 Hình Sơ đồ chân cổng Raspberry Pi 3B 17 Hình Hình minh họa loại Pin 19 Hình Sơ đồ cổng RPi PowerPack 20 Hình Hình vị trí chip Charging/Boost đế tản nhiệt 20 Hình 10 Loa toàn dải cấu tạo 22 Hình 11 Sơ đồ chân PAM8403 23 Hình 12 Mạch ứng dụng mạch khuếch đại PAM8403 24 Hình 13 Sơ đồ khối thiết bị phát vật cản thơng báo giọng nói 25 Hình 14 Pin lithium kết nối vào Module RPi PowerPack 26 Hình 15 RPi powerpack cấp nguồn cho RPi thông qua cổng Micro USB 26 Hình 16 Kết nối khối vi điều khiển khối cảm biến siêu âm 27 Hình 17 Cổng audio Raspberry Pi jack 3.5mm 28 Hình 18 Kết nối khối cảm biến siêu âm mạch 28 Hình 19 Hình mơ tả khối Loa 29 Hình 20 Sơ đồ kết nối mạch 30 Hình 21 Sơ đồ kết nối Loa mạch khuếch đại PAM8403 RPi 31 Hình 22 Sơ đồ kết nối cảm biến siêu âm HC-SR04 RPi 31 Hình 23 Kết nối linh kiện 33 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI Hình 24 Các linh kiện thiết kế bên 33 Hình 25 Lưu đồ giải thuật 35 Hình 26 Hình ảnh bên ngồi thiết bị 36 Hình 27 Thiết bị đeo lên tay 36 Hình 28 Kết đo đưa vật đến gần cảm biến 37 Hình 29 Kết đo đưa vật xa cảm biến 38 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI DANH SÁCH BẢNG Bảng Thông số kỹ thuật cảm biến siêu âm HC-SR04 13 Bảng Thông số kỹ thuật Raspberry Pi 3B 16 Bảng Sơ đồ chức chân mạch khuếch đại PAM8403 23 Bảng 4: Bảng thống kê linh kiện 32 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI TÓM TẮT Như thấy, người khiếm thị trở ngại lớn mà họ phải đối mặt di chuyển xung quanh tránh chướng ngại vật Do đó, chúng em lên ý tưởng thiết kế thiết bị hỗ trợ giúp chất lượng sống người khiếm thị trở nên tốt Mục tiêu dự án thiết kế thiết bị có tính động, độ xác cao sử dụng kiến thức lý thuyết học vi xử lý vào thực tiễn ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI CHƯƠNG 1: TỔNG QUAN 1.1 Lý chọn đề tài Ngày nay, áp dụng khoa học công nghệ kỹ thuật đại vào y tế để nâng cao chất lượng sống người dân mạnh trình tiếp cận với xu hướng chung giới bảo vệ sức khỏe trọng phát triển [1] Một đối tượng quan tâm người khiếm thị Đối với người khiếm thị, việc lại khó khăn nên có vài phương pháp giải khó khăn Gậy dị đường thơng minh mắt kính thơng minh dành cho người khiếm thị phát minh thành công mở đường cho cơng trình nghiên cứu thiết bị hỗ trợ người khiếm thị, song song với thiết bị nhiều bất lợi gậy dò đường hỗ trợ phát vật cản motor rung [2], mắt kính thơng minh có giá thành q cao [3],… Nếu có thiết bị đóng vai trị mắt thứ ba cho người khiếm thị đổi giúp người khiếm thị điều hướng cách phát chướng ngại vật gần trợ giúp sóng siêu âm thơng báo khoảng cách cho họ giọng nói [4] Là sinh viên ngành Kỹ thuật Y sinh, khoa Điện – Điện tử sau hồn thành xong mơn Vi xử lý thực tập Vi xử lý, chúng em nên nghiên cứu lập trình thực mạch ứng dụng kiến thức học vào đề tài Đề tài nhóm em chọn “THIẾT KẾ VÀ THI CÔNG GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI” Để thực đề tài này, nhóm chúng em tìm kiếm phương pháp thực nghiên cứu khảo sát cảm biến siêu âm vi điều khiển Raspberry Pi 1.2 Mục tiêu Thiết kế thi công găng tay phát vật cản cho người khiếm thị sử dụng Raspberry Pi giao tiếp với cảm biến siêu âm báo hiệu giọng nói thơng qua loa Chương trình viết hệ điều hành Raspberry Pi ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI - Tín hiệu đầu cảm biến (ECHO) HC-SR04 mức 5V Tuy nhiên, chân đầu vào Raspberry Pi GPIO mức 3,3V Gửi tín hiệu 5V vào cổng đầu vào 3.3V không bảo vệ làm hỏng chân GPIO,cần phải sử dụng mạch phân chia điện áp, bao gồm hai điện trở 1kΩ 2kΩ, để hạ thấp điện áp đầu cảm biến xuống 3.2.2.4 Loa - Raspberry Pi cấp nguồn cho mạch khuếch đại PAM8403 - Loa 3W 4Ω nối với mạch khuếch đại PAM8403 để khuếch đại tín hiệu âm - Tín hiệu nhận vào tính tốn sử dụng phương pháp Text-to-speech để đọc khoảng cách phát loa Hình 19 Hình mơ tả khối Loa 29 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI CHƯƠNG 4: THI CƠNG HỆ THỐNG 4.1 Giới thiệu Những việc cần làm: - Kết nối mạch - Lập trình - Kiểm tra sửa lỗi 4.2 Thực thi hệ thống 4.2.1 Sơ đồ kết nối mạch Hình 20 Sơ đồ kết nối mạch 30 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI Hình 21 Sơ đồ kết nối Loa mạch khuếch đại PAM8403 RPi - Nguồn 5V GND Raspberry Pi cấp nguồn cho PAM8403 - Loa 3W 4Ω nối trực tiếp vào chân Output Left mạch khuếch đại âm PAM8403 - Cổng audio Raspberry Pi nối với chân Input Left mạch khuếch đại PAM8403 Hình 22 Sơ đồ kết nối cảm biến siêu âm HC-SR04 RPi 31 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI - Nguồn 5V GND Raspberry Pi cấp cho cảm biến siêu âm HC-SR04 - Chân ECHO HC-SR04 nối vào trở 1kΩ lấy chân ngõ từ trở 1kΩ nối tiếp 2kΩ nối vào chân GPIO 24 RPi - Chân TRIG HC-SR04 nối vào chân GPIO 23 RPi 4.2.2 Lựa chọn linh kiện Bảng 4: Bảng thống kê linh kiện STT TÊN LINH KIỆN SỐ LƯỢNG Raspberry Pi ĐẶC ĐIỂM Model B Cảm biến siêu âm Linh kiện dán Linh kiện hàn HC-SR04 Điện trở 1K Loa 3W 4Ohm PAM8403 Module RPi Linh kiện dán PowerPack 32 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI 4.2.2 Thi cơng Hình 23 Kết nối linh kiện Hình 24 Các linh kiện thiết kế bên 33 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI 4.2.3 Lập trình Mục đích việc lập trình là: - Khi khoảng cách > 150 cm: Không đọc khoảng cách - Khi khoảng cách < 150.5 >= 140.5: Đọc khoảng cách “Alert! The distance is about 145 cm" Khi khoảng cách < 140 >= 130: Đọc khoảng cách "Alert! The distance is about 135 cm" Khi khoảng cách < 130 >=120: Đọc khoảng cách "Alert! The distance is about 125 cm" Khi khoảng cách =110: Đọc khoảng cách "Alert! The distance is about 115 cm" Khi khoảng cách =100: Đọc khoảng cách "Alert! The distance is about 105 cm" Khi khoảng cách =90: Đọc khoảng cách "Alert! The distance is about 95 cm" Khi khoảng cách =80: Đọc khoảng cách "Alert! The distance is about 85 cm" Khi khoảng cách =70: Đọc khoảng cách "Alert! The distance is about 75 cm" Khi khoảng cách =60: Đọc khoảng cách "Alert! The distance is about 65 cm" Khi khoảng cách =50: Đọc khoảng cách "Alert! The distance is about 55 cm" Khi khoảng cách =40: Đọc khoảng cách "Alert! The distance is about 45 cm! Carefully" Khi khoảng cách =30: Đọc khoảng cách "Alert! The distance is about 35 cm! Carefully" Khi khoảng cách 150 cm khơng thơng báo giọng nói qua loa - Nếu khoảng cách < 150 cm thông báo khoảng cách giọng nói qua loa 4.2.5 Kết a) Thiết kế: - Chiều dài: 11cm - Chiều rộng: 8cm - Chiều cao: 5cm 35 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI Hình 26 Hình ảnh bên ngồi thiết bị Hình 27 Thiết bị đeo lên tay 36 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI b) Kết đo Hình 28 Kết đo đưa vật đến gần cảm biến - Khi đưa vật đến gần cảm biến, kết đo 9.75 cm loa thông báo "Alert !The distance is under 30 cm ! Stop! Stop! Stop" 37 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI Hình 29 Kết đo đưa vật xa cảm biến - Khi đưa vật xa cảm biến, kết đo 82.5 cm loa thông báo "Alert! The distance is about 85 cm" 38 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NĨI KẾT LUẬN Sau thời gian tìm hiểu, nghiên cứu thực hiện, nhóm hồn thành đề tài “ THIẾT KẾ VÀ THI CÔNG GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI” Hệ thống đáp ứng đầy đủ tính năng, nội dung mục tiêu ban đầu đề thiết kế thi công găng tay phát vật cản cho người khiếm thị sử dụng Raspberry Pi giao tiếp với cảm biến siêu âm, báo hiệu giọng nói thơng qua loa lập trình dùng ngơn ngữ Python Raspberry Pi Nhóm cố gắng thực hệ thống nhiều khuyết điểm như: Thời gian phản hồi chậm, kích thước cịn cồng kềnh, ảnh hưởng gây nhiễu từ yếu tố bên Phương hướng phát triển sản phẩm bao gồm: Cải thiện tăng độ xác hệ thống, giảm tác động nhiễu tối thiểu nhất, cải thiện thiết kế gọn nhẹ hơn, điều chỉnh thay đổi ngơn ngữ giọng nói phù hợp với nhu cầu người sử dụng 39 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI TÀI LIỆU THAM KHẢO [1] Nguyễn Hùng, Ngụy Phan Tín, Nguyễn Hữu Thắng, “Nghiên cứu chế tạo thiết bị hỗ trợ người khiếm thị sử dụng sóng siêu âm”, Đồ án tốt nghiệp, trường ĐH Bách Khoa, Hà Nội, 2013 [2] Ihab A Satam, “Design and Implement Smart Blind Stick”, Northern Technical University, 2019 [3] Esra Ali Hassan, “Smart Glasses for the Visually Impaired People”, Universiti Teknologi PETRONAS, 2016 [4] M Narendran, Sarmistha Padhi, Aashita Tiwari, “Third eye for the blind using arduino and ultrasonic sensors”, nationaljournals.com, 01/2018 [5] Robert A Novelline, “Squire’s Fundamentals of Radiology”, 01/2018 [6] Nguyễn Đình Phú, “Giáo Trình: Thực hành Vi điều khiển PIC”, Trường ĐHSPKT, Tp.HCM, Nhà xuất ĐH Quốc Gia [7] Nguyễn Đình Phú, Trương Ngọc Anh, “Giáo Trình: Vi xử lý”, Trường ĐHSPKT, Tp.HCM, Nhà xuất ĐH Quốc Gia [8] Elijah J Morgan, “HCSR04 Ultrasonic Sensor”, datasheetspdf.com, 16/2014 [9] The Pi4J Project, “Pin Numbering - Raspberry Pi Model B”, pi4j.com, 03/2019 40 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI PHỤ LỤC Đây phần code chúng em lập trình Raspberry Pi: import RPi.GPIO as GPIO import time import os #from espeak import espeak GPIO.setmode(GPIO.BCM) TRIG = 23 ECHO = 24 while 1: GPIO.setmode(GPIO.BCM) print ("Distance Measurement In Progress") GPIO.setup(TRIG,GPIO.OUT) GPIO.setup(ECHO,GPIO.IN) GPIO.output(TRIG, False) print ("Waiting For Sensor To Settle") time.sleep(2) GPIO.output(TRIG, True) time.sleep(0.00001) GPIO.output(TRIG, False) while GPIO.input(ECHO)==0: pulse_start = time.time() while GPIO.input(ECHO)==1: pulse_end = time.time() 41 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17150 distance = round(distance, 2) print ("Distance:",distance,"cm") if distance < 150.5 and distance >= 140.5: os.system('echo "Alert! The distance is about 145 cm" | festival tts') time.sleep(2) if distance = 130: os.system('echo "Alert! The distance is about 135 cm" | festival tts') time.sleep(2) if distance < 130 and distance >=120: os.system('echo "Alert! The distance is about 125 cm" | festival tts') time.sleep(2) if distance =110: os.system('echo "Alert! The distance is about 115 cm" | festival tts') time.sleep(2) if distance =100: os.system('echo "Alert! The distance is about 105 cm" | festival tts') time.sleep(2) if distance =90: os.system('echo "Alert! The distance is about 95 cm" | festival tts') time.sleep(2) if distance =80: os.system('echo "Alert! The distance is about 85 cm" | festival tts') 42 ĐỒ ÁN – GĂNG TAY PHÁT HIỆN VẬT CẢN CHO NGƯỜI KHIẾM THỊ BẰNG GIỌNG NÓI time.sleep(2) if distance =70: os.system('echo "Alert! The distance is about 75 cm" | festival tts') time.sleep(2) if distance =60: os.system('echo "Alert! The distance is about 65 cm" | festival tts') time.sleep(2) if distance =50: os.system('echo "Alert! The distance is about 55 cm" | festival tts') time.sleep(2) if distance =40: os.system('echo "Alert! The distance is about 45 cm! Carefully" | festival tts') time.sleep(2) if distance =30: os.system('echo "Alert! The distance is about 35 cm! Carefully" | festival tts') time.sleep(2) if distance