TỔNG QUAN VỀ ĐỀ TÀI
Lý do chọn đề tài
Tính đến tháng 11/2020, tổng số lượng ô tô tại Việt Nam đạt 4.093.975 chiếc, theo thống kê của Tổng cục đường bộ giao thông vận tải Sự gia tăng này phản ánh chất lượng cuộc sống ngày càng nâng cao và nhu cầu sử dụng phương tiện cá nhân tăng lên Các ưu đãi thuế và chính sách hỗ trợ từ nhà nước sẽ giúp người dân dễ dàng sở hữu ô tô hơn Tuy nhiên, lượng phương tiện giao thông lớn sẽ tạo áp lực lên hạ tầng giao thông và công tác quản lý Sự gia tăng này cũng làm tăng nguy cơ tai nạn giao thông Khi tai nạn xảy ra, việc thu thập dữ liệu tại hiện trường là rất quan trọng để điều tra, tái hiện và xác định nguyên nhân, nhằm đảm bảo sự công bằng và minh bạch cho các bên liên quan, tránh kéo dài quá trình xử lý và oan sai cho người vô tội.
Hiện nay, các mô hình lưu trữ dữ liệu trên xe chủ yếu dựa vào dữ liệu trực tiếp từ xe, dẫn đến nguy cơ thiếu tính khách quan trong việc cung cấp thông tin cho điều tra Ví dụ, vụ tai nạn xe Inova lùi trên cao tốc năm 2016 chỉ có dữ liệu tốc độ từ hộp đen của xe container, trong khi các thông số khác chỉ là phán đoán của điều tra viên dựa trên hiện trường Để cải thiện tình hình, nhóm đề xuất giải pháp thu thập dữ liệu xe độc lập sau tai nạn, nhằm hỗ trợ đội điều tra xác định nguyên nhân và tái hiện vụ tai nạn, từ đó đẩy nhanh tiến độ và đảm bảo tính chính xác trong kết quả điều tra.
Tình hình nghiên cứu trong và ngoài nước
Nghiên cứu trong nước đã phát triển nhiều công trình nhằm xây dựng hệ thống giám sát xe từ xa, cho phép thu thập dữ liệu từ xe để phục vụ cho việc quản lý và điều tra tai nạn Các hệ thống này chủ yếu tập trung vào việc thu thập thông tin về tốc độ và tọa độ của xe khi xảy ra tai nạn.
Nghiên cứu quốc tế cho thấy, với sự phát triển hạ tầng giao thông và công nghệ, nhiều hệ thống đã được xây dựng để thu thập dữ liệu xe độc lập, phục vụ cho việc phân tích và tái hiện các vụ tai nạn Các thiết bị như Event Data Recorder của Toyota và Blackbox Can Logger của CCS Electronic đã được thương mại hóa, nhưng chỉ phù hợp với các dòng xe có mã nguồn từ nhà sản xuất Do đó, việc áp dụng các sản phẩm nghiên cứu này vẫn còn hạn chế.
Tính cấp thiết của đề tài
Sự gia tăng số lượng xe lưu thông đã dẫn đến tỉ lệ tai nạn ngày càng cao trong những năm gần đây, với nhiều tình huống tai nạn đa dạng và phức tạp, gây thiệt hại nặng nề Do đó, việc quản lý và theo dõi hoạt động của xe, cùng với phân tích, xử lý và tái hiện các vụ tai nạn để xác định nguyên nhân và tìm ra giải pháp công bằng, hiệu quả đang trở thành mối quan tâm lớn của xã hội.
Mục tiêu của đề tài
Xây dựng mô hình lưu trữ dữ liệu của xe để phục vụ công tác điều tra, xử lý, tái hiện vụ tai nạn
Tìm hiểu về arduino, module Canbus Shield, module thẻ nhớ SD, thời gian thực RTC DS1307, cảm biến gia tốc Tìm hiểu phần mềm hiển thị giả lập Labview
Thiết kế mô hình giả lập dữ liệu trên xe
Thiết kế mô hình lưu trữ dữ liệu trên xe bằng việc đọc dữ liệu từ mô hình giả lập dữ liệu trên xe qua giao thức CAN
Phương pháp và phạm vi nghiên cứu
Phương pháp nghiên cứu lý thuyết lập trình điều khiển Arduino, mạng giao tiếp CAN, I2C, SPI
Phương pháp nghiên cứu thực nghiệm b Phạm vi nghiên cứu
Cấu trúc truyền nhận dữ liệu chuẩn CAN
Cấu trúc truyền nhận dữ liệu chuẩn SPI, I2C
Nghiên cứu, thiết kế mô hình, viết chương trình giao tiếp các module để thu thập dữ liệu và lưu trữ, hiển thị lại kết quả lưu trữ.
Bố cục đề tài
Chương 1: Tổng quan về đề tài
Chương 2: Cơ sở lý thuyết
Chương 3: Cơ sở lý thuyết linh kiện điện tử
Chương 4: Thiết kế, thi công mô hình
Chương 5: Kết quả thực nghiệm
Chương 6: Kết luận và định hướng phát triển
CƠ SỞ LÝ THUYẾT
Tổng quan về việc xử lý sau tai nạn
Khi xảy ra va chạm xe, việc thu thập thông tin chi tiết về sự cố là rất quan trọng Thông tin này không chỉ hỗ trợ cho dịch vụ bảo hiểm mà còn đóng vai trò quan trọng trong việc điều tra và xử lý các vụ kiện tụng liên quan.
Dữ liệu tai nạn rất quan trọng vì nó cung cấp bản ghi khoa học chính xác về các sự kiện, vượt xa lời khai truyền miệng Mức độ chi tiết của dữ liệu giúp điều tra viên hiểu rõ hơn về va chạm Hơn nữa, thiết bị hỗ trợ quá trình điều tra có thể mở rộng tầm nhìn bằng cách xem xét lịch sử hành vi của người lái xe hoặc phương tiện cụ thể.
According to the report "Collision Sciences All about Crash Data," a comprehensive accident data report is available in PDF format, derived from data stored in hexadecimal format through the vehicle's Event Data Recorder (EDR) following a collision.
Kể từ năm 2013, "hộp đen" đã là bắt buộc đối với những chiếc ô tô hiện đại ở Hoa
Các cơ quan thực thi pháp luật tại Hà Lan thường sử dụng dữ liệu từ EDR, đặc biệt là sau những vụ tai nạn giao thông nghiêm trọng, vì dữ liệu này được xem là bằng chứng quan trọng.
Dữ liệu cần thiết bao gồm tốc độ xe, việc thắt dây an toàn và sử dụng bàn đạp ga, phanh, mức độ nghiêm trọng của va chạm, v.v
Các dữ liệu cần thiết cho việc sử lý một tình huống nào đó có thể được lấy thông qua các cảm biến để lấy được các thông số:
Trạng thái phanh (Bật / Tắt)
Dây an toàn của người lái (Đã khóa / Không khóa)
Đèn cảnh báo túi khí
Thời gian giữa các sự kiện va chạm nếu có
Nghiên cứu sự thay đổi vận tốc ∆𝑉 (Delta-V)
Sự thay đổi góc lái
Kích hoạt chống bó cứng phanh (Bật / Tắt)
Hoạt động của hệ thống kiểm soát hành trình
Đang có mã lỗi chuẩn đoán khi có tai nạn
Có bao nhiêu thông tin trình điều khiển trong Báo cáo dữ liệu sự kiện EDR?
Thông tin về người lái xe, bao gồm tốc độ xe, mức độ sử dụng phanh và bàn đạp ga, cùng với các dữ liệu hữu ích khác, đóng vai trò là bằng chứng kỹ thuật số quan trọng trong quá trình điều tra khiếu nại.
Trước khi va chạm, xe chở khách thường lưu trữ 5 giây dữ liệu về tốc độ và bàn đạp ga, trong khi dữ liệu về bàn đạp phanh được lưu trữ trong 8 giây Các điểm dữ liệu được ghi lại mỗi giây, cho phép chúng ta biết trạng thái của chân ga và chân phanh tại từng thời điểm, mặc dù không xác định chính xác thời điểm nhấn Thông tin này rất quan trọng trong việc so sánh với lời tường thuật trong các cuộc điều tra gian lận và đánh giá trách nhiệm pháp lý, đặc biệt là khi phân tích khả năng tránh va chạm của tài xế.
Hình 2.1: Các thông số trong báo cáo dữ liệu tai nạn được lưu lại
Thông tin về các số liệu khác có trong Báo cáo Dữ liệu Tai nạn EDR?
Dữ liệu va chạm của phương tiện cung cấp thông tin quan trọng về mức độ nghiêm trọng của va chạm, phản ánh sự thay đổi đột ngột trong gia tốc, cho thấy tác động của sự cố.
6 nó không nhất thiết là một tai nạn Gia tốc này có thể được sử dụng trong đánh giá mức độ nghiêm trọng của tai nạn
Gia tốc liên quan đến "delta-V" hay "thay đổi vận tốc" nhanh chóng trong một khoảng thời gian nhất định, được đo bởi cảm biến hoặc máy đo gia tốc trong mô-đun túi khí với tần suất mỗi mili giây Khi gia tốc vượt qua ngưỡng nhất định, được gọi là "kích hoạt thuật toán", dữ liệu tai nạn sẽ bắt đầu được ghi lại Nếu vụ va chạm đủ nghiêm trọng để không thể kết thúc quá trình ghi, như khi mất nguồn, báo cáo dữ liệu tai nạn sẽ ghi nhận vấn đề này và hiển thị sự thay đổi vận tốc tối đa đã được lưu trữ.
Dữ liệu "thay đổi vận tốc" là thông tin quan trọng giúp xe quyết định liệu có kích hoạt túi khí hay không Quyết định này cần được thực hiện trước khi va chạm kết thúc, nhằm bảo vệ an toàn cho hành khách tránh khỏi va đập Cụ thể, thời gian để đưa ra quyết định kích hoạt túi khí chỉ trong vòng 15 mili giây, trong khi một vụ va chạm điển hình kéo dài khoảng 100 mili giây Đối với các va chạm ở tốc độ thấp, thời gian có thể kéo dài hơn, lên đến 200 hoặc 300 mili giây do độ bật lại cao.
Trong các vụ tai nạn giao thông, việc đo delta-V theo chiều dọc (từ trước ra sau) và delta-V theo chiều ngang là rất quan trọng, đặc biệt khi xe có túi khí bên Delta-V được tính bằng công thức ∆𝑉 = V2 – V1, với giá trị âm khi xe giảm tốc Ví dụ, một báo cáo tai nạn ghi nhận sự thay đổi vận tốc tối đa là -17,08 mph (tương đương -27,49 km/h hay -7,64 m/s), cho thấy sự giảm tốc đột ngột nghiêm trọng trong chỉ 75 mili giây.
Theo nghiên cứu của Geotap, va chạm được phát hiện khi gia tốc đạt từ 2.5g trở lên (với g = 9.81 m/s²) Thiết bị lưu trữ dữ liệu tai nạn không sử dụng gia tốc theo trục Z (lên/xuống), mà chỉ dựa vào gia tốc theo trục X (thẳng) và trục Y (ngang) Khi gia tốc 2.5g được phát hiện ở bất kỳ hướng nào, thiết bị sẽ thu thập dữ liệu với tần số 100Hz.
Các nhà phát triển thiết bị đã thiết lập quy tắc phát hiện va chạm khi phát hiện sự thay đổi tốc độ lớn hơn 2.5g trong quá trình tăng tốc, phanh hoặc gia tốc ngang Khi chế độ nhận thông báo được kích hoạt, thiết bị sẽ gửi thông tin chi tiết về vị trí, tốc độ và gia tốc của xe Ngay cả khi không bật chế độ nhận thông báo va chạm, người dùng vẫn có thể truy cập thông tin trong báo cáo nhật ký Tuy nhiên, cần lưu ý rằng thông báo va chạm có thể là báo động giả do việc chạm tay hoặc va chạm nhẹ vào thiết bị Do đó, người dùng nên cài đặt thiết bị phù hợp với thói quen lái xe của mình.
Khi xảy ra va chạm nhẹ với gia tốc đo được dưới 2.5g, như trong trường hợp hai xe va chạm ở tốc độ thấp và vẫn tiếp tục di chuyển, thông báo va chạm sẽ không được gửi Tuy nhiên, thiết bị vẫn lưu trữ dữ liệu quan trọng, bao gồm gia tốc được ghi lại 100 lần/giây và các thay đổi về hướng hoặc tốc độ Việc phát hiện va chạm không có quy luật cố định, nhưng có thể được tùy chỉnh theo nhu cầu người dùng, với độ nhạy của thiết bị có thể điều chỉnh Nhà sản xuất cũng gợi ý ngưỡng phát hiện va chạm dựa trên kinh nghiệm và nghiên cứu, được liệt kê trong bảng dưới đây.
Bảng 2.1: Ngưỡng gia tốc được xem là va chạm nhẹ
Tăng tốc Giảm tốc Gia tốc khi cua xe
Xe bán tải, xe tải nhẹ
< - 3.18 m/s 2 Các ngưỡng gia tốc này đều nhỏ hơn 9,81m/s 2 (1g) hoặc lớn hơn – 9,81 m/s 2 (-1g)
Dữ liệu tai nạn ghi lại trạng thái của dây an toàn, cho biết liệu chốt dây an toàn đã được lắp vào khóa khi xảy ra va chạm Trừ khi tài xế cố tình đánh lừa hệ thống bằng cách gài dây an toàn vào khóa mà không đeo qua người, dữ liệu này cũng sẽ phản ánh tình trạng thắt dây an toàn của người lái xe và hành khách phía trước.
Điều tra viên có thể xác định liệu có 8 người ngồi trên xe hay không Họ cũng có thể thu thập chứng cứ bằng cách chụp ảnh các vết rạn trên vòng đai chữ D hoặc dây đai an toàn để xác minh việc sử dụng hoặc không sử dụng dây an toàn.
Hình 2.2: Các thông số trong báo cáo dữ liệu tai nạn
Tổng hoạt động của CAN
CAN (Controller Area Network) là một giao thức truyền thông bus nối tiếp, cho phép các nút kiểm tra tình trạng bận của bus trước khi gửi thông điệp và phát hiện khả năng trùng lặp Khác với Ethernet, khi xảy ra xung đột, các nút trong mạng Ethernet sẽ ngừng truyền và chờ một khoảng thời gian ngẫu nhiên trước khi gửi lại, điều này khiến mạng Ethernet nhạy cảm với tải bus cao Ngược lại, mạng CAN áp dụng nguyên tắc xác định quyền ưu tiên thông minh, giúp giải quyết vấn đề này một cách hiệu quả.
Thông điệp dữ liệu trên bus CAN không bao gồm địa chỉ của nút phát hoặc địa chỉ của các nút nhận dự kiến.
Nội dung của thông điệp được gán một mã nhận dạng (ID) duy nhất trên toàn mạng, cho phép các nút khác nhận diện và kiểm tra tính liên quan của thông điệp Mỗi nút sẽ thực hiện kiểm tra mã ID để xác định xem thông điệp có phù hợp với nó hay không; nếu có, thông điệp sẽ được xử lý, ngược lại, nó sẽ bị bỏ qua.
ID & Trường xác định quyền ưu tiên (Arbitration Field)
ID là duy nhất và cũng để xác định mức độ ưu tiên của thông điệp Giá trị số của mã
ID thấp thể hiện mức độ ưu tiên cao hơn, giúp phân xử khi hai hoặc nhiều nút cùng cạnh tranh để truy cập vào bus trong cùng một thời điểm.
Thông điệp có mức độ ưu tiên cao sẽ được ưu tiên truy cập bus, giống như thông điệp duy nhất được truyền đi Trong khi đó, các thông điệp có mức ưu tiên thấp hơn sẽ được tự động truyền lại trong chu kỳ bus tiếp theo, nếu vẫn còn thông điệp ưu tiên cao hơn đang chờ gửi.
Mỗi thông điệp trong giao thức CAN được xác định bởi một mã ID, có độ dài 11 bit (A) hoặc 29 bit (B) Mã ID này đóng vai trò quan trọng trong trường Arbitration Field, nằm ở vị trí đầu của mỗi thông điệp CAN.
ID xác định loại thông điệp, nhưng cũng là mức độ ưu tiên của thông điệp
Trong mạng CAN, các bit có thể được truyền ở mức cao hoặc thấp, với bit thấp luôn chiếm ưu thế Điều này có nghĩa là nếu một nút gửi tín hiệu thấp trong khi nút khác gửi tín hiệu cao, thì tín hiệu trên bus sẽ là mức thấp Trong quá trình truyền, mỗi nút đều lắng nghe tín hiệu trên bus; nếu một nút phát tín hiệu cao trong trường Arbitration Field và nhận thấy tín hiệu thấp, nó hiểu rằng mình đã mất quyền ưu tiên Khi đó, nút này sẽ ngừng truyền để nhường quyền cho nút khác có thông điệp ưu tiên cao hơn tiếp tục truyền mà không bị gián đoạn.
Trong mạng CAN, các nút không được phép gửi thông điệp có cùng ID Nếu hai nút cố gắng gửi thông điệp trùng ID cùng lúc, trường xác định quyền ưu tiên sẽ không hoạt động, dẫn đến việc một trong các nút phát hiện thông điệp của mình bị bóp méo bên ngoài Arbitration Field Kết quả là, các nút sẽ sử dụng trường xử lý lỗi của CAN, và cuối cùng một trong các nút truyền sẽ bị tắt trong chế độ tắt bus.
Các loại CAN Frame: Dữ liệu CAN được truyền dưới dạng các Frame (khung) Có
4 loại Frame khác nhau, đó là:
Khung dữ liệu (Data Frame) là cấu trúc dùng để truyền tải dữ liệu từ nguồn đến đích, bao gồm các vùng chứa byte dữ liệu cần thiết.
Remote Frame (khung yêu cầu hay điều khiển): Là khung được truyền từ một
Một Node có thể yêu cầu dữ liệu từ một Node khác Khi Node nhận được yêu cầu, nó sẽ trả về dữ liệu có ID trùng khớp với ID đã được gửi trong Remote Frame.
Error Frame (khung lỗi): Là khung được truyền bởi bất kỳ Node nào khi Node đó phát hiện lỗi từ Bus
Khung báo tràn (Overflow Frame) trong CAN Bus cho phép mỗi Node truyền dữ liệu khi phát hiện Bus rảnh Nếu một Node nhận quá nhiều dữ liệu mà không xử lý kịp, nó sẽ gửi khung này để thông báo cho các Node khác không gửi thêm dữ liệu cho nó.
Data Frame và Remote Frame hoạt động dựa trên cơ chế phân xử quyền ưu tiên tín hiệu, do đó chúng có vùng phân xử quyền ưu tiên chứa ID khung Hai định dạng chính của chúng là định dạng chuẩn (Standard) và định dạng mở rộng (Extended).
Định dạng khung chuẩn sử dụng ID có độ dài 11 bit
Định dạng khung mở rộng sử dụng ID có độ dài 29 bit
Các loại giao thức CAN
Giao thức CAN hiện nay bao gồm CAN 2.0 và CAN FD, với sự khác biệt chính nằm ở cấu trúc của các khung dữ liệu Trong bài viết này, chúng ta sẽ tập trung vào giao thức CAN 2.0.
Chuẩn giao thức CAN 2.0, được Bosch công bố lần đầu vào năm 1991, cho phép tốc độ truyền tối đa lên đến 1 Mbps và hỗ trợ lượng dữ liệu truyền tối đa là 8 byte.
Trong hệ thống mạng CAN, dữ liệu được truyền và nhận bằng Data Frame Data Frame mang dữ liệu từ một nút truyền đến một hoặc nhiều nút nhận
Giao thức CAN hỗ trợ hai định dạng Data Frame:
CAN tiêu chuẩn (CAN 2.0A) – Standard Data Frame
CAN mở rộng (CAN 2.0B) – Extended Data Frame
Hầu hết các CAN 2.0A chỉ hỗ trợ truyền và nhận thông điệp định dạng chuẩn, trong khi một số phiên bản 2.0B Passive có khả năng nhận thông điệp định dạng mở rộng nhưng sẽ bỏ qua chúng Ngược lại, CAN 2.0B có thể gửi và nhận thông điệp ở cả hai định dạng, mang lại tính linh hoạt cao hơn trong giao tiếp.
Hình 2.7: Khung dữ liệu (Data frame) của mạng CAN CAN 2.0A
Hình 2.8: Khung dữ liệu của mạng CAN 2.0A – khung tiêu chuẩn
Data Frame CAN (Phiên bản 2.0A) tiêu chuẩn bao gồm bảy trường bit khác nhau:
Tìm hiểu về OBD II
Có hai loại giắc cắm: loại A va loại B
Hình 2.10: Phân loại Jack OBD
Loại A thì sữ dụng điện áp nguồn là 12V, trong khi đó loại B lại sữ dụng điện áp nguồn là 24V
Hình 2.11: Chân của jack OBD
2.3.2 Cấu tạo của Jack OBD-II
Bảng 2.5: Bảng mô tả ý chân Jack OBD II
Tùy thuộc nhà sản xuất GM: J2411 GMLAN/ SWC/Single-Wire CAN Ford, FIAT: Thông tin giải trí CAN High
Tùy thuộc nhà sản xuất GM: Phát hiện đối tượng CAN bus + Ford: Tốc độ trung bình CAN-High Chrysler: CCD Bus +
7 K-Line theo ISO 9141-2 và ISO 14230-4
Tùy thuộc nhà sản xuất Ford, FIAT: Thông tin giải trí CAN-Low BMW: Ethernet kích hoạt thông qua 510 Ohm, 0.6W
Tùy thuộc nhà sản xuất BMW: TD (Tachometer Display) tín hiệu RPM GM: 8192 bit/s ALDL được lắp đặt
Tùy thuộc nhà sản xuất GM: Phát hiện đối tượng CAN bus - Ford: Tốc độ trung bình CAN Low Chrysler: CCD Bus -
Tùy thuộc nhà sản xuất GM: Chassis high-speed CAN bus + BMW: Ethernet TX+
Tùy thuộc nhà sản xuất GM: Chassis high-speed CAN bus - BMW: Ethernet TX-
15 L-Line theo ISO 9141 và ISO 14230-4
Nguồn dương ắc quy Loại A: 12V/4A Loại B: 24V/2A
2.3.3 Tìm hiểu về OBD-II PID
OBD-II PIDs (chẩn đoán tham số IDs) là các mã quan trọng được sử dụng để yêu cầu dữ liệu từ xe, đóng vai trò như một công cụ chẩn đoán hiệu quả.
Tiêu chuẩn SAE J1979 xác định nhiều PID, nhưng các nhà sản xuất ô tô cũng bổ sung thêm nhiều PID cho các phương tiện của họ Tất cả xe tải nhẹ (dưới 8.500 pounds) được bán tại Bắc Mỹ từ năm 1996, xe tải hạng trung (từ 8.500 đến 14.000 pounds) bắt đầu từ năm 2005, và xe tải hạng nặng (trên 14.000 pounds) cũng được quy định từ năm 2005.
Từ năm 2010, các phương tiện được yêu cầu hỗ trợ chẩn đoán OBD-II, sử dụng đầu nối liên kết dữ liệu tiêu chuẩn và một tập hợp con của các PID được xác định theo SAE J/1979 (hoặc SAE J/1939 cho xe hạng trung và hạng nặng) để kiểm tra khí thải.
Thông thường, một kỹ thuật viên ô tô sẽ sử dụng PID với một thiết bị chuẩn đoán được kết nối với đầu nối OBD-II của xe
Kỹ thuật viên nhập mã PID
Thiết bị chuẩn đoán sẽ gửi đến mạng bộ điều khiển của xe (CAN) - bus, VPW, PWM, ISO, KWP (sau năm 2008, chỉ CAN)
Thiết bị trên xe nhận dạng PID và chịu trách nhiệm phản hồi lại giá trị PID đó tới xe
Thiết bị chuẩn đoán đọc phản hồi và hiển thị nó cho kỹ thuật viên
Các chế độ của OBD-II PIDs
Có 10 chế độ hoạt động được mô tả trong tiêu chuẩn OBD-II SAE J1979 mới nhất
Bảng 2.6: Mô tả chế độ của OBD-II PIDs
01 Hiển thị dữ liệu hiện tại
02 Hiển thị dữ liệu khung cố định
03 Hiển thị mã lỗi chẩn đoán được lưu trữ
04 Xóa mã lỗi chẩn đoán và giá trị được lưu trữ
05 Kết quả kiểm tra, giám sát cảm biến oxy (không chỉ CAN)
06 Kết quả kiểm tra, giám sát thành phần / hệ thống khác (Kết quả kiểm tra, giám sát cảm biến oxy cho chỉ CAN)
07 Hiển thị mã lỗi chẩn đoán đang chờ xử lý (được phát hiện trong chu kỳ lái xe hiện tại hoặc cuối cùng)
08 Kiểm soát hoạt động của thành phần / hệ thống tích hợp
09 Yêu cầu thông tin xe
0A Thường chẩn đoán mã lỗi (DTCs) (Xóa DTCs)
Các nhà sản xuất xe không có nghĩa vụ phải hỗ trợ tất cả các chế độ, mà có thể tự xác định các chế độ bổ sung theo tiêu chuẩn # 9 Ví dụ, Ford và GM áp dụng chế độ 22 theo SAE J2190, trong khi Toyota sử dụng chế độ 21 để cung cấp thông tin khác.
Tìm hiểu về chế độ 01
Mục đích của việc nghiên cứu này là để đọc và chuyển đổi dữ liệu từ ECU của xe, cụ thể là thông số độ cơ Do đó, chúng tôi sẽ tập trung tìm hiểu chế độ 01 của OBD.
Khi gửi mã PIDs để lấy thông số thì dữ liệu trả về bao gồm 4 byte (A,B,C,D) có dạng:
Bảng 2.7: Dữ liệu trả về khi gửi mã PIDs
Dưới đây là bảng giá trị PIDs của chế độ 01:
Bảng 2.8: Bảng giá trị PIDs của chế độ 01
Byte dữ liệu Sự miêu tả
Các đơn vị Công thức
Theo dõi DTC bị xóa (Bao gồm trạng thái đèn báo lỗi (MIL) và số lượng DTC.)
04 4 1 Tính toán tải động cơ 0 100 % 100 A
Nhiệt độ nước làm mát
0B 11 1 Áp suất tuyệt đối 0 255 kPa A
Nhiệt độ không khí nạp
Khối lượng không khí MAF
Bảng trên liệt kê một số mã PID phổ biến, chẳng hạn như mã 0105 để lấy dữ liệu nhiệt độ nước làm mát, trong đó 01 đại diện cho chế độ 01 và 05 là mã PID cho nhiệt độ nước làm mát.
Truy vấn và phản hồi PID trên mạng CAN bus của xe
Các yêu cầu và phản hồi trong hệ thống OBD dựa trên địa chỉ chức năng chuẩn Thiết bị chẩn đoán khởi tạo truy vấn qua CAN ID 7DF, cho phép nhận phản hồi từ các ID trong khoảng 7E8 đến 7EF Hộp ECU có khả năng phản hồi các truy vấn OBD từ ID 7DF và một ID trong khoảng 7E0 đến 7E7 Phản hồi cho các truy vấn này sẽ có ID được cộng thêm 8, từ 7E8 đến 7EF.
Truy vấn: PID truy vấn được gửi đến CAN bus tại ID 7DF, sử dụng 8 bytes dữ liệu
Bảng 2.9: Truy vấn dữ liệu
Số bytes dữ liệu bổ sung: 2
01 = hiển thị dữ liệu hiện tại;
Mã PID (VD: 05 là Nhiệt độ nước làm mát động cơ)
Số bytes dữ liệu bổ sung: 3
Mode tùy chỉnh (VD: 22 là dữ liệu nâng cao)
Mã PID (VD: 4980) Không được sử dụng
Xe phản hồi truy vấn mã PID trên CAN bus với các ID thông báo phụ thuộc vào module phản hồi Thường thì động cơ hoặc ECU chính sẽ phản hồi tại ID 7E8, trong khi các module khác như bộ điều khiển hỗn hợp hoặc bộ điều khiển pin trong Prius sẽ phản hồi tại các ID 07E9, 07EA, 07EB,…
Bảng 2.10: Phản hồi dữ liệu
Số bytes dữ liệu bổ sung:
Mode tùy chỉnh, tương tự như truy vấn, ngoại trừ
Giá trị của tham số được chỉ
7EA, việc thêm 40 vào mode
41 = hiển thị dữ liệu hiện tại;
42 = khung đóng băng;… mát động cơ) định
Số bytes dữ liệu bổ sung:
Mode tùy chỉnh, tương tự như truy vấn, ngoại trừ việc thêm 40 vào giá trị mode (VD:
62 là đáp ứng yêu cầu chế độ
Mã PID (VD: 4980) Giá trị của tham số được chỉ định
Chuẩn giao tiếp trong truyền dữ liệu
SPI (Serial Peripheral Bus) là một chuẩn truyền thông nối tiếp tốc độ cao được Motorola phát triển vào những năm 1980, hoạt động theo mô hình Master-Slave với một chip Master điều phối và các chip Slave được điều khiển bởi Master Chuẩn này cho phép truyền thông song công (full duplex), tức là truyền và nhận dữ liệu đồng thời SPI thường được gọi là chuẩn “4 dây” với bốn đường giao tiếp chính: SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Output Slave Input) và SS (Slave Select).
Giao thức SPI được tích hợp trong một số loại thiết bị như:
Bài viết này đề cập đến các bộ chuyển đổi như ADC và DAC, cùng với các loại bộ nhớ bao gồm SD Card, MMC, EEPROM và Flash Ngoài ra, nó còn giới thiệu các IC thời gian thực, nhiều loại cảm biến như cảm biến nhiệt độ và áp suất, cũng như một số thiết bị khác như bộ trộn tín hiệu, màn hình LCD, màn hình Graphic LCD và bộ điều khiển video game.
Bus SPI bao gồm 4 tín hiệu hoặc chân Chúng là
Cổng Master - Out (MOSI) là cổng xuất dữ liệu từ thiết bị Master, trong khi cổng Slave - In (SI) là cổng nhận dữ liệu của thiết bị Slave Hai cổng này đóng vai trò quan trọng trong việc truyền dữ liệu từ thiết bị Master đến thiết bị Slave.
The Master-In/Slave-Out (MISO) configuration refers to the input port of the Master device and the output port of the Slave device, specifically designed for data transmission from the Slave to the Master.
Serial Clock (SCK hay SCLK) là tín hiệu đồng hồ do Master tạo ra để duy trì nhịp cho giao tiếp SPI Xung SCK có vai trò quan trọng trong việc điều phối dữ liệu trong giao thức SPI, vì đây là chuẩn truyền đồng bộ Mỗi nhịp trên chân SCK tương ứng với một bit dữ liệu được truyền đi hoặc nhận về.
Sự tồn tại của xung SCK giúp quá trình tuyền ít bị lỗi và vì thế tốc độ truyền của SPI có thể đạt rất cao
Chip Select (CS) hay Slave Select (SS) là tín hiệu được sử dụng để chọn một Slave cụ thể trong giao tiếp với Master Khi Master kéo đường SS của một Slave xuống mức thấp, việc giao tiếp giữa Master và Slave đó sẽ được thiết lập.
Trong giao thức SPI, đồng hồ được điều khiển bởi Master, cho phép truyền dữ liệu giữa Master và Slave Mỗi chu kỳ đồng hồ, một bit dữ liệu được gửi từ Master đến Slave và ngược lại, tạo ra quá trình truyền đồng thời Sau 8 chu kỳ đồng hồ, một byte dữ liệu được truyền theo cả hai hướng, chứng tỏ SPI là giao tiếp song công toàn phần Nếu chỉ một thiết bị truyền dữ liệu, thiết bị kia phải gửi dữ liệu giả, phụ thuộc vào thiết bị để xác định tính thực tế của dữ liệu Điều này có nghĩa là Master phải truyền dữ liệu trên đường MOSI và nhận dữ liệu từ Slave qua đường MISO đồng thời Để Slave có thể truyền dữ liệu, Master cần tạo tín hiệu đồng hồ phù hợp, nhận biết khi nào Slave muốn gửi dữ liệu.
Hình 2.12: Sơ đồ kết nối một Master với nhiều Slave
Trong bus SPI, mặc dù có nhiều Slave kết nối với Master, chỉ một Slave có thể hoạt động tại một thời điểm Để chọn Slave, Master sẽ kéo đường SS (Slave Select) hoặc CS (Chip Select) của Slave tương ứng xuống mức thấp Trên Arduino Uno, các chân giao tiếp SPI được phân bổ như sau: SS-10, MOSI-11, MISO-12 và SCK-13 Đối với Arduino Mega, chân MISO là 50, MOSI là 51, SCK là 52 và SS thường là 53.
2.4.2 Chuẩn giao tiếp I2C Đầu năm 1980 Phillips đã phát triển một chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C I2C là tên viết tắt của cụm từ Inter-Intergrated Circuit Đây là đường Bus giao tiếp giữa các IC với nhau I2C mặc dù được phát triển bởi Philips, nhưng nó đã được rất nhiều nhà sản xuất IC trên thế giới sử dụng I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển, có thể kể ra đây một vài tên tuổi ngoài Philips như: Texas Intrument(TI), MaximDallas, analog Device, National Semiconductor Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại Vi điều khiển 8051, PIC, AVR, ARM chip nhớ như: RAM tĩnh (Static Ram), EEPROM, các cảm biến nhiệt độ, áp suất, bộ chuyển đổi tương tự số (ADC), số tương tự (DAC), IC điểu khiển LCD, LED, IC DS1307 (Real Time Clock)
Cấu tạo và nguyên lý hoạt động: I2C sử dụng hai đường truyền tín hiệu
Một đường xung nhịp đồng hồ (SCL – Serial Clock Line) chỉ do Master phát đi (thông thường ở 100kHz và 400kHz Mức cao nhất là 1Mhz và 3.4MHz)
Một đường dữ liệu (SDA – Serial Data Line) theo 2 hướng
Dữ liệu được truyền đi được gửi qua dây SDA và được đồng bộ với tín hiệu đồng hồ (clock) từ SCL
Bus I2C cho phép kết nối nhiều thiết bị mà không xảy ra nhầm lẫn nhờ vào địa chỉ duy nhất của từng thiết bị Mỗi thiết bị có thể hoạt động như thiết bị nhận, truyền dữ liệu hoặc cả hai, tùy thuộc vào vai trò chủ (master) hoặc tớ (slave) Khi kết nối với bus I2C, thiết bị được cấu hình với một địa chỉ duy nhất và vai trò của nó Thiết bị chủ có quyền điều khiển toàn bộ hệ thống, tạo xung đồng hồ và quản lý địa chỉ thiết bị tớ trong quá trình giao tiếp Trong khi thiết bị chủ giữ vai trò chủ động, thiết bị tớ hoạt động một cách bị động.
Master: Giữ vai trò điều khiển các tín hiệu đường truyền (Bus I2C)
Tạo xung Clock trong suốt quá trình giao tiếp với Slave
Phát các tín hiệu Start bắt đầu cho quá trình truy xuất
Gửi địa chỉ của thiết bị Slave cần truy xuất
Phát tín hiệu đọc hoặc ghi (R/W) tới Slave
Truyền dữ liệu tới thiết bị Slave
Nhận dữ liệu từ Slave gửi lên
Tạo tín hiệu Not-ACK khi kết thúc nhận dữ liệu từ Slave
Tạo tín hiệu Stop kết thúc quá trình truy xuất
Nhận địa chỉ và bit R/W từ Master chỉ trả lời khi đúng địa chỉ của Slave
Nhận dữ liệu từ Master gửi tới đồng thời gửi bit ACK sau mỗi 8 Clock
Truyền dữ liệu tới Master, chờ tín hiệu ACK từ Master để tiếp tục gửi đi
Thực hiện chức năng chuyên dụng của Slave ( EEPROM, Real Time Clock, Driver LCD, IoTs )
Giao thức truyền dữ liệu:
Dữ liệu giữa thiết bị Master và các thiết bị Slave được truyền qua một đường dữ liệu SDA duy nhất, thông qua các chuỗi bit (0 và 1) Mỗi chuỗi này được gọi là giao dịch (transaction) và có cấu trúc dữ liệu riêng.
Hình 2.13: Cấu trúc dữ liệu trong mỗi giao dịch
Khi một thiết bị chủ (Master) hoặc IC quyết định bắt đầu một giao dịch, nó sẽ hạ mức điện áp của đường SDA từ cao xuống thấp trước khi đường SCL chuyển từ cao xuống thấp Điều này tạo ra điều kiện bắt đầu, khiến tất cả các thiết bị Slave, ngay cả khi đang ở chế độ ngủ, đều được kích hoạt và sẵn sàng nhận bit địa chỉ.
Hình 2.14: Điều kiện bắt đầu trong mỗi giao dịch dữ liệu
Thiết bị Master trong giao thức I2C gửi 7 bit địa chỉ của thiết bị Slave mà nó muốn giao tiếp, kèm theo bit Read/Write Tất cả các thiết bị Slave trên bus I2C sẽ so sánh các bit địa chỉ này với địa chỉ của chúng để xác định thiết bị nào sẽ nhận dữ liệu.
The Bit Read/Write determines the direction of data transmission between devices When the Master device needs to send data to the Slave device, this bit is set to '0' for a read operation Conversely, when the Master device needs to receive data from the Slave device, the bit is set to '1' for a write operation.
Bit ACK / NACK: ACK/NACK là viết tắt của Acknowledged/NotAcknowledged
Khi địa chỉ vật lý của thiết bị Slave trùng với địa chỉ do thiết bị Master phát, bit này sẽ được thiết lập thành '0' bởi thiết bị Slave; nếu không, bit này sẽ giữ mức logic '1' (mặc định).
Tổng quan cảm biến MEMS
Vào thế kỷ XX, sự phát triển của thiết bị điện tử đã chứng kiến sự tích hợp ngày càng nhiều tính năng trong kích thước nhỏ gọn hơn Sự tiến bộ này không chỉ mang lại những thay đổi công nghệ đáng kể mà còn tác động sâu rộng đến xã hội Đến cuối những năm 50, những đổi mới này đã mở ra nhiều cơ hội mới cho cuộc sống hàng ngày.
Cách mạng công nghệ vi mô đã diễn ra với 37 sự kiện quan trọng, mở ra triển vọng mới cho các ngành công nghiệp hệ thống vi cơ điện tử Dù MEMS còn khá mới mẻ, nhưng đã nhanh chóng chứng minh giá trị của mình qua nhiều ứng dụng thiết thực, đóng góp tích cực vào sự phát triển của đời sống xã hội Một trong những ứng dụng đáng chú ý là cấu trúc của vi cảm biến gia tốc, mang lại nhiều tiện ích trong các lĩnh vực khác nhau.
Cảm biến gia tốc là một thiết bị dùng để đo gia tốc
Cảm biến vi cơ, một sản phẩm nổi bật của công nghệ MEMS, được chế tạo bằng công nghệ vi cơ và mang đến sự đa dạng phong phú trong ứng dụng.
Hình 2.19: Sơ đồ một hệ đo gia tốc
Cảm biến vi cơ ngày càng trở nên nhanh nhạy, nhẹ và đáng tin cậy hơn so với các công nghệ điện tử trước đây Trong bài viết này, chúng ta sẽ tập trung vào ứng dụng của cảm biến gia tốc vi cơ điện tử, bao gồm hai loại chính: cảm biến kiểu tụ và cảm biến kiểu áp trở Việc lựa chọn giữa hai loại cảm biến này rất quan trọng trong nhiều ứng dụng Cảm biến kiểu áp trở có cấu tạo đơn giản nhưng nhược điểm là phụ thuộc nhiều vào nhiệt độ và độ nhạy kém hơn Ngược lại, cảm biến kiểu tụ có độ nhạy cao, ít bị ảnh hưởng bởi nhiệt độ và giảm thiểu nhiễu, tuy nhiên mạch điện tử của chúng phức tạp hơn Hiện nay, cảm biến gia tốc kiểu tụ đang được ứng dụng rộng rãi hơn.
Hình 2.20: Các kiểu cảm biến gia tốc Ứng dụng của cảm biến gia tốc:
Cảm biến gia tốc vi cơ đã trở thành sự lựa chọn hàng đầu, thay thế các cảm biến gia tốc truyền thống trong nhiều ứng dụng Một số ứng dụng tiêu biểu của cảm biến gia tốc vi cơ bao gồm theo dõi chuyển động, điều khiển thiết bị và ứng dụng trong công nghệ di động.
Cảm biến góc Roll –Pitch:
Định hướng 3D trong không gian
Phát hiện va chạm: Những thông tin về gia tốc, vận tốc và độ dịch chuyển giúp phân biệt sự va chạm và việc không xảy ra va chạm
Đo và điều khiển mức rung
Điều khiển và dự đoán khả năng làm việc của máy móc, thiết bị đo một số thông số sinh học trong cơ thể con người
Hình 2.21: Hệ trục cảm biến gia tốc
Gia tốc là sự thay đổi của vận tốc theo thời gian, với vận tốc đo sự thay đổi của độ dịch chuyển Lực trọng trường, gây ra gia tốc rơi tự do, có giá trị khoảng 9.81 m/s² (1g) Gia tốc được tính thông qua lực theo công thức F = ma, trong đó F là lực (đơn vị N), m là khối lượng (đơn vị kg), và a là gia tốc (đơn vị m/s²) Để đo gia tốc, cần xác định lực tác dụng lên một vật thể đã biết Ngoài ra, gia tốc cũng có thể được tính là đạo hàm của vận tốc theo thời gian, trong khi vận tốc lại là đạo hàm của độ dịch chuyển theo thời gian.
Vận tốc Độ dịch chuyển
Hình 2.22: Đồ thị gia tốc, vận tốc, độ dịch chuyển theo thời gian
Gia tốc cũng có thể được xác định một cách dễ dàng nhờ một dụng cụ đơn giản như sau
Theo định luật II Newton: ΣF = ma
Ta suy ra: Tcosθ - mg = 0 => T = mg/cosθ
Tsinθ = ma Như vậy: a = g*tgθ
Hình 2.23: Hệ khối lượng – lò xo được sử dụng để đo gia tốc
Nguyên tắc hoạt động của vi cảm biến gia tốc kiểu tụ
Khi hệ quy chiếu được gia tốc, gia tốc này được truyền cho khối m thông qua lò xo
Lò xo giãn ra và độ dịch chuyển của nó được xác định bởi một cảm biến độ dịch chuyển Theo định luật Hooke, lực kéo khối lượng m tỉ lệ với độ biến dạng của lò xo, được biểu diễn bằng công thức F = kx, trong đó k là hệ số tỉ lệ hay độ cứng của lò xo (N/m) và x là khoảng dịch chuyển so với vị trí cân bằng (m) Theo định luật II Newton, trong hệ quy chiếu quán tính đứng yên, lực F này tạo ra gia tốc a cho khối lượng m theo công thức F = ma Tại vị trí cân bằng, các lực tác động lên lò xo đều cân bằng nhau.
Công thức F = ma = kx cho phép chúng ta xác định gia tốc a = kx/m trong hệ quy chiếu quán tính đứng yên Nhờ vào mối quan hệ này, việc đo gia tốc trở nên đơn giản hơn khi chỉ cần đo khoảng dịch chuyển x Để thực hiện việc đo khoảng dịch chuyển, có thể sử dụng thuộc tính điện của tụ điện với hai bản cực song song, trong đó khoảng cách giữa hai bản có thể thay đổi.
Hình 2.24 minh họa mô hình của một tụ điện đơn và hai tụ điện nối tiếp Điện dung của tụ điện đơn được tính bằng công thức C = k/x0, trong đó k là hằng số phụ thuộc vào đặc tính của môi trường giữa hai bản tụ Nếu biết giá trị của k, chúng ta có thể xác định điện dung C và tính được x0 Hình 2.20 cũng chỉ ra rằng khi bản tụ di chuyển một khoảng x giữa CA và CB, điện dung sẽ thay đổi tương ứng.
(1) hay có thể viết lại là:
(3) Với khoảng x dịch chuyển nhỏ, phương trình trên có thể rút gọn thành:
Gắn khối lượng m của cảm biến vào bản tụ giữa hai tụ điện nối tiếp cho phép xác định độ dịch chuyển dưới tác dụng của lực F, từ đó tính được gia tốc thông qua giá trị ∆C Cảm biến góc xoay Gyroscope là một ứng dụng quan trọng trong việc đo lường chuyển động.
Cảm biến gyroscope lợi dụng hiện tượng một vật đang xoay tròn biến chuyển động theo một phương thành chuyển động theo phương khác vuông góc
Cảm biến MEMS gyroscope: Đo vận tốc xoay của vật, với chuyển động input và output là chuyển động tịnh tiến (thường là dao động)
Cảm biến MEMS gyroscope hoạt động dựa trên hiệu ứng Coriolis, một hiện tượng xảy ra trong các hệ quy chiếu quay so với hệ quy chiếu quán tính Hiệu ứng này được thể hiện qua sự lệch quỹ đạo trong hệ quy chiếu quay, cho phép cảm biến đo lường chính xác các chuyển động xoay.
Sử lệch quỹ đạo do một loại lực quán tính gây ra, gọi là lực Coriolis
F = m*ac = 2mv * (N) v là vận tộc của vật (m/s)
là vận tốc xoay (rad/s)
Cảm biến gyroscope hoạt động dựa trên một khối dao động theo phương sơ cấp Khi khối này quay quanh một trục, lực Coriolis xuất hiện, tạo ra dao động công hưởng theo phương thứ cấp.
Để đo gia tốc Coriolis, khung chứa khối lượng cộng hưởng được lắp đặt vào đế bằng lò xo ở góc 90° so với chuyển động cộng hưởng Hình 2.27 minh họa sơ đồ con quay hồi chuyển lò xo khối lượng đơn giản, đồng thời cho thấy các bản tụ được sử dụng để cảm nhận sự dịch chuyển của khung thông qua biến thiên điện dung và phản ứng với lực tác dụng từ khối lượng.
Hình 2.28: Sơ đồ cấu trúc cơ học của cảm biến góc xoay
Hình 2.29: Khung và khối lượng cộng hưởng bị dịch chuyển bởi tác động hiệu ứng
Hình 2.29 minh họa cấu trúc hoàn chỉnh, cho thấy rằng khối lượng cộng hưởng di chuyển và bề mặt gắn con quay hồi chuyển chịu gia tốc Coriolis, dẫn đến sự dịch chuyển 90° so với dao động Khi tốc độ quay tăng, độ dịch chuyển của khối lượng và tín hiệu từ điện dung cũng thay đổi Cảm biến góc xoay có thể được lắp đặt ở bất kỳ vị trí và góc độ nào trên vật thể quay, miễn là trục cảm nhận song song với trục quay.
MEMS đo sự dịch chuyển của khối cộng hưởng và khung của nó thông qua hiệu ứng Coriolis, sử dụng các phần tử cảm ứng điện dung gắn liền với bộ cộng hưởng.
Phần mềm LabVIEW
LabVIEW (Laboratory Virtual Instrumentation Engineering Workbench) là nền tảng thiết kế hệ thống và môi trường phát triển ngôn ngữ lập trình trực quan do National Instruments, Hoa Kỳ phát triển Khác với các ngôn ngữ lập trình truyền thống như C hay Pascal, LabVIEW sử dụng cú pháp hình ảnh trong môi trường soạn thảo, vì vậy nó còn được gọi là lập trình G (viết tắt của Graphical).
Hình 2.30: Logo phần mềm LabVIEW
Ngôn ngữ đồ họa "G" không nên nhầm lẫn với mã G, một ngôn ngữ lập trình điều khiển số phổ biến trong sản xuất máy tính hỗ trợ Được phát hành lần đầu cho Apple Macintosh vào năm 1986, LabVIEW chủ yếu được sử dụng để thu thập dữ liệu, điều khiển thiết bị và tự động hóa công nghiệp Ngôn ngữ này tương thích với nhiều hệ điều hành như Microsoft Windows, các phiên bản Unix, Linux và macOS.
LabVIEW là một môi trường lập trình đồ họa cho phép người dùng nhanh chóng và hiệu quả tạo ra các ứng dụng với giao diện người dùng chuyên nghiệp Được hàng triệu kỹ sư và nhà khoa học tin dùng, LabVIEW hỗ trợ phát triển các ứng dụng đo lường, kiểm thử và điều khiển thông qua các biểu tượng trực quan và dây nối tín hiệu Nền tảng này có khả năng mở rộng trên nhiều hệ điều hành và phần cứng khác nhau, tích hợp với hàng nghìn thiết bị và cung cấp hàng trăm thư viện sẵn có cho phân tích và hiển thị dữ liệu, giúp bạn tạo ra các thiết bị ảo tùy chỉnh theo nhu cầu.
Chương trình LabVIEW, được biết đến như một thiết bị ảo (Virtual Instrument - VI), giả lập giao diện và hoạt động của các thiết bị thực như dao động ký và thiết bị đo đa năng VI bao gồm hai phần chính: Front Panel, là giao diện người dùng, và Block Diagram, là mã chương trình phía sau giao diện Sau khi xây dựng Front Panel, người dùng sẽ thêm mã để điều khiển các đối tượng trên giao diện bằng cách sử dụng các hình đồ họa đại diện cho các hàm Mã trong Block Diagram là dạng đồ họa, thường được gọi là G code hoặc Block Diagram code.
Khác với các ngôn ngữ lập trình văn bản như C++ và Visual Basic, LabVIEW sử dụng biểu tượng để phát triển ứng dụng Trong lập trình văn bản, thứ tự các dòng lệnh quyết định trình tự thực hiện chương trình, trong khi LabVIEW áp dụng lập trình đồ họa theo dòng chảy dữ liệu Trong mô hình này, dòng chảy dữ liệu qua các nút trên Block Diagram xác định trình tự thực hiện chương trình Lập trình đồ họa và thực thi dựa trên dòng chảy dữ liệu là hai đặc điểm nổi bật giúp LabVIEW khác biệt so với nhiều ngôn ngữ lập trình đa dụng khác.
Mô hình lập trình trong LabVIEW, thường được gọi là G, dựa trên sự tiện ích của dữ liệu Một subVI hoặc hàm sẽ được thực hiện khi có đủ dữ liệu tiện ích Dòng thực hiện được xác định bởi cấu trúc của sơ đồ khối đồ họa, nơi lập trình viên kết nối các nút chức năng bằng cách vẽ dây, truyền tải các biến số Bất kỳ nút nào có thể thực hiện ngay khi tất cả dữ liệu đầu vào của nó đầy đủ.
LabVIEW hỗ trợ thực thi song song với khả năng xử lý nhiều nút cùng một lúc Bộ lập lịch tích hợp tự động khai thác phần cứng đa xử lý và đa luồng, cho phép ghép nối nhiều chuỗi hệ điều hành qua các nút đã sẵn sàng để thực thi.
LabVIEW tích hợp việc tạo giao diện người dùng vào chu kỳ phát triển, sử dụng các chương trình con gọi là công cụ ảo (VI) Mỗi VI bao gồm ba thành phần: sơ đồ khối, bảng mặt trước và bảng kết nối Bảng mặt trước chứa các điều khiển cho phép người dùng nhập thông tin và các chỉ số hiển thị kết quả đầu ra Sơ đồ khối, hay bảng mặt sau, chứa mã nguồn đồ họa và các cấu trúc, chức năng để xử lý dữ liệu từ điều khiển và cung cấp cho chỉ số Các đối tượng trên bảng mặt trước xuất hiện như đầu cuối trên bảng mặt sau, và các nút, bao gồm điều khiển, chỉ số, cấu trúc và chức năng, được kết nối bằng dây để thực hiện các phép toán, như tổng hai điều khiển.
Công cụ ảo trong LabVIEW hoạt động như một chương trình, với bảng phía trước làm giao diện người dùng, xác định đầu vào và đầu ra cho các nút trong sơ đồ khối Điều này cho phép kiểm tra từng VI trước khi tích hợp vào chương trình lớn hơn Cách tiếp cận đồ họa giúp lập trình viên dễ dàng kéo và thả các biểu diễn ảo của thiết bị mà không cần xây dựng lại chương trình Môi trường lập trình LabVIEW đi kèm với tài liệu và ví dụ, giúp đơn giản hóa việc tạo ứng dụng nhỏ, nhưng cũng có thể làm giảm tính chuyên môn cần thiết cho lập trình G chất lượng cao Đối với các thuật toán phức tạp, kiến thức sâu về cú pháp và cấu trúc quản lý bộ nhớ của LabVIEW là rất quan trọng Các hệ thống phát triển LabVIEW tiên tiến cho phép xây dựng ứng dụng độc lập.
G có 47 ứng dụng phân tán, giao tiếp thông qua mô hình máy khách - máy chủ, giúp việc triển khai trở nên dễ dàng hơn nhờ vào tính chất song song vốn có của nó.
Giới thiệu về Arduino IDE 1.8.5
Arduino cung cấp một môi trường lập trình tích hợp mã nguồn mở, phổ biến trên internet, giúp người dùng dễ dàng viết và tải code lên bo mạch Arduino Đây là một nền tảng đa dạng, hỗ trợ nhiều loại bo mạch Arduino và sở hữu nhiều tính năng độc đáo Giao diện của ứng dụng lập trình này được thiết kế hợp lý, phù hợp cho cả người dùng chuyên nghiệp và không chuyên.
Arduino là một môi trường phát triển tích hợp đa nền tảng, hỗ trợ nhiều loại bo mạch như Arduino Uno, Nano, Mega, và LilyPad Arduino Phần mềm này lý tưởng cho lập trình viên C và C++, mang đến một sự thay thế hoàn hảo cho các IDE khác.
Phần mềm lập trình Arduino (IDE - Môi trường phát triển tích hợp) tương thích với nhiều hệ điều hành phổ biến hiện nay, bao gồm Windows, Macintosh OSX và Linux, trong khi đó, hầu hết các vi điều khiển chủ yếu chỉ hỗ trợ hệ điều hành Windows.
Hình 2.32: Giao diện Arduino IDE 1.8.5
Viết code và hỗ trợ nhiều loại bo mạch Arduino
Bộ sưu tập các ví dụ mẫu và thư viện hỗ trợ phong phú, mã nguồn mở sẵn được chia sẻ rộng rãi
Có nhiều cộng đồng, diễn đàn rộng để hỗ trợ