Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 89 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
89
Dung lượng
6,52 MB
Nội dung
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỀU KHIỂN XE LĂN ĐIỆN CHO NGƯỜI KHUYẾT TẬT SỬ DỤNG TÍN HIỆU ĐIỆN NÃO VÀ CAMERA GVHD: ThS Ngơ Bá Việt SVTH1: Vũ Hoàng Thiên MSSV1: 16141282 SVTH2: Đoàn Lâm MSSV2: 16141190 Tp Hồ Chí Minh - 08/2020 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỀU KHIỂN XE LĂN ĐIỆN CHO NGƯỜI KHUYẾT TẬT SỬ DỤNG TÍN HIỆU ĐIỆN NÃO VÀ CAMERA GVHD: ThS Ngơ Bá Việt SVTH1: Vũ Hoàng Thiên MSSV1: 16141282 SVTH2: Đoàn Lâm MSSV2: 16141190 Tp Hồ Chí Minh - 08/2020 TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o Tp HCM, ngày tháng năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: Vũ Hồng Thiên Đồn Lâm Kỹ thuật Điện - Điện tử Đại học quy 2016 MSSV: 16141282 MSSV: 16141190 Mã ngành: 141 Mã hệ: Lớp: 161412 I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỀU KHIỂN XE LĂN ĐIỆN CHO NGƯỜI KHUYẾT TẬT SỬ DỤNG TÍN HIỆU ĐIỆN NÃO VÀ CAMERA II NHIỆM VỤ Các số liệu ban đầu: - Các tài liệu Python thư viện OpenCV, pyrealsense, Giáo trình Xử lý ảnh - Các tài liệu Arduino thư viện Arduino - Các ví dụ nhận dạng hình học bản, ví dụ xử lý tín hiệu điện não - Phần mềm huấn luyện: EmotivBCI, Visual Studio Code, IDE Arduino Nội dung thực hiện: - Tìm hiểu phương pháp nhận dạng vật thuật tốn xử lý ảnh - Tìm hiểu Camera 3D, tín hiệu điện não, thiết bị công suất Module liên quan - Xây dựng tập huấn luyện chuẩn để phục vụ cho việc điều khiển thông qua phần mềm EmotivBCI - Xây dựng thuật toán xử lý ảnh để nhận diện vật cản - Thi cơng mơ hình - Viết chương trình Python Arduino IDE i - Chạy thử nghiệm, chỉnh sửa hoàn thiện hệ thống - Đánh giá kết thực - Thực viết báo cáo đề tài - Tiến hành báo cáo trước hội đồng III NGÀY GIAO NHIỆM VỤ: 10/03/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/08/2020 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: ThS Ngô Bá Việt CÁN BỘ HƯỚNG DẪN 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 15 tháng 07 năm 2020 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Vũ Hoàng Thiên Lớp: 16141DT1A MSSV: 16141282 Họ tên sinh viên 1: Đoàn Lâm Lớp: 16141DT2A MSSV: 16141190 Tên đề tài: Thiết kế thi công hệ thống điều khiển xe lăn điện cho người khuyết tật sử dụng tín hiệu điện não camera Tuần/ngày Nội dung 02-9/03 - Chọn đề tài 10-17/03 - Viết đề cương chi tiết đồ án tốt nghiệp 18/03-25/03 Xác nhận GVHD - Tìm hiểu phương pháp nhận dạng hình - Tìm hiểu tín hiệu điện não cách xử lý tín hiệu điện não 26/03-01/04 - Tìm hiểu module cơng suất động - Tìm hiểu sơ đồ ngun lí hệ thống, giải thích chức cách khối 02-09/04 - Tìm hiểu camera 3D - Tìm hiểu Emotiv Epoc iii 10-26/04 - Tìm hiểu thuật tốn tính khoảng cách - Tìm hiểu cách huấn luyện tín hiệu điện não, lấy tín hiệu từ Server gửi máy tính 27/04-03/05 - Tìm hiểu Arduino - Tìm hiểu python, Open CV thư viện liên quan release2, 04/05-11/05 - Tiến hành tính tốn lựa chọn linh kiện, vẽ PCB mạch điều khiển động thi cơng mạch 12/05-26/05 - Lập trình sử dụng camera nhận dạng vật cản ngôn ngữ python Windows sử dụng Visual Studio Code - Lập trình cho hệ thống lấy tín hiệu điện não từ server kết hợp với camera để tránh vật cản, ngôn ngữ python sử dụng Visual Studio Code - Training tín hiệu điện não sử dụng phần mềm EmotivBCI 27/05-11/06 - Lập trình Arduino cho khối điều khiển động - Lập trình Matlab sử dụng la bàn để mơ lại liệu đường xe lăn điện 12/06-19/06 - Thi cơng mơ hình chạy thử tồn mơ hình - Sữa lỗi phần cứng phần mềm - Viết luận văn 20/06-27/07 - Hoàn thành, cân chỉnh lại toàn lại hệ thống iv - Viết hoàn chỉnh luận văn 28/07-02/08 03-18/08 - Hoàn chỉnh hệ thống luận văn - Báo cáo, bảo vệ đồ án tốt nghiệp GV HƯỚNG DẪN ThS Ngô Bá Việt v LỜI CAM ĐOAN Đề tài nhóm tơi tự thực dựa vào kiến thức học, nghiên cứu tìm hiểu số tài liệu, đề tài 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 Vũ Hoàng Thiên – Đoàn Lâm vi CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Trường hợp 2: Người dùng lệnh rẽ phải Bảng 5.3: Tổng hợp tín hiệu điều khiển cho rẽ phải Đối tượng Tên GT TP TN DY Thiên 10 Minh 10 Kiệt 10 2 Lâm 10 Ân 10 Trong bảng 5.3 kết thu người dùng lệnh rẽ trái tổng số 50 lệnh có 34 lệnh thực thời gian 5s, có lệnh thực sai 10 lệnh xe không di chuyển Số lệnh thực chiếm 68% tổng số lệnh rẽ phải Trường hợp 3: Người dùng lệnh thẳng Bảng 5.4: Tổng hợp tín hiệu điều khiển cho thẳng Đối tượng Tên GT TP TN DY Thiên 10 Minh 10 Kiệt 10 Lâm 10 Ân 10 Trong bảng 5.4 kết thu người dùng lệnh rẽ trái tổng số 50 lệnh có 38 lệnh thực thời gian 5s, có lệnh thực sai lệnh xe không di chuyển Số lệnh thực chiếm 76% tổng số lệnh thẳng Trong trường hợp, kết cho thấy người dùng lệnh điều khiển xe phần lớn lệnh thực đáp ứng nhanh vòng 5s, tồn BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 55 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ số trường hợp mà xe di chuyển sai không di chuyển Từ cho thấy điều khiển tín hiệu điện não việc huấn luyện để tạo tập liệu quan trọng, ảnh hưởng đến định di chuyển xe, trước mặt người sử dụng có vật cản lệnh rẽ tập liệu không dẫn tới cho hướng khác, người ngồi va chạm với vật cản dễ gây nguy hiểm cho người sử dụng Thực thí nghiệm cho xe lăn di chuyển sử dụng tín hiệu điện não để điều khiển môi trường với diện tích (3m x 5m) Trong khu vực di chuyển có vật cản hộp màu trắng Quá trình di chuyển xe mơ tả lại hình 5.10 (a) Xe bắt đầu di chuyển (b) Xe di chuyển thẳng (c) Xe rẽ trái thấy vật cản (d) Xe tiếp tục thẳng Hình 5.10 Quá trình di chuyển xe lăn sử dụng tín hiệu điện não điều khiển Tại vị trí bắt đầu hình 5.10 (a), người điều khiển xe lăn di chuyển thẳng phía trước cách tạo cử khn mặt ngẩng đầu phía trước Trong q trình di chuyển, người điều khiển thấy trước mặt có vật cản nên chủ động dừng lại hình 5.10 (b), cách không tạo cử mắt mặt Sau đó, người điều khiển BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 56 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ cho xe rẽ sang hướng khác hình 5.10 (c), nhận thấy phía trước khơng cịn vật cản người dùng tiếp tục điều khiển xe di chuyển đến đích (a) Ảnh mơi trường di chuyển xe (b) Biểu đồ đường EEG Hình 5.11 Đường EEG lần thí nghiệm Quan sát đồ đường lần nghiệm thu đường khác nhau, hướng lần người điều khiển điều khiển giống nhau, lần điều khiển đường gần với vật cản gây va chạm, khơng có camera tránh vật cản nên đường phụ thuộc nhiều vào khả điều khiển người dùng Trong lần thứ đường màu xanh có phần thoải mái tương đối ổn định Khi vẽ lại đường xe lần khoảng thời gian phút độ dài quãng đường lần có khác nhau, điều khiển hướng đích lần thử nghiệm thứ quãng đường ngắn thử nghiệm thứ hai, khả đưa định người dùng phụ thuộc nhiều vào tốc độ đáp ứng xử lý server nên có khác 5.2.3 Kết điều khiển xe lăn EEG kết hợp với camera (a) Xe lăn điện vị trí ban đầu (b) Xe lăn điện bắt đầu di chuyển BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 57 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ (c) Xe lăn điện di chuyển thẳng (d) Xe lăn điện gặp vật cản rẽ phải (e) Xe lăn điện gặp vật cản rẽ trái (f) Xe lăn điện rẽ trái (g) Xe lăn điện di chuyển thẳng đến cuối đường Hình 5.12 Quá trình di chuyển hết vòng xe lăn điện kết hợp sử dụng chế độ camera EEG Thực thí nghiệm kết hợp điều khiển cho xe lăn chế độ đoạn đường nhỏ với diện tích (3m x 8m) Đường xe lăn mơ tả hình 5.12 Tại vị trí xuất phát hình 5.2 (a) xe bắt đầu di chuyển theo hiệu lệnh người sử dụng Trong trình di chuyển thẳng phía trước xe gặp vật cản lệch phía phải hình 5.2 (b) xe dừng lại Sau trình xử lý, xử lý trung tâm xác định có vật cản khơng chắn hết đường đi, camera cho phép người tiếp tục di chuyển thẳng Khi gặp vật cản hình 5.2 (c) dù người có tiếp tục điều khiển thẳng xe dừng lại, lúc camera phát có vật cản, lúc người điều hướng di chuyển xe rẽ sang phải hình 5.2 (d) Khi vừa rẽ phải người BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 58 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ dùng lại gặp vật cản hình 5.2 (e), lúc xe chủ động dừng lại tiếp tục chờ lệnh điều khiển từ người để di chuyển Sau người điều khiển cho xe rẽ trái hình 5.2 (f), lúc camera xác định phía trước khoảng trống cho phép người di chuyển thẳng đến đích (a) Ảnh mơi trường di chuyển xe (b) Biểu đồ đường EEG kết hợp Camera Hình 5.13 Dạng đường xe lăn kết hợp chế độ Tiến hành thí nghiệm cho xe lăn điện di chuyển khu vực với diện tích (2m x 5m) hình 5.13 Dữ liệu đường xe lăn ghi lại đồ đường biểu diễn dạng biểu đồ hình 5.13 (b) Khi sử dụng kết hợp chế độ điều khiển dạng đường lần tương tự nhau, có khả tránh vật cản di chuyển theo đường định đến đích Tốc độ di chuyển chậm khả đáp ứng tính ổn định cao, xe lăn dành cho người khuyết tật khơng nên địi hỏi q cao tiêu chí tốc độ di chuyển xe, cần an toàn cho người sử dụng Vì vậy, thời gian lâu xe di chuyển tốt tới đích phù hợp với mục đích ban đầu đặt ra, cho thấy sản phẩm đề tài phù hợp cho đối tượng người khuyết tật 5.2.4 So sánh khả di chuyển xe lăn chế độ Hệ thống sử dụng kết hợp chế độ tránh vật cản sử dụng camera điều khiển xe di chuyển tín hiệu điện não để đạt độ an toàn ổn định cho xe di chuyển xe lăn chạy chế độ riêng biệt Thực việc so sánh cho xe chạy chế độ đồ giống để nhận xét khác biệt, đường ghi lại hình 5.14 hình 5.15 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 59 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ (a) Ảnh môi trường đường xe (b) Biểu đồ đường chế độ Hình 5.14 Biểu đồ đường theo chế độ: Camera, EEG, EEG Camera đồ thứ (a) Ảnh môi trường đường xe (b) Biểu đồ đường chế độ Hình 5.15 Biểu đồ đường theo chế độ: Camera, EEG, EEG Camera đồ thứ hai Sau hồn tất thí nghiệm cho xe chạy lần môi trường, kết cho thấy biểu đồ có đường khác nhau, loại đường xe có khả tránh vật cản di chuyển đến điểm đích Khi cho xe chạy camera đường dài có phần khác so với đường chuẩn xe di chuyển theo chế độ tự động gặp vật cản tự động dừng xử lý, thời gian lâu xe di chuyển tự động dị đường Khi cho xe di chuyển tín hiệu điện não thời gian di chuyển đến đích ngắn phần điều khiển phụ thuộc vào người dùng, dạng đường gần với vật cản có nguy va chạm xảy Khi điều khiển xe kết hợp EEG camera, kết cho thấy dạng đường ngắn hơn, ổn định tránh vật cản BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Đề tài “Thiết kế thi công hệ thống điều khiển xe lăn điện cho người khuyết tật sử dụng tín hiệu điện não camera” hồn thành với u cầu đặt ra, thi cơng hồn thành điều khiển động lực với kích thước nhỏ gọn Hệ thống sử dụng camera nhận diện vật cản với độ xác tin cậy xác định khoảng trống để điều hướng cho xe lăn điện di chuyển Hệ thống đáp ứng đối mục tiêu an tồn tiện ích sử dụng như: nhận biết tránh va chạm với vật cản Quyết định điểu khiển từ EEG đưa từ người sử dụng điều hướng xe tương đối xác, tốc độ di chuyển ổn định phù hợp với người khuyết tật Tuy nhiên hệ thống số điểm hạn chế có trễ truyền nhận liệu từ Server xuống khối xử lý trung tâm Thời gian di chuyển xe lăn phụ thuộc vào tốc độ đưa định xác người sử dụng Xe lăn di chuyển mơi trường có địa hình thống có khoảng cách đường 1.5m Đồng cường độ ánh sáng ảnh hưởng đến khả nhận diện vật cản camera 6.2 HƯỚNG PHÁT TRIỂN Từ mặt hạn chế đề tài, để đề tài hoạt động tốt hơn, hồn thiện áp dụng vào thực tế, vài phương án đề để góp phần cải thiện hoàn thiện hệ thống như: thay camera tốt chất lượng xử lý tốt hơn, áp dụng phương pháp tiền xử lý ảnh để loại bỏ nhiễu hồng ngoại, áp dụng nghiên cứu sâu tín hiệu điện não, tùy thuộc vào trạng thái cảm xúc dạng sóng não để đưa định điều khiển xác Ngồi ra, hệ thống phát triển thêm việc tích hợp hệ thống định vị GPS cho phép người thân biết vị trí xác người sử dụng BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO [1] Tổng cục Thống kê UNICEF, “Kết Điều tra Quốc gia Người Khuyết tật Việt Nam”, 01/2019 [2] Trần Hoàng Phi – Trương Văn Vinh, Thiết kế - “chế tạo xe lăn điện cho người khuyết tật phần cơ”, Đồ án tốt nghiệp Đại Học Sư Phạm Kỹ Thuật TP Hồ Chí Minh (2015) [3] Rahib H Abiyev, Nurullah Akkaya, “Brain – computer Interface for Control of Whellchair Using Fuzzy Neural Networks”, BioMed Research International, 29 sep 2016 [4] J Wolpaw, N Birbaumer, D McFarland, G Pfurtschellere, and T Vaughan, “Braincomputer Interfaces for Communication and Control”, Clinical Neurophysiology, 767-791, (2002) [5] Erik Andreas Larsen, “Classification of EEG Signals in a BrainComputer Interface System”, Norwegian University of Science and Technology, Norway, 2011 [6] Báo Tuổi Trẻ, “Ứng dụng công nghệ xử lý ảnh công nghiệp vào ngành y tế”, 07/2020 [7] MH Libenson(Saunders), “Practical Approach to Electroencephalography”, 2009 [8] Fabien Lotte, “A tutorial on EEG Signal Processing Techniques for Mental State Recognition in Brain-Computer Interfaces”, 2014 [9] Suhail Ahmed Khan, “Technical Seminar on Emotiv Epoc/EEG/BCI“, Germany, 2016 [10] Wikipedia, “Brain–computer interface”, https://en.wikipedia.org/wiki/Brain %E2%80%93computer_interface#Human_B CI_research, 2018 [11] Trí thức trẻ, “Camera 3D hoạt động nào”, https://fptshop.com.vn 05/01/2016 [12] Marius Otesteanu, Vasuke Gui, Department of Communications, “3D Image Sensors, an Overview”, “Politchnica”, University of Timisoara, Bd Vasile Parvan No.2, Romania, 2017 [13] Việt Machine, “Đám mây điểm 3D xử lý ảnh”, https://vietmachine.com.vn/, 465 Xô Viết Nghệ Tĩnh, P26, Quận Bình Thạnh, TP.HCM [14] Nordic Coder - Trung tâm đào tạo lập trình “Giới thiệu ngôn ngữ Python” https://nordiccoder.com/, 180-192 Nguyễn Công Trứ, Quận 1, TP Hồ Chí Minh [15] Intel,“Introduction of Intel RealSense D435”,https://intelrealsense.com/ 2200 Mission College Blvd, Santa Clara CA 95054 – 1549 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 62 TÀI LIỆU THAM KHẢO [16] Emotiv Company, “Overview Emotiv Epoc”,https://emotiv.com/ , TanLe(CEO) and Dr Geoff Mackellar (CTO), the company is headquartered in San Francisco, U.S.A, [17] PANASONIC, “Datasheet DC Motor“, 2004 [18] “Thông số kỹ thuật nguồn Adapter 12V – 1A”, https://iotmaker.vn/, 10/07/2016 Sách tham khảo: [19] TS Nguyễn Thanh Hải, “Giáo trình Xử lý ảnh”, NXB Đại Học Quốc Gia TPHCM, 09/2014 [20] Phạm Quang Huy, “Arduino dành cho người tự học”, NXB Thanh Niên, 2019 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 63 PHỤ LỤC PHỤ LỤC Code chương trình: import cv2 #thu vien open cv import pyrealsense2 as rs #thu vien dung để truy cập camera 3D import numpy as np #thu vien dùng cho ma trận import time #thư viện thời gian thực import collections import os import Processing import Exchange_matrixs import serial import math import Test_combine import Test_combine_Block2 # -tmp = b=0 k=1 a_tmp = cam_1 = rop = i_tmp = # this port address is for the serial tx/rx pins on the GPIO header SERIAL_PORT = 'COM4' # be sure to set this to the same rate used on the Arduino SERIAL_RATE = 9600 #ArduinoSerial = serial.Serial('COM10',9600) #fx_road = "3" ArduinoSerial = serial.Serial(SERIAL_PORT, SERIAL_RATE) time.sleep(1) # tạo luồng định cấu hình cho luồng pipeline = rs.pipeline() #tao doi tuong để liên kết với module thư viện camera 3D config = rs.config() # chuyển đổi ảnh độ sâu rộng 640 dài 480 có format dạng z16 config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30) # chuyển đổi ảnh có màu định dạng kiểu BGR_8BIT config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30) # bắt đầu trình truyền phát pipeline.start(config) local = # dùng hàm đường truyền chờ cặp thông số frames depth color frames = pipeline.wait_for_frames() depth = frames.get_depth_frame() frame = frames.get_color_frame() # chuyển đổi hình ảnh đọc từ frame data sang ma trận color_image = np.asanyarray(frame.get_data()) depth_image = np.asanyarray(depth.get_data()) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 64 PHỤ LỤC img_test,fx_,i_2 = Processing.Pixel_list(depth) if i_2 > 70 and i_2 < 540: cam_1 = #co vat can elif i_2 < 70: cam_1 = #ko co vat can else : cam_1 = # -#vòng lặp gốc while True: if b != and cam_1 == 0: # -#Block Test_combine.Block1('4',ArduinoSerial,pipeline) # -#Block c1 = while c1 < 4: # dùng hàm đường truyền chờ cặp thông số frames depth color frames = pipeline.wait_for_frames() depth = frames.get_depth_frame() frame = frames.get_color_frame() # chuyển đổi hình ảnh đọc từ frame data sang ma trận color_image = np.asanyarray(frame.get_data()) depth_image = np.asanyarray(depth.get_data()) #Ham xu ly anh img_test,fx_,i_2 = Processing.Pixel_list(depth) if i_2 > 70 and i_2 < 540: cam_1 = #co vat can elif i_2 < 70: cam_1 = #ko co vat can else : cam_1 = c1 = c1 + depth_min = Processing.Draw_depth(img_test) pi_free,pi_pos,fx_road = Processing.Pro_pixel(img_test,fx_,depth_min) a = Exchange_matrixs.Convert_Matrix(fx_road,len(img_test)) # quyet dinh camera left,mid,right = Processing.Count_Array(img_test) if left == and mid == and right == : # o giua cho phep queo trai/phai b=0 elif left == and mid == and right == : # o giua va ben cho phep queo ben lai b=1 elif left == and mid == and right == : # o giua va ben cho phep queo ben lai b=2 elif left == and mid == and right == : # o ben va theo Cam b=3 elif left == and mid == and right == : # o ben va theo Cam b=4 elif left == and mid == and right == : # o giua ben co b=5 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 65 PHỤ LỤC elif left == and mid == and right == : b=7 else : b=6 ArduinoSerial.write(str.encode("4")) # Block print (a,b) print(left,mid,right) tmp = b if b != and b!= 7: Test_combine.Block2('4',ArduinoSerial,b,a) c2 = while c2 == 0: ######################################## # dùng hàm đường truyền chờ cặp thông số frames depth color frames = pipeline.wait_for_frames() depth = frames.get_depth_frame() frame = frames.get_color_frame() # chuyển đổi hình ảnh đọc từ frame data sang ma trận color_image = np.asanyarray(frame.get_data()) depth_image = np.asanyarray(depth.get_data()) ########################################## #Ham xu ly anh img_test,fx_,i_2 = Processing.Pixel_list(depth) depth_min = Processing.Draw_depth(img_test) pi_free,pi_pos,fx_road = Processing.Pro_pixel(img_test,fx_,depth_min) a = Exchange_matrixs.Convert_Matrix(fx_road,len(img_test)) # quyet dinh camera print (a) cv2.imshow('Anh chieu sau',depth_min) left,mid,right = Processing.Count_Array(img_test) if left == and mid == and right == : # o giua cho phep queo trai/phai b=0 elif left == and mid == and right == : # o giua va ben cho phep queo ben lai b=1 elif left == and mid == and right == : # o giua va ben cho phep queo ben lai b=2 elif left == and mid == and right == : # o ben va theo Cam b=3 elif left == and mid == and right == : # o ben va theo Cam b=4 elif left == and mid == and right == : # o giua ben co b=5 elif left == and mid == and right == : b=7 else : b=6 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 66 PHỤ LỤC ArduinoSerial.write(str.encode("4")) # Block if b != tmp : c2 = ArduinoSerial.write(str.encode("4")) else : c2 = # -#cv2.imshow('Anh chieu sau',depth_min) #cv2.imshow('Anh mau',color_image) # Chờ nhấn nút Key key = cv2.waitKey(1) # key nút Esc, q space break vịng if key in (27, ord("q"),ord(" ")): # cv2.imwrite("result.png",color_image) break # key p chờ đến key s elif key == ord("p"): while True: key = cv2.waitKey(1) if key == ord("s"): break # dừng truyền dẫn pipeline.stop() Chương trình xử lý ảnh import cv2 import numpy as np import collections def Pixel_list(depth): min_arr = [] fx_ = [] i_2 = for col in range(20,640): fx_.append(col) tmp = 5.0 tmp_2 = 0.5 for row in range(440): if depth.get_distance(col, row) >= 0.5 : if depth.get_distance(col, row) < tmp : tmp = depth.get_distance(col, row) if tmp == 5.0 : tmp = 0.5 min_arr.append(np.round(tmp,1)) for i in range(0,len(min_arr)) : if min_arr[i] < 0.7 : i_2 = i_2 + BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 67 PHỤ LỤC print (i_2) return min_arr,fx_,i_2 def Count_Array(min_arr): c_1 = c_2 = c_3 = left = mid = right = for i in range(620): if i < 213 : if min_arr[i] < 0.7 : c_1 = c_1 + elif i > 213 and i < 426: if min_arr[i] < 0.7 : c_2 = c_2 + else : if min_arr[i] < 0.7 : c_3 = c_3 + if c_1 > 85 : left = if c_2 > 85 : mid = if c_3 > 85 : right = return left,mid,right def Draw_depth(min_pixel): # tạo mận zero có 480 hàng 620 cột image=np.zeros((440,620)) # với phần tử cột for i in range(620): tmp = min_pixel[i] row = int(88*tmp) for j in range(440 - row,440): image[j,i]=1 return image def Pro_pixel(min_pixel,fx_,image): tmp = tmp_2 = tmp_3 = tmp_4 = a = min(min_pixel) #Zmin fx_free = [] fx_pos = [] # check diem nho nhat for y1 in range(620): if y1 == 619 : fx_pos.append(fx_[y1-1]) fx_free.append(tmp) tmp =1 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 68 PHỤ LỤC else : if image[350,y1] == : # tuong ung 1.0 z tmp = tmp + tmp_2 = tmp_2 + else : fx_pos.append(fx_[y1-1]) fx_free.append(tmp) tmp = if tmp_2 < 100 : fx_road = 700 tmp_2 = else : for i in range (len(fx_free)): if fx_free[i] >= tmp_3 : tmp_3 = fx_free[i] tmp_4 = fx_pos[i] fx_road = int(tmp_4 - (tmp_3/2)) - 20 return fx_free, fx_pos,fx_road BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 69 ... “ Thi? ??t kế thi công hệ thống điều khiển xe lăn điện cho người khuyết tật sử dụng tín hiệu điện não camera ” để hỗ trợ phương tiện di chuyển cho người khuyết tật, người khơng cịn sức lao động người. .. hiểm va chạm trước mặt Đề tài ? ?Thi? ??t kế thi công hệ thống điều khiển xe lăn điện cho người khuyết tật sử dụng tín hiệu điện não camera? ?? có chức giúp người khuyết tật, người khơng cịn sức lao động... khối điều khiển động lực 3.2 THI? ??T KẾ PHẦN CỨNG CỦA HỆ THỐNG ĐIỀU KHIỂN XE LĂN CHO NGƯỜI KHUYẾT TẬT SỬ DỤNG TÍN HIỆU ĐIỆN NÃO VÀ CAMERA TRÁNH VẬT CẢN Hệ thống phần cứng bao gồm: Bộ điều khiển