Mục lục:

Thrustmaster Warthog Slew Sensor I2C Nâng cấp: 5 bước
Thrustmaster Warthog Slew Sensor I2C Nâng cấp: 5 bước

Video: Thrustmaster Warthog Slew Sensor I2C Nâng cấp: 5 bước

Video: Thrustmaster Warthog Slew Sensor I2C Nâng cấp: 5 bước
Video: Hardware Review: Delta Sim Electronics Thumbstick Upgrade für Thrustmaster HOTAS Warthog 2024, Tháng Chín
Anonim
Thrustmaster Warthog Slew Sensor I2C Nâng cấp
Thrustmaster Warthog Slew Sensor I2C Nâng cấp

Đâ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ó

Chi tiết cảm biến hiện có
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

Sơ đồ chân
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:

  1. 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)

  2. I2C SDA
  3. I2C SCL
  4. GND
  5. Nút 1 (Thường cao, kéo lên 5V bên trong)

Bước 3: Mô tả giao thức

Mô tả giao thức
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
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

Sự định cỡ
Sự định cỡ

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.

Đề xuất: