Obsah:

Lapcade Arcade Controller: 6 kroků (s obrázky)
Lapcade Arcade Controller: 6 kroků (s obrázky)

Video: Lapcade Arcade Controller: 6 kroků (s obrázky)

Video: Lapcade Arcade Controller: 6 kroků (s obrázky)
Video: 07 29 81 2024, Červen
Anonim
Lapcade Arcade Controller
Lapcade Arcade Controller

Nejsem moc hráč. Když jsem byl dítě, více mě zajímalo, jak fungují, než hraní. Na jedné ruce mohu spočítat, kolik arkádových her jsem pravidelně hrál. Jak už bylo řečeno, bylo by pro někoho snadné považovat za zvláštní, že bych si udělal čas na stavbu arkádového ovladače. Je to však jeden z mých oblíbených projektů. Kromě toho, že je náročné navrhnout, kódovat a sestavit, je také připomínkou minulé éry robustních mechanických tlačítek a joysticků.

Doby Arkády jsou pryč, ale stále můžete mít pocit klasické arkádové hry přímo ve svém obývacím pokoji. Takže zde vám představuji Lapcade. Pokud jste jako já a baví vás stavění věcí více než hraní, může se vám tato stavba líbit. Pokud máte nějaké dotazy nebo návrhy, které nejsou zahrnuty v níže uvedené části „Nápady pro verzi 2“, zanechte prosím komentář.

Krok 1: Přehled

Přehled
Přehled
Přehled
Přehled

Co je tato věc?

Nejprve si všimněte, co Lapcade není:

  • Není to herní konzole.
  • Nemá žádné hry ani nemá schopnost načítat a hrát hry.
  • Nepřipojuje se k televizi nebo monitoru.

Lapcade je klávesnice Bluetooth. Nic víc nic míň.

Upozorňuji na to, protože kolem tohoto bodu došlo k určitému zmatku. Měl jsem spoustu dotazů na to, jaké hry se na něj dají načíst a jaké video rozhraní používá - nemůže a nemůže! Je to zcela závislé na počítači, ke kterému jej připojíte, a v tomto ohledu je obloha limitem. Pokud vaše zařízení dokáže přijmout klávesnici Bluetooth, měla by s ním Lapcade fungovat. Nezkoušel jsem to, ale viděl jsem další projekty, které používají klíč EZ (popsaný níže) připojený k ručním zařízením. Teoreticky tedy můžete toto zařízení připojit k jakémukoli počítači se systémem Windows, Linux, ChromeOS, MAC atd., Stejně jako k Raspberry Pi, Android, iOS a dalším, které podporují Bluetooth v2.1. Může však být vyžadována úprava kódů klíčů.

Před verzí 1

Původně jsem našel produkt s názvem Adafruit Bluefruit EZ -Key bluetooth HID (Human interface device - think keyboard), který mi umožňoval připojit známá klikací tlačítka a odesílat úhozy jako klávesnice. Když jsem poprvé vytvořil ovladač založený na EZ-Key, řídil jsem se sadou pokynů k vytvoření jednoduchého a přímého ovladače a fungoval skvěle. Několik měsíců jsem bez problémů používal ovladač v těžkém dřevěném rámu. Jste však omezeni na 12 vstupů a neexistuje žádný způsob, jak změnit kód klíče přenášený zařízením bez přeprogramování vstupních pinů klíče EZ.

Jelikož jsem pomocí svého mediálního centra Kodi zobrazoval nainstalované hry, chtěl jsem přepínat mezi ovládáním mediálního centra a hraním her, aniž bych musel používat více ovladačů / dálkových ovladačů. Chtěl jsem také nastavit zařízení tak, aby ho můj levoruký syn mohl používat, jak chtěl.

K napájení zařízení jsem také používal 4 baterie AA a po vybalení se nezdálo, že by měl režim nízké spotřeby. Baterie by se vysály za den nebo dva, i kdyby nebyly používány.

Takže na naléhání mého přítele jsem se rozhodl postavit programovatelnou verzi stejného ovladače, který měl rychlé změny režimu, umožnil mi používat stejné zařízení k ovládání více aplikací, mohl být také „převrácen“pro levou ruku použití a byl v pouzdře na notebook, které bylo mnohem méně než moje současné 10 lb řešení.

Byl čas na upgrade.

Cíle DesignProject verze 1:

  • Flexibilní
  • Dobíjecí
  • Pro levice a praváky
  • Žádné šňůry
  • Lehká váha

Chtěl jsem, aby tento nový design byl flexibilní. Ovládací prvky je třeba měnit za běhu, aniž byste museli přeprogramovat součásti pokaždé, když je třeba provést test nebo změnu. To znamenalo, že na ovladači muselo být rozhraní pro výběr „režimů“provozu. Ke každému tlačítku a poloze joysticku by musely být přiřazeny různé kódy klíčů. Stejné ovládací prvky by také musely být použity k výběru různých režimů.

Klíč EZ nebyl přímo programovatelný v reálném čase, takže dalším řešením by bylo použít ke správě funkcí ovladač jako Arduino. Klíč EZ by byl použit výhradně k přenosu kódů klíčů do počítače přes Bluetooth. Arduino Pro Mini jsem si vybral kvůli jeho přímé kompatibilitě s UNO (se kterou jsem již měl zkušenosti) a kvůli jeho kompaktním rozměrům.

Nechtěl jsem se zabývat bateriemi s tímto novým boxem, jako jsem to udělal s předchůdcem Lapcade, takže jsem se rozhodl použít dobíjecí baterii Lithium Polymer a nabíječku/napájecí desku. To znamenalo, že jsem mohl použít pouze standardní USB nabíječku. Také to znamenalo, že nebudu muset otevírat pouzdro pokaždé, když vybijí baterie. EZ-Key a PowerBoost 500C mají indikátory, které je třeba přenést na horní část ovladače pro párování a indikaci slabé baterie. Do designu jsem přidal několik LED diod, abych tyto praktické indikátory stavu mohl uživateli během provozu odrážet.

Jak testování mého designu dozrávalo, zjistil jsem, že několik mých původních nápadů nebylo tak, jak jsem očekával. Například indikátor LBO na PowerBoostu nefunguje podle očekávání, když je svázán s mikrokontrolérem. Umožní průchod proudu společnou zemí z baterie, když je zařízení „vypnuto“nebo deaktivováno, kontrolka LBO se rozsvítí a zůstane rozsvícená. S tímto problémem se setkali i ostatní ve fóru Adafruit a nabídli lepší řešení při vzorkování napětí baterie přímo na analogovém vstupu. Jakmile napětí klesne na určitou úroveň, je na čase dát uživateli vědět, že se baterie brzy vypne.

Krok 2: Co potřebujete

Seznam elektronických součástek

To se nakonec stalo docela komplikovanou stavbou. Nemusíte používat stejné součásti jako já, ale pokud použijete náhradní díl, ujistěte se, že rozumíte tomu, jak bude komunikovat s ostatními obvody a kódem. I když rád nabízím návrhy, nemohu pomoci s odstraňováním problémů s kódem nebo problémy u různých konfigurací.

1 Arduino Pro Mini 5V - Pro se mi líbí, protože je kompaktní. S poskytnutým kódem můžete použít jakoukoli desku kompatibilní s pinem/přerušením Uno

1 Adafruit Bluefruit EZ -klíč bluetooth HID - Jak je popsáno výše, toto je bluetooth HID, který umožňuje přenos kódů klíčů do hostitelského počítače.

1 MCP23017 - expandér vstupních/výstupních portů i2c 16 - Tento čip slouží k přidání dalších 16 vstupů do Arduina prostřednictvím komunikačního protokolu I2C

1 Adafruit PowerBoost 500 + nabíječka - Toto je řídicí deska napájení pro napájení Lapcade a nabíjení LiPo

1 lithium polymerová baterie (použil jsem 2500 mAh, ale můžete použít vyšší / nižší kapacitu)

1 8 -pásmový arkádový joystick - Přečtěte si prosím níže uvedenou část „Myšlenky pro verzi 2“týkající se joysticků

9 arkádových tlačítek - různé barvy a otisky obrazovky

2 osvětlená chvilková tlačítka - použil jsem tato 2 tlačítka pro tlačítka Center 4 a 5 a jsou od Adafruit: Red (Center 4), Blue (Center 5)

1 Osvětlené západkové tlačítko Použil jsem to pro tlačítko napájení od Adafruit: Green

2 LED diody Slouží k odkazování na signál párování a vybití baterie. Použil jsem dva díly RadioShack 2760270 a 2760271

1 LCD obrazovka 16 x 2

1 batoh I2C/SPI LCD - slouží pro komunikaci I2C s displejem 16x2.

1 Prodlužovací kabel USB pro montáž na panel - slouží k prodloužení konektoru micro -b USB PowerBoost na stěnu skříně.

1 Deska plošných spojů Adafruit Perma-Proto v plné velikosti-není nutná, ale velmi usnadňuje trvalou montáž.

5 220 ohmových rezistorů

7 1K ohmových rezistorů

2 rezistory 2,2K Ohm

1 odpor 4,7K Ohm

18 #10 Female Spade Connectors - Pro připojení ke kontaktům arkádových tlačítek. Doporučuje se při pájení, protože tlačítka se nakonec opotřebují.

Propojovací drát o rozměru 22 - Abych vytvořil volně stojící vedení drátu, použil jsem spíše pevný drát než splétaný. Toto bylo čistě pro demonstrační účely a nedoporučuje se to, protože plný drát je křehký a náchylný k přetržení.

Následující položky nejsou povinné, ale usnadní přemístění a v případě opékání součásti usnadní výměnu:

  • Patice IC - pro 28pinové 0,3palcové čipy
  • Patice IC - pro 28pinové 0,6 "čipy
  • 0,1 "zásuvka (nejméně 1 36 pinů)

Díly skříně:

  • 3 březové panely 12 x 24 1/8 palce
  • 1 čirý akrylátový panel 1 12 x 24 1/8 palce

Soubory:

  • Lapcade V1.xlsx - Níže uvedená tabulka, která má zapojení obvodu.
  • LapcadeV1-code.zip - soubor ZIP obsahující kód Arduino napsaný pro tento projekt.
  • Lapcade_v1.zip - soubor ZIP obsahující výkresy svg pro skříň.
  • LapcadeV1-Circuit_Diagram_Large.zip - soubor ZIP obsahující verzi schématu fritzovacího obvodu s vysokým rozlišením zobrazenou níže.

Odkazy na další zdroje:

  • Dokumentace klíče EZ Adafruit Bluefruit
  • Dokumentace Adafruit PowerBoost 500+
  • Dokumentace batohu I2C/SPI LCD
  • Dokumentace MCP23017 I2C Port Extender
  • Knihovna Arduino Adafruit MCP23017

Krok 3: Montáž - skříň

Shromáždění - skříňka
Shromáždění - skříňka
Shromáždění - skříň
Shromáždění - skříň
Shromáždění - skříňka
Shromáždění - skříňka
Shromáždění - skříň
Shromáždění - skříň

Chtěl jsem mít velmi lehký box, který by také mohl bít. Aniž bychom byli příliš exotičtí s materiály, lehká rovná se tenká a tenká se obvykle rovná křehká. Primárním uživatelem Lapcade by byl pravděpodobně můj malý syn, který rád „mačká“tlačítka a „naviguje“joystickem s extrémním nadšením. I když je dobrý v tom, že věci nevyhazuje, dokázal během několika měsíců opotřebovat průmyslové mikrospínače v jednom joysticku.

Abychom tento problém překonali, a protože je Lapcade široký 20 , přidal můj návrh dvě svislá žebra, která zajišťují horní a levou a pravou stranu. Během suchého montáže byl design schopen odolat 70 librám knih, které byly na něj umístěny. Po nalepení krabice se stala ještě odolnější. Poté, co jsem obdržel nařezané materiály, jsem zpočátku volně spojil všechny panely dohromady, abych se ujistil, že fungují. Potom jsem je lehce obrousil a poprášil vzduchem. K připevnění kusů k sobě jsem použil lepidlo na dřevo.

Knihy na níže uvedených fotografiích byly umístěny tak, aby vyvíjely tlak na čerstvě slepené kousky, dokud nezapadly. Jakmile lepidlo zatvrdlo, okraje jsem hladce obrousil. Můj návrh záměrně kompenzoval panely, aby v rozích trochu trčely. To by mi umožnilo při broušení zaoblit rohy, aniž by se příliš dostaly do spáry.

Po vyčištění povrchů jsem poté nanesl několik vrstev polyuretanu - nechal jsem mezi vrstvami vytvrdnout. Výsledkem byla lehká dřevěná krabice s akrylovým spodním krytem. Původně jsem chtěl úplně čistou krabici, ale když mi poslal březové „testovací“části, okamžitě jsem změnil názor. Bylo to nejen lehčí, ale bylo to hezké návrat k myšlence kabinetních her. Soubory svg jsou níže.

Poznámka: Toto je vícevrstvý výkres a každá vrstva představuje jednu sadu řezů na jednom listu materiálu. Při odesílání tisku do řezačky se ujistěte, že jsou všechny ostatní vrstvy před řezáním skryté.

Další poznámka: Když jsem nakreslil oblast pro LCD displej, použil jsem k měření displej, který jsem měl po ruce. Od doby, kdy jsem vytvořil výkres a později osazoval součásti v pouzdře, jsem použil původní LCD v jiném projektu a objednal si výměnu. Jak se ukázalo, montážní otvory pro druhý byly mírně odlišné od originálu a navinuty, aniž by se seřadily. Před řezáním materiálu si tedy dávejte pozor, abyste si dvakrát zkontrolovali, zda části, které máte, odpovídají otvorům ve výkresu.

Třetí poznámka: Do původního výkresu jsem nezahrnul výřez pro nabíjecí kabel USB jednoduše proto, že jsem si nebyl jistý, kam ho chci umístit, aby nepřekážel v používání. Později jsem pro něj vyřízl otvory na levé straně velmi blízko místa, kde na obrázcích níže vidíte slovo „Lapcade“. Verze 2 bude mít nabíjecí port v jiné poloze.:)

Krok 4: Montáž - elektronika

Montáž - elektronika
Montáž - elektronika
Montáž - elektronika
Montáž - elektronika
Montáž - elektronika
Montáž - elektronika
Montáž - elektronika
Montáž - elektronika

Nejprve se podívejme na výše uvedené schéma zapojení.

První věcí, kterou je třeba poznamenat, je, že napájecí a zemní lišty prkénka. Kolejnice s modrou čarou jsou uzemněny (-) a kolejnice s červenou čarou jsou napájecí (+). To je standardní, ale zaznamenávám to, protože společná čára joysticku (černý vodič) je připojena k napájení a ne k zemi. Ve Fritzingu jsem použil spíše barvu drátu joysticku než konvenční barvu a myslel jsem si, že by to mohlo způsobit nějaký zmatek - takže nejlepší je dostat to z cesty.

Připojení komponent

Než abych se zde pokoušel uvádět každé připojení v dlouhé podobě (analogový pin Arduino 0 prochází přes odpor 220 ohmů k pinu PowerBoost Bat), vytvořil jsem tabulku, která obsahuje všechna připojení z pohledu komponenty. Takže na kartě Arduino v tabulce uvidíte APM A0 -> 2,2K OHM -> PB Bat a na kartě PowerBoost uvidíte PB BAT -> 2,2K OHM -> APM A0. Všechny soubory přidružené k tomuto projektu najdete v níže uvedené části zdrojů.

Další poznámkou k tabulce je, že některá zařízení zobrazují dva sloupce připojení. Toto má ukázat více než jedno připojení k pinu. Například každé připojení joysticku kromě společného vodiče používá stahovací odpor, aby zajistilo, že prodlužovač portu přijímá solidní vysoký nebo nízký signál. Abyste to ukázali pro Joystick 2, uvidíte dva sloupce pro připojení, přičemž jeden je pro vodič joysticku ke kolíku MCP 21 a druhý pro připojení od kolíku 21 přes odpor k zemi. Jsem si jistý, že existují lepší způsoby, jak to zdokumentovat, ale obávám se, že jste uvízli v mých způsobech, jak dělat věci na tomto.:)

Každé z arkádových tlačítek má společný (com), normálně otevřený (ne) a normálně zavřený (nc) kontakt. Pro každé z těchto tlačítek používám připojení com a nc.

Krok 5: Kód

Kód
Kód

V první řadě musím dát úvěr tam, kde je splatný. Při kódování Lapcade jsem se silně spoléhal na následující článek:

learn.adafruit.com/convert-your-model-m-keyboard-to-bluetooth-with-bluefruit-ez-key-hid Zvláštní poděkování Benjaminovi Gouldovi za dobře napsaný a zdokumentovaný projekt!

Jádrem tohoto projektu je tedy klávesnice. Z pohledu PC je Lapcade jednoduše klávesnice připojená přes bluetooth, v čem je EZ-Key tak dobrý. Vyžaduje složité protokoly Bluetooth, časování a kódy a zapouzdřuje je, takže vše, co musím s arduinem udělat, je poslat mu kódy klíčů. K tomu jsem použil kódové mapy ve výše uvedeném projektu a vlastní pole k vytvoření provozních režimů. Každý režim mění to, co stejné stisknutí tlačítka na zařízení Lapcade a co se odešle do počítače. Existují tři „vestavěné“provozní režimy a všechny tyto režimy jsou aplikačními režimy.

Provozní režimy

Následující přehled shrnuje provozní režimy Lapcade:

  1. Startup - Tento režim kontroluje připojení k počítači a nastavuje proměnné při spuštění. Pokud klíč EZ není spárován s počítačem, přepne se do režimu párování
  2. Párování - V tomto režimu čeká klíč EZ na spárování s počítačem.
  3. Výběr režimu - Tento režim umožňuje uživateli vybrat režim aplikace, který má použít. V tomto režimu nejsou do počítače odesílány žádné kódy klíčů. K dispozici je také rychlý výběr režimu na základě předchozího režimu aplikace. Například stisknutím režimu a poté tlačítka dvou hráčů v režimu Mame player 1 jednoduše přepnete režim, aniž byste museli hledat a na displeji vybrat Mame Player 2.

Režimy aplikace

Režimy aplikace se používají k odesílání příslušných kódů klíčů do počítače podle toho, ve které aplikaci se uživatel nachází. Například v režimu Kodi klíč akce 2 odešle „P“, což je pauza. V Mame stejné tlačítko odešle levou klávesu Alt. Pokud někdo chtěl použít ovladač ke hraní Minecraftu pro PC, pak vše, co bylo potřeba udělat, je přidat příslušné mapy polí.

Každá aplikace musí být definována ve 4 polích dat.

  • režim - Toto pole obsahuje text, který se zobrazí na obrazovce pro každý režim. Chcete -li použít druhý řádek displeje, jednoduše vložte ~ do pole jako zalomení řádku.
  • keyModes [14] - Toto maticové pole obsahuje kódy klíčů odeslané do PC. Každý řádek se 14 prvky představuje jednotlivá tlačítka mapování kódů klíčů.
  • keyModifiers [14] - Toto maticové pole obsahuje modifikátory kódů klíčů pro každé stisknutí klávesy, například podržení klávesy Shift.
  • quickMode [3] - Toto maticové pole obsahuje vzor výběru rychlého režimu pro aktuální režim.

Základní operace

Když je systém zapnutý, přejde do režimu spouštění, kde se kontroluje stav připojení Bluetooth a zobrazuje se uživateli. Arduino získává stav EZ-klíče počítáním a načasováním impulzů z pinu L1 EZ-Key. Pro režim spuštění existují čtyři dílčí stavy:

  • Párování - klíč EZ je v aktivním režimu párování a čeká na připojení k zařízení.
  • Paired but not Connected - EZ -Key has been paired earlier but is currently not connected to the host device.
  • Paired and Connected - EZ -Key is paired and the connection has been established with the host. V tomto okamžiku systém přejde na výběr režimu.
  • Neznámý stav - Klíč EZ vrací neznámý kód nebo došlo k interferenci signálu, která vytváří neznámý vzor signálu. Systém zadrží a upozorní uživatele. Pokud k tomu dojde, je nutné restartovat.

Pokud je systém spárován, ale nemůže se připojit k počítači, systém zůstane v režimu připojení v režimu spuštění. Pokud uživatel při zapnutí zařízení podrží tlačítko Escape, přeskočí kontrolu připojení Bluetooth a přejde k výběru režimu.

Pokud systém nebyl dříve spárován, bude režim spuštění následován režimem párování. V tomto stavu bude systém vysílat, že je k dispozici pro párování. Jakmile je hostitelem objeven a připojen, přejde k výběru režimu. Zařízení lze v režimu výběru zrušit spárování stisknutím tlačítka Akce 1.

V režimu výběru vás akce joysticku nahoru a dolů provedou dostupnými aplikačními režimy na LCD displeji. Chcete -li vybrat jeden z režimů, stiskněte tlačítko Enter (uprostřed 5).

Jakmile jste v režimu aplikace, každé z tlačítek a joysticku odešle kódy klíčů podle map kláves zadaných ve čtyřech polích, jak je popsáno výše.

Rychlé režimy

Jakmile je vybrán režim aplikace, nastaví se jeho rychlá definice. Jednoduše řečeno, Rychlé režimy jsou režimy aplikace, které lze vybrat pomocí prvních tří středových tlačítek (Střed 1-3). Tato tři tlačítka odpovídají prvku pole napříč v matici.

Například v aktuální konfiguraci, když používáte Mame v režimu hráče 1 (definován režim 4 nebo pátý režim), pak stisknutím tlačítka režimu a poté tlačítka dvou hráčů načte prvek pole quickmode [4] [1] (Arduino používá 0 indexování základního pole), což je 5. Systém se poté přepne do aplikačního režimu 5, což je Mame, hráč 2.

Krok 6: Nápady pro verzi 2

Displej s tlačítky - myslím, že nemůžete plánovat všechno, ale existuje jeden designový nápad, který bych si přál mít už pro verzi jedna - jednotlivé tlačítkové LCD panely. Velmi rychle se ukázalo, že vědět, v jakém režimu se nacházíte, neznamená, že si pamatujete, co která tlačítka dělají - zvláště poté, co jste z něj na pár dní nebo měsíců odstoupili. Opravdu bych si přál, abych na nebo nad každé tlačítko přidal nějaký malý displej, který ukazoval, jaká je jeho aktuální akce. Tenhle je na vrcholu mého seznamu pro verzi 2.

Čtyřcestný vs 8směrný joystick-Další věc, která se stala jasnou, když jsem začal používat joystick, bylo, že starší hry neměly používat 8směrné joysticky. Příkladem je pac-man. Od sestavení tohoto ovladače jsem zjistil, že existují joysticky, které lze mechanicky přepínat ze 4-cestných na 8-cestné. Ano, ten je na seznamu, a pokud plánujete hraní klasických arkádových her, přeskočte na ten, který lze změnit. Samozřejmě se ujistěte, že změny v zapojení a programování zohledníte pomocí joysticku, se kterým skončíte. Zde jsou někteří dodavatelé klasických arkádových ovládacích prvků:

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

Tlačítka „Flipper“na pravé a levé straně - verze 2 jednoznačně přidá jedno tlačítko na levou a pravou stranu skříně. Jedno možné použití bude pro ploutve pinball.

Další ovládací prvky - dívám se na životaschopnost přidání dalších běžných ovládacích prvků, jako je trackball a / nebo spinner do další verze. Vzhledem k tomu, že klíč EZ je schopen přenášet souřadnice myši, nemělo by to být příliš obtížné.

Palubní programování - příští verze musí mít možnost přidávat nové konfigurace, aniž by se muselo otevřít pouzdro. Chtěl jsem to přidat do verze 1, ale vyžadovalo to více času a zdrojů, než jsem měl.

Bezdrátová soutěž
Bezdrátová soutěž
Bezdrátová soutěž
Bezdrátová soutěž

Druhá cena v bezdrátové soutěži

Doporučuje: