Sisukord:

Pipboy ehitatud jääkidest: 26 sammu (koos piltidega)
Pipboy ehitatud jääkidest: 26 sammu (koos piltidega)

Video: Pipboy ehitatud jääkidest: 26 sammu (koos piltidega)

Video: Pipboy ehitatud jääkidest: 26 sammu (koos piltidega)
Video: Насколько реален Pip-Boy из Fallout 2024, November
Anonim
Image
Image
Pipipoisi südame ehitamine
Pipipoisi südame ehitamine

See on minu töötav Pipboy, mis on ehitatud garaaži juhuslikust rämpsust ja minu elektroonikakomponentide rüüstamisest. Mulle tundus see väljakutse keeruline ja see võttis mul mitu kuud tööd, nii et ma ei liigitaks seda algajate täielikuks projektiks. Vajalikud oskused hõlmavad plasti- ja puidutööd, elektroonikat ja kodeerimist. Kere on valmistatud mitmesugustest plastikjäätmetest, mis on lõigatud ja kokku keevitatud. Kasutasin mikrokontrollerina Raspberry Pi 0, mille GPIO-nööpnõelte külge oli paigaldatud kuvari päis. Ülejäänud kontakte kasutatakse LED -ide juhtimiseks ja nuppude/juhtnuppude ühendamiseks. Kirjutasin projekti lõpetamiseks "Pipboy" stiilis kasutajaliidese koos mõne demoekraaniga Pythonis.

Minu eesmärgid projekti jaoks olid:

  • Pidi töötama - s.t. tegelikult oli vaja kuvarit, mis tegeles asjadega
  • Tahtsin, et sellel oleks "ekraan" erinevate ekraanide valimiseks, kuna see paistis mulle alati silma kui Fallouti kasutajaliidese ikooniline osa
  • Kogu ehitamine tuli lõpetada, kasutades asju, mis mul juba garaažis või kontoris olemas olid (seda ei saavutatud täielikult, kuid jõudsin lähedale - 90% sellest leiti esemeid või asju, mis mul juba olid)
  • Oli vaja kanda

Üks eesmärk, mida mul polnud, oli teha sellest ühe mängusisese mudeli täpne koopia - ma eelistan ehitada asju "asja stiilis", kuna see annab mulle ruumi juhusliku rämpsu kohandamiseks, mida ma leian, ja lubage mul olla natuke loovam. Lõpuks jah, ma tean, et saate neid osta, kuid see polnud ka mõte;)

Tarvikud

Tarvikud

  • Lai avaga toru (näiteks tükk äravoolutoru)
  • Plastpuru (nii keha loomiseks kui ka dekoratiivseks otstarbeks)
  • Väike konteiner
  • Vahtpõrandamatt
  • Vaarika Pi
  • 3,5 "ekraan
  • Pöörlev kodeerija KY040
  • 3x LEDid
  • 2x nupud
  • Akupank
  • Juhtmestik
  • Kruvid, liimid, värvid, täiteaine jne

Tööriistad

  • Dremmel
  • Multifunktsionaalne tööriist koos lõikuri ja lihvimisseadmetega
  • Puurida
  • Failid
  • Jootekolb
  • Kuum liimipüstol
  • Kruvikeeraja (d)
  • Terav nuga
  • Saag

Samm 1: Pipboy südame ehitamine

Pipipoisi südame ehitamine
Pipipoisi südame ehitamine

Esimese asjana pidin tagama, et saaksin kuvari ja mikrokontrolleri sellises vormis, millega saaksin töötada. Mul juhtus olema 3,5 -tolline ekraan, mis vaarika PI GPIO -tihvtide peal mütsina istub, nii et otsustasin seda kasutada. Ma sidusin selle Raspberry Pi 0 -ga ja veendusin, et see töötab hästi. paar sammu, et Linux tunneks ära kuvari, mille peate läbima.

Nagu näete teisel pildil, lisasin ekraani toetamiseks väikese papist/vahtplatvormi, mille liimisin korpuse külge. Ma tegin seda, kuna teadsin, et hakkan selle osaga palju tegelema ega tahtnud tugi või ekraani katkestada toe puudumise tõttu. Lõpuks asendati see, kuid see oli ehitusprotsessi ajal hea kaitse.

Siinkohal väärib märkimist ka see, et hiljem ehitamisel tekkisid selle seadistusega jõudlusprobleemid - peamiselt värskenduskiirus Pi ja ekraani vahelise liidese kaudu, uurin seda hiljem koostamisel, kuid kui teeksin seda uuesti, võiksin kaaluda siin erinevat riistvara.

Siin on mõned kasulikud lingid selle jaoks:

www.raspberrypi.org/forums/viewtopic.php?t…

www.raspberrypi.org/forums/viewtopic.php?t…

www.raspberrypi.org/forums/viewtopic.php?f…

learn.sparkfun.com/tutorials/serial-periph…

Lisan sellega seotud githubisse ka mõned märkused selle kohta, mida ma tegelikult selle töö tegemiseks tegin (kuigi minu teema lugemisest on palju erinevusi, kuidas see teatud juhtumite/draiverite puhul töötab, nii et teie aeg võib erineda).

2. samm: papist prototüüp

Papist prototüüp
Papist prototüüp
Papist prototüüp
Papist prototüüp
Papist prototüüp
Papist prototüüp

Leidsin mõne vana vihmaveetorustiku/toru, mida saaksin kere jaoks kasutada, kuid mul oli vaja välja mõelda tegeliku ekraani ala ja juhtpaneeli kujundus. Selleks tegin lihtsalt papist maketid ja kasutasin toru külge kinnitamiseks maalriteipi. Esimene oli lihtne "kast", kuid see tundus liiga lihtne, nii et ma muutsin seda, et muuta ekraani ala huvitavamaks, ja lisasin eraldi juhtpaneeli ala. See sai enam -vähem lõplikuks kujunduseks (nagu näete, oli paar muudatust, kuid see oli lähedal).

Samm: prototüübist mallini

Prototüübist mallini
Prototüübist mallini
Prototüübist mallini
Prototüübist mallini
Prototüübist mallini
Prototüübist mallini

Nüüd oli mul prototüüp, millega olin rahul, suutsin papi lamestada ja muuta selle malliks, mille seejärel üle kandsin ühele vanale arvutiümbrisele. Iga sarnane sitke plastik töötaks, ma kasutasin lihtsalt rämpsu, mis mul käepärast oli. Pärast märgistamist suutsin siis tükid välja lõigata, et saaksin põhikorpust kokku panna. Siinkohal kasulik näpunäide, et hõlbustada nii plasti märgistamist kui ka lõikamist, katsin need alad, mida oleks vaja lõigata, kõigepealt maskeerimislindiga, nii et mul oli lihtsam malli mallile joonistada, ja midagi, mis aitaks peatada lõikeketta libisemise, kui tegin esimesi lõikeid.

Samm: lisage ekraani ja pi jaoks ümbris

Lisa ümbris Screen & Pi jaoks
Lisa ümbris Screen & Pi jaoks
Lisa ümbris Screen & Pi jaoks
Lisa ümbris Screen & Pi jaoks

Ma tahtsin, et ekraani ala nurgad oleksid kõverad ja mul oli vaja midagi, mis Pi ja ekraani tegelikult kinni hoiaks - minu lahendus oli kasutada väikest plastmahutit, mis mul oli. Lõikasin kere ülaosast välja augu ja liimisin anuma sellest läbi. Seejärel liimisin kõik küljed kokku. Keevisõmbluste tugevdamiseks kasutasin siin superliimi rohke söögisoodaga. Hiljem täitsin ja viilisin/lihvisin kõik, et see kõik korda teha ja anda sellele rohkem "vormitud" tunnet.

Samm: korrake juhtpaneeli jaoks

Korrake juhtpaneeli jaoks
Korrake juhtpaneeli jaoks
Korrake juhtpaneeli jaoks
Korrake juhtpaneeli jaoks
Korrake juhtpaneeli jaoks
Korrake juhtpaneeli jaoks

Järgmisena tegin juhtpaneeli korpuse ehitamiseks täpselt sama malli, ülekandmist, lõikamist ja liimimist.

Samm: lõigake toru välja

Lõika toru välja
Lõika toru välja

Nagu näete konteinerit, mida kavatsen kasutada peamiste elektroonikakomponentide paigutamiseks, asub nüüd uhkelt musta plastist ümbrise sees, see tähendab, et mul on vaja torusse ava teha, et see sinna asetada. Joondasin uuesti maalriteibiga sinna, kuhu lõigata tahtsin, ja lõikasin välja toru ruudu, et osad sobiksid.

Samm: raam

Raam
Raam
Raam
Raam

Üks väljakutse, mille ma endale kogemata peale surusin, oli üritada välja mõelda raam, mis täidaks ekraani ümbruse kuni anuma servadeni. Kahjuks pole ekraani valmistamisviisil ka midagi kasulikku (nagu augud või midagi), mis aitaks seda paigaldada, nii et ka raam pidi ekraani paigal hoidma. Minu esimene katse (siin näha) oli plasti ja vahu segu. Lõpuks kordasin seda mitu korda ja see oli lõpuks üks keerulisemaid ehituse osi. Halvendavad nii raami enda kui ka ekraani väikesed tolerantsid ja õrn olemus.

8. samm: aku test

Aku test
Aku test
Aku test
Aku test
Aku test
Aku test

Siinkohal pöörasin oma mõtteid sellele, kuidas seda teha sõltumatult USB -võrgust. Katsetasin erinevaid akusid ja leidsin, et Raspberry Pi + ekraan ei tarbinud tegelikult nii palju energiat ja see oli täiesti õnnelik isegi ühe minu väiksema akuga (messilt saadud tasuta kingitus). See oli tõesti õnnelik, kuna pakk sobis ideaalselt ehitise sees olevasse pilusse (fotod hiljem). Nüüd saame korpuse põhikomponendid ajutiselt kokku kleepida ja selle esimene proovisõit minu käele sisse lülitada!

9. samm: sobivuse testimine

Sobivuse testimine
Sobivuse testimine
Sobivuse testimine
Sobivuse testimine
Sobivuse testimine
Sobivuse testimine

Siin näete, kus olen südamikutoru veelgi muutnud, et võimaldada juurdepääsu komponentide alumisele küljele. Näete ka seda, kuidas mul vedas, kui aku mahub ilusti Pi konteineri ühele küljele õõnsusse. Lõpuks alustasin sidemete puhastamise, täitmise, lihvimise protsessi ja tegin kattekihi kruntvärviga, et saada viimistletud välimus (ma teadsin, et lihvin seda veel mitu korda ja peaaegu kogu see krunt läheb, aga ma tahtsin saada aimu, kuidas see välja näeb).

Samm: lisage juhtelemendid ja üksikasjad

Lisage juhtelemendid ja üksikasjad
Lisage juhtelemendid ja üksikasjad
Lisage juhtelemendid ja üksikasjad
Lisage juhtelemendid ja üksikasjad
Lisage juhtelemendid ja üksikasjad
Lisage juhtelemendid ja üksikasjad

Tahtsin mõõteriista moodustamiseks seeria punaseid/kollaseid/rohelisi LED -e, samuti pöördnuppu ja vähemalt kahte vajutusnuppu. Kõik need paigaldati juhtpaneeli sektsiooni - lihtsalt kõigi õigete aukude puurimine. Hakkasin lisama ka väikeseid killukesi plastkomponente (põhimõtteliselt komplektide peksmist), et lisada kerele ja juhtpaneelile detaile ja rohkem huvi.

11. samm: raami taastamine nr 3

Raami ümberehitus nr 3
Raami ümberehitus nr 3
Raami ümberehitus nr 3
Raami ümberehitus nr 3
Raami ümberehitus nr 3
Raami ümberehitus nr 3

Nagu ma varem mainisin, võitlesin selle ehituse jaoks raamiga ja ehitasin selle mitu korda ümber. See on kolmas kordus, millega ma jään. Minu lähenemisviis siin on kasutada puitkiudplaati ja lõigata 2 erinevat kuju, üks mõtleja kui teine ja seejärel liimida (ja klammerdada) need kokku, et saada keskmine pilt. Need kujundid võimaldasid ruudukujulisel ekraanil selle sees istuda ja seejärel hoidis see ekraani paagi sees (nagu pildil 3). See andis mulle piisavalt materjali, et kasutada kinnitusdetailidena 4 väga väikest kruvi - millega ma selle korpuse sees kindlalt paika kinnitasin ja see omakorda hoiaks ekraani stabiilsena ja turvalisena. Tagantjärele leian ekraani, millel olid korralikud kinnitusvõimalused (või kasutan 3D -printerit - mida mul tol ajal polnud).

12. samm: elektroonika prototüüpimine

Elektroonika prototüüpimine
Elektroonika prototüüpimine
Elektroonika prototüüpimine
Elektroonika prototüüpimine

Ma kasutan oma lihtsate vooluahelate selliseks paigutamiseks leivaplaati ja kuna ma teen seda osa projektist sageli põhiruumi konstruktsioonist erinevas ruumis, sidusin selle ka erineva Raspberry PI -ga. Siin kasutasin mudelit 3, mis andis mulle natuke rohkem jõudu sellega tegelikult otse ühenduse loomiseks ja IDE pardal käitamiseks. See muutis minu jaoks kiire koodi prototüüpimise natuke lihtsamaks. Kaugühenduse/koodi/silumise jaoks on palju muid viise, see on lihtsalt soov, mida ma eelistasin siin teha.

Siin on disain üsna sirgjooneline;

  1. Pöörlev kodeerija - see kasutab maandust ja hunnikut GPIO tihvte, et tulla toime klõpsamise suuna ja nupuga.
  2. Paar surunuppu kasutavad need lihtsalt ühte GPIO -tihvti ja ühist alust
  3. 3 LED -i, millel kõigil on sisseehitatud takistus, mis takistab nende hüppamist, kõik ühisele alusele, kuid igaühel on eraldi GPIO -tihvt, nii et igaüks saab eraldi käsitleda.

See andis mulle mõõturi jaoks 3 LED -i, pöörleva kodeerija, mis pöörleb läbi torujuhtme ekraanide, ja 3 nupule, et juhtida toiminguid (üks pöördkodeerijal ja 2 eraldi juhtmega). See oli peaaegu kõik, mida ma mahutasin, ja kuna ekraan võtab hulga nööpnõelu, kulutab see peaaegu kõik, mis teil on Pi PiPIO standardse paigutuse korral. Minu eesmärkidel oli see siiski hea.

Teine pilt näitab üsna palju lõplikku sisemist paigutust, millega ma läksin. Veetsin siin mõnda aega komponentide juhtimise viiside katsetamist ja selle kõikide toimimise kontrollimist, enne kui selle konstruktsiooni põhiosasse üle võtsin. Kogu kood on githubis.

Märkus pöörlevate kodeerijate kohta. Kulutasin hunniku aega oma Rotary Encoderi olekumasina kirjutamisele, et jälgida GPIO kõrgeid/madalaid muutusi ja kaardistada need pöörlevatesse asenditesse. Mul oli siin ebaõnnestunud edu, sain hakkama enamiku juhtumitega, kuid alati on juhtumeid ja (de) põrgatamist jne. Valmis raamatukogu kasutamine on palju lihtsam ja nende jaoks on Pythoni jaoks installimiseks suurepärane raamatukogu. Ma kasutasin seda lõpuks, kuna see võimaldas mul keskenduda ehitamise lõbusale osale, mitte veeta aegade silumist. Kõik selle üksikasjad sisalduvad lähtekoodis.

Kui olete Raspberry Pi, GPIO ja elektroonika uus kasutaja, soovitan soojalt järgmisi õpetusi, mis juhendavad teid kõike, mida vajate ülaltoodud paigutuse tegemiseks;

projects.raspberrypi.org/en/projects/physi…

thepihut.com/blogs/raspberry-pi-tutorials/…

13. samm: elektroonika ülekandmine kehasse

Elektroonika ülekandmine kehasse
Elektroonika ülekandmine kehasse
Elektroonika ülekandmine kehasse
Elektroonika ülekandmine kehasse
Elektroonika ülekandmine kehasse
Elektroonika ülekandmine kehasse

Pärast seda, kui olin leivalaua abil paigutuse lõpule viinud, oli aeg hakata mõtlema, kuidas neid torupoisi kere külge kinnitada. Otsustasin, et tahan seda teha nii, et saaksin kõik elektroonikakomponendid lahti võtta ja eemaldada, kui peaksin tulevikus midagi parandama või muutma. Selle saavutamiseks otsustasin kõik alamosad ühendada dupontühenduste abil.

Nuppude puhul, mida ma jootsin mõne pikendusjuhtme külge ja kasutasin otste isoleerimiseks traatmähist, võimaldas see neid kehast kokku panna ja lahti võtta (nt katsetamiseks, seejärel värvimiseks jne). Pöörleval kodeerijal olid juba tihvtid, mis võisid vastu võtta dupontühendusi, nii et mul oli vaja lihtsalt teha mõned juhtmed õige pikkusega.

Valgusdioodidel kulus veidi rohkem tööd - selleks otsustasin kasutada pisut plastikust vanarauda (lõigatud sobivaks), et teha eemaldatav paneel, kuhu LED -id paigaldada. Seejärel liimisin need kuumalt oma kohale ja jootsin takistid ja juhtmed. See muutis eemaldamisseadme, mille sain paigaldada ja eemaldada, ning lihtsustas värvimist ja viimistlemist.

Pange tähele, et minu jootmine on kohutav, nii et ma hoidsin seda lihtsana ja vältisin kõike liiga üksikasjalikku/peent. Lõplikul pildil näete, et mul olid ka mõned väga pisikesed lairibad (5x5), kasutasin ühte neist, mis olid paigaldatud, et pakkuda paneeli, mis ühendaks kõik GPIO -ga/sealt. Eriti oli see kasulik ühise maandusliini loomiseks, mida saaksin kasutada, ja vältida seda, et palju maandusjuhtmeid ei satuks tagasi Pi -le.

Seejärel lõikasin konteinerisse erinevad augud, et juhtmed Pi -ni juhtida ja GPIO -ga ühendada. See disain võimaldas mul vajadusel kõik lõpuni riisuda (midagi, mida tegin ehituse lõpetamise ajal mitu korda).

14. samm: sobivuse peenhäälestamine

Sobivuse peenhäälestus
Sobivuse peenhäälestus
Sobivuse peenhäälestus
Sobivuse peenhäälestus

Siinkohal puutusin kokku mõne sobiva probleemiga. Esiteks tähendas kahekordsete pistikute kasutamine juhtmestiku jaoks seda, et neid oli raske panna tihvtidele, kui ekraanimüts oli paigas, kuna puudus piisavalt kõrgust. Lahendasin selle, ostes (see on üks väheseid asju, mille ma selle projekti jaoks tegelikult ostsin) väikese GPIO -nööpnõela pikendaja, et saaksin kuvari mütsi kõrgemal istuda ja jätta ruumi ülejäänud GPIO -tihvtidele juurdepääsu saamiseks, kasutades duponti pistikuid.

Lõikasin ka mõned väikesed poroloonist põrandamatti tükid, et teha anuma sisse külgpolster, see aitas Pi + ekraani õigesse kohta paigutada ja selle liikumise peatada.

Samm: pöörake pöördkodeerija uuesti üles

Tõmmake pöörlev kodeerija uuesti üles
Tõmmake pöörlev kodeerija uuesti üles

Pöördkodeerijatel on sageli (nagu minulgi) kena läikiva moodsa "hi fi" stiilis nupuga. See oli ehituse jaoks täiesti olematu, nii et pidin välja mõtlema midagi muud. Oma juhuslikus osade kastis sattusin vana hammasratta külge puurist, mille ma juba ammu katki tegin. See tundus hea, kuid ei sobinud pöörleva kodeerijaga. Minu lahendus oli siin proovida erinevaid seinakorke, kuni leidsin ühe, mis sobib pöörlevale kettale, ja seejärel lõigata see kuju, et saaksin seda kasutada sisemise kraena, et puurhammas pöörlevale kodeerijale sobitada. kontroll.

16. samm: sisemine vooder

Sisemine vooder
Sisemine vooder
Sisemine vooder
Sisemine vooder

Veel vahtpõrandaplaate! Seekord kasutasin neid pehme voodri ehitamiseks, et see oleks mugavam (ilma liiga lahtise). Vahust augu välja lõigates suutsin ka endasse imeda osa "punnist", mille Pi konteiner teeb. Üldiselt muutis see selle palju kantavamaks. Nendel fotodel pole seda näidatud, kuid tegin selle põhiosast veidi suuremaks, nii et see on otstes nähtav, mille ma hiljem värvisin ja see kõik aitas valmis esemele veidi kontrasti ja huvi lisada.

17. samm: üksikasjade lisamine

Üksikasja lisamine
Üksikasja lisamine
Üksikasja lisamine
Üksikasja lisamine

On aeg hakata lisama kaunistusi ja muuta see huvitavamaks. Kõigepealt lisasin ühele näole mõned plastikribad, et anda sellele visuaalne huvi. Seejärel lisasin mõnele klemmile mõned võltsjuhtmed ja lükkasin need lihtsalt auku, mille puurisin kere sisse. See kõik värviti hiljem erinevat värvi.

18. samm: keha ehitamine ja värvimine

Maalimine ja keha viimistlemine
Maalimine ja keha viimistlemine
Maalimine ja keha viimistlemine
Maalimine ja keha viimistlemine
Maalimine ja keha viimistlemine
Maalimine ja keha viimistlemine

Ma ei olnud väga mures põlise viimistluse pärast - nagu see peaks olema vana ja hästi kasutatav (tegelikult võin ma kunagi tagasi tulla ja teha sellel veel rohkem ilmastikutingimusi). Kuid ma tahtsin, et see näeks välja nagu järjepidev ja terviklik objekt, mis ei olnud juhuslikust rämpsust kokku pandud (kuigi see oli täpselt see). Käisin läbi mitmeid kordi lihvimist, täitmist (milliput on minu valitud plastmaterjalide täiteaine) ja kordasin. Seejärel mitu kihti kruntvärvi ja värvi, et veelgi paremini siluda kõiki liitekohti. Siis veel lihvimist ja täitmist ning rohkem värvimist.

Kui ma olin oma kehaga rahul ja nägin, hakkasin lisama mõningaid üksikasju. Kasutasin juhtnuppude restidel hõõrumist ja hõõrumist, et anda neile rohkem traatvõrgu tunnet. Lisasin siia ja sinna ka väikseid värvi detaile, kasutades akrüüle.

Uurisin oma juhuslike kleebiste kogumit ja lisasin mõned, et efekt lõpuni viia. Seejärel pesin ilmastikukindlalt mõne segatud värviga, et lisada raskesti ligipääsetavatesse kohtadesse mustust ja mustust. See on praegu võib -olla natuke liiga peen ja ma võin hiljem tagasi tulla ja lisada veel mõned.

19. samm: kodeerimine

Kodeerimine
Kodeerimine

Osa selle projekti ambitsioonidest oli panna see reageerima nagu tegelik poissmees - ja minu jaoks on selle mängu kõige ikoonilisem osa valiku keeramine erinevate ekraanide vahel liikumiseks. Selle saavutamiseks otsustasin kirjutada pipboy kasutajaliidese, mis võimaldaks kuvada rea ekraane ja võimaldada teil nende vahel kerida. Tahtsin muuta ekraanide sisu millekski, mida saaksin hõlpsasti muuta, ja tõepoolest oleks võimalik ekraane lisada/eemaldada.

Ma valisin selle kirjutamise Pythonis tänu suurepärasele toele Raspberry Pi, GPIO jne jaoks. Python on minu tuttavate keelte loendis üsna madal, seega oli see minu jaoks suur õppimiskõver ja suur osa koodist on selle tagajärjel segane. Ma ajakohastan seda aja jooksul, kuna ma pole siin kõike valmis tahtnud täielikult lõpetada - kuid see on piisavalt lähedal, et seda nüüd jagada, kuna kõik peamised kontseptsioonid on olemas.

Minu kasutajaliidese koodi kujundus on mõistlikult otsekohene, seal on peamine Pythoni skript, mis seadistab ekraani, konfigureerib GPIO -d, laadib ekraanid ja siseneb lõpmatusse värskendusringi, oodates kasutaja sündmusi ja värskendades ekraani vastavalt vajadusele. Lisaks on olemas erinevaid tugiskripte, mis aitavad kasutajaliidese ekraane enne tähtaega luua.

Peamised kasutatavad raamatukogud:

  • pygame: Ma kasutan seda kasutajaliidese käivitamise mootorina, kuna see võimaldas mul joonistada suvalist graafikat, manipuleerida pilte, fonte, minna täisekraanile jne.
  • pyky040: See tagab pöördketta käsitsemise ja säästis mulle palju aega (suured tänud Raphael Yanceyle selle vabastamise eest.
  • RPi. GPIO: Hea GPIO -sõidu jaoks mängisin siin mõne valikuga, kuid see andis mulle õige paindlikkuse taseme, mida ma tahtsin, eriti selliste asjade puhul nagu varu -GPIO kasutamine teise 3,3 V -na pöörleva kodeerija juhtimiseks jne.
  • müra: Perlini müra tekitamiseks lubage mul luua raadioekraani jaoks juhuslik lainekuju, mis näeb välja loomulikum
  • järjekord: sattusin pettumust valmistavasse veasse, pöörleva kodeerija sündmuste ajastus ja LCD -ekraani (väga) aeglane värskendussagedus. Lõpuks lahendasin selle nii, et panin sissetulevad sündmused roteerimiskoodist järjekorda ja valisin need ekraani värskendamisel ükshaaval välja.
  • os, sys, keermestamine, aeg: kõik kasutatakse standardsete pythoni funktsioonide jaoks

Märkus ekraani käsitsemise disaini kohta. Ekraanid on määratletud koodide nimekirjana. Iga loendi kirjega võib olla seotud kas png- või txt -fail (või mõlemad), kood koostab iga ekraani jaoks vahemälu pärast koodiga seotud Linuxi kataloogistruktuuri failide otsimist.

Nende failide sisu luuakse mujal (käsitsi või muude skriptide abil), mille väljund salvestatakse png- või txt -failidena, mida pipboy kasutajaliides saab seejärel kuvamiseks kuvada. See hoiab peamise "värskendamise" ahela suhteliselt puhtana ja lihtsana, kuid annab mulle ka paindlikkuse värskendada või muuta ekraanide sisu uute andmetega vastavalt vajadusele.

On veidraid erandeid, kus on kodeeritud mõned asjad - näiteks juhusliku raadioekraani lainekuju reaalajas arvutatuna ja animeerituna.

Kui analoogia aitab, siis mõelge kasutajaliidese kujundusele kui äärmiselt toorele ja lihtsale veebibrauserile - iga "ekraan" on nagu tõeliselt lihtne veebileht, mis võib koosneda ainult ühest-p.webp

Siin on lingid peamistele raamatukogudele, mida ma siin kasutasin:

www.pygame.org/news

pypi.org/project/pyky040/

pypi.org/project/noise/

20. samm: statistikaekraan

Statistika ekraan
Statistika ekraan

Ükski pipboy ei oleks täielik ilma klassikalise pipboy siluettistatistika ekraanita. Selle jaoks lõi mu sõber staatilise-p.webp

21. samm: varude ekraan

Varude ekraan
Varude ekraan

Midagi, mis Pi -projektide puhul alati kasulik on, on võimalus kuvada põhiteavet, näiteks selle IP -aadressi ja selle DHCP -d jne. Otsustasin varude ekraani üle koormata Pi "inventuuri" kuvana - milline protsessor, mälu, IP -aadress jne Kirjutasin selle teabe kogumiseks väikese Linuxi skripti ja suunasin selle lihtsalt sobiva nimega teksti (.txt) faili, mille kasutajaliidese süsteem seejärel üles võtab ja kuvab. Sel viisil, kui olen kunagi teises kohas, saan skripti käivitada ja hankida värske.txt -faili koos ajakohase IP -aadressiga jne.

22. samm: kaardiekraan

Kaardiekraan
Kaardiekraan

See ekraan oli üks keerukamaid ekraane, mille kallal töötada. Raspberry Pi 0 -l pole GPS -moodulit, kuid ma tahtsin, et kaardil oleks Pi -le kehtivus. Minu lahendus sellele on eraldi skript, mis tõmbab Pi IP -aadressi, kasutab ligikaudse asukoha otsimiseks https://ipinfo.io. JSON-i vastus jäädvustatakse ja seejärel teisendan koordinaadid, et saaksin ligikaudse asukoha jaoks plaadi openstreetmap.org alla tõmmata.

Plaadid on mitmes värvitoonis, kuid ma tahtsin, et rohelise skaala pilt vastaks Pipboy väljanägemisele ja ma ei suutnud täpselt sellist leida, nii et kirjutasin Pythonis rohelise skaala filtri, et värve ümber kujundada openstreetmap paanilt ja vahemällu uue pildi-p.webp

Ülaltoodud protsessi käigus luuakse tekstifail ligikaudse asukoha ja koordinaatidega ning kaardipaan luuakse png-failina. Pipboy kasutajaliides tõmbab mõlemad failid üles ja katab sisu, et luua toimiv kaardiekraan (IP -aadressi eraldusvõime täpsusega).

Samm 23: Andmete ekraan

Andmete ekraan
Andmete ekraan

See on lihtsalt testkaart (genereeritud teise pythoni skripti abil ja väljastatud-p.webp

24. samm: raadioekraan

Raadio ekraan
Raadio ekraan

Koos kaardiekraaniga on see teine ekraan, mis tõepoolest tekitas mulle palju tööd. See on ainus ekraan, kus ma animatsiooniga ringi mängisin - ja see töötab enamasti ettenähtud viisil, kuid jõudlus on endiselt LCD -ekraani värskendussageduste probleem. Ekraani struktuur on tekstifail, mis sisaldab juhuslikult valitud raadio nimesid (need on lihtsalt suvalised stringid ja ei tee muud, kui esitab ekraanil loendi),-p.webp

See on ainus ekraan, kus pügamängu tsükkel teeb iga tsükli ajal reaalset tööd, see peab arvutama uue lainekuju, kustutama ekraanil oleva osa ja sisse joonistama.

25. samm: lõplikud mõtted

Image
Image
Lõplikud mõtted
Lõplikud mõtted

See on ilmselt kõige keerulisem ehitis, mille ma teinud olen, kasutades paljusid erinevaid kontseptsioone ja oskusi, kuid see on ka üks meeldivamaid reaalseid asju, mis selle tulemusel töötavad. Ma korrastan veel mõnda oma tehnilisemat märkust ja koodi githubi repot. Kõik need teen varsti kättesaadavaks, nii et tulge varsti uuesti, et saada lisateavet ja teavet, kui mul on aega neid kirjapanekusse lisada.

Kui hakkate midagi sellist tegema, tahaksin näha tulemusi ja kui teil on küsimusi, võtke julgelt ühendust ja püüan lisada lisateavet kõikides sammudes, kus soovite aidata.

Samm 26: kood on avatud Githubis

Kood on avatud Githubis
Kood on avatud Githubis

Lõpuks jõudsin Githubis koodi avada. See on saadaval sellel lingil:

Soovitan: