İçindekiler:

DIY MPU-6050 USB Kumanda Kolu: 5 Adım
DIY MPU-6050 USB Kumanda Kolu: 5 Adım

Video: DIY MPU-6050 USB Kumanda Kolu: 5 Adım

Video: DIY MPU-6050 USB Kumanda Kolu: 5 Adım
Video: El Hareketleri İle Kontrol Edilebilen Araba Yapımı /Uzaktan / MPU6050 Gyro Accelerometer | nRF24L01+ 2024, Kasım
Anonim
DIY MPU-6050 USB Kumanda Çubuğu
DIY MPU-6050 USB Kumanda Çubuğu

Microsoft Flight Simulator 2020 ile bir planı uçurmak için klavye kullanmanın ne kadar zor olduğunu hemen anladım. İnternette araştırdığımda, satın almak için makul fiyatlı bir joystick bulamadım. Çoğu çevrimiçi perakendecinin stokları tükendi. MS Flight Simulator ve COVID 19 pandemisinin popülaritesi, mevcut tüm joystick stoklarını sildi. Tek seçeneğim kendim bir tane inşa etmekti.

Dışarıdaki joysticklerin çoğu, joystick'in açılarını belirlemek ve x ve y ekseni bilgilerini bilgisayara geri göndermek için tabandaki potansiyometreleri kullanır. Bu iyi çalışıyor ancak joystick'in yapısını zorlaştırıyor. ve zamanla. potansiyometreler aşınabilir. Potansiyometre kullanmak yerine, çubuğun açıları hakkında bilgisayara bilgi göndermek için ivmeölçer/jiroskop sensör kartı ile gitmeye karar verdim.

Çeşitli Arduino mikroişlemcilerinin ve çeşitli sensörlerin popülaritesi ile bir Arduino projesi oluşturmanın maliyeti çok daha uygun hale geliyor. Yaygın olarak kullanılan ivmeölçer/jiroskop sensör kartlarından biri MPU-6050'dir. Kanada'da, Amazon'da yaklaşık 7 CAN maliyeti. Çin'den çok daha ucuza eBay'den benimkini aldım, ancak nakliye süresi 3 ay veya daha uzundu.

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

Herhangi bir Arduino kartı işe yarayabilir, ancak ATmega32u4 tabanlı kartı kullanmak çok daha basit olacaktır, çünkü ATmega32u4 yerel HID (İnsan Arayüzü Aygıtı) desteğine sahiptir. Kart programlandıktan sonra herhangi bir Windows 10 PC'de kullanabilirsiniz ve ek bir yazılım gerekmez. Windows 10, USB takıldığında bunu otomatik olarak bir joystick olarak tanıyacaktır. (Diğer tip Arduino kartlarının kullanımı bu basit yapı projesi için çok karmaşıktır).

Arduino Leonardo tahtasını seçiyorum. Amazon'dan 17 Kanada Doları.

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

Bu 2 cihaz, bu proje için temel gereksinimlerdir. Kablolar ve basmalı düğmeler gibi diğer daha küçük parçalar da gereklidir. Bu projede sadelik için sadece 2 adet buton kullandım.

Joystick kolu, hurda PVC su borusundan yapılmıştır. Bu, herhangi bir kısa sert boru ile kolayca değiştirilebilir.

Joystick'in tabanı, bir tahta parçasına sabitlenmiş bir yaylı kapı durdurucudur.

Yaylı kapı durağı, Home Depot'ta 2.83 CAN karşılığında mevcuttur.

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

Adım 1: MPU6050 ve Basmalı Düğmeleri Arduino Leonardo Kartına Bağlama

MPU6050 ve Basmalı Düğmeleri Arduino Leonardo Kartına Bağlama
MPU6050 ve Basmalı Düğmeleri Arduino Leonardo Kartına Bağlama
MPU6050 ve Basmalı Butonları Arduino Leonardo Kartına Bağlama
MPU6050 ve Basmalı Butonları Arduino Leonardo Kartına Bağlama
MPU6050 ve Basmalı Butonları Arduino Leonardo Kartına Bağlama
MPU6050 ve Basmalı Butonları Arduino Leonardo Kartına Bağlama

MPU 6050'de sadece 4 bağlantı kullanılır. VCC, GND, SCL ve SDA olarak etiketlenirler.

Arduino Leonardo'da VCC'yi 5v veya 3.3v'ye bağlayın. (MPU 6050, 5v veya 3.3v kullanabilir. Fark etmez)

GND'yi Arduino Leonardo'daki herhangi bir GND'ye bağlayın.

Arduino Leonardo'da SCL'yi SCL'ye bağlayın.

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

Bu gösterim amacıyla sadece 2 basmalı düğme kullanıyorum.

İlk basma düğmesi joystick merkezini sıfırlamak için kullanılır. Bu örnekte, basmalı düğmenin bir ucu GND'ye ve bir ucu PIN 13'e bağlanmıştır.

İkinci basma düğmesi, joystick düğmesi olarak kullanılır. Bu örnekte, PIN 9 ve GND'ye bağlanmıştır.

Projenizde gerektiği gibi ek düğmeler ekleyebilirsiniz.

2. Adım: Joystick Tabanını Oluşturma

Joystick Tabanını Oluşturma
Joystick Tabanını Oluşturma
Joystick Tabanını Oluşturma
Joystick Tabanını Oluşturma
Joystick Tabanını Oluşturma
Joystick Tabanını Oluşturma

Bir parça tahta blok bulun. Ne kadar ağır olursa o kadar iyi. Joystick tabanını daha kararlı hale getirecek.

Yaylı kapı durdurucuyu resimde gösterildiği gibi ahşap bloğun ortasına vidalayın.

Joystick kolu olarak bir parça kısa boru kullanın. Bir sıyırıcı PVC boru kullandım. İvmeölçer/jiroskop sensörü borunun üzerine oturacak şekilde kabloyu ezin.

Ardından boruyu yaylı kapı stoperinin üzerine koyun. Sensörü üste bantlamak için elektrik bandı kullandım.

Adım 3: Arduino IDE'yi kurun

Arduino IDE'yi indirin ve kurun.https://www.arduino.cc/en/Main/Software

Bu proje için Arduino 1.8.13 kullandım. Arduino Web Editor bu proje için de kullanılabilir.

2 kütüphane kullanılmaktadır.

1. MPU6050_tockn tarafından tockn

github.com/Tockn/MPU6050_tockn

veya "Kütüphaneyi Yönet" menüsünde bulabilirsiniz.

2. Matthew Heironimus'tan Joystick kitaplığı

github.com/MHeironimus/ArduinoJoystickLibr…

Bu, şu anda yalnızca GitHub web sitesinde mevcuttur.

Kodu indir ve ZIP'i İndir'e tıklayın. ZIP dosyasını Arduino kitaplıkları dizininize çıkarın.

Benim durumumda, bu E:\PinChung\Documents\Arduino\libraries

Adım 4: Arduino Programı

Pin_Joystick.ino'yu Arduino IDE'ye yükleyin ve derleyin ve Leonardo panosuna yükleyin.

Arduino Leonardo kartının seçildiğinden ve Araçlar menüsü altında sağ COM: bağlantı noktası numarasının seçildiğinden emin olun.

Bir süre fark ettim, program COM bağlantı noktasının hata koduyla yüklenemedi. Derleme sırasında Leonardo kartındaki sıfırlama düğmesine birkaç kez basmak yardımcı olabilir. Ayrıca Windows 10'u yeniden başlatmak, COM bağlantı noktasını boşaltmaya da yardımcı olabilir.

Program Leonardo panosuna yüklendikten sonra Windows 10, Leonardo Joystick'i otomatik olarak algılamalıdır. Windows 10 arama çubuğuna Oyun Denetleyicileri yazın, USB Oyun Denetleyicilerini Kur'u çalıştırın.

Leonardo Joystick'i seçin ve Özellikler'e tıklayın. Joystick hareketi ve joystick #1 düğmesi Windows 10 tarafından alınmalıdır.

Joystick merkezde değilse, bıraktığınızda, az önce yaptığımız joystick'i sıfırla orta düğmesine tıklayın. USB Oyun Denetleyicileri, ortada joystick noktasını göstermelidir. USB Game Controller programında joystick'i kalibre etmeye gerek yoktur..

Yan Not: Arduino Leonardo'ya aşina olmayanlar için cihaz joystick, fare veya klavye olarak yapılandırıldığında seri port çalışmayacaktır. Böylece "Serial.print()" çalışmayacaktır. Ayrıca MPU6050, i2c tel kitaplığını kullanır ve SDA ve SLC pinlerini kullanır. Leonardo'da SDA ve SCL, hem PIN 2 hem de PIN 3'ü alır, bu nedenle bu 2 pimi başka bir şey için kullanmayın.

Adım 5: Joystick'i Test Etme

Microsoft Flight Simulator 2020'de test ettim ve çok iyi çalışıyor. Joystick'i sıfırlamak için bazen orta tuşa basmam gerekiyor. MPU6050 sensör değeri zamanla biraz kayabilir.

Daha fazla düğme eklemek ve gaz kelebeği kontrolleri eklemek gibi projeye harcamak için birçok fırsat var. Umarım bu, diğer tamircilere bir şeyler yapmanın yeni yollarını keşfetmeleri için ilham verir.

Önerilen: