Kazalo:

Pipboy, zgrajen iz ostankov: 26 korakov (s slikami)
Pipboy, zgrajen iz ostankov: 26 korakov (s slikami)

Video: Pipboy, zgrajen iz ostankov: 26 korakov (s slikami)

Video: Pipboy, zgrajen iz ostankov: 26 korakov (s slikami)
Video: Как сделать из FALLOUT 4 нормальную игру. Глобальный мод Horizon 2024, November
Anonim
Image
Image
Gradnja srca Pipboya
Gradnja srca Pipboya

To je moj delujoči Pipboy, zgrajen iz naključnih odpadkov iz garaže in napad na zalogo mojih elektronskih komponent. Zdelo se mi je, da je ta gradnja zahtevna in da je trajalo nekaj mesecev dela, zato tega ne bi opredelil kot popoln projekt za začetnike. Potrebne veščine vključujejo delo iz plastike in lesa, elektroniko in kodiranje. Telo je izdelano iz različnih kosov odpadne plastike, narezanih in zvarjenih skupaj. Kot mikrokrmilnik sem uporabil Raspberry Pi 0 z glavo zaslona, nameščeno na del zatičev GPIO. Preostali zatiči se uporabljajo za pogon LED in povezovanje gumbov/krmilnikov. Za dokončanje projekta sem napisal uporabniški vmesnik v slogu "Pipboy" z nekaj predstavitvenimi zasloni v Pythonu.

Moji cilji pri projektu so bili:

  • Moral bi delovati - torej imeti dejansko zaslon, ki je naredil stvari
  • Želel sem, da ima "številčnico" za izbiro različnih zaslonov, saj je to zame vedno izstopalo kot ikonični del uporabniškega vmesnika v Falloutu
  • Celotno gradnjo je bilo treba dokončati z uporabo stvari, ki sem jih že imel v garaži ali v pisarni (to ni bilo v celoti doseženo, vendar sem se približal - več kot 90% tega je bilo najdenih predmetov ali stvari, ki sem jih že imel okoli)
  • Nositi jih je treba

Eden od ciljev, ki ga nisem imel, je bil narediti natančno repliko enega od modelov v igri - raje ustvarjam stvari "v slogu" stvari, saj mi daje prostor za prilagajanje naključnih odpadkov, ki jih najdem, in naj bom malo bolj ustvarjalen. Končno, ja, vem, da jih lahko kupiš, a tudi to ni bilo bistvo;)

Zaloge

Zaloge

  • Široka izvrtina (na primer kos odtočne cevi)
  • Odpadna plastika (za ustvarjanje telesa in za dekorativne namene)
  • Majhna posoda
  • Podloga iz pene
  • Malina Pi
  • 3,5 -palčni zaslon
  • Vrtljivi dajalnik KY040
  • 3x LED
  • 2x gumbi
  • Powerbank
  • Ožičenje
  • Vijaki, lepila, barve, polnila itd

Orodja

  • Dremmel
  • Večnamensko orodje z rezalnimi in brusilnimi nastavki
  • Vrtalnik
  • Datoteke
  • Spajkalnik
  • Pištola za vroče lepilo
  • Izvijači
  • Oster nož
  • Videl

1. korak: Zgradite srce Pipboya

Gradnja srca Pipboya
Gradnja srca Pipboya

Prva stvar, ki sem jo moral narediti, je bil zagotoviti, da bom dobil zaslon in mikro-krmilnik v takšni obliki, s katero bi lahko delal. Imel sem 3,5 -palčni zaslon, ki je kot HAT na GPIO zatičih Raspberry PI, zato sem se odločil, da ga uporabim. Seznanil sem ga z Raspberry Pi 0 in se prepričal, da deluje v redu. nekaj korakov do tega, da Linux prepozna zaslon, ki ga morate prebroditi.

Kot lahko vidite na drugi sliki, sem dodal majhno kartonsko/penasto ploščad, ki sem jo prilepil na ohišje za podporo zaslona. To sem storil, saj sem vedel, da bom s tem delom veliko delal in nisem hotel polomiti zatičev ali zaslona zaradi pomanjkanja podpore. Sčasoma so to zamenjali, vendar je bila med gradnjo dobra zaščita.

Na tem mestu je treba omeniti tudi to, da sem pozneje pri gradnji naletel na težave z zmogljivostjo pri tej nastavitvi - predvsem na hitrost osveževanja preko vmesnika med Pi in zaslonom, se bom o tem pogovarjal kasneje v gradnji, če pa če sem to storil še enkrat, bi morda razmislil o drugačni strojni opremi.

Tu je nekaj uporabnih povezav za to:

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…

V github, povezan s tem, bom vključil tudi nekaj opomb o tem, kaj sem dejansko naredil, da je to delovalo (čeprav je po mojem branju teme veliko variacij v tem, kako to deluje za posebne primere/gonilnike, zato se lahko vaš milja razlikuje).

2. korak: Prototip iz kartona

Kartonski prototip
Kartonski prototip
Kartonski prototip
Kartonski prototip
Kartonski prototip
Kartonski prototip

Našel sem nekaj starih žlebov/cevi, ki bi jih lahko uporabil za telo, vendar sem moral pripraviti zasnovo za dejansko površino zaslona in nadzorno ploščo. Za to sem naredil kartonske makete in jih z lepilnim trakom pritrdil na cev. Prva je bila preprosta "škatla", vendar se mi je zdela preveč preprosta, zato sem jo spremenil, da je bilo območje zaslona bolj zanimivo, in dodal ločeno območje nadzorne plošče. To je bolj ali manj postalo končna zasnova (kot boste videli, je bilo nekaj popravkov, vendar blizu).

Korak: Od prototipa do predloge

Od prototipa do predloge
Od prototipa do predloge
Od prototipa do predloge
Od prototipa do predloge
Od prototipa do predloge
Od prototipa do predloge

Zdaj sem imel prototip, s katerim sem bil zadovoljen, karton sem lahko poravnal in ga spremenil v predlogo, ki sem jo nato prestavil na del starega ohišja za računalnik, ki sem ga imel naokoli. Vsaka podobna trdna plastika bi delovala, uporabljal sem samo smeti, ki sem jih moral dati v roke. Ko sem jih označil, sem lahko izrezal kose, da sem lahko začel sestavljati glavno ohišje. Tukaj je koristen namig, da sem olajšal označevanje in naknadno rezanje plastike, ki sem jih najprej prerezal z lepilnim trakom, kar mi je olajšalo risanje predloge na plastiko, in nekaj, kar bi pomagalo preprečiti zdrs rezalne plošče med prvimi rezi.

4. korak: Dodajte etui za Screen & Pi

Dodaj etui za Screen & Pi
Dodaj etui za Screen & Pi
Dodaj etui za Screen & Pi
Dodaj etui za Screen & Pi

Želel sem, da so vogali območja zaslona ukrivljeni in potreboval sem nekaj, kar je dejansko držalo Pi in prikazovalo - moja rešitev je bila uporaba majhne plastične posode, ki sem jo imel. Z vrha telesa sem izrezal luknjo in skozi to zlepil posodo. Nato sem zlepil vse stranice. Tu sem uporabil superlepilo z obilno sodo bikarbono za krepitev zvarov. Kasneje sem vse napolnil in vložil/pobrusil, da sem vse pospravil in dal bolj "oblikovan" občutek.

5. korak: Ponovite za nadzorno ploščo

Ponovite za nadzorno ploščo
Ponovite za nadzorno ploščo
Ponovite za nadzorno ploščo
Ponovite za nadzorno ploščo
Ponovite za nadzorno ploščo
Ponovite za nadzorno ploščo

Nato sem naredil popolnoma enako predlogo za prenos, rezanje in lepljenje za izdelavo ohišja nadzorne plošče.

Korak 6: Izrežite cev

Izrežite cev
Izrežite cev

Kot vidite, posoda, ki jo nameravam uporabiti za namestitev glavnih elektronskih komponent, zdaj ponosno stoji v črnem plastičnem okvirju, to pomeni, da moram narediti odprtino v cevi, da se vanj namesti. Ponovno sem uporabil maskirni trak, da sem se poravnal tam, kjer sem želel izrezati, in izrezal kvadrat cevi, tako da se deli prilegajo.

7. korak: okvir

Okvir
Okvir
Okvir
Okvir

Eden od izzivov, ki sem si jih po nesreči vsilil, je bil, da sem si prizadeval najti okvir, ki bi zapolnil območje okoli zaslona do robov posode. Na žalost način izdelave zaslona tudi nima nič uporabnega v svoji zasnovi (na primer luknje ali karkoli), kar bi pomagalo pri namestitvi, zato je morala okvir tudi držati zaslon na mestu. Moj prvi poskus (viden tukaj) je bil mešanica plastike in pene. Na koncu sem to večkrat ponovil in na koncu je bil eden izmed zahtevnejših delov gradnje. Še slabše zaradi majhnih toleranc in občutljive narave samega okvirja in zaslona.

8. korak: Preizkus baterije

Test baterije
Test baterije
Test baterije
Test baterije
Test baterije
Test baterije

Na tej točki sem se odločil, kako to narediti neodvisno od omrežnega USB -ja. Preizkusil sem različne baterije in ugotovil, da zaslon Raspberry Pi + dejansko ne porabi toliko energije in da je bil popolnoma zadovoljen, da je deloval celo na enem od mojih manjših baterij (brezplačna ponudba s sejma). To je bila res sreča, saj se je paket popolnoma prilegal v vrzel znotraj zgradbe (fotografije kasneje). Zdaj lahko glavne sestavne dele telesa začasno prilepimo skupaj in si privoščimo prvi testni zagon na roki!

9. korak: Preizkusite primernost

Testiranje primernosti
Testiranje primernosti
Testiranje primernosti
Testiranje primernosti
Testiranje primernosti
Testiranje primernosti

Tukaj lahko vidite, kje sem dodatno spremenil jedrno cev, da omogočim dostop do spodnje strani komponent. Vidite lahko tudi, kako sem imel srečo, da je baterija lepo nameščena v votlini na eni strani posode Pi. Končno se je začel postopek čiščenja vezi, polnjenja, brušenja in opravljen preskusni premaz, da bi dobili občutek končnega videza (na tej stopnji sem vedel, da bom to brušil še večkrat in skoraj ves ta premaz bo šel, vendar sem hotel dobiti občutek, kako bi to izgledalo).

10. korak: Dodajte kontrolnike in podrobnosti

Dodajte kontrolnike in podrobnosti
Dodajte kontrolnike in podrobnosti
Dodajte kontrolnike in podrobnosti
Dodajte kontrolnike in podrobnosti
Dodajte kontrolnike in podrobnosti
Dodajte kontrolnike in podrobnosti

Želel sem, da bi rdeča/rumena/zelena LED dioda oblikovala merilnik, pa tudi vrtljiv gumb in vsaj 2 tipki. Vsi so bili nameščeni na odseku nadzorne plošče - preprosto primer vrtanja vseh pravih lukenj. Prav tako sem začel dodajati majhne koščke odpadnih plastičnih delov (v bistvu zbiranje kompletov), da bi ohišju in nadzorni plošči dodal podrobnosti in več zanimanja.

11. korak: Obnova okvirja št. 3

Obnova okvirja št.3
Obnova okvirja št.3
Obnova okvirja št.3
Obnova okvirja št.3
Obnova okvirja št.3
Obnova okvirja št.3

Kot sem že omenil, sem se za to gradnjo boril z okvirjem in ga večkrat obnovil. To je tretja ponovitev, pri kateri sem ostal. Moj pristop je, da uporabljam lesonit in izrežem 2 različni obliki, eno bolj mislečo od druge, nato pa ju zlepim (in vpenjam) skupaj, da tvorim srednjo sliko. Te oblike so omogočile, da je kvadratni zaslon nameščen v notranjosti, nato pa je prikaz držal na svojem mestu v vsebniku (kot je na sliki 3). To mi je dalo ravno dovolj materiala za uporabo 4 zelo majhnih vijakov kot pritrdilnih elementov - s katerimi sem to trdno pritrdil v ohišju, zaslon pa bi ostal stabilen in varen. Če pogledam nazaj, bi našel zaslon z nekaj spodobnimi možnostmi namestitve (ali pa uporabil 3D tiskalnik - ki ga takrat še nisem imel).

Korak: Prototipiranje elektronike

Prototipiranje elektronike
Prototipiranje elektronike
Prototipiranje elektronike
Prototipiranje elektronike

Za izdelavo svojih preprostih vezij uporabljam ploščico, in ker ta del projekta pogosto izvajam v drugem prostoru od glavne konstrukcije karoserije, sem ga tudi seznanil z drugačnim Raspberry PI. Tukaj sem uporabil model 3, ki mi je dal nekaj več moči, da sem se dejansko neposredno povezal z njim in zagnal IDE na krovu. To mi je samo olajšalo hitro izdelavo prototipov kode. Obstaja še veliko drugih načinov za oddaljeno povezavo/kodo/odpravljanje napak, to želim storiti tukaj.

Oblikovanje tukaj je precej preprosto, imamo;

  1. Rotacijski dajalnik - ta uporablja ozemljitev in kopico zatičev GPIO za obravnavo smeri klika in potisnega gumba.
  2. Par potisnih gumbov uporablja le en pin GPIO in skupne točke
  3. 3 LED diode, vsaka z vgrajenim uporom, ki preprečuje njihovo pojavljanje, vse na skupni podlagi, vendar z vsakim posameznim pin -jem GPIO, tako da jih je mogoče obravnavati posamično.

To mi je dalo 3 LED diode za merilnik, rotacijski dajalnik za vrtenje skozi zaslone na pipboyu in 3 potisne tipke za upravljanje dejanj (eno na vrtljivem dajalniku in 2 ločeno ožičena). To je bilo približno vse, kar sem lahko namestil, in ker zaslon zavzame kup zatičev, precej porabi tisto, kar imate na standardni Pi GPIO postavitvi. Za moje namene pa je bilo vse v redu.

Druga slika precej prikazuje končno notranjo postavitev, s katero sem šel. Tu sem nekaj časa preizkušal načine za vožnjo komponent in preveril, ali je vse uspelo, preden sem to prenesel v telo zgradbe. Vsa koda je v githubu.

Opomba o rotacijskih kodirnikih. Kar nekaj časa sem porabil za pisanje lastnega stroja za rotacijski dajalnik, da bi sledil visokim/nizkim spremembam GPIO in jih preslikal v vrtljive položaje. Tu sem imel mešani uspeh, uspelo mi je pri "večini" primerov, vendar je vedno treba obvladati primere in (de) odbijanje itd. Njegova daleč, veliko lažja uporaba že pripravljene knjižnice in za tiste, ki so na voljo za namestitev za Python, je odlična. To sem na koncu uporabil, ker mi je omogočil, da sem se osredotočil na zabaven del gradnje, namesto da bi starost porabil za odpravljanje napak. Vse podrobnosti o tem so vključene v izvorno kodo.

Če ste novi v Raspberry Pi, GPIO in elektroniki, toplo priporočam naslednje vaje, ki vas vodijo skozi vse, kar potrebujete za zgornjo postavitev;

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

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

Korak: Prenos elektronike v telo

Prenos elektronike v telo
Prenos elektronike v telo
Prenos elektronike v telo
Prenos elektronike v telo
Prenos elektronike v telo
Prenos elektronike v telo

Ko sem postavitev dokončal s ploščico, je bil čas, da začnem razmišljati, kako bi jih montiral v telo pipboya. Odločil sem se, da želim to narediti tako, da bom lahko razstavil in odstranil vse elektronske komponente, če bom v prihodnosti moral kaj popraviti ali spremeniti. Da bi to dosegel, sem se odločil, da bom vse poddelke priključil na priključke dupont.

Za gumbe, ki sem jih spajkal na nekatere podaljške in uporabil žično folijo za izolacijo koncev, sem to lahko sestavil in razstavil s telesa (npr. Za testiranje, nato barvanje itd.). Rotacijski dajalnik je že imel zatiče, ki so lahko sprejemali dupontne konektorje, zato sem moral narediti nekaj žic prave dolžine.

LED -ji so vzeli malo več dela - za to sem se odločil, da bom uporabil nekaj odpadne plastike, ki sem jo imel (razrezano, da se prilega), da naredim odstranljivo ploščo, v katero bodo vgrajene LED -diode. Nato sem jih vroče zlepil in spajkal upore in žice. To je olajšalo odstranitev enote, ki sem jo lahko namestil in odstranil, ter olajšalo barvanje in dodelavo.

Upoštevajte, da je moje spajkanje grozno, zato sem ostal preprost in se izognil vsemu preveč podrobnemu/finemu. Na zadnji sliki lahko vidite, da sem imel tudi zelo majhne široke plošče (5x5), eno od teh sem uporabil v notranjosti, da sem zagotovil ploščo za povezavo vsega z/iz GPIO. Zlasti to je bilo koristno za ustvarjanje skupne talne tirnice, ki bi jo lahko uporabil, in se izognil, da bi se veliko ozemljitvenih žic vrtelo nazaj v Pi.

Nato sem v posodo izrezal različne luknje, da sem žice napeljal do Pi in se povezal z GPIO. Ta zasnova mi je omogočila, da sem dokončal vse, kar sem potreboval (nekaj, kar sem naredil večkrat, ko sem dokončal gradnjo).

14. korak: fino nastavite Fit

Fine Tuning the Fit
Fine Tuning the Fit
Fine Tuning the Fit
Fine Tuning the Fit

Na tej točki sem naletel na nekaj "primernih" težav. Prvič, uporaba dupont priključkov za ožičenje je pomenila, da jih je bilo težko namestiti na zatiče z nameščenim klobukom, saj ni bilo dovolj višinske razdalje. To sem rešil tako, da sem kupil (to je ena redkih stvari, ki sem jih dejansko kupil za ta projekt) majhen podaljšek pin GPIO, tako da sem lahko pokrovček postavil višje in pustil prostor za dostop do preostalih zatičev GPIO z uporabo priključkov dupont.

Odrezala sem tudi nekaj majhnih kosov penaste talne preproge, da bi v posodi naredila nekaj stranskih oblog, kar je pomagalo namestiti zaslon Pi + na pravo mesto in ga ustaviti.

Korak 15: Ponovno dvignite rotacijski dajalnik

Pomaknite vrtljivi dajalnik nazaj
Pomaknite vrtljivi dajalnik nazaj

Rotacijski kodirniki pogosto prihajajo (kot tudi moj) z lepim sijočim ročajem v slogu "hi fi". To za gradnjo ni bilo povsem značilno, zato sem si moral omisliti nekaj drugega. V svoji naključni škatli z deli sem naletel na stari zobnik iz svedra, ki sem ga že zdavnaj zlomil. To je bilo videti dobro, vendar ni ustrezalo rotacijskemu kodirniku. Moja rešitev tukaj je bila preizkusiti različne stenske vtiče, dokler nisem našel takega, ki ustreza vrtljivemu številčnici, in ga nato razrezati v obliko, da bi ga lahko uporabil kot "notranji ovratnik" za namestitev vrtalnika na vrtljivi dajalnik kot bolj primerno temo nadzor.

Korak 16: Notranja podloga

Notranja podloga
Notranja podloga
Notranja podloga
Notranja podloga

Več penastih talnih ploščic! Tokrat sem jih uporabil za izdelavo mehke podloge, da je bila bolj udobna (brez preveč ohlapne). Z izrezom luknje iz pene sem lahko absorbiral tudi nekaj "grudic", ki jih naredi posoda za Pi. Na splošno je bilo zaradi tega veliko bolj nosljivo. Na teh fotografijah ni prikazano, vendar sem ga naredil nekoliko večjega od glavnega dela, tako da je viden na koncih, ki sem ga kasneje pobarval in vse skupaj je pripomoglo k dodajanju malo kontrasta in zanimanja končnemu predmetu.

17. korak: Dodajanje podrobnosti

Dodajanje podrobnosti
Dodajanje podrobnosti
Dodajanje podrobnosti
Dodajanje podrobnosti

Čas je, da začnete dodajati dekoracijo in jo naredite bolj zanimivo. Najprej sem dodal nekaj odpadnih trakov iz plastike vzdolž enega obraza, da bi bil vizualno zanimiv. Nato sem nekaterim priključkom dodal nekaj ponarejenih žic in jih samo potisnil v luknjo, ki sem jo izvrtal v telo. Vse je bilo kasneje pobarvano v različne barve.

18. korak: Slikanje in zaključna izdelava telesa

Slikanje in zaključna izdelava karoserije
Slikanje in zaključna izdelava karoserije
Slikanje in zaključna izdelava karoserije
Slikanje in zaključna izdelava karoserije
Slikanje in zaključna izdelava karoserije
Slikanje in zaključna izdelava karoserije

Nisem se preveč ukvarjal z neokrnjenim zaključkom - saj naj bi bil že tako star in dobro uporabljen (v resnici se lahko kdaj vrnem in na njem še bolj preperem). Toda želel sem, da bi izgledal kot dosleden in popoln predmet, ki se ni naletel skupaj iz naključnih odpadkov (čeprav je bilo točno to). Šel sem skozi številne ponovitve brušenja, polnjenja (milliput je moje izbrano polnilo za plastiko) in ponovil. Nato več slojev temeljnega premaza in barve, ki dodatno pomagajo zgladiti vse spoje. Nato več brušenja in polnjenja ter več barvanja.

Ko sem pogledal in občutil telo, s katerim sem bil zadovoljen, sem začel dodajati nekaj podrobnosti. Uporabil sem drgnjenje in poliranje na rešetkah na kontrolnikih, da sem jim dal bolj občutek žične mreže. Tu in tam sem z akrilom dodal tudi majhne podrobnosti barve.

Kopal sem v svojo zbirko naključnih nalepk in dodal nekaj, da dokončam učinek. Nato sem opral z vremenskimi vplivi z nekaj mešanih barv, da sem dodal nekaj umazanije in umazanije na težko dostopna območja, ki bi jih bilo težko očistiti. To je trenutno morda preveč subtilno in se lahko kasneje vrnem in dodam še nekaj.

19. korak: Kodiranje

Kodiranje
Kodiranje

Del mojih ambicij za ta projekt je bil, da bi se odzval kot pravi pipboy - in zame je najbolj ikoničen del te igre v tem, da obrnem številčnico, da se pomakne med različne zaslone. Da bi to dosegel, sem se odločil napisati pipboyev uporabniški vmesnik, ki bi lahko prikazal vrsto zaslonov in vam omogočal pomikanje med njimi. Želela sem narediti vsebino zaslonov nekaj, kar bi zlahka spremenila, in res lahko dodajam/odstranjujem zaslone.

Za to sem se odločil napisati v Pythonu zaradi odlične podpore za Raspberry Pi, GPIO itd. Python je na mojem seznamu jezikov, ki jih poznam, precej nizek, zato je bila to zame velika krivulja učenja, večina kode pa je posledično grdo. Sčasoma bom to posodobil, saj tukaj še nisem dokončal vsega, kar sem hotel narediti - vendar je dovolj blizu, da si lahko delim, saj so vsi glavni koncepti tam.

Moja zasnova kode uporabniškega vmesnika je razmeroma preprosta, obstaja glavni skript Python, ki nastavi zaslon, konfigurira GPIO, naloži zaslone in vstopi v neskončno zanko za posodobitev, čaka na dogodke uporabnika in po potrebi posodobi zaslon. Poleg tega obstajajo različni podporni skripti, ki pomagajo vnaprej ustvariti zaslone uporabniškega vmesnika.

Glavne uporabljene knjižnice:

  • pygame: To uporabljam kot motor za zagon uporabniškega vmesnika, saj mi je omogočal risanje poljubnih grafik, manipulacijo slik, pisav, celozaslonski prikaz itd.
  • pyky040: To zagotavlja rokovanje z vrtljivim gumbom in mi prihrani veliko časa (najlepša hvala Raphaelu Yanceyju, ki je to objavil.
  • RPi. GPIO: Za dobro GPIO vožnjo sem se tukaj poigraval z nekaj možnostmi, vendar mi je to dalo pravo raven prilagodljivosti, ki sem jo želel, zlasti pri stvareh, kot je uporaba rezervnega GPIO kot drugega 3.3v za pogon rotacijskega dajalnika itd.
  • šum: Za ustvarjanje perlin hrupa, ki mi omogoča ustvarjanje naključne valovne oblike za radijski zaslon, ki je videti bolj naravno
  • čakalna vrsta: naletel sem na frustrirajočo napako s časom dogodkov iz obračalnega dajalnika in (zelo) počasno osveževanjem LCD zaslona. Na koncu sem to rešil tako, da sem dohodne dogodke iz vrtljivega dajalnika postavil v čakalno vrsto in jih izbral enega za drugim, ko se je zaslon osvežil.
  • os, sys, threading, time: vse se uporablja za standardne funkcije python

Opomba o zasnovi rokovanja z zaslonom. Zasloni so opredeljeni kot seznam imen v kodi. Za vsak vnos na seznamu je lahko povezana datoteka-p.webp

Vsebina teh datotek je ustvarjena drugje (ročno ali z drugimi skripti), katerih izhodi so shranjeni kot datoteke-p.webp

Obstajajo čudne izjeme, ko je kodiranih nekaj stvari - na primer valovna oblika za naključni radijski zaslon, ki se izračuna v realnem času in animira.

Če vam analogija pomaga, si zamislite oblikovanje uporabniškega vmesnika kot izredno surov in preprost spletni brskalnik - vsak "zaslon" je kot res preprosta spletna stran, ki jo lahko sestavljajo le en png, ena datoteka txt ali kombinacija obeh. Njihova vsebina je neodvisna in jih uporabniški vmesnik nariše tako, kot bi brskalnik narisal spletno stran.

Tu so povezave do glavnih knjižnic, ki sem jih uporabil tukaj:

www.pygame.org/news

pypi.org/project/pyky040/

pypi.org/project/noise/

20. korak: Zaslon s statistiko

Zaslon s statistiko
Zaslon s statistiko

Noben pipboy ne bi bil popoln brez klasičnega zaslona statistike silhuete pipboya. Za to je moj prijatelj ustvaril statični PNG, ki ga samo prikažem kot imetnik mesta. V nekem prihodnjem dnevu se lahko vrnem in naredim to bolj dinamično z nekaj naključne predstavitve škode ali podobno, vendar je za zdaj statičen zaslon.

21. korak: Zaslon inventarja

Zaslon zalog
Zaslon zalog

Nekaj, kar je pri projektih Pi vedno koristno, je način prikaza osnovnih informacij, kot je naslov IP, ki ga je imel DHCP itd. Odločil sem se, da bom zaslon Inventory preobremenil kot prikaz Pi "inventarja" - kakšen CPU, pomnilnik, naslov IP itd.. Za zbiranje teh podatkov sem napisal majhen skript za Linux in ga samo preusmeril v ustrezno besedilno datoteko (.txt), ki jo sistem uporabniškega vmesnika nato pobere in prikaže. Na ta način lahko, če sem kdaj na drugem mestu, sprožim skript in vzamem novo datoteko.txt z najnovejšim naslovom IP itd.

Korak: Zaslon zemljevida

Zaslon zemljevida
Zaslon zemljevida

Ta zaslon je bil eden bolj zapletenih zaslonov za delo. Raspberry Pi 0 ni opremljen z modulom GPS, vendar sem želel, da bi bil zemljevid nekaj veljaven tam, kjer je bil Pi. Moja rešitev za to je ločen skript, ki potegne naslov Pi IP, uporablja https://ipinfo.io za iskanje približne lokacije. Odgovor JSON se zajame in nato pretvorim koordinate, da lahko povlečem ploščico openstreetmap.org za približno lokacijo.

Ploščice se pojavljajo v več barvah, vendar sem želel podobo v zelenem merilu, ki bi se ujemala z videzom in občutkom Pipboya, a nisem mogel najti točno takega, zato sem v Python napisal filter v zelenem merilu, da bi barve prenovil ploščice openstreetmap, nato pa novo sliko predpomnite v datoteko png.

Med zgornjim postopkom se ustvari besedilna datoteka s približno lokacijo in koordinatami, ploščica zemljevida pa kot png. Uporabniški vmesnik pipboy povleče obe datoteki in prekriva vsebino, da ustvari zaslon zemljevida, ki deluje (z natančnostjo ločljivosti naslova IP do lokacije).

Korak: Zaslon s podatki

Podatkovni zaslon
Podatkovni zaslon

To je samo preskusna kartica (ustvarjena z drugim python skriptom in izhodna datoteka png), ki je prikazana za lažje testiranje velikosti/postavitve. Pustil sem ga, ker je še vedno koristno preveriti, s koliko nepremičnin se moram igrati pri posmehovanju zaslonov.

Korak: Radio zaslon

Radio zaslon
Radio zaslon

Skupaj z zaslonom zemljevida je to drugi zaslon, ki mi je res delal veliko dela. To je edini zaslon, kjer sem se igral z animacijo - in večinoma deluje po predvidevanjih, vendar je zmogljivost še vedno problem s hitrostjo osveževanja LCD zaslona. Struktura zaslona je besedilna datoteka, ki vsebuje nekaj naključno izbranih radijskih imen (to so samo poljubni nizi in ne naredijo nič drugega kot predstavitev seznama na zaslonu), datoteka png, ki vsebuje os območja grafa (I napisal drugi skript za ustvarjanje teh in ustvarjanje-p.webp

To je edini zaslon, na katerem zanka pygame resnično deluje v vsakem ciklu, mora izračunati novo valovno obliko, izbrisati del zaslona v tem in vrisati.

Korak 25: Zadnje misli

Image
Image
Zaključne misli
Zaključne misli

To je verjetno najzahtevnejša gradnja, ki sem jo naredil, z mnogimi različnimi koncepti in spretnostmi, je pa tudi ena najbolj prijetnih pri resničnih stvareh, ki posledično delujejo. Še vedno pospravljam nekaj svojih bolj tehničnih opomb, pa tudi github repo za kodo. Vse bom kmalu dal na voljo, zato se kmalu vrnite za več podrobnosti in informacij, ko bom imel čas, da jih dodam v zapis.

Če se odločite za kaj takega, bi rad videl rezultate, če pa imate kakršna koli vprašanja, se obrnite na nas in v vsakem koraku, kjer želite pomagati, bom poskušal dodati več informacij.

Korak 26: Odprite kodo na Githubu

Koda odprta na Githubu
Koda odprta na Githubu

Končno sem se lotil odpiranja kode v Githubu. Na voljo je na tej povezavi:

Priporočena: