Kết quả phân loại:
73
Bảng 3.14 Kết quả phân loại 6 nơ rôn trong lớp ẩn
STT 1 2 3 4 5
1 0.9991 0.00045762 1,70E-01 6,93E-02 8,20E-05
2 1 7,67E-02 2,92E-01 1,10E-01 1,63E-05
3 0.99992 4,86E-02 2,47E-01 7,65E-02 4,43E-05 4 0.99706 0.0021478 1,22E-01 7,27E-02 1,03E-04 5 0.99999 1,78E-02 5,28E-01 6,69E-02 3,07E-05 6 0.99982 0.00027913 1,61E-01 8,99E-02 4,66E-06 7 0.99968 0.00025636 1,74E-01 7,67E-03 5,93E-05 8 0.99973 0.0003459 1,58E-01 8,61E-02 5,34E-05 9 0.99958 5,83E-01 3,15E-02 5,70E-02 8,55E-05 10 0.99993 1,35E-01 3,80E-01 6,06E-02 5,53E-05 11 8,65E-03 0.99999 6,88E-03 3,25E-02 1,77E-02 12 1,42E-03 0.99999 8,80E-03 2,31E-02 4,00E-02 13 8,16E-03 0.99999 6,12E-04 3,41E-02 1,73E-02 14 8,40E-03 0.99999 7,29E-03 3,16E-03 1,88E-03 15 1,86E-03 0.99999 8,47E-03 2,41E-02 3,60E-02 16 4,35E-01 0.99979 1,05E-02 4,17E-03 5,70E-03 17 1,21E-03 0.99999 8,89E-03 2,26E-02 4,34E-02 18 3,54E-02 0.99986 1,39E-02 2,72E-02 1,61E-02 19 1,01E-02 0.99999 6,62E-03 3,40E-03 1,65E-02 20 1,02E-02 0.99998 8,75E-03 3,00E-02 1,94E-02 21 1,83E-01 2,35E-07 0.99996 2,53E-01 2,23E-04 22 1,72E-01 2,43E-07 0.99995 2,96E-01 2,29E-03 23 1,72E-02 2,43E-06 0.99995 3,04E-01 2,32E-03 24 1,84E-01 2,34E-06 0.99996 2,53E-01 2,24E-03 25 1,73E-01 2,04E-06 0.99997 2,07E-01 2,33E-03 26 2.04e-05 2,49E-06 0.99996 2,55E-01 2,13E-03 27 1,89E-01 2,22E-06 0.99997 2,19E-01 2,22E-03 28 1,99E-01 2,39E-06 0.99996 2,44E-01 2,17E-03 29 2,09E-01 2,96E-06 0.99995 3,71E-01 2,16E-03 30 1,86E-01 2,41E-06 0.99995 2,95E-01 2,35E-04 31 9,03E-03 4,02E-03 5,19E-01 0.99997 1,09E-02
32 0.017731 0.00046099 4,27E-02 1 8,03E-05
33 3,25E-02 9,06E-03 2,83E-01 0.99998 4,72E-03
34 0.0018333 8,86E-01 7,14E-02 1 2,44E-04
74
36 0.00024139 2,03E-01 9,64E-02 1 5,86E-04
37 7,16E-01 8,83E-03 1,60E-01 1 1,22E-03
38 3,00E-02 9,85E-03 4,58E-01 0.99998 6,78E-03 39 1,39E-02 5,28E-03 4,88E-01 0.99997 8,77E-03 40 3,08E-02 9,39E-03 3,31E-01 0.99998 5,52E-03 41 1,97E-04 3.74e-05 3,67E-01 1,79E-06 0.99996
42 2,22E-04 1,82E-01 3,92E-01 1,33E-06 0.99998
43 2,55E-04 2,43E-01 3,57E-01 1,50E-06 0.99998
44 2,57E-04 2,91E-01 3,49E-01 1,62E-06 0.99997
45 2,56E-04 1,59E-01 3,75E-01 1,25E-06 0.99998
46 2,21E-04 1,60E-01 4,06E-01 1,26E-06 0.99998
47 1,94E-04 1,38E-01 4,38E-01 1,19E-06 0.99999
48 2,23E-04 1,42E-01 3,99E-01 1,19E-06 0.99999
49 1,96E-04 1,23E-01 4,20E-01 1,11E-06 0.99999
50 2,00E-04 1,30E-01 4,26E-01 1,14E-06 0.99999
Tỉ lệ đúng trên 99,99% là: 50/50 mẫu test ; đạt: 100%
Thử nghiệm lần 2: Chọn Input 9 nơ rôn, lớp ẩn 6 nơ rôn, Output 5 nơ rôn, kết quả phân loại như hình 3.16
75
Bảng 3.15 Kết quả phân loại 6 nơ rôn trong lớp ẩn lần 2
STT 1 2 3 4 5 1 0.90744 0.072951 0.00063901 6,74E-02 0.00021016 2 0.99339 0.0053045 0.00055021 1,18E-01 0.00012935 3 0.95078 0.039141 0.00061509 7,73E-02 0.00018514 4 0.81623 0.15279 0.00066052 5,66E-02 0.0002365 5 0.98079 0.0149 0.0005928 9,52E-02 0.00015563 6 0.96767 0.025143 0.00059419 8,49E-02 0.00017736 7 0.95269 0.037236 0.00061697 7,82E-02 0.00018387 8 0.85969 0.11477 0.00063973 6,05E-02 0.00023011 9 0.92364 0.050559 0.00061936 7,30E-02 0.00023915 10 0.97664 0.016484 0.00060142 9,33E-02 0.00017311 11 0.01021 0.98668 0.0008838 1,60E-02 0.00072258 12 0.006856 0.98942 0.00087956 1,52E-02 0.00091009 13 0.0086503 0.98884 0.00088255 1,54E-02 0.00074527 14 0.0090872 0.98821 0.00088223 1,56E-02 0.00073995 15 0.0066337 0.99048 0.00088859 1,49E-02 0.00085398 16 0.037488 0.95043 0.00082559 2,13E-02 0.00058236 17 0.0056277 0.99126 0.00086003 1,46E-02 0.00099549 18 0.016119 0.97789 0.00087477 1,79E-02 0.00067717 19 0.010395 0.98533 0.00085661 1,63E-02 0.00079881 20 0.010689 0.98521 0.00086155 1,64E-02 0.00077364 21 0.00052598 4,92E-04 0.99899 0.00095998 9,01E-01 22 0.00054659 5,36E-04 0.99901 0.0010773 8,88E-01 23 0.00055037 5,89E-04 0.99889 0.0015322 0.00012545 24 0.00048822 4,79E-04 0.99909 0.00075642 8,31E-01 25 0.0005514 3,04E-04 0.99913 0.0010035 0.0002139 26 0.00054502 4,14E-04 0.99909 0.00071072 8,04E-01 27 0.00047708 4,77E-05 0.99915 0.00073991 9,39E-01 28 0.00050441 4,43E-05 0.99912 0.00068348 8,28E-01 29 0.00051661 4,42E-04 0.99903 0.00072027 7,46E-01 30 0.00054003 3,91E-04 0.99789 0.0013418 0.00011676 31 7,21E-01 2,35E-01 0.0010823 0.99929 3,18E-01 32 0.00072732 6,44E-02 0.00013556 0.99896 3,02E-01 33 7,93E-02 2,45E-01 0.0013557 0.99918 3,42E-01 34 0.00062889 5,39E-01 0.0001714 0.99879 2,95E-01 35 0.00010025 2,57E-01 0.00079203 0.99921 3,06E-01
76
36 0.00015746 3,29E-02 0.00052788 0.99918 3,08E-01 37 0.00033408 4,45E-01 0.00025558 0.99907 2,96E-01 38 7,42E-01 2,27E-02 0.00099164 0.99924 3,01E-01 39 7,71E-01 2,12E-02 0.0012332 0.99908 3,10E-01 40 8,87E-01 2,52E-01 0.0008593 0.99924 3,07E-01 41 0.0020757 0.0017723 3,62E-01 1,11E-01 0.9989 42 0.0022512 0.00059115 2,38E-01 1,35E-01 0.99972 43 0.0026066 0.0011245 2,46E-01 1,18E-01 0.99943 44 0.0024293 0.00089531 2,45E-01 1,24E-01 0.99955 45 0.0026763 0.00046787 1,85E-01 1,38E-01 0.9998 46 0.0015766 0.00038952 2,92E-01 1,50E-01 0.9998 47 0.00091902 0.00022799 4,45E-01 1,76E-01 0.99986 48 0.0026585 0.00036905 1,85E-01 1,46E-02 0.99985 49 0.0017594 0.00026095 2,69E-01 1,63E-01 0.99988 50 0.0013545 0.00023352 3,26E-01 1,70E-01 0.99988
Tỉ lệ đúng trên 99% là: 33/50 mẫu test ; đạt: 66%
Tỉ lệ đúng trên 80% là: 50/50 mẫu test ; đạt: 100%
Kết luận: Thử nghiệm lần 2 kết quả không khả quan như thử nghiệm lần 1, thử nghiệm lần 2, từ mẫu 1 đến mẫu 17 chỉ đạt kết quả 81-98%. Ở thử nghiệm lần 1 cho kết quả trên 99% đạt 100%. Như vậy, việc huấn luyện nơ rôn phải được thực nghiệm nhiều lần và lần thử nghiệm nào cho kết quả tốt nhất thì ta chọn kết quả đó và lưu lại để mạng nơ rơn phân loại đặc trưng EEG đạt kết quả tốt nhất.
3.3 Kết luận
Chương 3 đã trích xuất được 09 đặc trưng khác nhau của tín hiệu sóng não EEG từ 5 người trưởng thành để tạo tập dữ liệu mẫu. Sau đó, mạng nơ rơn nhân tạo đã được sử dụng và phân loại thành cơng 5 tín hiệu sóng não EEG khác nhau. 5 tín hiệu EEG này sẽ được mã hóa thành 5 tín hiệu đi Tới, đi Lùi, rẻ Phải, rẻ Trái và Dừng trong điều khiển xe lăn điện ở chương 4.
77
CHƯƠNG 4 ĐIỀU KHIỂN XE LĂN ĐIỆN DÙNG TÍN HIỆU EEG
4.1 Lắp ráp xe lăn điện
Hiện nay trên thị trường có rất nhiều xe lăn điện, điều khiển từ đơn giản đến thông minh; nhưng giá thành cũng rất cao: từ vài chục triệu đến vài trăm triệu/1 xe lăn điện.
Trong đề tài này, tác giả tái sử dụng xe lăn thường để chế tạo thành xe lăn điện thơng minh điều khiển qua sóng não như hình 4.1, với mong muốn giảm giá thành xe lăn điện để hỗ trợ cho người khuyết tật và bệnh nhân đột vị.
78
4.1.1 Board điều khiển Arduino nano (H4_hình 4.1)
Hình 4.2 board điều khiển Arduino Nano Chức năng Arduino: Chức năng Arduino:
- Truyền nhận dữ liệu từ máy tính qua module thu phát RF Zigbee - Điều khiển tốc độ 2 motor trái và phải di chuyển
- Nhận tín hiệu từ cảm biến siêu âm trước và sau xe lăn để tránh vật cản
- Báo hiệu cịi khi nhận được tín hiệu từ máy tính Các chân Arduino được sử dụng trong đề tài:
- Chân D2: được nối với chân echo của cảm biến siêu âm HC-SR04 (phía sau xe lăn)
- Chân D3: được nối với chân trig của cảm biến siêu âm HC-SR04 (phía sau xe lăn)
- Chân D4: được nối với chân echo của cảm biến siêu âm HC-SR04 (phía trước xe lăn)
- Chân D5: được nối với chân trig của cảm biến siêu âm HC-SR04 (phía trước xe lăn)
79
- Chân D7: được nối với chân DIR2 của mạch điều khiển cầu H
- Chân D8: được nối với chân DIR1 của mạch điều khiển cầu H - Chân D9: được nối với chân PWM1 của mạch điều khiển cầu H
- Chân D10: được nối với cịi báo tín hiệu
- Chân RX0 và TX1: được nối TX và RX của mạch RF Zigbee - Chân 3V3: cấp nguồn cho mạch RF Zigbee
- Chân 5V: cấp nguồn cho mạch điều khiển cầu H
- Chân Vin: cấp nguồn nuôi cho board Arduino
- Cổng USB: nạp chương trình cho board Arduino từ máy tính
4.1.2 Mơ đun thu phát RF Zigbee UART CC2530 (H8_hình 4.1)
Hình 4.3 Module thu phát RF Zigbee UART CC2530 Chức năng RF Zigbee: Chức năng RF Zigbee:
- Thu phát dữ liệu từ máy tính và board Arduino
80
4.1.3 Motor DC và Board điều khiển cầu H Mosfet
4.1.3.1 Motor DC
Hình 4.4 Motor xe lăn điện
Sử dụng motor 24VDC, công suất 250W, loại motor nam châm vĩnh cửu, tốc đợ chậm, hợp số giảm tốc 75 vịng/phút.
Chức năng:
- H1_hình 4.1 kéo bánh xe bên trái của xe lăn
- H2_hình 4.1 kéo bánh xe bên phải của xe lăn
- Tăng giảm tốc độ bằng xung PWM
4.1.3.2 Board điều khiển cầu H Mosfet
Điện áp định mức cấp cho motor 3V-36V từ bình accqui.
Mạch điện tích hợp hai cầu H, sử dụng Mosfet IRF3205 điều khiển được hai motor với dòng định mức cho mỗi motor là 10A (dòng cực đại lên đến 30A ở chế độ xung).
81
- Điều khiển 2 motor bên trái và bên phải xe lăn di chuyển bằng xung PWM, đảo chiều quay bằng chân DIR
Hình 4.5 Mạch điều khiển kép hai cầu H Mosfet Chức năng các chân: Chức năng các chân:
- Power: Cấp nguồn từ bình accqui
- Motor1: điều khiển motor bên trái xe lăn - Motor2: điều khiển motor bên phải xe lăn - PWM1: Điều khiển tốc độ motor1
- DIR1: Chọn chiều quay, Dir1=1 motor1 chạy tới, Dir1=0 motor1 chạy lùi - PWM2: Điều khiển tốc độ motor2
- DIR2: Chọn chiều quay, Dir1=1 motor2 chạy tới, Dir1=0 motor2 chạy lùi - +5V: Chân cấp nguồn từ board arduino
82
4.1.4 Cảm biến siêu âm HC-SR04
Hình 4.6 Cảm biến siêu âm HC-SR04
H4, H5_hình 4.1 là cảm biến siêu âm đặc phía trước và sau xe lăn để tránh vật cản phía trước và sau xe lăn. Cảm biến phát hiện được vật cản ở khoảng cách 3 mét.
Cảm biến siêu âm HC-SR04 sử dụng cặp chân Echo/Trigger để phát và nhận tín hiệu.
4.1.5 Bo nguồn giảm áp LM2596
Hình 4.7 Board giảm áp DC LM2596
Board giảm áp DC LM2596 để giảm áp từ bình Acquy 24V xuống 12V/3A cấp nguồn cho chân Vin của Arduino Nano.
83
4.1.6 Bo chuyển đổi USB-TTL
Hình 4.8 Board chuyển đổi USB-TTL Chức năng: Chức năng:
- Giao tiếp board thu phát RF Zigbee chuẩn TTL với máy tính để truyền nhận dữ liệu với Arduino.
- Chân 3V3: cấp nguồn cho board thu phát RF Zigbee
- Chân TXD: nối với chân RXD của board thu phát RF Zigbee - Chân RXD: nối với chân TXD của board thu phát RF Zigbee
4.1.7 Bình accqui
H3_hình 4.1 Sử dụng 2 bình accqui 12V/9A mắc nối tiếp thành 24V/9A cấp nguồn cho mạch cầu H điều khiển motor và cấp nguồn cho arduino qua board giảm áp LM2596.
84
4.2 Kiến trúc điều khiển hệ thống
Hình 4.9 Kiến trúc điều khiển hệ thống
4.2.1 Neurosky Headset
Ghi tín hiệu EEG trên da đầu truyền về máy tính qua bluetooth với tần số lấy mẫu 512Hz/giây.
4.2.2 Computer System
Sử dụng Laptop để thu tín hiệu EEG từ Neurosky Headset qua bluetooth, laptop được cài đặt phần mềm ứng dụng Matlab để xử lý tín hiệu EEG như: dùng hàm FFT để trích xuất đặc trưng EEG trong miền tần số, dùng hàm IFFT để trích xuất đặc trưng EEG trong miền thời gian và dùng mạng nơ rôn truyền thẳng MLP để phân loại các đặc trưng thành các tín hiệu điều khiển. Laptop cũng được cài đặt phần mềm ứng dụng Arduino IDE dùng lập trình cho vi điều khiển Arduino Nano để điều khiển xe lăn điện.
4.2.3 RF Zigbee
Sử dụng hai mạch thu phát RF Zigbee, mạch thứ nhất ghép nối với laptop qua board chuyển đổi USB-TTL để truyền nhận dữ liệu với vi điều khiển Arduino Nano, mạch thứ hai ghép nối với vi điều khiển Arduino Nano để truyền nhận dữ liệu với laptop.
Neurosky Headset Computer System Bluetooth RF ZipBee Usb RF ZipBee RF Wave Arduino Nano DC Motor Driver DC Motor Wheelchair
85
4.2.4 Arduino Nano
Arduino Nano nhận tín hiệu từ laptop gửi đến qua RF Zigbee, đã được mạng nơ rôn phân loại thành mã điều khiển logic 0 và 1 như sau:
- Tín hiệu cử chỉ hành đợng “mở mắt”: [1 0 0 0 0] - Tín hiệu cử chỉ hành đợng “nhắm mắt”: [0 1 0 0 0]
- Tín hiệu cử chỉ hành đợng “chớp mắt 1 lần/giây”: [0 0 1 0 0] - Tín hiệu cử chỉ hành đợng “chớp mắt >1 lần/giây”: [0 0 0 1 0] - Tín hiệu cử chỉ hành đợng “nhìn lên”: [0 0 0 0 1]
Từ mã điều khiển này, Arduino Nano sẽ điều khiển cho xe lăn điện di chuyển: Tới, lùi, trái, phải và dừng.
4.2.5 DC Motor Driver
Sử dụng mạch điều khiển motor kép, dãy điện áp rợng từ 3V-36V, dịng điện liên tục 10A, chế độ xung đạt cực đại 30A, Mạch sử dụng hai cầu H bằng Mosfet nên dễ dàng đảo chiều quay motor hoặc thay đổi tốc độ quay của motor bằng phương pháp PWM.
4.2.6 DC Motor
Sử dụng hai motor chuyên cho xe lăn điện 24V, 250W. Năng lượng cấp cho motor sử dụng hai Acquy khô 12V/9A mắc nối tiếp thành 24V/9A.
4.2.7 Wheelchair
86
4.3 Lưu đồ giải thuật điều khiển xe lăn điện
4.3.1 Lưu đồ giải thuật đọc tín hiệu EEG từ cảm biến
87
4.3.2 Lưu đồ giải thuật xử lý đặc trưng
Hình 4.11 Lưu đồ giải thuật xử lý đặc trưng Bắt đầu Bắt đầu Đặc trưng= Nhắm mắt Truyền “A” Kết thúc Đặc trưng1= Đặc trưng2 S Đặc trưng= Chớp mắt >1 lần/giây Đặc trưng= Nhìn lên Đ S S S Truyền “C” Đ Đ Truyền “B” Đ
88
4.3.3 Lưu đồ giải thuật Arduino Nano điều khiển xe lăn điện
Hình 4.12 Lưu đồ giải thuật Arduino điều khiển xe lăn điện
Như đã phân tích ở trên, tác giả trích xuất được 9 đặc trưng và đưa vào mạng ANN để phân loại thành 5 cử chỉ hành động: “mở mắt”, “nhắm mắt”, “chớp mắt 1 lần/giây”, “chớp mắt >1 lần/giây” và “nhìn lên”. Nhưng trong thực tế, cử chỉ hành
89
đợng dùng làm tín hiệu điều khiển xe lăn điện chỉ có 3 cử chỉ hành đợng là : “nhắm mắt”, “chớp mắt >1 lần/giây” và “nhìn lên” là khả thi; cịn 2 cử chỉ hành đợng: “mở mắt”, “chớp mắt 1 lần/giây” là khơng khả thi, vì ở trạng thái bình thường người điều khiển vẫn đang “mở mắt” hoặc “chớp mắt 1 lần/giây”. Vậy chỉ còn lại 3 cử chỉ hành đợng là hữu ích, nên tác giả đề xuất phương pháp điều khiển xe lăn điện dựa vào 3 tín hiệu cử chỉ hành đợng trên.
Tác giả quy ước: cử chỉ hành động: “nhắm mắt” là “A”; cử chỉ hành đợng: “nhìn lên” là “B”; cử chỉ hành động: “chớp mắt >1 lần/giây” là “C”. Từ 3 tín hiệu “A”; “B”; “C”; tác giả tổ hợp thành 5 tín hiệu điều khiển xe lăn điện như sau:
Bảng 4.1 Tín hiệu điều khiển xe lăn điện
STT Tín hiệu điều khiển Xe lăn điện
Tín hiệu 1 Tín hiệu 2 1 B B Di chuyển Tới 2 B C Rẽ Trái 3 C B Rẽ Phải 4 C C Di chuyển Lùi 5 A Xe Dừng
Như vậy, khi điều khiển xe lăn điện di chuyển : Tới, Lùi, trái, Phải phải tổ hợp 2 tín hiệu, đồng nghĩa với tổ hợp 2 cử chỉ hành đợng: “nhìn lên” và “chớp mắt >1 lần/giây”; điều khiển xe lăn điện dừng, chỉ cần 1 tín hiệu là: “nhắm mắt”.
Khi điều khiển online đọc tín hiệu từ cảm biến EEG lên điều khiển xe lăn điện, để trách nhầm lẫn giữa tín hiệu nhiễu do điện lưới 50hz, cơ, rung mắt,.. trong phần