Mục lục:
Video: Thrustmaster Warthog Slew Sensor I2C Nâng cấp: 5 bước
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-13 06:58
Đây là hướng dẫn sơ bộ về cách giao tiếp với giao thức I2C được sử dụng trên cảm biến quay bướm ga ThrustmasterWarthog. Điều này có thể được sử dụng để nâng cấp từ ministick tiêu chuẩn khá vô dụng lên một thứ gì đó tốt hơn, Nhưng vẫn sử dụng bộ điều khiển USB tiêu chuẩn trong bộ điều tiết. Điều này dựa trên một bài đăng gốc về:
forums.eagle.ru/showthread.php?t=200198
Hiểu cơ bản nếu giao thức I2C được giả định cho hầu hết các bước sau đây, để có lời giải thích tuyệt vời, hãy tham khảo:
learn.sparkfun.com/tutorials/i2c
Bất kỳ câu hỏi cụ thể nào, hãy hỏi tôi, và tôi sẽ cố gắng bổ sung thêm thông tin có liên quan vào điều khó hiểu này trong tương lai. Điều này không có nghĩa là hoàn thành, nhưng phải là một điểm khởi đầu tốt.
Một số mã Arduino demo được cung cấp nhưng vui lòng chỉ lấy đây làm tài liệu tham khảo vì Arduino 5V bình thường không thể được sử dụng mà không cần sửa đổi.
Bước 1: Chi tiết cảm biến hiện có
Cảm biến xoay ministick đi kèm với van tiết lưu Thrustmaster Wathog nổi tiếng là một trong những điểm yếu lớn nhất với một sản phẩm xuất sắc khác. Đã có một số nỗ lực của mọi người để thay thế nó bằng một thứ gì đó tốt hơn trong những năm qua, nhưng hầu hết đều vấp phải những khó khăn khi giao tiếp với giao thức I2C kỹ thuật số được sử dụng bởi nó.
Cảm biến chính xác được sử dụng trong van tiết lưu Warthog là N35P112 - EasyPoint, sử dụng IC cảm biến hiệu ứng hội trường AS5013 do AMS sản xuất.
Bảng dữliệu:
ams.com/eng/Products/Magnetic-Position-Sens…
Điều thú vị là đơn vị đã từng được Sparkfun cung cấp dưới dạng mô-đun đột phá:
www.sparkfun.com/products/retired/10835
Cảm biến được dùng cho các ứng dụng điều hướng trong những thứ như điện thoại di động và cực kỳ rẻ. Theo ý kiến của tôi, không thể chấp nhận được trong một cái gì đó có giá gần 500 đô la.
Bước 2: Sơ đồ chân
Cảm biến kết nối với PCB trong bộ điều tiết bên phải thông qua đầu nối micro 5 chân.
Sơ đồ chân như sau:
-
Vcc + 3.3VDC (
Được điều chỉnh cục bộ từ 5V bởi một bộ điều chỉnh tuyến tính ở phía bên kia của bảng, ngay sau đầu nối, nên tốt để quay vòng 20mA, nhưng tôi không có cách nào kiểm tra điều này)
- I2C SDA
- I2C SCL
- GND
- Nút 1 (Thường cao, kéo lên 5V bên trong)
Bước 3: Mô tả giao thức
Cảm biến hoạt động trên địa chỉ I2C 0x41 - tất cả các lệnh ghi hoặc đọc đều bắt đầu bằng địa chỉ này.
Khi bướm ga được kết nối với máy tính, có một đoạn mở đầu khoảng 250ms trên bus I2C đến địa chỉ 0x40, tôi cho rằng đây là phiên bản cảm biến khác hoặc thứ gì đó tương tự, nhưng nó không liên quan đến chúng tôi.
Dữ liệu được gửi trên bus I2C trong sử dụng bình thường ở bên dưới, điều này phải được bộ vi điều khiển của chúng tôi mô phỏng để nói chuyện với van tiết lưu.
Thiết lập - Dữ liệu này được gửi một lần, khoảng 500ms sau khi kết nối USB, để thiết lập cảm biến gốc để sử dụng.
Ghi chính: 0x0F (Thanh ghi điều khiển 1)
Dữ liệu: 0x02 0b0000 0010 (bắt đầu thiết lập lại mềm)
Ghi chính: 0x0F (Thanh ghi điều khiển 1)
Đọc chính: 0xF1 0b1111 0001 (đặt lại thành 11110000, lsb 1 cho biết dữ liệu hợp lệ đã sẵn sàng để đọc. Chúng tôi phải trả lời chính xác lệnh này để được công nhận là thiết bị phụ hợp lệ)
Ghi chính: 0x2E (Thanh ghi điều khiển 2)
Dữ liệu: 0x 86 (điều này chỉ đặt hướng của nam châm trong cảm biến ban đầu)
Ghi chính: 0x0F (Thanh ghi điều khiển 1)
Dữ liệu: 0x 80 0b1000 0000 (Đặt thiết bị ở chế độ không tải (đo tự động, không ở chế độ năng lượng thấp))
Vòng lặp: Điều này được lặp lại ở khoảng 100Hz để lấy dữ liệu cảm biến.
Viết chính: 0x10 (thanh ghi X)
Master Read: (slave gửi dữ liệu X, giá trị 8 bit bổ sung của 2)
Viết chính: 0x11 (thanh ghi Y)
Master Read: (slave gửi dữ liệu Y, giá trị 8 bit bổ sung của 2)
Phần liên quan của kết xuất giao thức từ trình phân tích logic:
Thiết lập Ghi vào [0x82] + ACK
0x0F + ACK
0x02 + ACK
Thiết lập Ghi vào [0x82] + ACK
0x0F + ACK
Thiết lập Đọc tới [0x83] + ACK
0xF1 + NAK
Thiết lập Ghi vào [0x82] + ACK
0x2E + ACK
0x86 + ACK
Thiết lập Ghi vào [0x82] + ACK
0x0F + ACK
0x80 + ACK
Thiết lập Ghi vào [0x82] + ACK
0x10 + ACK
Thiết lập Đọc tới [0x83] + ACK 0xFC + NAK
Thiết lập Ghi vào [0x82] + ACK 0x11 + ACK
Thiết lập Đọc tới [0x83] + ACK 0xFF + NAK
Bước 4: Mã Arduino
Mã Arduino đính kèm có thể được sử dụng để mô phỏng cảm biến.
Xin lưu ý: Hầu hết các bảng Arduino chạy 5V, điều này cần một bảng tương thích hoặc sửa đổi 3.3V để hoạt động để tránh làm hỏng phím điều khiển của bạn.
Bước 5: Hiệu chỉnh
Khi cảm biến mới của bạn đã được trang bị, cần hiệu chỉnh van tiết lưu.
Để hiệu chỉnh bướm ga của bạn, bạn sẽ sử dụng công cụ hiệu chỉnh bướm ga. Bạn có thể tải xuống phần mềm này từ một số nguồn như:
forums.eagle.ru/showthread.php?t=65901
Không sử dụng hiệu chuẩn cửa sổ.
Để tận dụng tối đa bản mod, bạn cần thay đổi một vài giá trị trong tệp cấu hình hiệu chỉnh của mình.
Thay đổi:
Standard_DZ_SX = 0x10;
Chuẩn_DZ_SY = 0x10;
Các dòng trong A10_calibration.txt tới:
Standard_DZ_SX = 0x01;
Standard_DZ_SY = 0x01;
Điều này sẽ thay đổi thành vùng chết trên điều khiển xoay vòng từ 10 thành 1 và cho phép kiểm soát tốt hơn nhiều. Bạn có thể chơi với cài đặt này, sau đó hiệu chỉnh lại và xem những gì bạn thích nhất.