Satura rādītājs:

Arduino tastatūras kursorsviru paplašinātāja kaste un skaņas kontroliera lieta, izmantojot Deej: 8 soļi
Arduino tastatūras kursorsviru paplašinātāja kaste un skaņas kontroliera lieta, izmantojot Deej: 8 soļi

Video: Arduino tastatūras kursorsviru paplašinātāja kaste un skaņas kontroliera lieta, izmantojot Deej: 8 soļi

Video: Arduino tastatūras kursorsviru paplašinātāja kaste un skaņas kontroliera lieta, izmantojot Deej: 8 soļi
Video: #Arduino бегущая строка под управлением Монитора порта! 2024, Jūlijs
Anonim
Arduino tastatūras kursorsviru pagarinātāja kaste un skaņas kontroliera lieta, izmantojot Deej
Arduino tastatūras kursorsviru pagarinātāja kaste un skaņas kontroliera lieta, izmantojot Deej

Tinkercad projekti »

Kāpēc

Jau kādu laiku es vēlos tastatūrai pievienot nelielu kursorsviru, lai kontrolētu saskarnes elementus, vai citus mazākus uzdevumus spēlēs un simulatoros (MS Flight Sim, Elite: Dangerous, Star Wars: Squadrons utt.).

Arī attiecībā uz Elite: Dangerous es esmu cīnījies ar skaļuma līmeņu sajaukšanu no ārējā audio (iebūvētā mūzika, lai arī laba, atkārtojas pēc daudzām stundām melnā krāsā), spēles audio un ārējās balss paketes atbalsts.

Windows iebūvētais avota maisītājs ir “ok”, taču spēles vidū ir grūti pārslēgt ekrānus un peles vadības slīdņus. Šķiet, ka ir jāpaplašina tastatūras vadības bloks. Deej ir risinājums, kuru es atradu.

Nesen uzzināju par Arduino, un redditā saskāros ar projektu deej. Izskatījās, ka tas atrisinās abas šīs problēmas vienā ērtā iepakojumā. Un tas ļautu man noformēt un izdrukāt lielisku 3D korpusu.

Kas ir deejs?

(no vietnes) deej ir ** atvērtā pirmkoda aparatūras skaļuma maisītājs ** Windows un Linux datoriem. Tas ļauj izmantot reālās dzīves slīdņus (piemēram, dīdžejs!), Lai ** nemanāmi kontrolētu dažādu lietotņu skaļumu ** (piemēram, mūzikas atskaņotāju, spēli, kuru spēlējat un balss tērzēšanas sesiju), nepārtraucot to, jūs darāt.

Mana versija

Lai kastīte būtu maza, es izvēlējos pogas (rotējošs lineārs potenciometrs (podi = rezistori)), nevis slīdņi. Funkcionāli tie darbojas vienādi. Pašreizējos un populārajos deej dizainos nav iekļauta kursorsvira, tāpēc šis būs mazliet dizaina hibrīds. Pretējā gadījumā tā ir diezgan vienkārša uzbūve.

Deej strādās ar Arduino Nano, Pro Micro vai Uno, bet Nano un Pro Micro izstrādātājs 'oficiāli iesaka'. Es izvēlējos Arduino Pro Micro, jo gribēju kursorsviru, un Arduino Joystick bibliotēka to atbalsta. Es varu izmantot arī Arduino tastatūras bibliotēku, kad vēlos izmantot multivides tastatūras izslēgšanas funkciju (nevis “mīksto izslēgšanas”) ar kursorsviru pogu, bet tas atrodas tālāk.

1. solis: Piegādes

Piegādes
Piegādes
Piegādes
Piegādes
Piegādes
Piegādes

Kaste

Lejupielādējiet STL failus (izstrādāti Tinkercad):

  • Pielikuma faili vietnē Prusa (https://www.prusaprinters.org/)
  • Thingiverse (drīzumā)

Aparatūra (ražošanas vienība)

  • 1x Arduino Pro Micro
  • 4x 10k rotācijas (poga) potenciometri (nevis rotējoši kontrolieri, izmantojiet podus)
  • 1x Arduino KY-023 kursorsvira
  • 5 pēdu cat5 tīkla kabelis
  • 1x USB A līdz USB B mikro kabelis (USB A ir lielais kvadrātveida savienotājs, USB B micro ir tas, kas atrodas Arduino Pro Micro)
  • 1x 5 mm sarkana gaismas diode
  • 1x 220 omu rezistors

Man bija dažas papildu detaļas, tāpēc es domāju, ka izveidošu attīstības vienību, lai pārbaudītu lietas. Vienkārši savienojot lietas ar maizes dēli, bija vieglāk vizualizēt pēdējo lietu.

  • 1x Arduino Pro Micro
  • 4x 10k rotācijas (poga) potenciometri (nevis rotējoši kontrolieri, izmantojiet podus)
  • 1x īslaicīgs spiedpogas slēdzis (cietās atiestatīšanas slēdzis)
  • 1x USB A līdz USB B mikro kabelis (USB A ir lielais kvadrātveida savienotājs, USB B micro ir tas, kas atrodas Arduino Pro Micro)
  • džemperu vadu asorti
  • maizes dēlis
  • 1x 5 mm sarkana gaismas diode
  • 1x 220 omu rezistors

2. solis: korpuss

Iežogojums
Iežogojums
Iežogojums
Iežogojums
Iežogojums
Iežogojums
Iežogojums
Iežogojums

Dizains

Man patika daži citi dizaini, kas profilēti deej kopienas galerijā, tāpēc, pamatojoties uz man iezīmēm, man patika šādas funkcijas:

  • Viegli noformēt un izdrukāt
  • Netraucē manas citas darbvirsmas perifērijas ierīces
  • Nelietojiet skrūves vai stiprinājumus korpusa nostiprināšanai
  • Tastatūrai līdzīgs dizaina estētika

Es izstrādāju un izdrukāju divus prototipus, pirms nokārtoju šo galīgo dizainu. Man patīk, ka man ir fiziska versija, ar kuru spēlēties telpā, kurā to izmantoju, jo tā man sniedz labāku priekšstatu par to, kā darbosies gala objekts.

Es īsi sāku projektēt Fusion360, bet nezinu to tik labi kā Tinkercad, tāpēc pārslēdzos un strādāju tur.

Tā kā es gribēju bezskrūvju dizainu, es izveidoju ligzdošanas kastīti. Pirmajam prototipam bija plāns vāks un dziļa kaste visam. Otrais dizains nomainīja to ar dziļu vāku un seklu apakšējo kārbu. Tam vajadzēja turēt tikai Arduino Pro Mini, tāpēc tiešām nevajadzēja būt lielam. Iekļautas arī reljefās ikonas.

Trešais dizains tika mainīts tā, lai tas ietilptu vietā līdzās manai tastatūrai.

Drukāt

Es drukāju kastīti PLA, ieprogrammējot kvēldiega / slāņa maiņu no melnas uz sarkanu vākam, kur ikonas tikko sāks būt redzamas, un atkal uz melno pārējo vāku.

Problēma

Visa šī iemesla dēļ vadības sviras stiprinājums bija problēma. Pat trešajā dizainā nūja vienā vietā atduras pret stiprinājumiem. Nākamajā atkārtojumā būs labāka atstarpe. Es būtu varējis vairāk strādāt pie dizaina, bet gribēju pāriet uz nākamo posmu - uzstādīšanu.

3. solis: ķēde

Ķēde
Ķēde
Ķēde
Ķēde
Ķēde
Ķēde

Sliktākais elektroinstalācijas darbs jebkad

Labi, šis ir mans pirmais pilnais Arduino projekts. Jā, es jau iepriekš esmu darījis lietas ar maizes dēļiem un izmantoju vienu, lai izveidotu šīs izstrādes versiju, bet, kas attiecas uz faktisko izgatavošanu un salikšanu, šī ir mana pirmā reize. Tātad mana elektroinstalācija izskatās pēc sūdiem. Lūk, tas nav pa ceļam:)

Atjauninājums: Kopš tā laika esmu uzbūvējis vēl vienu, un tur elektroinstalācija ir daudz jaukāka. Skaties bildes:)

Ražošanas vienība - kas kur notiek

Arduino Pro Micro ir niecīgs dēlis un iederēsies pamatnes veidnē. Pogas un kursorsvira ietilpst savos vāka caurumos. Bet neko nemontējiet, kamēr neesat saņēmis lodēšanas sacensību.

Elektroinstalācija

Man nebija neviena pareiza ķēdes stieples, bet man bija atlikušais ruļļa cietā kodola cat5 tīkla kabelis, tāpēc es to izmantoju. Tas ir nedaudz stingrāks un, iespējams, trauslāks nekā ķēdes vads, bet tas darbojas.

Izvietojot detaļas tuvu to galīgajai montāžas pozīcijai, es novērtēju attālumu katram vadam, pievienoju nedaudz vairāk, lai atbrīvotos utt., Pēc tam nogriezu un apgriezu vadu. Es atstāju daudz atslābuma.

Atsaucoties uz elektroinstalācijas shēmu, es vadīju kopējo zemi (melnā krāsā) un VCC (sarkana) pie pogām un kursorsviru, kur norādīts. Tā kā tīkla kabelis nav pieejams šajās krāsās, es vienkārši izvēlējos krāsu un vadu vadu atbilstoši funkcijai.

Individuālais pods. analogās līnijas (dzeltenās) bija līdz tapām A0 - A3. Kursorsviras līnijas (oranžas), arī analogās, bija līdz 8. un 9. I/O tapai. Arduino kodā tās būs jānorāda kā Analog kā A8 un A9.

Kursorsviras slēdža tapa (zilā krāsā) sasniedza tapu 7. Šī kodā būs ciparu tapa.

Izolācija

Tā kā šis stīvais vads tiks iebāzts nelielā telpā, es izvēlējos izolēt savus lodēšanas savienojumus ar veselīgu karsta kausējuma līmi. Pēc tam visu salika savās vietās un veica vienkāršu pārbaudi uz tāfeles un katliem, izmantojot Arduino parauga AnalogInput koda versiju - pārveidota, lai izlasītu visus podus.

Otrā versija

Pēdējos divos attēlos ir redzama nākamā kastīte, kuru es veidoju. Tam būs 5 pogas un viena īslaicīga poga skaņas izslēgšanai. Nav kursorsviras. Viena izmēra kaste.

4. solis: Aparatūras apdare

Aparatūras pabeigšana
Aparatūras pabeigšana

Kad es biju instalējis kursorsviru, es sapratu, ka starp tā dēli un Pro Micro atstātajām tapu galviņām nav daudz brīvas vietas.

Pēc nedaudz rūpīgas tapu galvu saliekšanas un karstās kausējuma līmes atkārtotas uzklāšanas (izolācijai) korpuss tika pareizi aizvērts.

Katlu uzstādīšana noritēja bez aizķeršanās.

Atkal ar vadiem

Cietie vadi ir nedaudz stīvi un var būt trausli, ja tie ir saliekti pārāk daudz reižu, tāpēc uzmanīgi salieciet tos (bez asiem stūriem) pieejamā vietā. Daži no manējiem bija pārāk gari un prasīja mazliet papildu salocīšanu.

Kad viss ir salikts savās vietās, vienkārši novietojiet pamatni augšpusē, un jums vajadzētu pabeigt aparatūru….

Bet pagaidiet, ir vairāk

Protams, pēc dažu nedēļu lietošanas es nolēmu, ka man ir nepieciešams indikators, kas ļauj man zināt, kāds ir mīkstās kodēšanas funkcijas MUTE statuss.

Pēc koda rediģēšanas, lai pievienotu LED funkcionalitāti (skatiet nākamo sadaļu), es ātri pielodēju LED / vadus / rezistoru un pievienoju tos plāksnei.

Es pavadīju vairāk laika, lai urbtu caurumu korpusa augšdaļā, jo es negribēju sabojāt augšējo apdari. Es atzīmēju centrālo vietu, to iecirtu, pēc tam ar roku vērpju urbi, lai izveidotu caurumu.

Papildu rūpīga kartēšana iztīrīja caurumu un nodrošināja jauku, cieši pieguļošu spiedienu, lai nodrošinātu, ka gaismas diode neizvirzās pārāk tālu virs augšējās virsmas.

5. solis: programmatūra

Programmatūra
Programmatūra
Programmatūra
Programmatūra
Programmatūra
Programmatūra

Pārskats

Tātad, šis process sastāv no divām daļām.

  1. Uzziniet, kā darbojas Deej, un rediģējiet Config.yaml failu
  2. Rediģējiet Arduino kodu, lai tas atbilstu vēlamajai aparatūrai un funkcijām
  3. Iegūstiet Arduino kursorsviru bibliotēku

Manā gadījumā es gribēju šādas funkcijas:

  • Pogas, kas kontrolē līmeņus (mikrofons un izeja)
  • Izslēgt slēdzi
  • 2 asu kursorsviru, ko Windows atpazīst lietojumprogrammu lietošanai

Līmeņi

Deej gandrīz rūpējas par pirmo punktu, kā tas nāk. Es neuzlaboju šo funkcionalitāti

Izslēgt slēdzi

Jau agri biju nolēmis, ka izmantošu kursorsviras presi/slēdzi kā funkcionālu izslēgšanas pogu.

Izpētot kodu, jūs redzēsiet, ka esmu izvēlējies (sākotnēji) izmantot “mīksto” skaņu izslēgšanu - nospiežot pogu, MIC skaļums tiek samazināts līdz nullei (un gaismas diode iedegas). Nospiežot vēlreiz, MIC skaļums tiek atgriezts iepriekšējā iestatījumā un gaismas diode nodziest.

Galu galā es aplūkošu Arduino tastatūras bibliotēkas ieviešanu, lai pārslēgtu izslēgšanas statusu, izmantojot paplašināto multivides tastatūras kodu kopu.

Kursorsviras ieviešana

Tas prasa izmantot Arduino kursorsviru bibliotēku, lai nodrošinātu, ka Windows un līdz ar to arī jebkura spēle/lietojumprogramma atpazīst kursorsviru kā HID ierīci.

Es esmu mazliet niecīgs, kad runa ir par kodēšanu, un konstatēju, ka kursorsviru bibliotēkas dokumentācija ir nedaudz skar faktisko ieviešanas pusi - bet mazliet koncentrēta googlēšana mani noveda pie citiem piemēriem, kas man palīdzēja saprast, kas notiek. Sīkāku informāciju skatiet resursu sadaļā beigās.

Viss, kas man bija jādara, bija identificēt X/Y tapas, izlasīt to stāvokli un nosūtīt to kursorsviru bibliotēkai. Arduino operētājsistēmai Windows parādījās kā Leonardo, un tā bija pareizi konfigurēta kā kursorsviru ierīce.

Es varēju to iestatīt vietnē Elite Dangerous kopā ar esošo HOTAS iestatījumu un panākt, lai kursorsviru pareizi kontrolētu lietas un nebūtu pretrunā ar HOTAS. Tas labi darbojas arī filmā Star Wars: Squadrons - man ir iestatīts kā ātrs pārslēdzējs, lai izveidotu vairogus cīņas laikā.

Faili, kas darbojas ar manu kursorsviru

Esmu augšupielādējis savus pašreizējos (2020. gada oktobris) failus vietnē Codepile.

  • Arduino kods (.ino fails)
  • Deej config.yaml

6. darbība: beigas

Beigas
Beigas

Nu, šis ir izdarīts. Tas darbojas, un es esmu diezgan apmierināts ar to, kā tas sanāca. Un es uzzināju mazliet vairāk par aparatūras dizainu, integrāciju un Arduino programmēšanu.

7. darbība: papildinājums..dum..dum

Papildinājums..dum..dum
Papildinājums..dum..dum

VLC - šim lieliskajam audio un video atskaņotājam ir neliela dīvainība, ja skaļuma līmenis, kontrolējot ārēji, lec no 0% līdz 27%. Tas nenotiek, pielāgojot līmeni, izmantojot lietotnes saskarnes skaļuma regulatoru, tikai ar ārējām vadības ierīcēm, piemēram, Deej.

Deej izstrādātājs ātri atrada risinājumu VLC, kas veic šo darbu, skatiet iepriekš redzamo attēlu:

"… ja vēlaties atspējot šo" izsekošanas "darbību, varat to izdarīt, mainot VLC audio izvades moduli. Šeit es izmantoju DirectX. Lai izmaiņas stātos spēkā, jums būs jārestartē VLC. (Jūs joprojām ir Windows audio sesija un varat to kontrolēt, izmantojot deej, tas tikai neļaus VLC skaļuma joslai pārvietoties kopā ar to)"

8. darbība. Papildu resursi

Papildu resursi
Papildu resursi

Atrasts, izmantojot vareno Goog, kas nav norādīts noteiktā secībā …

  • Arduino kursorsviru bibliotēka (v2) - nepieciešama, lai integrētu kursorsviru
  • Sparkfun Pro Micro savienošanas rokasgrāmata - labs resurss par šo Arduino
  • deej - programmatūra, kas virza pogas
  • USB savienotāju veidi - kurš zināja, ka ir tik daudz variantu?
  • Arduino Pro Micro Analog Pinouts
  • Arduino Leonardo Gaming Joystick - Leonardo ir līdzīgs Pro Micro, tikai lielāks
  • Arduino Pro Micro (klons) ports netika atklāts (risinājums) - kad jūs salauzāt Pro Micro (es to izdarīju)
  • Arduino Leonardo/Micro kā spēļu kontrolieris/kursorsvira
  • Piemērs multivides atslēgas izmantošanai, lai izslēgtu skaņu - izmantojot HID Project bibliotēku
  • HID projekta bibliotēkas parauga kods, lai apturētu / atskaņotu multividi
  • Vēl viens koda piemērs, kas parāda spēļu paneļa kontrolieri.
  • ArduinoGamingController_updated - labs kursorsviras bibliotēkas lietošanas koda apraksts
  • LED rezistoru kalkulatora lieta - lai uzzinātu, cik liels rezistors jums ir nepieciešams jūsu projektā
  • Ikonu bibliotēka - flaticon.com - attēlu avots, kas izmantots virs pogas
  • Vēl viens rezistoru krāsu dekodētājs - noklikšķiniet uz krāsas un altas!

Ieteicams: