Spisu treści:

DIY Joystick USB MPU-6050: 5 kroków
DIY Joystick USB MPU-6050: 5 kroków

Wideo: DIY Joystick USB MPU-6050: 5 kroków

Wideo: DIY Joystick USB MPU-6050: 5 kroków
Wideo: MPU6050 Sensor Arduino Tutorial 2024, Listopad
Anonim
DIY Joystick USB MPU-6050
DIY Joystick USB MPU-6050

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

Podłączanie MPU6050 i przycisków do płytki Arduino Leonardo
Podłączanie MPU6050 i przycisków do płytki Arduino Leonardo
Podłączanie MPU6050 i przycisków do płytki Arduino Leonardo
Podłączanie MPU6050 i przycisków do płytki Arduino Leonardo
Podłączanie MPU6050 i przycisków do płytki Arduino Leonardo
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

Budowanie podstawy joysticka
Budowanie podstawy joysticka
Budowanie podstawy joysticka
Budowanie podstawy joysticka
Budowanie podstawy joysticka
Budowanie podstawy 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: