1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Công nghệ kỹ thuật điện tử, viễn thông: Hệ thống đánh giá chất lượng mặt đường và giám sát các thông số trên xe ô tô dựa trên nền tảng Ros và chuẩn truyền thông can

121 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hệ Thống Đánh Giá Chất Lượng Mặt Đường Và Giám Sát Các Thông Số Trên Xe Ô Tô Dựa Trên Nền Tảng Ros Và Chuẩn Truyền Thông Can
Tác giả Lê Văn Tiến, Nguyễn Hoàng Thanh Trúc
Người hướng dẫn ThS. Trương Quang Phúc
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Điện Tử - Viễn Thông
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 121
Dung lượng 7,86 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (18)
    • 1.1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI (18)
    • 1.2. TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC (19)
      • 1.2.1. Tình hình nghiên cứu ở nước ngoài (19)
      • 1.2.2. Tình hình nghiên cứu ở trong nước (20)
    • 1.3. MỤC TIÊU NGHIÊN CỨU (21)
    • 1.4. PHƯƠNG PHÁP NGHIÊN CỨU (21)
    • 1.5. ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU (22)
      • 1.5.1. Đối tượng nghiên cứu (22)
      • 1.5.2. Phạm vi nghiên cứu (22)
    • 1.6. BỐ CỤC BÀI BÁO CÁO (23)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (24)
    • 2.1. GIỚI THIỆU VỀ NỀN TẢNG ROS (24)
    • 2.2. CÁC CHUẨN GIAO THỨC (26)
      • 2.2.1. Giao thức truyền thông CAN (26)
        • 2.2.1.1. Tổng quan (26)
        • 2.2.1.2. Nguyên lý hoạt động (27)
        • 2.2.1.3. Phân loại khung CAN (28)
      • 2.2.2. Chuẩn giao thức OBD-II (32)
        • 2.2.2.1. Tổng quan (32)
        • 2.2.2.2. Hoạt động của OBD-II [13] (33)
      • 2.2.3. Giao thức SPI (35)
      • 2.2.4. Giao thức TCP/IP (36)
    • 2.3. GIỚI THIỆU VỀ HỆ THỐNG PHẦN CỨNG (37)
      • 2.3.1. Máy tính nhúng – Raspberry Pi 4 (37)
      • 2.3.2. Arduino Mega 2560 [20] (39)
      • 2.3.3. Ethernet Shield Arduino [21] (41)
      • 2.3.4. CAN_Bus Shield (42)
      • 2.3.5. Cảm biến gia tốc Serial 6-Axis Accelerometer [23] (43)
      • 2.3.6. Cảm biến định vị GPS NEO M8M (44)
      • 2.3.8. Màn hình LCD [27] (46)
    • 2.4. TỔNG QUAN VỀ CHẤT LƯỢNG MẶT ĐƯỜNG (47)
      • 2.4.1. Độ gồ ghề mặt đường (47)
      • 2.4.2. Chỉ số Gồ ghề Quốc tế (IRI) (48)
      • 2.4.3. Áp dụng IRI vào thuật toán (49)
    • 2.5. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU GOOGLE FIREBASE (51)
      • 2.5.1. Giới thiệu cơ sở dữ liệu Google Firebase (51)
      • 2.5.2. Các tính năng của Firebase [34] (51)
    • 2.6. TỔNG QUAN VỀ HTML, CSS VÀ JAVASCRIPT (52)
      • 2.6.1. HTML (52)
      • 2.6.2. CSS (54)
      • 2.6.3. JavaScript (55)
  • CHƯƠNG 3: THIẾT KẾ HỆ THỐNG (57)
    • 3.1. YÊU CẦU HỆ THỐNG (57)
    • 3.2. ĐẶC TẢ HỆ THỐNG (57)
      • 3.2.1. Chức năng hệ thống (57)
      • 3.2.2. Mô hình tổng thể hệ thống (58)
      • 3.2.3. Sơ đồ khối hệ thống (59)
      • 3.2.4. Hoạt động của hệ thống (60)
    • 3.3. THIẾT KẾ PHẦN CỨNG (61)
      • 3.3.1. Khối xử lý trung tâm (62)
      • 3.3.2. Khối tiền xử lý (63)
      • 3.3.3. Khối cảm biến (65)
      • 3.3.4. Bộ truyền nhận CAN dùng cổng OBD II (68)
      • 3.3.5. Khối hiển thị (69)
      • 3.3.6. Khối nguồn (70)
      • 3.3.7. Sơ đồ thiết kế toàn bộ hệ thống (71)
    • 3.4. THIẾT KẾ PHẦN MỀM (72)
      • 3.4.1. Lưu đồ thuật toán (72)
      • 3.4.2. Xây dựng Website (95)
  • CHƯƠNG 4: KẾT QUẢ VÀ NHẬN XÉT ĐÁNH GIÁ (100)
    • 4.1. KẾT QUẢ PHẦN CỨNG (100)
      • 4.1.1. Mô hình phần cứng (100)
      • 4.1.2. Kết quả giao tiếp giữa khối tiền xử lý và khối xử lý trung tâm (101)
    • 4.2. KẾT QUẢ PHẦN MỀM (104)
      • 4.2.1. Giao diện chính (106)
      • 4.2.2. Giao diện đăng ký/đăng nhập (109)
      • 4.2.3. Giao diện người dùng (111)
    • 4.3. ĐÁNH GIÁ VÀ NHẬN XÉT HỆ THỐNG (114)
  • CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (115)
    • 5.1. KẾT LUẬN (115)
      • 5.1.1. Kết quả đạt được (115)
      • 5.1.2. Hạn chế (115)
    • 5.2. HƯỚNG PHÁT TRIỂN (116)
  • TÀI LIỆU THAM KHẢO (117)

Nội dung

Nhóm đã thực hiện xây dựng một hệ thống để thu thập các dữ liệu về vị trí, gia tốc của xe tại vị trí đó, đồng thời lấy dữ liệu về các thông số trên xe gồm tốc độ xe, tốc độ động cơ, nhiệ

TỔNG QUAN

TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong những năm gần đây, Việt Nam đã tăng cường hợp tác quốc tế, dẫn đến sự gia tăng kim ngạch xuất nhập khẩu và thúc đẩy các hoạt động kinh tế sôi nổi trên toàn quốc Điều này tạo ra nhu cầu vận chuyển hàng hóa ngày càng cao, đặc biệt là đối với các phương tiện có trọng tải lớn Bên cạnh đó, cuộc sống của người dân cũng được cải thiện, khiến nhu cầu sử dụng xe gắn máy tăng lên đáng kể, với 72.8% dân số năm 2023 sử dụng phương tiện này.

Trong năm 2022, tổng số ô tô bán ra đạt hơn 509.141 chiếc, cho thấy nhu cầu tăng cao Để đáp ứng tốt nhu cầu này, chất lượng và điều kiện của các tuyến đường đóng vai trò quan trọng trong việc phục vụ giao thông.

Việc phát triển hệ thống giao thông đường bộ ở nước ta là rất cần thiết trong bối cảnh đất nước đang phát triển Tuy nhiên, nhiều yếu tố tự nhiên và con người đã khiến cho chất lượng các tuyến đường ngày càng xuống cấp, với tình trạng ổ gà, ổ voi gia tăng Những vấn đề này không chỉ gây nguy hiểm cho người tham gia giao thông mà còn làm giảm tuổi thọ của phương tiện Do đó, việc xây dựng một bản đồ chất lượng đường là cần thiết để người dân nắm bắt tình trạng đường, điều chỉnh tốc độ và giúp các cơ quan quản lý có kế hoạch sửa chữa kịp thời, đảm bảo an toàn cho người tham gia giao thông.

Dựa trên thực trạng hiện tại, chúng tôi quyết định sử dụng các thông số có sẵn trên xe ô tô kết hợp với một số cảm biến cần thiết để phát triển một giao diện bản đồ.

Đề tài "Hệ thống đánh giá chất lượng mặt đường và giám sát các thông số trên xe ô tô dựa trên nền tảng ROS và chuẩn truyền thông CAN" trong đồ án tốt nghiệp nhằm xây dựng bản đồ đánh giá chất lượng mặt đường Việc này sẽ cung cấp thông tin nhanh chóng cho người dùng và hỗ trợ các cơ quan quản lý đường bộ có phương án sửa chữa, khắc phục kịp thời, từ đó đảm bảo an toàn cho người tham gia giao thông.

TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC

Dưới đây là một số nghiên cứu và bài báo khoa học có tính ứng dụng cao liên quan đến việc xây dựng hệ thống tính toán và đánh giá chất lượng đường trên toàn cầu và tại Việt Nam.

1.2.1 Tình hình nghiên cứu ở nước ngoài

Nhóm tác giả đã ứng dụng trí tuệ nhân tạo để đánh giá chất lượng đường phố trong thành phố thông minh Họ thiết kế một thiết bị phát hiện chất lượng mặt đường, sử dụng micro để thu thập tín hiệu âm thanh và module siêu âm để đo độ sâu mặt đường Dữ liệu thu thập được phân tích bằng các thuật toán học máy như MLP, SVM và RF Khi phát hiện đường bị gồ ghề hoặc có vết nứt sâu, hệ thống sẽ gửi cảnh báo đến cơ quan quản lý đường bộ kèm theo vị trí cụ thể Điều này giúp các cơ quan chức năng thực hiện các biện pháp kịp thời để khắc phục tình trạng hư hỏng của mặt đường.

Nhóm tác giả đã nghiên cứu và thiết kế một hệ thống giám sát tình trạng đường bộ chi phí thấp nhằm xác định các đoạn đường cần bảo trì Hệ thống sử dụng bốn cảm biến: GPS, cảm biến áp suất lốp, cảm biến IMU và cảm biến gia tốc kế để thu thập dữ liệu về vị trí, áp suất lốp và chuyển động trên đường Dữ liệu được thu thập trên mạng lưới đường bộ dài hơn 1000km từ Riyadh đến Mecca, một trong những tuyến đường chính của Ả Rập Sau khi thu thập, dữ liệu sẽ được xử lý qua các thuật toán để loại bỏ nhiễu và đánh giá chất lượng mặt đường Phương pháp này cho phép theo dõi tình trạng đường bộ một cách dễ dàng.

3 bằng điện thoại thông minh và hỗ trợ các cơ quan quản lý đường bộ lập kế hoạch bảo trì tốt hơn

Việc giám sát tình trạng mặt đường ngày càng quan trọng, với các nhà nghiên cứu và chuyên gia áp dụng công nghệ và phương pháp thông minh để cải thiện quản lý và bảo trì mạng lưới đường bộ Xu hướng nghiên cứu hiện nay bao gồm việc sử dụng công nghệ cảm biến và hệ thống giám sát để thu thập dữ liệu về tình trạng mặt đường Đồng thời, các phương pháp học máy và trí tuệ nhân tạo được áp dụng để dự đoán mức độ hư hỏng và tuổi thọ của mặt đường, giúp quản lý và lập kế hoạch bảo trì hiệu quả hơn Các công trình nghiên cứu này đã được kiểm duyệt và công khai, mang lại lợi ích cho việc tham khảo và phát triển đề tài.

1.2.2 Tình hình nghiên cứu ở trong nước

Trong nghiên cứu của nhóm tác giả, tỷ lệ và đặc điểm vết nứt trên mặt đường ở Việt Nam vẫn cần can thiệp thủ công, chưa có hệ thống phát hiện tự động Nhằm nâng cao hiệu suất khảo sát, nhóm đã phát triển thuật toán học máy và áp dụng học sâu để tự động phát hiện đặc điểm vết nứt Cụ thể, họ đã sử dụng kiến trúc CNN để phân loại vết nứt từ hình ảnh thu thập bởi xe khảo sát chuyên dụng Kết quả nghiên cứu giúp đánh giá mức độ nghiêm trọng của vết nứt và hỗ trợ quản lý mặt đường hiệu quả ở cả cấp độ mạng lưới và dự án.

Bài viết trình bày một phương pháp thiết lập hệ thống cơ sở dữ liệu GIS, bao gồm việc gắn thẻ địa lý cho các tấm ảnh nhằm giám sát bề mặt đường bộ và tự động hóa ghi nhận, báo cáo sự cố Tác giả thu thập thông tin về vị trí hư hỏng trên quốc lộ 45, tuyến giao thông quan trọng nối Ninh Bình và Thanh Hóa Hệ thống được thiết kế dễ sử dụng, tiết kiệm chi phí và dễ triển khai, hiệu quả nhờ vào việc thu thập thông tin GPS khi chụp ảnh và đính kèm vào bản đồ.

4 lý có thể dễ dàng theo dõi và xử lý các sự cố trên đường bộ một cách tự động và hiệu quả

Hệ thống giám sát và đánh giá chất lượng bề mặt đường bộ ở Việt Nam đang được nâng cấp để đảm bảo an toàn giao thông và cải thiện hạ tầng đường bộ Các cơ quan quản lý và tổ chức nghiên cứu đang tích cực phát triển hệ thống này, giúp nâng cao hiệu suất vận hành và giảm thiểu tai nạn giao thông do điều kiện đường xấu.

MỤC TIÊU NGHIÊN CỨU

Mục tiêu của nghiên cứu là phát triển một bản đồ đánh giá chất lượng mặt đường sử dụng công nghệ định vị GPS cùng với các tín hiệu từ bên ngoài và bên trong xe Nghiên cứu này kết hợp việc xác định chất lượng bề mặt đường bộ với việc tạo ra bản đồ hiển thị thông tin về trạng thái của mặt đường.

Cụ thể đề tài được thực hiện với các mục tiêu chính như sau:

- Thiết kế một hệ thống thu thập được các thông số từ cảm biến và thông qua Arduino Mega 2560

- Giao tiếp bằng giao thức truyền thông CAN để truyền nhận dữ liệu giữa các tín hiệu bên trong xe và Arduino Mega 2560

- Thực hiện truyền nhận dữ liệu, lưu trữ và xử lý các dữ liệu thu thập được dựa trên nền tảng ROS

- Thiết kế được hệ thống phần mềm phân tích, đánh giá chất lượng mặt đường trên Raspberry Pi 4

Thiết kế và xây dựng bản đồ trực tuyến hiển thị thông tin vị trí và trạng thái mặt đường, bao gồm chỉ số độ gồ ghề, thông qua giao diện website trực quan.

PHƯƠNG PHÁP NGHIÊN CỨU

Để thực hiện đề tài này, chúng tôi sử dụng phương pháp nghiên cứu phát triển xuyên suốt dự án Bao gồm những bước chính sau:

- Tổng hợp các tài liệu về lý thuyết và những kiến thức đã được học

- Nghiên cứu về giao thức CAN trong ô tô

- Tìm hiểu, thu thập thông tin, nghiên cứu các lý thuyết và nguyên lý hoạt động của các cảm biến IMU, GPS và các tín hiệu bên trong xe

- Nghiên cứu về cách xây dựng một bản đồ

- Phát triển ý tưởng và thiết kế chi tiết hệ thống bằng cách thiết lập các khối chức năng và lên ý tưởng thiết kế giao diện người dùng

- Thực hiện chạy thử thực tế sau đó đưa ra đánh giá nhận xét về hoạt động của hệ thống

- Tham khảo ý kiến từ người hướng dẫn và hoàn thiện hệ thống.

ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

1.5.1 Đối tượng nghiên cứu Để phục vụ cho việc thực hiện mục tiêu của đề tài, nhóm chúng tôi tập trung nghiên cứu các đối tượng dưới đây:

- Lập trình cho Raspberry Pi 4 và vi điều khiển Arduino Mega 2560

- Các thiết bị cảm biến và tín hiệu bên trong xe ô tô

- Ngôn ngữ lập trình C, Python

Giao thức giao tiếp CAN trên xe ô tô đóng vai trò quan trọng trong việc kết nối các thiết bị cảm biến và hệ thống phần cứng Nghiên cứu này tập trung vào việc đánh giá tính ổn định và độ chính xác của dữ liệu từ các cảm biến, nhằm đảm bảo hiệu suất và an toàn cho phương tiện.

Đề tài “Hệ thống đánh giá chất lượng mặt đường và giám sát các thông số trên xe ô tô dựa trên nền tảng ROS và chuẩn truyền thông CAN” tập trung vào việc phát triển một hệ thống hiệu quả để đánh giá chất lượng mặt đường và theo dõi các thông số kỹ thuật của xe ô tô Nghiên cứu này sử dụng nền tảng ROS (Robot Operating System) kết hợp với giao thức truyền thông CAN (Controller Area Network) để thu thập và phân tích dữ liệu, nhằm nâng cao độ chính xác trong việc giám sát và đánh giá.

- Nghiên cứu các thiết bị cảm biến để thu thập dữ liệu vị trí và chuyển động của xe

- Nghiên cứu và thực hiện việc truyền nhận dữ liệu trên nền tảng ROS

- Nghiên cứu và thực hiện truyền nhận dữ liệu thông qua truyền thông CAN trên Arduino Mega 2560

- Đưa các dữ liệu thu thập được lên MCU để xử lí và thiết kế bản đồ

- Thiết kế bản đồ hiển thị đầy đủ các thông tin về trạng thái bề mặt đường từ các dữ liệu thu thập được

- Đưa ra kết luận và hướng đi tiếp theo cho đề tài.

BỐ CỤC BÀI BÁO CÁO

Bố cục của bài báo cáo gồm những phần như sau:

Chương 1: Tổng quan đề tài: Giới thiệu lý do chọn đề tài và mục tiêu hướng đến Cập nhật tình hình nghiên cứu trong và ngoài nước cũng như phương pháp nghiên cứu, giới hạn đề tài và bố cục cho đề tài

Chương 2: Cơ sở lý thuyết: Trình bày ngắn gọn và rõ ràng các linh kiện được sử dụng trong mô hình, các cơ sở lý thuyết liên quan, mô tả đặc điểm của các phần mềm thiết kế hệ thống

Chương 3: Thiết kế hệ thống: Từ yêu cầu của đề tài tính toán để lựa chọn các linh kiện, xây dựng sơ đồ khối và phân tích các chức năng của từng khối trong hệ thống Mô tả hoạt động của hệ thống

Chương 4: Kết quả và nhận xét đánh giá: Trình bày kết quả và hình ảnh thực tế của hệ thống Phân tích kết quả thực tế và đưa ra nhận xét so với mục tiêu đề ra ban đầu

Chương 5: Kết luận và hướng phát triển: Dựa vào các kết quả đạt được từ chương 4, đưa ra kết luận về những việc đã làm được và chưa làm được của đề tài

Từ đó đưa ra các hướng để cải thiện dự án và nâng cao tính ứng dụng để đưa dự án đi vào thực tiễn

CƠ SỞ LÝ THUYẾT

GIỚI THIỆU VỀ NỀN TẢNG ROS

ROS là nền tảng mã nguồn mở cung cấp cho người dùng các công cụ và thư viện cần thiết để phát triển ứng dụng robot.

Nền tảng ROS cung cấp nhiều tính năng hữu ích như thực hiện các tác vụ song song, trao đổi dữ liệu giữa các tác vụ và quản lý dữ liệu hiệu quả Việc sử dụng ROS mang lại lợi ích lớn cho người dùng nhờ vào các công cụ chuẩn giúp giao tiếp giữa các tác vụ dễ dàng hơn, cùng với sự hỗ trợ từ các thư viện có sẵn cho nhiều tác vụ khác nhau Hơn nữa, người dùng còn nhận được sự hỗ trợ từ một cộng đồng lớn mạnh, giúp giải quyết nhanh chóng các thắc mắc và vấn đề trong quá trình làm việc.

Mô hình ROS có thể được chia thành ba phần: Filesystem, Computation Graph, và Community [8]

Tầng Filesystem là nền tảng quan trọng cho việc giao tiếp và truyền nhận dữ liệu trong hệ thống Nó quy định cấu trúc dữ liệu trong phần message (msg) và định nghĩa các lệnh truy cập cũng như phản hồi của các dịch vụ trong ROS ở phần service (src) Đặc biệt, Packages là phần không thể thiếu, cung cấp các dịch vụ cần thiết để thực hiện các chức năng của hệ thống.

Tầng Computation Graph là nơi người dùng tương tác và làm việc trực tiếp nhiều nhất Tầng này bao gồm các thành phần cơ bản như Nodes, Master, Messages, Topics và Bags.

Nodes là các thành phần quan trọng trong hệ thống, thực hiện nhiệm vụ thu thập, tính toán và xử lý dữ liệu Mỗi hệ thống thường bao gồm nhiều node với các chức năng khác nhau Chẳng hạn, trong một hệ thống xây dựng chất lượng mặt đường, một node sẽ thu thập dữ liệu từ cảm biến, trong khi một node khác sẽ xử lý và tính toán các dữ liệu đó.

Master là thành phần cung cấp tên đăng ký và tra cứu cho các node trong hệ thống Đây là nơi thực hiện các kết nối giữa các node, giúp chúng tương tác và hoạt động hiệu quả với nhau.

Trong hệ thống mạng, việc trao đổi thông tin giữa các node là rất quan trọng Nếu không có Master, các node sẽ hoạt động một cách rời rạc và không có sự liên kết, dẫn đến việc không đạt được kết quả hiệu quả cho toàn bộ hệ thống.

• Messages: là kiểu cấu trúc của dữ liệu mà người dùng muốn định nghĩa cho thông tin để giao tiếp giữa các node, ví dụ như string, IMU, GPS,

Trong quá trình trao đổi thông tin giữa các Node, Messages được định tuyến theo hai kiểu: Publisher (gửi thông tin) và Subscriber (đăng ký nhận thông tin) Một Node gửi các Messages bằng cách đưa chúng vào các Topic, với tên các Topic thường được đặt theo nội dung của Messages.

Bags là công cụ lưu trữ thông tin từ các tin nhắn ROS, đóng vai trò quan trọng trong việc lưu trữ dữ liệu, chẳng hạn như dữ liệu từ cảm biến.

Hình 2 1: Giao tiếp giữa các Node trong ROS

Quá trình giao tiếp giữa hai node trong ROS bắt đầu khi Publisher Node đăng ký tên topic với ROS Master ROS Master sau đó cung cấp thông tin về topic cho Subscriber Node Khi Subscriber Node nhận được thông tin, nó gửi yêu cầu đến Publisher Node để nhận message Publisher Node sẽ gửi các message vào topic đã đăng ký, và Subscriber Node sẽ nhận các message này từ topic, được thông báo bởi ROS Master.

➢ Tầng Community: là các nguồn tài nguyên bao gồm phần mềm và các kiến thức được cộng đồng phát triển ROS chia sẻ với nhau

CÁC CHUẨN GIAO THỨC

2.2.1 Giao thức truyền thông CAN

Ngày nay, việc triển khai nhiều thiết bị điện tử trên các phương tiện hiện đại nhằm tăng cường an toàn và thoải mái cho người lái, đồng thời giảm thiểu khí thải Tuy nhiên, điều này dẫn đến nhu cầu về nhiều kết nối và đầu nối hơn, ảnh hưởng đến chi phí vật liệu, thời gian sản xuất và độ tin cậy của dữ liệu Để giải quyết vấn đề này, mạng truyền thông CAN (Control Area Network) đã được phát triển, giúp thay thế các kết nối điểm - điểm bằng một đường truyền thông chung duy nhất, gọi là CAN_bus, kết nối tất cả các hệ thống và cho phép trao đổi thông tin hiệu quả.

Hình 2 2: Giao thức truyền thông CAN [9]

Giao thức CAN, phát triển bởi Robert BOSCH GmbH của Đức, là một trong những giao thức phổ biến nhất trong ngành ô tô và tự động hóa công nghiệp Trong mạng CAN, các nút giao tiếp với nhau qua hai dây CAN_H và CAN_L, với dữ liệu được mã hóa và giải mã theo quy tắc của mạng Tốc độ truyền dữ liệu có thể đạt tới 1Mbps, với khoảng cách truyền tối đa lên đến 40m Việc sử dụng cặp dây xoắn CAN_H và CAN_L giúp giảm thiểu nhiễu điện từ (EMI) trong quá trình truyền, đảm bảo độ tin cậy cao cho dữ liệu.

Giao thức CAN hoạt động dựa trên nguyên tắc "Carrier Sense Multiple Access with Arbitration on Message Priority" (CSMA/AMP) Trong đó, CSMA yêu cầu kiểm tra xem đường truyền có trống hay không trước khi gửi tín hiệu, trong khi AMP xác định rằng các tin nhắn có độ ưu tiên khác nhau, cho phép tin nhắn có độ ưu tiên cao hơn được xử lý trước Tóm lại, dữ liệu chỉ được truyền trên đường truyền CAN_Bus khi đường truyền đang trống và trong trường hợp có nhiều dữ liệu cùng truyền, dữ liệu có độ ưu tiên cao hơn sẽ được ưu tiên truyền trước, với độ ưu tiên được xác định dựa trên số bit dominant (bit 0) trong trạng thái dữ liệu.

Hình 2 3: Ví dụ cho quá trình hoạt động trên mạng CAN [9]

Trong quá trình truyền dữ liệu từ ba Node khác nhau, thứ tự truyền được xác định dựa trên độ ưu tiên của từng dữ liệu Node B có độ ưu tiên thấp nhất do có bit recessive cao hơn, nên sẽ bị đưa vào hàng chờ So sánh giữa Node C và Node A cho thấy Node C có bit recessive cao hơn Node A, dẫn đến độ ưu tiên thấp hơn Do đó, thứ tự ưu tiên trên đường truyền CAN_Bus sẽ lần lượt là Node A, Node B và Node C.

Sau khi dữ liệu được truyền qua đường truyền, mỗi dữ liệu sẽ có một mã ID riêng biệt Các Node nhận dữ liệu sẽ kiểm tra mã ID này để xác định xem dữ liệu có đúng với yêu cầu hay không Nếu mã ID chính xác, dữ liệu sẽ được tiếp nhận và xử lý Ngược lại, nếu mã ID sai, quá trình tìm kiếm dữ liệu với mã ID đúng sẽ tiếp tục diễn ra.

Khung CAN được phân thành 5 loại [10], bao gồm:

• Khung dữ liệu (Data Frame)

• Khung yêu cầu (Remote Frame)

• Khung báo lỗi (Error Frame)

• Khung báo tràn (Overload Frame)

• Không gian liên khung (Inter-frame Space)

Hình 2 4: Định dạng khung dữ liệu tiêu chuẩn [9]

Khung dữ liệu là yếu tố quan trọng khi Node cần truyền tải thông tin qua đường truyền CAN Hình 2.4 trên minh họa chi tiết các thành phần cấu thành khung dữ liệu này.

• Bắt đầu một khung dữ liệu sẽ là bit SOF, bit này mặc định sẽ luôn có giá trị là

Trường trạng thái của khung quy định mức độ ưu tiên cho dữ liệu trên đường truyền, bao gồm hai phần: phần đầu dài 11 bit.

Mã ID gồm 12 bit được sử dụng để xác định dữ liệu trên đường truyền, trong đó có một bit thể hiện khung hiện tại là khung dữ liệu hay khung yêu cầu; đối với khung dữ liệu, giá trị bit này luôn là 0.

Trường điều khiển trong giao thức CAN xác định loại khung dữ liệu hiện tại, bao gồm khung CAN cơ bản và khung CAN mở rộng thông qua bit IDE Đối với khung CAN cơ bản, giá trị bit luôn bằng 0, và số lượng byte chứa dữ liệu trong tin nhắn được biểu thị trong 4 bit cuối cùng, với khả năng từ 0 đến 8 byte.

• Trường dữ liệu có độ dài được xác định bởi DLC ở trên (0, 8, 16,…, 56, 64) tại đây sẽ chứa thông tin về giá trị dữ liệu của tin nhắn đang mang

Trường kiểm tra có độ dài 16 bit, bao gồm 15 bit đầu là chuỗi CRC và một bit phân tách CRC có giá trị 1 Nhiệm vụ của trường này là phát hiện lỗi trên đường truyền tại thời điểm nhận bằng cách so sánh mã CRC giữa hai dữ liệu.

Trường tiếp theo trong giao thức là trường xác nhận ACK, nơi phát đi một bit recessive (bit 1) Tất cả các node nhận dữ liệu sẽ phản hồi bằng một bit trội (bit 0) Sau đó, sẽ có một bit phân tách trường ACK có giá trị bằng 1.

• Cuối cùng là trường kết thúc khung EOF, được thể hiện bằng chuỗi gồm 7 bit recessive liên tiếp (bit 1)

Hình 2 5: Định dạng khung yêu cầu [9]

Khi một Node trong mạng CAN cần dữ liệu từ một Node khác, nó sẽ gửi khung yêu cầu để nhận dữ liệu mong muốn ngay lập tức Cấu trúc của khung yêu cầu tương tự như khung dữ liệu, với hai điểm khác biệt chính: bit RTR của khung yêu cầu là bit recessive và không có trường dữ liệu trong khung yêu cầu Điều này giúp khung dữ liệu được ưu tiên hơn khi cả hai khung có cùng ID và truyền cùng lúc, nhờ vào bit RTR là bit dominant Việc sử dụng khung yêu cầu tối ưu hóa quá trình truyền thông và nâng cao hiệu quả cho hệ thống mạng CAN.

Hình 2 6: Định dạng khung báo lỗi [9]

Khung báo lỗi xuất hiện khi một node trong mạng phát hiện lỗi bus Cấu trúc của khung này bao gồm hai trường chính: trường cờ lỗi và trường phân.

Trường phân tách lỗi trong giao thức truyền thông sử dụng 8 bit recessive liên tiếp để khởi động lại quá trình truyền nhận, đảm bảo không còn lỗi nào trên đường truyền Bên cạnh đó, trường cờ lỗi được chia thành hai dạng chính: cờ lỗi chủ động và cờ lỗi bị động.

Cờ lỗi chủ động bao gồm 6 bit dominant liên tiếp, vi phạm quy luật nhồi bit chỉ cho phép 5 bit cùng mức logic Hệ quả là các Node nhận được lỗi nhồi bit và tạo ra các khung lỗi Những khung lỗi này sẽ được kết thúc bởi trường phân tách lỗi, sau khi báo lỗi hoàn tất, đường truyền CAN_Bus sẽ hoạt động trở lại bình thường Node bị lỗi sẽ gửi lại thông tin đã bị hủy do lỗi trước đó Cờ lỗi bị động bao gồm

GIỚI THIỆU VỀ HỆ THỐNG PHẦN CỨNG

2.3.1 Máy tính nhúng – Raspberry Pi 4

Hệ thống nhúng hiện nay đóng vai trò quan trọng và phổ biến trong cuộc sống hàng ngày, từ các thiết bị gia dụng như lò vi sóng, tủ lạnh, lò nướng đến máy in trong văn phòng Chúng cũng được ứng dụng rộng rãi trong các dây chuyền sản xuất tự động và robot công nghiệp, giúp tăng năng suất, cải thiện độ chính xác và hiệu quả trong quá trình sản xuất Sự ảnh hưởng của hệ thống nhúng đối với cuộc sống là rất lớn.

Raspberry Pi được phát triển với mục tiêu giúp mọi người dễ dàng tiếp cận thế giới máy tính thông qua các sản phẩm từ máy tính nhúng, mang lại cơ hội học tập và sáng tạo cho tất cả mọi người.

Raspberry Pi 4 Model B với thiết kế nhỏ gọn như một chiếc điện thoại, vẫn cung cấp đầy đủ tính năng của một máy tính hoàn chỉnh, bao gồm CPU, RAM, Bluetooth, và các kết nối ngoại vi, cùng với hệ điều hành Linux được cài đặt trên thẻ nhớ Thiết bị này không chỉ phổ biến trong việc xây dựng hệ thống điều khiển thiết bị gia đình mà còn hỗ trợ các ứng dụng IoT, đồng thời có thể được sử dụng như một máy tính nhỏ phục vụ công việc Những lợi ích này đã khiến Raspberry Pi trở thành lựa chọn hàng đầu cho nhiều người dùng.

Pi là sự lựa chọn hàng đầu cho học sinh và sinh viên trong việc học tập, nghiên cứu và phát triển sản phẩm cá nhân.

Hình 2 12: Sơ đồ kết nối của Raspberry Pi 4 [19]

Raspberry Pi 4 cung cấp nhiều kết nối ngoại vi đa dạng, bao gồm Bluetooth 5.0, Wifi 2.4GHz, cổng Ethernet, khe cắm thẻ nhớ SD, đầu cắm nguồn, hai cổng HDMI cho hai màn hình song song, khe cắm CSI cho camera, cổng âm thanh, cùng hai cổng USB 2.0 và hai cổng USB 3.0 Thiết bị cũng có 40 chân IO, trong đó 28 chân là GPIO và các chân còn lại phục vụ nhu cầu cấp nguồn, hỗ trợ người dùng trong việc thiết kế hệ thống.

Hình 2 13: Vị trí các chân GPIO trên Raspberry Pi 4

Hình 2.13 hiển thị vị trí các chân GPIO trên Raspberry Pi 4 và các kết nối hỗ trợ giao thức mà thiết bị này cung cấp cho hệ thống Raspberry Pi 4 có khả năng hỗ trợ hầu hết các giao thức cần thiết cho người dùng, bao gồm SPI, I2C và UART Thông số kỹ thuật chi tiết của Raspberry Pi 4 được trình bày trong bảng 2.1 dưới đây.

Bảng 2 1: Thông số kỹ thuật của Raspberry Pi 4

Khi nhắc đến dòng mạch Mega của Arduino, Arduino Mega 2560 nổi bật như một sản phẩm tiêu biểu với nhiều cải tiến so với Arduino Uno Bo mạch này sở hữu 54 chân digital IO và 16 chân analog IO, cùng với bộ nhớ flash được tăng lên gấp 4 lần so với Uno R3, mang lại khả năng lưu trữ và xử lý dữ liệu tốt hơn.

Arduino Mega 2560 giúp gia tăng khối lượng công việc của vi điều khiển và thực hiện nhiều tính năng hơn nhờ trang bị 3 timer và 6 cổng interrupt, cho phép giải quyết nhiều bài toán khó và xử lý dữ liệu song song Thiết kế chân kết nối IO của Arduino Mega 2560 tương tự như Arduino Uno R3, giúp việc kế thừa và nâng cấp dự án trở nên dễ dàng Sự gia tăng số lượng chân kết nối IO so với Uno cũng hỗ trợ người dùng trong việc thực hiện các kết nối trên hệ thống Thông số kỹ thuật của Arduino Mega 2560 được trình bày trong bảng 2.2 dựa theo tài liệu từ nhà phát hành Arduino.

Hình 2 14: Bo mạch Arduino Mega 2560 [20]

Bảng 2 2: Thông số kỹ thuật của vi điều khiển Arduino Mega 2560 [20]

Ethernet Shield là mạch mở rộng cho Arduino, sử dụng chip W5100 của WIZnet, cung cấp kết nối internet ổn định với tốc độ truyền tải lên đến 100Mbps Mạch này còn tích hợp khe cắm thẻ micro-SD, cho phép lưu trữ tập tin qua mạng Để giao tiếp với chuẩn Ethernet, Arduino chỉ cần sử dụng chân SS là GPIO10, và nếu sử dụng thêm thư viện cho thẻ micro-SD, có thể mở rộng khả năng của dự án.

SD thì cần thêm chân GPIO4 để làm chân SS

Hình 2 15: Sơ đồ chân Ethernet Shield [22]

Bo mạch Ethernet Shield sử dụng chip Ethernet WIZnet W5100 để cung cấp kết nối Ethernet cho Arduino Khi kết nối với cáp Ethernet và nguồn, chip W5100 khởi tạo và thiết lập kết nối mạng qua giao thức TCP/IP, cho phép Arduino giao tiếp với mạng Ethernet Bên cạnh đó, bộ điều khiển cũng có khả năng đọc và ghi dữ liệu vào thẻ nhớ micro-SD thông qua các chân I/O, phục vụ cho việc lưu trữ và truy xuất dữ liệu qua mạng Thông số kỹ thuật của Ethernet Shield được trình bày trong bảng 2.3.

Bảng 2 3: Thông số kỹ thuật của Ethernet Shield [21]

CAN_Bus Shield là một thiết bị phổ biến nhờ vào khả năng truyền nhận xa, tốc độ truyền trung bình và độ tin cậy cao, thường được sử dụng để chẩn đoán ô tô Hoạt động của shield này chủ yếu dựa vào bộ điều khiển CAN_Bus MCP2515 và bộ thu phát MCP2551 CAN, trong đó MCP2515 cung cấp giao diện kết nối SPI, còn MCP2551 cho phép Arduino giao tiếp qua giao thức truyền thông CAN Thêm vào đó, bo mạch được trang bị cổng OBD-II với đầu nối DB9, giúp thực hiện các chương trình chẩn đoán và ghi dữ liệu hệ thống Thông số kỹ thuật của CAN_Bus Shield được trình bày chi tiết trong bảng 2.4.

Bảng 2 4: Thông số kỹ thuật của CAN_BUS Shield

Hình 2 16: Bo mạch CAN_Bus Shield

2.3.5 Cảm biến gia tốc Serial 6-Axis Accelerometer [23]

Để đo thông số gia tốc, module được trang bị con quay hồi chuyển chính xác cao, gia tốc kế và bộ xử lý với nhiều phép giải động lực tiên tiến Thuật toán lọc Kalman được sử dụng trong bộ xử lý để giải quyết chuyển động thời gian thực của module, giúp giảm nhiễu đo lường và mang lại kết quả với độ chính xác tối ưu.

Module Serial 6-Axis Accelerometer có độ chính xác cao, đạt 0.05 độ trong đo tĩnh và 0.1 độ trong đo động, cùng với độ ổn định vượt trội Độ chính xác này được đảm bảo nhờ vào bộ giải cử đi kèm và thuật toán Kalman, giúp xác định các thái độ chính xác.

27 xác nhất trong môi trường động Bộ thông số kỹ thuật của module Serial 6-Axis Accelerometer được thể hiện trong bảng 2.5 dưới đây

Bảng 2 5: Thông số kỹ thuật của module Serial 6-Axis Accelerometer [23]

2.3.6 Cảm biến định vị GPS NEO M8M

Cảm biến GPS NEO M8M sử dụng giao tiếp UART và tích hợp cổng micro-USB cho phép kết nối trực tiếp với máy tính Để nâng cao chất lượng tín hiệu trong các hệ thống sử dụng trong nhà, module còn được trang bị đầu kết nối với dây anten, giúp thu tín hiệu tốt hơn.

Hình 2 18: Cảm biến định vị GPS NEO M8M [24]

Module sử dụng chip xử lý u-blox NEO M8M để thu thập tín hiệu định vị GPS từ các vệ tinh, hỗ trợ nhiều hệ thống vệ tinh như GPS, GLONASS và BeiDou Chip này có khả năng xử lý đồng thời tín hiệu từ 2 trên 3 hệ thống, giúp tăng độ chính xác và giảm thời gian thực hiện Thông số kỹ thuật của module được liệt kê trong bảng 2.6.

Bảng 2 6: Thông số kỹ thuật của module định vị GPS NEO M8M [25]

2.3.7 Anten định vị GPS/BD [26]

TỔNG QUAN VỀ CHẤT LƯỢNG MẶT ĐƯỜNG

2.4.1 Độ gồ ghề mặt đường

Chất lượng mặt đường phụ thuộc vào độ hoàn thiện, độ bền, tính ổn định và khả năng phục vụ của bề mặt Để đánh giá chất lượng này, cần xem xét nhiều yếu tố, trong đó độ gồ ghề của bề mặt đường là một yếu tố quan trọng Độ gồ ghề được hiểu là sự chênh lệch của mặt đường so với mặt phẳng lý tưởng, thể hiện qua các mấp mô và lồi lõm Những mấp mô này, với kích thước và hình dạng khác nhau, ảnh hưởng đến chất lượng xe chạy, an toàn giao thông và tuổi thọ của mặt đường Nguyên nhân gây ra độ gồ ghề bao gồm yếu tố tự nhiên như địa hình, địa chất, khí hậu, cùng với quy trình thi công và bảo dưỡng không đạt tiêu chuẩn, cũng như tải trọng xe quá tải.

31 Độ gồ ghề mặt đường được chia làm 3 cấp độ chính:

• Mức độ 1: Mặt đường tương đối phẳng mịn, ít mấp mô

• Mức độ 2: Mặt đường có mấp mô nhỏ

• Mức độ 3: Mặt đường có nhiều mấp mô lớn

2.4.2 Chỉ số Gồ ghề Quốc tế (IRI)

Có nhiều phương pháp để đánh giá độ gồ ghề của mặt đường, trong đó có các chỉ số như Chỉ số Gồ ghề Quốc tế (IRI), Đánh giá về khả năng phục vụ hiện tại (PSR), Gia tốc dọc bình quân trung bình gốc (RMSVA), và Phương sai độ dốc (SV) IRI, được phát triển bởi Ngân hàng Thế giới vào những năm 1980, hiện là chỉ số phổ biến nhất để đo độ gồ ghề của bề mặt đường.

Khi đo đạc IRI, thiết bị chuyên dụng ghi lại các thông số địa hình của mặt đường như cảnh báo, lỗ hổng, vết nứt và biến dạng khác Dữ liệu thu thập được sẽ được xử lý để tính toán giá trị IRI, được biểu diễn dưới dạng số học với đơn vị m/km hoặc mm/m.

Giá trị IRI (Chỉ số độ nhám mặt đường) càng cao cho thấy mặt đường càng gồ ghề, dẫn đến sự bất tiện và nguy hiểm cho người điều khiển phương tiện.

IRI đóng vai trò then chốt trong việc đánh giá chất lượng mặt đường, từ đó định hướng các biện pháp bảo trì, sửa chữa và nâng cấp Thông qua việc cung cấp thông tin cần thiết, IRI giúp quản lý và cải thiện hệ thống giao thông, đồng thời nâng cao an toàn và sự thoải mái cho người sử dụng đường.

Năm 2006, Yu, Chou và Yau đã đề xuất ngưỡng IRI cho các vận tốc khác nhau, được xác định từ những thay đổi về gia tốc theo phương thẳng đứng, gọi là “Jolt” Bảng 2.9 dưới đây trình bày các giá trị ngưỡng được các tác giả đề xuất.

Bảng 2 9: Ngưỡng IRI đề xuất cho các giá trị vận tốc khác nhau [30]

2.4.3 Áp dụng IRI vào thuật toán

Trong nghiên cứu này, phương pháp IRI được áp dụng để phân tích và đánh giá chất lượng mặt đường Chỉ số IRI được tính toán từ mặt cắt dọc của đường, thông qua việc tích lũy kết quả từ mô hình một phần tư ô tô và chia cho chiều dài mặt cắt, nhằm thu được chỉ số độ gồ ghề.

Hình 2 21: Mặt cắt dọc của mặt đường [31]

Hình 2.21 mô tả mặt cắt dọc của mặt đường và mối liên hệ giữa xe và mặt đường Trong đó, ti (i ∈ [1, n]) đại diện cho thời gian lấy mẫu, còn hi là độ lệch dọc của đường tại thời điểm ti Qua các phép tính, chuyển vị thẳng đứng (Vhi) tại mỗi thời gian lấy mẫu được xác định.

Dựa trên định nghĩa của IRI, chỉ số này được tính bằng cách tổng hợp độ dịch chuyển theo chiều dọc của tất cả các khoảng thời gian lấy mẫu và chia cho khoảng cách (S).

Công thức (2.2) chỉ ra rằng để tính toán IRI, cần xác định tổng quãng đường di chuyển và giá trị chuyển vị dọc tại từng thời điểm lấy mẫu.

Quãng đường di chuyển có thể được xác định thông qua cảm biến GPS và tính toán bằng công thức Haversine Sau khi nhận được kinh độ và vĩ độ từ cảm biến GPS, quãng đường sẽ được tính toán dựa trên công thức này, vốn được sử dụng để tính khoảng cách giữa hai điểm trên bề mặt Trái Đất Công thức Haversine giả định Trái Đất là hình cầu và tính toán khoảng cách theo đường cong bề mặt, do đó, nó thường được áp dụng trong các ứng dụng định vị GPS để xác định quãng đường di chuyển giữa các vị trí.

Khoảng cách giữa hai điểm trên mặt cầu được tính bằng công thức d (km) = 2r * arcsin(√(sin²((φ2 - φ1)/2) + cos(φ1) * cos(φ2) * sin²((λ2 - λ1)/2))), trong đó r là bán kính trái đất, khoảng 6371 km, và λ1, λ2 là kinh độ, φ1, φ2 là vĩ độ của hai điểm.

Giá trị chuyển vị dọc không thể thu được trực tiếp, mà cần phải được tính toán từ dữ liệu đầu ra của cảm biến gia tốc Trong lĩnh vực vật lý, điều này là một khái niệm quan trọng.

(2.5) Trong đó t là thời gian, 𝑣 𝑣 là tốc độ theo phương thẳng đứng, 𝑎 𝑣 là gia tốc theo phương thẳng đứng và 𝑉ℎ là chuyển vị thẳng đứng

Từ (2.2) và (2.6) suy ra công thức IRI được tính dựa trên giá trị đầu ra của cảm biến GPS và cảm biến gia tốc:

TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU GOOGLE FIREBASE

2.5.1 Giới thiệu cơ sở dữ liệu Google Firebase

Firebase là dịch vụ cơ sở dữ liệu đám mây mạnh mẽ, được phát triển trên hạ tầng máy chủ của Google Nó giúp người dùng lập trình ứng dụng dễ dàng thông qua việc tương tác trực tiếp với cơ sở dữ liệu.

Firebase cung cấp API lập trình ứng dụng dễ sử dụng, giúp thu hút người dùng và tăng doanh thu Nền tảng này nổi bật với tính linh hoạt và bảo mật cao, hỗ trợ cả Android và iOS Nhiều nhà phát triển đã chọn Firebase làm nền tảng chính để xây dựng ứng dụng phục vụ hàng triệu người dùng trên toàn cầu.

Firebase bắt đầu từ Envolve, một nền tảng cung cấp API cho trò chuyện trực tuyến Sau đó, hệ thống trò chuyện và đồng bộ dữ liệu thời gian thực được tách ra thành hai phần riêng biệt Năm 2012, Firebase ra mắt dịch vụ Backend-as-a-Service, và đến năm 2014, Google mua lại Firebase, phát triển nó thành dịch vụ đa chức năng được hàng triệu người dùng tin cậy hiện nay.

2.5.2 Các tính năng của Firebase [34]

Google Firebase mang lại nhiều lợi ích cho người dùng nhờ các tính năng nổi bật, được chia thành hai nhóm công cụ chính:

The Firebase Develop & Test Your App toolkit offers essential tools for application development and testing, including Realtime Database for real-time data storage and synchronization across platforms like Android, iOS, Web, C++, Unity, and Xamarin Additionally, it features Crashlytics for error tracking and reporting, as well as Cloud Firestore for global data storage and synchronization.

NoSQL cung cấp khả năng lưu trữ dữ liệu linh hoạt, trong khi Authentication giúp quản lý người dùng với nhiều phương pháp xác thực khác nhau Cloud Functions cho phép mở rộng ứng dụng bằng mã phụ trợ mà không cần quản lý máy chủ, và Cloud Storage hỗ trợ lưu trữ cũng như chia sẻ nội dung do người dùng tạo ra Dịch vụ Hosting mang đến giải pháp lưu trữ web đơn giản, còn Test Lab for Android tự động chạy thử và tùy chỉnh ứng dụng trên các thiết bị của Google Cuối cùng, Performance Monitoring giúp chẩn đoán các vấn đề về hiệu suất ứng dụng.

Nhóm công cụ Firebase Grow & Engage Your Audience bao gồm nhiều tính năng hữu ích để tối ưu hóa trải nghiệm người dùng và tăng cường tương tác Google Analytics giúp phân tích hành vi người dùng và cung cấp báo cáo thời gian thực, trong khi Cloud Messaging cho phép gửi tin nhắn và thông báo miễn phí đến người dùng Predictions tạo ra nhóm người dùng dựa trên hành vi dự đoán, và Firebase Dynamic Links cung cấp trải nghiệm liền mạch thông qua liên kết động Remote Config cho phép tùy chỉnh giao diện ứng dụng và triển khai tính năng dần dần, trong khi Invites hỗ trợ chia sẻ mã giới thiệu và nội dung qua email và SMS App Indexing kết hợp với công cụ tìm kiếm Google để thu hút người dùng, AdMob giúp hiển thị quảng cáo tối ưu hóa doanh thu, và AdWords cho phép chạy quảng cáo để thu hút người dùng và cải thiện nhắm mục tiêu.

TỔNG QUAN VỀ HTML, CSS VÀ JAVASCRIPT

HTML (HyperText Markup Language) là ngôn ngữ đánh dấu cơ bản để xây dựng và cấu trúc nội dung trên trang web, xác định cách hiển thị và tương tác của các phần tử Nó cho phép định dạng linh hoạt cho nội dung như tiêu đề, đoạn văn, danh sách, bảng, hình ảnh, video và nhiều yếu tố khác Bên cạnh đó, HTML còn hỗ trợ các tính năng tương tác như biểu mẫu nhập liệu và tích hợp JavaScript để thực hiện các hành động động dựa trên sự tương tác của người dùng.

HTML sử dụng thẻ (tags) để đánh dấu và xác định chức năng của các phần tử trong văn bản Mỗi thẻ được bao quanh bởi cặp ký tự '', có thể chứa thuộc tính để chỉ định đặc điểm hoặc hành vi của phần tử Một phần tử HTML bao gồm thẻ mở, nội dung bên trong và thẻ đóng.

Ví dụ về phẩn tử HTML:

Ví dụ này trình bày các thành phần cơ bản của một website, bao gồm tiêu đề cấp 1 , tiêu đề cấp 2

, và một đoạn văn

Hình 2.22 dưới đây minh họa kết quả của ví dụ này.

Hình 2 22: Kết quả của ví dụ về các phần tử HTML

Trong hình 2.23 thể hiện cấu trúc của một trang HTML thường bao gồm thẻ

là thẻ gốc, thẻ chứa thông tin về tài liệu và thẻ chứa nội dung hiển thị trên trình duyệt

Hình 2 23: Cấu trúc trang HTML

CSS (Cascading Style Sheets) là ngôn ngữ thiết kế quan trọng giúp mô tả và định dạng giao diện của tài liệu HTML hoặc XML Nó cho phép các nhà phát triển web điều chỉnh kiểu dáng, màu sắc, bố cục và các thuộc tính khác của phần tử trên trang, đồng thời tách biệt nội dung khỏi kiểu dáng Điều này tạo ra tài liệu HTML có cấu trúc rõ ràng, dễ bảo trì và cho phép áp dụng kiểu dáng chung cho nhiều trang trong cùng một dự án, từ đó duy trì sự đồng nhất và linh hoạt trong thiết kế.

CSS áp dụng quy tắc cho các phần tử HTML thông qua lựa chọn và thuộc tính được định nghĩa trong tệp CSS riêng hoặc trong tài liệu HTML Khi trình duyệt hiển thị trang web, các quy tắc CSS xác định cách hiển thị và tương tác của các phần tử.

Trong hình 2.24 mô tả cú pháp CSS, bao gồm bộ chọn “Selector” và khối khai báo “Declaration” Trong đó:

• Bộ chọn trỏ đến phần tử HTML được tạo kiểu

Khối khai báo trong lập trình được bao quanh bởi dấu ngoặc nhọn “{}” và chứa nhiều khai báo phân tách bằng dấu chấm phẩy “;” Mỗi khai báo bao gồm hai phần: tên thuộc tính và giá trị, được phân tách bởi dấu hai chấm “:”.

Ví dụ về cú pháp CSS:

Trong ví dụ này, các phần tử

được thiết kế với văn bản màu trắng trên nền xanh lá cây, kích thước văn bản là 20px, như thể hiện trong hình 2.25.

Hình 2 25: Kết quả của ví dụ về cú pháp CSS

JavaScript là một ngôn ngữ lập trình phổ biến, chủ yếu được sử dụng để tạo ra các tương tác động và xử lý dữ liệu trên trang web Là một ngôn ngữ kịch bản dựa trên đối tượng, JavaScript có khả năng tương tác hiệu quả với các phần tử HTML và CSS trong trình duyệt Ngoài ứng dụng trên web, JavaScript còn được áp dụng rộng rãi trong phát triển ứng dụng di động, ứng dụng máy tính, trò chơi và nhiều lĩnh vực khác.

Nhiều nhiệm vụ khác nhau có thể được thực hiện thông qua JavaScript, bao gồm:

• Xử lý sự kiện: JavaScript có thể phản ứng với các sự kiện như nhấp chuột, gõ phím, hoặc gửi dữ liệu từ form

• Thay đổi nội dung và kiểu dáng: JavaScript cho phép thay đổi nội dung và kiểu dáng của các phần tử HTML và CSS trên trang web

• Tương tác với máy chủ: JavaScript có thể gửi yêu cầu đến máy chủ và xử lý dữ liệu trả về

• Tạo ra hiệu ứng động: các hiệu ứng động như chuyển động, đổi màu, hoặc hiệu ứng hình ảnh được tạo ra bằng cách sử dụng JavaScript

Ví dụ một đoạn JavaScript được đặt trong phần của trang HTML

Khi nhấn nút “Try it”, hàm function sẽ được kích hoạt, dẫn đến việc nội dung của đoạn văn có id “demo” được thay đổi từ “A Paragraph.” thành nội dung mới.

“Pararaph changed.” Hình 2.26 dưới đây là kết quả của ví dụ trên

Hình 2 26: Kết quả của hàm myFunction (a) Trước khi nhấn nút Try it,(b) Sau khi nhấn nút Try it

THIẾT KẾ HỆ THỐNG

YÊU CẦU HỆ THỐNG

Hệ thống được phát triển nhằm xác định chất lượng bề mặt đường bộ, tạo bản đồ thể hiện trạng thái mặt đường và cung cấp thông tin về các thông số của xe cho người dùng Các yêu cầu ban đầu của hệ thống bao gồm việc đảm bảo độ chính xác và tính khả thi trong việc thu thập và hiển thị dữ liệu.

Hệ thống thu thập dữ liệu từ hệ thống điều khiển ô tô thông qua bộ truyền nhận CAN kết nối với cổng OBD-II Bên cạnh đó, nó còn thu thập thông tin từ các cảm biến như IMU và GPS.

- Hệ thống có khả năng xử lý dữ liệu và tính toán chỉ số chất lượng mặt đường dựa trên thuật toán phù hợp

Hệ thống sử dụng nền tảng ROS để truyền nhận và xử lý dữ liệu một cách hiệu quả Dữ liệu được truyền nhận bao gồm thông tin từ các cảm biến như IMU, GPS và kết quả tính toán sau khi đã được xử lý.

- Hệ thống có thể lưu trữ thông tin chất lượng mặt đường

- Hệ thống được thiết kế có khả năng hiển thị các dữ liệu được xử lý lên website.

ĐẶC TẢ HỆ THỐNG

Dựa vào những yêu cầu của hệ thống nêu trên, nhóm thực hiện đề tài đã phân tích và xây dựng hệ thống gồm những chức năng như sau:

- Hệ thống có chức năng cập nhật thông tin tín hiệu trên xe theo thời gian thực

- Hệ thống có chức năng cập nhật, lưu trữ thông tin về vị trí và thông tin chất lượng mặt đường trên cơ sở dữ liệu

- Hệ thống có chức năng hiển thị thông số của xe, bản đồ, vị trí và chất lượng mặt đường trên website

Hệ thống cảnh báo người dùng khi các thông số trạng thái xe vượt quá ngưỡng quy định, giúp đảm bảo an toàn khi di chuyển Cảnh báo được hiển thị rõ ràng trên giao diện người dùng, cho phép người dùng dễ dàng đưa ra quyết định kịp thời.

3.2.2 Mô hình tổng thể hệ thống

Từ các chức năng của hệ thống, nhóm thực hiện đề tài xây dựng mô hỉnh tổng thể hệ thống như hình 3.1

Hình 3 1: Mô hình tổng thể hệ thống

Dữ liệu từ hệ thống điều khiển ô tô bao gồm vận tốc, vòng tua động cơ, lượng nhiên liệu và nhiệt độ nước làm mát Những thông tin này được thu thập qua bộ truyền nhận CAN từ cổng OBD-II và sau đó được gửi đến khối tiền xử lý.

- Khối cảm biến: thu thập các dữ liệu như gia tốc, vị trí của ô tô và truyền các dữ liệu này qua khối tiền xử lý

Khối tiền xử lý dữ liệu đảm nhiệm việc tiếp nhận dữ liệu từ các cảm biến và bộ truyền nhận CAN, thực hiện lọc và đồng bộ hóa dữ liệu Sau khi hoàn tất quá trình tiền xử lý, dữ liệu sẽ được chuyển đến khối xử lý trung tâm thông qua giao thức truyền thông Ethernet.

Khối xử lý trung tâm nhận dữ liệu từ khối tiền xử lý để thực hiện phân tích và tính toán Sau khi hoàn tất quá trình tính toán, các dữ liệu sẽ được gửi đến khối cơ sở dữ liệu thông qua giao thức HTTP.

- Khối Cloud: lưu trữ các dữ liệu nhận được từ khối xử lý trung tâm và cung cấp dữ liệu cho khối hiển thị

- Khối hiển thị: hiển thị các thông tin như thông số của ô tô và bản đồ chất lượng mặt đường trên website

3.2.3 Sơ đồ khối hệ thống

Hình 3 2: Sơ đồ khối của hệ thống

Bộ truyền nhận CAN là thiết bị quan trọng trong ô tô, giúp thu thập dữ liệu từ hệ thống điều khiển thông qua cổng kết nối OBD-II Việc sử dụng bộ truyền nhận CAN cho phép người dùng nắm bắt thông tin chi tiết về hoạt động của xe, từ đó nâng cao hiệu suất và an toàn trong quá trình vận hành.

- Khối cảm biến: thu thập các dữ liệu về gia tốc và vị trí của ô tô

Khối tiền xử lý dữ liệu thực hiện việc xử lý, loại bỏ nhiễu và đồng bộ hóa dữ liệu thu được từ bộ truyền nhận CAN và các cảm biến Sau khi hoàn tất, dữ liệu sẽ được gửi đến khối xử lý trung tâm để tiếp tục phân tích.

Khối xử lý trung tâm sử dụng nền tảng ROS để tiếp nhận dữ liệu từ khối tiền xử lý, tính toán các chỉ số chất lượng mặt đường theo thuật toán đã được lựa chọn, và sau đó chuyển giao dữ liệu đã xử lý tới khối cơ sở dữ liệu.

- Khối cơ sở dữ liệu: cập nhật, lưu trữ các dữ liệu đã được xử lý và cung cấp dữ liệu liên tục cho khối hiển thị

Khối hiển thị nhận dữ liệu từ khối cơ sở dữ liệu để cung cấp thông tin về thông số ô tô và bản đồ chất lượng mặt đường trên website, phục vụ nhu cầu của người dùng.

Khối nguồn cung cấp điện áp 5.1V với dòng 3A, đảm bảo cho khối xử lý trung tâm hoạt động ổn định Nguồn cho khối tiền xử lý được lấy từ Raspberry Pi 4.

43 cảm biến được lấy nguồn từ đầu ra 3.3V và 5V của Arduino Mega 2560

3.2.4 Hoạt động của hệ thống

Hệ thống sẽ hoạt động theo sơ đồ được trình bày ở hình 3.3:

Hình 3 3: Sơ đồ hoạt động của hệ thống

Hệ thống bắt đầu bằng việc thu thập dữ liệu từ cảm biến gia tốc và GPS Cảm biến gia tốc giúp phát hiện sự rung lắc của xe khi di chuyển, ghi nhận các thay đổi về gia tốc và gia tốc góc, từ đó đánh giá chuyển động và mức độ rung lắc của phương tiện Đồng thời, cảm biến GPS cung cấp thông tin định vị, bao gồm tọa độ địa lý (kinh độ, vĩ độ) của xe.

Dữ liệu thu thập từ khối cảm biến được chuyển đến khối tiền xử lý để lọc và đồng bộ hóa, giúp loại bỏ nhiễu và dữ liệu không chính xác, đảm bảo tính đồng bộ và nhất quán Sau khi đồng bộ, dữ liệu sẽ được gửi đến bộ xử lý trung tâm để tiếp tục xử lý Việc truyền dữ liệu qua bộ xử lý trung tâm diễn ra thông qua đường truyền Ethernet, với thiết lập để bộ tiền xử lý hoạt động như một ROS Node trong hệ thống ROS Master.

Bộ xử lý trung tâm có nhiệm vụ phân tích dữ liệu từ bộ tiền xử lý để đánh giá chất lượng mặt đường tại các điểm đi qua, xác định xem chúng là tốt hay xấu dựa trên thuật toán đã được xây dựng trước.

Hệ thống sẽ đưa 44 điểm đã đi qua cùng với điểm đánh giá của từng vị trí lên cơ sở dữ liệu Firebase.

Các yêu cầu HTTP POST và GET được sử dụng để truy xuất và truyền dữ liệu từ Firebase đến giao diện người dùng Khi người dùng truy cập vào website qua trình duyệt, máy chủ sẽ gửi bản đồ đánh giá chất lượng mặt đường cùng với các thông số của xe Thông tin này sẽ được hiển thị trên màn hình LCD kết nối trực tiếp với bộ xử lý trung tâm qua giao tiếp HDMI.

THIẾT KẾ PHẦN CỨNG

Hệ thống bao gồm khối nguồn cung cấp năng lượng cho khối tiền xử lý, giúp lọc dữ liệu từ cảm biến gia tốc và GPS Nguồn năng lượng cũng hỗ trợ bộ xử lý trung tâm trong việc xử lý tín hiệu từ khối tiền xử lý Dữ liệu đã được xử lý sẽ được đưa lên cơ sở dữ liệu (CSDL) để tạo ra bản đồ chất lượng đường, hiển thị trên khối hiển thị.

Hình 3 4: Sơ đồ khối hệ thống phần cứng

Khối đo dữ liệu định vị GPS sử dụng cảm biến GPS NEO M8M với thiết kế nhỏ gọn và dễ sử dụng Cảm biến này cho phép nhận và theo dõi nhiều hệ thống định vị toàn cầu đồng thời, mang lại độ chính xác cao.

Khối đo dữ liệu cảm biến gia tốc sử dụng cảm biến gia tốc Serial 6-Axis, cung cấp giá trị gia tốc theo ba trục Ox, Oy và Oz với độ chính xác cao Tương tự như cảm biến định vị GPS, cảm biến gia tốc này cho phép theo dõi chuyển động trong không gian một cách chính xác.

Khối xử lý trung tâm

Khối đo dữ liệu định vị GPS

Khối đo dữ liệu cảm biến gia tốc

Khối đo dữ liệu từ ô tô

Mô-đun CAN_BUS Shield giúp thu thập dữ liệu về vận tốc ô tô thông qua cổng OBD-II, mang lại sự tiện lợi và gọn gàng nhờ vào ngoại vi DB9 Thiết kế nhỏ gọn của 45 tốc, cùng với hộp nhựa bảo vệ bo mạch, giúp tránh các tác động từ nước và bụi, đảm bảo an toàn cho mạch bên trong.

Khối tiền xử lý sử dụng vi điều khiển Arduino Mega 2560, nổi bật với bộ nhớ lớn và khả năng tích hợp nhiều chuẩn giao tiếp như SPI, Ethernet và UART Nhiệm vụ chính của Arduino Mega 2560 là xử lý dữ liệu từ các cảm biến và truyền tải thông tin lên bộ xử lý trung tâm qua kết nối Ethernet thông qua module Arduino Ethernet Shield.

Khối xử lý trung tâm sử dụng Raspberry Pi 4, một máy tính thu nhỏ với bộ xử lý tốc độ cao, cung cấp nhiều tính năng kết nối và giao thức truyền thông đa dạng Raspberry Pi 4 có nhiệm vụ xử lý dữ liệu nhận được, tạo ra bản đồ mong muốn và hiển thị kết quả trên khối hiển thị.

Sử dụng màn hình LCD giúp tối ưu hóa yêu cầu hiển thị cho hệ thống Raspberry Pi 4 hỗ trợ cổng HDMI, cho phép bộ xử lý trung tâm kết nối dễ dàng với màn hình chỉ bằng một dây cáp Qua đó, hệ thống có thể hiển thị thông tin bản đồ, chất lượng đường và tốc độ xe một cách hiệu quả.

3.3.1 Khối xử lý trung tâm

Khối xử lý trung tâm đóng vai trò quan trọng trong việc nhận dữ liệu từ khối tiền xử lý qua kết nối Ethernet, lưu trữ thông tin vào cơ sở dữ liệu và xử lý các thông tin thu thập được để tạo ra bản đồ đánh giá chất lượng đường Do đó, hệ thống cần một thiết bị xử lý trung tâm mạnh mẽ, có khả năng thực hiện đồng thời nhiều tác vụ, bộ nhớ lớn để lưu trữ dữ liệu và hỗ trợ cổng giao tiếp Ethernet.

Hình 3 5: Sơ đồ nguyên lý khối xử lý trung tâm

Máy tính nhúng Raspberry Pi được lựa chọn làm thiết bị xử lý trung tâm do tính phổ biến của nó trong lập trình nhúng và IoT Với bộ nhớ chuyên dụng và bộ xử lý tốc độ cao, Raspberry Pi mang lại tính linh hoạt cao, hỗ trợ kết nối Wifi, Bluetooth, Zigbee và nhiều giao thức truyền thông như Ethernet (TCP/IP), GPIO, UART, HDMI, I2C Điều này giúp người dùng dễ dàng lựa chọn giao thức phù hợp với các thiết bị trong hệ thống Mặc dù không có bộ nhớ trong, Raspberry Pi cho phép sử dụng thẻ SD làm bộ nhớ flash cho toàn bộ hệ thống.

Khối tiền xử lý có nhiệm vụ tiếp nhận dữ liệu từ các cảm biến và xử lý thông tin môi trường trước khi gửi lên khối xử lý trung tâm qua Ethernet Hiện nay, nhiều vi điều khiển như Arduino Uno R3, Arduino Mega 2560 và ESP32 hỗ trợ đa chức năng và nhiều chuẩn giao tiếp như UART, SPI, I2C Tuy nhiên, với yêu cầu xử lý lớn và dung lượng bộ nhớ cao, Arduino Mega 2560 được lựa chọn cho khối tiền xử lý nhờ vào 4 bộ UART có sẵn và bộ nhớ 256KB.

KB Flash với 8 KB SRAM và 4 KB EEPROM đảm bảo kết nối hiệu quả với cảm biến, xử lý và truyền dữ liệu mà không gặp vấn đề tràn bộ nhớ Chuẩn truyền thông Ethernet được chọn cho giao tiếp giữa khối tiền xử lý và khối xử lý trung tâm, mang lại tốc độ truyền nhanh từ Mbps đến Gbps, đồng thời đảm bảo tính bảo mật cao Giao tiếp giữa hai khối dựa trên chuẩn TCP/IP, giúp kết nối ổn định và giảm thiểu mất mát dữ liệu trong quá trình truyền.

Bảng 3 1: Sơ đồ kết nối chân của Arduino Mega 2560 và Arduino Ethernet Shield

Hình 3 6: Sơ đồ nguyên lý kết nối Arduino Ethernet Shield và Arduino Mega

Module Arduino Ethernet Shield kết nối với vi điều khiển Arduino Mega 2560 qua giao thức SPI, cho phép mở rộng khả năng kết nối Ethernet Sự kết hợp này hỗ trợ quá trình truyền nhận dữ liệu hiệu quả giữa khối tiền xử lý và khối xử lý trung tâm.

3.3.3 Khối cảm biến Để thiết kế được một bản đồ về chất lượng đường, có hai yếu tố chính cần xác định là vị trí của con đường và chất lượng của con đường tại vị trí đó Từ những yêu cầu trên, hai cảm biến được chọn sử dụng để xác định các yếu tố trên là cảm biến gia tốc Serial 6-Axis Accelerometer và cảm biến định vị GPS NEO M8M

Dựa trên yêu cầu xác định chất lượng mặt đường, một số phương án đã được đề xuất, bao gồm việc sử dụng hình ảnh và phân tích sự thay đổi của áp suất lốp, hệ thống treo và gia tốc xe khi di chuyển Sau khi thử nghiệm và phân tích, phương án sử dụng dữ liệu gia tốc xe đã được chọn để đánh giá chất lượng mặt đường Cảm biến Serial 6-Axis Accelerometer được sử dụng để thu thập dữ liệu, giúp cung cấp thông tin chính xác về tình trạng mặt đường mà xe di chuyển qua.

49 tốc này giúp thu thập được ba giá trị gia tốc cùng một lúc tương ứng với ba trục x, y, z trong không gian ba chiều

Bảng 3 2: Sơ đồ kết nối chân của cảm biến Serial 6-Axis Accelerometer và Arduino Mega 2560

Hình 3 7: Sơ đồ nguyên lý kết nối cảm biến gia tốc Serial 6-Axis

Accelerometer và Serial 6-Axis Accelerometer

Cảm biến Serial 6-Axis Accelerometer kết nối với vi điều khiển qua giao thức UART, cung cấp tần số lấy mẫu từ 0.1Hz đến 200Hz, cho phép thu thập dữ liệu linh hoạt và chi tiết tùy theo nhu cầu ứng dụng Nhờ vào cảm biến này, mọi rung lắc của xe khi di chuyển trên đường được ghi lại liên tục, từ đó đưa ra đánh giá chính xác về chất lượng mặt đường.

Khi có đánh giá về chất lượng mặt đường tại một điểm, cần xác định vị trí của

THIẾT KẾ PHẦN MỀM

➢ Lưu đồ tổng quan hệ thống

Hình 3 12: Lưu đồ tổng quan hệ thống

Hệ thống thu thập dữ liệu từ ECU và các cảm biến trên xe, như được mô tả trong hình 3.12, thông qua một chương trình tổng quan.

Quá trình thu thập và tiền xử lý dữ liệu bao gồm lọc và đồng bộ hóa để đảm bảo tính nhất quán và loại bỏ nhiễu Dữ liệu đã được tiền xử lý sẽ được truyền đến chương trình "Xử lý và lưu trữ dữ liệu trên ROS" để phân tích, tính toán và xây dựng bản đồ chất lượng đường theo thuật toán đã chọn Sau khi hoàn tất, dữ liệu về chất lượng mặt đường sẽ được cập nhật và lưu trữ trong cơ sở dữ liệu Firebase Cuối cùng, thông qua chương trình “Gửi dữ liệu từ Firebase đến website”, thông tin về chất lượng mặt đường và trạng thái xe sẽ được gửi từ cơ sở dữ liệu đến website, giúp người dùng dễ dàng truy cập và sử dụng thông tin này.

➢ Lưu đồ thu thập và tiền xử lý dữ liệu

Hình 3 13: Lưu đồ thu thập và tiền xử lý dữ liệu

Quá trình thu thập và tiền xử lý dữ liệu bắt đầu bằng việc thiết lập địa chỉ IP cho Arduino Mega 2560, biến nó thành một ROS Node trong hệ thống do Raspberry Pi 4 quản lý Tiếp theo, đối tượng đại diện cho node ROS hiện tại được khởi tạo, cùng với các biến thông điệp và topic để hỗ trợ tương tác và truyền nhận dữ liệu giữa các Node trong hệ thống.

Sau khi hoàn tất việc khởi tạo thông tin, tiếp theo là thiết lập các chân giao tiếp với cảm biến và kết nối Arduino Mega 2560 với Raspberry Pi 4.

Địa chỉ IP của Raspberry Pi 4 là yếu tố quan trọng trong việc truyền dữ liệu từ bộ tiền xử lý đến bộ xử lý trung tâm Sau khi thiết lập kết nối, việc đăng ký các topic với node hiện tại sẽ giúp phân chia dữ liệu rõ ràng hơn Điều này tạo điều kiện thuận lợi cho việc kiểm soát và quản lý dữ liệu khi được chuyển đến bộ xử lý trung tâm, từ đó nâng cao hiệu quả sử dụng.

Sau khi hoàn tất thiết lập kết nối giữa Arduino Mega 2560 và Raspberry Pi 4 qua đường truyền Ethernet, hệ thống sẽ thực hiện một sự kiện ngắt ngoài để quản lý quá trình truyền nhận dữ liệu Điều này đảm bảo rằng việc truyền dữ liệu diễn ra chính xác và giảm thiểu nguy cơ mất dữ liệu Kết quả của quá trình này là kiểm tra khả năng đọc tín hiệu GPS từ cảm biến.

Chương trình bắt đầu xử lý dữ liệu từ cảm biến sau khi xác định tín hiệu GPS có được truyền tới hay không Dữ liệu từ cảm biến gia tốc được xử lý qua chương trình “Xử lý dữ liệu cảm biến gia tốc”, trong khi dữ liệu từ cảm biến GPS được xử lý qua chương trình “Xử lý dữ liệu cảm biến GPS” Cuối cùng, dữ liệu thu thập từ ô tô được xử lý thông qua chương trình con “Đọc dữ liệu từ ô tô” Sau khi hoàn tất xử lý, các dữ liệu này sẽ được truyền tới bộ xử lý trung tâm qua giao tiếp Ethernet giữa Node Publisher (Arduino Mega 2560) và Node Subscriber (Raspberry Pi 4), với dữ liệu được phân biệt bằng tên topic tương ứng.

➢ Lưu đồ chương trình ngắt

Hình 3 14: Lưu đồ Chương trình ngắt

Chương trình ngắt được mô tả trong lưu đồ hình 3.14, nơi hệ thống theo dõi dữ liệu từ chân RX1 Khi có tín hiệu mới từ cảm biến GPS, chương trình sẽ thông báo và kiểm tra dữ liệu có sẵn trên cổng Serial1 Nếu có tín hiệu, dữ liệu sẽ được đọc và gán vào biến C dưới dạng ký tự Biến C sau đó được kiểm tra tính hợp lệ để xác định xem dữ liệu có đáp ứng cấu trúc đã định nghĩa hay không Nếu biến C hợp lệ, biến new_gps_data sẽ được gán giá trị True, cho biết đã có dữ liệu GPS mới được đọc.

➢ Lưu đồ xử lý dữ liệu cảm biến gia tốc

Hình 3 15: Lưu đồ chương trình xử lý dữ liệu cảm biến gia tốc

Hệ thống xử lý dữ liệu IMU, như mô tả trong hình 3.15, thực hiện việc đọc và kiểm tra dữ liệu thu được từ cảm biến để xác định xem dữ liệu đã được xử lý hay chưa Quá trình này sử dụng thư viện có sẵn để chuyển đổi dữ liệu thô từ cảm biến thành các giá trị tương ứng với sự tác động của từ trường Sau khi xác nhận rằng dữ liệu đã được xử lý, bước tiếp theo là kiểm tra kết nối giữa ROS Node và ROS.

Để kiểm tra xem Master có đang hoạt động hay không, nếu các điều kiện đã được thỏa mãn, hệ thống sẽ gán các giá trị đã xử lý từ cảm biến vào các trường của thông điệp IMU_msg Thông điệp IMU_msg chứa thông tin liên quan đến dữ liệu gia tốc, và sau khi được gán đầy đủ các giá trị, nó sẽ được gửi đến topic IMU, hoàn tất quá trình xử lý dữ liệu IMU.

➢ Lưu đồ xử lý dữ liệu cảm biến GPS

Hình 3 16: Lưu đồ chương trình xử lý dữ liệu cảm biến GPS

Hệ thống xử lý dữ liệu GPS, như mô tả trong hình 3.16, thực hiện kiểm tra tính hợp lệ của dữ liệu nhận được từ cảm biến bằng cách sử dụng mã checksum đã được quy định Sau khi xác nhận tính hợp lệ, hệ thống tiếp tục kiểm tra kết nối giữa ROS Node và ROS Master để đảm bảo chúng đang hoạt động Khi tất cả các điều kiện được thỏa mãn, dữ liệu GPS từ cảm biến sẽ được gán vào các trường trong thông điệp navsatfix_msg.

Thông điệp navsatfix_msg có nhiệm vụ lưu trữ các dữ liệu thu được từ cảm biến

GPS được gửi đến topic “gps_fix” sau khi hoàn tất việc gán đầy đủ các giá trị và trường của thông điệp, đồng thời kết thúc quá trình xử lý dữ liệu GPS.

➢ Lưu đồ dọc dữ liệu từ ô tô

Hình 3 17: Lưu đồ đọc dữ liệu từ ô tô qua giao thức CAN

Hệ thống đọc dữ liệu từ ô tô qua giao thức CAN sử dụng tín hiệu từ cổng OBD-II, với các frame CAN được nhận Để đảm bảo tính chính xác và hợp lệ của các frame, mã CAN_ID sẽ được kiểm tra theo tiêu chuẩn J1979 Nếu dữ liệu hợp lệ, phần dữ liệu của frame CAN sẽ được gán cho biến Speed Sau đó, giá trị của biến Speed sẽ được chuyển đổi thành vận tốc thực tế của xe trước khi quay lại chương trình chính để tiếp tục thực hiện nhiệm vụ.

➢ Lưu đồ xử lý và lưu trữ dữ liệu trên nền tảng ROS

Hình 3 18: Lưu đồ xử lý dữ liệu trên nền tảng ROS

Quy trình xử lý và lưu trữ dữ liệu trên nền tảng ROS bắt đầu với việc khởi tạo một ROS Node có tên "reader_node", thông báo rằng nó đã bắt đầu hoạt động Sau đó, chương trình tạo hai Subscriber để đăng ký nhận dữ liệu từ topic IMU và GPS.

Chương trình 63 cho phép nhận dữ liệu từ hai cảm biến IMU và GPS, kích hoạt các hàm callback khi có dữ liệu mới Dữ liệu này được chuyển tiếp đến chương trình con “Xử lý và lưu trữ dữ liệu”, nơi thực hiện các thuật toán đã chọn để xử lý và tính toán Kết quả sau đó được lưu trữ vào cơ sở dữ liệu Firebase Quá trình xử lý và lưu trữ diễn ra tuần tự cho từng dữ liệu mới từ các topic IMU và GPS, và khi hoàn tất, chương trình thông báo rằng Node đã kết thúc hoạt động.

➢ Lưu đồ xử lý và lưu trữ dữ liệu

Hình 3 19: Lưu đồ Xử lý và lưu trữ dữ liệu

KẾT QUẢ VÀ NHẬN XÉT ĐÁNH GIÁ

KẾT QUẢ PHẦN CỨNG

Sau khi hoàn thành thiết kế sơ đồ nguyên lý và lựa chọn linh kiện phù hợp, hệ thống phần cứng được lắp ráp với việc bố trí và kết nối các linh kiện Quá trình này đảm bảo sản phẩm có thiết kế nhỏ gọn, gọn gàng và thẩm mỹ cao.

Mô hình thực tế của hệ thống được thiết kế theo dạng sa bàn, giúp người dùng dễ dàng sử dụng và theo dõi hoạt động Các linh kiện được sắp xếp và cố định trên bề mặt để đảm bảo tính ổn định, trong khi hệ thống dây điện được bố trí gọn gàng và an toàn bên dưới, nâng cao tính thẩm mỹ tổng thể Hệ thống phần cứng bao gồm các thành phần được đánh số thứ tự như hình 4.1.

+ Arduino Mega 2560, Module Arduino Ethernet Shield và Module CAN_BUS Shield (1)

+ Cảm biến định vị GPS NEO M8M (2).

+ Cảm biến gia tốc Serial 6- Axis Accelerometer (3).

+ Anten định vị GPS/BD (6).

4.1.2 Kết quả giao tiếp giữa khối tiền xử lý và khối xử lý trung tâm

Dữ liệu từ cảm biến sẽ được truyền từ Arduino Mega 2560 lên Raspberry Pi 4 để xử lý và lưu trữ trên cơ sở dữ liệu Firebase Tất cả quá trình này diễn ra trên nền tảng ROS, với dữ liệu từ Arduino Mega 2560 được nhận qua các topic Để kiểm tra các tin nhắn đã được truyền, lệnh “rostopic list” sẽ hiển thị danh sách các topic hiện có trên đường truyền.

Hình 4 2: Các topic hiện tại trên ROS

Các topic trên nền tảng hiện tại phản ánh nội dung tương ứng của chúng Mặc dù đã có topic trên đường truyền, việc kiểm tra nội dung bên trong và cấu trúc khởi tạo là rất cần thiết để đảm bảo hoạt động ổn định Để thực hiện kiểm tra này, bạn có thể sử dụng lệnh “$rostopic echo ” Ví dụ, hình 4.3 dưới đây minh họa việc kiểm tra nội dung hiện có trong topic.

/gps_fix và /imu đang có trên hệ thống

Hình 4 3: Nội dung của các topic (a) topic imu, (b) topic gps_fix

Bảng 4 1: Các thông số trong topic

Để kiểm tra nội dung gói tin trong ROS mà không bị rối bởi dữ liệu không cần thiết, ta có thể sử dụng lệnh “rostopic echo” nhưng sẽ gặp phải một số vấn đề Một giải pháp hiệu quả hơn là viết một chương trình tùy chỉnh để chỉ đọc những phần dữ liệu cần thiết Chương trình này đã được phát triển để trích xuất các giá trị về thời gian, gia tốc, vị trí và vận tốc từ hai topic “imu” và “gps_fix” Để chạy chương trình, người dùng chỉ cần sử dụng lệnh “$rosrun my_data subscriber_IMU_GPS.py”.

Chương trình “subscriber_IMU_GPS.py” được sử dụng để thu thập dữ liệu trong thư mục “my_data”, với kết quả thể hiện rõ ràng trong hình 4.4 và các tham số được giải thích chi tiết trong bảng 4.1.

Hình 4 4 Nội dung gói tin trong topic imu và topic gps_fix.

KẾT QUẢ PHẦN MỀM

Sau khi hoàn thiện thiết kế và triển khai phần cứng, phần mềm của hệ thống đã được tích hợp vào các khối chức năng như tiền xử lý, xử lý trung tâm và hiển thị Quá trình này đảm bảo sự tương tác hợp nhất giữa các thành phần phần mềm và phần cứng Để người dùng dễ dàng theo dõi tình trạng chất lượng mặt đường, một website đã được thiết kế, cung cấp bản đồ chất lượng mặt đường và thông số trên xe Giao diện của trang web này trực quan và dễ sử dụng, cho phép người dùng truy cập thông tin một cách thuận tiện.

Hình 4 5: Tổng quan về website

Trang web được chia làm 2 phần bao gồm phần tiêu đề và phần thân giao diện, như hình 4.5, bao gồm:

• Phần tiêu đề: hiển thị thời gian hiện tại, tên người dùng, logo Trường Đại học

Sư phạm Kỹ thuật và logo khoa Điện – Điện tử

• Phần thân giao diện hiển thị hai phần bao gồm một bản đồ chất lượng mặt đường và các thông số trạng thái của xe

Hình 4.6 dưới đây mô tả sơ lược về phương thức hoạt động của website

Hình 4 6: Phương thức hoạt động của website

Khi truy cập vào website, người dùng sẽ thấy một bản đồ tương tác, được tích hợp từ Google Maps API, như hình 4.7

Người dùng có khả năng di chuyển, phóng to và thu nhỏ bản đồ để khám phá các khu vực khác nhau và xem thông tin chi tiết cho từng điểm đánh dấu Khi nhấp vào một điểm đánh dấu, thông tin về kinh độ và vĩ độ của vị trí sẽ được hiển thị.

➢ Bản đồ đánh giá chất lượng mặt đường

Hệ thống đã được triển khai tại đoạn đường dài 1.4 km gần trường Đại học Sư phạm Kỹ thuật, nơi có điều kiện thuận lợi cho việc thu thập dữ liệu Để đảm bảo hiệu quả, quá trình khảo sát được thực hiện bằng xe máy trang bị đầy đủ thiết bị đo đạc Sau khi hoàn tất thu thập, các giá trị IRI được tính toán và đánh giá cho từng phân đoạn.

100 mét dọc theo toàn bộ đoạn đường

Hình 4 8: Đoạn đường thử nghiệm

Việc nhận diện ổ gà và đánh giá chất lượng mặt đường được thực hiện thông qua nền tảng ROS bằng lệnh “$rosrun work subcriber3.py” Chương trình “subcriber3.py” chứa các thuật toán cần thiết, trong khi “work” là thư mục chứa chương trình này Sau khi chương trình hoàn tất, kết quả sẽ được cập nhật liên tục vào cơ sở dữ liệu thời gian thực Firebase Realtime Database, giúp thuận tiện cho việc lưu trữ và hiển thị dữ liệu.

Giao tiếp giữa nền tảng ROS và CSDL Firebase Realtime Database được thể hiện qua giao diện ROS và giao diện Firebase Nhóm sẽ sử dụng API của Google Maps để đánh dấu các vị trí lưu trữ trên Firebase, giúp hiển thị trực quan các điểm quan trọng như ổ gà và chất lượng mặt đường trên bản đồ Điều này cũng giúp người dùng dễ dàng nhận diện và định vị các vấn đề liên quan đến hạ tầng giao thông.

Cụ thể, các điểm đánh dấu được mã hóa màu sắc để thể hiện mức độ chất lượng mặt đường tại từng vị trí:

Các điểm đánh dấu màu sắc trên bản đồ giúp người dùng dễ dàng nhận biết chất lượng mặt đường: màu xanh lá cây biểu thị các vị trí có mặt đường tốt, màu vàng chỉ ra mặt đường trung bình, màu đỏ thể hiện các vị trí có mặt đường kém chất lượng, và màu đen cho thấy nơi có ổ gà và gờ.

4.2.2 Giao diện đăng ký/đăng nhập

Người dùng không chỉ có thể truy cập trang web như khách mà còn có thể đăng nhập bằng tài khoản cá nhân do nhà sản xuất cung cấp Điều này giúp người dùng theo dõi các thông số trạng thái trên xe một cách cá nhân hóa và tiện lợi hơn.

Hình 4 10: Giao diện trang đăng ký

Giao diện trang đăng ký cho phép nhà sản xuất đăng ký tài khoản người dùng với các thông tin cần thiết như tên người dùng, email và mật khẩu Sau khi hoàn tất đăng ký, thông tin người dùng sẽ được cập nhật trên Firebase Authentication.

Hình 4 11: Thông tin người dùng trên Firebase Authencation

Trong hình 4.12, thông tin người dùng, bao gồm tên, email và các thông số xe, được cập nhật liên tục trên CSDL Firebase Realtime Database theo ID tài khoản.

Hình 4 12: Thông tin người dùng trên Firebase Realtime Database

Trang đăng nhập yêu cầu người dùng nhập email và mật khẩu để truy cập giao diện người dùng Nếu thông tin nhập vào thiếu hoặc không chính xác, hệ thống sẽ hiển thị thông báo lỗi, nhắc nhở người dùng kiểm tra lại thông tin đăng nhập.

Hình 4 14: Cảnh báo khi thông tin đăng nhập bị sai

Sau khi nhập thông tin, người dùng có thể nhấn Enter hoặc nút Sign in để truy cập giao diện Hệ thống sẽ kiểm tra tính chính xác của thông tin với dữ liệu trong Database Nếu thông tin không khớp, hệ thống sẽ thông báo lỗi và yêu cầu người dùng nhập lại thông tin đăng nhập chính xác.

Hình 4.15 dưới đây mô tả giao diện người dùng của hệ thống

Hình 4 15: Giao diện người dùng

Giao diện người dùng hiển thị bản đồ chất lượng mặt đường (1) và các thông số trên xe của người dùng bao gồm:

+ Nhiệt độ nước làm mát động cơ (2)

+ Lượng nhiên liệu còn lại (4)

Hình 4 16: Giao tiếp giữa CSDL Firebase và website (a) Giao diện các thông số trên xe, (b) Giao diện CSDL Firebase Realtime Database

Các thông số hiển thị trên website, bao gồm nhiệt độ nước làm mát động cơ, tốc độ động cơ và lượng nhiên liệu còn lại, sẽ được cập nhật liên tục từ cơ sở dữ liệu Firebase theo thời gian thực.

Giao diện website không chỉ hiển thị các thông số theo thời gian thực mà còn cung cấp cảnh báo khi các thông số vượt quá mức an toàn cho phép Hình 4.17 minh họa rõ ràng cách thức cảnh báo được đưa ra, giúp người dùng nhận biết và thực hiện các biện pháp cần thiết.

Giao diện cảnh báo trên xe bao gồm ba thông báo quan trọng: (a) cảnh báo mức nhiên liệu thấp, (b) cảnh báo nhiệt độ động cơ vượt quá mức cho phép, và (c) cảnh báo vận tốc vượt mức cho phép.

Cảnh báo được thiết lập cho các thông số quan trọng trên xe, bao gồm nhiệt độ nước làm mát động cơ, mức nhiên liệu còn lại, và các thông số khác liên quan đến hiệu suất hoạt động của xe.

ĐÁNH GIÁ VÀ NHẬN XÉT HỆ THỐNG

Hệ thống đã hoạt động ổn định với việc thu thập dữ liệu tín hiệu về vị trí và giá trị vận tốc, cùng với việc truyền thông tin lên Raspberry Pi 4 thông qua vi điều khiển Arduino Mega 2560 Đường truyền Ethernet giữa Arduino Mega 2560 và Raspberry Pi 4 được thiết lập thuận lợi, giúp dữ liệu từ cảm biến được cập nhật liên tục theo thời gian thực Tuy nhiên, do chi phí thấp của module định vị GPS, độ chính xác của tín hiệu định vị không thể đạt gần như tuyệt đối so với đoạn đường thực tế Để hệ thống có thể tạo ra bản đồ và thông báo trạng thái của ô tô, cần thực hiện thử nghiệm thực tế, từ đó các giá trị để đánh giá chất lượng đường và trạng thái xe sẽ dựa vào bộ dữ liệu đã thu thập trong quá trình thực hiện.

Ngày đăng: 19/12/2024, 11:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Thanh Linh, "Người Việt Nam dùng xe máy nhiều nhất Đông Nam Á," Tuổi trẻ online, 2023 Sách, tạp chí
Tiêu đề: Người Việt Nam dùng xe máy nhiều nhất Đông Nam Á
[2] Trần Đình, "Doanh số ô tô tại Việt Nam năm 2022 đạt kỷ lục," Báo điện tử Tiền Phong, 2023 Sách, tạp chí
Tiêu đề: Doanh số ô tô tại Việt Nam năm 2022 đạt kỷ lục
[3] Senthil Kumar Jagatheesaperumal, Simon Elias Bibri, Shrivarshni Ganesan, Poongkalai Jeyaraman, "Aritificial Intelligent for road quality assessment in smart cities: a machine learning approach to acoustic data analysis,"Computational Urban Science, vol. 3, no. 28, 2023 Sách, tạp chí
Tiêu đề: Aritificial Intelligent for road quality assessment in smart cities: a machine learning approach to acoustic data analysis
[4] Shabir Hussain Khahro, Jasir Javed, Zubair Ahmed Memon, "Low cost road heath monitoring system: A case of flexible pavements," Sustainability, vol.13, no. 18, 2021 Sách, tạp chí
Tiêu đề: Low cost road heath monitoring system: A case of flexible pavements
[5] Nguyen Dinh Thao, Nguyen Thi Hong Nhung, "Automatic detection of pavement crack feature on images taken from specialized road surface survey vehicle," Journal of Materials and Engineering Structures, vol. 9, pp. 461- 466, 2022 Sách, tạp chí
Tiêu đề: Automatic detection of pavement crack feature on images taken from specialized road surface survey vehicle
[6] Lê Thị Hà, "Ứng dụng phương pháp tiếp cận mới tạo cơ sở dữ liệu GIS phục vụ cho giám sát bề mặt đường bộ ở Việt Nam," Tạp chí điện tử của bộ Tài nguyên và Môi trường, 2022 Sách, tạp chí
Tiêu đề: Ứng dụng phương pháp tiếp cận mới tạo cơ sở dữ liệu GIS phục vụ cho giám sát bề mặt đường bộ ở Việt Nam
[7] Trinh Nguyen, "ROBODEV," 4 1 2023. [Online]. Available: https://robodev.blog/ros-la-gi. [Accessed 10 1 2024] Sách, tạp chí
Tiêu đề: ROBODEV
[12] KVASER, "Introduction to the OBD II Standard," [Online]. Available: https://www.kvaser.com/about-can/can-standards/introduction-to-obd-ii/.[Accessed 2 2024] Sách, tạp chí
Tiêu đề: Introduction to the OBD II Standard
[14] Piyu Dhaker, "Introduction to SPI Interface," 9 2018. [Online]. Available: https://www.analog.com/media/en/analog-dialogue/volume-52/number-3/introduction-to-spi-interface.pdf. [Accessed 3 2024] Sách, tạp chí
Tiêu đề: Introduction to SPI Interface
[15] Ngoc NT, "Lập trình 8051 – Giao tiếp SPI," 1 4 2017. [Online]. Available: https://univtechnews.wordpress.com/2017/04/01/lap-trinh-8051-giao-tiep-spi/. [Accessed 3 2024] Sách, tạp chí
Tiêu đề: Lập trình 8051 – Giao tiếp SPI
[16] Kinza Yasar, Mary E. Shacklett, Amy Novotny, "DEFINITION TCP/IP," [Online]. Available:https://www.techtarget.com/searchnetworking/definition/TCP-IP. [Accessed 3 2024] Sách, tạp chí
Tiêu đề: DEFINITION TCP/IP
[17] Fielding, R.; Nottingham, M.; Reschke, J., "HTTP Semantics," 6 2022. [Online]. Available: https://www.rfc-editor.org/rfc/rfc9110.pdf. [Accessed 3 2024] Sách, tạp chí
Tiêu đề: HTTP Semantics
[18] Wikipedia, "HTTP," [Online]. Available: https://vi.wikipedia.org/wiki/Hypertext_Transfer_Protocol. [Accessed 4 2024] Sách, tạp chí
Tiêu đề: HTTP
[19] Abhishek Singh, "Raspberry Pi 4 Pin Diagram Specifications and Application," 12 11 2021. [Online]. Available:https://www.hackatronic.com/raspberry-pi-4-specifications-pin-diagram-and-description/. [Accessed 03 2024] Sách, tạp chí
Tiêu đề: Raspberry Pi 4 Pin Diagram Specifications and Application
[20] Arduino, "Arduino® Mega 2560 Rev3," [Online]. Available: https://docs.arduino.cc/resources/datasheets/A000067-datasheet.pdf.[Accessed 2 2024] Sách, tạp chí
Tiêu đề: Arduino® Mega 2560 Rev3
[21] Arduino, "Arduino Ethernet Shield," 3 2024. [Online]. Available: https://docs.arduino.cc/retired/shields/arduino-ethernet-shield-without-poe-module/. [Accessed 3 2024] Sách, tạp chí
Tiêu đề: Arduino Ethernet Shield
[22] Techmaza, "Ethernet Shield W5100 Network Board," [Online]. Available: https://techmaze.romman.store/product/99187007. [Accessed 3 2024] Sách, tạp chí
Tiêu đề: Ethernet Shield W5100 Network Board
[23] DFROBOT, "SKU:SEN0386," [Online]. Available: https://wiki.dfrobot.com/Serial_6_Axis_Accelerometer_SKU_SEN0386.[Accessed 2 2024] Sách, tạp chí
Tiêu đề: SKU:SEN0386
[24] CyberTice, "GPS module NEO-8M Satellite Positioning Module Development Board," [Online]. Available:https://www.cybertice.com/product/4189/gps-module-neo-8m-satellite-positioning-module-development-board. [Accessed 3 2024] Sách, tạp chí
Tiêu đề: GPS module NEO-8M Satellite Positioning Module Development Board
[25] U-blox, "NEO-M8 u-blox M8 concurrent GNSS modules Datasheet," [Online]. Available: https://pdf1.alldatasheet.com/datasheet-pdf/download/1242658/U-BLOX/NEO-M8M.html. [Accessed 3 2024] Sách, tạp chí
Tiêu đề: NEO-M8 u-blox M8 concurrent GNSS modules Datasheet

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w