Kazalo:

Žep ZX (ročni ZX spekter): 10 korakov
Žep ZX (ročni ZX spekter): 10 korakov

Video: Žep ZX (ročni ZX spekter): 10 korakov

Video: Žep ZX (ročni ZX spekter): 10 korakov
Video: About the beginnings of the BiG X – An interview with Dr. Bernard Krone 2024, December
Anonim
Pocket ZX (ročni ZX spekter)
Pocket ZX (ročni ZX spekter)
Pocket ZX (ročni ZX spekter)
Pocket ZX (ročni ZX spekter)
Pocket ZX (ročni ZX spekter)
Pocket ZX (ročni ZX spekter)

Sem otrok 80-ih in imam lepe spomine na 8-bitne računalnike tiste dobe. Moj prvi računalnik - tisti, ki ima posebno mesto v mojem srcu - je bil Sinclair ZX Spectrum 48K. Ko sem pred kratkim odkril nekaj skupnosti, osredotočenih na starejše računalnike v spletu, sem se odločil, da želim podoživeti nekaj te nostalgije zase in namestil emulator Fuse na svoj MacBook. To je bilo nekaj časa zabavno, a res sem si želel namensko napravo - po možnosti nekaj majhnega, prenosnega in samostojnega, ki bi se prilegal mojemu življenjskemu slogu. Na tej stopnji je bila izbira bodisi slediti poti odličnega Bena Hecka in skrčiti izvirno strojno opremo ZX v nekaj prenosnega, bodisi goljufati in uporabiti emulacijo na majhnem računalniku z eno ploščo. Grem varat:)

Kaj torej želim od prenosnega ZX Spectruma?

  • Poceni: Imam preveč projektov, da bi zapravil velike vsote denarja za malo zabavne nostalgije.
  • Prenosno: Mora biti nekaj, s čimer se lahko igram na kavču ali na lenobno popoldne na vrtu.
  • Tipkovnica: Ne želim samo igrati iger, ampak tudi programirati. Če želite dobiti popolno izkušnjo, morate imeti te čudovite ključe ključnih besed.
  • Joystick: Nikoli se nisem ukvarjal s platformami s tipkovnico. Seveda pustolovske igre, vendar ne želim igrati samo pustolovskih iger, zato bo potreboval igralno palico.
  • Takoj: v 80. letih sem sovražil nalaganje kasete in si ne predstavljam, da sem v teh letih zrastel kakšen njen prijatelj.

Glede na vse to sem sestavil blok diagram, ki mi bo pomagal razumeti različne komponente. Pa začnimo graditi.

1. korak: USB tipkovnica in igralna palica

USB tipkovnica in igralna palica
USB tipkovnica in igralna palica
USB tipkovnica in igralna palica
USB tipkovnica in igralna palica
USB tipkovnica in igralna palica
USB tipkovnica in igralna palica

Pravilna tipkovnica je ključ do zajemanja videza in občutka izvirnega ZX Spectruma. Morda gradimo ročno posneto napravo, ki nima nič skupnega z izvirno notranjostjo Spectruma, vendar bi s skrbnim načrtovanjem lahko ustvarili nekaj, kar bi spominjalo na računalniško izkušnjo 80 -ih.

Začenši z nekaj protoboards in velikim kupom taktilnih stikal, sem eksperimentiral z nekaj idejami in se ustavil na razporejeni postavitvi, prikazani na fotografijah. Protoboarde, ki jih uporabljamo, so standardne velikosti 7x9 cm (luknje 26x31), ki so na voljo na spletu pri številnih prodajalcih. Stikala so različice za površinsko vgradnjo, ki imajo mehkejši občutek in so manj hrupne od običajnih kolegov skozi luknje, vendar bi moralo delovati, saj sta velikosti telesa skoraj enaki.

Kontrolniki krmilne palice so nato šli v preostali prostor tik nad tipkovnico. Odločil sem se, da bom uporabil 5-smerno taktilno navigacijsko stikalo na levi in velik gumb za požar na desni. Krmilna ročica se bo podvojila kot krmilnik za menijski sistem emulatorja in miška za interakcijo z osnovnim sistemom Linux, zato sem dodal tudi majhen sekundarni gumb.

Mikrokrmilnik za tipkovnico je Arduino Pro Micro. To je majhna plošča, ki jo je mogoče programirati kot USB -napravo za človeški vmesnik (HID), na primer tipkovnico, miško ali igralno palico.

Ko so stikala spajkana, je treba zgraditi matriko, ki povezuje vrstice in stolpce stikal z mikrokrmilnikom. Ta matrika nam bo omogočila povezavo vseh 40 tipk in 7 gumbov krmilne palice na 18 V/I nožic Pro Micro. Tipkovnici Spectrum ni treba pritiskati večkrat, razen tipk Caps Shift in Symbol Shift, zato jih bomo postavili na namenske zatiče, potem nam ne bo treba skrbeti za uporabo diod za preprečevanje fantomske tipke- stiskalnice. Vključil sem shemo, ki prikazuje, kako je tipkovnica, vključno z matrico, ožičena. Najprej je vsak stolpec povezan z dolžino enožilne žice, nato pa se vrstice povežejo z enožilno žico, ki je previdno oblikovana za prečkanje stebrov brez kratkega stika. To je lahko nekoliko zapleteno, ker morate žice vrstice postaviti dovolj visoko, da se izognete stiku s stebri, vendar dovolj nizko, da pustite prostor za vse napeljave, ki jih moramo vstaviti med končno montažo. Nazadnje so vrstice in stolpci povezani z zatiči Arduino z žicami iz starih kablov IDE.

Kot že omenjeno, bo krmilnik krmilne ročice deloval tudi kot krmilnik kazalca in miška, zato bomo morali preklopiti med načini. Privzeti način bo kurzorni način, kombinacija Caps Shift + tipka Fire bo preklopila v način krmilne palice, kombinacija tipk Shift + Fire pa bo preklopila v način miške. Če želite prikazati, v katerem načinu je, je na sredini plošče krmilne palice nekaj 3 mm LED. LED za napajanje bo prav tako koristen in dober način, da to zagotovite s Pi, je, da LED priključite na Pi -jev UART TX pin, saj bo ta nenehno pošiljal podatke, medtem ko je naprava vklopljena.

Da se ohlapne žice med uporabo ne pokvarijo ali da matrične žice ne pridejo do kratkega stika, je vse obilno prekrito z vročim lepilom - grdo, a učinkovito!

Zadnji korak za zagon tipkovnice je programiranje Arduina s kodo ZX_Spectrum_Keyboard iz mojega skladišča. Ko to storite, lahko spajkalnik odložite, tipkovnico priključite v običajen računalnik in jo uporabite z emulatorjem Spectrum, kot sta varovalka ali spektakular. Ampak tu se ne ustavimo, zato pojdimo naprej …

Korak: LCD zaslon

LCD zaslon
LCD zaslon

Originalni Spectrum ima ločljivost zaslona 256x192 slikovnih pik. Da bi ohranili (približno) to razmerje in se izognili črnim črtam na obeh straneh, sem izbral zaslon na dotik Waveshare 3,2 320x240 TFT LCD, zasnovan za Raspberry Pi. Ne bo povezan neposredno z glavo Pi GPIO, da ga lahko odstranimo plastični okvir priključka in obrežite nožice. Protoboard 7x9 cm sem obrezal na 2,1 x 9 cm (natančna velikost ni pomembna, dokler se dve preostali vogalni luknji poravnata z zgornjimi luknjami za tipkovnico in je dovolj prostora za spajkanje zatičev glave GPIO) in spajkali zatiče na mestu, kar nam bo olajšalo namestitev zaslona nad tipkovnico.

Na Pi moramo povezati samo vhode za vhod/izhod SPI, napajanje in zaslon na dotik - težko je izslediti, kateri zatiči so dejansko potrebni, vendar so informacije tam zunaj, če dovolj pogledate. Zaslon Waveshare uporablja 10 zatičev: 4, 6, 9, 13, 15, 19, 21, 23, 24 in 26. Očitno je, da če to delate z drugim zaslonom, morate preveriti pravilne zatiče, preden prijel za spajkalnik.

Posebna konfiguracija programske opreme ni potrebna - samo namestite proizvajalčevo programsko opremo in pripravljena je za uporabo.

3. korak: Brezžično (Bluetooth)

Plošča Raspberry Pi Zero nima brezžičnih zmožnosti, samo ena uporabna vrata USB in v ohišju ne bo dovolj prostora za zvezdišče USB, zato sem se moral malce iznajdljivo dodati nekakšni brezžični zmogljivosti za svojo gradnjo. Če to gradite z Zero W, lahko ta korak preskočite.

Raspberry Pi ima lepo funkcijo, ki nam bo omogočila dodajanje uporabne brezžične zmogljivosti. Če na Pi-jeve UART-je pritrdite poceni serijski modul Bluetooth HC-05 in prilagodite sistemsko konfiguracijo, lahko brezžični dostop do terminala ukazne vrstice dobite s serijskim prek Bluetooth. Nato lahko uporabimo običajna orodja za pošiljanje datotek v napravo in upravljanje datotečnega sistema.

4. korak: Napajanje

Moč
Moč
Moč
Moč

Na koncu razvoja sem izbral baterijo, ki je bila potrebna za izbiro celice, ki bi ustrezala razpoložljivemu prostoru. Izbral sem 2000mAH 25C 1S Lipo (mere: 81x34x9 mm), ki se je prodajal kot nadomestek za brezpilotni letnik Walkera Syma X5. Dobro bi bilo, če bi lahko baterijo polnili na mestu z običajno povezavo USB in lahko napravo uporabljali med polnjenjem. Ne želimo se poigravati s kompleksnimi vezji za krmiljenje moči, zato bomo za neposredno napajanje Pi uporabili že pripravljen modul, ki zagotavlja polnjenje USB in tudi okrepljen 5V izhod. Za zagotovitev popolne izklopa naprave je med izhodom tega modula in Pi drsno stikalo, ki zagotavlja, da se lahko baterija še vedno polni, tudi ko je naprava izklopljena. Da bi se izognili težavam s korupcijo podatkov, je treba Pi pravilno zapreti. Namesto da bi se morali prijaviti prek serijske povezave Bluetooth, lahko na Pi -ov pin 5 (GPIO3) povežemo taktilno stikalo in napišemo majhen skript, ki to opazuje in ob pritisku sproži zaustavitev. Napajalne in brezžične komponente so bile spajkane na drugo prototipno ploščo velikosti 7x9 cm, ki bo ležala neposredno pod tipkovnico.

5. korak: Povežite vse skupaj

Povežite vse skupaj
Povežite vse skupaj
Povežite vse skupaj
Povežite vse skupaj
Povežite vse skupaj
Povežite vse skupaj

Z vsemi različnimi sestavljenimi deli lahko sestavimo notranjost. Največja težava, s katero sem se srečal med sestavljanjem, je bila, da so vrata USB prekinila moj Arduino Pro Micro, kar je zahtevalo, da sem spajkala žice neposredno na spajkalne ploščice in ne z uporabo kabla USB. To je zloglasna šibka točka na ploščah Pro Micro, zato je pred montažo verjetno vredno nanesti dobro globino vročega lepila, da se temu izognete. Ob predpostavki, da vas ta nesreča ne doleti, imate izbiro: lahko naredite super tanek kabel mikro USB na mikro USB, da povežete tipkovnico s Pi, ali pa spajate enega ali oba konca neposredno na plošče. Ker sem moral spajkati stran Arduino, sem tudi stran Pi spajal neposredno na preskusne točke na zadnji strani plošče. Vsaka možnost ima prednosti in slabosti, zato je odvisno od vas, kaj vam je ljubše.

Plošče bomo hranili skupaj z najlonskimi izhodi M3. Za priključitev spodnjih lukenj med tipkovnico in napajalno ploščo potrebujemo 2x 9 mm stojala. Zgornje luknje tudi zadržijo zaslon, zato želimo 2,5 mm razdalje med tipkovnico in zaslonom ter 4,5 mm razdalje med zaslonom in napajalno ploščo. Stranska fotografija prikazuje, kako to izgleda. Odmiki bodo potrebovali malo previdnega obrezovanja, da bo vse vzporedno - lahko se malo prilega vsem žicam tipkovnice, vendar bi moralo iti skupaj. Kot je razvidno iz fotografij, je mogoče napravo vklopiti in uporabiti po montaži, ne da bi potrebovali dejansko ohišje. Kmalu bomo natisnili ohišje, vendar moramo, preden pridemo do tega, namestiti operacijski sistem in ga konfigurirati.

6. korak: Programska oprema

Z sestavljenimi notranjimi elementi lahko nadaljujemo z namestitvijo in konfiguracijo programske opreme. Raspberry Pi bo deloval v standardni namestitvi Raspbian. Edina dodatna programska oprema, ki jo je treba namestiti razen gonilnikov zaslona TFT, je aplikacija Fuse. Uporabljamo različico SDL, da dobimo ustrezno celozaslonsko funkcionalnost, ki jo je mogoče namestiti z:

sudo apt-get install fuse-emulator-sdl

Če želite upravljati pritisk gumbov za zaustavitev, kopirajte skript 'shutdown' iz mojega skladišča kod v/home/pi/

Če želite dobiti serijsko konzolo prek Bluetootha, dodajte naslednjo vrstico v /boot /config:

enable_uart = 1

Želeli bomo, da se naš zagonski skript in emulator Fuse zaženeta ob zagonu, zato dodajte te vrstice v/etc/xdg/lxsession/LXDE-pi/autostart:

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

Po teh spremembah znova zaženite Pi in to morate storiti.

7. korak: ohišje in končna montaža

Ohišje in zaključna montaža
Ohišje in zaključna montaža
Ohišje in zaključna montaža
Ohišje in zaključna montaža
Ohišje in zaključna montaža
Ohišje in zaključna montaža

Ohišje je bilo modelirano v Fusion 360 (kako to storiti, ni v obsegu tega navodila). Obstaja 5 delov: zadnji del ohišja, sprednji zaslon, sprednja tipkovnica, gumb za vklop in pokrov nadzorne plošče. Pokrov nadzorne plošče je treba natisniti v fleksibilni nitki (uporabil sem prilagodljiv PLA, vendar je lahko bolj mehak material, kot je NinjaFlex); vse ostalo je treba natisniti v trdi plastiki (uporabil sem Filamentum black PLA).

Če želite gumbu za vklop dati nekaj upora in preprečiti njegovo ropotanje, mu na hrbet prilepite 3-milimetrsko lepilno peno in nato izvrtajte 4-milimetrsko luknjo, da se lahko tesno prilega navpičnemu stikalu tac na napajalni plošči. Morda boste morali rahlo obrezati en rob, kot je razvidno iz fotografij, da se izognete zaskoku napajalne plošče. Prav tako se mi je zdelo koristno uporabiti majhen košček lepila za držanje gumba na stikalu za vklop.

V zgornje nosilce sprednje plošče zaslona moramo prilepiti nekaj najlonskih stojal, da lahko zgornje dele ohišja varno pritrdimo. Ko se posušijo, obrežite stojala v vodo.

Za namestitev plošč moramo najprej ustvariti montažne stebre. Odstranite glave z nekaterih najlonskih vijakov M3 in nalepite navojne dele v spodnje luknje vsake sprednje plošče. Ko se posušijo, se lahko 2 sprednji plošči zlepita skupaj in tipkovnica pritrdi na mestu z uporabo 9 mm in 2,5 mm odmikov. Nato, ko je to na mestu, lahko zaslon postavite na zgornje stebre in dodate 4,5 mm razdalje. Končno lahko napajalno ploščo namestite na svoje mesto in žice razporedite tako, da bo mogoče pritrditi hrbet.

Baterijo je treba pritrditi na mesto z dvostranskim trakom ali penasto folijo in jo priključiti v napajalni konektor. Zdaj lahko dve polovici združimo in uporabimo nekaj kratkih vijačnih strojnih vijakov M3 za pritrditev vsega na svojem mestu.

Na koncu ga obrnite in prilepite pokrov nadzorne plošče na ploščo tipkovnice. To sem naredil z dvodelnim epoksi lepilom za močno vez.

8. korak: Prekrivanje tipkovnice

Prekrivanje tipkovnice
Prekrivanje tipkovnice
Prekrivanje tipkovnice
Prekrivanje tipkovnice
Prekrivanje tipkovnice
Prekrivanje tipkovnice

Skoraj smo že končali. Manjkajo le nekatere ključne oznake in prekrivanje, da vemo, kako priti do vseh teh čudovitih ključnih besed.

Primarne črke in številke so na dejanskih stikalih. Našel sem nekaj zelo majhnih 2,5 mm črkovnih prenosov, ki se odlično prilegajo vrhom premera 4 mm. Nanašati jih je nekoliko zapleteno, ker se vrhovi premikajo, ko jih drgnete, vendar v paketu dobite kar nekaj črk, zato je v redu narediti nekaj napak. Nekaj sem jih dotaknil s finim trajnim označevalcem, čeprav bi jih za nazaj moral poskusiti namočiti v toplo vodo in jih potisniti na svoje mesto (če ste kdaj izdelali modelni komplet, boste s tem postopkom seznanjeni). Za zaščito črk med uporabo sem na vrh vsake tipke nanesla nekaj prozornega laka za nohte.

Da preprečim, da bi se srebrna ohišja stikal prikazala skozi vrzeli v prekrivanju, sem jih obarvala s trajno oznako - to je vidno v spodnji vrstici ene od fotografij.

Natisnjene prosojnice sem oblikoval v odprtokodnem grafičnem programu GIMP in jih nato natisnil na mat papir s kakovostjo fotografij. V idealnem primeru bodo prevleke čim tanjše - podlogo iz papirja z blagovno znamko Epson, ki sem jo uporabljal, sem lahko olupil, čeprav to ne velja za vse blagovne znamke. Zaradi zaščite tiska sem papir prekril s prozorno lepilno folijo iz vinila in na hrbtno stran nalepil dvostranski trak, da sem ga prilepil na ohišje. Preden lepimo prekrivke, pa moramo izluščiti luknje. Uporabil sem poceni 4 -milimetrski luknjač za usnje in dosegel najboljše rezultate, tako da sem izostril luknjače in jih odrezal neposredno ob nekaj ostankov 3 mm aluminijaste pločevine. Nato je treba samo poravnati prekrivke in jih zalepiti.

9. korak: Zaključek

In končali smo! To je bil precej velik projekt, ki zahteva vrsto spretnosti, vključno z osnovno elektroniko, spajkanjem, 3D modeliranjem, programiranjem in celo malo grafične postavitve. Na koncu je bilo zelo koristno in končna naprava je zelo zabavna za igranje, toda kako se obnese glede na moja prvotna merila?

Poceni: Skupni stroški vsega, vključno s trenutnimi maloprodajnimi cenami predmetov, ki sem jih že imel, in pisalnih potrebščin, kot je dvostranski trak, ki bo trajal precej dlje od tega projekta, znašajo okoli 80 funtov, zaradi česar je to cenovno ugoden projekt.

Prenosno: Vsekakor je prenosno. Ta naprava se udobno prilega v žep in je popolnoma samostojna, zato jo lahko uporabljate kjer koli. Če bi ga ponovno zgradil, bi namesto z navigacijsko palico naredil ploščat 4-smerni krmilnik v slogu joypad, ki štrli nad črto naprave, zaradi česar je ranljiv za poškodbe. Prav tako bi rad videl, ali je na voljo zaslon na dotik podobne velikosti in razmerja z ohišjem, ki je bolj odporno na praske, saj ne potrebujem vmesnika zaslona na dotik, uporovna površina pa je še posebej nagnjena k poškodbam.

Tipkovnica in igralna palica: Zelo sem zadovoljen s tem, kako se je to izšlo. Čeprav nima občutka mrtvega mesa v izvirniku, uporaba tipkovnice presenetljivo spominja na stari ZX Spectrum - postavitev, prekrivanje in izvajanje ključnih besed dobro sodelujejo pri tem. Tipkovnico USB lahko uporabite tudi samostojno z računalnikom, ki uporablja emulator Fuse, da zagotovite enako izkušnjo.

Takoj: Uporaba serijskega modula Bluetooth omogoča razmeroma enostaven prenos arhivov trakov v napravo iz drugega računalnika, ne da bi morali zapustiti vmesnik Fuse, zato bi bilo treba postopek še dodatno poenostaviti s pisanjem odjemalskega skripta za pošiljanje datoteke na napravo. Raje bi lahko uporabil standardno funkcijo prenosa datotek Bluetooth za pošiljanje v napravo, vgrajeno v večino operacijskih sistemov, ali ustrezen sistem za skupno rabo datotek, kot je Samba. Vendar bodo te na voljo le s ploščo Pi Zero W in tega nisem uporabil za to gradnjo.

Poleg zgoraj navedenih elementov, če bi ta projekt znova začel iz nič, bi se že na začetku projekta odločil za tanjšo baterijo z večjo kapaciteto in jo oblikoval okoli nje, namesto da bi moral izbrati baterijo ustrezne velikosti na koncu projekt. Za razširitev možnosti pošiljanja datotek v napravo bi uporabil tudi Pi Zero W namesto serijskega modula Bluetooth. Druga očitna izboljšava bi bila nekakšna indikacija stanja strojne baterije, saj trenutno ni mogoče videti, koliko je napolnjenega. Prav tako bi razmislil o uporabi operacijskega sistema, ki temelji na Ramdisku, kot je Alpine Linux, ki bi bil bolj odporen na težke zaustavitve in bi moral omogočiti eno samo stikalo za vklop/izklop brez potrebe po ločenem gumbu za izklop - podobno kot prvotni ZX Spectrum, samo odklopite, ko končate.

Morda bi bilo zanimivo oblikovati tiskano vezje po meri za to napravo, ki bi nam potencialno omogočilo, da namestimo komponente za napajanje na zadnji strani tipkovnice, namesto da bi imeli ločeno ploščo. To bi lahko znatno zmanjšalo globino končne naprave. Olajšalo bi tudi sestavljanje naprave in ponudilo potencial neke vrste kompleta za samosestavljanje. Če je za ta projekt dovolj zanimanja, bi lahko naredil različico 2, ki obravnava ta vprašanja.

10. korak: Viri

Za izgradnjo tega projekta so potrebna naslednja sredstva:

Datoteke primerov za 3D tiskanje (Thingiverse):

Koda (Github):

Priporočena: