Mündəricat:

Arduino Klaviatura Joystick Genişləndirici Qutu və Deej istifadə edən Səs Nəzarətçisi: 8 addım
Arduino Klaviatura Joystick Genişləndirici Qutu və Deej istifadə edən Səs Nəzarətçisi: 8 addım

Video: Arduino Klaviatura Joystick Genişləndirici Qutu və Deej istifadə edən Səs Nəzarətçisi: 8 addım

Video: Arduino Klaviatura Joystick Genişləndirici Qutu və Deej istifadə edən Səs Nəzarətçisi: 8 addım
Video: USB клавиатура и мышка на обычной Arduino Nano! EasyHID ч.1 2024, Iyul
Anonim
Arduino Klaviatura Joystick Genişləndirici Qutu və Deej istifadə edərək Səs Nəzarətçisi
Arduino Klaviatura Joystick Genişləndirici Qutu və Deej istifadə edərək Səs Nəzarətçisi

Tinkercad Layihələri »

Niyə

Bir müddətdir ki, interfeys elementlərini və ya oyun və simulyatorlardakı digər kiçik vəzifələri idarə etmək üçün klaviaturama kiçik bir joystick əlavə etmək istəyirdim (MS Uçuş Sim, Elit: Təhlükəli, Star Wars: Squadrons və s.).

Ayrıca, Elite: Dangerous üçün, xarici səsdən (musiqi içərisində olsa da, yaxşı olsa da, qara rəngdə bir neçə saat sonra təkrarlanır) səs səviyyələrini qarışdırmaqla mübarizə aparıram, oyun içi səs və xarici səs dəstəyi dəstəyi.

Windows quraşdırılmış mənbə qarışdırıcısı 'yaxşıdır', ancaq oyunun ortasında ekranları və siçan idarəetmə sürgülərini dəyişdirmək ağrılıdır. Genişləndirilmiş bir klaviatura idarəetmə qutusuna sahib olmaq, yol kimi görünürdü. Deej tapdığım həlldir.

Necə

Bu yaxınlarda Arduino haqqında öyrəndim və reddit -də deej layihəsi ilə tanış oldum. Göründüyü kimi, bu iki problemi də lazımlı bir paketdə həll edəcək. Və mənə yaraşıqlı bir 3D qutu hazırlamağa və çap etməyə icazə verərdi.

Deej nədir?

(saytdan) deej, Windows və Linux kompüterləri üçün ** açıq mənbəli aparat həcmi qarışdırıcıdır. Nə etməyi dayandırmadan ** fərqli tətbiqlərin həcmini ** (məsələn, musiqi pleyeriniz, oynadığınız oyun və səsli söhbət sessiyanız kimi) idarə etmək üçün real həyat sürgülərindən (DJ kimi!) İstifadə etməyə imkan verir. Sən edirsən.

Mənim versiyam

Qutunu kiçik saxlamaq üçün sürgülərdən çox düymələri (fırlanan xətti potensiometr (qablar = rezistorlar)) seçdim. Funksional olaraq eyni şəkildə işləyirlər. Mövcud və populyar deej dizaynlarında joystick yoxdur, buna görə də bir az dizayn hibrid olacaq. Əks təqdirdə, olduqca düz bir quruluşdur.

Deej bir Arduino Nano, Pro Micro və ya Uno ilə işləyəcək, ancaq Nano və Pro Micro geliştirici tərəfindən 'rəsmi olaraq tövsiyə edilir'. Joystick istədiyim üçün Arduino Pro Micro -nu seçdim və Arduino Joystick Kitabxanası bunu dəstəkləyir. Joystick düyməsiylə media klaviatura səssizləşdirmə funksiyasından ("yumşaq səssiz" deyil) istifadə etmək istədiyim zaman Arduino Klaviatura Kitabxanasından da istifadə edə bilərəm, amma bu daha da aşağıdadır.

Addım 1: Təchizat

Təchizat
Təchizat
Təchizat
Təchizat
Təchizat
Təchizat

Qutu

STL fayllarını yükləyin (Tinkercad -da hazırlanmışdır):

  • Prusa -da faylları bağlayın (https://www.prusaprinters.org/)
  • Hər şey (tezliklə)

Avadanlıq (istehsal vahidi)

  • 1 ədəd Arduino Pro Micro
  • 4x 10k fırlanan (düymə) potensiometrlər (Rotary Controllers deyil, qablardan istifadə edin)
  • 1x Arduino KY-023 Joystick
  • 5 fut hurda cat5 şəbəkə kabeli
  • 1 x USB A - USB B mikro kabeli (USB A böyük kvadrat bağlayıcıdır, USB B mikro - Arduino Pro Micro -dakı şeydir)
  • 1x 5 mm qırmızı LED
  • 1x 220 ohm müqavimət

Ətrafımda əlavə hissələr var idi, buna görə də hər şeyi sınamaq üçün bir inkişaf vahidi quracağımı düşündüm. Yalnız bir şeyi bir çörək taxtasına bağlamaq, son şeyi təsəvvür etməyi asanlaşdırdı.

  • 1 ədəd Arduino Pro Micro
  • 4x 10k fırlanan (düymə) potensiometrlər (Rotary Controllers deyil, qablardan istifadə edin)
  • 1x ani düymə açarı (sərt sıfırlama açarı)
  • 1 x USB A - USB B mikro kabeli (USB A böyük kvadrat bağlayıcıdır, USB B mikro - Arduino Pro Micro -dakı şeydir)
  • müxtəlif keçid telləri
  • çörək taxtası
  • 1x 5 mm qırmızı LED
  • 1x 220 ohm müqavimət

Addım 2: Qapı

Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə
Mühafizə

Dizayn

Deej icma qalereyasında profilli olan digər dizaynlardan bəyəndim, buna görə də bəyəndiyim xüsusiyyətlərə əsaslanaraq:

  • Dizayn etmək və çap etmək asandır
  • Digər masa üstü qurğulara mane olmayın
  • Korpusu möhkəmləndirmək üçün vintlər və ya bağlayıcılar istifadə etməyin
  • Klaviatura ilə oxşar dizayn estetikası

Bu son dizayn üzərində qərar vermədən əvvəl iki prototip hazırladım və çap etdim. İstifadə etdiyim məkanda oynamaq üçün fiziki bir versiyaya sahib olmağı xoşlayıram, çünki bu, son obyektin necə işləyəcəyini daha yaxşı anlayır.

Qısa müddətdə Fusion360 -da dizayn etməyə başladım, amma Tinkercadın onu dəyişdiyini və orada işlədiyini yaxşı bilmirəm.

Vidasız bir dizayn istədiyim üçün bir yuva qutusu yaratdım. İlk prototipdə hər şey üçün nazik bir qapaq və dərin bir qutu vardı. İkinci dizayn, dərin bir qapaq və dayaz bir alt qutu ilə dəyişdirildi. Yalnız Arduino Pro Mini -ni tutmalı idi, buna görə həqiqətən böyük olmağa ehtiyac yox idi. Kabartmalı nişanlar da daxil edilmişdir.

Üçüncü dizayn, klaviaturamın yanında olan yerə uyğun olaraq yenidən ölçülüb.

Çap

Qutunu PLA -da çap etdim, ikonların görünməyə başlayacağı qapaq üçün Qara -Qırmızı rəngli bir filament / təbəqə dəyişdirmə proqramlaşdırdım və qapağın qalan hissəsi üçün yenidən Qara döndüm.

Bir problem

Bütün bunlardan sonra joystick montajı bir problem idi. Üçüncü dizaynda belə, çubuq bir yerdə montajlara qarşı çıxır. Növbəti təkrarlama daha yaxşı boşluqlara sahib olacaq. Dizayn üzərində daha çox işləyə bilərdim, amma növbəti mərhələyə - quraşdırmaya keçmək istəyirdim.

Addım 3: Dövrə

Dövrə
Dövrə
Dövrə
Dövrə
Dövrə
Dövrə

Ən pis tel işi

Tamam, bu mənim ilk tam Arduino layihəmdir. Bəli, əvvəllər çörək lövhələrində işlər gördüm və bunun İnkişaf versiyasını yaratmaq üçün birindən istifadə edirəm, amma əslində istehsal və yığmağa gəldikdə, bu mənim ilk işimdir. Beləliklə, tellərim boka bənzəyir. Budur, bu yoldan çıxdı:)

Yeniləmə: O vaxtdan bəri başqa birini tikdim və oradakı naqillər daha gözəldir. Şəkillərə baxın:)

İstehsal vahidi - Hara gedir

Arduino Pro Micro kiçik bir lövhədir və bazadakı kalıplanmış hissəyə uyğun olacaq. Düymələr və joystick qapağın müvafiq deliklərinə oturur. Ancaq lehimləmə rəqabəti əldə etməyincə heç bir şey bağlamayın.

Kablolama

Düzgün bir dövrə telim yox idi, amma qatı nüvəli cat5 şəbəkə kabelinin qalan bir rulonu var idi, buna görə də istifadə etdim. Qapalı dövrə telindən bir qədər sərt və bəlkə də daha kövrəkdir, amma işləyir.

Komponentləri son montaj mövqelərinə yaxınlaşdıraraq, hər bir tel üçün məsafəni təxmin etdim, boşluq üçün bir az daha əlavə etdim, sonra teli kəsdim və kəsdim. Çox boşluq buraxdım.

Kablolama sxeminə istinad edərək, ümumi nöqtəni (Qara) və VCC -ni (Qırmızı) göstərildiyi yerdəki düymələrə və joystickə qaçdım. Şəbəkə kabeli bu rənglərdə olmadığı üçün bir rəng seçdim və kabelimi funksiyaya uyğun olaraq saxladım.

Fərdi Pot. analog xətlər (Sarı) A0 - A3 sancaqlarına doğru qaçdı. Joystick xətləri (Orange), eyni zamanda analoq olaraq, I/O sancaqları 8 və 9 -a keçdi. Bunlar Arduino kodunda A8 və A9 olaraq Analog olaraq təyin edilməli olacaq.

Joystick keçid pimi (Mavi) 7 -ci pinə keçdi. Bu kodda rəqəmsal bir pin olacaq.

İzolyasiya

Bu sərt tel kiçik bir yerə doldurulacağından, lehim bağlantılarımı sağlam əriyən yapışqan kukla ilə izolyasiya etməyi seçdim. Sonra hər şeyi yerinə qoydu və Arduino Misal AnalogInput kodunun versiyasını istifadə edərək lövhədə və qablarda sadə bir sınaq keçirdi - bütün qabları oxumaq üçün dəyişdirildi.

İkinci versiya

Yuxarıdakı son iki şəkil, tikdiyim növbəti qutunu göstərir. Bunun 5 düyməsi və lal üçün bir anlıq düymə olacaq. Joystick yoxdur. Eyni ölçülü qutu.

Addım 4: Donanımı bitirmək

Avadanlıqların bitməsi
Avadanlıqların bitməsi

Joystick'i qurduğum zaman, lövhə ilə Pro Micro -da qalan pin başlıqları arasında çox boşluq olmadığını başa düşdüm.

Pim başlıqlarının bir az diqqətli əyilməsindən və isti əriyən yapışqanın yenidən tətbiqindən (izolyasiya üçün) sonra, korpus düzgün bağlanmışdır.

Qabların quraşdırılması heç bir problem olmadan getdi.

Yenə tellərlə

Bərk nüvəli tellər bir az sərtdir və çox dəfə bükülsə kövrək ola bilər, buna görə də onları diqqətlə (kəskin küncləri olmayan) mövcud yerə qatlayın. Bəzilərim çox uzun idi və bir az əlavə qatlama tələb olunurdu.

Hər şey öz yerinə qoyulduqdan sonra, bazanı yuxarıya yerləşdirin və aparatla bitirməlisiniz.

Ancaq gözləyin, daha çox şey var

Əlbəttə ki, bir neçə həftəlik istifadədən sonra, yumşaq kodlu MUTE funksiyasının vəziyyətinin nə olduğunu bildirmək üçün bir göstəriciyə ehtiyacım olduğuna qərar verdim.

LED funksiyasını əlavə etmək üçün kodu düzəltdikdən sonra (növbəti hissəyə baxın), LED / telləri / rezistoru tez bir zamanda lehimləyib lövhəyə qoşdum.

Çantanın üst hissəsini deşmək üçün daha çox vaxt sərf etdim, çünki üst hissəni qırmaq istəmirdim. Bir mərkəz nöqtəsini işarələdim, çuxura bükdüm və sonra çuxuru açmaq üçün əllə bir qazma ucu bükdüm.

Əlavə diqqətli sənədləmə, çuxuru təmizlədi və LED-in üst səthdən çox da uzağa çıxmamasını təmin etmək üçün sıx bir sıx sıxma təmin etdi.

Addım 5: Proqram təminatı

Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı

Baxış

Beləliklə, bu iki hissəli bir prosesdir.

  1. Deejin necə işlədiyini anlayın və Config.yaml faylını redaktə edin
  2. Arduino kodunu istədiyiniz avadanlıq və xüsusiyyətlərə uyğun olaraq düzəldin
  3. Arduino Joystick kitabxanasını əldə edin

Mənim vəziyyətimdə bu xüsusiyyətləri istədim:

  • Səviyyə nəzarət edən düymələr (mikrofon və çıxış)
  • Səs açarı
  • Tətbiq istifadəsi üçün Windows tərəfindən tanınan 2 oxlu joystick

Səviyyə

Deej ilk nöqtəyə gəldikdə çox diqqət yetirir. Bu funksiyanı tənzimləmədim

Səs açarı

Joystickdəki düyməni/düyməni funksional səssiz düymə kimi istifadə edəcəyimi erkən müəyyən etdim.

Kodu araşdırdığınızda, 'yumşaq' səssiz istifadə etməyi seçdiyimi (əvvəlcə) gördüyünüzü görəcəksiniz - düyməyə basıldığında MIC səsi sıfıra endirilir (və LED yanır). Yenidən basıldığında, MIC həcmi əvvəlki vəziyyətinə qaytarılır və LED sönür.

Nəhayət, Arduino klaviatura kitabxanasını genişləndirilmiş media Klaviatura kod dəsti ilə Səssiz vəziyyətə keçirmək üçün tətbiq etməyə baxacağam.

Joystick tətbiqi

Bu, joystickin Windows tərəfindən və buna görə də hər hansı bir oyun/tətbiq tərəfindən HID cihazı olaraq tanınmasını təmin etmək üçün Arduino Joystick kitabxanasının istifadəsini tələb edir.

Kodlaşdırma işinə gəldikdə və Joystick kitabxana sənədlərini gerçək həyata keçirmə tərəfində bir az seyrək gördüm - amma bir az diqqət mərkəzində olan googling məni nələrin baş verdiyini anlamağa kömək edən digər nümunələrə apardı. Ətraflı məlumat üçün sonda mənbələr bölməsinə baxın.

Etməli olduğum şey X/Y pinlərini müəyyən etmək, vəziyyətlərini oxumaq və bunu Joystick kitabxanasına göndərmək idi. Arduino, Windows üçün Leonardo olaraq göründü və Joystick cihazı olaraq düzgün quruldu.

Mövcud HOTAS qurğumun yanında Elite Dangerous -da qura bildim və Joystick -in hər şeyi düzgün idarə etməsini və HOTAS ilə ziddiyyət təşkil etməməsini bacardım. Star Wars: Squadrons -da da yaxşı işləyir - Döyüş zamanı qalxanları qurmaq üçün sürətli bir keçid olaraq təyin etdim.

Joystick qurğumla işləyən fayllar

Cari (Oktyabr 2020) sənədlərimi Codepile -ə yüklədim.

  • Arduino kodu (.ino faylı)
  • Deej config.yaml

Addım 6: Bitirin

Bitirin
Bitirin

Yaxşı, bu iş bitdi. İşləyir və necə bir araya gəldiyindən çox məmnunam. Və hardware dizaynı, inteqrasiya və Arduino proqramlaşdırması haqqında bir az daha çox şey öyrəndim.

Addım 7: Əlavə..dum..dum

Əlavə..dum..dum
Əlavə..dum..dum

VLC - bu zəhmli audio və video pleyerin bir az qəribəliyi var ki, xaricdən idarə edildikdə səs səviyyəsi 0% -dən 27% -ə yüksəlir. Tətbiqdaxili interfeys həcmi nəzarətindən istifadə edərək səviyyəni tənzimləyərkən bu, yalnız Deej kimi xarici nəzarət vasitələri ilə baş vermir.

Deej geliştiricisi, işi yerinə yetirən VLC-də bir həll tapdı, yuxarıdakı şəklə baxın:

"… bu" İzləmə "davranışını deaktiv etmək istəyirsinizsə, bunu VLC -nin audio çıxış modulunu dəyişdirərək edə bilərsiniz. Burada cəhdlərimdə DirectX -dən istifadə etdim. Dəyişikliyin qüvvəyə minməsi üçün VLC -ni yenidən başlatmalısınız. Windows audio sessiyasına sahib olun və deej vasitəsi ilə idarə edə bilərsiniz, bu yalnız VLC həcm çubuğunun onunla hərəkət etməsinə mane olacaq)"

Addım 8: Əlavə mənbələr

Əlavə Resurslar
Əlavə Resurslar

Xüsusi qaydada sıralanmamış qüdrətli Goog vasitəsi ilə tapıldı …

  • Arduino Joystick Kitabxanası (v2) - joystickin inteqrasiyası üçün lazımdır
  • Sparkfun Pro Micro bağlama bələdçisi - bu Arduino haqqında yaxşı bir qaynaq
  • deej - düymələri idarə edən proqram
  • USB Bağlayıcı Növləri - bu qədər çox variant olduğunu kim bilirdi?
  • Arduino Pro Micro Analog Pinouts
  • Arduino Leonardo Gaming Joystick - Leonardo Pro Micro -ya bənzəyir, ancaq daha böyükdür
  • Arduino Pro Micro (Clone) portu aşkarlanmadı (Həll) - Pro Micro -nuzu kərpiclə vurduğunuzda (etdim)
  • Arduino Leonardo/Micro Oyun Nəzarətçisi/Joystick olaraq
  • Səssiz etmək üçün multimediya düyməsindən istifadə nümunəsi - HID Layihə kitabxanasından istifadə
  • Media dayandırmaq / oynatmaq üçün HID Layihə kitabxana nümunəsi kodu
  • Gamepad nəzarətçisini göstərən başqa bir kod nümunəsi.
  • ArduinoGamingController_updated - Joystick Kitabxanasının istifadəsinin yaxşı kod təsviri
  • LED Resistor kalkulyatoru - layihənizdə nə qədər böyük bir rezistora ehtiyacınız olduğunu öyrənmək üçün
  • Simge kitabxanası - flaticon.com - düymələrin üstündə istifadə olunan şəkillərin mənbəyi
  • Başqa bir Rezistor Rəng Çözücü - bir rəng və violanı vurun!

Tövsiyə: