Sadržaj:

Lapcade arkadni kontroler: 6 koraka (sa slikama)
Lapcade arkadni kontroler: 6 koraka (sa slikama)

Video: Lapcade arkadni kontroler: 6 koraka (sa slikama)

Video: Lapcade arkadni kontroler: 6 koraka (sa slikama)
Video: PXN V10 vs V9: Entry-level steering wheel SHOWDOWN 2024, Jun
Anonim
Arkadni kontroler Lapcade
Arkadni kontroler Lapcade

Nisam neki igrač. Kad sam bio klinac, više sam bio zainteresovan da vidim kako oni rade nego ja da ih sviram. S jedne strane mogu izbrojati koliko sam arkadnih igara redovno igrao. S obzirom na to, nekome bi bilo lako što mu je čudno što bih odvojio vrijeme za izradu arkadnog kontrolera. Međutim, to je jedan od mojih omiljenih projekata do sada. Osim što je izazovan u dizajnu, kodiranju i izradi, on je i podsjetnik na prošlu eru čvrstih mehaničkih tipki i džojstika.

Arkadni dani su prošli, ali i dalje možete imati osjećaj klasične arkadne igre u vlastitoj dnevnoj sobi. Dakle, ovdje vam predstavljam Lapcade. Ako ste poput mene i više volite graditi stvari nego igrati, možda ćete uživati u ovoj gradnji. Ako imate bilo kakvih pitanja ili prijedloga koji nisu uključeni u donji odjeljak "ideje za verziju 2", ostavite komentar.

Korak 1: Pregled

Pregled
Pregled
Pregled
Pregled

Šta je ovo?

Prvo, imajte na umu šta Lapcade nije:

  • To nije igraća konzola.
  • Nema igre niti ima mogućnost učitavanja i igranja igara.
  • Ne povezuje se sa televizorom ili monitorom.

Lapcade je Bluetooth tastatura. Ništa više, ništa manje.

Ja ovo iznosim jer je došlo do zabune oko ove tačke. Imao sam mnogo pitanja o tome koje igre se mogu učitati na njega i kakvo video sučelje koristi - ne može i ne smije! U potpunosti ovisi o računaru na koji ga povezujete i, s tim u vezi, nebo je granica. Ako vaš uređaj može prihvatiti Bluetooth tastaturu, Lapcade bi trebao raditi s njom. Nisam probao, ali vidio sam druge projekte koji su koristili EZ-ključ (dolje opisan) spojen na ručne uređaje. Dakle, teoretski možete povezati ovaj uređaj sa bilo kojim računarom sa sustavom Windows, Linux, ChromeOS, MAC itd., Kao i s Raspberry Pi, Android, iOS i drugima koji podržavaju Bluetooth v2.1. Međutim, možda će biti potrebna izmjena šifri ključeva.

Pred-verzija 1

Prvobitno sam pronašao proizvod koji se zove Adafruit Bluefruit EZ -Key bluetooth HID (uređaj sa ljudskim interfejsom - razmislite o tastaturi) koji bi mi omogućio da povežem poznate klikajuće tastere i pošaljem pritiske na tastaturu poput tastature. Kad sam prvi put izgradio kontroler zasnovan na EZ-ključu, slijedio sam niz uputa za izradu jednostavnog i direktnog kontrolera i on je odlično funkcionirao. Nekoliko mjeseci sam bez problema koristio kontroler u teškom drvenom okviru. Međutim, ograničeni ste na 12 ulaza i ne postoji način da promijenite kôd ključa koji prenosi uređaj bez ponovnog programiranja ulaznih pinova EZ-ključa.

Dok sam koristio svoj Kodi media centar za prikaz instaliranih igara, želio sam se prebacivati između upravljanja medijskim centrom i igre bez potrebe za korištenjem više kontrolera / daljinskih upravljača. Takođe sam hteo da podesim uređaj tako da ga moj levoruki sin može koristiti kako želi.

Također sam koristio 4 AA baterije za napajanje uređaja i činilo se da iz vanjske kutije nema režima niske potrošnje energije. Baterije bi se usisale za dan ili dva, čak i ako se ne koriste.

Dakle, na nagovor prijatelja, odlučio sam izgraditi programabilnu verziju istog kontrolera koja je imala brze promjene načina rada, omogućila bi mi korištenje istog uređaja za kontrolu više aplikacija, a mogla bi se i "okrenuti" za lijevu ruku koristio i bio u kućištu za laptop koji je bio daleko manji od mog trenutnog rješenja od 10 lb.

Bilo je vreme za nadogradnju.

Verzija 1 DesignProject ciljevi:

  • Fleksibilan
  • Punjivo
  • Za ljevake i desničare
  • Nema kablova
  • Lagan

Htio sam da ovaj novi dizajn bude fleksibilan. Kontrole se moraju mijenjati u hodu bez potrebe za reprogramiranjem komponenti svaki put kada je potrebno izvršiti test ili promjenu. To je značilo da mora postojati sučelje na kontroleru za odabir "načina" rada. Svako dugme i položaj džojstika bi morali imati povezane kodove ključeva. Te iste kontrole bi se također trebale koristiti za odabir različitih načina rada.

EZ-ključ nije bio direktno programiran u stvarnom vremenu, pa bi sljedeće rješenje bilo korištenje kontrolera poput Arduina za upravljanje funkcionalnostima. EZ-ključ će se koristiti samo za prijenos šifri ključeva na računalo putem Bluetootha. Odabrao sam Arduino Pro Mini zbog njegove direktne kompatibilnosti s UNO -om (s kojim sam već imao iskustva) i zbog njegove kompaktne veličine.

Nisam htio imati posla s baterijama u ovoj novoj kutiji kao s prethodnikom Lapcade, pa sam odlučio koristiti punjivu bateriju od litij -polimerske baterije i punjač/ploču za napajanje. To je značilo da mogu samo koristiti standardni USB punjač. To je takođe značilo da neću morati otvarati kućište svaki put kad se baterije isprazne. EZ-Key i PowerBoost 500C imaju indikatore koje je potrebno prenijeti na vrh kontrolera radi statusa uparivanja i indikacije prazne baterije. Dizajnu sam dodao neke LED diode kako bih korisniku mogao odraziti ove praktične indikatore statusa tokom rada.

Kako je testiranje mog dizajna sazrijevalo, otkrio sam da nekoliko mojih originalnih ideja nije bilo onako kako sam očekivao. Na primjer, LBO indikator na PowerBoostu ne radi očekivano kada je povezan s mikrokontrolerom. Omogućit će da struja prolazi kroz zajedničko uzemljenje iz baterije dok je uređaj "isključen" ili onemogućen, LBO lampica će svijetliti i ostati upaljena. I drugi na forumu Adafruit naišli su na ovaj problem i ponudili bolje rješenje u uzorkovanju napona baterije direktno na analognom ulazu. Nakon što napon padne na određeni nivo, vrijeme je da obavijestite korisnika da će se baterija ugasiti.

Korak 2: Šta vam treba

Lista elektronskih delova

Ovo je na kraju postalo prilično komplicirana konstrukcija. Ne morate koristiti iste dijelove kao ja, ali ako koristite zamjenski dio, pobrinite se da razumijete kako će on djelovati s drugim krugovima i kodom. Iako sa zadovoljstvom nudim prijedloge, ne mogu pomoći u rješavanju koda ili problema za različite konfiguracije.

1 Arduino Pro Mini 5V - Sviđa mi se Pro jer je kompaktan. Možete koristiti bilo koju Uno pin/prekidnu ploču kompatibilnu s navedenim kodom

1 Adafruit Bluefruit EZ -Key bluetooth HID - Kao što je gore opisano, ovo je bluetooth HID koji omogućava prenos šifri ključeva na računar domaćin.

1 MCP23017 - i2c proširivač 16 ulazno/izlaznih portova - Ovaj čip se koristi za dodavanje još 16 ulaza u Arduino putem I2C komunikacijskog protokola

1 Adafruit PowerBoost 500 + punjač - Ovo je ploča za upravljanje napajanjem za napajanje Lapcade -a i punjenje LiPo -a

1 litijum -polimerna baterija (koristio sam 2500mAh, ali možete koristiti veći / manji kapacitet)

1 8 -smjerna arkadna joystick - Molimo pogledajte dolje odjeljak "misli za verziju 2" koji se odnosi na joysticke

9 arkadnih tastera - različite boje i otisci ekrana

2 osvijetljena trenutna tastera - koristila sam ova 2 dugmeta za centralna 4 i 5 dugmeta i iz Adafruit -a: crvena (centar 4), plava (centar 5)

1 Osvijetljeni zatvarač za zaključavanje Koristio sam ovo za dugme za uključivanje sa Adafruit -a: Zeleno

2 LED diode Koriste se za upućivanje signala za uparivanje i prazne baterije. Koristio sam dva RadioShack dijela 2760270 i 2760271

1 16 x 2 LCD ekran

1 I2C/SPI LCD ruksak - Koristi se za I2C komunikaciju sa ekranom 16x2.

1 USB produžni kabel za montiranje na ploču - Koristi se za proširenje USB -priključka PowerBoost micro -b do zida ormara.

1 Adabruit Perma-Proto PCB pločica u punoj veličini-Nije potrebno, ali čini trajnu montažu mnogo lakšom.

5 220 ohmskih otpornika

7 1K ohmskih otpornika

2 otpornika od 2.2K ohma

1 Otpornik od 4,7K ohma

18 #10 ženski konektori za spajanje - Za spajanje na kontakte arkadnog dugmeta. Preporučuje se nad lemljenjem jer će se dugmad na kraju istrošiti.

Priključna žica promjera 22 - koristila sam čvrstu spojnu žicu umjesto nasukane kako bih napravila slobodno stojeće upravljanje žicom. Ovo je bilo isključivo u demonstracijske svrhe i ne preporučuje se jer je čvrsta žica krhka i sklona pucanju.

Sljedeće stavke nisu potrebne, ali će pojednostaviti montažu i, u slučaju da nazdravljate komponenti, olakšati zamjenu:

  • IC utičnica - za 28 -pinske 0,3 "čipove
  • IC utičnica - za 28 -pinske čipove 0,6"
  • 0,1 "žensko zaglavlje (najmanje 1 36 pinsko zaglavlje)

Dijelovi ormara:

  • 3 ploče od breze 12 x 24 1/8th inča
  • 1 12 x 24 1/8 inča prozirna akrilna ploča

Datoteke:

  • Lapcade V1.xlsx - Dolje navedena proračunska tablica koja sadrži veze kola.
  • LapcadeV1-code.zip - Zip datoteka koja sadrži Arduino kôd napisan za ovaj projekt.
  • Lapcade_v1.zip - Zip datoteka koja sadrži svg crteže za ormar.
  • LapcadeV1-Circuit_Diagram_Large.zip - Zip datoteka koja sadrži donju verziju dijagrama kola za fritzing visoke rezolucije.

Linkovi na više resursa:

  • Adafruit Bluefruit EZ-ključna dokumentacija
  • Adafruit PowerBoost 500 + dokumentacija
  • I2C/SPI LCD ruksak dokumentacija
  • MCP23017 Dokumentacija za proširenje porta I2C
  • Adafruit MCP23017 Arduino biblioteka

Korak 3: Montaža - ormar

Skupština - Kabinet
Skupština - Kabinet
Skupština - Kabinet
Skupština - Kabinet
Skupština - Kabinet
Skupština - Kabinet
Skupština - Kabinet
Skupština - Kabinet

Hteo sam da imam kutiju veoma male težine koja bi takođe mogla da pobedi. Bez pretjerivanja u egzotičnost materijala, lagani su jednako tanki, a tanki obično jednako lomljivi. Primarni korisnik Lapcade -a vjerovatno bi bio moj mali sin koji voli "pritisnuti" tipke i "upravljati" joystickom s izuzetnim entuzijazmom. Iako je dobar u tome što ne ispušta stvari, uspio je u roku od nekoliko mjeseci istrošiti industrijske mikro prekidače u jednom joystuku.

Kako bih prevladao ovaj problem, a budući da je Lapcade široka 20 , moj dizajn je dodao u dva okomita rebra koja pričvršćuju gornju i lijevu i desnu stranu. Tijekom suhog montiranja dizajn je mogao izdržati 70 kg knjiga postavljenih na njega. Nakon što je zalijepljen, kutija je postala još izdržljivija. Nakon što sam primila rezane materijale, u početku sam labavo spojila sve ploče kako bih se uvjerila da rade. Zatim sam ih lagano brusila i prašila zrakom. Za spajanje komada koristila sam ljepilo za drvo.

Knjige na donjim fotografijama postavljene su kako bi izvršile pritisak na svježe zalijepljene komade dok ne sjednu. Nakon što se ljepilo stvrdnulo, glatko sam izbrusio rubove. Moj dizajn je namjerno pomaknuo ploče tako da bi malo stršile po uglovima. To bi mi omogućilo da zaokružim uglove tokom brušenja, a da pritom ne ulazim previše u fugu.

Nakon čišćenja površina, zatim sam nanio nekoliko slojeva poliuretana - dopuštajući stvrdnjavanje između slojeva. Rezultat je lagana drvena kutija s akrilnim donjim poklopcem. Prvotno sam želio potpuno jasnu kutiju, ali kad mi je poslao "testne" dijelove od breze, odmah sam se predomislio. Nije bio samo lakši, već je bio i lep povratak na ideju igranja u kabinetu. Svg datoteke su ispod.

Napomena: Ovo je višeslojni crtež i svaki sloj predstavlja jedan skup rezova na jednom listu materijala. Prilikom slanja otiska na rezač, provjerite jesu li svi ostali slojevi skriveni prije rezanja.

Još jedna napomena: Kada sam crtao područje za LCD ekran, koristio sam ekran koji sam imao pri ruci za mjerenja. Između vremena kada sam izradio crtež i kasnije ugradio dijelove u kućište, koristio sam originalni LCD u drugom projektu i naručio zamjenu. Kako se ispostavilo, montažne rupe za drugu su se malo razlikovale od originala i završile su se bez poravnanja. Stoga, prije rezanja materijala, pažljivo provjerite da li dijelovi koje imate odgovaraju rupama na crtežu.

Treća napomena: Nisam uključio izrez za USB kabel za punjenje u originalni crtež jednostavno zato što nisam bio siguran gdje ga želim staviti kako ne bi ometao upotrebu. Kasnije sam mu izrezao rupe na lijevoj strani vrlo blizu mjesta gdje vidite riječ "Lapcade" na donjim slikama. Verzija 2 će imati port za punjenje na sasvim drugom položaju.:)

Korak 4: 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

Prvo pogledajmo gornji dijagram ožičenja.

Prvo što treba napomenuti ovdje je da su snaga i uzemljene šine oplate. Šine sa plavom linijom su uzemljene (-), a šine sa crvenom linijom su snage (+). Ovo je standardno, ali bilježim to jer je zajednička linija džojstika (crna žica) spojena na napajanje, a ne na masu. U Fritzingu sam koristio žičanu boju džojstika umjesto konvencionalne boje i pomislio sam da bi to moglo izazvati zabunu - pa je najbolje da to samo uklonite s puta.

Komponentne veze

Umjesto da ovdje pokušavam svaku vezu navesti u dužem obliku (Arduino analogni pin 0 prolazi kroz otpornik od 220 ohma do kontakta PowerBoost Bat), stvorio sam proračunsku tablicu koja sadrži sve veze sa stajališta komponente. Dakle, na kartici Arduino proračunske tablice vidjet ćete APM A0 -> 2.2K OHM -> PB Bat, a na kartici PowerBoost vidjet ćete PB BAT -> 2.2K OHM -> APM A0. Molimo pogledajte donji odjeljak resursa za sve datoteke povezane s ovim projektom.

Još jedna napomena o proračunskoj tablici je da neki uređaji prikazuju dva stupca veze. Ovo služi za prikazivanje više od jedne veze na pin. Na primjer, svaka veza joystick-a osim zajedničke žice koristi otpornik za povlačenje kako bi se osiguralo da produživač porta prima solidan visoki ili niski signal. Da biste to prikazali za Joystick 2, vidjet ćete dva stupca za povezivanje, jedan za žicu joystick -a na pin MCP 21, a drugi za povezivanje s pina 21 preko otpornika na masu. Siguran sam da postoje bolji načini da se ovo dokumentira, ali bojim se da ste zaglavili s mojim načinima rada po ovom pitanju.:)

Svaki od arkadnih tastera ima zajednički (com), normalno otvoren (ne) i normalno zatvoren (nc) kontakt. Za svako od ovih dugmadi koristim com i nc veze.

Korak 5: Kodirajte

Kod
Kod

Prije svega, moram odati priznanje tamo gdje je dospjelo. U velikoj mjeri sam se oslanjao na sljedeći članak za kodiranje Lapcade -a:

learn.adafruit.com/convert-your-model-m-keyboard-to-bluetooth-with-bluefruit-ez-key-hid Posebno hvala Benjaminu Gouldu na dobro napisanom i dokumentovanom projektu!

Dakle, u srcu ovog projekta je tastatura. Sa stanovišta računara, Lapcade je jednostavno tastatura povezana preko bluetootha, u čemu je EZ-Key tako dobar. Potrebni su komplicirani Bluetooth protokoli, mjerenja vremena i kodovi te ih enkapsulira tako da sve što trebam učiniti s arduinom je slanje kodova ključeva. Da bih to učinio, koristio sam mape koda u gore navedenom projektu i vlastite nizove za stvaranje operativnih načina rada. Svaki način mijenja ono što isti pritisci tipke rade na Lapcade -u i ono što se šalje na računar. Postoje tri "ugrađena" načina rada i svi načini nakon toga su načini primjene.

Načini rada

Slijedi sažetak načina rada Lapcade -a:

  1. Startup - ovaj način provjerava povezanost s računalom i postavlja varijable pokretanja. Ako EZ-ključ nije uparen s računalom, tada se mijenja u način uparivanja
  2. Uparivanje - U ovom načinu rada EZ -ključ čeka na uparivanje s računarom.
  3. Odabir načina rada - Ovaj način rada omogućuje korisniku da odabere koji način aplikacije će koristiti. U ovom načinu rada se šifre ključeva ne šalju na računar. Postoje i brzi odabiri načina rada na osnovu prethodnog načina aplikacije. Na primjer, pritiskom na način rada, a zatim dugme dva igrača kada ste u načinu rada Mame player 1 jednostavno prebacujete način rada bez potrebe za pretraživanjem i odabirom Mame Player 2 na ekranu.

Načini primjene

Načini aplikacije se koriste za slanje odgovarajućih kodova ključeva na računalo na temelju aplikacije u kojoj se korisnik nalazi. Na primjer, u načinu Kodi, tipka action 2 šalje "P", što je pauza. U Mame to isto dugme šalje lijevu tipku Alt. Ako netko želi koristiti kontroler za igranje Minecraft -a za PC, sve što bi trebalo učiniti je dodati odgovarajuće karte niza.

Svaka aplikacija mora biti definirana u 4 niza podataka.

  • mode - Ovaj niz sadrži tekst koji će biti prikazan na ekranu za svaki način rada. Da biste koristili drugi red prikaza, jednostavno postavite ~ u niz kao prijelom retka.
  • keyModes [14] - Ovaj matrični niz sadrži kodove ključeva poslane računaru. Svaki red od 14 elemenata predstavlja pojedinačne tipke za preslikavanje kodova ključeva.
  • keyModifiers [14] - Ovaj matrični niz sadrži modifikatore koda ključa za svaki pritisak na tipku, poput držanja tipke shift.
  • quickMode [3] - Ovaj matrični niz sadrži obrazac za odabir brzog načina rada za trenutni način rada.

Osnovne operacije

Kada se sistem uključi, on prelazi u način pokretanja gdje se provjerava status Bluetooth veze i prikazuje korisniku. Arduino dobiva status EZ-ključa brojeći i tempirajući impulse sa L1 pina EZ-ključa. Postoje četiri podstatusa za način pokretanja:

  • Uparivanje - EZ -ključ je u aktivnom načinu uparivanja i čeka da se priključi na uređaj.
  • Uparen, ali nije povezan - EZ -ključ je prethodno uparen, ali trenutno nije povezan s uređajem domaćinom.
  • Uparen i povezan - EZ -ključ je uparen i veza je uspostavljena s domaćinom. U ovom trenutku sistem će preći na odabir načina rada.
  • Nepoznat status - EZ -ključ vraća nepoznati kôd ili postoji smetnja signala koja proizvodi nepoznati uzorak signala. Sistem će zadržati i obavijestiti korisnika. Mora se ponovo pokrenuti ako se to dogodi.

Ako je sistem uparen, ali se ne može povezati s računarom, sistem će ostati u stanju povezivanja u načinu pokretanja. Ako korisnik pritisne tipku za bijeg dok uključuje uređaj, preskočit će provjeru Bluetooth veze i preći na odabir načina rada.

Ako sistem nije prethodno uparen, tada će način pokretanja naslijediti način uparivanja. U ovom stanju sistem će emitirati da je dostupan za uparivanje. Kada ga domaćin otkrije i poveže, preći će na odabir načina rada. Uređaj se može upariti u načinu odabira načina rada pritiskom na gumb Radnja 1.

U načinu odabira načina rada, navigacijske tipke gore i dolje će vas provesti kroz dostupne načine rada na LCD ekranu. Za odabir jednog od načina rada pritisnite tipku enter (središte 5).

Jednom u aplikacijskom načinu rada, svaki od tastera i džojstika će slati kodove ključeva prema karti tastera specificiranoj u četiri niza kako je gore opisano.

Brzi režimi

Nakon što je odabran način rada aplikacije, postavlja se njegov brzi način rada. Jednostavno rečeno, brzi načini su aplikacijski načini koji se mogu birati pomoću prva tri središnja dugmeta (centar 1-3). Ova tri dugmeta odgovaraju elementu polja u matrici.

Na primjer, u trenutnoj konfiguraciji, kada koristite Mame u načinu igranja 1 (definiran je način rada 4 ili peti način), zatim pritiskom na gumb načina rada, a zatim dva dugmeta igrača učitava element niza quickmode [4] [1] (Arduino koristi 0 indeksiranje osnovnog niza) što je 5. Sistem se zatim prebacuje u način rada aplikacije 5 koji je Mame, igrač 2.

Korak 6: Ideje za verziju 2

Prikaz dugmadi - pretpostavljam da ne možete sve planirati, ali postoji jedna dizajnerska ideja koju bih volio da sam imao ranije za prvu verziju - pojedinačni LCD paneli s gumbima. Vrlo brzo nakon izgradnje postalo je jasno da samo znati u kom ste režimu ne znači da se sjećate šta svako dugme radi - posebno nakon što ste se od njega udaljili nekoliko dana ili mjeseci. Zaista bih volio da sam na ili iznad svakog dugmeta dodao neku vrstu malog ekrana koji bi pokazao kakvo je trenutno djelovanje. Ova je na vrhu moje liste za verziju 2.

4-Way vs 8-Way Joystick-Još jedna stvar koja je postala jasna kada sam počeo koristiti joystick je da starije igre nisu namijenjene za korištenje 8-smjernih joysticka. Slučaj je pac-man. Otkako sam izgradio ovaj kontroler, otkrio sam da postoje upravljačke palice koje se mogu mehanički prebaciti sa 4 na 8. Da, ta je na popisu i ako planirate igrati klasične arkadne igre, samo prijeđite na onu koja je promjenjiva. Naravno, vodite računa o promjenama ožičenja i programiranja na osnovu džojstika s kojim završite. Evo nekih dobavljača klasičnih arkadnih kontrola:

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

Desna i lijeva strana dugmeta "Flipper" - Verzija 2 će definitivno dodati po jedno dugme na lijevu i desnu stranu ormara. Jedna od mogućih upotreba bit će fliperi.

Druge kontrole - razmatram isplativost dodavanja drugih uobičajenih kontrola, poput trackball -a i / ili spinner -a u sljedeću verziju. Budući da EZ-ključ može prenositi koordinate miša, to ne bi trebalo biti teško.

Programiranje na ploči - Sljedeća verzija mora imati mogućnost dodavanja novih konfiguracija bez otvaranja kućišta. Htio sam ovo dodati u verziju 1, ali za to je bilo potrebno više vremena i resursa nego što sam imao.

Bežično takmičenje
Bežično takmičenje
Bežično takmičenje
Bežično takmičenje

Druga nagrada na bežičnom takmičenju

Preporučuje se: