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 dự kiến sẽ tiếp tục khi chất lượng cuộc sống của người dân nâng cao và nhu cầu sử dụng phương tiện tăng lên Các chính sách ưu đãi thuế từ nhà nước sẽ tạo điều kiện thuận lợi cho người dân sở hữu ô tô Tuy nhiên, lượng phương tiện giao thông lớn sẽ gây áp lực lên hệ thống hạ tầng và công tác quản lý giao thông, đồng thời làm gia tăng nguy cơ tai nạn Việc thu thập dữ liệu tại hiện trường tai nạn trở nên cực kỳ quan trọng để điều tra, xác định nguyên nhân và đảm bảo công bằng cho các bên liên quan, nhằm tránh sai sót trong điều tra và xử lý vụ việc.
Hiện nay, các mô hình lưu trữ dữ liệu trên xe chủ yếu lấy dữ liệu trực tiếp từ xe, dẫn đến việc thông tin có thể không đủ khách quan cho quá trình điều tra Ví dụ, trong vụ tai nạn xe Inova lùi trên cao tốc năm 2016, dữ liệu tốc độ từ hộp đen của xe container chỉ là một phần, trong khi các thông số khác chỉ dựa vào phán đoán chủ quan của điều tra viên Việc xác định liệu tài xế có phanh hay không từ vệt bánh xe, hay việc đánh lái của xe Inova từ hình ảnh biến dạng của đầu container, đều không đủ chính xác Do đó, nhóm đề xuất giải pháp thu thập dữ liệu xe một cách độc lập sau tai nạn, nhằm hỗ trợ đội điều tra tìm ra nguyên nhân, tái hiện vụ tai nạn, và đảm bảo độ 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 để hỗ trợ trong việc quản lý và điều tra tai nạn 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 ngoài nước 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, hỗ trợ trong 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, tuy nhiên, chúng chỉ phù hợp với các dòng xe có mã nguồn từ nhà sản xuất, dẫn đến việc sản phẩm nghiên cứu chưa được phổ biến rộng rãi.
Tính cấp thiết của đề tài
Số lượng xe lưu thông ngày càng tăng, kéo theo đó là sự gia tăng đáng kể của tai nạn giao thông trong những năm gần đây Các tình huống tai nạn trở nên đa dạng và phức tạp hơn, gây thiệt hại nặng nề Do đó, công tác quản lý và theo dõi hoạt động của xe, cùng với việc phân tích, xử lý và tái hiện vụ tai nạn nhằm tìm ra nguyên nhân và hướng giải quyết công bằng đang nhận được sự quan tâm lớn từ 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 hiểu rõ nguyên nhân và diễn biến vụ việc là rất quan trọng Tích lũy thông tin chi tiết giúp ích cho quá trình giải quyết bảo hiểm, điều tra và xử lý các vụ kiện.
Dữ liệu tai nạn mang giá trị cao nhờ 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, đồng thời thiết bị còn hỗ trợ quá trình điều tra 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ể, từ đó tạo ra cái nhìn toàn diện hơn.
According to the report "Collision Sciences All about Crash Data," accident data is presented in a PDF format, derived from 16-bit hexadecimal data stored by 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 ưa chuộng việc sử dụng dữ liệu ghi lại 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 và quyết định.
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, tín hiệu từ 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 các khiếu nại.
Trước khi va chạm, xe chở khách thường lưu trữ dữ liệu về tốc độ và bàn đạp ga trong 5 giây, trong khi dữ liệu về bàn đạp phanh được ghi lại trong 8 giây Các điểm dữ liệu được lấy mẫu mỗi giây, cho phép xác định trạng thái của bàn đạp ga và phanh tại các thời điểm 1,0 giây, mặc dù không biết 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 các 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 người lái xe.
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 vụ va chạm, thông qua việc đo lường sự thay đổi đột ngột trong gia tốc, cho thấy mức độ tăng hoặc giảm tố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" diễn ra nhanh chóng trong một khoảng thời gian ngắn Dữ liệu gia tốc này được cảm biến hoặc máy đo gia tốc trong mô-đun túi khí ghi lại và lấy mẫu mỗi mili giây Khi gia tốc vượt qua ngưỡng nhất định, thuật toán kích hoạt sẽ bắt đầu lưu trữ dữ liệu tai nạn Nếu vụ va chạm nghiêm trọng đến mức không thể hoàn tất quá trình ghi, chẳng hạn như do mất nguồn, báo cáo dữ liệu tai nạn sẽ phản ánh vấn đề này và hiển thị sự thay đổi vận tốc tối đa đã được ghi nhận.
Dữ liệu "thay đổi vận tốc" là thông tin quan trọng mà xe sử dụng để quyết định kích hoạt túi khí nhằm bảo vệ an toàn cho hành khách trong trường hợp va chạm Quyết định này phải được thực hiện trước khi va chạm kết thúc, thường trong khoảng thời gian 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 với độ hồi âm cao, thời gian có thể kéo dài lên đến 200 hoặc 300 mili giây.
Trong các vụ tai nạn xe hơi, sẽ có phép đo delta-V theo chiều dọc và chiều ngang nếu xe được trang bị túi khí bên Delta-V được tính bằng cách lấy vận tốc sau trừ vận tốc trước (∆𝑉 = V2 – V1), và có giá trị âm khi xe đang giảm tốc Ví dụ, trong báo cáo dữ liệu tai nạn, sự thay đổi vận tốc tối đa ghi nhận là -17,08 mph (tương đương -27,49 km/h hay -7,64 m/s), cho thấy một sự thay đổi vận tốc đột ngột nghiêm trọng xảy ra trong khoảng thời gian ngắn chỉ 75 mili giây.
Theo nghiên cứu của Geotap, thiết bị lưu trữ dữ liệu tai nạn phát hiện va chạm khi gia tốc đạt 2.5g (tương đương 24.525 m/s²) Thiết bị chỉ sử dụng dữ liệu gia tốc theo trục X và Y, không tính đến gia tốc theo trục Z Khi phát hiện gia tốc 2.5g, 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 về va chạm: nếu phát hiện sự thay đổi tốc độ lớn hơn 2.5g khi tăng tốc, phanh hoặc có gia tốc ngang, thiết bị sẽ gửi thông tin chi tiết về vị trí, tốc độ và gia tốc của xe khi chế độ thông báo được bật Người dùng có thể xem thông tin này trong báo cáo nhật ký và va chạm ngay cả khi không kích hoạt thông báo Tuy nhiên, cần lưu ý rằng thông báo va chạm có thể là báo động giả do va chạm nhẹ hoặc gõ tay vào thiết bị, vì vậy việc cài đặt thiết bị cần phù hợp với thói quen lái xe của từng người.
Khi xảy ra va chạm nhẹ với gia tốc kế đo được dưới 2.5g, như trong trường hợp hai xe va chạm ở tốc độ thấp mà 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 gia tốc 100 lần/giây, bao gồm thông tin về sự thay đổi hướng và tốc độ, cho phép truy xuất kiểm tra sau này Việc phát hiện va chạm không có quy tắc cố định nhưng có thể được điều chỉnh theo nhu cầu người dùng Nhà sản xuất khuyến nghị các ngưỡng tùy chỉnh dựa trên kinh nghiệm và nghiên cứu, như đượ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ó được lắp vào khóa tại thời điểm va chạm hay không Nếu không có hành động cố tình từ người lái xe để đánh lừa hệ thống, dữ liệu này sẽ phản ánh chính xác việc người lái xe hoặc hành khách phía trước có đang sử dụng dây an toàn hay không.
Điều tra viên có thể xác định xem có 8 người ngồi trên xe hay không bằng cách xem xét các vết rạn trên vòng đai chữ D hoặc dây đai an toàn Việc chụp ảnh những dấu hiệu này sẽ cung cấp bằng chứng quan trọng về 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à 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 Nó cũng có khả năng phát hiện xung đột tương tự như Ethernet, nhưng khác biệt ở chỗ khi xảy ra xung đột, các nút trong mạng CAN không ngừng truyền mà áp dụng nguyên tắc xác định quyền ưu tiên thông minh Điều này giúp mạng CAN hoạt động hiệu quả hơn trong môi trường có tải bus cao, khắc phục nhược điểm của Ethernet khi phải chờ đợi thời gian trễ ngẫu nhiên để gửi lại.
Dữ liệu trên bus CAN được truyền đi mà không bao gồm địa chỉ của nút gửi hoặc các nút nhận dự kiến.
Nội dung của thông điệp được gắn nhãn bằng một mã nhận dạng (ID) duy nhất trên toàn mạng Mỗi nút trong mạng nhận được thông điệp và thực hiện kiểm tra mã ID để xác định tính liên quan của thông điệp Nếu thông điệp liên quan, nó sẽ được xử lý; nếu không, 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, 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 được ưu tiên truy cập bus như thông điệp duy nhất, trong khi các thông điệp có mức ưu tiên thấp hơn sẽ được 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 đ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ó thể là 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 ở đầu 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 gửi ở 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 mức thấp trong khi nút khác gửi mức cao, tín hiệu trên bus sẽ là mức thấp Trong quá trình truyền, nút gửi luôn lắng nghe trên bus; nếu nó phát hiện mức thấp trong Arbitration Field khi đang gửi mức cao, nút đó biết rằng nó đã mất quyền ưu tiên và sẽ ngừng truyền, cho phép nút khác với thông điệp ưu tiên cao hơn tiếp tục 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 ngoài Arbitration Field Khi đó, 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 sẽ bị tắt (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 chứa dữ liệu được truyền từ bộ phát đến bộ nhận Nó bao gồm các vùng để chứa các byte dữ liệu, đảm bảo quá trình truyền tải thông tin diễn ra hiệu quả.
Remote Frame (khung yêu cầu hay điều khiển): Là khung được truyền 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ẽ truyền lại dữ liệu có ID trùng 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 Khi một Node nhận quá nhiều dữ liệu và không thể 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 của tín hiệu, với cấu trúc chứa vùng phân xử quyền ưu tiên và ID của khung Chúng có hai định dạng chính: đị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 loại khung (Frame) 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, do Bosch công bố lần đầu vào năm 1991, có tốc độ truyền tối đa lên đến 1 Mbps và khả năng truyền dữ liệu 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 theo đị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, cho phép 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 dùng để yêu cầu dữ liệu từ xe, phục vụ như một công cụ chẩn đoán hiệu quả.
Tiêu chuẩn SAE J/1979 xác định nhiều PID, nhưng các nhà sản xuất xe cũng bổ sung thêm nhiều PID cho các phương tiện của họ Tất cả các loại 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-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 đưa vào tiêu chuẩn này.
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 áp dụng 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 ô tô không bắt buộc phải hỗ trợ tất cả các chế độ, mà có thể tự xác định các chế độ bổ sung trên #9 Chẳng hạn, Ford và GM áp dụng chế độ 22 theo tiêu chuẩn SAE J2190, trong khi Toyota sử dụng chế độ 21 để cung cấp thông tin khác nhau.
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 biệt là thông số độ cơ Do đó, chúng tôi sẽ tập trung vào 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
Mã PID là một phần quan trọng trong việc lấy dữ liệu, ví dụ như mã 0105 được sử dụng để truy xuất thông tin về 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 vào địa chỉ chức năng chuẩn Thiết bị chẩn đoán khởi tạo truy vấn với CAN ID 7DF, cho phép nhận phản hồi từ bất kỳ ID nào 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, với phản hồi được xác định bằng cách 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 khác nhau tùy thuộc vào module phản hồi Thông thường, động cơ hoặc ECU chính sẽ phản hồ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 ở 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à chuẩn truyền thông nối tiếp tốc độ cao do 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 Giao tiếp trong SPI diễn ra theo kiểu song công (full duplex), cho phép truyền và nhận dữ liệu đồng thời Chuẩn này thường được gọi là “4 dây” vì sử dụng bốn đường giao tiếp: 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ộ chuyển đổi tín hiệu như ADC và DAC, các loại bộ nhớ như SD Card, MMC, EEPROM và Flash, cùng với các IC thời gian thực, là những thành phần quan trọng trong thiết kế mạch điện tử Ngoài ra, các cảm biến như cảm biến nhiệt độ và áp suất, cũng như các thiết bị khác như bộ trộn tín hiệu, màn hình LCD, Graphic LCD và bộ điều khiển video game, đóng vai trò quan trọng trong việc nâng cao hiệu suất và khả năng tương tác của sản phẩm công nghệ.
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 từ thiết bị Slave Hai cổng này được sử dụng để truyền dữ liệu hiệu quả giữa thiết bị Master và Slave.
The Master-In/Slave-Out (MISO) configuration refers to the input port on the Master device and the output port on the Slave device, specifically designed for data transmission from the Slave to the Master.
Xung giữ nhịp Serial Clock (SCK hay SCLK) là tín hiệu đồng hồ do Master tạo ra, đóng vai trò quan trọng trong giao tiếp SPI Với tính chất truyền đồng bộ của SPI, xung SCK giúp đồng bộ hóa quá trình truyền tải dữ liệu, mỗi nhịp trên chân SCK tương ứng với việc gửi hoặc nhận một bit dữ liệu.
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 dùng để chọn một Slave cụ thể từ Master Khi Master kéo đường SS của một Slave xuống mức thấp, giao tiếp giữa Master và Slave đó sẽ được thiết lập.
Trong giao tiếp 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, dẫn đến việc truyền một byte dữ liệu sau 8 chu kỳ, tạo ra giao tiếp song công toàn phần (full-duplex) Nếu chỉ một thiết bị cần truyền dữ liệu, thiết bị kia phải gửi dữ liệu giả, phụ thuộc vào việc liệu dữ liệu thực tế có được truyền hay không Điều này có nghĩa là Master sẽ truyền dữ liệu qua đường MOSI và nhận dữ liệu từ Slave qua đường MISO đồng thời Khi Slave muốn gửi dữ liệu, Master cần tạo tín hiệu đồng hồ phù hợp để đồng bộ hóa quá trình truyền tải.
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, nhưng chỉ một Slave hoạt động tại một thời điểm Để chọn Slave, Master 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 lần lượt là SS-10, MOSI-11, MISO-12 và SCK-13 Trong khi đó, trên Arduino Mega, 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 cho mỗi thiết bị và mối quan hệ chủ/tớ 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ò của nó Khi kết nối với bus I2C, mỗi thiết bị được phân loại là chủ (master) hoặc tớ (slave), trong đó thiết bị chủ điều khiển toàn bộ hệ thống và tạo xung đồng hồ Trong quá trình giao tiếp, thiết bị chủ quản lý địa chỉ của thiết bị tớ, với thiết bị chủ giữ vai trò chủ động và thiết bị tớ là 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, sử dụng các chuỗi bit 0 và 1 Mỗi chuỗi này được gọi là giao dịch (transaction), và dữ liệu trong mỗi giao dịch được cấu trúc một cách cụ thể.
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) quyết định bắt đầu một giao dịch, nó sẽ chuyển mức điện áp của SDA từ cao xuống thấp trước khi 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 hoạt động, ngay cả khi chúng đang ở chế độ ngủ, 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
Trong giao tiếp I2C, thiết bị Master gửi 7 bit địa chỉ của thiết bị Slave mà nó muốn kết nối, 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ính mình để xác định xem có nhận lệnh từ thiết bị Master hay không.
The Bit Read/Write indicates the direction of data transmission in a communication system When the Master device needs to send data to the Slave device, this bit is set to '0' for reading Conversely, if the Master device is receiving data from the Slave, the bit is set to '1' for writing.
Bit ACK / NACK: ACK/NACK là viết tắt của Acknowledged/NotAcknowledged
Nếu đị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; ngược lại, nó 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 linh kiện, kích thước thu nhỏ và chức năng cải tiến Sự tiến bộ này đã tạo ra những biến đổi sâu sắc trong cả công nghệ và xã hội Đến cuối những năm 50, những thay đổi này đã bắt đầu hình thành một kỷ nguyên mới trong lĩnh vực điện tử.
Cách mạng công nghệ micro đã tạo ra những bước tiến đáng kể trong ngành hệ thống vi cơ điện tử (MEMS), hứa hẹn mang lại nhiều tiềm năng cho tương lai Dù MEMS mới xuất hiện không lâu, nhưng đã có nhiều ứng dụng quan trọng, đóng góp tích cực vào sự phát triển của xã hội Một trong những ứng dụng nổi bật là cấu trúc của vi cảm biến gia tốc, giúp cải thiện hiệu suất và độ chính xác trong nhiều lĩnh vực.
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ơ, sản phẩm tiêu biểu của công nghệ MEMS, được chế tạo với công nghệ vi cơ, mang đến sự phong phú và đa dạng 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ẹ, rẻ và đáng tin cậy hơn so với các cảm biến điện tử truyền thống Bài viết này 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: 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ông nghệ cấu tạo đơn giản nhưng nhược điểm là nhạy cảm với sự thay đổi nhiệt độ và độ nhạy kém hơn Ngược lại, cảm biến kiểu tụ có độ nhạy cao hơn, ít bị ảnh hưởng bởi nhiệt độ, và giảm thiểu nhiễu và mất mát năng lượng, mặc dù mạch điện tử 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ơ đã nhanh chóng trở thành lựa chọn ưu việt, thay thế các cảm biến gia tốc thông thường trong nhiều ứng dụng khác nhau Một số ứng dụng điển hình của cảm biến gia tốc vi cơ bao gồm theo dõi chuyển động, định vị và điều khiển thiết bị thông minh.
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 vận tốc theo thời gian, trong khi vận tốc đo sự thay đổi độ dịch chuyển theo thời gian Lực trọng trường gây ra gia tốc rơi tự do, với giá trị 9.81 m/s² (1g) Gia tốc được tính qua 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, và vận tốc 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 xác định bởi 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 yếu tố này đạt được sự ổn định.
Công thức F = ma = kx cho phép chúng ta tính toán gia tốc a = kx/m trong hệ quy chiếu quán tính đứng yên Để đo gia tốc, chỉ cần xác định khoảng dịch chuyển x Một phương pháp đo khoảng dịch chuyển này là 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 các bản có thể thay đổi.
Hình 2.24 minh họa mô hình của một tụ điện đơn ở bên trái và hai tụ điện nối tiếp nhau ở bên phải Điện dung của tụ điện đơn được xác định bằng công thức C = k/x0, trong đó k là hằng số phụ thuộc vào tính chất 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ể tính toán được điện dung C và khoảng cách x0 Trong hình 2.20, nếu bản tụ nằm giữa CA và CB dịch chuyển một khoảng x, ta có thể xác định mối quan hệ giữa các thành phần này.
(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:
Việc 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 của 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 cũng đóng vai trò 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 sự chuyển động và định hướng chính xác.
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, đồng thời quay quanh một trục Sự quay này tạo ra lực Coriolis, dẫn đến 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 gắn 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, cho thấy các bản tụ cảm nhận sự dịch chuyển của khung qua biến thiên điện dung và phản ứng với lực tác độ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
Cấu trúc hoàn chỉnh được mô tả trong Hình 2.29 chứng minh rằng khi khối lượng cộng hưởng di chuyển, nó cùng với khung của con quay hồi chuyển chịu tác động của 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 điện dung thu được cũng thay đổi tương ứng Cảm biến góc xoay có thể được lắp đặt ở bất kỳ vị trí nào trên vật thể quay và ở mọi góc độ, miễn là trục cảm nhận song song với trục quay.
MEMS sử dụng hiệu ứng Coriolis để đo sự dịch chuyển của khối cộng hưởng và khung của nó thông qua các phần tử cảm ứng điện dung gắn liền với bộ cộng hưởng, như thể hiện trong hình 2.29.
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 cho ngôn ngữ lập trình trực quan từ National Instruments, Hoa Kỳ 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 thông qua hình ảnh trực quan trong môi trường soạn thảo, do đó còn được gọi là lập trình G (viết tắt của Graphical, nghĩa là đồ họa).
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ố (NC) 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 trên nhiều hệ điều hành như Microsoft Windows, Unix, Linux và macOS.
LabVIEW là môi trường lập trình đồ họa cho phép bạn nhanh chóng tạo ra các ứng dụng với giao diện người dùng chuyên nghiệp Hàng triệu kỹ sư và nhà khoa học sử dụng LabVIEW để phát triển ứng dụng đo lường, kiểm thử và điều khiển tinh vi thông qua các biểu tượng trực quan và dây nối tín hiệu Ngoài ra, LabVIEW hỗ trợ nhiều nền tảng phần cứng và hệ điều hành, tích hợp với hàng nghìn thiết bị và cung cấp hàng trăm thư viện để 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), mô phỏng 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 có thể thêm mã để điều khiển các đối tượng trên đó bằng cách sử dụng hình đồ họa đại diện cho các hàm Mã trong Block Diagram được gọi là G code (mã G) hoặc Block Diagram code, và thường ở dạng đồ họa.
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ự dòng lệnh quyết định trình tự thực hiện, trong khi LabVIEW áp dụng lập trình đồ họa dạng dòng chảy dữ liệu, nơi 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 Hai đặc điểm chính này - lập trình đồ họa và thực thi dạng dòng chảy dữ liệu - làm cho LabVIEW nổi bật so với các 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 cần thiết Quy trình 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 Những dây này truyền tải các biến số, cho phép bất kỳ nút nào thực hiện ngay khi tất cả dữ liệu đầu vào đã đầy đủ.
LabVIEW có khả năng thực thi song song nhiều nút cùng một lúc, nhờ vào việc tự động khai thác phần cứng đa xử lý và đa luồng Bộ lập lịch tích hợp sẵn giúp ghép nhiều chuỗi hệ điều hành qua các nút đã sẵn sàng để thực thi, tối ưu hóa hiệu suất làm việc.
LabVIEW tích hợp việc tạo giao diện người dùng vào quy trình phát triển với 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 chính: sơ đồ khối, bảng mặt trước và bảng kết nối Bảng mặt trước được xây dựng từ các điều khiển (đầu vào) và chỉ số (kết quả đầu ra), cho phép người dùng cung cấp thông tin và hiển thị kết quả Sơ đồ khối chứa mã nguồn đồ họa, trong đó các đối tượng từ bảng mặt trước sẽ xuất hiện như đầu cuối Nó cũng bao gồm các cấu trúc và chức năng để xử lý dữ liệu từ điều khiển và cung cấp cho các chỉ số Các thành phần này, bao gồm điều khiển, chỉ số, cấu trúc và chức năng, được gọi là nút và được kết nối với nhau bằng dây, cho phép thực hiện các phép toán như tính tổng.
Công cụ ảo có thể hoạt động như một chương trình, với bảng phía trước đóng vai trò giao diện người dùng và xác định đầu vào, đầu ra cho các nút trong sơ đồ khối Mỗi VI có thể được kiểm tra dễ dàng trước khi ghi lại như một chương trình con trong một ứng dụng lớn hơn Cách tiếp cận đồ họa giúp lập trình viên không cần xây dựng lại chương trình mà chỉ cần kéo và thả các biểu diễn ảo của thiết bị đã có Môi trường lập trình LabVIEW, cùng với tài liệu và ví dụ, hỗ trợ việc phát triển ứ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, lập trình viên cần hiểu sâu về cú pháp và cấu trúc quản lý bộ nhớ của LabVIEW 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, mở rộng khả năng sáng tạo trong lập trình.
47 ứng dụng phân tán sử dụng mô hình giao tiếp 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 G.
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 mã 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 cùng với 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++, cung cấp 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 - Integrated Development Environment) hỗ trợ nhiều hệ điều hành như Windows, Macintosh OSX và Linux, trong khi hầu hết các vi điều khiển thường chỉ tương thích với 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ợ