Mundarija:

Arduino klaviaturasi Joystick kengaytirgich qutisi va Deej yordamida ovozni boshqaruvchi narsa: 8 qadam
Arduino klaviaturasi Joystick kengaytirgich qutisi va Deej yordamida ovozni boshqaruvchi narsa: 8 qadam

Video: Arduino klaviaturasi Joystick kengaytirgich qutisi va Deej yordamida ovozni boshqaruvchi narsa: 8 qadam

Video: Arduino klaviaturasi Joystick kengaytirgich qutisi va Deej yordamida ovozni boshqaruvchi narsa: 8 qadam
Video: Starting a Sidecar MIDI Controller to expand the Ibanez IMG2010 MC1 Guitar to MIDI Converter system 2024, Iyul
Anonim
Arduino klaviaturasi Joystick kengaytirgich qutisi va Deej yordamida ovozni boshqaruvchi
Arduino klaviaturasi Joystick kengaytirgich qutisi va Deej yordamida ovozni boshqaruvchi

Tinkercad loyihalari »

Nima uchun?

Bir muncha vaqt men klaviaturaga interfeys elementlarini yoki o'yinlar va simulyatorlardagi boshqa kichik vazifalarni (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons va boshqalar) boshqarish uchun kichik joystikni qo'shishni xohlardim.

Bundan tashqari, Elita uchun: Xavfli, men tashqi ovozdan ovoz balandligini aralashtirish bilan qiynalganman (musiqa yaxshi o'rnatilgan bo'lsa-da, bir necha soatdan keyin qora rangda takrorlanadi), o'yin ichidagi audio va tashqi ovozli paketlarni qo'llab-quvvatlash.

Windows o'rnatilgan manba mikser "yaxshi", lekin o'yin paytida ekranlar va sichqonchani boshqarish slayderlarini almashtirish og'riq. Kengaytirilgan klaviatura boshqaruv qutisiga ega bo'lish - bu yo'l. Deej - men topgan yechim.

Qanaqasiga

Men yaqinda Arduino haqida bilib oldim va reddit -da deej loyihasini uchratdim. Ko'rinib turibdiki, bu ikkala muammoni ham bitta qulay paketda hal qiladi. Va bu menga chiroyli 3D qutini loyihalash va chop etishga imkon beradi.

Dej nima?

(saytdan) deej-bu Windows va Linux kompyuterlari uchun ** ochiq manbali apparat mikser **. Bu sizga har xil ilovalar hajmini (masalan, sizning musiqiy pleeringiz, o'ynayotgan o'yiningiz va ovozli suhbat seansingiz) ** hech narsani to'xtatmasdan, real hayot slayderlaridan (DJ kabi!) Foydalanish imkonini beradi. sen qilyapsan.

Mening versiyam

Qutini kichkina ushlab turish uchun men slayderlarni emas, balki tugmachalarni (aylanadigan chiziqli potentsiometr (qozon = qarshilik)) tanladim. Funktsional jihatdan ular bir xil ishlaydi. Hozirgi va mashhur dej dizaynlari joystikni o'z ichiga olmaydi, shuning uchun bu dizayn gibridiga o'xshaydi. Aks holda, bu juda to'g'ridan-to'g'ri qurilish.

Deej Arduino Nano, Pro Micro yoki Uno bilan ishlaydi, lekin ishlab chiqaruvchi tomonidan Nano va Pro Micro rasman tavsiya qilingan. Men Arduino Pro Micro -ni tanladim, chunki men joystikni xohlardim va Arduino Joystik kutubxonasi uni qo'llab -quvvatlaydi. Men, shuningdek, joystick tugmasi bilan media klaviatura ovozini o'chirish funktsiyasidan ("yumshoq ovoz o'chirish" o'rniga) foydalanmoqchi bo'lganimda, Arduino klaviatura kutubxonasidan foydalanishim mumkin, lekin bu yo'lda.

1 -qadam: materiallar

Ta'minotlar
Ta'minotlar
Ta'minotlar
Ta'minotlar
Ta'minotlar
Ta'minotlar

Quti

STL fayllarini yuklab oling (Tinkercad -da yaratilgan):

  • Prusa -da fayllarni yopish (https://www.prusaprinters.org/)
  • Hamma narsa (tez orada)

Uskunalar (ishlab chiqarish birligi)

  • 1 x Arduino Pro Micro
  • 4x 10k aylanadigan (tugmachali) potensiometrlar (aylanadigan boshqaruv moslamalari emas, idishlardan foydalaning)
  • 1x Arduino KY-023 Joystik
  • 5 futli cat5 tarmoq kabeli
  • 1 x USB A - USB B mikro kabeli (USB A - bu katta kvadrat ulagich, USB B mikro - Arduino Pro Micro -dagi narsa)
  • 1x 5 mm qizil LED
  • 1x 220 ohmli qarshilik

Menda qo'shimcha qismlar bor edi, shuning uchun men hamma narsani sinab ko'rish uchun ishlab chiqish birligini quraman deb o'yladim. Faqat narsalarni taxtaga ulash, oxirgi narsani tasavvur qilishni osonlashtirdi.

  • 1 x Arduino Pro Micro
  • 4x 10k aylanadigan (tugmachali) potensiometrlar (aylanadigan boshqaruv moslamalari emas, idishlardan foydalaning)
  • 1x lahzali tugmachali tugma (qattiq reset tugmasi)
  • 1 x USB A - USB B mikro kabeli (USB A - bu katta kvadrat ulagich, USB B mikro - Arduino Pro Micro -dagi narsa)
  • har xil o'tish simlari
  • non taxtasi
  • 1x5 mm qizil LED
  • 1x 220 ohmli qarshilik

2 -qadam: korpus

Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama

Dizayn

Menga Deej jamoatchilik galereyasida joylashtirilgan boshqa dizaynlar yoqdi, shuning uchun men yoqtirgan xususiyatlar meniki:

  • Dizayn va chop etish oson
  • Boshqa ish stoli tashqi qurilmalarimga to'sqinlik qilmang
  • Qoplamani mahkamlash uchun vintlardek yoki mahkamlagichlardan foydalanmang
  • Klaviaturaga o'xshash estetik dizayn

Men yakuniy dizaynga kirishdan oldin ikkita prototipni ishlab chiqdim va chop etdim. Men foydalanadigan maydonda o'ynash uchun jismoniy versiyaga ega bo'lishni yoqtiraman, chunki bu menga yakuniy ob'ekt qanday ishlashini yaxshiroq tushunishga imkon beradi.

Men qisqa vaqt ichida Fusion360 -da loyihalashtirishni boshladim, lekin men bilmayman, shuning uchun Tinkerkad almashib, u erda ishlagan.

Men vintlarsiz dizaynni xohlaganim uchun, uyalar uchun quti yaratdim. Birinchi prototipda hamma narsa uchun nozik qopqoq va chuqur quti bor edi. Ikkinchi dizayn chuqur qopqog'i va pastki qutisi bilan almashtirildi. U faqat Arduino Pro Mini -ni ushlab turishi kerak edi, shuning uchun katta bo'lish shart emas edi. Kabartmalı piktogramma ham kiritilgan.

Uchinchi dizayn mening klaviatura yonidagi bo'shliqqa mos ravishda o'zgartirildi.

Bosma

Men qutini PLA -da chop etdim, ikonkalar paydo bo'ladigan qopqoq uchun filament / qatlam almashinuvini Qora -Qizildan qizil rangga, va qolgan qopqog'i uchun yana Qora rangga dasturlashtirdim.

Muammo

Bularning barchasida joystikni o'rnatish muammoga aylandi. Uchinchi dizaynda ham, tayoq bir joyga o'rnatiladi. Keyingi takrorlash yaxshiroq bo'shliqlarga ega bo'ladi. Men dizayn ustida ko'proq ishlashim mumkin edi, lekin keyingi bosqichga o'tishni xohlardim.

3 -qadam: O'chirish davri

O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri
O'chirish davri

Eng yomon simli ish

OK, bu mening birinchi to'liq Arduino loyiham. Ha, men ilgari non taxtasida ish qilganman va uni ishlab chiqish versiyasini yaratish uchun foydalanmoqdaman, lekin aslida ishlab chiqarish va yig'ish - bu mening birinchi. Shunday qilib, mening simlarim axlatga o'xshaydi. Mana, bu yo'lda emas:)

Yangilash: Men boshqasini qurdim va u erda simlar ancha yaxshi. Rasmlarni ko'ring:)

Ishlab chiqarish birligi - qaerda

Arduino Pro Micro - bu kichkina kichkina taxta bo'lib, u taglikning qoliplangan qismiga mos keladi. Qopqoqning tegishli teshiklariga tugmachalar va joystik mos keladi. Lekin siz lehim bilan raqobatlashmaguningizcha hech narsa o'rnatmang.

Ulanish

Menda to'g'ri sim yo'q edi, lekin menda qattiq yadroli cat5 tarmoq kabeli qolgan edi, shuning uchun men buni ishlatardim. Tarmoqli simga qaraganda biroz qattiqroq va mo'rtroq, lekin u ishlaydi.

Komponentlarni yakuniy o'rnatish holatiga yaqin joylashtirib, men har bir sim uchun masofani taxmin qildim, bo'shashish uchun biroz ko'proq qo'shdim, keyin simni kesib tashladim. Men juda ko'p bo'shashdim.

Ulanish sxemasiga tayanib, men umumiy nuqtani (Qora) va VCC (Qizil) ko'rsatgichlar va joystikka o'tkazdim. Tarmoq kabeli bu ranglarda bo'lmagani uchun, men faqat rangni tanladim va simimni funktsiyaga muvofiq ushlab turdim.

Shaxsiy qozon. analog chiziqlar (Sariq) A0 - A3 pinlariga yugurdi. Joystick liniyalari (apelsin), shuningdek analog, 8 va 9 -gachasi kirish -chiqish pimlariga o'tdi. Ular Arduino kodida A8 va A9 sifatida Analog sifatida belgilanishi kerak.

Joystik kalit pin (Moviy) pin 7 ga o'tdi. Bu kodda raqamli pin bo'ladi.

Izolyatsiya

Bu qattiq sim kichik joyga tiqilib qolishi uchun, men lehim ulanishlarimni sog'lom eriydigan elim qo'g'irchog'i bilan izolyatsiya qilishni tanladim. Keyin hamma narsani joyiga qo'ydi va Arduino misol AnalogInput kodining versiyasidan foydalanib, taxtada va qozonlarda oddiy sinov o'tkazdi - barcha idishlarni o'qish uchun o'zgartirildi.

Ikkinchi versiya

Yuqoridagi oxirgi ikkita rasmda men qurayotgan keyingi quti ko'rsatilgan. Unda 5 ta tugma va ovozni o'chirish uchun bir lahzali tugma bo'ladi. Joystik yo'q. Bir xil o'lchamdagi quti.

4 -qadam: Uskunani tugatish

Uskunani tugatish
Uskunani tugatish

Joystickni o'rnatganimda, men uning taxtasi va Pro Micro -dagi pin sarlavhalari o'rtasida katta farq yo'qligini angladim.

Pim sarlavhalarini biroz ehtiyotkorlik bilan egib, issiq eritilgan elimni qayta ishlatgandan so'ng (izolyatsiya uchun), korpus to'g'ri yopildi.

Idishlarni o'rnatish muammosiz o'tdi.

Yana simlar bilan

Qattiq yadroli simlar biroz qattiqroq va agar ular ko'p marta egilsa, mo'rt bo'lishi mumkin, shuning uchun ularni ehtiyotkorlik bilan (o'tkir burchaklarsiz) bo'sh joyga katlang. Ba'zilarim juda uzun edi va biroz kattalashtirish kerak edi.

Hamma narsa joyiga qo'yilgach, taglikni tepaga mahkamlang, shunda siz jihozni tugatishingiz kerak.

Lekin kuting, yana ko'p narsalar bor

Albatta, bir necha hafta ishlatilgandan so'ng, menga yumshoq kodli MUTE funktsiyasining holati to'g'risida ma'lumot berish uchun indikator kerak deb qaror qildim.

LED funksiyasini qo'shish uchun kodni tahrir qilgandan so'ng (keyingi bo'limga qarang), men tezda LEDni / simlarni / rezistorni lehimladim va ularni taxtaga uladim.

Men korpusning yuqori qismidan teshik ochish uchun ko'proq vaqt sarfladim, chunki men marraga chiqishni xohlamadim. Men markaziy joyni belgiladim, uni burdim, keyin teshik qilish uchun burg'ulash uchini qo'lda aylantirdim.

Qo'shimcha ehtiyotkorlik bilan to'ldirish teshikni tozaladi va LEDning yuqori yuzadan juda uzoqqa chiqmasligini ta'minlash uchun mahkam bosilishini ta'minladi.

5 -qadam: Dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot
Dasturiy ta'minot
Dasturiy ta'minot
Dasturiy ta'minot
Dasturiy ta'minot

Sharh

Shunday qilib, bu ikki qismli jarayon.

  1. Deej qanday ishlashini bilib oling va Config.yaml faylini tahrir qiling
  2. Arduino kodini kerakli apparat va xususiyatlarga mos ravishda tahrirlang
  3. Arduino Joystick kutubxonasini oling

Mening holatimda men quyidagi xususiyatlarni xohlardim:

  • Darajalarni boshqaradigan tugmalar (mikrofon va chiqish)
  • Ovozni o'chirish tugmasi
  • 2 eksa joystik Windows tomonidan ilovalardan foydalanish uchun tan olingan

Darajalar

Deej birinchi nuqtaga juda ko'p e'tibor beradi. Men bu funktsiyani o'zgartirmadim

Ovozni o'chirish tugmasi

Men Joystick -dagi tugmachani funktsional ovozni o'chirish tugmasi sifatida ishlatmoqchi ekanligimni erta aniqladim.

Kodni tekshirganingizda, men "yumshoq" ovozni o'chirishni tanlaganimni ko'rasiz - tugma bosilganda MIC ovozi nolga tushiriladi (va LED yonadi). Qayta bosilganda, MIC ovoz balandligi avvalgi holatiga qaytariladi va LED o'chadi.

Oxir -oqibat men Arduino klaviatura kutubxonasini kengaytirilgan media klaviatura kodlari to'plami orqali ovozni o'chirish holatini o'zgartirish uchun ko'rib chiqaman.

Joystikni amalga oshirish

Buning uchun joystik Windows tomonidan HID qurilmasi sifatida tan olinishi uchun Arduino Joystick kutubxonasidan foydalanishni talab qiladi, natijada har qanday o'yin/dastur.

Men kodlash haqida gapiradigan bo'lsam -da, Joystick kutubxonasi hujjatlari amalda bajarilish jihatidan biroz siyrak ekanini topdim, lekin biroz o'ylangan googling meni nima bo'layotganini tushunishga yordam bergan boshqa misollarga olib keldi. Tafsilotlar uchun oxiridagi manbalar bo'limini tekshiring.

Men faqat X/Y pinlarini aniqlash, ularning holatini o'qish va Joystik kutubxonasiga yuborishim kerak edi. Arduino Windows -da Leonardo sifatida paydo bo'ldi va Joystick qurilmasi sifatida to'g'ri sozlangan.

Men uni Elita Dangerous -da, HOTAS -ning mavjud sozlamalari bilan birga o'rnatishga muvaffaq bo'ldim va Joystick -ni narsalarni to'g'ri boshqarishga va HOTAS -ga zid kelmaslikka muvaffaq bo'ldim. Bu "Yulduzli urushlar: otryadlar" da ham yaxshi ishlaydi - menda jang paytida qalqonlarni o'rnatish uchun tez o'tishni o'rnatdim.

Mening Joystick sozlamam bilan ishlaydigan fayllar

Men joriy (2020 yil oktyabr) fayllarimni Codepile -ga yukladim.

  • Arduino kodi (.ino fayli)
  • Deej config.yaml

6 -qadam: tugatish

Oxiri
Oxiri

Xo'sh, bu bajarildi. Bu ishlaydi va men uning qanday birlashganidan mamnunman. Va men apparat dizayni, integratsiya va Arduino dasturlashi haqida bir oz ko'proq bilib oldim.

7 -qadam: ilova..dum..dum

Qo'shimcha.. dum..dum
Qo'shimcha.. dum..dum

VLC - bu ajoyib audio va video pleerda biroz g'alati narsa bor, agar ovoz balandligi tashqi tomondan boshqarilsa, u 0% dan 27% gacha ko'tariladi. Ilova ichidagi ovoz balandligini boshqarish yordamida darajani sozlashda bunday bo'lmaydi, faqat Deej kabi tashqi boshqaruv bilan.

Deej ishlab chiqaruvchisi tezda vazifani bajaradigan VLC ichidagi vaqtinchalik echimni topdi, yuqoridagi rasmga qarang:

"… Agar siz" Kuzatish "xatti -harakatini o'chirishni xohlasangiz, buni VLC audio chiqish modulini o'zgartirish orqali amalga oshirishingiz mumkin. Men bu erda urinishlarimda DirectXdan foydalanganman. O'zgarish kuchga kirishi uchun VLCni qayta ishga tushirishingiz kerak bo'ladi. Windows audio sessiyasiga ega bo'ling va uni deej orqali boshqaring, bu faqat VLC tovush paneli bilan harakatlanishiga to'sqinlik qiladi)"

8 -qadam: Qo'shimcha manbalar

Qo'shimcha manbalar
Qo'shimcha manbalar

Hech qanday tartibda ko'rsatilmagan kuchli Goog orqali topilgan …

  • Arduino Joystik kutubxonasi (v2) - joystikni birlashtirish uchun kerak
  • Sparkfun Pro Micro -ni ulash bo'yicha qo'llanma - bu Arduino haqida yaxshi manba
  • deej - tugmachalarni boshqaradigan dastur
  • USB ulagichining turlari - juda ko'p variantlar borligini kim bilardi?
  • Arduino Pro Micro Analog Pinouts
  • Arduino Leonardo Gaming Joystick - Leonardo Pro Micro -ga o'xshaydi, faqat kattaroq
  • Arduino Pro Micro (Clone) porti aniqlanmadi (Qaror) - siz Pro Micro -ni g'ishtlaganingizda (men qildim)
  • Arduino Leonardo/Micro o'yin boshqaruvchisi sifatida/joystik
  • Ovozni o'chirish uchun multimediya kalitidan foydalanish misoli - HID loyihasi kutubxonasidan foydalanish
  • HID loyihasi kutubxonasi misol kodi, ommaviy axborot vositalarini to'xtatib turish / ijro etish uchun
  • O'yin paneli boshqaruvchisini ko'rsatadigan boshqa kod misoli.
  • ArduinoGamingController_updated - Joystick kutubxonasidan foydalanishning yaxshi kod tavsifi
  • LED rezistorli kalkulyator - bu sizning loyihangizga qanchalik katta rezistor kerakligini bilish uchun
  • Belgilar kutubxonasi - flaticon.com - tugmalar tepasida ishlatilgan tasvirlar manbai
  • Yana bir rezistorli rang dekoderi - rang va violani bosing!

Tavsiya: