Mündəricat:

DIY MPU-6050 USB Joystick: 5 addım
DIY MPU-6050 USB Joystick: 5 addım

Video: DIY MPU-6050 USB Joystick: 5 addım

Video: DIY MPU-6050 USB Joystick: 5 addım
Video: Usb 3D Mouse Using Arduino and Mpu6050 Accelerometer #programming #arduino #arduinotutorial 2024, Sentyabr
Anonim
DIY MPU-6050 USB Joystick
DIY MPU-6050 USB Joystick

Microsoft Flight Simulator 2020 ilə bir planı yerinə yetirmək üçün klaviaturadan istifadə etməyin nə qədər çətin olduğunu tez anladım. İnternetdə axtarıb almaq üçün münasib qiymətli joystick tapa bilmədim. Onlayn pərakəndə satıcıların əksəriyyəti stoklarında yox idi. MS Uçuş Simulyatoru və COVID 19 pandemiyasının populyarlığı bütün mövcud joystick ehtiyatlarını yox etdi. Mənim yeganə seçimim özüm tikmək idi.

Oradakı joysticklərin çoxu bazistdəki potensiometrlərdən istifadə edərək joystickin açılarını təyin edir və x və y ox məlumatlarını kompüterə göndərir. Bu yaxşı işləyir, amma joystickin qurulmasını çətinləşdirir. və zaman keçdikcə. potansiyometrlər köhnəlir. Potensiometrlərdən istifadə etmək əvəzinə çubuğun bucaqları haqqında məlumatı kompüterə göndərmək üçün akselerometr/giroskop sensor lövhəsi ilə getməyə qərar verdim.

Müxtəlif Arduino mikroprosessorlarının və müxtəlif sensorların populyarlığı ilə bir Arduino layihəsinin qurulması dəyəri daha əlverişli olur. Ən çox istifadə olunan akselerometr/giroskop sensor lövhələrindən biri də MPU-6050-dir. Kanadada, Amazonda təxminən 7CAN dollara başa gəlir. Çindən daha az göndərilən eBay -dan aldım, amma göndərmə müddəti 3 ay və ya daha çox idi.

www.amazon.ca/Neuftech-MPU-6050-3-Gyroscop…

Hər hansı bir Arduino lövhəsi işləyəcək, ancaq ATmega32u4 əsaslı lövhədən istifadə etmək daha asan olacaq, çünki ATmega32u4 yerli HID (İnsan İnterfeysi Cihazı) dəstəyinə malikdir. Lövhə proqramlaşdırıldıqdan sonra onu hər hansı bir Windows 10 PC -də istifadə edə bilərsiniz və əlavə proqram tələb olunmur. USB qoşulduqda Windows 10 avtomatik olaraq joystick olaraq tanıyacaq. (Başqa tipli Arduino lövhələrinin istifadəsi bu sadə quruluş layihəsi üçün çox mürəkkəbdir).

Arduino Leonardo lövhəsini seçirəm. Amazondan $ 17CAN.

www.amazon.ca/KEYESTUDIO-Leonardo-Developm…

Bu 2 cihaz bu layihə üçün əsas tələblərdir. Kablolar və düymələr kimi digər kiçik əşyalar da lazımdır. Bu layihədə sadəlik üçün yalnız 2 düyməni istifadə etdim.

Joystick sapı PVC su borusundan hazırlanmışdır. Bu, hər hansı bir qısa sərt boru ilə asanlıqla əvəz edilə bilər.

Joystickin əsası taxta parçaya bərkidilmiş yaylı qapı dayanacağıdır.

Bahar qapı dayanacağı Home Depot -dan 2.83CAN dollara əldə edilə bilər.

www.homedepot.ca/product/everbilt-spring-d…

Addım 1: MPU6050 və düymələri Arduino Leonardo lövhəsinə bağlayın

MPU6050 və düymələri Arduino Leonardo lövhəsinə bağlamaq
MPU6050 və düymələri Arduino Leonardo lövhəsinə bağlamaq
MPU6050 və düymələri Arduino Leonardo lövhəsinə bağlamaq
MPU6050 və düymələri Arduino Leonardo lövhəsinə bağlamaq
MPU6050 və düymələri Arduino Leonardo lövhəsinə bağlamaq
MPU6050 və düymələri Arduino Leonardo lövhəsinə bağlamaq

MPU 6050 -də yalnız 4 əlaqə istifadə olunur. VCC, GND, SCL və SDA olaraq etiketlənir.

VCC -ni Arduino Leonardo'da 5v və ya 3.3v -ə qoşun. (MPU 6050 ya 5v, ya da 3.3v istifadə edə bilər. Fərq etməz)

GND -ni Arduino Leonardodakı hər hansı bir GND -yə bağlayın.

SCL -ni Arduino Leonardoda SCL -ə qoşun.

SDA -nı Arduino Leonardo'da SDA -ya bağlayın.

Bu nümayiş üçün yalnız 2 düyməni istifadə edirəm.

İlk basma düyməsi joystick mərkəzini sıfırlamaq üçün istifadə olunur. Bu nümunədə, düymənin bir ucu GND -yə, bir ucu isə PIN 13 -ə bağlıdır.

İkinci basma düyməsi joystick düyməsi kimi istifadə olunur. Bu nümunədə, PIN 9 və GND -yə bağlıdır.

Layihənizdə lazım olduqda əlavə düymələr əlavə edə bilərsiniz.

Addım 2: Joystick bazasının qurulması

Joystick bazasının qurulması
Joystick bazasının qurulması
Joystick bazasının qurulması
Joystick bazasının qurulması
Joystick bazasının qurulması
Joystick bazasının qurulması

Taxta blok parçası tapın. Nə qədər ağır olsa, bir o qədər yaxşıdır. Joystick bazasını daha sabit hala gətirəcək.

Şəkildə göstərildiyi kimi taxta blokun ortasındakı yaylı qapı tıxacını vidalayın.

Joystick sapı kimi qısa bir boru parçası istifadə edin. PVC bir borudan istifadə etdim. Akselerometr/giroskop sensoru borunun üstündə oturması üçün teli bükün.

Sonra borunu yay qapı tıxacının üzərinə qoyun. Sensorun üst hissəsinə yapışdırmaq üçün elektrik lentindən istifadə etdim.

Addım 3: Arduino IDE qurun

Arduino IDE -ni yükləyin və quraşdırın.

Bu layihə üçün Arduino 1.8.13 istifadə etdim. Arduino Web Editor bu layihə üçün də istifadə edilə bilər.

2 kitabxana istifadə olunur.

1. MPU6050_tockn by tockn

github.com/Tockn/MPU6050_tockn

və ya "Kitabxananı İdarə et" menyusunda tapa bilərsiniz.

2. Matthew Heironimus tərəfindən Joystick kitabxanası

github.com/MHeironimus/ArduinoJoystickLibr…

Bu, hazırda yalnız GitHub veb saytında mövcuddur.

Yükləmə kodunu vurun və ZIP yükləyin. ZIP faylını Arduino kitabxana qovluğuna çıxarın.

Mənim vəziyyətimdə E: / PinChung / Documents / Arduino / kitabxanalarıdır

Addım 4: Arduino Proqramı

Pin_Joystick.ino'yu Arduino IDE -yə yükləyin və tərtib edərək Leonardo lövhəsinə yükləyin.

Alətlər menyusunda Arduino Leonardo lövhəsinin seçildiyinə və port nömrəsinin sağ COM -da seçildiyinə əmin olun.

Bir müddət fərq etdim ki, COM portunun səhv kodu ilə proqram yüklənə bilmir. Tərtib edərkən Leonardo lövhəsindəki sıfırlama düyməsini bir neçə dəfə basmaq kömək edə bilər. Windows 10 -u yenidən başlatmaq da COM portunu boşaltmağa kömək edə bilər.

Proqram Leonardo lövhəsinə yükləndikdən sonra, Windows 10 Leonardo Joystick'i avtomatik olaraq aşkar etməlidir. Windows 10 axtarış çubuğuna Oyun Nəzarətçiləri yazın, USB Oyun Nəzarətçiləri qurun.

Leonardo Joystick seçin və Xüsusiyyətlər düyməsini basın. Joystick hərəkəti və 1 saylı joystick düyməsi Windows 10 tərəfindən alınmalıdır.

Joystick mərkəzdə deyilsə, onu buraxdığınız zaman, hazırladığımız joystick mərkəzini sıfırlayın. USB Oyun Nəzarətçiləri mərkəzdəki joystick nöqtəsini göstərməlidir. USB Oyun Nəzarətçisi proqramında joystickin kalibr edilməsinə ehtiyac yoxdur.

Yan Qeyd: Arduino Leonardo ilə tanış olmayanlar üçün cihaz joystick, siçan və ya klaviatura olaraq konfiqurasiya edildikdə, serial port işləməyəcək. Beləliklə, "Serial.print ()" işləməyəcək. Ayrıca, MPU6050 i2c tel kitabxanasından istifadə edir və SDA və SLC pinlərindən istifadə edir. Leonardoda, SDA və SCL həm PIN 2, həm də PIN 3 -ü götürür, buna görə də bu 2 sancağı başqa bir şey üçün istifadə etməyin.

Addım 5: Joystickin sınanması

Microsoft Flight Simulator 2020 -də sınadım və çox yaxşı işləyir. Joystick'i sıfırlamaq üçün bəzən orta düyməni basmalı oluram. MPU6050 sensorunun dəyəri zamanla bir qədər dəyişə bilər.

Daha çox düymələr və qaz tənzimləyiciləri əlavə etmək kimi layihəyə xərcləmək üçün bir çox imkanlar var. Ümid edirik ki, bu, digər tinkerləri şeylərin yeni yollarını kəşf etməyə ilhamlandıracaq.

Tövsiyə: