Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Bygger hjertet af Pipboy
- Trin 2: Kartonprototype
- Trin 3: Fra prototype til skabelon
- Trin 4: Tilføj etui til skærm og Pi
- Trin 5: Gentag for Kontrolpanel
- Trin 6: Skær røret ud
- Trin 7: Bezel
- Trin 8: Batteritest
- Trin 9: Test af pasform
- Trin 10: Tilføj kontrolelementer og detaljer
- Trin 11: Ombygning af ramme nr. 3
- Trin 12: Prototyping af elektronikken
- Trin 13: Transponering af elektronikken i kroppen
- Trin 14: Finjuster pasformen
- Trin 15: Retro op Rotary Encoder
- Trin 16: Indvendig foring
- Trin 17: Tilføjelse af detaljer
- Trin 18: Maling og efterbehandling Body Build
- Trin 19: Kodning
- Trin 20: Skærm med statistik
- Trin 21: Beholdningsskærm
- Trin 22: Kortskærm
- Trin 23: Dataskærm
- Trin 24: Radioskærm
- Trin 25: Endelige tanker
- Trin 26: Kodeåben på Github
![Pipboy bygget af skrot: 26 trin (med billeder) Pipboy bygget af skrot: 26 trin (med billeder)](https://i.howwhatproduce.com/images/005/image-14847-j.webp)
Video: Pipboy bygget af skrot: 26 trin (med billeder)
![Video: Pipboy bygget af skrot: 26 trin (med billeder) Video: Pipboy bygget af skrot: 26 trin (med billeder)](https://i.ytimg.com/vi/QKn9yiLVlMM/hqdefault.jpg)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
![Image Image](https://i.howwhatproduce.com/images/005/image-14847-2-j.webp)
![](https://i.ytimg.com/vi/1VvgqVNBUQM/hqdefault.jpg)
![Bygger hjertet af Pipboy Bygger hjertet af Pipboy](https://i.howwhatproduce.com/images/005/image-14847-3-j.webp)
Dette er min fungerende Pipboy, bygget af tilfældigt skrammel fra garagen og et raid af mine elektroniske komponenter. Jeg fandt dette en udfordrende bygning, og det tog mig flere måneders arbejde, så jeg ville ikke kategorisere dette som et komplet begynderprojekt. Nødvendige færdigheder omfatter plast- og træarbejde, elektronik og kodning. Kroppen er bygget af forskellige stykker skrotplast, der er skåret og svejset sammen. Jeg brugte en Raspberry Pi 0 som mikrokontroller, med et displayhoved monteret på en del af GPIO-benene. De resterende ben bruges til at drive lysdioder og tilslutte knapper/knapper. Jeg skrev en brugergrænseflade i "Pipboy" -stil med nogle demoskærme i Python for at fuldføre projektet.
Mine mål for projektet var:
- Var nødt til at arbejde - det vil sige nødvendigt for faktisk at have et display, der gjorde ting
- Jeg ville have det til at have en "skive" til at vælge de forskellige skærme, da det altid stod for mig som en ikonisk del af brugergrænsefladen i Fallout
- Hele bygningen skulle afsluttes ved hjælp af ting, jeg allerede havde i garagen eller på mit kontor (dette blev ikke fuldstændig opnået, men jeg kom tæt på - op mod 90% af dette blev fundet genstande eller ting, jeg allerede havde liggende)
- Behov for at være bærbar
Et mål, jeg ikke havde, var at gøre det til en nøjagtig kopi af en af in -game -modellerne - jeg foretrækker at bygge ting "i stil" med en ting, da det giver mig plads til at tilpasse tilfældigt uønsket, jeg finder, og lad mig være lidt mere kreativ. Endelig, ja jeg ved du kan købe disse, men det var heller ikke meningen;)
Forbrugsvarer
Forbrugsvarer
- Bredt hulrør (f.eks. Et stykke afløbsrør)
- Skrotplast (både til at skabe kroppen og til dekorative formål)
- Lille beholder
- Skum gulvmåtte
- Hindbær Pi
- 3,5 "display
- KY040 Rotary Encoder
- 3x lysdioder
- 2x trykknapper
- Batteri
- Ledninger
- Skruer, lim, maling, fyldstof osv
Værktøjer
- Dremmel
- Multi-værktøj med fræser og slibefastgørelser
- Bore
- Filer
- Loddekolbe
- Varm limpistol
- Skruetrækker
- Skarp kniv
- Sav
Trin 1: Bygger hjertet af Pipboy
![Bygger hjertet af Pipboy Bygger hjertet af Pipboy](https://i.howwhatproduce.com/images/005/image-14847-4-j.webp)
Det første, jeg skulle gøre, var at sikre, at jeg kunne få et display og en mikro-controller i en formfaktor, jeg kunne arbejde med. Jeg havde tilfældigt et 3,5 display, der sparkede rundt, der sidder som en HAT på GPIO -benene på en Raspberry PI, så jeg besluttede at bruge dette. Jeg parrede det med en Raspberry Pi 0 og sørgede for, at det fungerede OK, der er en få trin til at få Linux til at genkende det display, du skal køre igennem.
Som du kan se på det andet billede, tilføjede jeg en lille pap/skumplatform, som jeg limede til sagen for at understøtte displayet. Jeg gjorde dette, da jeg vidste, at jeg ville håndtere denne del meget og ikke ville bryde stifter eller displayet på grund af manglende support. Til sidst blev dette udskiftet, men det var en god smule ekstra beskyttelse under byggeprocessen.
Det er også værd at bemærke på dette tidspunkt, at jeg senere i bygningen stødte på ydelsesproblemer med denne opsætning - overvejende opdateringshastigheden over grænsefladen mellem Pi og skærmen, vil jeg gå ind på dette mere senere i bygningen, men hvis jeg gjorde dette igen, jeg kunne overveje anderledes hardware her.
Her er nogle nyttige links til dette:
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…
Jeg vil også i github'en, der er forbundet med dette, medtage nogle noter til, hvad jeg faktisk gjorde for at få dette til at fungere (selvom der fra min læsning af emnet er stor variation i, hvordan dette fungerer for bestemte tilfælde/drivere, så din millage kan variere).
Trin 2: Kartonprototype
![Pap prototype Pap prototype](https://i.howwhatproduce.com/images/005/image-14847-5-j.webp)
![Pap prototype Pap prototype](https://i.howwhatproduce.com/images/005/image-14847-6-j.webp)
![Pap prototype Pap prototype](https://i.howwhatproduce.com/images/005/image-14847-7-j.webp)
Jeg fandt nogle gamle tagrender/rør, som jeg kunne bruge til kroppen, men jeg havde brug for at komme med et design til selve skærmområdet og kontrolpanelet. Til dette lavede jeg bare papmock -ups og brugte malertape til at fastgøre dem til røret. Den første var en simpel "boks", men det føltes for enkelt, så jeg ændrede det for at gøre skærmområdet mere interessant og tilføjede et separat kontrolpanelområde. Dette blev mere eller mindre det endelige design (der var et par tweaks som du kan se, men det er tæt).
Trin 3: Fra prototype til skabelon
![Fra prototype til skabelon Fra prototype til skabelon](https://i.howwhatproduce.com/images/005/image-14847-8-j.webp)
![Fra prototype til skabelon Fra prototype til skabelon](https://i.howwhatproduce.com/images/005/image-14847-9-j.webp)
![Fra prototype til skabelon Fra prototype til skabelon](https://i.howwhatproduce.com/images/005/image-14847-10-j.webp)
Nu havde jeg en prototype, jeg var glad for, jeg kunne flade kartonen ud og gøre den til en skabelon, som jeg derefter transponerede på en del af en gammel pc -kasse, jeg havde sparket rundt. Enhver lignende hård plast ville fungere, jeg brugte bare skrammel, jeg måtte aflevere. Når det var markeret, kunne jeg derefter skære stykkerne ud, så jeg kunne begynde at samle hoveddelen. Et nyttigt tip her, for at gøre det lettere at både markere og efterfølgende skære plasten, dækkede jeg de områder, jeg skulle skære med malertape først, dette gav mig begge en lettere måde at tegne skabelonen på plasten, og noget for at hjælpe med at stoppe skærepladen fra at glide, da jeg lavede de første udskæringer.
Trin 4: Tilføj etui til skærm og Pi
![Tilføj etui til skærm og Pi Tilføj etui til skærm og Pi](https://i.howwhatproduce.com/images/005/image-14847-11-j.webp)
![Tilføj etui til skærm og Pi Tilføj etui til skærm og Pi](https://i.howwhatproduce.com/images/005/image-14847-12-j.webp)
Jeg ville have, at hjørnerne af skærmområdet skulle være buede, og jeg havde brug for noget til faktisk at holde Pi og vise ind - min løsning var at bruge en lille plastbeholder, jeg havde. Jeg skar et hul ud af kroppen og limede beholderen igennem dette. Så limede jeg alle siderne sammen. Jeg brugte superlim her med rigelig bagepulver til at hjælpe med at styrke svejsningerne. Senere fyldte jeg og arkiverede/slibede alt for at rydde det hele op og give det en mere "støbt" fornemmelse.
Trin 5: Gentag for Kontrolpanel
![Gentag for Kontrolpanel Gentag for Kontrolpanel](https://i.howwhatproduce.com/images/005/image-14847-13-j.webp)
![Gentag for Kontrolpanel Gentag for Kontrolpanel](https://i.howwhatproduce.com/images/005/image-14847-14-j.webp)
![Gentag for Kontrolpanel Gentag for Kontrolpanel](https://i.howwhatproduce.com/images/005/image-14847-15-j.webp)
Dernæst lavede jeg nøjagtig den samme skabelon ved at transponere, klippe og lime for at bygge kontrolpanelhuset.
Trin 6: Skær røret ud
![Skær røret ud Skær røret ud](https://i.howwhatproduce.com/images/005/image-14847-16-j.webp)
Som du kan se beholderen, jeg planlægger at bruge til at huse de vigtigste elektroniske komponenter, sidder nu stolt inde i den sorte plastikring, det betyder, at jeg skal lave en åbning i røret, for at den kan placeres i. Jeg brugte malertape igen til at stille op, hvor jeg ville klippe, og skar en firkant af røret ud, så delene passede.
Trin 7: Bezel
![Bezel Bezel](https://i.howwhatproduce.com/images/005/image-14847-17-j.webp)
![Bezel Bezel](https://i.howwhatproduce.com/images/005/image-14847-18-j.webp)
En udfordring, jeg ved et uheld tvang til mig selv, var at forsøge at finde på en ramme, der ville fylde området omkring skærmen op til kanterne af beholderen. Desværre har måden displayet er lavet på, det har heller ikke noget nyttigt i sit design (som huller eller noget) for at hjælpe med at montere det, så rammen måtte også holde skærmen på plads. Mit første forsøg (set her) var en blanding af plast og skum. Jeg endte til sidst med at gentage dette flere gange, og det endte med at være en af de mere udfordrende dele af bygningen. Forværret af de små tolerancer og sarte karakter af både rammen og skærmen.
Trin 8: Batteritest
![Batteritest Batteritest](https://i.howwhatproduce.com/images/005/image-14847-19-j.webp)
![Batteritest Batteritest](https://i.howwhatproduce.com/images/005/image-14847-20-j.webp)
![Batteritest Batteritest](https://i.howwhatproduce.com/images/005/image-14847-21-j.webp)
På dette tidspunkt vendte jeg mig om, hvordan jeg får dette til at køre uafhængigt af en USB -tilslutning. Jeg testede forskellige batterier og fandt ud af, at Raspberry Pi + displayet faktisk ikke trak så meget strøm, og det var fuldstændig glad for at køre på selv en af mine mindre batteripakker (en freebie fra en messe). Dette var virkelig heldigt, da pakken passede perfekt ind i et hul inde i bygningen (fotos senere). Nu kan vi midlertidigt tape de vigtigste kropskomponenter sammen og få vores første testkørsel af det tændt på min arm!
Trin 9: Test af pasform
![Test af pasform Test af pasform](https://i.howwhatproduce.com/images/005/image-14847-22-j.webp)
![Test af pasform Test af pasform](https://i.howwhatproduce.com/images/005/image-14847-23-j.webp)
![Test af pasform Test af pasform](https://i.howwhatproduce.com/images/005/image-14847-24-j.webp)
Her kan du se, hvor jeg har ændret kernerøret yderligere for at give adgang til undersiden af komponenterne. Du kan også se, hvordan jeg var heldig med batteriet, der pænt passede i et hulrum til den ene side af Pi -beholderen. Endelig startede processen med at rydde op i bindinger, fylde, slibe og lavede et testlag med primer for at få en fornemmelse af det færdige look (jeg vidste på dette tidspunkt, at jeg ville slibe dette mange flere gange, og næsten alt det primer ville gå, men jeg ville gerne have en fornemmelse af, hvordan det ville se ud).
Trin 10: Tilføj kontrolelementer og detaljer
![Tilføj kontrolelementer og detaljer Tilføj kontrolelementer og detaljer](https://i.howwhatproduce.com/images/005/image-14847-25-j.webp)
![Tilføj kontrolelementer og detaljer Tilføj kontrolelementer og detaljer](https://i.howwhatproduce.com/images/005/image-14847-26-j.webp)
![Tilføj kontrolelementer og detaljer Tilføj kontrolelementer og detaljer](https://i.howwhatproduce.com/images/005/image-14847-27-j.webp)
Jeg ville have en række røde/gule/grønne lysdioder til at danne en måler samt en drejeknap og mindst 2 trykknapper. Disse blev alle monteret på kontrolpanelets sektion - simpelthen et tilfælde af at bore alle de rigtige huller. Jeg begyndte også at tilføje små bidder af skrotplastkomponenter (dybest set kit bashing) for at tilføje detaljer og mere interesse for kroppen og kontrolpanelet.
Trin 11: Ombygning af ramme nr. 3
![Bezel Rebuild nr.3 Bezel Rebuild nr.3](https://i.howwhatproduce.com/images/005/image-14847-28-j.webp)
![Bezel Rebuild nr.3 Bezel Rebuild nr.3](https://i.howwhatproduce.com/images/005/image-14847-29-j.webp)
![Bezel Rebuild nr.3 Bezel Rebuild nr.3](https://i.howwhatproduce.com/images/005/image-14847-30-j.webp)
Som jeg nævnte tidligere, kæmpede jeg med rammen til denne build og genopbyggede den flere gange. Dette er den tredje iteration, som jeg holdt fast i. Min tilgang her til at bruge hardboard og skære 2 forskellige former, den ene tænker end den anden og derefter limet (og spændt) dem sammen for at danne det midterste billede. Disse former tillod det firkantede display at sidde inde i dette, og derefter holdt det displayet på plads inde i beholderen (som på billede 3). Dette gav mig lige nok materiale til at bruge 4 meget små skruer som armaturer - som jeg brugte til at fastgøre dette godt på plads inde i kabinettet, og det ville igen holde skærmen stabil og sikker. I eftertid ville jeg finde et display, der fulgte med nogle anstændige monteringsmuligheder (eller bruge en 3D -printer - som jeg ikke havde på det tidspunkt).
Trin 12: Prototyping af elektronikken
![Prototyper elektronikken Prototyper elektronikken](https://i.howwhatproduce.com/images/005/image-14847-31-j.webp)
![Prototyper elektronikken Prototyper elektronikken](https://i.howwhatproduce.com/images/005/image-14847-32-j.webp)
Jeg bruger et brødbræt til at oprette mine enkle kredsløb sådan her, og da jeg ofte laver denne del af projektet i et andet rum end hovedkroppens konstruktion, parrede jeg det også med et andet Raspberry PI. Her brugte jeg en model 3, som gav mig lidt mere kraft til faktisk at oprette forbindelse direkte til den og køre en IDE ombord. Dette gjorde bare hurtig kodeprototyping lidt lettere for mig. Der er masser af andre måder at eksternt forbinde/kode/debugge, det er bare det, jeg foretrak at gøre her.
Designet her er temmelig ligetil, vi har;
- Rotary encoder - denne bruger en jord og en masse GPIO -ben til at håndtere klikretningen og trykknappen.
- Et par trykknapper, disse bruger simpelthen en enkelt GPIO -pin hver og en fælles grund
- 3 lysdioder, hver med inline modstandsdygtighed for at stoppe dem med at poppe, alle går til en fælles grund, men med en individuel GPIO pin hver, så hver kan adresseres individuelt.
Dette gav mig 3 LED'er til min måler, en roterende encoder til at rotere gennem skærmene på pipboyen og 3 trykknapper til at drive handlinger (en på den roterende encoder og 2 separat kablet). Dette var omtrent alt, hvad jeg kunne passe, og da skærmen optog en masse pins, forbruger stort set det, du har på et standard Pi GPIO -layout. Men det var fint til mine formål.
Det andet billede viser stort set det endelige interne layout, jeg gik med. Jeg brugte noget tid her på at afprøve måder at køre komponenterne på og kontrollere, at det hele fungerede, før jeg transponerede dette i bygningens krop. Al koden er i github.
En note om roterende encodere. Jeg brugte en masse tid på at skrive min egen Rotary Encoder -tilstandsmaskine til at spore GPIO's høje/lave ændringer og kortlægge disse til roterende positioner. Jeg havde blandet succes her, jeg fik det til at fungere i "de fleste" sager, men der er altid kantsager og (de) hoppende osv. At håndtere. Det er langt, meget lettere at bruge et færdigt bibliotek, og der er et godt bibliotek til disse, der kan installeres til Python. Jeg brugte det til sidst, da det gav mig mulighed for at fokusere på den sjove del af bygningen, frem for at bruge aldre på fejlfinding af problemer. Alle detaljer om dette er inkluderet i kildekoden.
Hvis du er ny inden for Raspberry Pi, GPIO og elektronik, anbefaler jeg stærkt følgende selvstudier, der guider dig igennem alt hvad du har brug for for at lave ovenstående layout;
projects.raspberrypi.org/en/projects/physi…
thepihut.com/blogs/raspberry-pi-tutorials/…
Trin 13: Transponering af elektronikken i kroppen
![Transponering af elektronikken i kroppen Transponering af elektronikken i kroppen](https://i.howwhatproduce.com/images/005/image-14847-33-j.webp)
![Transponering af elektronikken i kroppen Transponering af elektronikken i kroppen](https://i.howwhatproduce.com/images/005/image-14847-34-j.webp)
![Transponering af elektronikken i kroppen Transponering af elektronikken i kroppen](https://i.howwhatproduce.com/images/005/image-14847-35-j.webp)
Efter at jeg havde afsluttet layoutet ved hjælp af et brødbræt, var det tid til at begynde at tænke på, hvordan man monterede dem i pipboyens krop. Jeg besluttede, at jeg ville gøre det, så jeg kunne demontere og fjerne alle de elektroniske komponenter, hvis jeg skulle reparere eller ændre noget i fremtiden. For at opnå dette besluttede jeg mig for at gøre alle delene plug-kompatible ved hjælp af dupont-stik.
For knapperne lodde jeg på nogle forlængerledninger og brugte wirewrap til at isolere enderne, dette tillod mig at samle og adskille disse fra kroppen (f.eks. Til test, derefter maling osv.). Rotary Encoder havde allerede stifter, der kunne acceptere dupont -stik, så jeg skulle bare lave nogle ledninger i den rigtige længde.
Lysdioderne tog lidt mere arbejde - til dette besluttede jeg at bruge en smule skrotplastik, jeg havde (skåret til at passe) til at lave et aftageligt panel til at montere lysdioderne i. Derefter varmlimede jeg dem på plads og lodde modstanderne og ledningerne. Dette gjorde en fjernelsesenhed, som jeg kunne montere og fjerne, og gjorde maling og efterbehandling lettere.
Bemærk, at min lodning er forfærdelig, så jeg holdt dette simpelt og undgik alt for detaljeret/fint. I det sidste billede kan du se, at jeg også havde nogle meget små bredbrætter (5x5), jeg brugte en af disse monteret indvendigt til at give et panel til at forbinde alt til/fra GPIO. Dette var især nyttigt til at oprette en fælles jordskinne, som jeg kunne bruge og undgå at have masser af jordledninger, der slang tilbage til Pi.
Jeg skar derefter forskellige huller i beholderen for at føre ledningerne igennem til Pi og forbinde op til GPIO. Dette design tillod mig at afslutte alt, hvis jeg havde brug for det (noget jeg gjorde flere gange, mens jeg var ved at færdiggøre byggeriet).
Trin 14: Finjuster pasformen
![Finjustering af pasformen Finjustering af pasformen](https://i.howwhatproduce.com/images/005/image-14847-36-j.webp)
![Finjustering af pasformen Finjustering af pasformen](https://i.howwhatproduce.com/images/005/image-14847-37-j.webp)
På dette tidspunkt stødte jeg på nogle "fit" -problemer. For det første betød brugen af dupont -stik til ledningerne, at det var svært at få dem til at passe på stifterne med displayhatten på plads, da der ikke var nok højdehøjde. Jeg løste dette ved at købe (dette er en af de få ting, jeg faktisk købte til dette projekt) en lille GPIO -pinforlænger, så jeg kunne få displayhatten til at sidde højere og give plads til at få adgang til de resterende GPIO -ben ved hjælp af dupont -stik.
Jeg skar også nogle små stykker skumgulvmåtte op for at lave noget sidepolstring inde i beholderen, dette hjalp med at sætte Pi + Displayet på det rigtige sted og stoppe det med at bevæge sig rundt.
Trin 15: Retro op Rotary Encoder
![Retro op på roterende encoder Retro op på roterende encoder](https://i.howwhatproduce.com/images/005/image-14847-38-j.webp)
Rotary encoders kommer ofte (som min gjorde) med en flot skinnende moderne "hi fi" -knap. Dette var helt ude af karakter for bygningen, så jeg måtte finde på noget andet. I min tilfældige æske med dele stødte jeg på en gammel tandhjul fra en boremaskine, jeg brød for længe siden. Dette så godt ud, men passede ikke til den roterende encoder. Min løsning her var at prøve forskellige vægpropper, indtil jeg fandt en, der passede til drejeknappen, og derefter skære den i form, så jeg kunne bruge den som en "indre krave" til at sætte boretand på roterende encoder som et mere passende tema styring.
Trin 16: Indvendig foring
![Indvendig foring Indvendig foring](https://i.howwhatproduce.com/images/005/image-14847-39-j.webp)
![Indvendig foring Indvendig foring](https://i.howwhatproduce.com/images/005/image-14847-40-j.webp)
Flere skumgulvfliser! Denne gang brugte jeg dem til at bygge en blød foring for at gøre den mere behagelig at passe (uden at den er for løs). Ved at skære et hul ud af skummet var jeg også i stand til at absorbere noget af den "klump", som beholderen til Pi laver. Samlet set gjorde dette det meget mere bærbart. Ikke vist på disse fotos, men jeg gjorde det lidt større end hoveddelen, så det var synligt i enderne, som jeg senere malede, og det hele var med til at tilføre lidt kontrast og interesse til det færdige element.
Trin 17: Tilføjelse af detaljer
![Tilføjelse af detaljer Tilføjelse af detaljer](https://i.howwhatproduce.com/images/005/image-14847-41-j.webp)
![Tilføjelse af detaljer Tilføjelse af detaljer](https://i.howwhatproduce.com/images/005/image-14847-42-j.webp)
Tid til at begynde at tilføje noget dekoration og gøre det mere interessant. Først og fremmest tilføjede jeg nogle skrotstrimler af plast langs det ene ansigt for at give det lidt visuel interesse. Derefter tilføjede jeg nogle falske ledninger til nogle terminaler og skubbede dem bare ned i et hul, jeg borede i kroppen. Alt dette blev senere malet i forskellige farver.
Trin 18: Maling og efterbehandling Body Build
![Maling og efterbehandling Body Build Maling og efterbehandling Body Build](https://i.howwhatproduce.com/images/005/image-14847-43-j.webp)
![Maling og efterbehandling Body Build Maling og efterbehandling Body Build](https://i.howwhatproduce.com/images/005/image-14847-44-j.webp)
![Maling og efterbehandling Body Build Maling og efterbehandling Body Build](https://i.howwhatproduce.com/images/005/image-14847-45-j.webp)
Jeg var ikke så bekymret over en uberørt finish - som formodet at være gammel og godt brugt alligevel (faktisk kan jeg komme tilbage og gøre endnu mere forvitring på det på et tidspunkt). Men jeg ville have, at det skulle ligne et konsistent og komplet objekt, der ikke blev humpet sammen fra tilfældigt uønsket (selvom det var præcis, hvad det var). Jeg gennemgik mange gentagelser af slibning, påfyldning (milliput er mit valgfri fyldstof til plast) og gentag. Derefter flere lag primer og maling for yderligere at hjælpe med at glatte alle sammenføjninger. Så mere slibning og mere fyldning og mere maling.
Da jeg havde et udseende og en fornemmelse af den krop, jeg var tilfreds med, begyndte jeg at tilføje nogle detaljer. Jeg brugte rub and buff på grillene på betjeningselementerne for at give dem en mere trådnettet fornemmelse. Jeg tilføjede også små detaljer om maling hist og her ved hjælp af akryl.
Jeg gravede ind i min samling af tilfældige klistermærker og tilføjede et par stykker for at afslutte effekten. Derefter vaskede jeg en forvitring med nogle blandede malinger for at tilføre snavs og snavs til de områder, der var svært tilgængelige, og som ville være vanskelige at rengøre. Dette er måske lidt for subtilt i øjeblikket, og jeg kan komme tilbage og tilføje nogle flere senere.
Trin 19: Kodning
![Kodning Kodning](https://i.howwhatproduce.com/images/005/image-14847-46-j.webp)
En del af min ambition for dette projekt var at få det til at reagere som en egentlig pipboy - og for mig er den mest ikoniske del af det in -game at dreje skiven til at vende mellem forskellige skærme. For at opnå dette besluttede jeg at skrive en pipboy -brugergrænseflade, der kunne vise en række skærme og give dig mulighed for at rulle mellem dem. Jeg ville gøre indholdet på skærmene til noget, som jeg let kunne ændre, og faktisk kunne tilføje/fjerne skærme.
Jeg vælger at skrive dette i Python på grund af den fremragende støtte til Raspberry Pi, GPIO osv. Python er temmelig lavt på min liste over sprog, jeg kender, så dette var en stor læringskurve for mig, og meget af koden er rodet som følge heraf. Jeg opdaterer dette over tid, da jeg ikke helt har afsluttet alt, hvad jeg ville gøre her - men det er tæt nok til at dele nu, da alle hovedkoncepterne er der.
Mit design til UI -koden er rimeligt ligetil, der er et hoved Python -script, der opsætter displayet, konfigurerer GPIO, indlæser skærmene og går ind i en uendelig opdateringssløjfe, venter på brugerhændelser og opdaterer displayet efter behov. Derudover er der forskellige support scripts, der hjælper med at generere UI -skærmene på forhånd.
Hovedbiblioteker brugt:
- pygame: Jeg bruger dette som motor til at køre brugergrænsefladen, da det tillod mig at tegne vilkårlig grafik, manipulere billeder, skrifttyper, gå i fuld skærm osv.
- pyky040: Dette giver håndtering af drejeknappen og sparede mig meget tid (mange tak til Raphael Yancey for at have frigivet dette.
- RPi. GPIO: Til godt GPIO -kørsel legede jeg rundt med et par muligheder her, men dette gav mig det rigtige fleksibilitetsniveau, jeg ønskede, især med ting som at bruge en ekstra GPIO som en anden 3.3v til at køre roterende encoder osv.
- støj: Til generering af perlinstøj, for at give mig mulighed for at oprette en tilfældig bølgeform til radioskærmen, der ser mere naturlig ud
- kø: Jeg stødte på en frustrerende fejl med timing af begivenheder fra roterende encoder, der blev drejet og (meget) langsom opdateringshastighed på LCD -displayet. I sidste ende den måde, jeg løste dette på, var at stå i kø for indgående hændelser fra den roterende encoder og vælge dem en ad gangen, mens skærmen opdateres.
- os, sys, threading, time: alt bruges til standard python -funktioner
En note om design af skærmhåndtering. Skærme er defineret som en liste med navne i koden. Hver post på listen kan enten have en png- eller en txt -fil (eller begge) tilknyttet den, koden bygger en cache for hver skærm efter at have ledt efter filer i linux -biblioteksstrukturen, der er knyttet til koden.
Indholdet af disse filer genereres andre steder (i hånden eller ved andre scripts), hvis output gemmes som png- eller txt -filer, som pipboy -brugergrænsefladen derefter kan indlæses som en skærm, der skal vises. Dette holder hoved "opdaterings" -sløjfen relativt ren og enkel, men giver mig også fleksibiliteten til at opdatere eller ændre indholdet på skærmene med nye data, når jeg finder det passende.
Der er mærkelige undtagelser, hvor et par ting er kodet - f.eks. Bølgeformen for den tilfældige radioskærm, da den er beregnet i realtid og animeret.
Hvis en analogi hjælper, skal du tænke på UI -designet som en ekstremt rå og enkel webbrowser - hver "skærm" er som en virkelig enkel webside, der kun kan bestå af en png, en txt -fil eller en kombination af de to. Indholdet i dem er uafhængigt og tegnes bare af brugergrænsefladen, ligesom en browser ville tegne en webside.
Her er links til de vigtigste biblioteker, jeg brugte her:
www.pygame.org/news
pypi.org/project/pyky040/
pypi.org/project/noise/
Trin 20: Skærm med statistik
![Statistik skærm Statistik skærm](https://i.howwhatproduce.com/images/005/image-14847-47-j.webp)
Ingen pipboy ville være komplet uden den klassiske pipboy silhuet statistik skærm. Til dette skabte en af mine venner en statisk PNG, som jeg bare viser som en pladsholder. På et senere tidspunkt kan jeg komme tilbage og gøre dette mere dynamisk med en vis tilfældig skaderepræsentation eller lignende, men i øjeblikket er det en statisk skærm.
Trin 21: Beholdningsskærm
![Lagerskærm Lagerskærm](https://i.howwhatproduce.com/images/005/image-14847-48-j.webp)
Noget, der altid er nyttigt med Pi -projekter, er at have en måde at vise grundlæggende oplysninger som IP -adressen, dens DHCP'd osv. Jeg besluttede at overbelaste lagerskærmen som en visning af Pi "beholdningen" - hvilken CPU, hukommelse, IP -adresse osv.. Jeg skrev et lille Linux -script for at indsamle disse oplysninger og bare omdirigere det til en passende navngivet tekstfil (.txt), som UI -systemet derefter samler op og viser. På denne måde, hvis jeg nogensinde er et andet sted, kan jeg starte scriptet og hente en frisk.txt -fil med den opdaterede IP -adresse osv.
Trin 22: Kortskærm
![Kortskærm Kortskærm](https://i.howwhatproduce.com/images/005/image-14847-49-j.webp)
Denne skærm var en af de mere komplekse skærme at arbejde på. Raspberry Pi 0 kommer ikke med et GPS -modul, men jeg ønskede at få kortet til at have en vis gyldighed for, hvor Pi var. Min løsning på dette er et separat script, der trækker Pi IP -adressen, bruger https://ipinfo.io til at slå en omtrentlig placering op. JSON-svaret fanges, og derefter konverterer jeg koordinaterne, så jeg kan trække en openstreetmap.org-flise ned for den omtrentlige placering.
Fliserne kommer ned i flere farver, men jeg ville have et billede i grøn skala, der matchede udseendet og følelsen af Pipboy, og jeg kunne ikke finde en sådan, så jeg skrev et filter i grøn skala i Python for at lave om på farverne af openstreetmap -flisen, og gem derefter det nye billede i en-p.webp
Under ovenstående proces genereres en tekstfil med den omtrentlige placering og koordinater, og kortflisen oprettes som en png. Pipboy -brugergrænsefladen trækker begge disse filer op og overlejrer indholdet for at oprette en kortskærm, der fungerer (inden for nøjagtigheden af IP -adresseopløsningen til et sted).
Trin 23: Dataskærm
![Dataskærm Dataskærm](https://i.howwhatproduce.com/images/005/image-14847-50-j.webp)
Dette er bare et testkort (genereret af et andet python -script og output til en-p.webp
Trin 24: Radioskærm
![Radio skærm Radio skærm](https://i.howwhatproduce.com/images/005/image-14847-51-j.webp)
Sammen med kortskærmen er dette den anden skærm, der virkelig forårsagede mig meget arbejde. Dette er den eneste skærm, hvor jeg legede med animation - og det fungerer for det meste efter hensigten, men ydelse er stadig et problem med LCD -skærmens opdateringshastigheder. Skærmens struktur er en tekstfil, der indeholder nogle tilfældigt valgte radionavne (disse er bare vilkårlige strenge og gør ikke andet end at præsentere en liste på skærmen), en-p.webp
Dette er den eneste skærm, hvor pygamesløjfen udfører noget rigtigt arbejde som hver cyklus, den skal beregne den nye bølgeform, slette den del af skærmen, der lever i og tegne om.
Trin 25: Endelige tanker
![Image Image](https://i.howwhatproduce.com/images/005/image-14847-53-j.webp)
![](https://i.ytimg.com/vi/1G6WgZN5G1I/hqdefault.jpg)
![Endelige tanker Endelige tanker](https://i.howwhatproduce.com/images/005/image-14847-54-j.webp)
Dette er muligvis det mest udfordrende byggeri, jeg har foretaget, med mange forskellige koncepter og færdigheder, der er påkrævet, men det er også en af de mest behagelige med virkelige ting, der fungerer som et resultat. Jeg er stadig i gang med at rydde op i nogle af mine mere tekniske noter samt github -repoen til koden. Alt det vil jeg snart stille til rådighed, så kom snart tilbage igen for flere detaljer og info, da jeg får tid til at tilføje dem til opskrivningen.
Hvis du får lyst til at gøre sådan noget, vil jeg meget gerne se resultaterne, og hvis du har spørgsmål, er du velkommen til at kontakte os, og jeg vil bestræbe mig på at tilføje mere information i alle trin, hvor du vil hjælpe.
Trin 26: Kodeåben på Github
![Kode Åben på Github Kode Åben på Github](https://i.howwhatproduce.com/images/005/image-14847-55-j.webp)
Jeg kom endelig til at åbne koden på Github. Den er tilgængelig på dette link:
Anbefalede:
Hjemmelavet RC Cessna Skyhawk Plane LET BYGGET: 7 trin (med billeder)
![Hjemmelavet RC Cessna Skyhawk Plane LET BYGGET: 7 trin (med billeder) Hjemmelavet RC Cessna Skyhawk Plane LET BYGGET: 7 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-2515-j.webp)
Hjemmelavet RC Cessna Skyhawk Plane EASY BUILD: Lige siden jeg var barn, var jeg som alle andre børn fascineret af RC -fly, men kunne aldrig købe dem eller lave dem, da de var meget dyre eller svære at bygge, men de dage er bagud nu og Jeg vil dele, hvordan jeg lavede mit første RC -fly (jeg
Dokumentmappe -pc Bygget af en kvinde .: 14 trin (med billeder)
![Dokumentmappe -pc Bygget af en kvinde .: 14 trin (med billeder) Dokumentmappe -pc Bygget af en kvinde .: 14 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-112-16-j.webp)
Kuffert -pc Bygget af en kvinde .: TRIN 1: Skriv ned de materialer, der skal bruges: Balsa træ 3”skærmskærm AMD RYZEN 5 3500X 3.6GHZ 35MB AMD CPU (6C/6T) GIGABYTE B550 AORUS PRO A WIFI AM4 ATX DDR4 CORSAIR VENGEANCE LPX3600416GB (2X8GB) KIT CL18 DDR4 (RYZEN) ADATA XPG SX8200 2TB PRO 2 P
Objektsporingskamera -skyder med rotationsakse. 3D -printet og bygget på RoboClaw DC Motor Controller & Arduino: 5 trin (med billeder)
![Objektsporingskamera -skyder med rotationsakse. 3D -printet og bygget på RoboClaw DC Motor Controller & Arduino: 5 trin (med billeder) Objektsporingskamera -skyder med rotationsakse. 3D -printet og bygget på RoboClaw DC Motor Controller & Arduino: 5 trin (med billeder)](https://i.howwhatproduce.com/images/010/image-29875-j.webp)
Objektsporingskamera -skyder med rotationsakse. 3D-printet og bygget på RoboClaw DC Motor Controller & Arduino: Dette projekt har været et af mine yndlingsprojekter, siden jeg kom til at kombinere min interesse for videofremstilling med DIY. Jeg har altid set på og ønsket at efterligne de filmiske optagelser i film, hvor et kamera bevæger sig hen over en skærm, mens det panorerer for at spore det
Paphøjttaler fra skrot !: 5 trin (med billeder)
![Paphøjttaler fra skrot !: 5 trin (med billeder) Paphøjttaler fra skrot !: 5 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-596-36-j.webp)
Kartonhøjttaler fra skrot !: Denne instruktør er en lille vejledning i, hvordan man opretter en robust og stærk bærbar højttaler, der genbruges af gammelt pap.Når vi hører ordet pap, tænker vi generelt på en papkasse, og efter alles mening er en ardboard æske ikke så stærk
Bærbar Bluetooth -højttaler lavet af skrot: 9 trin (med billeder)
![Bærbar Bluetooth -højttaler lavet af skrot: 9 trin (med billeder) Bærbar Bluetooth -højttaler lavet af skrot: 9 trin (med billeder)](https://i.howwhatproduce.com/images/001/image-576-78-j.webp)
Bærbar Bluetooth -højttaler fremstillet af skrot: Hej alle sammen, det er længe siden, jeg sidst har postet her, så jeg tænkte, at jeg ville offentliggøre mit nuværende projekt. Tidligere lavede jeg få bærbare højttalere, men de fleste af dem var lavet af plast/akryl, da det er let at arbejde med og ikke kræver