Përmbajtje:

Pipboy i ndërtuar nga skrap: 26 hapa (me fotografi)
Pipboy i ndërtuar nga skrap: 26 hapa (me fotografi)

Video: Pipboy i ndërtuar nga skrap: 26 hapa (me fotografi)

Video: Pipboy i ndërtuar nga skrap: 26 hapa (me fotografi)
Video: Кораблик из бумаги своими руками. Оригами лодочка. 2024, Korrik
Anonim
Image
Image
Ndërtimi i Zemrës së Pipboy
Ndërtimi i Zemrës së Pipboy

Ky është Pipboy im i punës, i ndërtuar nga hedhurina të rastësishme nga garazhi dhe një bastisje e stokut tim të komponentëve elektronikë. Unë e gjeta këtë një ndërtesë sfiduese dhe më deshën disa muaj punë, kështu që nuk do ta kategorizoja këtë si një projekt fillestar të plotë. Aftësitë e nevojshme përfshijnë punë plastike dhe druri, elektronikë dhe kodim. Trupi është ndërtuar nga copa të ndryshme plastike të prera dhe të salduara së bashku. Kam përdorur një Raspberry Pi 0 si mikrokontrollues, me një kokë të ekranit të montuar në një pjesë të kunjave GPIO. Kunjat e mbetura përdoren për të drejtuar LED dhe për të lidhur butonat/kontrollet. Kam shkruar një ndërfaqe të përdoruesit të stilit "Pipboy" me disa ekrane demo në Python për të përfunduar projektin.

Qëllimet e mia për projektin ishin:

  • Duhej të punoja - domethënë e nevojshme për të pasur në të vërtetë një ekran që bënte gjëra
  • Doja që të kishte një "dial" për të zgjedhur ekranet e ndryshëm pasi që gjithmonë shquhej për mua si një pjesë ikonike e UI në Fallout
  • E gjithë ndërtimi duhej të përfundonte duke përdorur sende që kisha tashmë në garazh ose në zyrën time (kjo nuk u arrit plotësisht, por u afrova - më shumë se 90% e kësaj u gjetën sende ose sende që tashmë i kisha vendosur)
  • Duhej të vishej

Një qëllim që nuk kisha ishte ta bëja atë një kopje të saktë të një prej modeleve të lojës - preferoj të ndërtoj gjëra "në stilin" e një gjëje, pasi më jep hapësirë për të përshtatur hedhurinat e rastësishme që gjej, dhe më lejoni të jem pak më kreativ. Më në fund, po e di që mund t'i blini këto, por as kjo nuk ishte pika;)

Furnizimet

Furnizimet

  • Tub i hapur i gjerë (siç është një pjesë e tubit të kullimit)
  • Plastikë të mbeturinave (si për krijimin e trupit ashtu edhe për qëllime dekorative)
  • Enë e vogël
  • Tap dyshemeje me shkumë
  • Mjedër Pi
  • Ekran 3.5"
  • KY040 Kodifikues rrotullues
  • 3x LED
  • 2x butona shtypi
  • Powerbank
  • Instalime elektrike
  • Vida, ngjitës, ngjyra, mbushës etj

Mjetet

  • Dremmel
  • Multi-mjet me bashkues prerës dhe lëmues
  • Stërvitje
  • Skedaret
  • Makine per ngjitjen e metalit
  • Armë me zam të nxehtë
  • Vidë (at)
  • Thikë e mprehtë
  • Sharrë

Hapi 1: Ndërtimi i Zemrës së Pipboy

Ndërtimi i Zemrës së Pipboy
Ndërtimi i Zemrës së Pipboy

Gjëja e parë që duhej të bëja ishte të sigurohesha që mund të merrja një ekran dhe mikrokontrollues në një faktor forme me të cilin mund të punoja. Më ndodhi të kisha një ekran 3.5 që godiste rreth e rrotull që qëndron si HAT në kunjat e GPIO të një PI Raspberry, kështu që vendosa ta përdor këtë. Unë e çiftova me një Raspberry Pi 0 dhe u sigurova që funksionoi mirë, ka një disa hapa për ta bërë Linux -in të njohë ekranin nëpër të cilin duhet të kaloni.

Siç mund ta shihni në foton e dytë shtova një platformë të vogël kartoni/shkumë që e ngjita në kasë për të ndihmuar në mbështetjen e ekranit. E bëra këtë pasi e dija që do ta trajtoja shumë këtë pjesë dhe nuk doja të thyeja kunjat ose ekranin përmes mungesës së mbështetjes. Përfundimisht kjo u zëvendësua, por ishte një mbrojtje e mirë e shtuar gjatë procesit të ndërtimit.

Vlen gjithashtu të theksohet në këtë pikë, që më vonë në ndërtim hasa në probleme të performancës me këtë konfigurim - kryesisht shkalla e rifreskimit mbi ndërfaqen midis Pi dhe ekranit, do të hyj në këtë më vonë në ndërtim, por nëse unë e bëri këtë përsëri, mund të konsideroj pajisje të ndryshme këtu.

Këtu janë disa lidhje të dobishme për këtë:

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…

Unë gjithashtu do të përfshijë në github të lidhur me këtë disa shënime për atë që bëra në të vërtetë për ta bërë këtë të funksionojë (edhe pse nga leximi im i temës ka shumë ndryshueshmëri në mënyrën se si funksionon kjo për instanca/drejtues të veçantë, kështu që shkatërrimi juaj mund të ndryshojë)

Hapi 2: Prototip kartoni

Prototip kartoni
Prototip kartoni
Prototip kartoni
Prototip kartoni
Prototip kartoni
Prototip kartoni

Gjeta disa ulluqe/tuba të vjetër që mund t'i përdorja për trupin, por më duhej të dilja me një dizajn për zonën aktuale të ekranit dhe panelin e kontrollit. Për këtë unë sapo bëra shaka kartoni dhe përdor kasetë maskimi për t'i fiksuar ato në tub. E para ishte një "kuti" e thjeshtë, por më dukej shumë e thjeshtë, kështu që e modifikova për ta bërë zonën e ekranit më interesante dhe shtova një zonë të veçantë të panelit të kontrollit. Ky pak a shumë u bë modeli përfundimtar (kishte disa ndryshime siç do ta shihni, por është afër).

Hapi 3: Nga Prototipi në Model

Nga Prototipi në Model
Nga Prototipi në Model
Nga Prototipi në Model
Nga Prototipi në Model
Nga Prototipi në Model
Nga Prototipi në Model

Tani kisha një prototip me të cilin isha i kënaqur, mund ta rrafshoja kartonin dhe ta shndërroja në një model që më pas e transferova në një pjesë të një kasete të vjetër të kompjuterit që kisha nisur përreth. Çdo plastikë e ngjashme e fortë do të funksiononte, unë thjesht po përdor mbeturinat që duhej të kisha në dorë. Pasi u shënova, unë atëherë isha në gjendje të preja copat në mënyrë që të filloja të mblidhja trupin kryesor. Një këshillë e dobishme këtu, për ta bërë më të lehtë shënimin dhe më pas prerjen e plastikës, i mbulova zonat që do të më duheshin për të prerë me shirit maskues, kjo më dha të dyja një mënyrë më të lehtë për të nxjerrë shabllonin në plastikë, dhe diçka për të ndihmuar në ndalimin e rrëshqitjes së diskut prerës ndërsa bëra prerjet e para.

Hapi 4: Shtoni kasë për ekran dhe Pi

Shto kasë për ekran & Pi
Shto kasë për ekran & Pi
Shto kasë për ekran & Pi
Shto kasë për ekran & Pi

Doja që qoshet e zonës së ekranit të ishin të lakuara, dhe më duhej diçka për të mbajtur në të vërtetë Pi dhe shfaqur brenda - zgjidhja ime ishte të përdorja një enë të vogël plastike që kisha. Unë preva një vrimë nga pjesa e sipërme e trupit dhe ngjita enën përmes kësaj. Pastaj i ngjita të gjitha anët së bashku. Kam përdorur supergla këtu me sode buke të bollshme për të ndihmuar në forcimin e saldimeve. Më vonë mbusha dhe depozitova/lëmova gjithçka për t'i rregulluar të gjitha dhe për t'i dhënë një ndjenjë më të "formuar".

Hapi 5: Përsëriteni për Panelin e Kontrollit

Përsëriteni për Panelin e Kontrollit
Përsëriteni për Panelin e Kontrollit
Përsëriteni për Panelin e Kontrollit
Përsëriteni për Panelin e Kontrollit
Përsëriteni për Panelin e Kontrollit
Përsëriteni për Panelin e Kontrollit

Tjetra, bëra saktësisht të njëjtin shabllon duke transpozuar, prerë dhe ngjitur për të ndërtuar strehimin e panelit të kontrollit.

Hapi 6: Pritini tubin

Pritini tubin
Pritini tubin

Siç mund ta shihni kontejnerin që po planifikoj të përdor për të vendosur përbërësit kryesorë elektronikë tani ulet krenar brenda rrethuesit të zi plastik, kjo do të thotë se më duhet të bëj një hapje në tub që të vendoset brenda. Përdora sërish shirit maskues për të rreshtuar aty ku doja të prisja dhe prerë një katror të tubit në mënyrë që pjesët të përshtaten.

Hapi 7: Korniza

Bezel
Bezel
Bezel
Bezel

Një sfidë që e detyrova rastësisht mbi veten time ishte përpjekja për të dalë me një kornizë që do të mbushte zonën përreth ekranit deri në skajet e enës. Fatkeqësisht mënyra se si është bërë shfaqja e ekranit gjithashtu nuk ka asgjë të dobishme në dizajnin e saj (si vrima ose ndonjë gjë tjetër) për të ndihmuar në montimin e saj, kështu që korniza gjithashtu duhej ta mbante ekranin në vend. Përpjekja ime e parë (e parë këtu) ishte një përzierje e plastikës dhe shkumës. Unë përfundimisht përfundova duke përsëritur këtë disa herë dhe përfundoi duke qenë një nga pjesët më sfiduese të ndërtimit. Përkeqësuar nga tolerancat e vogla dhe natyra delikate e vetë kornizës dhe ekranit.

Hapi 8: Testi i baterisë

Testi i baterisë
Testi i baterisë
Testi i baterisë
Testi i baterisë
Testi i baterisë
Testi i baterisë

Në këtë pikë, unë ktheva mendjen se si ta bëj këtë të funksionojë në mënyrë të pavarur nga një USB e furnizuar nga rrjeti. Unë testova bateri të ndryshme dhe zbulova se ekrani Raspberry Pi + në të vërtetë nuk tërhiqte aq shumë energji dhe ishte krejtësisht i lumtur duke punuar edhe në një nga bateritë e mia më të vogla (një pagesë falas nga një shfaqje tregtare). Kjo ishte me të vërtetë me fat pasi paketa u përshtat në mënyrë perfekte në një boshllëk brenda strukturës (foto më vonë). Tani ne mund t'i bashkojmë përkohësisht përbërësit kryesorë të trupit dhe ta provojmë atë në krahun tim!

Hapi 9: Testimi i Fit

Testimi i Fit
Testimi i Fit
Testimi i Fit
Testimi i Fit
Testimi i Fit
Testimi i Fit

Këtu mund të shihni se ku e kam modifikuar tubin bazë më tej për të lejuar hyrjen në pjesën e poshtme të përbërësve. Ju gjithashtu mund të shihni se si kam pasur fat me baterinë që u vendos mirë në një zgavër në njërën anë të enës Pi. Më në fund filloi procesi i pastrimit të lidhjeve, mbushjes, lëmimit dhe bëri një shtresë provë abetare për të kuptuar pamjen e përfunduar (e dija që në këtë fazë do ta lëmoja këtë edhe shumë herë të tjera dhe pothuajse e gjithë ajo abetare do të shkonte, por doja të kuptoja se si do të dukej).

Hapi 10: Shtoni kontrolle dhe detaje

Shtoni kontrolle dhe detaje
Shtoni kontrolle dhe detaje
Shtoni kontrolle dhe detaje
Shtoni kontrolle dhe detaje
Shtoni kontrolle dhe detaje
Shtoni kontrolle dhe detaje

Doja një seri LED të kuq/të verdhë/jeshil për të formuar një matës, si dhe një dial rrotullues dhe të paktën 2 butona shtytës. Të gjitha këto u vendosën në pjesën e panelit të kontrollit - thjesht një rast i shpimit të të gjitha vrimave të duhura. Unë gjithashtu fillova të shtoj pjesë të vogla të komponentëve të mbeturinave plastike (në thelb bashing kit) për të shtuar detaje dhe më shumë interes për trupin dhe panelin e kontrollit.

Hapi 11: Rindërtimi i Bezel Nr. 3

Rindërtimi i Bezelit Nr. 3
Rindërtimi i Bezelit Nr. 3
Rindërtimi i Bezelit Nr. 3
Rindërtimi i Bezelit Nr. 3
Rindërtimi i Bezelit Nr. 3
Rindërtimi i Bezelit Nr. 3

Siç e përmenda më herët, unë luftova me kornizën për këtë ndërtesë dhe e rindërtova disa herë. Ky është përsëritja e tretë me të cilën kam ngecur. Qasja ime këtu për të përdorur dërrasa të forta dhe për të prerë 2 forma të ndryshme, njëri mendimtar se tjetri dhe më pas i ngjiti (dhe i shtrëngoi) së bashku për të formuar figurën e mesme. Këto forma lejuan që ekrani katror të ulej brenda këtij dhe më pas e mbajti ekranin në vend brenda enës (si në figurën 3). Kjo më dha vetëm material të mjaftueshëm për të përdorur 4 vida shumë të vogla si pajisje - të cilat i kam përdorur për ta rregulluar fort në vend brenda kasës, dhe nga ana tjetër do ta mbante ekranin të qëndrueshëm dhe të sigurt. Në retrospektivë do të gjeja një ekran i cili vinte me disa opsione të mira montimi (ose përdor një printer 3D - të cilin nuk e kisha në atë kohë).

Hapi 12: Prototipizimi i elektronikës

Prototipizimi i elektronikës
Prototipizimi i elektronikës
Prototipizimi i elektronikës
Prototipizimi i elektronikës

Unë përdor një tabelë buke për të paraqitur qarqet e mia të thjeshta si kjo, dhe ndërsa e bëj shpesh këtë pjesë të projektit në një hapësirë të ndryshme me strukturën e trupit kryesor, gjithashtu e çiftova atë me një PI të ndryshme Mjedër. Këtu kam përdorur një model 3, i cili më dha pak më shumë fuqi për t'u lidhur drejtpërdrejt me të dhe për të drejtuar një IDE në bord. Kjo thjesht e bëri prototipizimin e kodit të shpejtë pak më të lehtë për mua. Ka shumë mënyra të tjera për t'u lidhur/koduar/korrigjuar nga distanca, kjo është vetëm ajo që kam preferuar të bëj këtu.

Dizajni këtu është mjaft i drejtpërdrejtë, ne kemi;

  1. Kodifikues rrotullues - kjo përdor një bazë dhe një mori kunjash GPIO për t'u marrë me drejtimin e klikimit dhe butonin e shtypjes.
  2. Një çift butonash, këto thjesht përdorin një kunj të vetëm GPIO secila dhe një bazë të përbashkët
  3. 3 LED, secila me një rezistencë të brendshme për t'i ndaluar ato të shfaqen, të gjitha shkojnë në një terren të përbashkët, por me një kunj individual GPIO secila në mënyrë që secila të adresohet individualisht.

Kjo më dha 3 LED për matësin tim, një kodues rrotullues që rrotullohej nëpër ekranet në pipboy dhe 3 butona shtytës për të drejtuar veprimet (një në kodifikuesin rrotullues dhe 2 të lidhur veçmas). Kjo ishte për gjithçka që mund të përshtatesha, dhe me ekranin që merr një mori kunjash, konsumon shumë atë që keni në një paraqitje standarde Pi GPIO. Sidoqoftë, ishte mirë për qëllimet e mia.

Fotografia e dytë tregon shumë paraqitjen përfundimtare të brendshme me të cilën shkova. Kam kaluar ca kohë këtu duke testuar mënyrat e drejtimit të përbërësve dhe duke verifikuar që gjithçka ka punuar para se ta transferoja këtë në trupin e ndërtesës. I gjithë kodi është në github.

Një shënim në lidhje me kodifikuesit rrotullues. Unë kalova një bandë kohe duke shkruar makinën time Rotary Encoder, për të ndjekur ndryshimet e larta/të ulëta të GPIO dhe për t'i hartuar ato në pozicione rrotulluese. Unë kisha sukses të përzier këtu, e kuptova se punonte për "shumicën" e rasteve, por gjithnjë ka raste të përparuara dhe (de) kërcime etj. Farshtë shumë, shumë më e lehtë për të përdorur një bibliotekë të gatshme dhe është një e shkëlqyeshme për këto që mund të instalohen për Python. E përdor atë në fund pasi më lejoi të përqendrohesha në pjesën argëtuese të ndërtimit, në vend që të kaloja moshat duke korrigjuar çështjet. Të gjitha detajet për këtë përfshihen në kodin burimor.

Nëse jeni i ri në Raspberry Pi, GPIO dhe elektronikë, unë rekomandoj shumë mësimet e mëposhtme që ju përcjellin me gjithçka që ju nevojitet për të bërë paraqitjen e mësipërme;

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

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

Hapi 13: Transpozimi i elektronikës në trup

Transpozimi i elektronikës në trup
Transpozimi i elektronikës në trup
Transpozimi i elektronikës në trup
Transpozimi i elektronikës në trup
Transpozimi i elektronikës në trup
Transpozimi i elektronikës në trup

Pasi përfundova paraqitjen duke përdorur një dërrasë buke, ishte koha të filloja të mendoja se si t'i montoja këto në trupin e gypit. Vendosa se doja ta bëja atë në mënyrë që të mund të çmontoja dhe hiqja të gjithë përbërësit elektronikë në rast se do të kisha nevojë për të riparuar ose ndryshuar ndonjë gjë në të ardhmen. Për ta arritur këtë, vendosa që të gjitha nën-pjesët të lidhen me prizë duke përdorur lidhëset dupont.

Për butonat që bashkova në disa tela zgjatues dhe përdorën mbështjellës teli për të izoluar skajet, kjo më lejoi t'i montoja dhe çmontoja këto nga trupi (p.sh. për testimin, pastaj pikturimin etj). Koduesi Rotary tashmë kishte kunja që mund të pranonin lidhëset dupont, kështu që më duhej vetëm të bëja disa tela me gjatësinë e duhur.

LED -ve u desh pak më shumë punë - për këtë, vendosa të përdor pak copë plastike që kisha (të prerë për t'u përshtatur) për të bërë një panel të lëvizshëm për të montuar LED -të. Pastaj i ngjita nxehtësisht në vend dhe bashkova rezistencat dhe telat. Kjo bëri një njësi heqëse që mund ta vendosja dhe hiqja dhe e bëri më të lehtë pikturimin dhe përfundimin.

Vini re bashkimi im është i tmerrshëm, kështu që e mbaja këtë të thjeshtë dhe shmangja çdo gjë shumë të detajuar/të mirë. Në foton përfundimtare që mund të shihni unë gjithashtu kisha disa tabela shumë të vogla (5x5), kam përdorur njërën nga këto të montuara brenda për të siguruar një panel për të lidhur gjithçka me/nga GPIO. Në veçanti kjo ishte e dobishme për të krijuar një hekurudhë të përbashkët tokësore që mund të përdorja dhe për të shmangur që shumë tela tokësorë të ktheheshin në Pi.

Pastaj kam prerë vrima të ndryshme në enë për të ushqyer telat në Pi dhe të lidhem me GPIO. Ky dizajn më lejoi të përfundoja heqjen e gjithçkaje nëse do të kisha nevojë (diçka që bëra disa herë ndërsa po përfundoja ndërtimin).

Hapi 14: Rregullimi i Përshtatshëm i Përshtatshmërisë

Rregullimi i Përshtatshëm i Përshtatshmërisë
Rregullimi i Përshtatshëm i Përshtatshmërisë
Rregullimi i Përshtatshëm i Përshtatshmërisë
Rregullimi i Përshtatshëm i Përshtatshmërisë

Në këtë pikë unë hasa në disa çështje "të përshtatshme". Së pari, përdorimi i lidhësve dupont për instalime elektrike nënkuptonte se ishte e vështirë t'i vendosësh ato në kunjat me kapelën e ekranit në vend, pasi nuk kishte hapësirë të mjaftueshme për lartësinë. Unë e zgjidha këtë duke blerë (kjo është një nga gjërat e pakta që kam blerë në të vërtetë për këtë projekt) një zgjerues të vogël të kunjave GPIO në mënyrë që të mund ta ulja kapelën e ekranit më lart dhe të lija hapësirë për të hyrë në kunjat e mbetura GPIO duke përdorur lidhëset dupont.

Unë gjithashtu copëtova disa copa të vogla të dyshekut të shkumëzuar për të bërë disa mbushje anësore brenda enës, kjo ndihmoi në uljen e ekranit Pi + në vendin e duhur dhe ndalimin e lëvizjes së tij.

Hapi 15: Rikthimi në koduesin rrotullues

Retro Up the Rotary Encoder
Retro Up the Rotary Encoder

Kodifikuesit rrotullues shpesh vijnë (ashtu si edhe imi) me një çelës të bukur me shkëlqim modern të stilit "hi fi". Kjo ishte krejtësisht jashtë karakterit për ndërtimin, kështu që më duhej të dilja me diçka tjetër. Në kutinë time të rastësishme të pjesëve, hasa në një dhëmbëz të vjetër nga një stërvitje që e theva shumë kohë më parë. Kjo dukej mirë, por nuk i përshtatet kodifikuesit rrotullues. Zgjidhja ime këtu ishte të provoja priza të ndryshme muri derisa gjeta një që i përshtatet dialit rrotullues, dhe pastaj ta pres në formë, në mënyrë që ta përdor atë si një "jakë të brendshme" për të vendosur dhëmbëzën e stërvitjes mbi koduesin rrotullues si një temë më e përshtatshme kontroll.

Hapi 16: Rreshtimi i brendshëm

Rreshtim i brendshëm
Rreshtim i brendshëm
Rreshtim i brendshëm
Rreshtim i brendshëm

Më shumë pllaka dyshemeje me shkumë! Këtë herë, unë i përdor ato për të ndërtuar një rreshtim të butë për ta bërë atë një përshtatje më të rehatshme (pa shumë të lirshme). Duke prerë një vrimë nga shkuma, unë gjithashtu isha në gjendje të thithja një pjesë të "gungës" që bën ena për Pi. Në përgjithësi kjo e bëri atë shumë më të vishet. Nuk tregohet në këto foto, por e bëra pak më të madhe se trupi kryesor, kështu që është e dukshme në skajet, të cilën më vonë e pikturova dhe e gjithë kjo ndihmoi për të shtuar pak kontrast dhe interes në artikullin e përfunduar.

Hapi 17: Shtimi i detajeve

Shtimi i Detajit
Shtimi i Detajit
Shtimi i Detajit
Shtimi i Detajit

Koha për të filluar të shtoni një dekorim dhe ta bëni atë më interesant. Para së gjithash shtova disa shirita plastike përgjatë një fytyre për t'i dhënë asaj pak interes vizual. Pastaj shtova disa tela të rremë në disa terminale dhe thjesht i shtyva në një vrimë që shpova në trup. E gjithë kjo u pikturua më vonë me ngjyra të ndryshme.

Hapi 18: Pikturimi dhe përfundimi i ndërtimit të trupit

Pikturimi dhe përfundimi i ndërtimit të trupit
Pikturimi dhe përfundimi i ndërtimit të trupit
Pikturimi dhe përfundimi i ndërtimit të trupit
Pikturimi dhe përfundimi i ndërtimit të trupit
Pikturimi dhe përfundimi i ndërtimit të trupit
Pikturimi dhe përfundimi i ndërtimit të trupit

Unë nuk isha shumë i shqetësuar me një përfundim të pacenuar - siç supozohet të jetë i vjetër dhe i përdorur mirë gjithsesi (në fakt mund të kthehem dhe të bëj edhe më shumë mot në të në një moment). Por unë doja që ajo të dukej si një objekt i qëndrueshëm dhe i plotë që nuk u hobbled së bashku nga hedhurina rastësore (edhe pse kjo ishte pikërisht ajo që ishte). Kam kaluar përsëritje të shumta të lëmimit, mbushjes (miliput është mbushësi im i zgjedhur për plastikën) dhe përsëris. Pastaj disa shtresa abetare dhe bojë për të ndihmuar më tej në zbutjen e të gjitha lidhjeve. Pastaj më shumë lëmues dhe më shumë mbushje, dhe më shumë pikturë.

Pasi pata një pamje dhe ndjenjë të trupit me të cilin isha i kënaqur, fillova të shtoj disa detaje. Kam përdorur fërkim dhe tiganisje në skarë në kontrollet për t'u dhënë atyre një ndjenjë më të rrjetë teli. Unë gjithashtu shtova detaje të vogla të bojës këtu dhe atje duke përdorur akrilikë.

Gërmova në koleksionin tim të ngjitëseve të rastësishme dhe shtova disa për të përfunduar efektin. Pastaj bëra një larje të motit me disa ngjyra të përziera për të shtuar pak njolla dhe papastërti në zonat e vështira për t'u arritur që do të ishin të vështira për t'u pastruar. Kjo është ndoshta pak delikate për momentin, dhe unë mund të kthehem dhe të shtoj disa të tjera më vonë.

Hapi 19: Kodimi

Kodimi
Kodimi

Pjesë e ambicies sime për këtë projekt ishte ta bëja atë të reagonte si një djalë i vërtetë - dhe për mua pjesa më ikonike e asaj loje në lojë është kthimi i numrit për të rrokullisur mes ekraneve të ndryshëm. Për ta arritur këtë, vendosa të shkruaj një ndërfaqe të përdoruesit pipboy që do të jetë në gjendje të shfaqë një seri ekranesh dhe t'ju lejojë të lëvizni midis tyre. Doja të bëja përmbajtjen e ekraneve diçka që mund ta ndryshoja lehtë, dhe në të vërtetë të isha në gjendje të shtoja/hiqja ekranet.

Unë zgjedh ta shkruaj këtë në Python për shkak të mbështetjes së shkëlqyeshme për Raspberry Pi, GPIO etj. Python është mjaft e ulët në listën time të gjuhëve që i njoh, kështu që kjo ishte një kurbë e madhe mësimi për mua, dhe shumica e kodit është i çrregullt si rezultat. Unë do ta azhurnoj këtë me kalimin e kohës pasi nuk kam përfunduar plotësisht gjithçka që doja të bëja këtu - por është mjaft afër për të ndarë tani pasi të gjitha konceptet kryesore janë atje.

Dizajni im për kodin UI është mjaft i drejtpërdrejtë, ekziston një skenar kryesor Python që vendos ekranin, konfiguron GPIO, ngarkon ekranet dhe fut një lak përditësimi të pafund, duke pritur për ngjarjet e përdoruesit dhe azhurnuar ekranin sipas nevojës. Për më tepër, ekzistojnë skripte të ndryshme mbështetëse që ndihmojnë në gjenerimin e ekraneve të UI para kohe.

Bibliotekat kryesore të përdorura:

  • pygame: Unë e përdor këtë si motor për të drejtuar UI pasi më lejoi të vizatoja grafika arbitrare, të manipuloja imazhe, shkronja, të shkoja në ekran të plotë etj.
  • pyky040: Kjo siguron trajtimin e numrit rrotullues dhe më kurseu shumë kohë (shumë faleminderit Raphael Yancey për lëshimin e tij.
  • RPi. GPIO: Për vozitje të mirë GPIO, kam luajtur me disa opsione këtu, por kjo më dha nivelin e duhur të fleksibilitetit që doja, veçanërisht me gjëra të tilla si përdorimi i një GPIO rezervë si një 3.3v tjetër për të drejtuar koduesin rrotullues, etj.
  • zhurma: Për gjenerimin e zhurmës perlin, më lejoni të krijoj një formë valore të rastësishme për ekranin e radios që duket më e natyrshme
  • radhë: hasa në një defekt zhgënjyes me kohën e ngjarjeve nga kodifikuesi rrotullues që po kthehej dhe shpejtësinë (shumë) të ngadaltë të rifreskimit të ekranit LCD. Në fund mënyra se si e zgjidha këtë ishte të vendosja në radhë ngjarjet e brendshme nga koduesi rrotullues dhe t'i zgjidhja ato një nga një pasi ekrani të rifreskohej.
  • os, sys, filetimi, koha: të gjitha të përdorura për funksionet standarde të pythonit

Një shënim mbi modelin e trajtimit të ekranit. Ekranet përcaktohen si një listë emrash brenda kodit. Çdo hyrje në listë mund të ketë ose një-p.webp

Përmbajtja e atyre skedarëve gjenerohet diku tjetër (me dorë ose nga skriptet e tjera), dalja e të cilave ruhet si skedarë-p.webp

Ka përjashtime të çuditshme ku disa gjëra janë të koduara - siç është forma e valës për ekranin e rastësishëm të radios, e cila llogaritet në kohë reale dhe animohet.

Nëse një analogji ndihmon, mendoni për modelin e UI si një shfletues uebi jashtëzakonisht i papërpunuar dhe i thjeshtë - secili "ekran" është si një faqe interneti vërtet e thjeshtë e cila mund të përbëhet vetëm nga një png, një skedar txt ose një kombinim i të dyjave. Përmbajtja e tyre është e pavarur dhe vetëm vizatohet nga UI, ashtu si një shfletues do të vizatonte një faqe në internet.

Këtu janë lidhjet me bibliotekat kryesore që kam përdorur këtu:

www.pygame.org/news

pypi.org/project/pyky040/

pypi.org/project/noise/

Hapi 20: Ekrani i Statistikave

Ekrani i Statistikave
Ekrani i Statistikave

Asnjë pipboy nuk do të ishte i plotë pa ekranin klasik të statistikave të siluetit pipboy. Për këtë, një mik i imi krijoi një-p.webp

Hapi 21: Ekrani i inventarit

Ekrani i inventarit
Ekrani i inventarit

Diçka që është gjithmonë e dobishme me projektet Pi është të kesh një mënyrë për të shfaqur informacionin bazë si adresa IP DHCP'd e saj etj. Vendosa të mbingarkoja ekranin e Inventarit si një shfaqje të "inventarit" Pi - çfarë CPU, memorie, adresa IP etj. Shkrova një skenar të vogël Linux për të mbledhur këtë informacion dhe thjesht për ta përcjellur atë në një skedar teksti të emëruar në mënyrë të përshtatshme (.txt) që sistemi UI më pas merr dhe shfaq. Në këtë mënyrë, nëse jam ndonjëherë në një vend tjetër, mund ta shkarkoj skriptin dhe të marr një skedar të ri.txt me adresën IP të përditësuar, etj.

Hapi 22: Ekrani i Hartës

Ekrani i Hartës
Ekrani i Hartës

Ky ekran ishte një nga ekranet më komplekse për tu punuar. Raspberry Pi 0 nuk vjen me një modul GPS, por unë doja që Harta të kishte njëfarë vlefshmërie se ku ishte Pi. Zgjidhja ime për këtë është një skript i veçantë që tërheq adresën IP Pi, përdor https://ipinfo.io për të kërkuar një vend të përafërt. Përgjigja JSON kapet dhe më pas konvertoj koordinatat në mënyrë që të mund të tërheq një pllakë openstreetmap.org për vendndodhjen afërsisht.

Pllakat zbresin në ngjyra të shumëfishta, por unë doja që një imazh i shkallës së gjelbër të përputhej me pamjen dhe ndjenjën e Pipboy dhe nuk mund ta gjeja një pikërisht të tillë, kështu që shkrova një filtër të shkallës së gjelbër në Python për të rimarrë ngjyrat të pllakës openstreetmap dhe më pas ruani imazhin e ri në një skedar png.

Gjatë procesit të mësipërm një skedar teksti gjenerohet me vendndodhjen dhe koordinatat e përafërta, dhe pllaka e hartës krijohet si png. Ndërfaqja e ndërmarrjes tërheq të dyja këto skedarë dhe mbivendos përmbajtjen për të krijuar një ekran të Hartës që funksionon (brenda saktësisë së zgjidhjes së adresës IP në një vendndodhje).

Hapi 23: Ekrani i të dhënave

Ekrani i të dhënave
Ekrani i të dhënave

Kjo është vetëm një kartë provë (e krijuar nga një skript tjetër python dhe dalë në një skedar png) që shfaqet për të ndihmuar në testimin e madhësisë/paraqitjes. E lashë sepse është akoma e dobishme për të verifikuar se sa pasuri të paluajtshme kam për të luajtur kur tallem me ekranet.

Hapi 24: Ekrani i radios

Ekrani i radios
Ekrani i radios

Së bashku me ekranin e hartës, ky është ekrani tjetër që me të vërtetë më ka shkaktuar shumë punë. Ky është ekrani i vetëm ku kam luajtur me animacion - dhe kryesisht punon ashtu siç është menduar, por performanca është ende një problem me normat e rifreskimit të ekranit LCD. Struktura e ekranit është një skedar teksti që përmban disa emra radio të zgjedhur rastësisht (këto janë vetëm vargje arbitrare dhe nuk bëjnë asgjë tjetër përveçse të paraqesin një listë në ekran), një skedar-p.webp

Ky është ekrani i vetëm ku laku pygame bën ndonjë punë të vërtetë pasi çdo cikël, ai duhet të llogarisë formën e re të valës, të fshijë pjesën e ekranit në këtë jeton dhe rishikon.

Hapi 25: Mendimet përfundimtare

Image
Image
Mendimet përfundimtare
Mendimet përfundimtare

Kjo është ndoshta ndërtimi më sfidues që kam bërë, me shumë koncepte dhe aftësi të ndryshme të thirrura, por është gjithashtu një nga gjërat më të këndshme me gjërat reale që funksionojnë si rezultat. Unë jam akoma në procesin e pastrimit të disa prej shënimeve të mia më teknike, si dhe repo github për kodin. Të gjitha këto do t'i vë në dispozicion së shpejti, kështu që kthehuni përsëri së shpejti për më shumë detaje dhe informacion pasi të kem kohë t'i shtoj ato në shkrim.

Nëse filloni të bëni diçka të tillë, do të doja të shihja rezultatet dhe nëse keni ndonjë pyetje, ju lutem mos ngurroni të kontaktoni dhe do të përpiqem të shtoj më shumë informacion në çdo hap ku dëshironi të ndihmoni.

Hapi 26: Kodi i Hapur në Github

Kodi i hapur në Github
Kodi i hapur në Github

Më në fund arrita të hap kodin në Github. E disponueshme në këtë lidhje:

Recommended: