Mục lục:
- Bước 1: Bạn sẽ cần:
- Bước 2: Lấy bộ điều khiển ra ngoài
- Bước 3: Dán các thành phần vào vị trí
- Bước 4: Hàn dây điện vào
- Bước 5: Lập trình Arduino
- Bước 6: Lắp ráp lại Bộ điều khiển
- Bước 7: Những cải tiến có thể xảy ra
Video: Bộ điều khiển Xbox 360 Gia tốc / Chỉ đạo con quay hồi chuyển Mod: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Tôi đã chơi Assetto Corsa bằng bộ điều khiển Xbox 360 của mình. Thật không may, tay lái bằng cần điều khiển tương tự rất khó sử dụng và tôi không có không gian để thiết lập bánh xe. Tôi đã cố gắng nghĩ cách có thể gắn một cơ cấu lái tốt hơn vào bộ điều khiển, khi tôi chợt nhận ra rằng tôi có thể sử dụng toàn bộ bộ điều khiển làm vô lăng.
Thanh tương tự có hai chiết áp. Một đo chuyển động dọc và một đo chuyển động ngang. Nó đặt 1,6V qua mỗi cái và đo điện áp được tạo ra ở cần gạt nước để xác định thanh đã di chuyển bao nhiêu. Điều này có nghĩa là có thể kiểm soát chuyển động của thanh gạt bằng cách cấp một điện áp cụ thể vào chốt gạt nước. (thông tin thêm tại đây:
Bản mod này sử dụng Arduino để tính toán góc từ các kết quả đo gia tốc và chuyển nó thành chuyển động của thanh analog thông qua DAC. Do đó, nó sẽ hoạt động với bất kỳ trò chơi nào sử dụng thanh analog làm đầu vào.
Bước 1: Bạn sẽ cần:
Công cụ:
- Hàn sắt
- Hàn
- Mút hàn / bím tóc
- Thợ thoát y dây
- Tua vít, có thể là Torx tùy thuộc vào các vít trong bộ điều khiển của bạn (của tôi là đầu chéo)
- Keo (tốt nhất không phải là keo siêu mạnh để có thể tháo rời sau này)
- Bộ chuyển đổi USB sang nối tiếp để lập trình Arduino
Vật liệu:
- Bộ điều khiển Xbox 360 (duh!)
- Arduino Pro Mini (hoặc một bản sao) (tốt nhất là 3,3V. Nếu bạn sử dụng phiên bản 5V, bạn có thể cần một bộ chuyển đổi điện áp nâng cấp)
- Một con quay hồi chuyển / gia tốc kế MPU-6050
- Một MCP4725 DAC (hai nếu bạn muốn điều khiển cả hai trục)
- Một số dây mỏng
- Một bảng mạch để bạn có thể kiểm tra mọi thứ trước khi hàn (tùy chọn, nhưng được khuyến nghị)
Bước 2: Lấy bộ điều khiển ra ngoài
Có bảy con vít bạn phải tháo. Sáu trong số đó là hiển nhiên, nhưng thứ bảy nằm sau một nhãn dán. Tôi cho rằng việc loại bỏ nó sẽ làm mất hiệu lực bảo hành của bạn, vì vậy hãy tự chịu rủi ro khi tiếp tục. Nhiều người hướng dẫn nói rằng bạn cần một tuốc nơ vít Torx, nhưng của tôi thì quá khó, vì vậy hãy kiểm tra bộ điều khiển của bạn.
Sau đó, cẩn thận cạy nắp sau ra. Nếu bạn cạy ra phía trước, các nút sẽ tràn ra ngoài và có thể đi khắp phòng. Nâng nó từ dưới lên. Sau đó rút phích cắm của hai động cơ rung. (cái có trọng lượng nhỏ nên ở bên trái và cái có trọng lượng lớn ở bên phải) Lấy PCB ra và tháo các nắp cao su trên các que tương tự. Họ chỉ đơn giản là kéo ra.
Điều tiếp theo là loại bỏ thanh tương tự bên trái để nó không ảnh hưởng đến đầu vào của chúng tôi, nhưng cơ chế kích hoạt bên trái đang cản trở. Để tháo nó ra, bạn phải tháo ba chân của chiết áp ra khỏi mặt trước của bo mạch, sau đó tháo cơ chế ra khỏi PCB.
Tiếp theo, hủy bỏ 14 chân giữ thanh tương tự bên trái. Sau đó rút que ra.
Bước 3: Dán các thành phần vào vị trí
Bạn sẽ nhận thấy có khá nhiều khe hở giữa mặt sau của PCB và vỏ máy. Điều này giúp bạn có thể đặt tất cả phần cứng vào trong trường hợp mà không cần tháo bất cứ thứ gì.
Tôi chỉ nhận ra sau đó, nhưng đây sẽ là thời điểm tốt để hủy bỏ nút đặt lại trên Arduino. Nếu bạn không làm như vậy, nó sẽ đè lên mặt sau của vỏ và khiến dự án ngừng hoạt động nếu bạn siết chặt một trong các con vít khi lắp ráp lại.
Tôi dán một miếng thẻ mỏng vào mặt sau của mỗi PCB để cách nhiệt, sau đó dán nó vào PCB của bộ điều khiển. Tôi rất ngại dùng keo, nhưng không thể nghĩ ra cách nào tốt hơn để làm điều đó.
Các vị trí trong hình ảnh là sự kết hợp tốt nhất mà tôi có thể tìm thấy. Arduino nằm ở bên trái, với cạnh có nút đặt lại nằm ngang với miếng nhựa từ cơ chế kích hoạt bên phải, với mặt còn lại dưới dây và với góc càng gần đầu nối màu trắng càng tốt. Có một chỗ phồng nhẹ trong trường hợp, nhưng tôi không thể tìm thấy một nơi tốt hơn để đặt nó.
Gia tốc kế ở bên phải của dây. Nó phải phẳng và thẳng nhất có thể, nếu không bạn có thể phải viết một số mã sau đó để bù đắp cho phần bù đắp. Lưu ý rằng có một số miếng nhựa nhô ra ở mặt sau của ốp lưng mà bạn phải cẩn thận để tránh. Tôi thấy rằng bạn có thể đặt một thứ gì đó dính và nhiều màu sắc, chẳng hạn như son môi, lên những miếng nhựa nhô ra, sau đó đặt nắp sau lên để xem nó để lại dấu vết ở đâu.
(Các) DAC đi ở góc dưới cùng bên trái. Ở đây có đủ khoảng trống để xếp hai DAC, một chiếc chồng lên nhau, nếu bạn muốn điều khiển cả hai trục. Bạn không cần phải dán chúng xuống. Chúng sẽ ở lại vị trí của chúng chỉ với các kết nối được hàn. Nếu bạn đang dính thẻ giữa chúng, hãy đảm bảo rằng bạn cắt thẻ để có thể truy cập SCL, SDA, VCC và GND, vì bạn sẽ truy cập chúng từ cả hai phía.
Nếu bạn sử dụng hai DAC, đừng quên chuyển đổi jumper địa chỉ và tắt các điện trở kéo lên trên một trong số chúng, như được mô tả tại đây: https://learn.sparkfun.com/tutorials/mcp4725-digital-to-analog -converter-hookup-guide
Bước 4: Hàn dây điện vào
Bây giờ bạn phải kết nối mọi thứ. VCC, GND, SDA và SCL từ tất cả 2/3 thiết bị phải được kết nối với VCC, GND, A4 và A5 tương ứng trên Arduino. DAC là phần phức tạp nhất. Nếu bạn có hai, bạn phải kết nối chúng với nhau, trong khi rời khỏi một nơi nào đó, bạn có thể kết nối nguồn và đường dây với gia tốc kế, trong khi giữ dây OUT riêng biệt.
Chân OUT trên DAC phải được kết nối với chân trên PCB của bộ điều khiển, chân này từng là chân chiết áp ngang ở giữa cho thanh analog. Đó là, nơi có thanh tương tự, có một hàng ba chân ở trên cùng. Kết nối nó với cái ở giữa. Nếu bạn có một DAC khác, hãy kết nối nó với chân chiết áp dọc (hàng bên trái) theo cách tương tự. Bạn sẽ không thể truy cập các chân từ phía sau khi thay thế bộ kích hoạt, vì vậy bạn phải chạy dây đến phía trước của bảng. Có một "bức tường" bằng nhựa hình tròn xung quanh khu vực thanh tương tự, nhưng may mắn thay, có một khoảng trống thuận tiện trong đó để bạn có thể luồn dây qua. Đảm bảo rằng các dây không vướng vào trụ vít ở phần trước của vỏ máy.
Kế hoạch ban đầu của tôi là cấp nguồn cho Arduino bằng nguồn 5V từ cáp USB được kết nối với chân RAW, nhưng khi tôi thử nó, nó không hoạt động. Arduino không chạy bất cứ thứ gì và cả Arduino và bộ điều khiển đều tắt sau vài giây. Tuy nhiên, tôi phát hiện ra rằng có một đầu ra 3.3V ổn định từ hai chân ở mặt trước của bo mạch gần ổ cắm ngoại vi màu đen, có lẽ là để cấp nguồn cho các thiết bị ngoại vi. Nó hoạt động với cả VCC và RAW, nhưng tôi chọn VCC vì nó đã có điện áp phù hợp và vì nó cho phép tôi hàn nó vào dây VCC trên DAC đã gần cuối bảng và tiết kiệm dây.
Cần biết rằng có rất nhiều phần nhựa nhô ra từ vỏ máy mà bạn phải thao tác xung quanh, nhưng nếu bạn dán dây vào vị trí, bạn chỉ phải lo lắng về chúng một lần.
Tất cả những điều này rất khó diễn tả bằng lời, vì vậy tôi đã đưa vào các bức tranh và một sơ đồ thô sơ.
Bước 5: Lập trình Arduino
Bây giờ bạn phải lập trình Arduino. Điều này yêu cầu di chuyển cáp USB trên bộ điều khiển để bạn có thể truy cập các chân nối tiếp trên Arduino. Tôi đã bao gồm mã mà tôi đã sử dụng. Nó yêu cầu thư viện Adafruit MCP4725, có thể tìm thấy ở đây:
Tương tự như vậy, mã cho phép bạn đi qua toàn bộ phạm vi chuyển động của thanh tương tự bằng cách di chuyển bộ điều khiển 90 độ sang trái đến 90 độ sang phải và giữ nó ở giữa bằng cách giữ nó phẳng.
Nó nhận được góc của bộ điều khiển bằng cách tính toán tiếp tuyến nghịch đảo của lực g trục X chia cho lực g trục Z. Điều này có nghĩa là nó hoạt động nếu bộ điều khiển thẳng đứng, phẳng hoặc bất kỳ góc nào ở giữa. (thêm thông tin tại đây:
Nó hoạt động trên bộ điều khiển của tôi, nhưng các bộ điều khiển khác có thể yêu cầu điện áp khác nhau, khiến nó bị lệch. Tôi nghĩ rằng cách tốt nhất để tìm dải điện áp là dùng thử và sai. Nhiều trò chơi sẽ hiển thị cho bạn một thanh trượt cho chuyển động của thanh tương tự, nhưng cách chính xác nhất mà tôi đã tìm thấy để xác định chuyển động là với jstest trên Linux. (https://wiki.archlinux.org/index.php/Gamepad#Joystick_API) Nó cung cấp cho bạn một số từ -32, 767 đến 32, 767 chứ không phải là một hình ảnh, vì vậy bạn biết chính xác vị trí của cây gậy. Cắm cả bộ điều khiển và Arduino USB vào bộ chuyển đổi nối tiếp, tải jstest và thử các giá trị DAC khác nhau cho đến khi bạn đạt đến đỉnh và cuối của dải và ghi chú lại từng giá trị. Đối với tôi, đó là 1, 593 - 382.
Đặc biệt quan tâm là dòng 36:
dacvalue = (controllerangle + 2,5617859169446084418) / 0,0025942135867793503208 + 0,5;
Nó không rõ ràng ngay lập tức nó làm gì. Đơn giản, nó lấy góc của bộ điều khiển (đo bằng radian và từ ~ 1,57 đến ~ -1,57) và chuyển nó thành giá trị từ 1, 593 đến 382 cho DAC. Nếu bạn có dải DAC khác, bạn sẽ cần thay đổi dòng đó.
Dòng có thể được viết là:
dacvalue = (controllerangle +) / + 0,5;
Với và là những con số bạn cần thay đổi. bằng phạm vi của góc bộ điều khiển (pi) chia cho tổng phạm vi giá trị DAC. (phần trên cùng của dải trừ phần dưới của dải) Điều này giúp bạn có thể thay đổi điện áp, mặc dù kết quả sẽ nằm ngoài dải mà bạn muốn. Đó là lý do tại sao bạn cần. bằng nhân với đáy của phạm vi cộng với một nửa phạm vi chuyển động của bộ điều khiển. (pi / 2) Thêm một nửa phạm vi chuyển động để đảm bảo rằng đó không phải là số âm và thêm nhân với dưới cùng của phạm vi đảm bảo rằng nó được đồng bộ hóa với phạm vi bạn muốn.
Khi chuyển đổi số thập phân thành số nguyên, C ++ không làm tròn. Thay vào đó, nó cắt bỏ số thập phân, do đó 9,9 trở thành 9. Thêm 0,5 vào cuối đảm bảo bất kỳ thứ gì trên một nửa sẽ chuyển sang số nguyên tiếp theo, do đó, nó sẽ làm tròn.
Khi bạn đã tải lên chương trình của mình, hãy đảm bảo rằng nó hoạt động với jstest.
Bước 6: Lắp ráp lại Bộ điều khiển
Đặt bộ điều khiển lại với nhau giống như cách bạn đã tách nó ra, trừ thanh tương tự bên trái. Nó sẽ hoạt động ngay bây giờ. Tôi thấy không có độ trễ đáng chú ý và nó tốt hơn rất nhiều so với việc sử dụng thanh analog. Bởi vì nó sử dụng một gia tốc kế, nó bị ảnh hưởng bởi các chuyển động đột ngột, nhưng bạn phải cố gắng hết sức để nhận thấy nó.
Bước 7: Những cải tiến có thể xảy ra
Có một số cải tiến có thể được thực hiện. Bao gồm các:
- Sử dụng dây điện từ ít rườm rà hơn
- Khắc mọi thứ lên một PCB được thiết kế để vừa với vỏ bộ điều khiển
- Gắn lại thanh tương tự bên trái và kết nối các chân với đầu vào tương tự trên Arduino để chúng có thể được sử dụng để điều chỉnh Arduino
- Lấy phần vỏ sau cho bộ điều khiển không dây và đặt dự án vào ngăn chứa pin (điều này sẽ yêu cầu cắt một lỗ cho cáp USB)
Đề xuất:
Stone Lcd + Cảm biến con quay hồi chuyển gia tốc: 5 bước
Cảm biến con quay hồi chuyển gia tốc Stone Lcd +: Tài liệu này sẽ dạy bạn cách sử dụng cảm biến con quay hồi chuyển gia tốc STM32 MCU + MPU6050 + màn hình cổng nối tiếp STONE STVC070WT cho DEMO.STVC070WT là màn hình nối tiếp của công ty chúng tôi, sự phát triển của nó rất đơn giản, dễ sử dụng , bạn có thể đến với chúng tôi
MPU6050-Gia tốc kế + Khái niệm cơ bản về cảm biến con quay hồi chuyển: 3 bước
Thông tin cơ bản về MPU6050-Accelerometer + Gyroscope Sensor: MPU6050 là một cảm biến rất hữu ích. Mpu 6050 là một IMU: Đơn vị đo lường quán tính (IMU) là một thiết bị điện tử đo lường và báo cáo lực cụ thể của cơ thể, tốc độ góc và đôi khi là hướng của cơ thể, sử dụng kết hợp
Con quay hồi chuyển gia tốc 3 trục GY-521 MPU6050 Hướng dẫn sử dụng mô-đun 6DOF: 4 bước
Con quay hồi chuyển gia tốc 3 trục GY-521 MPU6050 Hướng dẫn sử dụng mô-đun 6DOF: Mô tả Mô-đun đơn giản này chứa mọi thứ cần thiết để giao tiếp với Arduino và các bộ điều khiển khác thông qua I2C (sử dụng thư viện Wire Arduino) và cung cấp thông tin cảm biến chuyển động cho 3 trục - X, Y và Z .Đặc điểm kỹ thuật Phạm vi đo tốc độ: ± 2, ±
Trình mô phỏng trò chơi điện thoại thông minh- Chơi trò chơi Windows bằng IMU điều khiển bằng cử chỉ, Gia tốc kế, Con quay hồi chuyển, Từ kế: 5 bước
SmartPhone Game Simulator- Chơi Windows Games Sử dụng IMU Điều khiển bằng cử chỉ, Gia tốc kế, Con quay hồi chuyển, Từ kế: Hỗ trợ dự án này: https://www.paypal.me/vslcreations bằng cách quyên góp cho mã nguồn mở & hỗ trợ để phát triển hơn nữa
Arduino Nano và Visuino: Chuyển đổi gia tốc thành góc từ cảm biến gia tốc và con quay hồi chuyển MPU6050 I2C: 8 bước (có hình ảnh)
Arduino Nano và Visuino: Chuyển đổi gia tốc thành góc từ cảm biến gia tốc kế và con quay hồi chuyển MPU6050 I2C: Một thời gian trước, tôi đã đăng một hướng dẫn về cách bạn có thể kết nối Cảm biến gia tốc, con quay hồi chuyển và la bàn MPU9250 với Arduino Nano và lập trình nó với Visuino để gửi dữ liệu gói và hiển thị nó trên Phạm vi và Dụng cụ trực quan. Gia tốc kế gửi X, Y,