5. Ý nghĩa thực tiễn của đề tài
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 mềm matlab tác giả đọc tín hiệu thứ nhất (1 giây) nhưng chưa điều khiển, tín hiệu này được lưu vào bộ đệm để so sánh với tín hiệu thứ hai; nếu hai tín hiệu giống nhau, đồng nghĩa người điều khiển duy trì tín hiệu trong 2 giây thì mới gửi tín hiệu đến vi điều khiển Arduino nano. Như vậy, mợt tín hiệu điều khiển hợp lệ phải mất thời gian 2 giây.
Vi điều khiển Arduino nano nhận tín hiệu điều khiển từ phần mềm matlab qua sóng RF zigbee như sau:
90
Nếu nhận tín hiệu “A”: điều khiển xe lăn điện giảm tốc độ trong 2 giây rồi dừng.
Cịn các tín hiệu khác như: “B” hoặc “C” thì vi điều khiển lưu tín hiệu thứ nhất vào bợ đệm rồi nhận tiếp tín hiệu thứ 2; nếu nhận đủ hai tín hiệu, vi điều khiển sẽ kiểm tra tổ hợp hai tín hiệu như sau:
- Nếu tổ hợp là: “B” “B” : điều khiển xe lăn điện đi tới - Nếu tổ hợp là: “B” “C” : điều khiển xe lăn điện rẽ trái
- Nếu tổ hợp là: “C” “B” : điều khiển xe lăn điện rẽ phải
- Nếu tổ hợp là: “C” “C” : điều khiển xe lăn điện đi lùi
- Khi xe lăn điện đi chuyển thì có thời gian tăng tốc độ trong 3 giây
Khi điều khiển xe lăn điện di chuyển tới, lùi, trái, phải phải mất thời gian là 4 giây.