Բովանդակություն:
- Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի
- Քայլ 2: Շղթան
- Քայլ 3: Կոդ
- Քայլ 4: պարիսպ
- Քայլ 5. Minecraft Forge- ը և SerialCraft Mod- ը
- Քայլ 6: Օգտագործելով SerialCraft Mod
Video: Minecraft Creeper Detector: 6 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Allwined դիզայնով Allwine Designs Հետևեք հեղինակի ավելին.
Մասին. Ես ամբողջ կյանքում ծրագրային ապահովման մշակող եմ եղել, քոլեջում սովորել եմ համակարգչային գիտություն ՝ կենտրոնանալով 3D գրաֆիկայի վրա, Dreamworks Animation- ի էֆեկտների արտիստ եմ եղել և այստեղ տեխնոլոգիա եմ սովորել երեխաներին և մեծահասակներին … Ավելին բոլոր դիզայնի նախագծերի մասին »
Մի քանի տարի շարունակ ես օգնել եմ Բոզեմանի մանկական թանգարանին մշակել ուսումնական ծրագիր իրենց STEAMlab- ի համար: Ես միշտ փնտրում էի զվարճալի եղանակներ ՝ երեխաներին էլեկտրոնիկայի և կոդավորման հետ ներգրավելու համար: Minecraft- ը երեխաներին դռնփակ տանելու հեշտ միջոց է, և կան բազմաթիվ ռեսուրսներ այն զվարճալի և կրթական եղանակներով օգտագործելու համար: Minecraft- ի և էլեկտրոնիկայի համատեղումը բարդ էր, չնայած: Arduino նախագծերը Minecraft- ի հետ ինտեգրելու համար ես ավարտեցի իմ սեփական SerialCraft անունով Minecraft մոդի մշակումը: Գաղափարն այն էր, որ դուք կարող եք միացնել ցանկացած սարք, որն օգտագործում է սերիական հաղորդակցություն և հաղորդագրություններ ուղարկել և ստանալ հաղորդագրություններ Minecraft- ից իմ ռեժիմի միջոցով: Arduinos- ի մեծ մասն ունակ է սերիական հաղորդակցության USB- ի միջոցով, ուստի պարզ է միացնել միացումն ու որոշակի տվյալներ ուղարկել սերիական կապի միջոցով: Ես ստեղծեցի վերահսկիչների հավաքածուներ, որոնք երեխաները կարող էին հավաքել և ծրագրել ՝ վերահսկելու իրենց բնավորությունը, առաջացնելու և արձագանքելու Redstone ազդանշաններին, և թարթելու LED- ները `նրանց զգուշացնելու որոշ իրադարձությունների մասին, ինչպիսիք են ցածր կյանքը կամ երբ սողացողը մոտ է: Այս Instructable- ը կենտրոնանում է սողացող ահազանգման գործառույթի վրա և այն մեկ քայլ առաջ է տանում ՝ օգտագործելով Adafruit Neopixels- ը և լազերային կտրված ակրիլային և նրբատախտակի պատյան: Creeper Detector- ը օգտագործում է 8 LED NeoPixel փայտիկ ՝ արժեքավոր տեղեկություններ տալու մոտակա սողունի մասին: Երբ բոլոր LED- ները անջատված են, դա նշանակում է, որ 32 բլոկների ներսում սողացողներ չկան: Երբ բոլոր LED- ները միացված են (դրանք նույնպես կթարթվեն), դուք գտնվում եք սողունի պայթյունի 3 բլոկի շառավղով (շառավիղը, որի վրա սողացողը կանգ կառնի, վառեք ապահովիչը և պայթեցրեք): Միջանկյալ ամեն ինչ կարող է ձեզ գնահատել, թե որքան հեռու է սողացողը ձեզանից: Երբ 8 LED- ներից 4 -ը վառվում են, դուք սողացողից մոտ 16 բլոկ եք, որը այն տիրույթն է, որի դեպքում, եթե սողացողը տեսնի ձեզ, նա կհարձակվի: LED- ները կսկսեն բռնկվել, երբ դուք գտնվում եք սողունի պայթյունի շառավղում (7 բլոկ): Նաև այն շառավիղն է, որից դուրս գալու դեպքում սողացողը դադարեցնելու է իր ապահովիչը և շարունակելու է գալ ձեր հետևից: Այս գիտելիքով դուք պետք է կարողանաք խուսափել ցանկացած անսպասելի սողացող հարձակումներից կամ որսալ մոտակա սողուններին:
Այս Ուղեցույցում մենք կխոսենք այն ամենի մասին, ինչ ձեզ հարկավոր է ձեր սեփական Creeper Detector ստեղծելու համար և ինչպես տեղադրել և օգտագործել SerialCraft ռեժիմը, որը թույլ է տալիս Minecraft- ին միացնել ձեր Arduino նախագծերին: Եթե ձեզ դուր է գալիս, խնդրում ենք հաշվի առնել Minecraft մրցույթում և Epilog Challenge- ում դրա օգտին քվեարկելը: Եկեք սկսենք!
Քայլ 1: Այն, ինչ ձեզ հարկավոր կլինի
Ես ամեն ինչ արել եմ, որպեսզի կապեմ իմ օգտագործած ճշգրիտ արտադրանքի հետ, բայց երբեմն Amazon- ում գտնում եմ իմ ամենամոտ բանը: Երբեմն ավելի լավ է մի քանի բան վերցնել էլեկտրոնիկայի ձեր տեղական խանութից կամ սարքաշարի խանութից `ավելի մեծ քանակությամբ առցանց գնումներ կատարելու համար:
- Ես օգտագործել եմ 8 LED RGBW NeoPixel փայտիկ, բայց ես ընդհանրապես չեմ օգտագործել սպիտակ (W) LED- ն, այնպես որ 8 LED RGB NeoPixel փայտիկը դա կանի: Դուք կարող եք դա փոխարինել ցանկացած RGB կամ RGBW NeoPixel արտադրանքով, բայց կան ուժի նկատառումներ, որոնք մենք կքննարկենք հաջորդ քայլում և կոդի փոփոխություններ, որոնք ես մատնանշելու եմ այստեղ հասնելուն պես: Դուք կարող եք ընտրել մեկը, որը չի պահանջում զոդում, բայց ես ձեզ ցույց կտամ, թե ինչպես եմ լարերը կպցրել փայտի վրա:
- Միկրոկոնտրոլեր և դրա համապատասխանող USB մալուխ: Ես օգտագործեցի SparkFun- ի RedBoard- ը, որը Arduino Uno- ի կլոն է: Այն օգտագործում է Mini B USB միակցիչ (վստահ չեմ, թե ինչու է Amazon- ում այդքան թանկ, այն կարող եք ուղղակիորեն ձեռք բերել այստեղ SparkFun- ից, կամ գնալ այլընտրանքային տարբերակ Amazon- ում, ինչպես այս մեկը): Մենք կօգտագործենք Arduino գրադարանը ՝ կոդավորումը պարզեցնելու համար, բայց այն օգտագործում է միայն հիմնական սերիական հաղորդակցությունը, որպեսզի գրադարանը, ամենայն հավանականությամբ, տեղափոխվի աշխատելու ցանկացած միկրոկոնտրոլերի վրա, որը կարող է կատարել USB սերիա: Գրեթե ցանկացած Arduino կանի: Համոզվեք, որ այն ունի USB սերիա (շատերն ունեն, բայց ոմանք չունեն, օրինակ ՝ օրիգինալ մանրուք):
- Հաղորդալարեր, եռակցման սարք և զոդ (մետաղալարերը և երրորդ ձեռքը նույնպես հարմար են): Մենք լարեր կպցնենք NeoPixel փայտին, որպեսզի այն միացվի Arduino- ին: Սրանք կարող են ավելորդ լինել, եթե ընտրեք NeoPixel ապրանք, որի վրա արդեն տեղադրված են լարեր կամ միկրոկոնտրոլեր, որն ուղեկցվում է NeoPixels- ով (օրինակ ՝ Circuit Playground Express- ը, որի ծածկագիրը ներառել եմ ապագա քայլում): 8 LED ձողիկի ձևի գործոնը այն է, ինչի համար ես նախագծել եմ իմ Creeper Detector- ի պարիսպը, այնպես որ դուք ստիպված կլինեք փոփոխություններ կատարել կամ առանց պարիսպի գնալ, եթե այլ ձևի գործոնի գնաք:
- պարիսպի նյութեր: Ես օգտագործել եմ 1/8 "ցրտաշունչ ակրիլ, 1/8" մաքուր ակրիլ և 1/8 "նրբատախտակ, որը ես լազերային կտրել եմ և M3 մեքենայի պտուտակներ և ընկույզներ այն միասին պահելու համար: Ես նաև օգտագործեցի որոշ #2 x 1/4 "փայտե պտուտակներ` NeoPixel փայտը պարիսպին ամրացնելու համար: Պարիսպն ավելորդ է, բայց, անշուշտ, ավելացնում է լրացուցիչ սողացող հմայք: ցանկանում եք, որ այն ամբողջությամբ ինքնամփոփ լինի, ձեզ հարկավոր է փոփոխություններ կատարել:
- Minecraft հաշիվ, Minecraft Forge 1.7.10 և SerialCraft (մոդ և Arduino գրադարան): Creeper Detector- ը հենվում է SerialCraft մոդի վրա, որն աշխատում է միայն Minecraft 1.7.10 -ի վրա Minecraft Forge- ի հետ: Ինչպես ներբեռնել դրանք և ինչպես դրանք կարգավորել, մենք կքննարկենք հետագա քայլերում:
- Arduino IDE- ն կամ հաշիվը Arduino Create- ում և Arduino Create plugin- ում (խորհուրդ եմ տալիս օգտագործել Arduino Create- ը, քանի որ կկարողանաք ուղղակիորեն գնալ իմ Arduino Ստեղծված ուրվագծին և կազմել և վերբեռնել այն այնտեղից):
Քայլ 2: Շղթան
Շղթան շատ պարզ է, ընդամենը 3 լար, NeoPixel փայտիկը և Arduino- ն: Բոլոր Adafruit NeoPixels- ն ունեն իրենց սեփական վերահսկիչը, որը թույլ է տալիս մեկ տվյալների հաղորդալարին վերահսկել շղթայված LED- ների ցանկացած քանակ: Ես միացրեցի այն Arduino- ի 12 -րդ կապին:
Մյուս երկու լարերը հզորության և գետնի համար են: NeoPixels- ը սնուցելու համար մեզ անհրաժեշտ կլինի 5 Վ էներգիայի աղբյուր: Մենք պետք է համոզվենք, որ մեր էներգիայի աղբյուրը ի վիճակի է բավարար հոսանք ապահովել: Յուրաքանչյուր NeoPixel- ը կարող է նկարել մինչև 60 մԱ (80 մԱ RGBW լուսադիոդներով) ամբողջ պայծառությամբ: 8 LED- ով, դա նշանակում է, որ մեր առավելագույն հոսանքը 480mA է (640mA ՝ RGBW LED- ով): Arduino- ն 40 մԱ է պահանջում միայն միացնելու համար: Առաջին հայացքից թվում է, թե մեզ անհրաժեշտ կլինի օգտագործել արտաքին սնուցման աղբյուր: USB- ն թույլ է տալիս առավելագույնը 500 մԱ, որը մենք կարող ենք գերազանցել, եթե մեր բոլոր LED- ները սահմանենք առավելագույնը (480+40 = 520 RGB LED- ով կամ 640+40 = 680 RGBW լուսադիոդներով): Բարեբախտաբար, մենք երբեք կարիք չենք ունենա LED- ները դարձնել իրենց լիարժեք պայծառությունը (ամբողջ պայծառությունը բավականին կուրացնող է), այնպես որ մենք ապահով կապահովենք մեր Arduino- ի 5V ռելսերի միջոցով, որը միացված է USB- ի միջոցով: Իրականում, օգտագործելով իմ ընտրած կանաչ գույնը, միայն մեկ LED- ի համար կօգտագործվի ~ 7-8mA max ՝ ընդամենը 100mA առավելագույն ընթացիկ խաղարկության համար, ինչը USB- ի կողմից պարտադրված 500mA max- ի սահմաններում է:
Այսպիսով, մեզ մնում է միայն NeoPixel փայտիկի DIN կապը միացնել 12 -ի կապակցիչին (գրեթե ցանկացած կապում կաշխատի, բայց սա այն է, ինչ ես օգտագործել եմ), NeoPixel- ի 5V կապը մնում է 5V- ին Arduino- ում, և NeoPixel- ի վրա GND կապը մնում է Arduino- ի GND- ին: Նախ, մենք պետք է մեր լարերը կպցնենք NeoPixel փայտին:
Կտրեք միակցիչները ձեր լարերի մի ծայրից և կտրեք ծայրերը: Թիթեղացրեք դրանցից յուրաքանչյուրը (ծայրերից յուրաքանչյուրին քսեք զոդում): Այնուհետև մի փոքր կպցրեք յուրաքանչյուր բարձիկ: Padոդման երկաթով զգուշորեն դիպչեք յուրաքանչյուր բարձիկին, համապատասխան մետաղալարի ծայրը դրեք բարձիկի վրա, ապա հանեք արդուկը:
Քայլ 3: Կոդ
ԹԱՐՄԱՈ (Մ (2/19/2018). Ես տեղադրեցի Arduino- ի նոր ուրվագիծը GitHub ռեպո -ին, որը ներառում է բոլոր անհրաժեշտ փոփոխությունները Creeper Detector- ի համար Circuit Playground Express- ում աշխատելու համար (այն չի աշխատի պարիսպի հետ, բայց այն ունի բոլորը) տախտակի մեջ ներկառուցված LED- ները և որոշ տվիչներ, այնպես որ կպցնել չի պահանջվում): Այն ներառում է լրացուցիչ գործառույթներ, որոնք կապված են դրա կոճակների և սլայդերի անջատիչի հետ:
Ամբողջական ծածկագրի համար կարող եք գնալ իմ Arduino Create ուրվագիծ կամ GitHub շտեմարան: Հետևեք այստեղ տրված հրահանգներին, եթե վստահ չեք, թե ինչպես կազմել և վերբեռնել կոդը: Եթե որոշեք օգտագործել Arduino IDE- ն, ապա ձեզ հարկավոր է տեղադրել SerialCraft Arduino գրադարանը: Հետևեք «Zip ներմուծում» բաժնի քայլերին ՝ դա անելու համար: Եթե դուք օգտագործում եք Arduino Ստեղծել վեբ խմբագիր, կարող եք ուղղակիորեն գնալ իմ ուրվագծին ՝ կարգավորելուց հետո և կարող եք խուսափել SerialCraft գրադարանի տեղադրման անհրաժեշտությունից:
Ստորև կանդրադառնամ, թե ինչ է անում ծածկագիրը:
Առաջին երկու տողերը ներառում են գրադարաններ: Առաջինը ՝ SerialCraft.h- ն, իմ գրած գրադարանն է, որը հնարավորություն է տալիս հեշտ հաղորդակցվել SerialCraft մոդի հետ: Ես ձեզ կներկայացնեմ ստորև օգտագործվող գործառույթների միջոցով, բայց դուք կարող եք ստուգել օրինակներ և որոշ փաստաթղթեր, որոնք որոշակի աշխատանքի կարիք ունեն իր GitHub պահոցում: Երկրորդ գրադարանը Adafruit- ի NeoPixel գրադարանն է և տրամադրում է API NeoPixel շերտերի վրա LED- ները կարգավորելու համար:
#ներառում
#ներառում
4-17 տողերը հաստատուններ են, որոնք կարող են փոխվել ՝ կախված ձեր կարգավորումից: Եթե դուք օգտագործում եք NeoPixel ժապավեն ՝ տարբեր քանակությամբ պիքսելներով կամ եթե ձեր NeoPixels- ը միացրել եք այլ քորոցի, ապա ձեզ հարկավոր է փոփոխություններ կատարել առաջին երկու սահմանումների ՝ NUMLEDS և PIN կոդի վրա: Անհրաժեշտ է փոխել LED_TYPE- ն ձեր ունեցած տիպին: Փորձեք NEO_GRBW- ը փոխել NEO_RGB- ով կամ NEO_RGBW- ով, եթե խնդիրներ ունեք: Դուք կարող եք փոխել BLOCKS_PER_LED- ը, եթե ցանկանում եք հարմարեցնել սողունների հայտնաբերման տիրույթը:
// Փոփոխեք այս փոփոխականները `ձեր կարգավորմանը համապատասխանելու համար
// ձեր շերտի LED- ների քանակը #սահմանեք NUMLEDS 8 // pin, որ LED տվյալների քորոցը միացված է #սահմանեք PIN 12 // յուրաքանչյուր բլոկ, որը ներկայացնում է յուրաքանչյուր LED #սահմանեք BLOCKS_PER_LED 4 // Ձեր ունեցած LED շերտի տեսակը (եթե ձեր LED- ները չեն կանաչում, ապա ձեզ հարկավոր է փոխել GRBW կարգը) #սահմանել LED_TYPE (NEO_GRBW+NEO_KHZ800) // END փոփոխականներ
19-27 տողերը սահմանում են որոշ արժեքներ, որոնք մենք հետագայում կօգտագործենք: DETONATE_DIST- ը Minecraft- ում այն հեռավորությունն է, որով սողացողը կդադարի շարժվել, վառել ապահովիչը և պայթել: SAFE_DIST- ը սողունների պայթյունի շառավիղն է: Այս արժեքների փոփոխությունը կազդի LED- ների վարքագծի վրա, բայց ես խորհուրդ եմ տալիս դրանք պահել այնպիսին, ինչպիսին նրանք են, քանի որ դրանք արտացոլում են Minecraft- ի վարքագիծը: MAX_DIST- ը առավելագույն հեռավորությունն է, որին մենք հետևելու ենք սողուններին, որը հիմնված է մեր NeoPixel ժապավենի LED- ների թվի և վերևում սահմանված BLOCKS_PER_LED հաստատունի վրա:
// Սրանք արժեքներ են, որոնք կօգտագործվեն մեր հաշվարկներում LED լուսավորության համար
// հեռավորության սողացողը կսկսի պայթեցնել #սահմանել DETONATE_DIST 3 // հեռավորությունը մենք ապահով ենք սողացող պայթյունից (դուք վնաս կստանաք, եթե այս հեռավորության վրա լինեք) #սահմանեք SAFE_DIST 7 // առավելագույն հեռավորությունը, որը մենք հետևում ենք սողացողին #սահմանել MAX_DIST (NUMLEDS*BLOCKS_PER_LED)
29-36 տողերը սահմանում են որոշ փոփոխականներ, որոնք մենք կօգտագործենք ծրագրի ողջ ընթացքում: Sc փոփոխականը SerialCraft օբյեկտ է, որն ապահովում է հեշտ օգտագործման միջերես ՝ SerialCraft Minecraft մոդի հետ հաղորդակցվելու համար: Ստորև կտեսնեք, թե ինչպես ենք այն օգտագործում: dist- ը փոփոխական է, որը մենք կդնենք մոտակա սողացող հեռավորության վրա, երբ SerialCraft ռեժիմից ստանանք սողացող հեռավորության հաղորդագրություն: շերտագիծը Adafruit_NeoPixel օբյեկտ է, որը տրամադրում է NeoPixel շերտերի վերահսկման մեթոդներ:
// Սա SerialCraft օբյեկտն է SerialCraft Minecraft մոդի հետ հաղորդակցվելու համար
SerialCraft sc; // հեռավորությունը սողացող int dist = 100; // Նախագծեք LED- ների շերտ, հնարավոր է, որ անհրաժեշտ լինի փոխել 3 -րդ Adafruit_NeoPixel շերտը = Adafruit_NeoPixel (NUMLEDS, PIN, LED_TYPE);
38-47 տողերը մեր կարգավորման գործառույթն են: Arduino- ի բոլոր սցենարները պետք է ունենան մեկը: Այն գործարկվում է մեկ անգամ, երբ Arduino- ն միացված է, ուստի այն հիանալի վայր է փոփոխականների սկզբնավորման համար: Մենք կոչում ենք setup () մեթոդը մեր SerialCraft օբյեկտի վրա, որպեսզի Serial port- ը նույնականացնենք Baud- ի նույն արագությամբ, ինչ կազմաձևված է SerialCraft ռեժիմում (115200): Այնուհետև մենք զանգահարում ենք RegisterCreeperDistanceCallback մեթոդ, որպեսզի կարողանանք արձագանքել SerialCraft ռեժիմի կողմից մեզ ուղարկված սողացող հեռավորության հաղորդագրություններին: Մենք պարբերաբար կանչում ենք sc.loop () մեթոդը մի փոքր ներքև: Օղակաձև մեթոդով այն ստուգում է ՝ արդյոք մենք ստացել ենք որևէ հաղորդագրություն SerialCraft ռեժիմից կամ գործի ենք դրել որևէ իրադարձություն, օրինակ ՝ կոճակը սեղմելը, և կանչում է այն համապատասխան գործառույթը, որը մենք գրանցել ենք ՝ այն կարգավորելու համար: Այն, ինչ մենք անում ենք, սողունների ամենամոտ տարածությունն է փնտրում, ուստի դա միակ գործառույթն է, որը մենք գրանցում ենք: Ստորև կտեսնեք, որ այն, ինչ մենք անում ենք այդ գործառույթում, սահմանում է մեր dist փոփոխականը, որը մենք կօգտագործենք LED- ները թարմացնելիս: Վերջապես, մենք նախաստորագրում ենք մեր LED շերտը և անջատում ենք բոլոր LED- ները ՝ օգտագործելով strip.begin () և strip.show ():
void setup () {// նախաստորագրել SerialCraft sc.setup (); // գրանցել սողացող հեռահար հետադարձ կապ ՝ մոտակա սողացող հեռավորությունը ստանալու համար sc.registerCreeperDistanceCallback (սողացող); // նախաստորագրել LED շերտի ժապավենը: begin (); strip.show (); }
49-80 տողերը սահմանում են օղակի գործառույթը: Օղակի գործառույթը այնտեղ է, որտեղ տեղի է ունենում ամբողջ կախարդանքը: Օղակի գործառույթը բազմիցս կոչվում է: Ամեն անգամ, երբ օղակի գործառույթն ավարտվի, այն նորից սկսում է վերադառնալ վերևից: Դրանում մենք օգտագործում ենք dist փոփոխականը և ֆայլի վերևում գտնվող մեր հաստատունները `որոշելու, թե ինչ վիճակում պետք է լինի յուրաքանչյուր LED- ը:
Օղակի գործառույթի վերևում մենք սահմանում ենք մի քանի փոփոխական:
// տատանվում է 0 -ից երբ> = MAX_DIST հեռու սողունի պայթյունի շառավիղից մինչև NUMLEDS*BLOCKS_PER_LED երբ սողունի վերևում է
int blocksFromCreeperToMax = սահմանափակում (MAX_DIST+DETONATE_DIST-dist, 0, MAX_DIST); int curLED = blockFromCreeperToMax/BLOCKS_PER_LED; // տատանվում է 0-ից NUMLEDS-1 int curLEDLevel = (blocksFromCreeperToMax%BLOCKS_PER_LED+1); // տատանվում է 1 -ից մինչև BLOCKS_PER_LED
Քանի որ մենք լուսավորում ենք LED- ները ՝ հիմնվելով սողացող սարքին, մենք պետք է արդյունավետ շրջենք մեր հեռավորության փոփոխականը: Մենք սահմանում ենք blockFromCreeperToMax ՝ բլոկների քանակը ներկայացնելու համար, որը սողացողը գտնվում է առավելագույն հեռավորությունից, որը մենք պետք է հետևել: Երբ մենք գտնվում ենք սողունի վերևում (ավելի ճիշտ ՝ սողացողից DETONATE_DIST- ից փոքր կամ հավասար), արգելափակումները FromFreeCreeperToMax- ից կլինեն MAX_DIST: Երբ մենք սողացողից հեռու ենք MAX_DIST- ից, blockFromCreeperToMax- ը կլինի 0. Այս փոփոխականը օգտակար կլինի, երբ մենք լուսարձակում ենք մեր LED- ները, որքան մեծ է, այնքան ավելի շատ LED ենք լուսավորում:
curLED- ը լուսադիոդի ամենալայն լուսադիոդն է: Յուրաքանչյուր 4 բլոկ, որը մենք շարժվում ենք դեպի սողացող, լրացուցիչ լույս կվառի (այդ թիվը կարող է փոխվել ֆայլի վերևում ՝ BLOCKS_PER_LED փոփոխականով): Մենք կարգավորում ենք լուսադիոդի ամենավերին լուսավորությունը, որպեսզի տեսնենք հեռավորության փոփոխությունները մինչև մեկ բլոկ: curLEDLevel- ը փոփոխական է, որը մենք կօգտագործենք այդ պայծառության փոփոխությունները հաշվարկելու համար: Այն տատանվում է 1 -ից 4 -ի սահմաններում (կամ ինչ ձևով էլ սահմանվի BLOCKS_PER_LED):
Մենք կօգտագործենք այս փոփոխականները յուրաքանչյուր LED- ի վրա շրջանցելիս.
(uint16_t i = 0; i <strip.numPixels (); i ++) {if (i <= curLED) {// ամենապայծառ, երբ սողունի պայթյունի շառավիղում է, անջատված է, երբ սողունը NUMLEDS*BLOCKS_PER_LED հեռու է բոց ինտենսիվություն = (float) արգելափակումներ /MAX_DIST; եթե (i == curLED) {// վերջին լուսավորված LED // լուսավորի վերջին LED- ը, երբ մոտենում ենք հաջորդ LED բոց lastIntensity = (float) curLEDLevel/BLOCKS_PER_LED; ինտենսիվություն *= վերջին Ինտենսիվություն; } if (dist <SAFE_DIST) {ինտենսիվություն *= (millis ()/75)%2; } ինտենսիվություն = ուժ (ինտենսիվություն, 2.2); // գամմա կոր, ստիպում է LED պայծառությունը մեր աչքին գծային տեսք ունենալ, երբ պայծառության արժեքը իսկապես strip.setPixelColor (i, strip. Color (10*ինտենսիվություն, 70*ինտենսիվություն, 10*ինտենսիվություն, 0)); } else {strip.setPixelColor (i, strip. Color (0, 0, 0, 0)); }}
Եթե ներկայիս LED- ը, որը մենք թարմացնում ենք, փոքր կամ հավասար է curLED փոփոխականին, ապա մենք գիտենք, որ այն պետք է միացված լինի, և մենք պետք է հաշվարկենք դրա պայծառությունը: Հակառակ դեպքում անջատեք այն: Մենք օգտագործում ենք ինտենսիվության փոփոխական, որը կունենա 0 -ից մինչև 1 արժեք ՝ մեր LED լուսավորությունը ներկայացնելու համար: LED- ի վերջնական գույնը սահմանելիս մենք ինտենսիվությունը կբազմապատկենք կանաչ (10, 70, 10) գույնով: Մենք օգտագործում ենք blocksFromCreeperToMax փոփոխականը ՝ տոկոս ստանալու համար ՝ բաժանելով MAX_DIST- ի, ուստի LED- ները կլինեն ամենապայծառ, երբ մենք մոտենանք սողացողին: Եթե մենք հաշվարկում ենք curLED- ի պայծառությունը, ապա մենք փոխում ենք դրա պայծառությունը հեռավորության յուրաքանչյուր բլոկի համար, որը սողացողը ձեզանից է մինչև BLOCKS_PER_LED կարգավորումը: Սա աննշան փոփոխություն է, բայց այն կարող է օգտագործվել ՝ տեսնելու համար, թե արդյոք սողացողը մոտենում կամ ավելի է հեռանում ավելի նուրբ հատիկից, քան 4 բլոկները, որոնք անհրաժեշտ են լրացուցիչ LED լուսավորության համար: Այնուհետև մենք ստուգում ենք, արդյոք մենք գտնվում ենք սողունի պայթյունի շառավիղում և թարթում ենք, եթե այդպիսին ենք: (Millis ()/75)%2 արտահայտությունը բազմիցս գնահատելու է 0 ՝ 75 միլիվայրկյան, այնուհետև 1 ՝ 75 միլիվայրկյանների համար, ուստի մեր ինտենսիվությունն այդ արտահայտությամբ բազմապատկելու դեպքում LED- ները թարթվելու են:
Ինտենսիվության (ինտենսիվություն = ուժ (ինտենսիվություն, 2.2)) վերջնական փոփոխությունը գամմա ուղղում կոչվող ճշգրտում է: Մարդու աչքերը ընկալում են լույսը ոչ գծային եղանակով: Մենք կարող ենք տեսնել ավելի թույլ լուսավորության աստիճանականացումներ, քան պայծառ լույսի, այնպես որ, երբ մենք իջնում ենք պայծառ լույսի պայծառությունը, մենք ավելի շատ ենք նահանջում, քան երբ լույսը մռայլ է, որպեսզի երևի, թե գծից իջած ենք նորաձևությունը մարդու աչքին: Այս փոփոխության կողմնակի ազդեցությունն այն է, որ մենք ի վերջո օգտագործում ենք ավելի քիչ էներգիա, քանի որ մեր պիքսելներն ունենում են ավելի թույլ (ավելի ցածր էներգիայի) տիրույթում ավելի շատ աստիճաններ, քան ավելի պայծառ (ավելի բարձր էներգիա) տիրույթում:
Մեր հանգույցի գործառույթի վերջին երկու տողերը LED- ները թարմացնում են այն արժեքներին, որոնք մենք պարզապես սահմանել ենք, այնուհետև կանչում ենք ցանկացած մշակողի, որը պետք է կանչվի SerialCraft- ի կողմից (այս դեպքում `սողացող հեռավորության գործառույթը, եթե SerialCraft ռեժիմից ստացել ենք որևէ սողացող հեռավորության հաղորդագրություն).
strip.show ();
sc.loop ();
Մեր սցենարի վերջին տողերը սողացող գործառույթն են, որտեղ մենք պահում ենք հեռավորությունը մոտակա սողացողին, երբ SerialCraft mod- ը մեզ այդ տեղեկատվությամբ հաղորդագրություն է ուղարկում:
դատարկ սողացող (int d) {dist = d; }
Այժմ պարզապես անհրաժեշտ է կազմել և վերբեռնել ծածկագիրը:
Քայլ 4: պարիսպ
Ես լազերային կտրեցի իմ պարիսպի բոլոր կտորները, որը բաղկացած է մեկ ցրտաշունչ ակրիլային սողունից, մեկ թափանցիկ ակրիլային սողունից, 6 կտոր նրբատախտակից, ակրիլային սողունների չափսերով ուղղանկյուն անցքով և ամրացումների համար անկյուններում և 1 կտոր նրբատախտակով: մեջքի համար, որն ունի ամրացնող անցքեր և մեկ ավելի մեծ անցք `լարերի դուրս գալու համար: Անջատեք լարերը NeoPixel փայտից, որպեսզի մենք կարողանանք այն ամրացնել մեր պարիսպում: Ստորև բերված երկու PDF ֆայլերը կարող են օգտագործվել իմ նկարագրած բոլոր կտորները լազերային կտրելու համար:
NeoPixel փայտը ամրացված է նրբատախտակի հետևի կտորին ՝ օգտագործելով #2 փայտե պտուտակներ և նեյլոնե բացիչներ: Ակրիլային սողունները խցանված են քառակուսի անցքերով նրբատախտակի երկու կտորների մեջ: Նախքան դա անելը, համոզվեք, որ հիշում եք, թե որ մետաղալարերի գույնն է ինչ բարձիկի վրա գնում:
Ակրիլային սողունների չափերը անցքերից 1 հարյուրերորդ դյույմով ավելի մեծ են, որպեսզի ապահովեն նրբատախտակի հետ շատ հարմարավետ տեղավորումը:Ես օգտագործեցի մետաղալարերի բռնիչը ՝ յուրաքանչյուր անկյունի վրա կենտրոնացված ճնշում գործադրելու համար և ճանապարհին աշխատեցի ամբողջ սողունի շուրջը ՝ հավասար տեղավորվելու համար: Որպես այլընտրանք, ակրիլային լազերային pdf- ն ներառում է սողուն, որը փորագրված է ամրակի անցքերով պատվածքի ամբողջ երեսի չափով, այնպես որ կարող եք խուսափել փոքր ակրիլային սողունների հետ սերտորեն համակերպվելուց:
Ostրտահարված ակրիլը բաշխում է առանձին LED- ների լույսը, իսկ թափանցիկ ակրիլը ավելի լավ է ցույց տալիս սողացող փորագրությունը, այնպես որ երկուսն էլ միասին ավելի լավ են թվում ինձ, քան առանձին -առանձին: Երբ սողացողները տեղում են, իրար վրա դրեք ձեր նրբատախտակի բոլոր կտորները և ամրացրեք դրանք M3 մեքենայի պտուտակներով և ընկույզներով: Այնուհետև նորից միացրեք լարերը 5V, GND և pin 12 -ին:
Քայլ 5. Minecraft Forge- ը և SerialCraft Mod- ը
Սկսեք ՝ ստեղծելով Minecraft հաշիվ, այնուհետև ներբեռնեք և տեղադրեք Minecraft հաճախորդը:
Ձեզ անհրաժեշտ կլինի Minecraft Forge 1.7.10 տարբերակի համար, որպեսզի կարողանաք տեղադրել SerialCraft ռեժիմը: Գնացեք 1.7.10 Minecraft Forge ներբեռնման էջ: Minecraft Forge կայքը ունի բազմաթիվ գովազդներ, որոնք ձգտում են ստիպել ձեզ սխալ բան սեղմել և տանել այլ տեղ: Հետևեք վերը նշված պատկերներին ՝ ապահովելու համար, որ դուք ճիշտ ուղու վրա եք: Դուք կցանկանաք սեղմել Installer կոճակը ՝ առաջարկվող 1.7.10 տարբերակի ներքո (կամ ամենավերջինը, ես իսկապես վստահ չեմ տարբերության վրա): Ձեզ կտանեն էջ, որի էջի վերևում տեղադրված է դրոշակ, որի վրա գրված է. Համոզվեք, որ սպասում եք հետհաշվարկին, այնուհետև կտտացրեք «Բաց թողնել» կոճակին ՝ ներլցումը սկսելու համար:
Ներբեռնումն ավարտելուց հետո կրկնակի սեղմեք տեղադրողի վրա: Թողեք կանխադրվածները ստուգված (Տեղադրեք Հաճախորդը և այն նշված կանխադրված ուղին), այնուհետև կտտացրեք OK: Այն կտեղադրի Minecraft Forge- ը: Ավարտելուց հետո դուք կկարողանաք գործարկել Minecraft գործարկիչը, բայց կլինի լրացուցիչ տարբերակ ՝ Forge- ի 1.7.10 տարբերակը ընտրելու համար (տե՛ս վերևի պատկերը):
Այժմ մենք պետք է տեղադրենք SerialCraft ռեժիմը ձեր ռեժիմների գրացուցակում: Ներբեռնեք SerialCraft ռեժիմի վերջին տարբերակը այստեղ: Ձեզ նույնպես պետք է jssc գրադարանը: Անջատեք երկու ֆայլերը, որոնք ձեզ պետք է թողնեն երկու.jar ֆայլ: Դուք պետք է այդ ֆայլերը տեղադրեք ձեր ռեժիմների պանակում: Windows- ում, սկզբնական ընտրացանկից պետք է կարողանաք գնալ Run և մուտքագրելուց առաջ մուտքագրեք %appdata %\. Minecraft / mods: Mac- ում կարող եք նավարկել դեպի տուն/գրադարան/հավելվածի աջակցություն/minecraft/ռեժիմներ: Երկու.jar ֆայլերը գցեք ձեր բացած թղթապանակի մեջ: Այժմ գործարկեք Minecraft- ը և գործարկեք 1.7.10 Forge տարբերակը: Դուք պետք է կարողանաք սեղմել Mods- ի վրա և տեսնել ձախ կողմում նշված SerialCraft- ը:
Քայլ 6: Օգտագործելով SerialCraft Mod
Այժմ, երբ դուք տեղադրել եք SerialCraft ռեժիմը, ձեզ հարկավոր է մուտք գործել աշխարհ և սկսել օգտագործել այն: Ստեղծեք նոր աշխարհ կամ բացեք ձեր պահված աշխարհներից մեկը (եթե ցանկանում եք խաղալ մի քանի խաղացողի քարտեզի վրա, ապա պետք է համոզվեք, որ սերվերի և դրան միացած բոլոր հաճախորդների վրա տեղադրված է SerialCraft ռեժիմը): Համոզվեք, որ ձեր Creeper Detector- ը միացված է ձեր համակարգչին, այնուհետև սեղմեք K ստեղնը: Այն պետք է երկխոսություն բերի, ինչպես վերը նշված պատկերը (Windows- ում /dev/tty.usbserial…- ի փոխարեն այն պետք է ասի COM1- ի նման): Եթե ոչինչ ցուցադրված չէ, համոզվեք, որ միացրել եք Creeper Detector- ը: Կտտացրեք «Միացնել» կոճակին, այնուհետև սեղմեք «Փախուստ»: Եթե ձեր ծածկագիրը կազմվել և ճիշտ է վերբեռնվել, ապա ձեր Creeper Detector- ը լավ կլինի: Եթե սողացողը գտնվում է 32 բլոկի սահմաններում, այն պետք է լուսավորվի: Ուրախ որս:
Եթե ձեզ դուր եկավ այս Instructable- ը, խնդրում ենք հաշվի առնել այն Minecraft մրցույթում և Epliog Challenge- ում:
Երկրորդ մրցանակ Minecraft մարտահրավեր 2018 -ում
Խորհուրդ ենք տալիս:
AI Powered Bull **** Detector: 6 քայլ (նկարներով)
AI Powered Bull **** Detector: Մի սարքը, որին մենք բոլորս կարիք ունենք, AI Powered Bull **** Detector
Creeper-BOT (Creeper Pet). 9 քայլ (նկարներով)
Creeper-BOT (Creeper Pet). Ես միշտ ցանկացել եմ պատրաստել իմ չորքոտանի ռոբոտը, և Minecraft մրցույթը լավ պատրվակ էր: Բացի այդ, ես իսկապես ուզում էի սողացող «ընտանի կենդանի»: Այս հրահանգում ես կկիսվեմ, թե ինչպես եմ դա պատրաստել և ձեզ կտամ ուղեցույց, եթե ցանկանում եք ինքներդ պատրաստել: Ենթադրում եմ, որ դուք
Varmint Detector: 29 քայլ (նկարներով)
Վարմինտի դետեկտոր. Իմ կողմից նախագծված PCB- ն «Վարմինտի դետեկտոր» է: Varmint: գոյական, հյուսիսամերիկյան ոչ պաշտոնական - անհանգստացնող վայրի կենդանի: Իմ դեպքում ագռավներն ու սկյուռիկները հարձակվում են մեր այգու վրա: Նրանք իսկապես մեծ խնդիր չեն, սա պարզապես իմ արդարացումն է ՝ արև կառուցելու համար
Pin -Pointer Metal Detector - Arduino. 6 քայլ (նկարներով)
Pin -Pointer Metal Detector - Arduino. Եթե դուք մետաղական դետեկտորի սիրահար եք կամ պարզապես աշխատասեղանի հարմար գործիք եք փնտրում, ապա ձեզ դուր կգա այս յուրահատուկ ձեռքի սլաքը `մետաղական թիրախի կոնկրետ տեղը նեղացնելու համար: Օգտագործելով չորս անկախ որոնման կծիկներ, զով LED գույնը սիգի համար
Ulsարկերակային Hubby Detector: 6 քայլ (նկարներով)
Ulsարկերակային Hubby Detector: Այս նախագիծը օգտագործում է ՌԴ ընդունիչ մոդուլ ՝ ազդանշան առաջացնող LED սիրտը գործարկելու համար, երբ հաղորդիչը գալիս է տիրույթից: Ես սա պատրաստեցի իմ նշանածի համար այս տարի Վալենտինի օրվա կապակցությամբ: Ես դեռ պետք է լիովին փորձարկեմ տիրույթը, քանի որ իրականում չեմ վերցրել հաղորդիչը