Chuyển đến nội dung chính
Hướng dẫn AI

Tự chế máy quét OBD1 dựa trên Arduino cho Jeep đời 1991–95

Tìm hiểu cách lắp ráp và vận hành xj-scanner, một giao diện Arduino Nano giá rẻ dành cho các máy tính động cơ OBD1 tương thích trên xe Jeep và Chrysler đời 1991–95. Hướng dẫn này bao gồm kiểm tra an toàn, chuẩn bị đi dây, cài đặt phần mềm, nạp firmware, đọc mã lỗi, ghi dữ liệu thời gian thực, các bài kiểm tra tích hợp và tài nguyên khắc phục sự cố.

Tự chế máy quét OBD1 Arduino cho Jeep đời 1991–95

xj-scanner là gì?

xj-scanner kết nối máy tính xách tay với máy tính điều khiển động cơ của Jeep đời 1991–95 bằng một Arduino Nano 5 V giá rẻ. Ba dây nối từ đầu nối chẩn đoán dưới nắp ca-pô đến Nano, sau đó Nano kết nối với máy tính xách tay qua USB.

Sau khi kết nối, dự án có thể đọc mã lỗi và dữ liệu động cơ theo thời gian thực, ghi lại thông tin trong khi lái xe, cũng như chạy các bài kiểm tra bộ chấp hành tích hợp trong máy tính điều khiển động cơ. Claude Code, Codex hoặc một tác nhân lập trình khác có thể hướng dẫn bạn thiết lập và diễn giải các chỉ dẫn trong kho mã.

Dự án được xây dựng và kiểm thử trên một Jeep Cherokee XJ đời 1994 với động cơ 4.0L và máy tính có mã phụ tùng 56030117. Các máy tính Chrysler và Jeep SBEC/OBD1 khác đời 1991–95 có thể tương tự, nhưng không đảm bảo tương thích. Luôn đo đầu nối chẩn đoán của chính xe bạn trước khi kết nối phần cứng.

Thiết lập máy quét chẩn đoán Jeep

Tính năng chính

  • Đọc mã lỗi của máy tính điều khiển động cơ.
  • Hiển thị các thông số động cơ theo thời gian thực và giá trị đã quy đổi.
  • Ghi dữ liệu thời gian thực vào các tệp trong pc/logs/.
  • Hỗ trợ các bài kiểm tra bộ chấp hành tích hợp trong máy tính điều khiển động cơ.
  • Có chế độ Jeep mô phỏng để kiểm thử phần mềm trên máy tính xách tay mà không cần xe.
  • Cung cấp sketch gỡ lỗi hệ thống dây Nano cùng firmware cầu nối chính.
  • Có các công cụ hỗ trợ tóm tắt nhật ký, quét thông số và kiểm tra mã phụ tùng máy tính.
  • Cung cấp các hướng dẫn dành cho tác nhân để hỗ trợ cài đặt và khắc phục sự cố.

Phần cứng cần có

Chi phí phần cứng dự kiến khoảng $15. Hãy chuẩn bị các linh kiện sau trước khi bắt đầu:

  • Một Arduino Nano clone 5 V có USB-C hoặc mini-USB và cáp tương ứng.
  • Một breadboard nhỏ.
  • Một vài dây nối breadboard.
  • Ba dây đủ dài để nối từ đầu nối dưới nắp ca-pô đến vị trí đặt máy tính xách tay.
  • Ba đầu cos dẹt đực 1/4 inch vừa với đầu nối chẩn đoán.
  • Một đồng hồ vạn năng.

Cảnh báo an toàn quan trọng

Khoang 6 có điện áp 12 volt khi bật khóa điện. Tuyệt đối không nối Arduino hoặc bất kỳ dây máy quét nào vào khoang 6.

Không xác định các khoang đầu nối dựa trên màu dây. Trên xe thử nghiệm, khoang 6 sử dụng cùng màu dây đen-trắng với dây nối đất. Việc kết nối nhầm có thể làm Nano hoặc máy tính xách tay tiếp xúc với điện áp của xe.

Trước khi đấu dây, hãy dùng đồng hồ vạn năng kiểm tra từng khoang. Đối chiếu số đo với các giá trị dự kiến trong docs/connector.md. Sơ đồ đấu dây đã kiểm thử của kho lưu trữ nối các chân Nano D10, D11 và GND lần lượt với các khoang 4, 3 và 2 của đầu nối chẩn đoán, nhưng trước tiên bạn phải xác minh đầu nối trên xe của mình.

Tùy chọn 1: Để tác nhân lập trình AI hướng dẫn thiết lập

Cách cài đặt dễ nhất là sử dụng Claude Code, Codex hoặc một tác nhân lập trình khác có khả năng hiểu kho mã.

  1. Sao chép kho xj-scanner vào máy tính xách tay.
  2. Mở kho trong tác nhân lập trình.
  3. Yêu cầu: Help me hook this up to my Jeep.
  4. Làm theo hướng dẫn từng bước.

Tác nhân có thể đọc AGENTS.md và các playbook trong .claude/skills/. Những hướng dẫn này bao gồm thiết lập phần mềm, lắp ráp breadboard, xác định các khoang đầu nối bằng đồng hồ đo và thực hiện lần đọc đầu tiên. Nếu hướng dẫn nào chưa rõ, hãy yêu cầu tác nhân giải thích bằng ngôn ngữ đơn giản hơn trước khi tiếp tục.

Tùy chọn 2: Cài đặt và chạy xj-scanner thủ công

1. Tạo môi trường Python

Từ thư mục gốc của kho, hãy tạo môi trường ảo và cài đặt các phần phụ thuộc của máy quét:

python3 -m venv .venv && .venv/bin/pip install -r pc/requirements.txt

2. Kiểm thử phần mềm trên máy tính xách tay ở chế độ demo

Trước khi kết nối với Jeep, hãy chạy máy quét với xe mô phỏng:

.venv/bin/python pc/xj_scan.py --cli DEMO

Thao tác này xác nhận phần Python hoạt động mà không cần Arduino hoặc máy tính điều khiển động cơ. Nếu chế độ demo không chạy, hãy xử lý sự cố phía máy tính xách tay trước khi chuyển sang đấu dây với xe.

3. Cài đặt Arduino CLI và lõi AVR

README cung cấp các lệnh sau cho macOS sử dụng Homebrew:

brew install arduino-cli
arduino-cli core install arduino:avr

Nếu bạn sử dụng hệ điều hành khác, hãy cài đặt arduino-cli bằng phương pháp phù hợp với nền tảng đó, sau đó cài đặt lõi arduino:avr.

4. Kết nối và xác định Nano

Kết nối Arduino Nano với máy tính xách tay qua USB. Xác định cổng nối tiếp của Nano, sau đó thay /dev/cu.usbserial-XXXX trong lệnh tải lên bằng cổng thực tế.

Ví dụ sử dụng mã bo mạch arduino:avr:nano:cpu=atmega328old, mã này chọn cấu hình bootloader cũ được nhiều Nano clone sử dụng.

5. Biên dịch và tải firmware cầu nối

arduino-cli compile --upload -p /dev/cu.usbserial-XXXX --fqbn arduino:avr:nano:cpu=atmega328old arduino/xj_bridge

Sketch xj_bridge biến Nano thành cầu nối liên lạc giữa máy quét trên máy tính xách tay và máy tính điều khiển động cơ Jeep.

6. Kiểm tra và lắp ráp hệ thống dây

Khi hệ thống dây của xe chưa được nối với Nano, hãy dùng đồng hồ vạn năng để xác định các khoang của đầu nối chẩn đoán. Tham khảo thư mục docs/ trong kho để xem số đo đầu nối, bố cục breadboard và chi tiết đấu dây.

Đối với xe đã kiểm thử, ba kết nối tín hiệu là:

  • Nano D10 nối với khoang 4 của đầu nối chẩn đoán.
  • Nano D11 nối với khoang 3 của đầu nối chẩn đoán.
  • Nano GND nối với khoang 2 của đầu nối chẩn đoán.

Không được tiếp tục chỉ dựa vào danh sách này. Hãy kiểm tra từng chân khoang trên xe của bạn và giữ tất cả dây tránh xa khoang 6.

7. Đọc mã lỗi và dữ liệu thời gian thực

Sau khi firmware và hệ thống dây đã được kiểm tra sẵn sàng, xoay chìa khóa điện sang vị trí ON và chạy:

.venv/bin/python pc/xj_scan.py --cli auto

Ở chế độ tự động, máy quét sẽ đọc mã lỗi rồi thu thập dữ liệu thời gian thực. Nhật ký được ghi trong pc/logs/.

Tìm hiểu bố cục kho lưu trữ

  • arduino/: Chứa sketch Nano chính xj_bridge và sketch gỡ lỗi hệ thống dây xj_sniff.
  • pc/: Chứa xj_scan.py, xử lý mã lỗi, dữ liệu thời gian thực, ghi nhật ký và kiểm tra cơ cấu chấp hành.
  • tools/: Chứa các tiện ích tóm tắt nhật ký, quét mọi tham số và kiểm tra mã phụ tùng của máy tính động cơ.
  • docs/: Tài liệu về đầu nối, hệ thống dây, giao thức giao tiếp, tham số, công thức chuyển đổi và quy trình khắc phục sự cố.
  • .claude/skills/: Chứa các hướng dẫn từng bước mà tác nhân AI có thể thực hiện cùng bạn.

Quy trình cơ bản

Phiên đầu tiên nên được thực hiện thận trọng theo thứ tự sau:

  1. Chạy chế độ DEMO để kiểm tra Python và các phần phụ thuộc.
  2. Nạp xj_bridge vào Nano.
  3. Ngắt hệ thống dây phía xe và đo từng khoang đầu nối.
  4. Xác nhận các khoang nối đất và giao tiếp theo tài liệu.
  5. Lắp mạch trên breadboard và kiểm tra lại từng kết nối.
  6. Xoay chìa khóa sang ON nhưng không khởi động động cơ.
  7. Chạy máy quét với --cli auto.
  8. Xem lại các mã lỗi được báo cáo và xác nhận nhật ký xuất hiện trong pc/logs/.

Mẹo nâng cao

Sử dụng sketch gỡ lỗi khi giao tiếp thất bại

Sketch arduino/xj_sniff được cung cấp để chẩn đoán hệ thống dây. Hãy sử dụng nó cùng tài liệu khắc phục sự cố trong docs/ khi cầu nối không thể giao tiếp với máy tính động cơ. Tránh thay đổi hệ thống dây khi mạch đang được cấp điện.

Tóm tắt nhật ký hành trình

Sau khi ghi dữ liệu thời gian thực, hãy kiểm tra các công cụ hỗ trợ trong tools/. Kho lưu trữ có một tiện ích tóm tắt nhật ký giúp việc xem lại bản ghi dài dễ dàng hơn. Hãy làm việc trên bản sao của nhật ký nếu bạn muốn giữ nguyên dữ liệu gốc.

Quét các tham số có sẵn một cách cẩn trọng

Một công cụ hỗ trợ có thể quét mọi tham số mà dự án biết. Hãy tham khảo tài liệu về giao thức và tham số trước khi sử dụng để hiểu rõ yêu cầu được gửi đi và cách chuyển đổi từng giá trị thô.

Kiểm tra mã phụ tùng của máy tính động cơ

Vì dự án đã được kiểm thử trên máy tính động cơ 56030117, hãy sử dụng công cụ hỗ trợ mã phụ tùng được cung cấp khi kiểm tra một xe khác. Một máy tính SBEC/OBD1 khác có thể hoạt động tương tự, nhưng README không đảm bảo hỗ trợ.

Thận trọng với các bài kiểm tra cơ cấu chấp hành

Máy quét PC hỗ trợ các bài kiểm tra cơ cấu chấp hành tích hợp. Những bài kiểm tra này có thể điều khiển phần cứng của xe, vì vậy chỉ chạy chúng khi bạn hiểu bài kiểm tra cụ thể, xe được đặt ở vị trí an toàn và các bộ phận chuyển động hoặc đang được cấp điện không thể gây thương tích hay hư hỏng.

Sử dụng tài liệu chuyển đổi chi tiết

Thư mục docs/ mô tả các tham số có sẵn và công thức chuyển đổi. Hãy tham khảo tài liệu này khi diễn giải các giá trị đọc thô, đặc biệt nếu bạn đang phân tích hiệu chỉnh nhiên liệu hoặc so sánh một giá trị với công cụ quét khác.

Danh sách kiểm tra khắc phục sự cố

  • Xác nhận --cli DEMO hoạt động trước khi chẩn đoán kết nối với xe.
  • Kiểm tra Nano có xuất hiện trên cổng USB nối tiếp dự kiến hay không.
  • Xác nhận firmware đã được nạp với lựa chọn bootloader Nano chính xác.
  • Đo đầu nối chẩn đoán thay vì dựa vào màu dây.
  • Đảm bảo không có dây nào được nối vào khoang 6.
  • Đối chiếu các đường mạch D10, D11 và GND trên breadboard với tài liệu hệ thống dây.
  • Sử dụng xj_sniff và hướng dẫn khắc phục sự cố khi hệ thống điện có vẻ đúng nhưng giao tiếp vẫn thất bại.
  • Hãy nhớ rằng các máy tính Chrysler hoặc Jeep chưa được kiểm thử có thể khác với xe Cherokee thử nghiệm đời 1994.

Kết luận

xj-scanner cung cấp một phương thức chi phí thấp để khám phá máy tính động cơ OBD1 của một chiếc Jeep tương thích bằng laptop và Arduino Nano. Hãy bắt đầu với chế độ demo, kiểm tra từng khoang đầu nối bằng đồng hồ vạn năng và tuân thủ chặt chẽ tài liệu của kho lưu trữ. Đây là phần mềm sở thích GPLv3 giao tiếp với thiết bị điện tử của xe, vì vậy hãy tự chịu rủi ro khi sử dụng và luôn đặt an toàn điện lên hàng đầu.

Dự án được xây dựng dựa trên các công trình về giao thức, tham số, chuyển đổi và mã lỗi từ ChryslerScanner, trong đó việc chuyển đổi hiệu chỉnh nhiên liệu được tham khảo từ mã SBEC đã được dịch ngược.