Sadržaj:

Džepni ZX (ručni ZX spektar): 10 koraka
Džepni ZX (ručni ZX spektar): 10 koraka

Video: Džepni ZX (ručni ZX spektar): 10 koraka

Video: Džepni ZX (ručni ZX spektar): 10 koraka
Video: lupo@winter 2024, Novembar
Anonim
Džepni ZX (ručni ZX spektar)
Džepni ZX (ručni ZX spektar)
Džepni ZX (ručni ZX spektar)
Džepni ZX (ručni ZX spektar)
Džepni ZX (ručni ZX spektar)
Džepni ZX (ručni ZX spektar)

Ja sam dijete 80-ih i imam lijepe uspomene na 8-bitne računare tog doba. Moj prvi računar - koji ima posebno mesto u mom srcu - bio je Sinclair ZX Spectrum 48K. Nakon što sam nedavno otkrio neke zajednice usmjerene na starije računare na webu, odlučio sam da želim ponovo proživjeti tu nostalgiju za sebe i instalirao sam Fuse emulator na svoj MacBook. Ovo je neko vrijeme bilo zabavno, ali zaista sam želio namjenski uređaj - po mogućnosti nešto malo, prijenosno i samostalno koje bi se uklopilo u moj stil života. Izbor u ovoj fazi bio je ili slijediti put sjajnog Bena Hecka i smanjiti originalni ZX hardver u nešto prijenosno ili prevariti i koristiti emulaciju na malom jednokrilnom računaru. Prevaricu se:)

Dakle, što želim od svog prijenosnog ZX Spectruma?

  • Jeftino: Imam previše projekata da bih potrošio velike svote novca na malo zabavne nostalgije.
  • Prijenosno: Mora biti nešto s čime se mogu igrati na kauču ili lijeno popodne u vrtu.
  • Tastatura: Ne želim samo da igram igre, već i da je programiram. Da biste dobili potpuno iskustvo, potrebni su vam ti divni ključevi ključnih riječi.
  • Joystick: Nikada se nisam bavio igranjem platformi sa tastaturom. Avanturističke igre, naravno, ali ja ne želim samo da igram avanturističke igre pa će mi trebati džojstik.
  • Odmah: Mrzio sam učitavanje trake 80 -ih i ne mogu zamisliti da sam u godinama koje su uslijedile poraslo.

Imajući sve ovo na umu, izradio sam blok dijagram koji će mi pomoći da razumijem različite komponente. Pa idemo graditi.

Korak 1: USB tastatura i džojstik

USB tastatura i džojstik
USB tastatura i džojstik
USB tastatura i džojstik
USB tastatura i džojstik
USB tastatura i džojstik
USB tastatura i džojstik

Pravilno postavljanje tastature ključ je za snimanje izgleda i dojma originalnog ZX Spectruma. Možda gradimo ručni emulirani uređaj koji nema ništa zajedničko s originalnim internim elementima Spectruma, ali bi pažljivim dizajnom trebalo biti moguće stvoriti nešto što podsjeća na računarsko iskustvo 80 -ih.

Počevši s nekim proto -pločama i velikom hrpom taktilnih prekidača, eksperimentirao sam s nekoliko ideja i odlučio se za razmaknuti raspored prikazan na fotografijama. Protoboard ploče koje koristimo su standardne dimenzije 7x9cm (26x31 rupe) dostupne na mreži od mnogih prodavača. Prekidači su verzije za površinsko montiranje koje imaju mekši osjećaj i manje su bučne od uobičajenih prolaznika, ali bi trebale raditi jer su im veličine tijela gotovo identične.

Kontrole džojstika su zatim otišle u preostali prostor neposredno iznad tastature. Odlučio sam upotrijebiti 5-smjerni taktilni navigacijski prekidač s lijeve strane i veliko dugme za paljenje s desne strane. Džojstik će se udvostručiti kao kontroler za sistem menija emulatora i miš za interakciju sa Linux sistemom, pa sam dodao i sekundarno dugme.

Mikrokontroler za tastaturu je Arduino Pro Micro. Ovo je mala ploča koja se može programirati kao USB uređaj za ljudsko sučelje (HID), poput tipkovnice, miša ili džojstika.

Nakon što su prekidači lemljeni na mjestu, potrebno je izgraditi matricu koja povezuje redove i stupce prekidača s mikrokontrolerom. Ova matrica će nam omogućiti da povežemo svih 40 tipki plus 7 tipki na upravljačkoj ploči na 18 I/O pinova Pro Micro -a. Tipkovnica Spectrum ne mora pritiskati više tipki osim tipki Caps Shift i Symbol Shift pa ćemo ih staviti na namjenske pinove, tada nećemo morati brinuti o upotrebi dioda za sprječavanje fantomskih tipki- prese. Uključio sam šemu koja prikazuje kako je tastatura, uključujući matricu, ožičena. Prvo, svaki stupac je povezan s jednom žicom, a zatim su redovi povezani pomoću jednožilne žice koja je pažljivo oblikovana za prelazak preko stupova bez kratkog spoja. To može biti malo zeznuto jer morate postaviti žice reda dovoljno visoko da izbjegnete kontakt sa stupovima, ali dovoljno nisko da ostavite mjesta za sve ožičenje koje moramo ugraditi tijekom završnog sastavljanja. Konačno, redovi i stupci povezani su s Arduino pinovima žicama iz starih IDE kabela.

Kao što je gore spomenuto, kontroler džojstika će također funkcionirati kao kontroler kursora i miš pa ćemo morati moći prebacivati između načina rada. Zadani način rada bit će način rada kursora, kombinacija Caps Shift + tipka Vatra prebacit će se u način rada džojstika, a kombinacija simbola Shift + tipka Vatra prebacit će se u način miša. Da biste prikazali u kojem je načinu rada, postoji nekoliko 3 mm LED dioda u sredini ploče upravljačke palice. LED za napajanje će također biti koristan, a dobar način da to dostavite sa Pi je da spojite LED diodu na Pi -jev UART TX pin jer će on neprestano slati podatke dok je uređaj uključen.

Kako biste spriječili da se labave žice u upotrebi troše ili da se matrice spoje, sve je obilno prekriveno vrućim ljepilom - ružno, ali efikasno!

Zadnji korak da tastatura radi je programiranje Arduina sa ZX_Spectrum_Keyboard kodom iz mog spremišta. Kada to učinite, zapravo možete staviti lemilicu, priključiti tastaturu u običan računar i koristiti je sa Spectrum emulatorom poput osigurača ili Spectaculatora. No, ovdje nećemo stati, pa idemo dalje …

Korak 2: LCD ekran

LCD ekran
LCD ekran

Originalni Spectrum ima rezoluciju ekrana 256x192 piksela. Da bih zadržao (približno) ovaj omjer i izbjegao crne trake s obje strane, odabrao sam Waveshare 3.2 320x240 TFT LCD ekran osjetljiv na dodir dizajniran za Raspberry Pi. Neće biti povezan direktno s Pi -jevim zaglavljem GPIO pa možemo ukloniti skratila sam plastičnu masku konektora i obrezala pinove. Skratio sam protokolsku ploču 7x9 cm na 2,1x9 cm (tačna veličina nije bitna sve dok se dvije preostale ugaone rupe poravnaju s gornjim otvorima na tipkovnici i ima dovoljno mjesta za lemljenje igara zaglavlja GPIO) i lemljenje pinova u položaju, što će nam omogućiti jednostavan način montiranja ekrana iznad tastature.

Trebamo samo spojiti SPI, napajanje i I/O pinove na ekranu osjetljivom na dodir na Pi - može biti prilično teško pronaći koje su pinove zaista potrebne, ali informacije su tu ako pogledate dovoljno dobro. Ekran Waveshare koristi 10 pinova: 4, 6, 9, 13, 15, 19, 21, 23, 24 i 26. Očigledno, ako ovo radite s drugim ekranom, prije nego što to učinite, morate provjeriti ispravne pinove hvatajući lemilicu.

Nije potrebna posebna konfiguracija softvera - samo instalirajte softver upravljačkog programa proizvođača i spreman je za upotrebu.

Korak 3: Bežično (Bluetooth)

Raspberry Pi Zero ploča nema bežične mogućnosti, samo jedan korisni USB priključak i neće biti dovoljno mjesta u kućištu za USB čvorište pa sam morao biti malo inventivan da dodam neku vrstu bežične sposobnosti za svoju izgradnju. Ako ovo gradite sa Zero W, možete preskočiti ovaj korak.

Raspberry Pi ima zgodnu značajku koja će nam omogućiti dodavanje korisnih bežičnih mogućnosti. Priključivanjem jeftinog serijskog modula HC-05 Bluetooth na U-ove U-ove pinove i podešavanjem konfiguracije sistema moguće je dobiti bežični pristup terminalu komandne linije pomoću serijskog preko Bluetooth-a. Zatim možemo koristiti uobičajene alate za slanje datoteka na uređaj i upravljanje datotečnim sistemom.

Korak 4: Napajanje

Snaga
Snaga
Snaga
Snaga

Na kraju razvoja odabrao sam bateriju koja mi je bila potrebna da odaberem ćeliju koja bi se uklopila u raspoloživi prostor. Odabrao sam 2000mAH 25C 1S Lipo (dimenzije: 81x34x9mm) koji se prodavao kao zamjena za bespilotnu letjelicu Walkera Syma X5. Bilo bi dobro da možete puniti bateriju na licu mjesta uz redovnu USB vezu i da možete koristiti uređaj dok se puni. Ne želimo se zapravo petljati sa složenim krugovima za kontrolu snage, pa ćemo koristiti gotov modul koji osigurava USB punjenje i također pojačan izlaz od 5 V za izravno napajanje Pi-a. Kako biste osigurali da se uređaj može potpuno isključiti, postoji klizni prekidač između izlaza ovog modula i Pi koji osigurava da se baterija još uvijek može puniti čak i kad je uređaj isključen. Pi treba pravilno zatvoriti kako bi se izbjegli problemi sa korupcijom podataka. Umjesto da se moramo prijavljivati putem Bluetooth serijske veze, možemo povezati taktilni prekidač na Pi -ov pin 5 (GPIO3) i napisati malu skriptu koja to gleda i pokreće isključivanje kada se pritisne. Napajanje i bežične komponente lemljene su na drugu protokolu dimenzija 7x9 cm koja će se nalaziti neposredno ispod tastature.

Korak 5: Povežite sve zajedno

Povezujući sve to zajedno
Povezujući sve to zajedno
Povezujući sve to zajedno
Povezujući sve to zajedno
Povezujući sve to zajedno
Povezujući sve to zajedno

Sa svim različitim dijelovima, možemo sastaviti unutrašnjost. Najveći problem na koji sam naišao tijekom sastavljanja bio je taj što je USB port prekinuo moj Arduino Pro Micro, zahtijevajući da lemim žice direktno na lemilice, a ne pomoću USB kabela. Ovo je notorna slaba tačka na Pro Micro pločama pa je vjerovatno vrijedno nanijeti na nju dobro vrelo ljepilo prije montaže kako bi se to izbjeglo. Pod pretpostavkom da vas ova nesreća ne pogađa, imate izbor: možete ili napraviti super tanak mikro USB na mikro USB kabel za povezivanje tipkovnice s Pi ili možete lemiti jedan ili oba kraja direktno na ploče. Kako mi je bilo potrebno lemiti Arduino stranu, lemio sam i Pi stranu direktno na ispitne točke na stražnjoj strani ploče. Svaka opcija ima prednosti i nedostatke pa na vama je da odaberete koju opciju preferirate.

Držat ćemo ploče zajedno s najlonima M3. Za spajanje donjih rupa između tastature i ploče za napajanje potrebna su nam 2 x 9 mm stalka. Gornje rupe takođe zadržavaju ekran pa želimo odstupanja od 2,5 mm između tastature i ekrana i 4,5 mm rastojanja između ekrana i ploče za napajanje. Bočna fotografija prikazuje kako ovo izgleda. Sukobi će trebati malo pažljivo podrezivanje kako bi sve bilo paralelno - može biti malo usko uklopljeno sa svim žicama tastature, ali bi trebalo ići zajedno. Kao što se može vidjeti iz fotografija, uređaj se može uključiti i koristiti nakon montaže, bez potrebe za stvarnim kućištem. Uskoro ćemo štampati kućište, ali prije nego što dođemo do toga, morat ćemo instalirati operativni sistem i konfigurirati ga.

Korak 6: Softver

Sa sastavljenim internim elementima možemo nastaviti s instalacijom i konfiguracijom softvera. Raspberry Pi će raditi na standardnoj Raspbian instalaciji. Jedini dodatni softver koji treba instalirati, osim upravljačkih programa za TFT ekran, je aplikacija Fuse. Koristimo SDL verziju da bismo dobili odgovarajuću funkcionalnost preko cijelog ekrana, koja se može instalirati sa:

sudo apt-get install fuse-emulator-sdl

Za rukovanje pritiscima dugmeta za isključivanje, kopirajte 'shutdown' skriptu iz mog spremišta koda u/home/pi/

Da biste dobili serijsku konzolu preko Bluetootha, dodajte sljedeći red u /boot /config:

enable_uart = 1

Željet ćemo da se naša skripta za isključivanje i emulator Fuse pokrenu pri pokretanju pa dodajte ove redove u/etc/xdg/lxsession/LXDE-pi/autostart:

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

Ponovo pokrenite Pi nakon ovih promjena i trebali biste završiti.

Korak 7: Ograđivanje i završna montaža

Prilog i završna montaža
Prilog i završna montaža
Prilog i završna montaža
Prilog i završna montaža
Prilog i završna montaža
Prilog i završna montaža

Kućište je modelirano u Fusion 360 (kako to učiniti nije obuhvaćeno ovim uputstvom). Ima 5 dijelova: stražnji dio kućišta, prednji dio ekrana, prednji dio tastature, tipka za uključivanje i poklopac upravljačke ploče. Poklopac upravljačke ploče trebao bi biti odštampan u fleksibilnoj niti (koristio sam fleksibilan PLA, ali bi mekši materijal poput NinjaFlex -a mogao biti bolji); sve ostalo treba štampati u krutoj plastici (koristio sam Filamentum black PLA).

Da biste gumbu za uključivanje dali određeni otpor i spriječili njegovo zveckanje, zalijepite ljepljivu pjenu od 3 mm na njegova leđa, a zatim izbušite rupu od 4 mm kako biste mogli čvrsto sjediti iznad vertikalnog prekidača na ploči za napajanje. Možda ćete morati malo obrezati jednu ivicu, kao što se može vidjeti na fotografijama, kako biste izbjegli zaglavljivanje ploče za napajanje. Također mi je bilo korisno upotrijebiti malu mrvicu ljepila za držanje tipke na prekidaču za napajanje.

Moramo zalijepiti nekoliko najlonskih nosača u gornje držače na prednjoj ploči ekrana kako bismo omogućili sigurno pričvršćivanje gornjih dijelova kućišta. Kad se osuše, isecite isklapanje u ravnini.

Za postavljanje ploča prvo moramo stvoriti montažne stupove. Uklonite glave s nekih najlonskih vijaka M3 i zalijepite dijelove s navojem u donje rupe svake prednje ploče. Kada se osuše, 2 prednje ploče se mogu zalijepiti zajedno i tastatura se može pričvrstiti na mjesto pomoću rastojanja od 9 mm i 2,5 mm. Zatim, s ovim na mjestu, zaslon se može postaviti na gornje stupove i mogu se dodati razmaci od 4,5 mm. Konačno, ploča za napajanje može se postaviti na mjesto, a žice postaviti tako da omogućuju postavljanje stražnje strane.

Baterija bi trebala biti zaglavljena na mjestu s dvostranom trakom ili pjenom i priključena u utičnicu za napajanje. Sada se dvije polovice mogu spojiti i upotrijebiti nekoliko kratkih upuštenih vijaka M3 za pričvršćivanje na mjestu.

Na kraju, preokrenite ga i zalijepite poklopac upravljačke ploče na ploču tastature. Učinio sam to s dvodijelnim epoksidnim ljepilom za jaku vezu.

Korak 8: Preklapanje tastature

Preklapanje tastature
Preklapanje tastature
Preklapanje tastature
Preklapanje tastature
Preklapanje tastature
Preklapanje tastature

Skoro smo gotovi. Nedostaju samo neke ključne oznake i preklapanje kako bismo znali kako doći do svih tih prekrasnih ključnih riječi.

Primarna slova i brojevi nalaze se na stvarnim prekidačima. Pronašao sam neke zaista male prenose slova od 2,5 mm koji savršeno pristaju na vrhove promjera 4 mm. Malo ih je teško primijeniti jer se vrhovi pomiču dok ih trljate, ali dobivate dosta slova u pakiranju pa je u redu napraviti neke greške. Na kraju sam nekoliko dodirnuo finim trajnim markerom iako sam, s obzirom na prošlost, trebao pokušati namočiti ih u toploj vodi i gurnuti na mjesto (ako ste ikada napravili model kompleta, bit će vam poznat ovaj proces). Kako bih zaštitio slova tokom upotrebe, na svaku tipku sam nanio malo prozirnog laka za nokte.

Kako bih spriječio da se srebrna tijela prekidača pokažu kroz praznine u sloju, upotrijebila sam trajni marker da ih obojim - to se može vidjeti u donjem redu jedne od fotografija.

Dizajnirao sam štampane slojeve u grafičkom programu otvorenog koda GIMP, a zatim ih odštampao na mat papir kvalitetne fotografije. U idealnom slučaju, slojevi će biti što tanji - uspio sam oguliti podlogu s papira marke Epson koji sam vrlo lako koristio, iako to neće biti slučaj sa svim markama. Da bih zaštitio otisak, papir sam prekrio prozirnim ljepljivim vinilom i nalijepio dvostranu traku na stražnju stranu kako bih ga zalijepio za kućište. Prije nego što zalijepimo slojeve, moramo izbušiti rupe. Koristio sam jeftin kožni probijač za kožu od 4 mm i postigao sam najbolje rezultate tako što sam izoštrio udarce i izrezao ih direktno na komad aluminijskog lima od 3 mm. Zatim slojeve samo treba poravnati i zalijepiti.

Korak 9: Zaključak

I gotovi smo! Ovo je bio prilično veliki projekt koji zahtijeva niz vještina, uključujući osnovnu elektroniku, lemljenje, 3D modeliranje, programiranje, pa čak i malo grafičkog izgleda. Na kraju je bilo jako nagrađivano i s gotovim uređajem je zabavno igrati, ali kako stoji prema mojim izvornim kriterijima?

Jeftino: Ukupni troškovi svega, uključujući trenutne maloprodajne cijene artikala koje sam već posjedovao i kancelarijskog materijala poput dvostrane trake koja će trajati i duže od ovog projekta, su oko 80 funti, što ga čini pristupačnim projektom.

Prenosivo: Definitivno je prenosivo. Ovaj uređaj udobno leži u džepu i potpuno je samostalan pa se može koristiti bilo gdje. Ako bih ga ponovo izgradio, napravio bih ravni 4-smjerni kontroler u stilu joypada, umjesto da koristim navigacijski štap jer strši iznad linije uređaja ostavljajući ga osjetljivim na oštećenja. Također bih želio provjeriti je li dostupan ekran bez dodira slične veličine i omjera s maskom otpornijom na ogrebotine jer mi ne treba sučelje zaslona osjetljivog na dodir, a otporna površina posebno je sklona oštećenju.

Tastatura i džojstik: Zaista sam zadovoljan kako su ovo uspjeli. Iako nema originalni osjećaj kao original, korištenje tastature iznenađujuće podsjeća na stari ZX Spectrum - izgled, preklapanje i implementacija ključnih riječi dobro funkcioniraju kako bi se to postiglo. USB tastatura se takođe može koristiti samostalno sa računarom na kojem je pokrenut emulator osigurača kako bi se obezbedilo isto iskustvo.

Trenutno: Korištenje Bluetooth serijskog modula olakšava relativno prijenos arhiva traka na uređaj s drugog računara bez potrebe za napuštanjem sučelja Fuse, a trebalo bi biti moguće dodatno pojednostaviti proces pisanjem skripte na strani klijenta za slanje datoteke do uređaja. Više bih volio da mogu koristiti standardnu Bluetooth funkciju prijenosa datoteka "pošalji na uređaj" ugrađenu u većinu operativnih sistema, ili odgovarajući sistem za razmjenu datoteka poput Sambe. Međutim, oni će biti dostupni samo s Pi Zero W pločom i to nisam koristio za ovu verziju.

Osim gore navedenih stavki, ako bih započeo ovaj projekt ispočetka, odabrao bih tanju bateriju većeg kapaciteta na početku projekta i osmislio je oko nje, umjesto da moram izabrati bateriju odgovarajuće veličine na kraju projekat. Također bih koristio Pi Zero W umjesto Bluetooth serijskog modula za proširenje mogućnosti slanja datoteka na uređaj. Još jedno očito poboljšanje bila bi neka vrsta indikacije stanja hardverske baterije jer trenutno ne postoji način da se vidi koliko je napunjenosti preostalo. Također bih razmislio o korištenju OS -a zasnovanog na Ramdisku, poput Alpine Linuxa, koji bi bio tolerantniji na teška isključivanja i trebao bi omogućiti jedno prekidač za uključivanje/isključivanje bez potrebe za posebnim gumbom za isključivanje - mnogo više poput originalnog ZX Spectruma, samo isključite ga kad završite.

Možda bi bilo zanimljivo dizajnirati prilagođenu PCB za ovaj uređaj koja bi nam potencijalno omogućila da komponente napajanja stavimo na stražnju stranu tipkovnice, a ne da imamo zasebnu ploču. To bi moglo značajno smanjiti dubinu gotovog uređaja. Također bi olakšalo sastavljanje uređaja i ponudilo potencijal neke vrste kompleta za samostalnu montažu. Ako postoji dovoljno interesa za ovaj projekt, mogao bih napraviti verziju 2 koja rješava ove probleme.

Korak 10: Resursi

Za izgradnju ovog projekta potrebni su sljedeći resursi:

Datoteke slučajeva 3D ispisa (Thingiverse):

Kod (Github):

Preporučuje se: