
Բովանդակություն:
- Պարագաներ
- Քայլ 1. Կառուցեք կծու տղայի սիրտը
- Քայլ 2: Ստվարաթղթե նախատիպ
- Քայլ 3. Նախատիպից մինչև Կաղապար
- Քայլ 4: Ավելացրեք պատյան էկրանի և Pi- ի համար
- Քայլ 5: Կրկնեք կառավարման վահանակի համար
- Քայլ 6: Կտրեք խողովակը
- Քայլ 7: Շրջանակ
- Քայլ 8: Մարտկոցի փորձարկում
- Քայլ 9: Պիտանիության փորձարկում
- Քայլ 10: Ավելացրեք վերահսկողություն և մանրամասնեցում
- Քայլ 11. Bezel Rebuild No. 3
- Քայլ 12. Էլեկտրոնիկայի նախատիպը
- Քայլ 13: Էլեկտրոնիկայի տեղափոխում մարմնի մեջ
- Քայլ 14: Հարմարեցման լավ կարգավորում
- Քայլ 15. Retro Up the Rotary Encoder
- Քայլ 16: Ներքին երեսպատում
- Քայլ 17: Մանրամասների ավելացում
- Քայլ 18. Ներկել և ավարտել մարմնի կառուցվածքը
- Քայլ 19: Կոդավորում
- Քայլ 20: Վիճակագրության էկրան
- Քայլ 21. Գույքագրման էկրան
- Քայլ 22: Քարտեզի էկրան
- Քայլ 23. Տվյալների էկրան
- Քայլ 24. Ռադիոյի էկրան
- Քայլ 25. Վերջնական մտքեր
- Քայլ 26. Բաց կոդ Github- ում
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48



Սա իմ աշխատանքային Pipboy- ն է, որը կառուցվել է ավտոտնակից պատահական աղբից և իմ էլեկտրոնային բաղադրիչների պահեստի արշավանքից: Ես գտա այս բարդ կառուցվածքը և ինձանից պահանջվեց մի քանի ամիս աշխատանք, այնպես որ ես դա չէի դասակարգի որպես սկսնակների ամբողջական նախագիծ: Անհրաժեշտ հմտությունները ներառում են պլաստիկի և փայտի աշխատանք, էլեկտրոնիկա և կոդավորում: Մարմինը կառուցված է պլաստմասսայի ջարդոնի տարբեր կտորներից, որոնք կտրված և եռակցված են միասին: Ես որպես միկրոհսկիչ օգտագործեցի Raspberry Pi 0 ՝ ցուցադրման վերնագրով, որը տեղադրված էր GPIO կապում: Մնացած կապումներն օգտագործվում են LED- ները վարելու և կոճակները/կառավարման տարրերը միացնելու համար: Thրագիրը ավարտին հասցնելու համար ես Python- ում գրել եմ «Pipboy» ոճի ինտերֆեյս որոշ ցուցադրական էկրաններով:
Նախագծի իմ նպատակներն էին.
- Պետք է աշխատեր, այսինքն ՝ անհրաժեշտ էր իրականում ունենալ այնպիսի նյութ, որը կատարում էր իրերը
- Ես ուզում էի, որ այն ունենար «հավաքիչ» ՝ տարբեր էկրաններ ընտրելու համար, քանի որ այն միշտ առանձնանում էր ինձ համար որպես Fallout- ի UI- ի խորհրդանշական մաս:
- Ամբողջ շինությունը պետք է ավարտվեր ՝ օգտագործելով ավտոտնակում կամ իմ գրասենյակում եղած իրերը (դա ամբողջովին չէր ստացվել, բայց ես մոտենում էի - դրա 90% -ից ավելին գտնվել են իրեր կամ իրեր, որոնք արդեն կողքիս դրել եմ)
- Անհրաժեշտ է կրել
Իմ նպատակը մեկն էր ՝ դա դարձնել խաղի մոդելներից մեկի ճշգրիտ կրկնօրինակը. Ես նախընտրում եմ իրեր կառուցել «իրի ոճով», քանի որ դա ինձ հնարավորություն է տալիս հարմարեցնել իմ գտած պատահական աղբը և թույլ տվեք մի փոքր ավելի ստեղծագործական լինել: Ի վերջո, այո, ես գիտեմ, որ դուք կարող եք դրանք գնել, բայց դա էլ իմաստը չէր;)
Պարագաներ
Պարագաներ
- Լայն անցք ունեցող խողովակ (օրինակ ՝ ջրահեռացման խողովակի մի կտոր)
- Պլաստմասսա (ինչպես մարմինը ստեղծելու, այնպես էլ դեկորատիվ նպատակներով)
- Փոքր տարա
- Փրփուր հատակ
- Ազնվամորի Պի
- 3.5 "էկրան
- KY040 Պտտվող կոդավորիչ
- 3x լուսադիոդներ
- 2 անգամ սեղմիչ կոճակներ
- Powerbank
- Հաղորդալարեր
- Պտուտակներ, սոսինձներ, ներկեր, լցոնիչ և այլն
Գործիքներ
- Դրեմել
- Բազմաֆունկցիոնալ գործիք ՝ կտրող և հղկող կցորդներով
- Գայլիկոն
- Ֆայլեր
- Sոդման երկաթ
- Տաք սոսինձ ատրճանակ
- Պտուտակահան (ներ)
- Սուր դանակ
- Տեսավ
Քայլ 1. Կառուցեք կծու տղայի սիրտը

Առաջին բանը, որ ես պետք է անեի, դա ապահովելն էր, որ ես կարողանայի ունենալ դիսփլեյ և միկրոհսկիչ այն ձևի գործոնով, որի հետ կարող էի աշխատել: Ինձ պատահեց 3.5 դյույմանոց էկրան, որը նստած էր որպես գլխարկ ՝ Raspberry PI- ի GPIO կապումներին, ուստի որոշեցի օգտագործել այն: Ես այն զուգորդեցի Raspberry Pi 0 -ի հետ և համոզվեցի, որ այն լավ է աշխատում, կան մի քանի քայլ ՝ Linux- ը ճանաչելու համար այն էկրանը, որով պետք է անցնել:
Ինչպես կարող եք տեսնել երկրորդ նկարում, ես ավելացրեցի մի փոքրիկ ստվարաթղթե/փրփուր հարթակ, որը սոսնձեցի պատյանին, որպեսզի աջակցեմ էկրանին: Ես դա արեցի, քանի որ գիտեի, որ շատ կզբաղվեմ այս հատվածով և չէի ցանկանում կոտրել կապում կամ ցուցադրումը աջակցության բացակայության պատճառով: Ի վերջո, սա փոխարինվեց, բայց դա լավ հավելյալ պաշտպանություն էր շինարարության ընթացքում:
Այս պահին նույնպես արժե նշել, որ հետագայում կառուցման ընթացքում ես բախվեցի այս կարգավորման կատարողականի հետ կապված խնդիրների հետ. Հիմնականում Pi- ի և ցուցադրման միջերեսի ինտերֆեյսի թարմացման արագությունը, ես դրան ավելի ուշ կանդրադառնամ, բայց եթե ես դա նորից արեցի, ես կարող եմ այստեղ տարբեր սարքավորումներ համարել:
Ահա դրա համար մի քանի օգտակար հղումներ.
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…
Ես դրա հետ կապված github- ում կներառեմ նաև որոշ նշումներ այն մասին, թե ինչ եմ ես իրականում արել այս աշխատանքը (թեև թեմայի իմ ընթերցումից շատ փոփոխականություններ կան, թե ինչպես է դա աշխատում կոնկրետ օրինակների/վարորդների համար, այնպես որ ձեր խափանումը կարող է տարբեր լինել):
Քայլ 2: Ստվարաթղթե նախատիպ



Ես գտա մի հին փորվածք/խողովակ, որը ես կարող էի օգտագործել մարմնի համար, բայց ես պետք է նախագիծ մշակեի էկրանի իրական տարածքի և կառավարման վահանակի համար: Դրա համար ես պարզապես պատրաստեցի ստվարաթղթե ծաղրեր և օգտագործեցի դիմակավոր ժապավեն `դրանք խողովակին ամրացնելու համար: Առաջինը պարզ «տուփ» էր, բայց այն չափազանց պարզ էր թվում, ուստի այն փոփոխեցի, որպեսզի էկրանի տարածքն ավելի հետաքրքիր լինի և ավելացրեցի կառավարման վահանակի առանձին տարածք: Սա քիչ թե շատ դարձավ վերջնական դիզայնը (ինչպես կտեսնեք մի քանի փոփոխություններ եղան, բայց դրանք փակվեցին):
Քայլ 3. Նախատիպից մինչև Կաղապար



Այժմ ես ունեի մի նախատիպ, որից ես գոհ էի, կարող էի հարթեցնել ստվարաթուղթը և այն վերածել ձևանմուշի, որը այնուհետև տեղափոխեցի հին համակարգչի հին պատյանների մի մասի վրա, որի շուրջը հարվածում էի: Similarանկացած նմանատիպ կոշտ պլաստիկ կաշխատի, ես պարզապես օգտագործում էի աղբը, որը պետք է հանձնեի: Նշվելուց հետո ես կարողացա կտրել կտորները, որպեսզի սկսեմ հավաքել հիմնական մարմինը: Օգտակար հուշում այստեղ, որպեսզի ավելի դյուրին լինի պլաստիկի գծանշումը և հետագայում կտրելը, ես ծածկեցի այն տարածքները, որոնք պետք է կտրեի նախ դիմակավոր ժապավենով, ինչը երկուսն էլ ինձ ավելի հեշտ միջոց տվեց կաղապարը պլաստիկի վրա գծելու համար, և ինչ -որ բան, որն օգնում է կանգնեցնել կտրող սկավառակի սայթաքումը, երբ ես առաջին կտրվածքներն էի կատարում:
Քայլ 4: Ավելացրեք պատյան էկրանի և Pi- ի համար


Ես ուզում էի, որ էկրանի տարածքի անկյունները թեքվեին, և ինձ պետք էր ինչ -որ բան, որ իրականում պահեր Pi- ն և ցուցադրվեր. Իմ լուծումը եղած փոքրիկ պլաստիկ տարայի օգտագործումն էր: Ես մարմնի վերևից մի փոս կտրեցի և սոսնձեցի տարան դրա միջով: Հետո ես սոսնձեցի բոլոր կողմերը միասին: Ես այստեղ սոսինձ օգտագործեցի առատ խմորի սոդայով, որն օգնում էր ամրացնել եռակցումները: Հետագայում ես լրացրեցի և գրանցեցի/հղկեցի ամեն ինչ `ամեն ինչ կարգի բերելու և ավելի« կաղապարված »զգացում հաղորդելու համար:
Քայլ 5: Կրկնեք կառավարման վահանակի համար



Հաջորդը, ես կատարեցի նույն ձևանմուշը ՝ փոխարկելով, կտրելով և սոսնձելով ՝ կառավարման վահանակի պատյան կառուցելու համար:
Քայլ 6: Կտրեք խողովակը

Ինչպես տեսնում եք, այն տարան, որը ես պլանավորում եմ օգտագործել հիմնական էլեկտրոնային բաղադրիչների տեղադրման համար, այժմ հպարտորեն նստած է սև պլաստիկ շրջապատի ներսում, սա նշանակում է, որ ես պետք է խողովակի մեջ բացվածք բացեմ, որպեսզի այն տեղավորվի: Ես նորից դիմակավոր ժապավենով շարեցի այն տեղը, որտեղ ուզում էի կտրել, և կտրեցի խողովակի քառակուսին, որպեսզի մասերը տեղավորվեն:
Քայլ 7: Շրջանակ


Մի մարտահրավեր, որը ես պատահաբար պարտադրեցի ինքս ինձ, փորձում էի գտնել մի եզր, որը կլրացներ ցուցադրման շուրջը մինչև տարայի ծայրերը: Unfortunatelyավոք, էկրանի ձևի ձևի դեպքում այն ոչ մի օգտակար բան չունի իր ձևավորման մեջ (ինչպես անցքեր կամ որևէ այլ բան), որը կարող է օգնել այն ամրացնելուն, այնպես որ շրջանակը նույնպես ստիպված էր էկրանը պահել իր տեղում: Իմ առաջին փորձը (տես այստեղ) պլաստիկի և փրփուրի խառնուրդ էր: Ի վերջո, ես դա մի քանի անգամ կրկնեցի, և այն ավարտվեց որպես շինության առավել դժվար հատվածներից մեկը: Վատթարացել է ինչպես փոքր շրջանակի, այնպես էլ դիսփլեյի փոքր հանդուրժողականության և նուրբ բնույթի շնորհիվ:
Քայլ 8: Մարտկոցի փորձարկում



Այս պահին ես միտքս ուղղեցի այն մասին, թե ինչպես դա անել անկախ ցանցի մատակարարվող USB- ից: Ես փորձարկեցի տարբեր մարտկոցներ և պարզեցի, որ Raspberry Pi + էկրանն իրականում այդքան ուժ չի խլում, և դա կատարյալ ուրախություն էր առաջացնում նույնիսկ իմ փոքր մարտկոցներից մեկի վրա (առևտրի ցուցադրությունից անվճար): Սա իսկապես բախտավոր էր, քանի որ փաթեթը հիանալի տեղավորվում էր շինության ներսում գտնվող բացվածքի մեջ (լուսանկարներն ավելի ուշ): Այժմ մենք կարող ենք ժամանակավորապես ամրացնել մարմնի հիմնական բաղադրամասերը և ձեռք բերել դրա առաջին փորձնական աշխատանքը իմ ձեռքից:
Քայլ 9: Պիտանիության փորձարկում



Այստեղ դուք կարող եք տեսնել, թե որտեղ եմ ես ավելի փոփոխել միջուկի խողովակը ՝ թույլ տալով մուտք գործել բաղադրիչների ստորին հատված: Կարող եք նաև տեսնել, թե ինչպես ես բախտ ունեցա, երբ մարտկոցը գեղեցիկ տեղադրվեց Pi- ի տարայի մի կողմի խոռոչում: Վերջապես սկսվեց կապերը մաքրելու, լցնելու, հղկելու գործընթացը և կատարեց նախնական շերտ ՝ պատրաստի տեսքը զգալու համար (ես գիտեի, որ այս փուլում ես դեռ շատ անգամ կփայլեմ և գրեթե բոլոր այբբենարանները կգնան, բայց ես ուզում էի զգալ, թե ինչպիսին կլինի այն):
Քայլ 10: Ավելացրեք վերահսկողություն և մանրամասնեցում



Ես ուզում էի կարմիր/դեղին/կանաչ LED- ների շարք `չափիչ, ինչպես նաև պտտվող հավաքիչ և առնվազն 2 կոճակ: Դրանք բոլորը տեղադրված էին կառավարման վահանակի հատվածում `պարզապես բոլոր ճիշտ անցքերը հորատելու դեպք: Ես նաև սկսեցի ավելացնել պլաստմասսայի ջարդոնի փոքր կտորներ (հիմնականում հավաքածու) `մանրամասներին և ավելի մեծ հետաքրքրություն հաղորդելու մարմնին և կառավարման վահանակին:
Քայլ 11. Bezel Rebuild No. 3



Ինչպես ավելի վաղ նշեցի, ես այս կառույցի համար պայքարեցի եզրով և մի քանի անգամ վերակառուցեցի այն: Սա երրորդ կրկնումն է, որին ես հավատարիմ մնացի: Իմ մոտեցումն այստեղ այն է, որ օգտագործեմ կարծր տախտակ և կտրեցի 2 տարբեր ձևեր ՝ մեկը մյուսից մտածող, այնուհետև դրանք սոսնձեց (և սեղմեց) ՝ միջին պատկերը ձևավորելու համար: Այս ձևերը թույլ տվեցին քառակուսի ցուցադրումը նստել դրա ներսում, այնուհետև այն պահեց ցուցադրությունը տեղում տարայի ներսում (ինչպես նկար 3 -ում): Սա ինձ բավականաչափ նյութ տվեց 4 շատ փոքր պտուտակներ որպես ամրացումներ օգտագործելու համար, որոնք ես օգտագործում էի այն ամուր ամրացնելու համար պատյանում, իսկ դա իր հերթին էկրանը կայուն և ապահով կպահի: Հետադարձ հայացքով ես կգտնեի մի էկրան, որը հագեցած էր տեղադրման որոշ պարկեշտ տարբերակներով (կամ օգտագործել 3D տպիչ - որը ես այդ ժամանակ չունեի):
Քայլ 12. Էլեկտրոնիկայի նախատիպը


Ես օգտագործում եմ տախտակ ՝ այս պարզ սխեմաներն այսպես դասավորելու համար, և քանի որ հաճախ նախագծի այս հատվածը կատարում եմ հիմնական մարմնի այլ կառուցվածքում այլ տարածության մեջ, այն նաև զուգակցում էի այլ ազնվամորի PI- ի հետ: Այստեղ ես օգտագործեցի 3 -րդ մոդելը, որն ինձ մի փոքր ավելի մեծ ուժ տվեց իրականում ուղղակիորեն դրան միանալու և ինքնաթիռում IDE գործարկելու համար: Սա պարզապես ինձ համար մի փոքր հեշտացրեց արագ ծածկագրի նախատիպերի պատրաստումը: Կան բազմաթիվ այլ եղանակներ ՝ հեռակա միացնելու/ծածկագրելու/կարգաբերելու համար, սա պարզապես այն է, ինչ ես նախընտրեցի անել այստեղ:
Այստեղ դիզայնը բավականին ուղիղ է, մենք ունենք.
- Պտտվող կոդավորիչ - սա օգտագործում է GPIO կապում գրունտ և փունջ `կտտոցների ուղղության և սեղմման կոճակի հետ գործ ունենալու համար:
- Pushույգ սեղմման կոճակներ, դրանք պարզապես օգտագործում են մեկ GPIO- ի յուրաքանչյուր քորոց և ընդհանուր հիմք
- 3 լուսադիոդներ, որոնցից յուրաքանչյուրը ունի դիմադրողականություն, որպեսզի դադարեցնի դրանք առաջանալը, բոլորը գնում են ընդհանուր հիմքի, բայց յուրաքանչյուրը GPIO- ի առանձին քորոցով, որպեսզի յուրաքանչյուրը կարողանա առանձին անդրադառնալ:
Սա ինձ տվեց 3 լուսադիոդային չափիչ, պտտվող կոդավորիչ, որը պտտվում էր խողովակի էկրանների միջով և 3 կոճակ ՝ գործողությունները քշելու համար (մեկը պտտվող կոդավորիչի վրա և 2 առանձին լարով): Սա այն ամենի մասին էր, ինչ կարող էի տեղավորել, և երբ էկրանը մի քանի կապում է զբաղեցնում, գրեթե սպառում է այն, ինչ ունեք ստանդարտ Pi GPIO դասավորության վրա: Այնուամենայնիվ, դա լավ էր իմ նպատակների համար:
Երկրորդ նկարը բավականին ցույց է տալիս ներքին ներքին դասավորությունը, որով ես գնացել եմ: Ես որոշ ժամանակ այստեղ անցկացրեցի ՝ փորձարկելով բաղադրիչները քշելու եղանակները և ստուգելով, որ ամեն ինչ ստացվել է, նախքան դա կառուցվածքի կառուցվածքում տեղափոխելը: Ամբողջ ծածկագիրը github- ում է:
Նշում պտտվող կոդավորիչների մասին: Ես ժամանակ անցկացրեցի իմ սեփական Rotary Encoder պետական մեքենայի վրա `GPIO- ի բարձր/ցածր փոփոխություններին հետևելու և դրանք պտտվող դիրքերի քարտեզագրելու համար: Ես այստեղ խառը հաջողություն ունեի, այն ստացվեց «շատ» դեպքերի դեպքում, բայց միշտ կա ծայրահեղ դեպքեր և (դե) ցատկում և այլն: Նրա պատրաստ, շատ ավելի հեշտ է օգտագործել պատրաստի գրադարանը, և այն հիանալի է Python- ի համար տեղադրելու համար: Ես դա օգտագործեցի վերջում, քանի որ դա ինձ թույլ տվեց կենտրոնանալ շենքի զվարճալի հատվածի վրա, այլ ոչ թե տարիքներ ծախսել կարգաբերման խնդիրների վրա: Դրա բոլոր մանրամասները ներառված են աղբյուրի կոդի մեջ:
Եթե դուք նոր եք Raspberry Pi- ի, GPIO- ի և էլեկտրոնիկայի մեջ, խորհուրդ եմ տալիս հետևյալ ձեռնարկները, որոնք ձեզ կտանեն այն ամենը, ինչ անհրաժեշտ է վերը նշված դասավորությունը կատարելու համար.
projects.raspberrypi.org/hy/projects/physi…
thepihut.com/blogs/raspberry-pi-tutorials/…
Քայլ 13: Էլեկտրոնիկայի տեղափոխում մարմնի մեջ



Այն բանից հետո, երբ ես ավարտեցի հատակագիծը ՝ օգտագործելով սեղանի տախտակ, ժամանակն էր սկսել մտածել, թե ինչպես դրանք սոսնձել կափարիչի մարմնում: Ես որոշեցի, որ ուզում եմ այնպես անել, որ կարողանամ ապամոնտաժել և հեռացնել բոլոր էլեկտրոնային բաղադրիչները, եթե հետագայում ինչ -որ բան վերանորոգելու կամ փոխելու կարիք ունենամ: Դա իրականացնելու համար ես որոշեցի բոլոր ենթամասերը միացնել plug- ի միջոցով ՝ օգտագործելով dupont միակցիչներ:
Կոճակների համար, որոնք ես կպցրեցի որոշ երկարացման լարերի վրա և օգտագործեցի մետաղալար ՝ ծայրերը մեկուսացնելու համար, դա ինձ թույլ տվեց հավաքել և ապամոնտաժել դրանք մարմնից (օրինակ ՝ փորձարկման, այնուհետև ներկման և այլն): The Rotary Encoder- ն արդեն ուներ կապիչներ, որոնք կարող էին ընդունել dupont միակցիչները, այնպես որ ես պարզապես պետք է որոշ երկար լարեր պատրաստեի:
LED- ները մի փոքր ավելի շատ աշխատանք տևեցին. Դրա համար ես որոշեցի օգտագործել մի փոքր պլաստիկ ջարդոն (որն անհրաժեշտ էր կտրել) `շարժական վահանակ պատրաստելու համար` LED- ները տեղադրելու համար: Հետո ես դրանք տաք սոսնձեցի տեղում և սոսնձեցի դիմադրիչները և լարերը: Սա ստեղծեց հեռացման միավոր, որը ես կարող էի տեղավորել և հեռացնել, և դյուրացրեց նկարելը և ավարտելը:
Ուշադրություն դարձրեք, որ իմ զոդումը սարսափելի է, այնպես որ ես պահեցի այս պարզը և խուսափեցի չափազանց մանրամասն/տուգանքից: Վերջնական նկարում, որը կարող եք տեսնել, ես ունեի նաև շատ փոքր լայնատախտակներ (5x5), ես դրանցից մեկը տեղադրեցի ներսից ՝ վահանակ ապահովելու համար ՝ ամեն ինչ GPIO- ին/GPIO- ին միացնելու համար: Հատկապես դա օգտակար էր ընդհանուր գետնի երկաթուղի ստեղծելու համար, որը ես կարող էի օգտագործել և խուսափել գետնին հաղորդալարերի հետ միաժամանակ պտտվելուց դեպի Pi:
Այնուհետև ես տարայի մեջ կտրեցի տարբեր անցքեր ՝ լարերը Pi- ով հաղորդելու և GPIO- ին միացնելու համար: Այս դիզայնը թույլ տվեց ինձ լրացնել ամեն ինչ, եթե անհրաժեշտ լիներ (ինչ -որ բան մի քանի անգամ արեցի, երբ ավարտում էի շինարարությունը):
Քայլ 14: Հարմարեցման լավ կարգավորում


Այս պահին ես բախվեցի որոշ «համապատասխան» հարցերի: Նախ `երկկողմանի միակցիչների օգտագործումը էլեկտրագծերի համար նշանակում էր, որ դժվար էր դրանք դնել ցուցադրվող գլխարկով կապում, քանի որ բարձրության բավարար հեռավորություն չկար: Ես դա լուծեցի ՝ գնելով (սա այն սակավ բաներից մեկն է, որն իրականում գնել եմ այս նախագծի համար) մի փոքր GPIO քորոց երկարացնող սարք, որպեսզի ես կարողանամ ցուցադրվող գլխարկը ավելի բարձր նստել և տեղ թողնել, որպեսզի մուտք գործեմ մնացած GPIO կապում ՝ օգտագործելով dupont միակցիչներ:
Ես նաև կտրեցի փրփուրի հատակի մի քանի փոքր կտորներ ՝ տարայի ներսում կողային բարձիկներ պատրաստելու համար, ինչը օգնեց Pi + էկրանը ճիշտ տեղում դնել և դադարեցնել այն շարժվելուց:
Քայլ 15. Retro Up the Rotary Encoder

Պտտվող կոդավորիչները հաճախ գալիս են (ինչպես և իմը) գեղեցիկ փայլուն ժամանակակից «hi fi» ոճով բռնակով: Սա բոլորովին բնավորություն չէր կառուցվածքի համար, այնպես որ ես ստիպված էի այլ բան մտածել: Մասերի իմ պատահական տուփի մեջ ես հանդիպեցի մի հին ատամի, որը երկար ժամանակ կոտրել էի: Սա լավ տեսք ուներ, բայց չէր համապատասխանում պտտվող կոդավորիչին: Այստեղ իմ լուծումն այն էր, որ փորձեմ տարբեր պատի խրոցակներ, մինչև չգտա մեկը, որը տեղավորվում է պտտվող համարանիշի վրա, այնուհետև կտրում եմ այն ձևի մեջ, որպեսզի կարողանամ այն օգտագործել որպես «ներքին օձիք» ՝ պտուտակավոր կոդավորիչի վրա փորվածք տեղադրելու համար ՝ որպես ավելի համապատասխան թեմա: վերահսկողություն:
Քայլ 16: Ներքին երեսպատում


Ավելի շատ փրփուր հատակի սալիկներ: Այս անգամ ես դրանք օգտագործեցի փափուկ երեսպատում կառուցելու համար, որպեսզի այն ավելի հարմարավետ տեղավորվի (առանց դրա չափազանց չամրացված): Փրփուրից փոս կտրելով ես կարողացա նաև ներծծել որոշ «մի կտոր», որը պատրաստում է Pi- ի համար նախատեսված տարան: Ընդհանուր առմամբ, դա շատ ավելի կրելի էր դարձնում: Այս լուսանկարներում ցույց չի տրված, բայց ես այն փոքրացրել եմ հիմնական մարմնից, այնպես որ այն տեսանելի է ծայրերում, որը հետագայում նկարել եմ և այդ ամենը օգնել է մի փոքր հակադրություն և հետաքրքրություն հաղորդել պատրաստի իրին:
Քայլ 17: Մանրամասների ավելացում


Timeամանակն է սկսել ինչ -որ դեկոր ավելացնել և այն ավելի հետաքրքիր դարձնել: Առաջին հերթին ես ավելացրեցի պլաստիկի մի քանի շերտեր մեկ երեսի երկայնքով `դրան մի փոքր տեսողական հետաքրքրություն հաղորդելու համար: Հետո ես որոշ տերմինալներին ավելացրեցի մի քանի կեղծ լարեր և դրանք պարզապես հրեցի մարմնի մեջ փորված անցքի մեջ: Այս ամենը հետագայում ներկվել է տարբեր գույներով:
Քայլ 18. Ներկել և ավարտել մարմնի կառուցվածքը



Ես այնքան էլ մտահոգված չէի անարատ ավարտով, քանի որ ենթադրվում է, որ այն հին է և ամեն դեպքում լավ օգտագործված (իրականում ես կարող եմ վերադառնալ և ինչ -որ պահի նույնիսկ ավելի եղանակային փոփոխություններ անել դրա վրա): Բայց ես իսկապես ուզում էի, որ այն հետևողական և ամբողջական առարկայի տեսք ունենար, որը պատահական աղբից միախառնված չէր (չնայած դա հենց դա էր): Ես անցա հղկման, լցման (բազմափուլը պլաստիկի համար իմ ընտրած լցոնիչը) բազմաթիվ կրկնումների և կրկնելու: Այնուհետև մի քանի շերտ այբբենարան և ներկ, որոնք հետագայում կօգնեն հարթել բոլոր միացումները: Հետո ավելի շատ հղկում և ավելի լցնում, և ավելի շատ ներկում:
Երբ ես տեսա և զգացի այն մարմինը, որից ես գոհ էի, ես սկսեցի ավելացնել որոշ մանրամասներ: Կառավարիչների վրա գրիլների վրա քսում և քսում էի, որպեսզի նրանց ավելի զգալ մետաղական ցանցը: Ես նաև ավելացրել եմ ներկի փոքր մանրամասներ այստեղ և այնտեղ ՝ օգտագործելով ակրիլներ:
Ես փորեցի պատահական կպչուն պիտակների իմ հավաքածուն և ավելացրեցի մի քանիսը ՝ էֆեկտն ավարտելու համար: Հետո ես եղանակային լվացում արեցի մի քանի խառը ներկերով, որպեսզի մի քիչ կեղտ և կեղտ ավելացնեմ դժվարամատչելի տարածքներում, որոնք դժվար կլինի մաքրել: Սա գուցե այս պահին մի փոքր չափազանց նուրբ է, և ես կարող եմ վերադառնալ և մի քանիսը ավելացնել ավելի ուշ:
Քայլ 19: Կոդավորում

Այս նախագծի իմ հավակնության մի մասն էր նրան ստիպել արձագանքել իրական փիփոբիի նման, և ինձ համար այդ խաղի ամենանշանավոր հատվածը ժամացույցը շրջելն է տարբեր էկրանների միջև: Դրան հասնելու համար ես որոշեցի գրել pipboy ինտերֆեյս, որը կկարողանա ցուցադրել մի շարք էկրաններ և թույլ կտա ձեզ ոլորել դրանց միջև: Ես ուզում էի էկրանների բովանդակությունը դարձնել մի բան, որը ես հեշտությամբ կարող էի փոխել, և իսկապես կարողանայի ավելացնել/հեռացնել էկրաններ:
Ես ընտրում եմ սա գրել Python- ում ՝ Raspberry Pi- ի, GPIO- ի և այլնի գերազանց աջակցության շնորհիվ: Python- ը բավականին ցածր է իմ ծանոթ լեզուների ցանկում, ուստի սա ինձ համար ուսուցման մեծ կոր էր, և կոդի մեծ մասը խառնաշփոթ արդյունքում. Thisամանակի ընթացքում ես կթարմացնեմ սա, քանի որ ես ամբողջովին չեմ ավարտել այն ամենը, ինչ ուզում էի անել այստեղ, բայց այն բավականին մոտ է կիսվել հիմա, քանի որ բոլոր հիմնական հասկացությունները կան:
UI կոդի իմ ձևավորումը ողջամիտ է, կա հիմնական Python սցենար, որը կարգավորում է էկրանը, կարգավորում GPIO- ն, բեռնում էկրանները և մտնում անսահման թարմացման օղակ ՝ սպասելով օգտվողի իրադարձություններին և անհրաժեշտության դեպքում թարմացնելով էկրանը: Բացի այդ, կան տարբեր օժանդակ սցենարներ, որոնք օգնում են UI էկրաններ առաջացնել ժամանակից շուտ:
Օգտագործված հիմնական գրադարանները.
- pygame: Ես դա օգտագործում եմ որպես շարժիչ ՝ UI- ն գործարկելու համար, քանի որ դա թույլ տվեց ինձ գծել կամայական գրաֆիկա, շահարկել պատկերներ, տառատեսակներ, անցնել ամբողջական էկրան և այլն:
- pyky040. Սա ապահովում է պտտվող հավաքիչի գործածումը և ինձ շատ ժամանակ խնայում է (շատ շնորհակալ եմ Ռաֆայել Յանսին ՝ սա թողարկելու համար:
- RPi. GPIO. GPIO- ի լավ վարման համար ես խաղացի այստեղ մի քանի տարբերակով, բայց դա ինձ տվեց իմ ուզած ճկունության ճիշտ մակարդակը, մասնավորապես այն, ինչ վերաբերում է պտտվող կոդավորիչը վարելու համար պահեստային GPIO- ի օգտագործմանը որպես այլ 3.3 վ և այլն:
- աղմուկ. Պերլինի աղմուկ ստեղծելու համար թույլ տվեք ստեղծել ռադիոյի էկրանի համար պատահական ալիքի ձև, որն ավելի բնական տեսք ունի
- հերթ. Ես բախվեցի մի հիասթափեցնող սխալի հետ, երբ պտտվող կոդավորողից շրջվում են իրադարձությունները և LCD դիսփլեյի թարմացման (շատ) դանդաղ արագությունը: Ի վերջո, այն, ինչ ես լուծեցի, դա այն էր, որ հերթի մեջ մտցնեմ իրադարձությունները պտտվող կոդավորիչից և դրանք մեկ առ մեկ վերցնել, երբ էկրանը թարմացվում էր:
- os, sys, threading, time: բոլորը օգտագործվում են պիթոնի ստանդարտ գործառույթների համար
Նշում էկրանի մշակման նախագծման վերաբերյալ: Էկրանները սահմանվում են որպես ծածկագրում առկա անունների ցանկ: Entryանկի յուրաքանչյուր գրառում կարող է ունենալ դրա հետ կապված կամ png, կամ txt ֆայլ (կամ երկուսն էլ), ծածկագիրը յուրաքանչյուր էկրանին պահում է քեշի հետ կապված linux գրացուցակի կառուցվածքում ֆայլեր փնտրելուց հետո:
Այդ ֆայլերի բովանդակությունը ստեղծվում է այլուր (ձեռքով կամ այլ սցենարներով), որոնց ելքը պահվում է որպես-p.webp
Կան տարօրինակ բացառություններ, երբ մի քանի բան կոդավորված է, օրինակ ՝ պատահական ռադիոյի էկրանի ալիքի ձևը, որը հաշվարկված է իրական ժամանակում և անիմացիոն:
Եթե անալոգիան օգնում է, պատկերացրեք UI- ի դիզայնը որպես չափազանց կոպիտ և պարզ վեբ դիտարկիչ. Դրանց բովանդակությունը անկախ է և պարզապես կազմված է UI- ի կողմից, ինչպես զննարկիչը կգրավի վեբ էջ:
Ահա այստեղ օգտագործված հիմնական գրադարանների հղումները.
www.pygame.org/news
pypi.org/project/pyky040/
pypi.org/project/noise/
Քայլ 20: Վիճակագրության էկրան

Առանց դասական pipboy ուրվագծերի վիճակագրության էկրանի ոչ մի տղա չի լինի ամբողջական: Դրա համար իմ ընկերը ստեղծեց ստատիկ PNG, որը ես պարզապես ցուցադրում եմ որպես տեղապահ: Ապագա ամսաթվին ես կարող եմ վերադառնալ և ավելի դինամիկ դարձնել որոշ պատահական վնասների ներկայացմամբ կամ նմանատիպ այլ բաներով, բայց առայժմ դա ստատիկ էկրան է:
Քայլ 21. Գույքագրման էկրան

Ինչ -որ բան, որը միշտ օգտակար է Pi նախագծերի հետ, հիմնական տեղեկատվության ցուցադրման միջոց է, ինչպես IP հասցեն, ինչպես նաև DHCP'd և այլն: Ես գրել եմ մի փոքր Linux սցենար `այս տեղեկատվությունը հավաքելու և պարզապես այն վերահղելու համար համապատասխան անունով տեքստային (.txt) ֆայլին, որն այնուհետև վերցնում և ցուցադրում է UI համակարգը: Այս կերպ, եթե ես երբևէ գտնվեմ այլ վայրում, կարող եմ արձակել սցենարը և վերցնել թարմ.txt ֆայլ ՝ արդի IP հասցեով և այլն:
Քայլ 22: Քարտեզի էկրան

Այս էկրանը աշխատելու համար առավել բարդ էկրաններից մեկն էր: Raspberry Pi 0 -ը չի գալիս GPS մոդուլով, բայց ես ուզում էի այնպես անել, որ Քարտեզը որոշակի վավերականություն ունենա այնտեղ, որտեղ Pi- ն էր: Սրա լուծումը առանձին սցենար է, որը քաշում է Pi IP հասցեն, օգտագործում է https://ipinfo.io- ն ՝ մոտավոր տեղ գտնելու համար: JSON- ի պատասխանը գրվում է, այնուհետև ես փոխակերպում եմ կոորդինատները, որպեսզի կարողանամ մոտակայքում բացել openstreetmap.org սալիկը:
Սալիկներն իջնում են բազմաթիվ գույներով, բայց ես ուզում էի, որ կանաչ մասշտաբի պատկերը համապատասխանի Pipboy- ի տեսքին և զգացմունքներին, և չգտա հենց այդպիսի մեկը, ուստի ես գրեցի կանաչ մասշտաբի զտիչ Python- ում ՝ գույները վերափոխելու համար: openstreetmap սալիկի և այնուհետև պահեք նոր պատկերը-p.webp
Վերոնշյալ գործընթացի ընթացքում տեքստային ֆայլ է ստեղծվում մոտավոր տեղադրությամբ և կոորդինատներով, իսկ քարտեզի սալիկը ստեղծվում է որպես png: The pipboy UI- ն քաշում է այս երկու ֆայլերը և համընկնում բովանդակության հետ ՝ ստեղծելով աշխատող Քարտեզի էկրան (ըստ գտնվելու վայրի IP հասցեի լուծման ճշգրտության):
Քայլ 23. Տվյալների էկրան

Սա պարզապես թեստային քարտ է (որը ստեղծվել է մեկ այլ պիթոնի սցենարով և թողարկվում է-p.webp
Քայլ 24. Ռադիոյի էկրան

Քարտեզի էկրանին զուգահեռ, սա այն մյուս էկրանն է, որն ինձ իսկապես շատ աշխատանք է պատճառել: Սա միակ էկրանն է, որտեղ ես խաղացել եմ անիմացիայի հետ, և այն հիմնականում աշխատում է ըստ նախատեսվածի, բայց կատարումը դեռևս խնդիր է LCD էկրանի թարմացման տեմպերի հետ: Էկրանի կառուցվածքը տեքստային ֆայլ է, որը պարունակում է որոշ պատահականորեն ընտրված ռադիո անուններ (դրանք պարզապես կամայական տողեր են և ոչինչ չեն անում, քան էկրանին ցուցակ ներկայացնելը),-p.webp
Սա միակ էկրանն է, որտեղ pygame- ի օղակը կատարում է իրական աշխատանք յուրաքանչյուր ցիկլի ընթացքում, այն պետք է հաշվարկի նոր ալիքի ձևը, ջնջի էկրանի այն հատվածը և վերագծի:
Քայլ 25. Վերջնական մտքեր



Սա, հավանաբար, իմ կատարած ամենաբարդ կառույցն է, որի մեջ կան բազմաթիվ տարբեր հասկացություններ և հմտություններ, բայց դա նաև ամենահաճելիներից մեկն է, որն իրականում աշխատում է արդյունքում: Ես դեռ կարգի եմ բերում իմ որոշ ավելի տեխնիկական նշումներ, ինչպես նաև կոդի համար github ռեպո: Բոլորը շուտով հասանելի կդարձնեմ, այնպես որ շուտով նորից կվերադառնամ ՝ լրացուցիչ մանրամասների և տեղեկությունների համար, քանի որ ժամանակ կստանամ դրանք ավելացնելու համար:
Եթե դուք մոտենում եք նման բան անելուն, ես կցանկանայի տեսնել արդյունքները, և եթե ունեք որևէ հարց, խնդրում ենք ազատ զգալ կապի մեջ, և ես կփորձեմ ավելի շատ տեղեկություններ ավելացնել ցանկացած քայլում, որտեղ ցանկանում եք օգնել:
Քայլ 26. Բաց կոդ Github- ում

Վերջապես սկսեցի բացել ծածկագիրը Github- ում: Այն հասանելի է այս հղումով ՝
Խորհուրդ ենք տալիս:
Կնոջ կողմից կառուցված պայուսակ: 14 քայլ (նկարներով)

Պայուսակ ԱՀ Կառուցված կնոջ կողմից. ՔԱՅԼ 1. Գրեք օգտագործվող նյութերը. Բալզա փայտից 3”էկրանի մոնիտոր AMD RYZEN 5 3500X 3.6GHZ 35 ՄԲ պրոցեսոր (6C/6T) GIGABYTE B550 AORUS PRO A WIFI AM4 ATX DDR4 CORSAIR VENGEANCE LPX36 (2X8 ԳԲ) KIT CL18 DDR4 (RYZEN) ADATA XPG SX8200 2TB PRO 2 P
Ավտոմատ այգիների համակարգ, որը կառուցված է Raspberry Pi- ի վրա `բացօթյա կամ փակ տարածքների համար - MudPi: 16 քայլ (նկարներով)

Բացօթյա կամ փակ տարածքների համար Raspberry Pi- ի վրա կառուցված ավտոմատ այգիների համակարգ - MudPi. Ձեզ դուր է գալիս այգեգործությունը, բայց ժամանակ չե՞ք գտնում այն պահպանելու համար: Թերևս ունեք որոշ տնային բույսեր, որոնք մի փոքր ծարավ են փնտրում կամ միջոց են փնտրում ձեր հիդրոպոնիկան ավտոմատացնելու համար: Այս նախագծում մենք կլուծենք այդ խնդիրները և կսովորենք
Օբյեկտին հետևող տեսախցիկի սահիկ պտտվող առանցքով: 3D տպված և կառուցված RoboClaw DC Motor Controller- ի և Arduino- ի վրա. 5 քայլ (նկարներով)

Օբյեկտին հետևող տեսախցիկի սահիկ պտտվող առանցքով: 3D տպված և կառուցված RoboClaw DC Motor Controller & Arduino- ի վրա. Այս նախագիծը իմ ամենասիրելի նախագծերից մեկն է այն պահից, երբ ես համատեղեցի տեսանկարահանման իմ հետաքրքրությունը DIY- ի հետ: Ես միշտ նայել եմ և ցանկանում եմ նմանակել այն կինեմատոգրաֆիական կադրերին այն ֆիլմերում, որտեղ տեսախցիկը շարժվում է էկրանի վրայով ՝ միաժամանակ հետևելով
Ստվարաթղթե բարձրախոս ջարդոնից. 5 քայլ (նկարներով)

Ստվարաթղթե խոսնակ ջարդոնից. ոչ այնքան ուժեղ
Դյուրակիր Bluetooth բարձրախոս ՝ պատրաստված փայտի ջարդոնից. 9 քայլ (նկարներով)

Դյուրակիր Bluetooth բարձրախոս ՝ պատրաստված փայտի ջարդոնից. Բարև բոլորին, երկար ժամանակ է, ինչ վերջին անգամ այստեղ եմ տեղադրվել, ուստի մտածեցի, որ կհրապարակեմ իմ ընթացիկ նախագիծը: Նախկինում ես դյուրակիր բարձրախոսներ էի պատրաստում, բայց դրանցից շատերը պլաստմասե/ակրիլից էին, քանի որ դրա հետ աշխատելը հեշտ է և չի պահանջում