Obsah:

Kapesní ZX (ruční ZX spektrum): 10 kroků
Kapesní ZX (ruční ZX spektrum): 10 kroků

Video: Kapesní ZX (ruční ZX spektrum): 10 kroků

Video: Kapesní ZX (ruční ZX spektrum): 10 kroků
Video: Ultra univerzální ASUS ROG Ally - Dokáže mě tahle přenosná herní konzole oslovit? 2024, Listopad
Anonim
Kapesní ZX (ruční ZX spektrum)
Kapesní ZX (ruční ZX spektrum)
Pocket ZX (Handheld ZX Spectrum)
Pocket ZX (Handheld ZX Spectrum)
Kapesní ZX (ruční ZX spektrum)
Kapesní ZX (ruční ZX spektrum)

Jsem dítě 80. let a mám na 8bitové počítače té doby hezké vzpomínky. Můj první počítač - ten, který má v mém srdci zvláštní místo - byl Sinclair ZX Spectrum 48K. Poté, co jsem na webu nedávno objevil některé komunity zaměřené na starší počítače, rozhodl jsem se, že si chci znovu prožít trochu té nostalgie a nainstaloval jsem na svůj MacBook emulátor Fuse. Chvíli to byla zábava, ale opravdu jsem chtěl vyhrazené zařízení - nejlépe něco malého, přenosného a samostatného, aby to zapadalo do mého životního stylu. V této fázi bylo volbou buď sledovat cestu úžasného Bena Hecka a zmenšit původní hardware ZX na něco přenosného, nebo podvádět a používat emulaci na malém jednodeskovém počítači. Jdu podvádět:)

Co tedy chci od svého přenosného ZX Spectrum?

  • Levné: Mám příliš mnoho projektů na to, abych utratil velké částky peněz za trochu zábavné nostalgie.
  • Přenosný: Musí to být něco, s čím si můžu hrát na pohovce nebo líné odpoledne na zahradě.
  • Klávesnice: Nechci jen hrát hry, chci ji také naprogramovat. Abyste získali plný zážitek, musíte mít ty nádherné klíče klíčových slov.
  • Joystick: Nikdy mě nebavilo hrát plošinové hry s klávesnicí. Dobrodružné hry, určitě, ale nechci jen hrát dobrodružné hry, takže to bude potřebovat joystick.
  • Okamžitě: Nenáviděl jsem načítání kazet v 80. letech a nedovedu si představit, že bych za ty roky narostl o něco více.

S ohledem na to všechno jsem navrhl blokové schéma, které mi pomůže porozumět různým komponentám. Pojďme tedy stavět.

Krok 1: USB klávesnice a joystick

USB klávesnice a joystick
USB klávesnice a joystick
USB klávesnice a joystick
USB klávesnice a joystick
USB klávesnice a joystick
USB klávesnice a joystick

Správná klávesnice je klíčem k zachycení vzhledu a dojmu původního ZX Spectrum. Možná stavíme kapesní emulované zařízení, které nemá nic společného s původními vestavbami Spectrum, ale s pečlivým designem by mělo být možné vytvořit něco, co bude připomínat počítačový zážitek z 80. let.

Počínaje několika protoboardy a velkou hromadou hmatových spínačů jsem experimentoval s několika nápady a usadil se na rozloženém rozložení uvedeném na fotografiích. Protoboards, které používáme, jsou standardní 7x9cm (26x31 otvorů) dostupné online od mnoha prodejců. Přepínače jsou verze pro povrchovou montáž, které mají měkčí pocit a jsou méně hlučné než jejich běžnější protějšky s průchozími otvory, ale oba by měly fungovat, protože jejich velikosti těla jsou téměř totožné.

Ovládací prvky joysticku poté přešly do zbývajícího prostoru bezprostředně nad klávesnicí. Rozhodl jsem se použít 5směrný hmatový navigační spínač vlevo a velké tlačítko střelby vpravo. Joystick se zdvojnásobí jako ovladač systému nabídek emulátoru a myš pro interakci se základním systémem Linux, takže jsem také přidal malé sekundární tlačítko.

Mikrokontrolérem pro klávesnici je Arduino Pro Micro. Jedná se o malou desku, kterou lze naprogramovat jako zařízení USB s lidským rozhraním (HID), jako je klávesnice, myš nebo joystick.

Jakmile byly přepínače připájeny na místo, je třeba vybudovat matici, která spojuje řádky a sloupce přepínačů s mikrokontrolérem. Tato matice nám umožní připojit všech 40 kláves plus 7 tlačítek joysticku k 18 I/O pinům Pro Micro. Klávesnice Spectrum nepotřebuje zvládnout více stisknutí kláves kromě kláves Caps Shift a Symbol Shift, takže je umístíme na vyhrazené piny, pak si nebudeme muset dělat starosti s používáním diod, abychom zabránili fantomovým klávesám- lisy. Zahrnul jsem schéma, které ukazuje, jak je klávesnice včetně matice zapojena. Nejprve je každý sloupec spojen délkou jednožilového drátu a poté jsou řady spojeny pomocí jednožilového drátu, který je pečlivě tvarován tak, aby překračoval sloupy bez zkratování. To může být trochu ošidné, protože potřebujete dostat řádkové dráty dostatečně vysoko, abyste se vyhnuli kontaktu se sloupky, ale dostatečně nízké, aby vám zbyl prostor pro veškerou kabeláž, kterou potřebujeme nacpat během konečné montáže. Nakonec jsou řady a sloupce připojeny k pinům Arduino pomocí vodičů ze starých kabelů IDE.

Jak bylo uvedeno výše, ovladač joysticku bude fungovat také jako kurzor a myš, takže budeme muset přepínat mezi režimy. Výchozím režimem bude režim kurzoru, kombinace Caps Shift + tlačítko Fire se přepne do režimu joysticku a kombinace tlačítek Shift + Fire se přepne do režimu myši. Chcete -li ukázat, ve kterém režimu je, je uprostřed panelu joysticku několik 3mm LED diod. LED dioda Power bude také užitečná a dobrým způsobem, jak to zajistit u Pi, je připojit LED k pinu UART TX Pi, protože bude neustále odesílat data, když je zařízení zapnuté.

Aby se zabránilo roztržení uvolněných drátů nebo zkratování maticových vodičů, je vše hojně pokryto horkým lepidlem - ošklivé, ale účinné!

Posledním krokem k fungování klávesnice je naprogramovat Arduino pomocí kódu ZX_Spectrum_Keyboard z mého úložiště. Když to uděláte, můžete páječku skutečně odložit, připojit klávesnici k běžnému počítači a používat ji s emulátorem Spectrum, jako je Fuse nebo Spectaculator. Ale tady nekončíme, takže pojďme dál…

Krok 2: LCD obrazovka

LCD obrazovka
LCD obrazovka

Původní Spectrum má rozlišení obrazovky 256 x 192 pixelů. Abych udržel (přibližně) tento poměr a vyvaroval se černých pruhů na obou stranách, vybral jsem dotykový displej Waveshare 3,2 320x240 TFT LCD navržený pro Raspberry Pi. Nebude připojen přímo k hlavičce GPIO Pi, abychom mohli odstranit plastový rámeček konektoru a ořízněte kolíky. Ořezal jsem protoboard 7x9 cm na 2,1 x 9 cm (přesná velikost nezáleží na tom, pokud jsou dva zbývající rohové otvory zarovnány s horními otvory klávesnice a je zde dostatek místa pro pájení kolíků GPIO záhlaví) a připájel kolíky na místo, což nám umožní snadný způsob připevnění obrazovky nad klávesnici.

K Pi potřebujeme připojit pouze SPI, napájecí a dotykové I/O piny - vystopovat, které piny jsou vlastně potřeba, může být docela ošidné, ale pokud se podíváte dostatečně tvrdě, informace jsou k dispozici. Obrazovka Waveshare používá 10 pinů: 4, 6, 9, 13, 15, 19, 21, 23, 24 a 26. Je zřejmé, že pokud to děláte s jinou obrazovkou, budete muset nejprve ověřit správné piny popadl vaši páječku.

Není potřeba žádná speciální konfigurace softwaru - stačí nainstalovat software ovladače výrobce a je připraven k použití.

Krok 3: Bezdrátové připojení (Bluetooth)

Deska Raspberry Pi Zero nemá žádnou bezdrátovou funkci, pouze jeden užitečný port USB a v případě USB rozbočovače nebude dostatek místa, takže jsem musel být trochu vynalézavý, abych do své sestavy přidal nějaký druh bezdrátové funkce. Pokud to stavíte pomocí Zero W, můžete tento krok přeskočit.

Raspberry Pi má úhlednou funkci, která nám umožní přidat užitečnou bezdrátovou funkci. Připojením levného sériového modulu HC-05 Bluetooth k pinům UART Pi a vyladěním konfigurace systému je možné získat bezdrátový přístup k terminálu příkazového řádku pomocí sériového připojení přes Bluetooth. Poté můžeme pomocí běžných nástrojů odesílat soubory do zařízení a spravovat souborový systém.

Krok 4: Napájení

Napájení
Napájení
Napájení
Napájení

Na konci vývoje jsem si vybral svou baterii, takže jsem potřeboval vybrat článek, který by se vešel do dostupného prostoru. Ten, který jsem vybral, byl 2000mAH 25C 1S Lipo (rozměry: 81x34x9mm) prodávaný jako náhrada za dron Walkera Syma X5. Bylo by dobré mít možnost nabíjet baterii in-situ pomocí běžného připojení USB a mít možnost používat zařízení během nabíjení. Opravdu nechceme hrát s komplexními obvody pro řízení napájení, takže použijeme hotový modul, který poskytuje nabíjení USB a také zesílený 5V výstup pro přímé napájení Pi. Aby bylo zajištěno úplné vypnutí zařízení, je mezi výstupem tohoto modulu a Pi k dispozici posuvný přepínač, který zajišťuje, že baterii lze stále nabíjet, i když je zařízení vypnuté. Pi by mělo být řádně vypnuto, aby se předešlo problémům s poškozením dat. Než abychom se museli přihlašovat přes Bluetooth, můžeme k pinu Pi 5 (GPIO3) připojit hmatový přepínač a napsat malý skript, který to sleduje a po stisknutí spustí vypnutí. Napájecí a bezdrátové komponenty byly připájeny k dalšímu protoboardu 7 x 9 cm, který bude umístěn přímo pod klávesnicí.

Krok 5: Spojte to všechno dohromady

Propojit to všechno dohromady
Propojit to všechno dohromady
Propojit to všechno dohromady
Propojit to všechno dohromady
Propojit to všechno dohromady
Propojit to všechno dohromady

Díky zabudování všech různých částí můžeme sestavit vnitřní části. Největší problém, se kterým jsem se během montáže setkal, byl ten, že USB port přerušil můj Arduino Pro Micro, takže jsem musel pájet dráty přímo na pájecí podložky a ne pomocí USB kabelu. Toto je notoricky slabý bod na deskách Pro Micro, takže asi stojí za to na něj před montáží nanést pořádný kus horkého lepidla, aby se tomu zabránilo. Za předpokladu, že vás toto konkrétní neštěstí nepostihne, máte na výběr: můžete buď vytvořit supertenký kabel micro USB na micro USB pro připojení klávesnice k Pi, nebo můžete jeden nebo oba konce pájet přímo na desky. Protože jsem potřeboval pájet stranu Arduino, také jsem stranu Pi připájel přímo k testovacím bodům na zadní straně desky. Každá možnost má svá pro a proti, takže je jen na vás, čemu dáte přednost.

Desky budeme udržovat společně s nylonovými distancemi M3. K připojení spodních otvorů mezi klávesnicí a napájecí deskou potřebujeme 2x 9mm distanční sloupky. Horní otvory také udržují obrazovku, takže chceme 2,5 mm odstupy mezi klávesnicí a obrazovkou a 4,5 mm odstupy mezi obrazovkou a napájecí deskou. Boční fotografie ukazuje, jak to vypadá. Mezery budou potřebovat trochu pečlivé oříznutí, aby bylo vše paralelní - může to být trochu těsné se všemi vodiči klávesnice, ale mělo by to jít dohromady. Jak je patrné z fotografií, zařízení lze napájet a používat po sestavení, aniž byste potřebovali skutečný kryt. Brzy vytiskneme přílohu, ale než se k tomu dostaneme, budeme muset nainstalovat operační systém a nakonfigurovat ho.

Krok 6: Software

Po sestavení vnitřních částí můžeme pokračovat v instalaci a konfiguraci softwaru. Raspberry Pi poběží na standardní instalaci Raspbian Jediným dalším softwarem, který je třeba nainstalovat, kromě ovladačů obrazovky TFT, je aplikace Fuse. K získání správné funkce celé obrazovky používáme verzi SDL, kterou lze nainstalovat pomocí:

sudo apt-get install fuse-emulator-sdl

Chcete -li zvládnout naše stisknutí tlačítka vypnutí, zkopírujte skript 'vypnutí' z mého úložiště kódu do/home/pi/

Chcete -li získat sériovou konzolu přes Bluetooth, přidejte do /boot /config následující řádek:

enable_uart = 1

Budeme chtít, aby se při spuštění spustil náš vypínací skript a emulátor Fuse, takže přidejte tyto řádky do/etc/xdg/lxsession/LXDE-pi/autostart:

@fuse-sdl --no-sound --kempston --no-auto-load

Po provedení těchto změn restartujte Pi a měli byste být hotovi.

Krok 7: Příloha a finální montáž

Příloha a finální montáž
Příloha a finální montáž
Příloha a finální montáž
Příloha a finální montáž
Příloha a finální montáž
Příloha a finální montáž

Pouzdro bylo modelováno ve Fusion 360 (jak to udělat, je mimo rozsah tohoto návodu). K dispozici je 5 částí: zadní strana pouzdra, přední část obrazovky, přední strana klávesnice, tlačítko napájení a kryt ovládacího panelu. Kryt ovládacího panelu by měl být vytištěn pružným filamentem (použil jsem flexibilní PLA, ale měkčí materiál jako NinjaFlex může být lepší); vše ostatní by mělo být vytištěno v tuhém plastu (použil jsem Filamentum black PLA).

Aby tlačítko napájení dostalo určitý odpor a zabránilo se jeho chrastí, nalepte na záda 3 mm lepicí pěnu a poté děrujte 4 mm otvor, aby mohl pohodlně sedět nad svislým tac spínačem na výkonové desce plošných spojů. Možná budete muset mírně oříznout jeden okraj, jak je vidět na fotografiích, aby nedošlo k zachycení napájecí desky. Také mi přišlo užitečné použít malou kapku lepidla k přidržení tlačítka na vypínači.

Do horních úchytů na předním panelu obrazovky musíme nalepit pár nylonových distančních sloupků, aby bylo možné bezpečně upevnit horní části skříně. Po zaschnutí odstřihněte patky.

Abychom osadili desky, musíme nejprve vytvořit montážní sloupky. Odstraňte hlavy z některých nylonových šroubů M3 a přilepte závitové části do spodních otvorů každého z předních panelů. Když tyto uschnou, lze 2 přední panely slepit dohromady a klávesnici upevnit na místo pomocí distančních podložek 9 mm a 2,5 mm. Poté, když je toto na svém místě, lze obrazovku umístit na horní sloupky a přidat distanční sloupky 4,5 mm. Nakonec může být napájecí deska umístěna na svém místě a vodiče uspořádány tak, aby bylo možné namontovat záda.

Baterie by měla být na místě přilepena oboustrannou páskou nebo pěnovou fólií a zapojena do napájecího konektoru. Nyní lze obě poloviny spojit dohromady a použít několik krátkých zapuštěných šroubů M3 k zajištění všeho na svém místě.

Nakonec jej otočte a přilepte kryt ovládacího panelu k panelu klávesnice. Udělal jsem to pomocí dvoudílného epoxidového lepidla pro silné spojení.

Krok 8: Překrytí klávesnice

Překrytí klávesnice
Překrytí klávesnice
Překrytí klávesnice
Překrytí klávesnice
Překrytí klávesnice
Překrytí klávesnice

Jsme téměř hotovi. Chybí jen některá klíčová označení a překrytí, abychom věděli, jak se ke všem těm nádherným klíčovým slovům dostat.

Primární písmena a číslice jsou na aktuálních přepínáních. Našel jsem nějaké opravdu malé 2,5 mm dopisní převody, které se perfektně hodí na vrcholy o průměru 4 mm. Jsou trochu složitější, protože vrcholy se při tření pohybují, ale v balíčku dostanete docela dost písmen, takže je dobré udělat nějaké chyby. Nakonec jsem několik dotýkal jemnou trvalou fixou, i když při zpětném pohledu jsem je měl zkusit namočit do teplé vody a posunout na místo (pokud jste někdy postavili modelářskou soupravu, budete s tímto procesem obeznámeni). Aby byla písmena chráněna během používání, nanesl jsem na každý klíč vrchní část čirého laku na nehty.

Aby se stříbrná těla spínačů nedostala skrz mezery v překrytí, použil jsem k jejich vybarvení permanentní fix - to je vidět ve spodní řadě jedné z fotografií.

Vytištěné překryvy jsem navrhl v grafickém programu GIMP s otevřeným zdrojovým kódem a poté je vytiskl na matný papír fotografické kvality. V ideálním případě budou překryvy co nejtenčí - dokázal jsem velmi snadno odlepit podložku od značkového papíru Epson, který jsem použil, i když to nebude případ všech značek. Abych chránil tisk, zabalil jsem papír do čirého lepicího vinylového listu a na zadní stranu jsem oboustrannou páskou nalepil na pouzdro. Před slepením překryvů dolů však musíme otvory vyrazit. Použil jsem levný děrovač 4 mm kůže a nejlepších výsledků jsem dosáhl naostřením razníků a řezáním přímo proti nějakému šrotu 3 mm hliníkového plechu. Poté překryvy stačí seřadit a přilepit.

Krok 9: Závěr

A máme hotovo! Byl to poměrně velký projekt vyžadující řadu dovedností, včetně základní elektroniky, pájení, 3D modelování, programování a dokonce i malého grafického rozvržení. Nakonec to bylo velmi obohacující a s hotovým zařízením je skvělá zábava, ale jak si stojí proti mým původním kritériím?

Levné: Celkové náklady na vše, včetně aktuálních maloobchodních cen položek, které jsem již vlastnil, a papírenského zboží, jako je oboustranná páska, která vydrží i mimo tento projekt, se pohybují kolem 80 liber, což z něj činí cenově dostupný projekt.

Přenosný: Určitě je přenosný. Toto zařízení se pohodlně vejde do kapsy a je zcela samostatné, takže jej lze použít kdekoli. Pokud bych jej měl postavit znovu, udělal bych plochý 4směrný ovladač ve stylu joypadu, než abych použil navigační páčku, protože vyčnívá nad linii zařízení a ponechává jej náchylné k poškození. Také bych chtěl zjistit, zda je k dispozici nedotykový displej podobné velikosti a poměru s krytem odolnějším proti poškrábání, protože nepotřebuji rozhraní dotykového displeje a odporový povrch je obzvláště náchylný k poškození.

Klávesnice a joystick: Jsem opravdu spokojen s tím, jak to fungovalo. Ačkoli to z originálu nepůsobí mrtvým dojmem, používání klávesnice překvapivě připomíná staré ZX Spectrum - rozložení, překrytí a implementace klíčových slov k tomu dobře spolupracují. Klávesnici USB lze také použít samostatně s počítačem s emulátorem Fuse, který zajistí stejný zážitek.

Okamžitě: S využitím sériového modulu Bluetooth je relativně snadné přenášet archivy pásek do zařízení z jiného počítače, aniž byste museli opustit rozhraní Fuse, a mělo by být možné proces dále zefektivnit napsáním skriptu na straně klienta pro odeslání souboru. k zařízení. Byl bych raději, kdybych mohl používat standardní funkci přenosu souborů „odesílat do zařízení“Bluetooth zabudovanou ve většině operačních systémů, nebo správný systém pro sdílení souborů, jako je Samba. Ty však budou k dispozici pouze s deskou Pi Zero W a pro tuto verzi jsem ji nepoužil.

Kromě výše uvedených položek, kdybych začal tento projekt znovu od nuly, zvolil bych tenčí baterii s větší kapacitou na začátku projektu a navrhoval bych kolem ní, než abych musel na konci roku vybírat baterii vhodně velké velikosti. projekt. K rozšíření možností odesílání souborů do zařízení bych také použil spíše Pi Zero W než sériový modul Bluetooth. Dalším zjevným zlepšením by byl nějaký druh indikace stavu hardwarové baterie, protože v současné době není možné zjistit, kolik zbývá. Také bych zvážil použití operačního systému založeného na Ramdisku, jako je Alpine Linux, který by byl tolerantnější vůči tvrdým vypínáním a měl by umožnit jediný vypínač/zapnutí bez potřeby samostatného tlačítka pro vypnutí - mnohem více jako původní ZX Spectrum, jen odpojte jej, až skončíte.

Mohlo by být zajímavé navrhnout pro toto zařízení vlastní desku plošných spojů, která by nám potenciálně umožnila umístit napájecí součásti na zadní stranu klávesnice, a nikoli mít samostatnou desku. To by mohlo výrazně snížit hloubku hotového zařízení. Také by to usnadnilo montáž zařízení a nabídlo by potenciál jakési samo-montážní sady. Pokud je o tento projekt dostatečný zájem, možná bych udělal verzi 2, která tyto problémy řeší.

Krok 10: Zdroje

K vybudování tohoto projektu jsou potřeba následující zdroje:

Soubory případů pro tisk ve 3D (Thingiverse):

Kód (Github):

Doporučuje: