Kazalo:

Arcade Controller Lapcade: 6 korakov (s slikami)
Arcade Controller Lapcade: 6 korakov (s slikami)

Video: Arcade Controller Lapcade: 6 korakov (s slikami)

Video: Arcade Controller Lapcade: 6 korakov (s slikami)
Video: ПРИВОЗ. ОДЕССА МАМА. Рецепт САЛО. ОБЗОР НОЖЕЙ 2024, Junij
Anonim
Arcade Controller Lapcade
Arcade Controller Lapcade

Nisem ravno igralec. Ko sem bil otrok, me je bolj zanimalo, kako so delovali, kot jaz, da bi jih igral. Po eni strani lahko preštejem, koliko arkadnih iger sem redno igral. Ob tem bi se nekomu zlahka zdelo čudno, da bi si vzel čas za izdelavo arkadnega krmilnika. Je pa to eden mojih najljubših projektov doslej. Poleg tega, da je izziv pri oblikovanju, kodiranju in izdelavi, je tudi opomnik na preteklo obdobje trdnih mehanskih gumbov in igralnih palic.

Arkadni časi so minili, vendar se lahko v svoji dnevni sobi še vedno počutite kot klasična arkadna igra. Torej, tukaj vam predstavljam Lapcade. Če ste kot jaz in uživate v gradnji bolj kot v igri, boste morda uživali v tej zgradbi. Če imate kakršna koli vprašanja ali predloge, ki niso vključeni v spodnji razdelek "ideje za različico 2", pustite komentar.

1. korak: Pregled

Pregled
Pregled
Pregled
Pregled

Kaj je to?

Najprej upoštevajte, kaj Lapcade ni:

  • To ni igralna konzola.
  • Nima iger in nima možnosti nalaganja in igranja iger.
  • Ne poveže se s televizorjem ali monitorjem.

Lapcade je tipkovnica Bluetooth. Nič več, nič manj.

To govorim, ker je prišlo do zmede. Imel sem veliko vprašanj o tem, katere igre je mogoče naložiti nanj in kakšen video vmesnik uporablja - ne more in ne sme! V celoti je odvisen od računalnika, na katerega ga povežete, in v zvezi s tem je nebo meja. Če vaša naprava podpira tipkovnico Bluetooth, bi morala Lapcade delovati z njo. Nisem poskusil, vendar sem videl druge projekte, ki so uporabljali EZ-ključ (opisan spodaj), povezan z ročnimi napravami. Teoretično lahko to napravo povežete s katerim koli računalnikom z operacijskim sistemom Windows, Linux, ChromeOS, MAC itd., Kot tudi z Raspberry Pi, Android, iOS in drugimi, ki podpirajo Bluetooth v2.1. Morda bo treba spremeniti kode ključev.

Predrazličica 1

Prvotno sem našel izdelek, imenovan Adafruit Bluefruit EZ -Key bluetooth HID (naprava za človeški vmesnik - pomislite na tipkovnico), ki bi mi omogočil povezovanje znanih gumbov in pošiljanje tipk kot tipkovnica. Ko sem prvič izdelal krmilnik na osnovi EZ-ključa, sem sledil nizu navodil za izdelavo preprostega in neposrednega krmilnika in deloval je odlično. Nekaj mesecev sem brez težav uporabljal krmilnik v težkem lesenem okvirju. Vendar ste omejeni na 12 vhodov in ni mogoče spremeniti kode ključa, ki jo oddaja naprava, ne da bi reprogramirali vhodne zatiče EZ-Key.

Ker sem za prikaz nameščenih iger uporabljal svoj medijski center Kodi, sem želel preklapljati med upravljanjem medijskega središča in igro, ne da bi mi bilo treba uporabljati več krmilnikov / daljincev. Prav tako sem želel, da se naprava prilagodi, tako da jo bo lahko uporabljal moj levičar, kot mu je všeč.

Za napajanje naprave sem uporabljal tudi 4 baterije AA in iz škatle se mi ni zdelo, da ima način nizke porabe energije. Baterije bi bile suhe v enem dnevu ali dveh, tudi če jih ne bi uporabljali.

Tako sem se na nagovor prijatelja odločil, da bom zgradil programabilno različico istega krmilnika, ki bo imel hitre spremembe načina, mi bo omogočal uporabo iste naprave za nadzor več aplikacij, lahko pa tudi "obrnil" za levo roko uporabljal in je bil v ohišju za prenosni računalnik, ki je bil veliko manjši od trenutne rešitve 10 lb.

Čas je bil za nadgradnjo.

Različica 1 Cilji projekta DesignProject:

  • Prilagodljiv
  • Ponovno polnjenje
  • Za levičarje in desničarje
  • Brez vrvic
  • Lahka

Želel sem, da je ta nova oblika prilagodljiva. Kontrolnike je treba spreminjati med letom, ne da bi morali vsakič znova preskušati komponente pri vsakem preskusu ali spremembi. To je pomenilo, da mora biti na krmilniku vmesnik za izbiro "načinov" delovanja. Za vsak gumb in položaj krmilne palice bi morali biti povezani različni kodi ključev. Te iste kontrole bi bilo treba uporabiti tudi za izbiro različnih načinov.

Ključ EZ ni bil neposredno programiran v realnem času, zato bi bila naslednja rešitev uporaba krmilnika, kot je Arduino, za upravljanje funkcionalnosti. EZ-ključ bi se uporabljal izključno za prenos kodnih številk v računalnik prek povezave Bluetooth. Za Arduino Pro Mini sem se odločil zaradi neposredne združljivosti z UNO (s katerim sem že imel izkušnje) in zaradi kompaktne velikosti.

S to novo škatlo se nisem hotel ukvarjati z baterijami, tako kot s predhodnikom Lapcade, zato sem se odločil za uporabo litijevih polimernih polnilnih baterij in polnilnika/napajalne plošče. To je pomenilo, da bi lahko uporabil samo standardni polnilnik USB. To je tudi pomenilo, da mi ne bo treba odpirati ohišja vsakič, ko se baterije izpraznijo. EZ-Key in PowerBoost 500C imata indikatorje, ki jih je treba prenesti na vrh krmilnika za stanje seznanjanja in indikacijo nizke baterije. Oblikovanju sem dodal nekaj LED, da sem lahko uporabnikom med delovanjem odseval te priročne indikatorje stanja.

Ko je testiranje moje zasnove dozorelo, sem odkril, da nekaj mojih prvotnih idej ni bilo tako, kot sem pričakoval. Na primer, indikator LBO na PowerBoostu ne deluje po pričakovanjih, ko je povezan z mikrokrmilnikom. Omogočal bo pretok toka skozi skupne mase iz akumulatorja, medtem ko je naprava "izklopljena" ali onemogočena, lučka LBO zasveti in ostane prižgana. Tudi drugi na forumu Adafruit so naleteli na to težavo in ponudili boljšo rešitev pri vzorčenju napetosti baterije neposredno na analognem vhodu. Ko napetost pade na določeno raven, je čas, da uporabniku sporočite, da se bo baterija izpraznila.

2. korak: Kaj potrebujete

Seznam elektronskih delov

Ta konstrukcija je postala precej zapletena. Ni vam treba uporabljati istih delov, ki sem jih uporabil jaz, če pa uporabljate nadomestni del, se prepričajte, da razumete, kako bo deloval z drugimi vezji in kodo. Čeprav z veseljem ponudim predloge, ne morem pomagati pri odpravljanju težav s kodo ali težavami za različne konfiguracije.

1 Arduino Pro Mini 5V - Pro mi je všeč, ker je kompakten. Uporabite lahko katero koli združljivo ploščo Uno pin/interrupt s priloženo kodo

1 Adafruit Bluefruit EZ -Key bluetooth HID - Kot je opisano zgoraj, je to bluetooth HID, ki omogoča prenos kodnih kod na gostiteljski računalnik.

1 MCP23017 - razširjevalnik vhodnih/izhodnih vrat i2c 16 - Ta čip se uporablja za dodajanje še 16 vhodov v Arduino prek komunikacijskega protokola I2C

1 Adafruit PowerBoost 500 + polnilec - to je krmilna plošča za napajanje Lapcade in polnjenje LiPo

1 litij -polimerna baterija (porabil sem 2500mAh, lahko pa uporabite večjo / manjšo zmogljivost)

1 8 -smerna arkadna igralna palica - glejte spodnji razdelek "misli za različico 2" v zvezi z igralnimi palicami

9 arkadnih potisnih gumbov - različne barve in odtisi zaslona

2 osvetljena trenutna gumba - ti dve tipki sem uporabil za srednji gumb 4 in 5 in sta iz Adafruit -a: rdeča (sredina 4), modra (sredina 5)

1 Osvetljen gumb za zapah To sem uporabil za gumb za vklop iz Adafruit: zelen

2 LED diodi Uporabljata se za sklicevanje na signal za seznanjanje in prazno baterijo. Uporabil sem dva dela RadioShack 2760270 in 2760271

1 16 x 2 LCD zaslon

1 LCD nahrbtnik I2C/SPI - uporablja se za komunikacijo I2C z zaslonom 16x2.

1 Podaljševalni kabel USB za pritrditev na ploščo - Uporablja se za razširitev priključka USB -micro -b PowerBoost na steno omare.

1 Adabruit Perma-Proto PCB polne velikosti-Ni nujno, vendar olajša trajno montažo.

5 220 ohmskih uporov

7 1K ohmskih uporov

2 2.2K ohmski upori

1 4,7K ohmski upor

18 #10 Ženski priključki za lopatice - za povezavo s stiki arkadnih gumbov. Priporočljivo nad spajkanjem, saj se gumbi sčasoma obrabijo.

Priključna žica s premerom 22 - uporabil sem trdno priključno žico, ne pa nasedlo, da bi omogočil prosto stoječe vodenje žice. To je bilo zgolj za predstavitvene namene in ni priporočljivo, saj je trdna žica krhka in nagnjena k lomljenju.

Naslednji elementi niso potrebni, vendar bodo poenostavili montažo in v primeru, da prepečete komponento, olajšali zamenjavo:

  • IC vtičnica - za 28 -polne 0,3 -palčne čipe
  • IC vtičnica - za 28 -polne 0,6 -palčne čipe
  • 0,1 "ženska glava (najmanj 1 36 -polna glava)

Deli omare:

  • 3 12 x 24 1/8 palčne brezove plošče
  • 1 12 x 24 1/8 -palčna prozorna akrilna plošča

Datoteke:

  • Lapcade V1.xlsx - Spodnja preglednica, ki vsebuje povezave vezja.
  • LapcadeV1-code.zip - Zip datoteka, ki vsebuje kodo Arduino, napisano za ta projekt.
  • Lapcade_v1.zip - Zip datoteka, ki vsebuje risbe svg za omaro.
  • LapcadeV1-Circuit_Diagram_Large.zip - Datoteka Zip, ki vsebuje različico diagrama vezja z visoko ločljivostjo, prikazano spodaj.

Povezave do več virov:

  • Dokumentacija Adafruit Bluefruit EZ-Key
  • Adafruit PowerBoost 500 + dokumentacija
  • I2C/SPI LCD nahrbtnik Dokumentacija
  • MCP23017 Dokumentacija za razširitev vrat I2C
  • Knjižnica Arduino Adafruit MCP23017

3. korak: Montaža - kabinet

Skupščina - kabinet
Skupščina - kabinet
Skupščina - kabinet
Skupščina - kabinet
Skupščina - kabinet
Skupščina - kabinet
Skupščina - kabinet
Skupščina - kabinet

Želel sem imeti zelo lahko škatlo, ki bi jo lahko tudi premagala. Ne da bi pri materialih postali preveč eksotični, je lahka enako tanka in tanka običajno enaka krhki. Primarni uporabnik Lapcade bi bil verjetno moj sin, ki rad "pritisne" gumbe in "krmari" po krmilni palici z izjemnim navdušenjem. Čeprav dobro ne odvrže stvari, mu je v nekaj mesecih uspelo obrabiti industrijska mikro stikala v enem krmilnem palčku.

Da bi odpravili to težavo in ker je Lapcade široka 20 palcev, sem v svoji zasnovi dodal dva navpična rebra, ki pritrjujeta zgornjo in levo in desno stran. Med suhim polaganjem je dizajn zdržal 70 kg knjig, položenih nanj. Ko je bil lepljen, je škatla je postala še bolj trpežna. Po prejemu rezanih materialov sem sprva ohlapno prilegala vse plošče, da sem se prepričala, da delujejo. Nato sem jih rahlo brusila in odprašila z zrakom. Za pritrditev kosov sem uporabila lepilo za les.

Knjige na spodnjih fotografijah so bile postavljene tako, da pritiskajo na sveže zlepljene kose, dokler se ne strdijo. Ko se lepilo strdi, sem robove zgladil. Moja zasnova je namenoma izravnala plošče, tako da bi se na vogalih nekoliko umaknile. To bi mi omogočilo, da med brušenjem zaokrožim vogale, ne da bi preveč zašel v spoj.

Po čiščenju površin sem nato nanesel več plasti poliuretana - kar je omogočilo strjevanje med nanosi. Rezultat je bila lahka lesena škatla z akrilnim spodnjim pokrovom. Sprva sem želel popolnoma jasno škatlo, a ko mi je poslal "testne" dele iz breze, sem si takoj premislil. Ni bil le lažji, ampak je bil tudi lep povratek k ideji o kabinetnih igrah. Spodaj so datoteke svg.

Prosimo, upoštevajte: to je večplastna risba in vsaka plast predstavlja en niz kosov na enem listu materiala. Ko pošiljate odtis na rezalnik, se pred rezanjem prepričajte, da so vse druge plasti skrite.

Še opomba: Ko sem narisal območje za LCD zaslon, sem za meritve uporabil zaslon, ki sem ga imel pri roki. Med tem, ko sem risal risbo in kasneje namestil dele v ohišje, sem originalni LCD uporabil v drugem projektu in naročil zamenjavo. Izkazalo se je, da so bile pritrdilne luknje za drugo nekoliko drugačne od prvotne in se niso navlekle. Zato bodite pozorni, preden razrežete material, da še enkrat preverite, ali deli, ki jih imate, ustrezajo luknjam na risbi.

Tretja opomba: V prvotno risbo nisem vključil izreza za polnilni kabel USB preprosto zato, ker nisem bil prepričan, kam bi ga dal, da ne bi motil uporabe. Kasneje sem zanj izrezal luknje na levi strani zelo blizu, kjer na spodnjih slikah vidite besedo "Lapcade". Različica 2 bo imela polnilna vrata v drugačnem položaju.:)

4. korak: Montaža - elektronika

Montaža - elektronika
Montaža - elektronika
Montaža - elektronika
Montaža - elektronika
Montaža - elektronika
Montaža - elektronika
Montaža - elektronika
Montaža - elektronika

Najprej si oglejmo zgornjo shemo ožičenja.

Najprej je treba omeniti, da je moč in ozemljitev tirnic na plošči. Tirnice z modro črto so talne (-), tirnice z rdečo črto pa moč (+). To je standardno, vendar si to zapisujem, ker je skupna linija krmilne palice (črna žica) priključena na napajanje in ne na ozemljitev. V Fritzingu sem namesto konvencionalne barve uporabil barvo žice krmilne palice in mislil, da bi to lahko povzročilo nekaj zmede - zato je najbolje, da to odpravite.

Komponentne povezave

Namesto da bi tukaj poskušal vsako povezavo navesti v dolgi obliki (analogni pin Arduino 0 gre skozi 220 ohmski upor do zatiča PowerBoost Bat), sem ustvaril preglednico, ki vsebuje vse povezave z vidika komponente. Torej, na zavihku Arduino preglednice boste videli APM A0 -> 2,2K OHM -> PB Bat, na zavihku PowerBoost pa PB BAT -> 2,2K OHM -> APM A0. Spodaj si oglejte vire virov za vse datoteke, povezane s tem projektom.

Še ena opomba glede preglednice je, da nekatere naprave prikazujejo dva stolpca za povezavo. To je za prikaz več povezav z zatičem. Na primer, vsaka povezava krmilne palice, razen skupne žice, uporablja izvlečni upor, ki zagotavlja, da podaljševalnik vrat sprejme trden visok ali nizek signal. Če želite to prikazati za igralno palico 2, boste videli dva stolpca za povezavo enega, ki je za žico krmilne palice na pin MCP 21, drugi pa za povezavo od zatiča 21 preko upora do mase. Prepričan sem, da obstajajo boljši načini za dokumentiranje tega, vendar se bojim, da ste ostali pri mojih načinih dela na tem področju.:)

Vsak od arkadnih gumbov ima skupni (com), normalno odprt (ne) in normalno zaprt (nc) kontakt. Za vsakega od teh gumbov uporabljam povezave com in nc.

5. korak: Koda

Koda
Koda

V prvi vrsti moram priznati, kjer je treba. Za kodiranje Lapcade sem se močno zanašal na naslednji članek:

learn.adafruit.com/convert-your-model-m-keyboard-to-bluetooth-with-bluefruit-ez-key-hid Posebna zahvala Benjaminu Gouldu za dobro napisan in dokumentiran projekt!

Torej, v središču tega projekta je tipkovnica. Z vidika osebnega računalnika je Lapcade preprosto tipkovnica, povezana prek bluetootha, v čemer je EZ-Key tako dober. Potrebuje zapletene protokole Bluetooth, časovne razporeditve in kode ter jih zaokroži, tako da vse, kar moram storiti z arduinom, je, da mu pošljem kode ključev. Za to sem uporabil kodne zemljevide v zgornjem projektu in lastne matrike za ustvarjanje načinov delovanja. Vsak način spremeni, kaj isti pritisk na tipke počne na Lapcade in kaj se pošlje v računalnik. Obstajajo trije "vgrajeni" načini delovanja in vsi načini po tem so načini uporabe.

Načini delovanja

V nadaljevanju so povzeti načini delovanja Lapcade:

  1. Zagon - ta način preveri povezljivost z osebnim računalnikom in nastavi spremenljivke ob zagonu. Če EZ-ključ ni seznanjen z računalnikom, se spremeni v način seznanjanja
  2. Seznanjanje - v tem načinu tipka EZ čaka na povezavo z osebnim računalnikom.
  3. Izbira načina - Ta način omogoča uporabniku, da izbere, kateri način aplikacije naj uporabi. V tem načinu se v računalnik ne pošljejo nobene kode ključev. Obstajajo tudi hitri načini izbire glede na prejšnji način uporabe. Na primer pritisnite način in nato gumb dva igralca, ko ste v načinu Mame player 1 preprosto preklopite način, ne da bi morali iskati in na zaslonu izbrati Mame Player 2.

Načini uporabe

Načini uporabe se uporabljajo za pošiljanje ustreznih kod tipk na računalnik, glede na to, v kateri aplikaciji je uporabnik. Na primer, v načinu Kodi tipka dejanja 2 pošlje "P", ki je premor. V Mame ta isti gumb pošlje levo tipko Alt. Če bi kdo želel uporabiti krmilnik za igranje Minecrafta za osebni računalnik, je treba le dodati ustrezne zemljevide matrike.

Vsako aplikacijo je treba opredeliti v 4 nizih podatkov.

  • mode - Ta matrika vsebuje besedilo, ki bo prikazano na zaslonu za vsak način. Če želite uporabiti drugo vrstico zaslona, preprosto postavite ~ v matriko kot prelom vrstice.
  • keyModes [14] - Ta matrični niz vsebuje kode ključev, poslane v računalnik. Vsaka vrstica s 14 elementi predstavlja posamezne gumbe za preslikavo kodnih kod.
  • keyModifiers [14] - Ta matrična matrika vsebuje modifikatorje kode tipk za vsak pritisk tipke, na primer držanje tipke shift.
  • quickMode [3] - Ta matrični niz vsebuje vzorec izbire hitrega načina za trenutni način.

Osnovno delovanje

Ko je sistem vklopljen, preide v zagonski način, kjer se preveri stanje povezave Bluetooth in prikaže uporabniku. Arduino dobi status EZ-ključa s štetjem in merjenjem impulzov s pina L1 EZ-ključa. Za zagonski način obstajajo štirje podstatusi:

  • Seznanjanje - EZ -ključ je v aktivnem načinu seznanjanja in čaka na priključitev na napravo.
  • Seznanjen, vendar ni povezan - EZ -ključ je bil prej seznanjen, vendar trenutno ni povezan z gostiteljsko napravo.
  • Seznanjen in povezan - EZ -ključ je seznanjen in vzpostavljena je povezava z gostiteljem. Na tej točki se bo sistem pomaknil na izbiro načina.
  • Neznano stanje - EZ -ključ vrne neznano kodo ali pa pride do motenj signala, ki proizvajajo neznani vzorec signala. Sistem bo zadrževal in obvestil uporabnika. Če se to zgodi, je treba znova zagnati.

Če je sistem seznanjen z računalnikom, vendar se ne more povezati z njim, bo v zagonskem načinu ostal v stanju povezave. Če uporabnik med vklopom naprave pritisne gumb za izhod, preskoči preverjanje povezave Bluetooth in nadaljuje na izbiro načina.

Če sistem še ni bil seznanjen, bo zagonski način nasledil način seznanjanja. V tem stanju bo sistem predvajal, da je na voljo za seznanjanje. Ko ga gostitelj odkrije in mu pritrdi, se bo pomaknil na izbiro načina. Napravo lahko seznanite v načinu Izbira načina s pritiskom na gumb Dejanje 1.

V načinu Select Select (Izbira načina) vas premikanje gor in dol s krmilno palčko vodi skozi razpoložljive načine uporabe na LCD zaslonu. Če želite izbrati enega od načinov, pritisnite gumb za vnos (sredina 5).

Ko ste v aplikacijskem načinu, bodo vsi gumbi in krmilna palica poslali kode ključev po zemljevidih tipk, navedenih v štirih matrikah, kot je opisano zgoraj.

Hitri načini

Ko je izbran način aplikacije, je nastavljena hitra definicija načina. Preprosto povedano, hitri načini so načini uporabe, ki jih lahko izberete s prvimi tremi sredinskimi gumbi (Center 1-3). Ti trije gumbi ustrezajo matričnemu elementu v matrici.

Na primer, v trenutni konfiguraciji, ko uporabljate Mame v načinu predvajalnika 1 (definiran je način 4 ali peti način), nato pritisnete gumb za način in nato dva gumba igralca naložita element matrike quickmode [4] [1] (Arduino uporablja 0 indeksiranje osnovne matrike), ki je 5. Sistem nato preklopi v aplikacijski način 5, ki je Mame, igralec 2.

6. korak: Ideje za različico 2

Zaslon z gumbi - mislim, da ne morete načrtovati vsega, vendar bi si želel eno idejo o oblikovanju za prvo različico - posamezne LCD plošče z gumbi. Po izgradnji je postalo jasno, da samo to, da veste, v kakšnem načinu ste, ne pomeni, da se spomnite, kaj počne vsak gumb - še posebej potem, ko ste se za nekaj dni ali mesecev od njega oddaljili. Resnično si želim, da bi na ali nad vsakim gumbom dodal kakšen majhen zaslon, ki bi pokazal, kaj trenutno počne. Ta je na vrhu mojega seznama za različico 2.

4-Way vs 8-Way Joystick-Ko sem začel uporabljati igralno palico, je postalo jasno še to, da starejše igre niso bile namenjene uporabi 8-smernih igralnih palic. Primer je pac-man. Od izdelave tega krmilnika sem ugotovil, da obstajajo krmilne palice, ki jih je mogoče mehansko preklopiti s 4-smernega na 8-smerno. Ja, ta je na seznamu in če nameravate igrati klasične arkadne igre, pojdite na spremenljivo. Seveda pa upoštevajte spremembe v ožičenju in programiranju na podlagi krmilne palice, s katero zaključite. Tu je nekaj dobaviteljev klasičnih arkadnih kontrol:

  • https://www.ultimarc.com/controls.html
  • https://groovygamegear.com/webstore/index.php?main…

Desni in levi gumb "Flipper" - različica 2 bo zagotovo dodala po en gumb na levo in desno stran omare. Ena od možnih uporab bo fliper.

Drugi kontrolniki - preučujem izvedljivost dodajanja drugih običajnih kontrol, kot sta sledilna kroglica in / ali spinner, v naslednjo različico. Ker tipka EZ lahko prenaša koordinate miške, to ne bi smelo biti preveč težko.

Programiranje na vozilu - naslednja različica mora imeti možnost dodajanja novih konfiguracij brez odpiranja ohišja. To sem želel dodati v različico 1, vendar je zahtevalo več časa in sredstev, kot sem jih imel.

Brezžično tekmovanje
Brezžično tekmovanje
Brezžično tekmovanje
Brezžično tekmovanje

Druga nagrada na brezžičnem natečaju

Priporočena: