Sisukord:

Tasku ZX (käeshoitav ZX -spekter): 10 sammu
Tasku ZX (käeshoitav ZX -spekter): 10 sammu

Video: Tasku ZX (käeshoitav ZX -spekter): 10 sammu

Video: Tasku ZX (käeshoitav ZX -spekter): 10 sammu
Video: МИ ПРИДБАЛИ ТАЧКУ для ЗСУ?!🇺🇦 ZX Landmark 2024, November
Anonim
Tasku ZX (käeshoitav ZX Spectrum)
Tasku ZX (käeshoitav ZX Spectrum)
Tasku ZX (käeshoitav ZX Spectrum)
Tasku ZX (käeshoitav ZX Spectrum)
Tasku ZX (käeshoitav ZX Spectrum)
Tasku ZX (käeshoitav ZX Spectrum)

Olen 80ndate laps ja mäletan hästi selle ajastu 8-bitiseid arvuteid. Minu esimene arvuti - millel on minu südames eriline koht - oli Sinclair ZX Spectrum 48K. Olles hiljuti avastanud veebist mõned kogukonnad, mis on keskendunud vanematele arvutitele, otsustasin, et tahan selle nostalgia enda jaoks uuesti üle elada ja installisin oma MacBookile Fuse emulaatori. See oli mõnda aega lõbus, kuid ma tõesti tahtsin spetsiaalset seadet - eelistatavalt midagi väikest, kaasaskantavat ja iseseisvat, mis sobiks minu elustiiliga. Selles etapis oli valik kas järgida vinge Ben Hecki teed ja kahandada algne ZX-riistvara millekski kaasaskantavaks või petta ja kasutada emulatsiooni väikesel üheplaadilisel arvutil. Ma hakkan petma:)

Mida ma siis oma kaasaskantavalt ZX Spectrumilt tahan?

  • Odav: mul on liiga palju projekte, et kulutada suuri rahasummasid lõbusa nostalgia jaoks.
  • Kaasaskantav: see peab olema midagi, millega saan diivanil või laisel pärastlõunal aias mängida.
  • Klaviatuur: Ma ei taha ainult mänge mängida, vaid tahan seda ka programmeerida. Täieliku kasutuskogemuse saamiseks peavad sellel olema need imelised märksõnavõtmed.
  • Juhtkang: ma pole kunagi klaviatuuriga platvormimänge mänginud. Kindlasti seiklusmängud, aga ma ei taha lihtsalt seiklusmänge mängida, nii et see vajab juhtkangi.
  • Instant: Ma vihkasin 80ndatel lintide laadimist ja ma ei kujuta ette, et oleksin selle vahepealsete aastate jooksul armastanud.

Seda kõike silmas pidades koostasin plokkskeemi, mis aitas mul mõista erinevaid komponente. Nii et hakkame ehitama.

Samm: USB -klaviatuur ja juhtkang

USB -klaviatuur ja juhtkang
USB -klaviatuur ja juhtkang
USB -klaviatuur ja juhtkang
USB -klaviatuur ja juhtkang
USB -klaviatuur ja juhtkang
USB -klaviatuur ja juhtkang

Klaviatuuri õigeks saamine on võti originaalse ZX Spectrum välimuse jäädvustamiseks. Me võime ehitada käeshoitavat emuleeritud seadet, millel pole midagi ühist Spectrumi algse sisemusega, kuid hoolika disaini korral peaks olema võimalik luua midagi, mis meenutab 80ndate andmetöötluskogemust.

Alustades mõnest protoboolist ja suurest hunnikust kombatavatest lülititest, katsetasin mõne ideega ja otsustasin fotodel näidatud järkjärgulise paigutuse peale. Meie kasutatavad protoplaadid on standardsed 7x9 cm (26x31 auku), mis on saadaval veebis paljudelt jaemüüjatelt. Lülitid on pinnapealsed versioonid, mis on pehmema tundega ja vähem mürarikkad kui nende tavalisemad läbiva avaga kolleegid, kuid kumbki neist peaks töötama, kuna nende kere suurus on peaaegu identne.

Juhtkangi juhtnupud läksid seejärel ülejäänud ruumi vahetult klaviatuuri kohal. Otsustasin kasutada 5-suunalist puutetundlikku navigeerimislülitit vasakul ja suurt tulekahju nuppu paremal. Juhtkang kahekordistub emulaatori menüüsüsteemi kontrollerina ja hiirena Linuxi süsteemiga suhtlemiseks, seega lisasin ka väikese sekundaarse nupu.

Klaviatuuri mikrokontroller on Arduino Pro Micro. See on väike plaat, mida saab programmeerida USB -liideseseadmena (HID), näiteks klaviatuuri, hiire või juhtkangi abil.

Kui lülitid on oma kohale joodetud, tuleb ehitada maatriks, mis ühendab lülitite read ja veerud mikrokontrolleriga. See maatriks võimaldab meil ühendada kõik 40 klahvi ja 7 juhtkangi nuppu Pro Micro 18 sisend-/väljundpistikuga. Spectrumi klaviatuuril ei ole vaja kasutada mitut klahvivajutust, välja arvatud Caps Shift ja Symbol Shift klahvid, nii et me paneme need spetsiaalsetele tihvtidele, siis ei pea me muretsema selle pärast, et fantoomklahvi vältimiseks dioode kasutada. pressid. Lisasin skeemi, mis näitab, kuidas klaviatuur, sealhulgas maatriks, on ühendatud. Esiteks on iga veerg ühendatud ühetuumalise traadi pikkusega ja seejärel ühendatakse read ühetuumalise traadi abil, mis on hoolikalt kujundatud, et ületada veerud ilma lühiseta. See võib olla natuke keeruline, kuna peate juhtmed saama piisavalt kõrgeks, et vältida veergudega kokkupuudet, kuid piisavalt madalad, et jätta ruumi kõikidele juhtmetele, mida peame lõpliku kokkupaneku ajal toppima. Lõpuks on read ja veerud ühendatud Arduino tihvtidega vanade IDE -kaablite juhtmetega.

Nagu eespool mainitud, hakkab juhtkangi kontroller toimima ka kursorikontrollerina ja hiirena, seega peame suutma režiimide vahel vahetada. Vaikerežiim on kursorirežiim, kombinatsioon Caps Shift + nupp Fire lülitub juhtkangi režiimi ja sümbol Shift + Fire nuppude kombinatsioon hiirerežiimi. Selle režiimi näitamiseks on juhtkangi paneeli keskel paar 3 mm LED -i. Toite LED on samuti kasulik ja hea viis selle pakkumiseks Pi -ga on ühendada valgusdiood Pi UART TX -poldiga, kuna see saadab pidevalt andmeid, kui seade on sisse lülitatud.

Selleks, et lahtised juhtmed ei hakkaks kasutamisel purunema ega maatriksjuhtmed lühisema, on kõik kuumalt liimiga kaetud - kole, kuid tõhus!

Viimane samm klaviatuuri tööle saamiseks on programmeerida Arduino minu hoidlast ZX_Spectrum_Keyboard koodiga. Kui see on tehtud, saate jootekolvi tegelikult alla panna, klaviatuuri tavalisse arvutisse ühendada ja kasutada seda koos Spectrum -emulaatoriga, nagu Fuse või Spectaculator. Kuid me ei peatu siin, nii et liigume edasi …

Samm: LCD -ekraan

LCD ekraan
LCD ekraan

Algne Spectrum on ekraani eraldusvõimega 256x192 pikslit. Selle suhte säilitamiseks (ligikaudu) ja mustade ribade vältimiseks mõlemal küljel valisin Waveshare 3,2 320x240 TFT LCD puutetundliku ekraani, mis on mõeldud Raspberry Pi jaoks. Seda ei ühendata otse Pi GPIO päisega, et saaksime eemaldada pistiku plastikust ümbris ja käepidemed. Ma kärpisin 7x9 cm protobooki mõõtmetega 2,1x9 cm (täpne suurus pole oluline, kui kaks ülejäänud nurgaava on joondatud ülemiste klaviatuuriavadega ja GPIO päise tihvtide jootmiseks on piisavalt ruumi) ja jootnud tihvtid oma kohale, mis annab meile lihtsa võimaluse ekraani klaviatuuri kohale paigaldamiseks.

Peame Pi -ga ühendama ainult SPI, toite- ja puutetundliku ekraaniga I/O -tihvtid - võib olla üsna keeruline välja selgitada, milliseid kontakte tegelikult vaja on, kuid kui te vaatate piisavalt, on teave olemas. Waveshare'i ekraanil on kümme tihvti: 4, 6, 9, 13, 15, 19, 21, 23, 24 ja 26. Ilmselgelt, kui teete seda teise ekraaniga, peate enne kontrollima õigeid tihvte. haarates oma jootekolvi.

Spetsiaalset tarkvara konfiguratsiooni pole vaja - lihtsalt installige tootja draiveritarkvara ja see on kasutamiseks valmis.

3. toiming: traadita (Bluetooth)

Raspberry Pi Zero plaadil pole traadita ühenduse võimalust, ainult üks kasulik USB -port ja USB -jaoturi jaoks ei jätku korpuses piisavalt ruumi, nii et pidin olema natuke leidlik, et lisada oma ehitusele mingisugune traadita ühendus. Kui ehitate seda Zero W -ga, võite selle sammu vahele jätta.

Raspberry Pi -l on kena funktsioon, mis võimaldab meil lisada kasuliku traadita ühenduse. Kinnitades odava HC-05 Bluetooth-jadamooduli Pi UART-tihvtidele ja muutes süsteemi konfiguratsiooni, on võimalik saada juhtmevaba juurdepääs käsurea terminalile, kasutades jada-üle-Bluetoothi. Seejärel saame kasutada tavalisi tööriistu failide seadmesse saatmiseks ja failisüsteemi haldamiseks.

4. samm: toide

Võimsus
Võimsus
Võimsus
Võimsus

Aku valisin arenduse lõpus, nii et oli vaja valida kärg, mis sobiks olemasolevasse ruumi. Valisin ühe 2000mAH 25C 1S Lipo (mõõtmed: 81x34x9mm), mida müüdi Walkera Syma X5 drooni asendajana. Oleks hea, kui saaksite akut kohapeal tavalise USB-ühendusega laadida ja saaksite seadet kasutada ka laadimise ajal. Me ei taha tegelikult keerukate toitejuhtimisskeemidega askeldada, seega kasutame Pi otse toiteks valmismoodulit, mis pakub USB-laadimist ja ka võimendatud 5 V väljundit. Seadme täieliku väljalülitamise tagamiseks on selle mooduli väljundi ja Pi vahel lükandlüliti, mis tagab aku laadimise isegi siis, kui seade on välja lülitatud. Pii tuleb andmete korruptsiooniprobleemide vältimiseks korralikult välja lülitada. Selle asemel, et oleks vaja sisse logida Bluetoothi jadaühenduse kaudu, saame ühendada kombatava lüliti Pi pistikuga 5 (GPIO3) ja kirjutada väikese skripti, mis jälgib seda ja käivitab selle vajutamisel väljalülitamise. Toite- ja juhtmevabad komponendid joodeti teise 7x9 cm protoplaadile, mis asub otse klaviatuuri all.

Samm: ühendage see kõik kokku

Selle kõik ühendamine
Selle kõik ühendamine
Selle kõik ühendamine
Selle kõik ühendamine
Selle kõik ühendamine
Selle kõik ühendamine

Kui kõik osad on ehitatud, saame sisemused kokku panna. Suurim probleem, millega kokkupanekul kokku puutusin, oli see, et USB -port katkestas mu Arduino Pro Micro, nõudes, et ma jootaks juhtmed otse jootepatjadele, mitte USB -kaablit. See on Pro Micro tahvlite kurikuulus nõrk koht, nii et selle vältimiseks tasub enne kokkupanekut kanda sellele ilmselt kuum kuuma liimi. Eeldades, et see ebaõnn teid ei taba, on teil valik: võite klaviatuuri ühendamiseks Pi-ga teha kas üliõhukese mikro-USB-mikro-USB-kaabli või joota ühe või mõlemad otsad otse plaatide külge. Kuna mul oli vaja Arduino külge jootma hakata, siis jootsin ka Pi poole otse tahvli tagaküljel asuvate testpunktide juurde. Igal variandil on oma plussid ja miinused, nii et see on teie enda otsustada.

Hoiame plaate koos M3 nailonist eraldusjoontega. Klaviatuuri ja toiteplaadi vaheliste alumiste aukude ühendamiseks vajame 2x 9 mm vaheseina. Ülemised augud hoiavad ka ekraani kinni, nii et tahame klaviatuuri ja ekraani vahele 2,5 mm ja ekraani ja toiteplaadi vahele 4,5 mm eraldusi. Külgfoto näitab, kuidas see välja näeb. Eraldised vajavad pisut hoolikat kärpimist, et kõik paralleelselt kätte saada - see võib mõne klaviatuurijuhtmega veidi tihedalt sobida, kuid see peaks kokku minema. Nagu fotodelt näha, saab seadme sisse lülitada ja pärast kokkupanekut kasutada, ilma et oleks vaja tegelikku korpust. Prindime varsti korpuse, kuid enne selleni jõudmist peame installima operatsioonisüsteemi ja seadistama selle.

6. samm: tarkvara

Kui sisemised osad on kokku pandud, saame tarkvara installimise ja konfigureerimisega edasi minna. Raspberry Pi töötab tavalisel Raspbiani installil. Ainus lisatarkvara, mis tuleb peale TFT -ekraanidraiverite installida, on rakendus Fuse. Kasutame SDL-i versiooni, et saada korralik täisekraanifunktsioon, mida saab installida koos:

sudo apt-get install fuse-emulator-sdl

Meie väljalülitusnuppude haldamiseks kopeerige "väljalülitamise" skript minu koodivaramust kausta/home/pi/

Bluetoothi kaudu jadakonsooli saamiseks lisage kausta /boot /config järgmine rida:

enable_uart = 1

Soovime, et meie väljalülitamise skript ja Fuse emulaator käivituks käivitamisel, nii et lisage need read kausta/etc/xdg/lxsession/LXDE-pi/autostart:

@fuse-sdl-ei kõla-kempston-ei laadita automaatselt

Pärast nende muudatuste tegemist taaskäivitage Pi ja olete valmis.

7. samm: korpus ja lõplik kokkupanek

Korpus ja lõplik kokkupanek
Korpus ja lõplik kokkupanek
Korpus ja lõplik kokkupanek
Korpus ja lõplik kokkupanek
Korpus ja lõplik kokkupanek
Korpus ja lõplik kokkupanek

Korpus modelleeriti Fusion 360 -s (kuidas seda teha, jääb selle juhendi reguleerimisalast välja). Sellel on 5 osa: korpus taga, ekraan ees, klaviatuur ees, toitenupp ja juhtpaneeli kate. Juhtpaneeli kate tuleks trükkida painduva hõõgniidiga (ma kasutasin painduvat PLA -d, kuid pehmem materjal nagu NinjaFlex võib olla parem); kõik muu tuleks trükkida jäigast plastikust (mina kasutasin Filamentumi musta PLA -d).

Toitenupule teatud takistuse andmiseks ja raputamise vältimiseks kleepige seljale umbes 3 mm liimvahtu ja torgake seejärel välja 4 mm auk, et see saaks tihedalt üle toiteplaadi vertikaalse tac-lüliti. Võimalik, et peate toiteplaadi kinnijäämise vältimiseks ühte serva veidi kärpima, nagu fotodel näha. Samuti leidsin, et on kasulik kasutada väikest liimi, et hoida nuppu toitelüliti küljes.

Peame ekraani esipaneeli ülemistesse kinnitustesse kleepima paar nailonist kaitsekatet, et korpuse ülemised osad saaksid kindlalt kinnitada. Pärast kuivatamist lõigake eraldusjooned loputamiseks.

Laudade paigaldamiseks peame esmalt looma kinnituspostid. Eemaldage pead mõnest M3 nailonkruvist ja liimige keermestatud osad iga esipaneeli alumistesse aukudesse. Kui need on kuivanud, saab 2 esipaneeli kokku liimida ja klaviatuuri 9 mm ja 2,5 mm vahedega kinnitada. Järgmisena, kui see on paigas, saab ekraani asetada ülemistele postidele ja lisada 4,5 mm vaheseinad. Lõpuks saab toiteplaadi paigutada oma kohale ja juhtmed paigutada tagakülje paigaldamiseks.

Aku tuleb mõne kahepoolse teibi või vahtplastist lehega oma kohale kinnitada ja toitepistikusse ühendada. Nüüd saab mõlemad pooled kokku viia ja mõned lühikesed M3 masinakruvid kasutada, et kõik oma kohale kinnitada.

Lõpuks pöörake see ümber ja liimige juhtpaneeli kate klaviatuuripaneeli külge. Tugeva sideme jaoks tegin seda kaheosalise epoksüliimiga.

8. samm. Klaviatuuri ülekate

Klaviatuuri ülekate
Klaviatuuri ülekate
Klaviatuuri ülekate
Klaviatuuri ülekate
Klaviatuuri ülekate
Klaviatuuri ülekate

Oleme peaaegu valmis. Puuduvad vaid mõned märgistused ja ülekate, nii et me teame, kuidas jõuda kõigi nende suurepäraste märksõnadeni.

Peamised tähed ja numbrid on lülitite ülaosas. Leidsin tõeliselt väikesed 2,5 mm täheülekanded, mis sobivad ideaalselt 4 mm läbimõõduga ülaosadele. Nende pealekandmine on natuke keeruline, sest topid liiguvad, kui neid hõõrute, kuid saate pakki päris mitu tähte, nii et on hea teha mõningaid vigu. Lõpuks puudutasin mõnda peene püsimarkeriga, kuigi tagantjärele mõeldes oleksin pidanud proovima neid soojas vees leotada ja paika libistada (kui olete kunagi mudelikomplekti ehitanud, olete selle protsessiga tuttav)). Kasutamise ajal tähtede kaitsmiseks tupsutasin igale klahviplaadile veidi läbipaistvat küünelakki.

Et lülitite hõbedased korpused ülekatte vahedest välja ei paistaks, kasutasin nende värvimiseks püsimarkerit - seda on näha ühe foto alumisel real.

Kujundasin trükitud ülekatted avatud lähtekoodiga GIMP graafikaprogrammis ja printisin need seejärel fotokvaliteediga mattpaberile. Ideaalis on ülekatted võimalikult õhukesed - mul oli väga lihtne koorida kasutatud Epsoni kaubamärgiga paberi taust, kuigi see ei kehti kõigi kaubamärkide kohta. Trükise kaitsmiseks katsin paberi läbipaistva vinüüllehega ja kandsin tagaküljele kahepoolse teibi, et see korpusesse kleepida. Enne ülekatete mahakleepimist peame aga augud välja lööma. Kasutasin odavat 4mm nahast augurauastust ja sain parima tulemuse stantside teritamise ja lõikamise teel otse mõne vanametalli 3mm alumiiniumlehe vastu. Siis tuleb ülekatted lihtsalt üles rivistada ja kinni panna.

9. samm: järeldus

Ja me oleme valmis! See on olnud üsna suur projekt, mis nõuab erinevaid oskusi, sealhulgas elementaarset elektroonikat, jootmist, 3D -modelleerimist, programmeerimist ja isegi väikest graafilist paigutust. Lõppkokkuvõttes on see olnud väga rahuldust pakkuv ja valmis seadmega on väga lõbus mängida, kuid kuidas see minu esialgsete kriteeriumide kohaselt läheb?

Odav: kõige kogumaksumus, sealhulgas juba omanduses olevate kaupade jaemüügi praegused jaemüügihinnad ja kirjatarbed, nagu kahepoolne teip, mis kestab kauem kui see projekt, on umbes 80 naela, mis teeb sellest taskukohase projekti.

Kaasaskantav: see on kindlasti kaasaskantav. See seade mahub mugavalt taskusse ja on täiesti iseseisev, nii et seda saab kasutada kõikjal. Kui ma peaksin seda uuesti ehitama, teeksin ma lame 4-suunalise rõõmupadja stiilis kontrolleri, selle asemel, et kasutada navigeerimispulka, kuna see ulatub seadme joone kohal, jättes selle kahjustuste suhtes haavatavaks. Tahaksin ka näha, kas sarnase suuruse ja suhtega puutetundlik ekraan on saadaval kriimustuskindlama kattega, kuna mul pole puuteekraani liidest vaja ja takistuslik pind on eriti kahjustatav.

Klaviatuur ja juhtnupp: Mul on tõesti hea meel, kuidas need toimisid. Kuigi sellel pole originaali surnult hõngu, meenutab see klaviatuuri kasutamine üllatavalt vana ZX Spectrumit - paigutus, ülekate ja märksõna rakendamine toimivad selle saavutamiseks hästi. USB -klaviatuuri saab sama kogemuse pakkumiseks kasutada ka iseseisvalt arvutiga, kus töötab Fuse -emulaator.

Instant: Bluetooth-jadamooduli kasutamine muudab suhteliselt lihtsaks lindiarhiivide teisaldamise seadmesse teisest arvutist, ilma et oleks vaja Fuse liidesest väljuda, ning peaks olema võimalik protsessi veelgi sujuvamaks muuta, kirjutades faili saatmiseks kliendipoolse skripti. seadmele. Ma eelistaksin, et saaksin kasutada enamikus operatsioonisüsteemides sisseehitatud tavalist Bluetoothi saatmisseadet või seadmele sobivat failijagamissüsteemi, näiteks Samba. Kuid need on saadaval ainult Pi Zero W plaadiga ja ma ei kasutanud seda selle ehituse jaoks.

Lisaks ülalkirjeldatud elementidele valiksin projektiga nullist uuesti alustades suurema mahutavusega õhema aku ja kujundan selle ümber, mitte ei peaks valima sobiva suurusega aku lõpus. projekti. Failide seadmesse saatmise võimaluste laiendamiseks kasutaksin ka Bluetoothi jadamooduli asemel Pi Zero W. Teine ilmne täiustus oleks mingi riistvara aku oleku näit, kuna praegu pole võimalust näha, kui palju laetust on alles. Ma kaaluksin ka Ramdisk -põhise operatsioonisüsteemi kasutamist, nagu Alpine Linux, mis taluks raskemaid väljalülitusi ja võimaldaks ühe sisse- ja väljalülitamise, ilma et oleks vaja eraldi väljalülitusnuppu - palju rohkem nagu originaalsel ZX Spectrumil. eemaldage see vooluvõrgust, kui olete lõpetanud.

Võib olla huvitav kavandada sellele seadmele kohandatud trükkplaat, mis võimalusel võimaldaks meil toite komponendid klaviatuuri tagaküljele paigutada, mitte eraldi plaati. See võib oluliselt vähendada valmis seadme sügavust. See lihtsustaks ka seadme kokkupanekut ja pakuks mingisuguse isekomplekti komplekti potentsiaali. Kui selle projekti vastu on piisavalt huvi, võiksin teha nende probleemidega tegeleva versiooni 2.

10. samm: ressursid

Selle projekti loomiseks on vaja järgmisi ressursse:

3D -prinditavad juhtumifailid (Thingiverse):

Kood (Github):

Soovitan: