Spisu treści:
- Krok 1: Podłączanie MPU6050 i przycisków do płytki Arduino Leonardo
- Krok 2: Budowa bazy joysticka
- Krok 3: Skonfiguruj Arduino IDE
- Krok 4: Program Arduino
- Krok 5: Testowanie joysticka
Wideo: DIY Joystick USB MPU-6050: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Dzięki Microsoft Flight Simulator 2020 szybko zdałem sobie sprawę, jak trudno jest używać klawiatury do latania planem. Szukając w Internecie, nie mogłem znaleźć rozsądnego cenowo joysticka do kupienia. Większość sprzedawców internetowych nie miała ich w magazynie. Popularność MS Flight Simulator i pandemia COVID 19 zniszczyła wszystkie istniejące zapasy joysticków. Moją jedyną opcją było zbudowanie go samemu.
Większość joysticków używa potencjometrów u podstawy do określania kątów joysticka i wysyłania informacji o osiach x i y z powrotem do komputera. Działa to dobrze, ale komplikuje konstrukcję joysticka. i z biegiem czasu. potencjometry mogą się zużyć. Zamiast używać potencjometrów, zdecydowałem się na płytkę czujnika akcelerometru/żyroskopu, aby przesyłać do komputera informacje o kątach drążka.
Wraz z popularnością różnych mikroprocesorów Arduino i różnych czujników, koszt budowy projektu Arduino staje się znacznie bardziej przystępny. Jedną z powszechnie stosowanych płyt czujnika akcelerometru/żyroskopu jest MPU-6050. W Kanadzie kosztuje około 7 dolarów CAN w Amazon. Dostałem mój z eBay wysłany z Chin za dużo mniej, ale czas wysyłki wynosił 3 miesiące lub dłużej.
www.amazon.ca/Neuftech-MPU-6050-3-Żyroskop…
Dowolna płyta Arduino będzie działać, ale użycie płyty opartej na ATmega32u4 będzie znacznie prostsze, ponieważ ATmega32u4 ma natywną obsługę HID (Human Interface Device). Po zaprogramowaniu płytki można jej używać na dowolnym komputerze z systemem Windows 10 i nie jest wymagane żadne dodatkowe oprogramowanie. Windows 10 automatycznie rozpozna go jako joystick po podłączeniu USB. (Użycie płyty Arduino innego typu jest zbyt skomplikowane dla tego prostego projektu kompilacji).
Wybieram płytkę Arduino Leonardo. 17 USD CAN od Amazon.
www.amazon.ca/KEYESTUDIO-Leonardo-Developm…
Te 2 urządzenia to główne wymagania dla tego projektu. Niezbędne są również inne mniejsze elementy, takie jak okablowanie i przyciski. W tym projekcie dla uproszczenia użyłem tylko 2 przycisków.
Rękojeść joysticka wykonana jest ze złomowanej rury wodnej PCV. Można go łatwo zastąpić dowolną krótką sztywną rurą.
Podstawą joysticka jest odbojnik sprężynowy zamocowany na kawałku drewna.
Odbojnik sprężynowy jest dostępny w Home Depot za 2,83 USD.
www.homedepot.ca/product/everbilt-spring-d…
Krok 1: Podłączanie MPU6050 i przycisków do płytki Arduino Leonardo
W MPU 6050 używane są tylko 4 połączenia. Są one oznaczone jako VCC, GND, SCL i SDA.
Podłącz VCC do 5v lub 3,3v na Arduino Leonardo. (MPU 6050 może używać 5 V lub 3,3 V. Nie ma znaczenia)
Podłącz GND do dowolnego GND w Arduino Leonardo.
Połącz SCL z SCL w Arduino Leonardo.
Podłącz SDA do SDA na Arduino Leonardo.
Używam tylko 2 przycisków do tego celu demonstracyjnego.
Pierwszy przycisk służy do resetowania środka joysticka. W tym przykładzie jeden koniec przycisku jest podłączony do GND, a drugi do PIN 13.
Drugi przycisk służy jako przycisk joysticka. W tym przykładzie jest podłączony do PIN 9 i GND.
W razie potrzeby możesz dodać dodatkowe przyciski w swoim projekcie.
Krok 2: Budowa bazy joysticka
Znajdź kawałek drewna. Im cięższy, tym lepiej. Dzięki temu podstawa joysticka będzie bardziej stabilna.
Przykręć sprężynowy ogranicznik drzwi na środku drewnianego bloku, jak pokazano na rysunku.
Użyj kawałka krótkiej rury jako uchwytu joysticka. Użyłem skrobanej rury PCV. Ułóż przewód tak, aby czujnik przyspieszenia/żyroskop znajdował się na górze rury.
Następnie nałóż rurę na sprężynowy ogranicznik drzwi. Użyłem taśmy elektrycznej do przyklejenia czujnika na górze.
Krok 3: Skonfiguruj Arduino IDE
Pobierz i zainstaluj Arduino IDE.https://www.arduino.cc/en/Main/Software
Do tego projektu użyłem Arduino 1.8.13. Do tego projektu można również użyć Arduino Web Editor.
Używane są 2 biblioteki.
1. MPU6050_tockn według tockn
github.com/Tockn/MPU6050_tockn
lub możesz go znaleźć w menu "Zarządzaj biblioteką".
2. Biblioteka joysticków autorstwa Mateusza Heironimusa
github.com/MHeironimus/ArduinoJoystickLibr…
Ten jest obecnie dostępny tylko na stronie GitHub.
Kliknij Pobierz kod i Pobierz ZIP. Wyodrębnij plik ZIP do katalogu bibliotek Arduino.
W moim przypadku jest to E:\PinChung\Documents\Arduino\biblioteki
Krok 4: Program Arduino
Załaduj Pin_Joystick.ino do Arduino IDE, skompiluj i prześlij na płytę Leonardo.
Upewnij się, że wybrana jest płyta Arduino Leonardo, a numer portu jest wybrany do odpowiedniego COM: w menu Narzędzia.
Od pewnego czasu zauważyłem, że nie udało się wgrać programu, a kod błędu portu COM nie jest dostępny. Kilkakrotne naciśnięcie przycisku resetowania na płycie Leonardo podczas kompilacji może pomóc. Również ponowne uruchomienie systemu Windows 10 może również pomóc w zwolnieniu portu COM.
Po wgraniu programu na płytę Leonardo, Windows 10 powinien automatycznie wykryć Leonardo Joystick. W pasku wyszukiwania systemu Windows 10 wpisz Kontrolery gier, uruchom Skonfiguruj kontrolery gier USB.
wybierz Leonardo Joystick i kliknij Właściwości. Ruch joysticka i przycisk joysticka nr 1 powinien zostać przejęty przez system Windows 10.
Jeśli joystick nie jest wyśrodkowany, kiedy go puścisz, kliknij właśnie utworzony środkowy przycisk resetowania joysticka. Kontrolery gier USB powinny wyświetlać kropkę joysticka na środku. Nie ma potrzeby kalibrowania joysticka w programie USB Game Controller.
Uwaga boczna: Dla tych, którzy nie znają Arduino Leonardo, gdy urządzenie jest skonfigurowane jako joystick, mysz lub klawiatura, port szeregowy nie będzie działał. Więc "Serial.print()" nie będzie działać. Ponadto MPU6050 wykorzystuje bibliotekę przewodów i2c i używa pinów SDA i SLC. W Leonardo, SDA i SCL zajmują zarówno PIN 2, jak i PIN 3, więc nie używaj tych 2 pinów do niczego innego.
Krok 5: Testowanie joysticka
Przetestowałem to na Microsoft Flight Simulator 2020 i działa bardzo dobrze. Muszę czasami naciskać środkowy klawisz, aby wyzerować joystick. Wartość czujnika MPU6050 może z czasem ulec zmianie.
Istnieje wiele możliwości wykorzystania projektu, takich jak dodanie większej liczby przycisków i dodanie elementów sterujących przepustnicą. Mam nadzieję, że zainspiruje to innych majsterkowiczów do odkrywania nowych sposobów tworzenia rzeczy.
Zalecana:
ZERO OPÓŹNIENIA JOYSTICK USB - AUTOMATYCZNA MODYFIKACJA ANALOGÓW: 5 kroków
ZERO DELAY USB JOYSTICK - AUTOMATYCZNA MODYFIKACJA ANALOGU: Jest to dodatkowy projekt do Zero Delay USB Encoder True Analog Joystick Modification. Musisz pomyślnie zmodyfikować, przetestować i skalibrować Encoder w poprzednim projekcie przed dodaniem tego urządzenia. Po zakończeniu i pracy
Moduł RC Tx jako joystick USB: 6 kroków
Moduł RC Tx jako joystick USB: Ta instrukcja dotyczy stworzenia modułu nadajnika, który współpracuje ze standardowymi nadajnikami RC i działa jako joystick USB. Moduł wykorzystuje płytkę deweloperską Digispark, która działa jako USB HID. Interpretuje sygnał PPM wysyłany przez nadajnik i konwertuje
Joystick USB z efektem Halla: 7 kroków (ze zdjęciami)
Joystick USB z efektem Halla: Ta instrukcja pokazuje, jak używać przemysłowego joysticka z efektem Halla do tworzenia precyzyjnego joysticka USB. Istnieje jeszcze jedna powiązana instrukcja Tiny USB Joystick, która może zapewnić tanie rozwiązanie;>
Tiny USB Joystick: 5 kroków (ze zdjęciami)
Tiny USB Joystick: Ta instrukcja pokazuje, jak zrobić bardzo prosty mały joystick USB. Ta instrukcja jest powiązana z joystickiem Hall Effect USB, który zapewnia tanie rozwiązanie
Joystick dżem Jar Joystick: 3 kroki
The Jam Jar Joystick Hack: Moje starsze dziewczyny uwielbiają pomagać mi w budowaniu i graniu w nasze projekty Arduino oparte na tablicach prototypowych – zwłaszcza w gry retro, które stworzyliśmy. Jednak moduły joysticka są zbyt małe i niewygodne dla małych rączek, a ich przechowywanie również stanowi problem. Podczas ostatniej kompilacji