Բովանդակություն:
- Քայլ 1. Պատրաստեք NeoPixel մատանին
- Քայլ 2: Կտրեք LED- ների շերտերը
- Քայլ 3: erոդեք LED- ները
- Քայլ 4: Մեջքի պատրաստում
- Քայլ 5. Խոսափողի և Arduino- ի միացում
- Քայլ 6. Arduino- ի ծրագրավորում
- Քայլ 7: Գույների, պայծառության և տվիչների շեմի փոփոխություն
- Քայլ 8. Շրջանը ավելի մշտական դարձնելը
- Քայլ 9: Ստեղծեք նկար
- Քայլ 10: Միավորել այն
- Քայլ 11: Սովորելով սխալներից
Video: Ինտերակտիվ դանդելիոն. 11 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս նախագիծը ցույց է տալիս, թե ինչպես կարելի է դանդելիոնի ինտերակտիվ պատկեր կազմել: Այն սկսվում է որպես դեղին ծաղիկ `LED- ների համար` ծաղկաթերթերի համար, այնուհետև վերածվում է սպիտակ դանդելիոնի ժամացույցի, որը կարող է փչել `սերմերը ցրելու համար:
Այն հիմնված է Qi Jie- ի գեղեցիկ արվեստի գործի վրա, որի նկարը ոգեշնչվել է flowerեսսի Թոմփսոնի և achաքորի Բերտայի մեկ ծաղկի դիզայնով: Ես իմը պատրաստեցի գործվածքների վրա և շրջանակեցի այն գոբելենի շրջանակի մեջ ՝ Անգլիայի Դևոն քաղաքում գտնվող Tech and Textiles արտադրական տարածքի պատին, որպես սկսնակների նախագծի օրինակ, որը համատեղում է կարումը Արդուինոյի հետ:
Տեսանյութ ՝ թեթև գեղանկարչության մասին ՝ iի ieիեի կողմից
Տեսանյութ ofեսսի Թոմփսոնի և achաքորի Բերտայի մեկ ծաղկի ձևավորման մասին
Երկու գոյություն ունեցող նախագծերի ծածկագիրը հասանելի է, և ես կարծում էի, որ դա հեշտ կլինի կատարել, բայց հրահանգները նվազագույն էին, և մի քանի փորձ կատարվեց, մինչև որ գտա արդյունավետ մեթոդ: Այսպիսով, ահա ռեմիքսի ամբողջական հրահանգներն ու ժամանակը խնայող խորհուրդները, որոնք միավորում են ինչպես դիզայնի, այնպես էլ իմ սեփական փոփոխությունները:
Մանրամասները, թե ինչն ինձ մոտ չաշխատեց, վերջում են բոլորի համար, ովքեր հետաքրքրված են, թե ինչու եմ ընտրել այս ճանապարհը:
Lightի ieիեի թեթև գեղանկարչության ծածկագիր
Codeեսսի Թոմփսոնի և achաքորի Բերտայի փոքրիկ ծաղկի նկարի ծածկագիրը
Նյութեր
- Arduino UNO
- Ադաֆրուտի մատանի ՝ 12 նեոպիքսելից
- 5V ժապավեն ՝ 11 RGB LED լուսադիոդով
- Ձայնային խոսափողի ցուցիչ
- Jumper լարերը
- 5 Վ լիցքավորվող մարտկոց USB A միացումով
- Տպիչի մալուխ (USB A- ից B մալուխ)
- Սոսինձ կետեր կամ տաք սոսինձ
- A4 քարտ
- 30 սմ x 30 սմ Կրեմ բամբակյա գործվածք, օրինակ ՝ հին բարձի երես
- Կանաչ գործվածքների ներկ
- Շագանակագույն բամբակյա թել
- 70 սմ x 50 սմ Corալքավոր ստվարաթուղթ, օրինակ ՝ պիցցայի տուփեր
- Դիմակավորող ժապավեն
- 9 դյույմ ասեղնագործության օղակ ՝ նկարը շրջանակելու համար
- 9 ինքնակպչուն Velcro ներդիրներ
Գործիքներ
- Ներբեռնվել է Arduino IDE համակարգիչ
- Sոդման երկաթ և առանց կապարի զոդման սարք
- Գրատախտակ `փորձարկման սխեմայի համար
- Մետաղական մերկացուցիչ/կտրիչներ
- Կարի ասեղ
- Գրիչ
- Մկրատ
Քայլ 1. Պատրաստեք NeoPixel մատանին
NeoPixel մատանի հետևի մասում զոդեք տարբեր գույնի լարեր յուրաքանչյուր հզորության, գրունտի և տվյալների բարձիկների վրա:
Եթե ունեք մատանու այլ տարբերակ, ձեր լարերը կարող են նույն դիրքում չլինել, ինչ իմ լուսանկարը:
Նշեք, թե որ լարերն են մուտքի և ելքի, ինչպես նաև դրական, տվյալների և գրունտի համար, քանի որ դրանց գծանշումները գտնվում են մատանի ներքևի մասում և տեսանելի չեն լինի, երբ մատանին դիրքում է:
Քայլ 2: Կտրեք LED- ների շերտերը
RGB LED- ների շերտից կտրեք 11 առանձին LED- ներ ՝ հոգալով կտրելով կենտրոնական գծի երկայնքով ՝ կտրվածքի երկու կողմերում թողնելով զոդման բարձիկներ: Յուրաքանչյուր պահոցի վերևի մասում կպցրեք մի կտոր բլուր:
Քայլ 3: erոդեք LED- ները
Քարտի մեջտեղում անցք արեք ՝ խոսափողին տեղավորելու համար: Օգտագործելով սոսինձ կետեր, կպցրեք neo պիքսելների և առանձին LED- ների օղակը դիրքում, ինչպես ցույց է տրված, համոզվելով, որ LED- ների բոլոր սլաքները միևնույն շարանը կդառնան, երբ մարգարիտը շղթայված լինի միասին:
Եռակցման լարերը զոդեք օղակից առաջին անհատական LED- ին ՝ համապատասխանեցնելով դրական, գրունտի և տվյալների լարերը երկու LED- ների նույն բարձիկներին:
Ամենաարագ և ամենահեշտ ձևը, որը ես գտա LED- ները միացնելու համար, դա ցատկող մետաղալարն առանձին պղնձե թելերի մեջ հանելն է: Կցեք մեկ շերտ ՝ LED- ների վրա զոդված բարձիկներից յուրաքանչյուրը հաջորդին միացնելու համար ՝ համապատասխանելով դրական, տվյալների և հիմքի հետ: Պարզապես անհրաժեշտ է տաք հոդի արագ հպում, քանի որ բարձիկները նախապես զոդվել են նախորդ քայլում: Այս փուլում լարերը կտրելու փոխարեն, դրանք տարեք LED- ի վերևով, որպեսզի հասնեք մյուս կողմից ամրացված բարձիկներին: Համոզվեք, որ ոչ մի լարեր չեն հատվում կամ չեն դիպչում միմյանց, կպցրեք այդ բարձիկներին և շարունակեք դեպի վերջին LED- ի մուտքի կողմը:
Մի ամրացրեք մետաղալարը վերջին LED- ի ելքային կողմին: Ի տարբերություն որոշ LED- ների, որոնց դուք կարող եք ծանոթ լինել, ձեզ հարկավոր չէ լրացնել շրջանաձև միացում, որը միացնում է էլեկտրաէներգիան գետնին, քանի որ ամբողջ երկարությամբ միացրել եք առանձին հող և դրական գծեր: Կտրեք բոլոր լարերը, որոնք անցնում են LED- ների վերևում, այնպես որ դրանց միջև կապող միայն լարեր ունեք:
Հուշում. Որպեսզի լարերը չդիպչեն կլոր անկյուններ անցնելիս, յուրաքանչյուրը հետ կպցրեք պլաստիկ մեկուսացման մի փոքր շերտի մեջ, որը նախկինում հեռացվել էր:
Քայլ 4: Մեջքի պատրաստում
Սպիտակ քարտի մեջ մեկ այլ անցք կատարեք մուտքային լարերի համար և դրանք ներս մղեք:
Առանձնացրեք գոբելենի օղակի երկու օղակները: Ամենափոքր օղակի արտաքին կողմը գծեք 5 կտոր ծալքավոր քարտի վրա և կտրեք դրանք: Օղակներ պատրաստելու համար շրջանակներից 3 -ի միջնամասում կտրեք անցքեր `մոտավորապես 2 սմ խորությամբ և յուրաքանչյուրից կտրեք 5 մմ ճեղք: Կպչեք օղակները միմյանց վրա ՝ շարելով ճեղքերը և կպցրեք այն քարտի մնացած շրջանակներից մեկին:
Քայլ 5. Խոսափողի և Arduino- ի միացում
Միացրեք ձեր Arduino- ն խոսափողի սենսորին և LED օղակին, ինչպես ցույց է տրված: Ես օգտագործել եմ TinkerCad- ը ՝ միացման սխեմա ստեղծելու համար, որը չունի խոսափողի պատկեր, այնպես որ ես փոխարինել եմ մեկ այլ սենսոր, որն օգտագործում է նույն կապերը և նույն կերպ է աշխատում մոդելավորման մեջ:
Սիմուլյացիան դիտելու համար այցելեք https://www.tinkercad.com/things/5cgI2wluA0c: Քաշեք սենսորին ամրացված շրջանակը ակտիվ տարածքի վրա ՝ խոսափողի մեջ փչելը նմանակելու համար: LED- ները 6 -ի վրա շերտերով են, ուստի մոդելավորման վերջին LED- ը դիզայնի մաս չէ և չի լուսավորվում:
Քայլ 6. Arduino- ի ծրագրավորում
Բացեք Arduino IDE- ն ձեր համակարգչում և սկսեք նոր ուրվագիծ leteնջել ուրվագծի ներսում եղածը և դրա փոխարեն պատճենեք և տեղադրեք դրա մեջ
// Հարմարեցվել է օգտագործելով NeoPixel Ring պարզ էսքիզ (գ) 2013 Shae Erisson // և սենսորային ծածկագիր ՝ https://www.hackster.io/ingo-lohs/first-test-37-s… #ներառել // Ո՞ր քորոցը Արդուինոն կապվա՞ծ է NeoPixels- ի հետ: #սահմանեք PIN 6 // Քանի՞ NeoPixel է կցված Arduino- ին: #սահմանել NUMPIXELS 23 // Երբ մենք կարգավորում ենք NeoPixel գրադարանը, մենք նրան ասում ենք, թե քանի պիքսել է, և որ քորոցն օգտագործել ազդանշաններ ուղարկելու համար: // Նկատի ունեցեք, որ ավելի հին NeoPixel շերտերի համար կարող է անհրաժեշտ լինել փոխել երրորդ պարամետրը `տե՛ս strandtest // օրինակը հնարավոր արժեքների մասին լրացուցիչ տեղեկությունների համար: Adafruit_NeoPixel պիքսել = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int հետաձգում = 500; // կես վայրկյան int int sensorPin = A0; // ընտրեք մուտքի քորոց սենսորի համար int sensorValue = 0; // փոփոխական ՝ սենսորի const int շեմից եկող արժեքը պահելու համար = 200; // կամայական շեմի մակարդակ, որը գտնվում է անալոգային մուտքի դատարկության կարգաբերման տիրույթում () {pixels.begin (); // Սա նախաստորագրում է NeoPixel գրադարանը: pixels.setBrightness (20); // Սահմանել պայծառությունը Serial.begin (9600); } void loop () {// NeoPixels- ի հավաքածուի համար առաջին NeoPixel- ը 0 է, երկրորդը `1, մինչև պիքսելների հաշվարկը հանած մեկ: // Dandelion LEDs // պիքսելներ. Գույնը վերցնում է RGB արժեքները ՝ 0, 0, 0 -ից մինչև 255, 255, 255 պիքսել: setPixelColor (0, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (1, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (2, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (3, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (4, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (5, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (6, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (7, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (8, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (9, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (10, պիքսել. Color (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (11, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (12, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (13, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (14, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (16, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (17, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (18, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (19, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (20, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (21, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (22, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.show (); // Սա ուղարկում է պիքսելների թարմացված գույնը ապարատին: ուշացում (հետաձգում*6); // flowerաղիկից սերմի գլուխ աստիճանաբար փոփոխություն // պիքսելներ: Գույնը վերցնում է RGB արժեքները ՝ 0, 0, 0 -ից մինչև 255, 255, 255 պիքսել: setPixelColor (0, պիքսել: Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (1, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (2, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (3, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (4, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (5, պիքսել. Գույն (226, 246, 255)); // bluishwhite pixels.setPixelColor (6, պիքսել. Color (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (7, պիքսել. Գույն (226, 246, 255)); // bluishwhite pixels.setPixelColor (8, պիքսել. Color (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (9, պիքսել. Գույն (226, 246, 255)); // bluishwhite pixels.setPixelColor (10, պիքսել. Color (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (11, պիքսել. Գույն (226, 246, 255)); // կապտավուն. pixels.setPixelColor (12, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (13, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (14, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (16, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (17, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (18, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (19, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (20, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (21, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (22, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.show (); // Սա ուղարկում է պիքսելների թարմացված գույնը ապարատին: ուշացում (ուշացում*6); // Seed head LEDs pixels.setPixelColor (0, պիքսել. Color (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (1, պիքսել. գույն (0, 0, 0)); // անջատված pixels.setPixelColor (2, պիքսել. Color (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (3, պիքսել. Գույն (0, 0, 0)); // անջատված է pixels.setPixelColor (4, պիքսել. Color (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (5, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (6, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (7, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (8, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (9, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (10, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (11, պիքսել. Գույն (226, 246, 255)); // անջատված pixels.setPixelColor (12, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (13, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (14, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (16, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (17, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (18, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (19, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (20, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (21, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (22, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.show (); // Սա ուղարկում է պիքսելների թարմացված գույնը ապարատին: ուշացում (ուշացում*3); // Որոշ ժամանակով հետաձգում (միլիվայրկյաններով): pixels.setPixelColor (0, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (1, պիքսել. գույն (0, 0, 0)); // անջատված pixels.setPixelColor (2, պիքսել. Color (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (3, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (4, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (5, պիքսել. Գույն (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (6, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (7, պիքսել. Color (255, 165, 0)); // Նարնջագույն: pixels.setPixelColor (8, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (9, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (10, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (11, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (12, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (13, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (14, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (16, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (17, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (18, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (19, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (20, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (21, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (22, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.show (); // Սա ուղարկում է պիքսելների թարմացված գույնը ապարատին: ուշացում (ուշացում*3); // Որոշ ժամանակով հետաձգում (միլիվայրկյաններով): pixels.setPixelColor (0, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (1, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (2, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (3, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (4, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (5, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (6, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (7, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (8, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (9, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (10, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (11, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (12, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (13, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (14, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (16, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (17, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (18, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (19, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (20, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (21, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (22, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.show (); // Սա ուղարկում է պիքսելների թարմացված գույնը ապարատին: ուշացում (ուշացում); // Որոշ ժամանակով հետաձգում (միլիվայրկյաններով): // Կարդացեք սենսորի արժեքը և ցուցադրեք այն սերիական մոնիտորի sensorValue = analogRead (sensorPin); Serial.println (sensorValue); ուշացում (250); // Մինչ սենսորի արժեքը շեմից փոքր է, ստուգեք սենսորի արժեքը և տպեք այն սերիական մոնիտորի վրա: Երբ արժեքը գերազանցում է շեմը, ուրվագիծը կարող է շարունակվել (sensorValue <threshold) {sensorValue = analogRead (sensorPin); Serial.println (sensorValue); ուշացում (250); } // Առաջին քամու LED- ները pixels.setPixelColor (0, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (1, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (2, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (3, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (4, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (5, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (6, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (7, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (8, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (9, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (10, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (11, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (12, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (13, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (14, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (15, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (16, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (17, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (18, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (19, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (20, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (21, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (22, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.show (); // Սա ուղարկում է պիքսելների թարմացված գույնը ապարատին: ուշացում (ուշացում); // Որոշ ժամանակով հետաձգում (միլիվայրկյաններով): // Երկրորդ քամու LED- ները pixels.setPixelColor (0, պիքսելներ. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (1, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (2, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (3, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (4, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (5, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (6, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (7, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (8, պիքսել. գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (9, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (10, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (11, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (12, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (13, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (14, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (15, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (16, պիքսել. Գույն (0, 0, 0)); // Անջատված: pixels.setPixelColor (17, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (18, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (19, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (20, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (21, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ: pixels.setPixelColor (22, պիքսել. Գույն (226, 246, 255)); // կապտավուն սպիտակ:pixels.show (); // Սա ուղարկում է պիքսելների թարմացված գույնը ապարատին: ուշացում (2000); // Որոշ ժամանակով հետաձգում (միլիվայրկյաններով): }
Կցեք ձեր Arduino- ն համակարգչին USB տպիչի մալուխով
Գնացեք Գործիքներ> Տախտակ և ընտրեք Arduino/Genuino UNO տախտակը
Գնացեք Պորտ և համոզվեք, որ տախտակը միացված է ճիշտ USB պորտին: Եթե վստահ չեք, կարող եք անջատել Arduino- ն և միանալ, թե որ նավահանգիստն է անհետանում ցուցակից: Միացրեք այն նորից, և նավահանգիստը կրկին կցուցադրվի:
Վերբեռնեք ուրվագիծը ՝ կտտացնելով վերբեռնման պատկերակին, որը նշված է ծանոթագրված լուսանկարում: Arduino- ի վերբեռնման ընթացքում լույսերը պետք է վառվեն: Երբ ավարտի LED- ների կեսի ներբեռնումը neo պիքսելային մատանու վրա, կբացվի դեղին գույնը, այնուհետև կդառնա սպիտակ լույսերի ամբողջական օղակ: Շղթան ստուգելու համար միացրեք խոսափողը: Արտաքին շերտերի LED- ները պետք է հերթով լուսավորվեն: Ստուգեք զոդը ցանկացած LED- ների վրա, որոնք չեն աշխատում:
Քայլ 7: Գույների, պայծառության և տվիչների շեմի փոփոխություն
Գույներ
LED- ների գույները սահմանվում են RGB (կարմիր կանաչ կապույտ) գույնի արժեքներով: Եթե նախընտրում եք օգտագործել տարբեր գույներ, քան ես օգտագործել եմ, կարող եք գտնել ձեր ուզած գույների արժեքները ՝ օգտագործելով առցանց RGB գույնի հաշվիչ, օրինակ ՝ www.w3schools.com/colors/colors_rgb.asp
LED- ն անջատելու համար օգտագործեք 0, 0, 0 արժեքները:
LED- ը սպիտակի վրա դնելու համար օգտագործեք 255, 255, 255 արժեքները: Նախորդ քայլի կոդը օգտագործում է կապտավուն սպիտակ ՝ 226, 246, 255 և նարնջագույն ՝ 255, 165, 0 արժեքներով:
Պայծառություն
LED- ների պայծառությունը փոխելու համար անցեք ծածկագրի void setup բաժինը և գտեք կոդի հետևյալ տողը.
pixels.setBrightness (20); // Սահմանել պայծառությունը
Փոփոխեք թիվը փակագծերում ՝ LED- ների պայծառությունը փոխելու համար:
Սենսորային շեմ
Երբ գործարկում եք ծրագիրը, NeoPixel օղակի կեսը սկսում է դեղին լինել ՝ ծաղիկ ներկայացնելու համար և աստիճանաբար փոխվում է սպիտակ LED- ների ամբողջական շրջանակի ՝ սերմի գլուխը ներկայացնելու համար: Այս պահին ծրագիրը պետք է դադար տա, քանի դեռ չեք փչել խոսափողի սենսորին: Եթե ծրագիրը շարունակվի և լուսավորի LED- ների արտաքին շերտերը ՝ առանց սենսորից ակտիվացնելու, անցեք ծածկագրի դատարկ կարգաբերման բաժին և իջեցրեք ստորև ներկայացված արժեքը: Բարձրացրեք արժեքը, եթե ծրագիրը դադար է տալիս, բայց չի արձագանքում, երբ հարվածում եք սենսորին:
const int շեմ = 200;
Քայլ 8. Շրջանը ավելի մշտական դարձնելը
Երբ միացումն աշխատում է, անջատեք Arduino- ն համակարգչից և հեռացրեք խոսափողի սենսորը տախտակից: Arduino- ից լարեր կպցրեք միկրոֆոնի սենսորին, որպեսզի միացումն ավելի մշտական լինի: Հետևից խոսափողը մղեք քարտի անցքի միջով: Անհրաժեշտության դեպքում զգուշորեն թեքեք խոսափողը 90 աստիճանով, որպեսզի տախտակը կարողանա հարթ պառկել քարտի հետևում: Միացրեք մարտկոցը Arduino- ին `օգտագործելով տպիչի մալուխը, և ամբողջ հաջորդականությունը պետք է աշխատի:
Քայլ 9: Ստեղծեք նկար
Ձեր հյուսվածքի վրա մի անցք կատարեք, որտեղ ցանկանում եք խոսափողը: Ես մի փոքր անցք այրելու համար օգտագործեցի տաք միացնող երկաթ և կտրեցի այն մկրատով, մինչև խոսափողը տեղավորվեց: Ներկեք և կարեք ձեր ծաղիկը գործվածքների վրա: Երբ ներկը չորանում է, ամրացրեք նկարը ասեղնագործության օղակին և կտրեք ավելորդ հյուսվածքը ՝ թողնելով մի փոքր եզր:
Տեսնելու համար, թե արդյոք շղթայի բաղադրիչներից որևէ մեկը ցույց է տալիս գործվածքների միջով, ժամանակավորապես տեղադրեք գործվածքը և օղակը քարտի վերևում, իսկ խոսափողը `անցքից: Անհրաժեշտության դեպքում ծածկեք շրջանը դիմակավոր ժապավենի շերտերով ՝ երբեմն ստուգելով, մինչև բաղադրիչներն այլևս չեն երևում: LED- ները բավական պայծառ են, որպեսզի դրանք դիտվեն դիմակավոր ժապավենի շերտով: Եթե ստիպված եք նույնիսկ ավելի շատ շերտեր ավելացնել, կարող եք լուսադիոդներն ավելի պայծառ դարձնել ՝ ձեր ծածկագիրը հարմարեցնելով, ինչպես ցույց է տրված Քայլ 7 -ում:
Տեղադրեք գործվածքը և օղակը քարտի վերևում, ինչպես նախկինում, և ամրացրեք տեղում ՝ սոսնձելով լրացուցիչ կտորը քարտի հետևի մասում:
Քայլ 10: Միավորել այն
Կպչեք սպիտակ քարտը ծալքավոր ստվարաթղթե շրջանակի վրա ՝ փակելով խոսափողը, բայց ոչ Arduino- ն և մարտկոցը, որոնք պետք է շրջվեն ստվարաթղթե եզրով, իսկ լարերը անցնեն ճեղքերով:
Կցեք ստվարաթղթի վերջին շրջանակը Velcro- ով, որպեսզի կարողանաք մուտք գործել մարտկոց: Ստվարաթղթի վրա փոս պատրաստեք, որտեղ ցանկանում եք այն կախել պատից կարթից:
Քայլ 11: Սովորելով սխալներից
Իմ առաջին փորձը շրջանաձեւ կպչուն պիտակներ և պղնձե ժապավեն էր: Շղթայական կպչուն պիտակներ LED- ների փոքր մակերես են, որոնք տեղադրված են պղնձե բարձիկներով կպչուն պիտակների վրա: Նրանք գալիս են Qi Jie ընկերության Chibitroniks ընկերությունից, և ես կարծում էի, որ նրանք կատարյալ կլինեն:
Պղնձե ժապավենով կամ արծաթե ժապավենով ես չկարողացա հուսալի կապ հաստատել, և երբ կպչուն պիտակներ կպցրեցի, կարողացա լուսավորել միայն 3 LED կպչուն պիտակներ `9 Վ մարտկոցով: Պարզ դարձավ, որ դրանք նախատեսված չեն շատ թեթև նախագծերի համար, ինչպես ես հույս ունեի: Երբ ավելի մանրակրկիտ նայեցի շղթայական կպչուն պիտակների մասին վեբ էջին, 4 լույսերով նախագիծը պարզվեց, որ այլ տեսակի LED- ներ են: Ես կարող էի միացնել կպչուն պիտակներ 12 Վ մարտկոցով, բայց դա չափազանց զանգվածային կլիներ նկարի ներսում տեղադրելու համար:
Հետո ես փորձեցի կարելու համար նախատեսված LED- ները: Ես կարծում էի, որ միայն հզորություն և հող ունենալը ավելի հեշտ կլինի լարել, քան ծրագրավորվող LED- ները, որոնք ունեն հոսանքի, գրունտի և տվյալների գծեր: Բայց պարզվեց, որ դա ավելի բարդ միացում էր, որը լրացուցիչ էներգիայի և MOSFET- ի կարիք ուներ, որը ես չունեի: Ես կարող էի օգտագործել կոյուղու NeoPixels, բայց դրանք ավելի թանկ են:
Այսպիսով, մի քանի կեղծ մեկնարկից հետո ես ավարտեցի մի շարք ծրագրավորվող LED- ներ, որոնք էժան են և հեշտ օգտագործման համար:
Խորհուրդ ենք տալիս:
BBC Micro: bit and Scratch - Ինտերակտիվ ղեկ և մեքենա վարելու խաղ. 5 քայլ (նկարներով)
BBC Micro: bit and Scratch - Ինտերակտիվ ղեկ և մեքենա Ես կարծում էի, որ սա կատարյալ հնարավորություն էր ՝ իմ ThreadBoard- ի միջոցով ներկառուցված համակարգ ստեղծելու համար: Իմ ոգեշնչումը քերծվածքների համար
Ինտերակտիվ LED սալիկի պատ (ավելի հեշտ, քան թվում է). 7 քայլ (նկարներով)
Ինտերակտիվ LED սալիկների պատ (ավելի հեշտ, քան թվում է). Այս նախագծում ես կառուցեցի ինտերակտիվ LED պատի էկրան `օգտագործելով Arduino և 3D տպագիր մասեր: Այս նախագծի ոգեշնչումը մասամբ եկավ Nanoleaf սալիկներից: Ես ուզում էի հանդես գալ իմ սեփական տարբերակով, որը ոչ միայն ավելի մատչելի էր, այլև
Ինտերակտիվ հեքիաթասաց ռադիո. 6 քայլ (նկարներով)
Ինտերակտիվ պատմող ռադիո. Այս նախագծում մենք կոկիկ տեսք ունեցող ռադիոն վերածում ենք ձայնի հնարավորություն ունեցող ինտերակտիվ պատմողի: Ապագա, ահա մենք գալիս ենք:
Ինտերակտիվ ռեֆլեքսային դակիչ պայուսակ. 3 քայլ (նկարներով)
Ինտերակտիվ ռեֆլեքսային դակիչ պայուսակ. Սա ուսանելի է բոլոր նրանց համար, ովքեր ցանկանում են կատարելագործել իրենց ճարպկությունն ու բռնցքամարտի հմտությունները `միանալով ավելի մեծ փորձի` օգտագործելով Arduino, LED- ները և MK 2125 արագացուցիչը: Այս նախագծի նպատակն է փոփոխել գոյություն ունեցող ռեֆլեքսային պայուսակը և փոխանցել
Minecraft ինտերակտիվ մի մուտքագրեք սուր/նշան (ESP32-CAM). 15 քայլ (նկարներով)
Ինտերակտիվ Minecraft մի մուտքագրեք սուր/նշան (ESP32-CAM). Իրականում կան մի քանի պատճառ, թե ինչու է այս նախագիծը գոյացել. 1. Որպես TaskScheduler կոոպերատիվ բազմաֆունկցիոնալ գրադարանի հեղինակ ՝ ես միշտ հետաքրքրված էի, թե ինչպես համատեղել համատեղ բազմակողմանի աշխատանքի առավելությունները նախապատվության առավելությունների հետ