Talaan ng mga Nilalaman:

DIY MPU-6050 USB Joystick: 5 Hakbang
DIY MPU-6050 USB Joystick: 5 Hakbang

Video: DIY MPU-6050 USB Joystick: 5 Hakbang

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

Sa Microsoft Flight Simulator 2020, mabilis kong napagtanto kung gaano kahirap gamitin ang keyboard upang lumipad ang isang plano. Naghahanap sa online, hindi ako makahanap ng isang makatuwirang presyong joystick na bibilhin. Karamihan sa mga nagtitingi sa online ay wala na silang stock. Ang katanyagan ng MS Flight Simulator at COVID 19 pandemya ay binura ang lahat ng mayroon nang mga stock ng joystick. Ang pagpipilian ko lang ay itayo ang isa sa aking sarili.

Karamihan sa mga joystick doon ay gumagamit ng mga potentiometers sa base upang matukoy ang mga anggulo ng joystick at ipadala ang x at y axis na impormasyon pabalik sa computer. Ito ay gumagana nang maayos ngunit kumplikado ito sa pagbuo ng joystick. at sa paglipas ng panahon. ang mga potentiometers ay maaaring masira. Sa halip na gumamit ng mga potensyal, nagpasya akong pumunta sa board ng accelerometer / gyroscope sensor upang magpadala ng impormasyon sa computer sa mga anggulo ng stick.

Sa kasikatan ng iba't ibang mga Arduino microprocessor at iba't ibang mga sensor, ang gastos sa pagbuo ng isang proyekto ng Arduino ay magiging mas abot-kayang. Ang isa sa karaniwang ginagamit na board ng accelerometer / gyroscope sensor ay MPU-6050. Sa Canada, nagkakahalaga ito ng halos $ 7CAN sa Amazon. Nakuha ko ang minahan mula sa eBay na naipadala mula sa China nang mas kaunti, ngunit ang oras ng pagpapadala ay tulad ng 3 buwan o mas matagal.

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

Ang anumang board ng Arduino ay gagana, ngunit ang paggamit ng ATmega32u4 based board ay magiging mas simple, dahil ang ATmega32u4 ay may katutubong suporta ng HID (Human Interface Device). Kapag na-program ang board, maaari mo itong gamitin sa anumang Windows 10 PC at walang kinakailangang karagdagang software. Awtomatikong makikilala ito ng Windows 10 bilang isang joystick kapag naka-plug in ang USB. (Ang paggamit ng iba pang uri ng Arduino board ay masyadong kumplikado para sa simpleng proyektong pagbuo na ito).

Pinili ko si Arduino Leonardo board. $ 17CAN mula sa Amazon.

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

Ang 2 mga aparato ay ang pangunahing mga kinakailangan para sa proyektong ito. Ang iba pang mga mas maliliit na item tulad ng mga wirings at push button ay kinakailangan din. Sa proyektong ito, 2 push button lang ang ginamit ko para sa simple.

Ang hawakan ng joystick ay ginawa mula sa isang scrap PVC water pipe. Maaari itong madaling mapalitan ng anumang maikling mahigpit na tubo.

Ang base ng joystick ay isang spring door stop na naayos sa isang piraso ng kahoy.

Ang hintuan ng pintuan ng tagsibol ay magagamit mula sa Home Depot sa halagang $ 2.83CAN.

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

Hakbang 1: Pagkonekta sa MPU6050 at Mga Push Buttons sa Arduino Leonardo Board

Pagkonekta sa MPU6050 at Mga Push Buttons sa Arduino Leonardo Board
Pagkonekta sa MPU6050 at Mga Push Buttons sa Arduino Leonardo Board
Pagkonekta sa MPU6050 at Mga Push Buttons sa Arduino Leonardo Board
Pagkonekta sa MPU6050 at Mga Push Buttons sa Arduino Leonardo Board
Pagkonekta sa MPU6050 at Mga Push Buttons sa Arduino Leonardo Board
Pagkonekta sa MPU6050 at Mga Push Buttons sa Arduino Leonardo Board

4 na koneksyon lamang ang ginagamit sa MPU 6050. Ang mga ito ay may label na VCC, GND, SCL at SDA.

Ikonekta ang VCC sa 5v o 3.3v sa Arduino Leonardo. (Ang MPU 6050 ay maaaring gumamit ng alinman sa 5v o 3.3v. Hindi mahalaga)

Ikonekta ang GND sa anumang GND sa Arduino Leonardo.

Ikonekta ang SCL sa SCL sa Arduino Leonardo.

Ikonekta ang SDA sa SDA sa Arduino Leonardo.

Gumagamit lamang ako ng 2 mga push button para sa hangaring ito ng pagpapakita.

Ang unang pindutan ng push ay ginagamit upang i-reset ang sentro ng joystick. Sa halimbawang ito, ang isang dulo ng pindutan ng push ay konektado sa GND at ang isang dulo sa PIN 13.

Ang pangalawang pindutan ng itulak ay ginagamit bilang isang button ng Joystick. Sa halimbawang ito, nakakonekta ito sa PIN 9 at GND.

Maaari kang magdagdag ng karagdagang mga pindutan kung kinakailangan sa iyong proyekto.

Hakbang 2: Pagbuo ng Joystick Base

Pagbuo ng Joystick Base
Pagbuo ng Joystick Base
Pagbuo ng Joystick Base
Pagbuo ng Joystick Base
Pagbuo ng Joystick Base
Pagbuo ng Joystick Base

Maghanap ng isang piraso ng bloke ng kahoy. Mas mabibigat mas mabuti. Gagawin nitong mas matatag ang base ng joystick.

I-screw ang stopper ng pinto ng spring sa gitna ng kahoy block tulad ng ipinakita sa larawan.

Gumamit ng isang piraso ng maikling tubo bilang hawakan ng joystick. Gumamit ako ng isang scrape PVC pipe. Tread ang wire kaya ang accelerometer / gyroscope sensor ay nakaupo sa tuktok ng tubo.

Pagkatapos ay ilagay ang tubo sa tapunan ng pintuan ng tagsibol. Gumamit ako ng electrical tape upang i-tape ang sensor sa itaas.

Hakbang 3: I-setup ang Arduino IDE

I-download at i-install ang Arduino IDE.https://www.arduino.cc/en/Main/Software

Ginamit ko ang Arduino 1.8.13 para sa proyektong ito. Maaaring magamit ang Arduino Web Editor para sa proyektong ito.

2 silid aklatan ang ginagamit.

1. MPU6050_tockn ni tockn

github.com/Tockn/MPU6050_tockn

o mahahanap mo ito sa menu na "Pamahalaan ang Library".

2. Joystick library ni Matthew Heironimus

github.com/MHeironimus/ArduinoJoystickLibr…

Ang isang ito ay kasalukuyang magagamit lamang mula sa GitHub website.

Mag-click sa pag-download ng Code at Mag-download ng ZIP. I-extract ang ZIP file sa iyong direktoryo ng mga aklatan ng Arduino.

Sa aking kaso, E: / PinChung / Documents / Arduino / library

Hakbang 4: Arduino Program

I-load ang Pin_Joystick.ino sa Arduino IDE at i-compile at i-upload sa Leonardo board.

Tiyaking napili ang Arduino Leonardo board at ang numero ng port ay napili sa tamang COM: sa ilalim ng menu ng Mga Tool.

Napansin ko ilang oras, ang programa ay hindi mai-upload na may error code ng COM port na hindi magagamit. Ang pagtulak sa pindutan ng pag-reset sa board ng Leonardo ng ilang beses habang ang pagtitipon ay maaaring makatulong. Gayundin ang pag-restart ng Windows 10 ay maaari ding makatulong na palayain ang COM port.

Kapag na-upload ang programa sa Leonardo board, dapat awtomatikong makita ng Windows 10 ang Leonardo Joystick. Sa search bar ng Windows 10, i-type ang Mga Game Controller, patakbuhin ang I-set up ang Mga Controller ng Game ng USB.

piliin ang Leonardo Joystick at i-click ang Properties. Ang kilusan ng joystick at ang pindutan ng joystick # 1 ay dapat na kunin ng Windows 10.

Kung ang sentro ng Joystick ay hindi nakasentro, kapag binitawan mo ito, mag-click sa i-reset ang pindutan ng joystick center na ngayon lang namin ginawa. Dapat ipakita ng Mga Controller ng Game ng USB ang tuldok ng joystick sa gitna. Hindi na kailangang i-calibrate ang joystick sa programang USB Game Controller..

Paalala: Sa mga hindi pamilyar kay Arduino Leonardo, kapag na-configure ang aparato bilang isang joystick, mouse o keyboard, hindi gagana ang serial port. Kaya't ang "Serial.print ()" ay hindi gagana. Gayundin, ang MPU6050 ay gumagamit ng i2c wire library at gumagamit ng mga pin ng SDA at SLC. Sa Leonardo, ang SDA at SCL ay kumukuha ng parehong PIN 2 at PIN 3, kaya huwag gamitin ang 2 mga pin na ito para sa iba pa.

Hakbang 5: Pagsubok sa Joystick

Sinubukan ko ito sa Microsoft Flight Simulator 2020 at ito ay gumagana nang napakahusay. Kailangan kong pindutin ang key ng center minsan upang i-zero ang joystick. Ang halaga ng MPU6050 sensor ay maaaring naaanod ng kaunti sa paglipas ng panahon.

Maraming mga pagkakataong gumastos sa proyekto, tulad ng pagdaragdag ng higit pang mga pindutan at pagdaragdag ng mga kontrol sa throttle. Sana ito ay magbigay ng inspirasyon sa iba pang mga tinker upang galugarin ang mga bagong paraan ng paggawa ng mga bagay.

Inirerekumendang: