51
4.4. Lưu đồ thuật toán. 4.4.1. Thuật toán say xỉn. 4.4.1. Thuật toán say xỉn.
52 Trạng thái này xảy ra khi phát hiện tình trạng Say xỉn khi người điều khiển lái xe. Esp8266 đọc tốc độ góc theo phương Z để phát hiện xe có đánh lái hay khơng. Cứ mỗi lần lạng lác trong khoảng thời gian nhỏ hơn 2500 ms (2,5 giây) sẽ tăng biến k +1. Khi phát hiện nếu 5 lần lạng lách chỉ xảy ra trong khoảng thời gian nhỏ hơn 30000 ms (30 giây). Điều này xảy ra đồng nghĩa với đang có tình trạng say xỉn trong quá trình lái, bật cảnh báo và sáng đèn cho tài xế và thông báo lên web server cho chủ xe.
4.4.2. Thuật toán cảnh báo Adaboost.
53 Trạng thái xảy ra khi Esp8266 nhận các thông tin từ xe cụ thể tốc độ xe, tốc độ động cơ, độ mở bướm ga, tính tốn tải động cơ. Sau đó tổng hợp và tính tốn dựa theo thuật toán Adaboost cho ra các giá trị Rcz, Rjz. Phương pháp tính tốn thể hiện trong cơng thức (10) và (11): ( ) ( ) ( ) 220 8000 cz cs t zs t R t = (10) [3]
Với R tcz( )là tỷ lệ tương đối giữa tốc độ xe và tốc độ động cơ, cs t( ) là tốc độ xe tại thời điểm t với vân tốc tối đa 220, zs t( ) là tốc độ động cơ tại thời điểm t với tốc độ tối đa của động cơ là 8000. ( ) ( )'( ) '( )( ) max ' max ' jz zs t jq t R t jq zs = (11) [3]
Với R tjz( ) là tỷ lệ tương đối của vị trí bướm ga và tốc độ động cơ, jq t'( )là khoảng thay đổi của vị trí bướm ga tại thời điểm t, zs t'( )là khoảng thay đổi của tốc độ động cơ tại thời điểm t, max( )jq' và max( )zs' là khoảng thay đổi lớn nhất của vị trí bướm ga và tốc độ động cơ.
Khi giá trị Rjz, Rcz này vượt ngưỡng sẽ gắn nhãn lable -1. Cứ như vậy trong 15 lần, nếu lable nhỏ hơn 0 đồng nghĩa đang xảy ra trạng thái lái bất thường, bật cảnh báo đèn và còi cho tài xế và thông báo lên Web server cho chủ xe.
54
4.4.3. Thuật tốn các trạng thái bất thường.
Hình 4.8: Lưu đồ thuật toán trạng thái bất thường khi rẽ
Các trạng thái này kết hợp tín hiệu tốc độ góc từ cảm biến gia tốc và tín hiệu xi nhan thông qua mạng CAN. Qua các bước phân tích, đánh giá, phát hiện các trạng thái bất thường trong q trình rẽ, thơng báo lên server.
55
Hình 4.9: Lưu đồ thuật toán trạng thái tăng tốc và phanh
Các trạng thái này kết hợp tín hiệu gia tốc dọc từ cảm biến gia tốc và tín hiệu phanh thơng qua mạng CAN để phân tích, xử lý và đánh giá trạng thái phanh đột ngột hay là tăng tốc đột ngột.
56
4.5. Thực nghiệm trên xe.
4.5.1. Tiến hành nạp chương trình.
1 Cáp với 1 đầu OBDII đực và 1 đầu DP9 cái (hình 4.1)
Hình 4.10: Cáp chuyển đổi OBD2 sang DB9
1 Cáp nạp Code
57 Tiến hành setup hộp lên xe. Ta gắn hộp tại vị trí cố định trên xe, vị trí mà tài xế dễ thấy nhất. Sau đó tiến hành kết nối wifi cho module. Kiểm tra cài đặt mềm bằng cách nhấn nút reset để reset lại hệ thống.
4.5.2. Trích xuất dữ liệu thơng qua cổng OBD2.
Nhóm đã thực hiện trích xuất dữ liệu trên xe Honda City 2016 và kết quả cho được trong hình 4.3.
Hình 4.12: Kết quả dữ liệu CAN đọc được
Kết quả sau khi phân tích nhóm đã trích xuất ra những dữ liệu cần thiết cho việc tính tốn tḥt (hình 4.4).
58
Hình 4.13: Trích xuất dữ liệu cần thiết 4.5.3. Kết quả thử nghiệm thực tế. 4.5.3. Kết quả thử nghiệm thực tế.
Hình 4.14: Đồ thị gia tốc khi xe tăng tốc
59
Hình 4.16: Đồ thị tốc độ góc khi xe đi thẳng
Hình 4.17: Đồ thị tốc độ góc khi xe lạng lách
60
Hình 4.19: Đồ thị tốc độ góc khi xe rẽ 4.6. Thực nghiệm trên mạch giả lập. 4.6. Thực nghiệm trên mạch giả lập.
4.6.1. Thiết kế mạch giả lập.
Do điều kiện tình hình dịch khó khăn. Nhóm tự tạo ra 1 mơ hình mơ phỏng mạng CAN gồm những dữ liệu nhóm cần. Nhằm mục đích thực hiện việc phân tích, kiểm tra tḥt tốn, kiểm tra chương trình một cách dễ dàng hơn, ít tốn kém hơn.
61
Hình 4.21: Sơ đồ mạch thiết bị mơ phỏng
Để có thể gia lập được tín hiệu CAN. Ta sử dụng MCP2515 giao tiếp SPI qua Arduino nano để gửi tín hiệu CAN. Ta dung các thiết bị điện tử với chức năng.
Biến trở RPM giả lập tốc độ động cơ gửi ID: 0x1DC Biến trở giả lập tốc độ xe gửi ID: 0x158 Biến trở giả lập bàn đạp ga gửi ID: 0x130 Biến trở giả lập tính tốn tải động cơ gửi ID: 0x17D Công tắc giả lập công tắc bàn đạp phanh gửi ID: 0x17C Công tắc 3 trạng thái giả lập đèn xi nhan gửi ID: 0x294 LCD trên module mô phỏng dung để hiên thị tín hiệu.
ES (Engine Speed): Tốc độ động cơ. CS (Car Speed): Tốc độ xe.
GP (Gas Pedal): Bàn đạp ga. L (Load): Tải động cơ.
62
4.6.2. Thực nghiệm giao tiếp giữa mạch giả lập và mạch ECU main cảnh báo.
Sau khi kết nối mạch giả lập và ECU cảnh báo, nhóm đã thực hiện việc kiểm tra tốc độ gửi và nhận dữ liệu mạng CAN có ổn định khơng. Sau đó thực hiện việc thay đổi thông số dữ liệu từ mạch giả lập để kiểm tra và chỉnh sửa thuật toán. Cuối cùng thực hiện kiểm tra và chỉnh sửa giao diện web, tốc độ truyền dữ liệu lên web.
Hình 4.22: Kết nối mạch giả lập và ECU main cảnh báo
63
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1. Kết luận.
Sau 5 tháng nghiên cứu và thực hiện đồ án tốt nghiệp, bằng sự cố gắng của nhóm cùng với sự hướng dẫn tận tình của GVHD ThS. Nguyễn Trọng Thức, nhóm thực hiện đã hoàn thành đưa ra sản phẩm cuối cùng và thử nghiệm thành công trong điều kiện thực tế. Trong thời gian thực hiện đề tài, chúng em đã hoàn thiện hơn về mặt kiến thức cũng như lập trình.
Đề tài đã mang lại cho chúng em những trải nghiệm mới, những kiến thức mới mà chỉ trong q trình tự tìm hiểu, tự nghiên cứu mới có được. Đây cũng là tiền đề quan trọng để mỗi thành viên trong nhóm tích lũy những kiến thức mới, những kĩ năng mới chuẩn bị hành trang bước vào doanh nghiệp.
Nhóm đã xây dựng được hệ thống cảnh báo người lái và gởi dữ liệu lên webserver.
• Tốc độ động cơ và đồ thị khoảng thay đổi tốc độ động cơ.
• Tốc độ xe và đồ thị khoảng thay đổi tốc độ xe.
• Vị trí bàn đạp ga.
• Tín hiệu phanh.
• Tín hiệu xi nhan.
• Đồ thị tốc độ góc và gia tốc góc của xe.
• Hiển thị các cảnh báo lái bất thường.
Tuy nhiên do những hạn chế về tài liệu mạng CAN mà nhóm đã khơng thực hiện được trên các hãng xe khác nhau đồng thời hạn chế về mặt kiến thức mà nhóm chỉ đưa dữ liệu lên Webserver mà vẫn chưa đưa lên được Host.
5.2. Hướng phát triển.
Về đề tài của nhóm đã thực hiện thì nhóm vẫn sử dụng dữ liệu tốc độ góc và gia tốc góc của Module MPU6050 tích hợp với dữ liệu mạng CAN. Điều đó khiến cho việc đánh giá hành vi người lái thật sự chưa hoàn hảo. Chính vì thế, nhóm đã đưa ra hướng phát triển cho đề tài là:
64
• Sử dụng dữ liệu của cảm biến gia tốc trên xe thay vì MPU6050.
• Thử nghiệm trên nhiều dịng xe khác nhau.
• Tích hợp thêm GPS.
• Cải thiện băng thông để truyền dữ liệu webserver nhanh hơn.
65
TÀI LIỆU THAM KHẢO
[1] A Vehicle Steering Recognition System Based on Low-Cost Smartphone Sensors, internet: https://www.mdpi.com/1424-
8220/17/3/633/htm?fbclid=IwAR2ZxPKTRTQ1lUr1dqozAYDa-
YyN_duWbLY5Nl1ku7DkAFTtzIZD3ThWd4I#sec3dot5dot4-sensors-17-00633
[2] Shi-Huang Chen, Jeng-Shyang Pan, and Kaixuan Lu: Driving Behavior Analysis Based on Vehicle OBD Information and AdaBoost Algorithms.
[3] Hệ thống canbus trên oto, internet: https://machdienlythu.vn/hack-he-thong-can-bus-tren-
o-to/
[4] Tạp chí khoa học cơng nghệ, internet: http://www.khcn.vimaru.edu.vn/
[5] Esp8266 projects, internet: https://lastminuteengineers.com/electronics/esp8266-projects/
[6] Esp8266 pinout, internet: https://components101.com/development-boards/nodemcu-
esp8266-pinout-features-and-datasheet
[7] Module mcp2515, internet: https://linhkien888.vn/module-can-bus-mcp2515-giao-tiep-
spi
[8] Nhận dạng giám sát hành vi lái, internet:
https://www.advantech.com.vn/resources/news/trek-132-modun-nhan-dang-giam-sat-hanh- vi-lai-xe