Բովանդակություն:

Advent Lantern With POV անիմացիա ՝ 7 քայլ
Advent Lantern With POV անիմացիա ՝ 7 քայլ

Video: Advent Lantern With POV անիմացիա ՝ 7 քայլ

Video: Advent Lantern With POV անիմացիա ՝ 7 քայլ
Video: Don't stand together on deck #titanic#sink#animation#3d#funny#fyp#choubao#shorts 2024, Հուլիսի
Anonim
Image
Image

Տեսողության համառություն (POV) նախագծերը բավականին երկար ժամանակ են, պարզ և էժան DIY հավաքածուները նույնիսկ մատչելի են առցանց գնումների համար: POV- ն հիմնված է օպտիկական պատրանքի վրա, երբ մենք տեսնում ենք լուսավորված առարկաներ այն բանից հետո, երբ օբյեկտն այլևս չի լուսավորվում նույնիսկ կարճ ժամանակով: Ավանդական POV նախագծերը ցուցադրում են այս սկզբունքով կամ առավելագույնը աշխատող ժամացույցներ: Այնուամենայնիվ, ոչինչ չի խանգարում անիմացիաների նախագծմանը `օգտագործելով ժամացույցի արագության և խելացի RGB LED- ների միկրոկոնտրոլերներ: Այս անիմացիան իրենից ներկայացնում է Ամանորյա դեկորացիայի համար հյուսիսային եղջերուներին, որը կարող է հեռակա կարգով վերահսկվել ցանկացած վեբ դիտարկիչով WiFi շարժական սարքի միջոցով: Լապտերը սնուցվում է Arduino ընտանիքի Wemos ESP8266 D1 Mini միկրոկառավարիչով: 8-բիթանոց հյուսիսային եղջերու անիմացիոն շրջանակների վարկը բաժին է հասնում տաղանդավոր գրաֆիկ նկարիչ Ռիչարդ Ֆենիոյին:

Քայլ 1: Մասերի ցուցակ

Համագումարի քայլերը
Համագումարի քայլերը

Այս նախագծի համար ձեզ հարկավոր կլինի պատյան, որը բավական ծանր է, որպեսզի պտտվող միավորը տեղում պահի ՝ առանց շրջվելու: Հին PSU պատյանը կատարյալ է, պարզապես զգույշ եղեք, որ կոնդենսատորները լիցքաթափվեն նախքան ապամոնտաժվելը: Ձեզ նույնպես կպահանջվի 5V-12V սնուցման ցանկացած տեսակի ադապտեր ՝ DC շարժիչը սնուցելու համար: Իրոք, 500 մԱ և ավելի բարձր հզորությունից դա կանի:

Պահանջվող մասերը թվարկված են ստորև ՝ վեբ խանութի հղումներով և ընթացիկ գներով:

  • 2 հատ 18650 Մարտկոց, 4 ԱՄՆ դոլար, 78 դոլար
  • Մարտկոցի սեփականատեր ՝ 2x18650, 0 ԱՄՆ դոլար, 63 դոլար
  • Wemos D1 Mini, 2 դոլար, 14 դոլար
  • Սև ծղոտ, 0 դոլար, 10 դոլար
  • Ինֆրակարմիր ռեֆլեկտիվ սենսոր, 0 դոլար, 38 դոլար
  • 250V Power Rocker անջատիչ, 0 դոլար, 10 դոլար
  • Փոխել սահիկի անջատիչը, 0 դոլար, 02 դոլար
  • 6-900rpm DC շարժիչ, 3 դոլար, 99 ԱՄՆ դոլար
  • Adafruit Neopixel WS2812 8-բիթ, 1 ԱՄՆ դոլար, 01

Ընդհանուր արժեքը 15 դոլարից պակաս է, բայց ձեզ հարկավոր են նաև ձեռքի գործիքներ, հորատում, տաք սոսինձ, զոդման սարքավորումների և հմտությունների հետ միասին:

Քայլ 2. Համագումարի քայլեր

Այս քայլերից հետո միավորը կարող է ամբողջությամբ հավաքվել:

  1. Ստացիոնար հիմքը կառուցված է DC շարժիչով և անջատիչով:
  2. Նեոպիքսելները զոդվում են եւ ամրացվում ծղոտի լիսեռին:
  3. Պտտվող սարքավորումը կառուցված է միկրոկառավարիչով, սլայդերի անջատիչով, ինֆրասենսորով և ծղոտի լիսեռով:
  4. Էլեկտրամոնտաժը ամրացված է էլեկտրական մասերի միակցիչների վրա
  5. Arduino կոդը վերբեռնվում է Wemos միկրոկոնտրոլերի վրա:

Քայլ 3. 1. Ստացիոնար բազա DC շարժիչով

1. Ստացիոնար բազա ՝ DC շարժիչով
1. Ստացիոնար բազա ՝ DC շարժիչով
1. Ստացիոնար բազա ՝ DC շարժիչով
1. Ստացիոնար բազա ՝ DC շարժիչով
1. Ստացիոնար բազա ՝ DC շարժիչով
1. Ստացիոնար բազա ՝ DC շարժիչով
  1. Գործի վրա անցք բացեք և ամրացրեք DC շարժիչը այնպես, որ լիսեռը դեպի վեր լինի:
  2. Sոդեք ճոճվող հոսանքի անջատիչը և սովորական 5V-12V սնուցման ադապտերը ՝ ստորև բերված էլեկտրագծերի սխեմայի համաձայն:
  3. Ուղղորդված DC շարժիչը պտտվում է մոտ 800 RPM (րոպեում պտույտներ) 12 Վ արագությամբ, ինչը հանգեցնում է վերջնական կարգավորման մոտ 10 FPS (վայրկյան մեկ շրջանակի) ՝ կախված ծղոտի լիսեռի քամու իրական դիմադրությունից:
  4. Միացրեք սնուցման ադապտերը վարդակին (110 կամ 220 Վ):
  5. Միացրեք ռոքը և ստուգեք DC շարժիչի աշխատանքը:

Հաջորդը, պտտվող սարքավորումը կհավաքվի և ամրացվի բազայի DC շարժիչի լիսեռի վրա:

Քայլ 4: 2. Neopixel հավելված

2. Neopixel հավելված
2. Neopixel հավելված
2. Neopixel հավելված
2. Neopixel հավելված
  1. Կտրեք ծղոտի ծայրը երկու հակադիր կողմերում `մեկ ծայրով մոտ 1,5 սմ -ով, ինչպես ցույց է տալիս նկարը:
  2. Aceանյակը երեք ավելի երկար լար է ծղոտին: Սրանք Neopixel- ի կապումներն են միացնում Wemos նավահանգիստներին ՝ սարքի վրա:
  3. Երեք լարերը կպցրեք Neopixel կապում GND, 5V և D-IN:
  4. Թեժ սոսինձ ՝ Neopixels- ից զոդված կոկիկ և կոկիկ մետաղալարերը մինչև վերջ ՝ LED վահանի ճշգրիտ կեսով:
  5. Քաշեք ծղոտի կտրված թևերը և տաք սոսնձեցրեք դրանք ճշգրիտ համաչափությամբ LED շերտի կենտրոնի վրա (մի կողմից լարերի վերևում):
  6. Հաղորդալարերն անցնում են ծղոտի ներսում մինչև ամբարձիչ ՝ հասնելու համապատասխան Wemos նավահանգիստներին:

Քայլ 5. 3. Պտտվող սարքավորման հավաքում

3. Պտտվող սարքավորման ժողով
3. Պտտվող սարքավորման ժողով

Ամբողջ սարքը պետք է ամբողջությամբ հավաքվի, նախքան DC շարժիչի լիսեռին ամրացնելը: Դա պայմանավորված է նրանով, որ ամրացման տեղը պետք է հավասարակշռված լինի, որպեսզի պտույտը կատարյալ կենտրոնացված լինի առանց որևէ տատանումների:

  1. Wemos D1 Mini միկրոկառավարիչի տաք սոսինձը և սլայդերի անջատիչը մարտկոցի կրիչի մի կողմում, ինչպես ցույց է տրված նկարում:
  2. Տաք սոսնձեք ինֆրակարմիր անդրադարձման սենսորը մարտկոցի կրիչի մյուս կողմում:
  3. Տեղադրեք մարտկոցները ամրացման մեջ:
  4. Մարտկոցների վրա դրեք և ամրացրեք ծղոտի մյուս ծայրը: Մի փոքր պտուտակ կամ ռետինե օղակ դա կանի: Համոզվեք, որ այն չի կորչի, երբ սարքը սկսում է պտտվել 10 RPM- ով:
  5. Տեղադրեք սարքերի ամբողջ ծանրության կենտրոնը ներքևի մասում: Ձեր մատի ծայրին հավասարակշռելով դա կանեք:
  6. Կատարեք մի փոքր անցք մարտկոցի կրիչի ներքևի ճշգրիտ տեղում:
  7. Կիրառեք տաք սոսինձ և ամրացրեք շարժիչի լիսեռը այդ անցքի մեջ: Համոզվեք, որ տաք սոսինձը չի մտնում շարժիչի մարմնի մեջ: Պահպանեք այն կայուն, մինչև սոսինձը չորանա:
  8. Կտրեք մի փոքր կտոր սպիտակ թուղթ և կպցրեք այն ստացիոնար հիմքի վրա այնպես, որ ինֆրակարմիր անդրադարձիչ տվիչը շրջվի հենց այդ թղթի մոտ: Սա կհանգեցնի անիմացիայի շրջանակների գծագրմանը յուրաքանչյուր պտույտի ճշգրիտ տեղում: Նկարը ցույց է տալիս այս արտացոլման կտորը հիմքի ներքևի ներքևի անկյունում:

Քայլ 6: 4. Էլեկտրական բաղադրիչների միացում

4. Էլեկտրական բաղադրիչների միացում
4. Էլեկտրական բաղադրիչների միացում

Էլեկտրագծերի սխեմայից հետո էլեկտրական բաղադրիչները կպցրեք հետևյալ քայլերին: Ուշադրություն դարձրեք, որ Wemos D1 Mini միկրոկառավարիչի նույն նավահանգիստը մի քանի անգամ կզոդվի մի քանի տարբեր լարերով: Դա պահանջում է որոշակի պրակտիկա, կամ միացրեք այս լարերը նախքան Wemos նավահանգստին միանալը:

  1. Երեք լար (GND, 5V և D-IN) միացված են Wemos G, 5V և D3 նավահանգիստներին համապատասխանաբար:
  2. Ինֆրակարմիր ռեֆլեկտիվ սենսորից (VCC, GND, OUT) երկու լար լարված են Wemos նավահանգիստների վրա `համապատասխանաբար 5V, G և D2:
  3. Մարտկոցի կրիչի գրունտ (Սև) մետաղալարը կպցված է Wemos G նավահանգստի վրա:
  4. Մարտկոցի սեփականատիրոջ դրական (կարմիր) մետաղալարը սոսնձված է սլայդ անջատիչի ամենամոտ կապում:
  5. Wemos 5V պորտը միացված է սլայդ անջատիչի մյուս քորոցին:

Քայլ 7: 5. Arduino կոդ

5. Arduino կոդ
5. Arduino կոդ

Այս հատուկ ծածկագիրը POV Lantern- ի 24 բիթանոց տարբերակի համար է, որը կարող է հեռակա կարգով կառավարվել վեբ դիտարկիչներով ցանկացած բջջային սարքի կողմից և ունի տեսողական էֆեկտներ, ինչպիսիք են World Map- ը, Matrix Animation Effect- ը և Reindeer Sleight անիմացիան: Ազատորեն հարմարեցրեք պիքսելների քանակը, էֆեկտի պարամետրերը կամ WiFi հեռակա ինտերֆեյսը ձեր կարիքներին ՝ աղբյուրի կոդի մեջ:

// 24 բիթ POV Lantern - 2019 Պիտեր sուրգեյ

#ներառել ESP8266WiFiMulti.h

#ներառել WiFiClient.h #ներառել ESP8266WebServer.h #ներառել WebSocketsServer.h #ներառել Adafruit_NeoPixel.h

#սահմանեք DEBUG 1 -ը

Լարային տեքստ [3] = {"INSTRUCTABLES", "ARDUINO", "CONTEST"};

const uint8_t ներկապնակ [8] [3] = {

{0, 0, 0}, // 0 - Թափանցիկ {0, 0, 127}, // 1 - կապույտ {127, 0, 0}, // 2 - կարմիր {127, 127, 0}, // 3 - Դեղին {0, 127, 0}, // 4 - Կանաչ {127, 24, 0}, // 5 - Նարնջագույն {127, 0, 127}, // 6 - Մագենտա {127, 127, 127} // 7 - Սպիտակ};

const unsigned char world [24] [42] PROGMEM =

{ { 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0 }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0 }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0 }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } };

const unsigned char char պղպեղ [24] [8+31] PROGMEM =

{ { 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 1, 1, 1, 1, 1, 0, 0, 4, 4, 4, 0, 0, 4, 4, 4, 4, 0, 4, 4, 4, 0, 0, 4, 4, 4, 0, 0, 4, 4, 4, 4, 0, 4, 4, 4, 0, 0 }, { 0, 1, 1, 1, 1, 1, 1, 0, 0, 4, 0, 0, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 4, 0 }, { 1, 1, 0, 1, 1, 0, 1, 1, 0, 4, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 0, 0, 4, 0 }, { 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 4, 4, 0, 0, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 4, 4, 4, 0, 0, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0 }, { 0, 1, 1, 0, 0, 1, 1, 0, 0, 4, 0, 0, 0, 0, 4, 4, 4, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4, 4, 4, 4, 0, 4, 0, 0, 4, 0 }, { 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 4, 4, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0 }, { 0, 4, 4, 4, 4, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 4, 4, 4, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0 }, { 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0 }, { 0, 4, 0, 0, 4, 0, 0, 4, 4, 0, 0, 4, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 0, 0, 4, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 1, 1, 1, 1, 1, 0, 0, 4, 4, 4, 0, 0, 4, 4, 4, 4, 0, 4, 4, 4, 0, 0, 4, 4, 4, 0, 0, 4, 4, 4, 4, 0, 4, 4, 4, 0, 0 }, { 0, 1, 1, 1, 1, 1, 1, 0, 0, 4, 0, 0, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 4, 0 }, { 1, 1, 0, 1, 1, 0, 1, 1, 0, 4, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 0, 0, 4, 0, 4, 0, 0, 4, 0, 4, 4, 4, 0, 0, 4, 0, 0, 4, 0 }, { 1, 1, 1, 1, 1, 1, 1, 1, 0, 4, 4, 4, 0, 0, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0, 4, 4, 4, 0, 0, 4, 0, 0, 0, 0, 4, 4, 4, 0, 0 }, { 0, 1, 1, 0, 0, 1, 1, 0, 0, 4, 0, 0, 0, 0, 4, 4, 4, 4, 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 4, 4, 4, 4, 0, 4, 0, 0, 4, 0 }, { 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } };

const unsigned char abc [8] [27*5] PROGMEM = {

{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } };

const անստորագիր char santa [4] [8] [41] PROGMEM = {

{ { 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0 }, { 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 1, 1, 2, 0 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 } }, { { 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0 }, { 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 1, 1, 2, 0 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 } }, { { 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0 }, { 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0 }, { 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0 }, { 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 2, 0, 1, 0, 0, 0, 0, 0, 1, 1, 2, 0 }, { 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0 }, { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 }, { 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0 }, { 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0 } } };

#սահմանեք INFRATRIGGER_PIN D2

#սահմանել NEOPIXELS_PIN D3 #սահմանել NEO_NUMPIXELS 24

Adafruit_NeoPixel պիքսել = Adafruit_NeoPixel (NEO_NUMPIXELS, NEOPIXELS_PIN, NEO_GRB + NEO_KHZ800);

IPAddress localIPaddress;

IPAddress apIPaddress; WiFiServer սերվեր (80); WebSocketsServer webSocket = WebSocketsServer (81); uint8_t կտավ [24] [65]; uint8_t co = 0; uint8_t տեսարան = 0; uint8_t numScenes = 5; Լարային տեսարաններ [6] = {"ԱՇԽԱՐՀ", "Ձմեռ պապ", "ՊԵՊՈՐ", "ՏԵՔՍՏ", "ՄԱՏՐԻՔՍ"}; uint8_t պտտել = 1; uint8_t numGreens = 0; // MATRIX շարք ընկնող գծերի uint8_t կանաչի [64] [2]; // MATRIX պատահական pos և x ընկնող գծեր

void setup () {

if (DEBUG) {Serial.begin (9600); Serial.println («Սկսել …»); } ուշացում (3000);

ESP8266WiFiMulti wifiMulti;

wifiMulti.addAP («wifissid», «pwd»); wifiMulti.addAP («mobilessid», «pwd»); wifiMulti.addAP («laptopssid», «pwd»); if (DEBUG) Serial.print («Կայանը միացնելով»); while (wifiMulti.run ()! = WL_CONNECTED) {հետաձգում (1000); if (DEBUG) Serial.print ("."); } if (DEBUG) Serial.println (""); if (DEBUG) Serial.print ("WiFi- ն միացված է` SSID = "); if (DEBUG) Serial.println (WiFi. SSID ()); localIPaddress = WiFi.localIP (); if (DEBUG) Serial.print («Տեղական կայանի IP հասցե ՝»); եթե (DEBUG) Serial.println (localIPaddress);

server.begin ();

if (DEBUG) Serial.println ("Սերվերը (80) գործարկված է"); webSocket.begin (); webSocket.onEvent (webSocketEvent); եթե (DEBUG) Serial.println («WebSocket (81) գործարկվել է»); uint8_t coli = 0; համար (int i = 0; i <24; i ++) {for (int j = 0; j <64; j ++) {կտավ [j] = coli ++; coli = coli % 7; } կտավ [64] = 0; } pinMode (INFRATRIGGER_PIN, INPUT); attachInterrupt (digitalPinToInterrupt (INFRATRIGGER_PIN), ներկ, RISING); pixels.begin (); pixels.show (); if (DEBUG) {Serial.print ("Neopixel- ը սկսվեց, NUMPIXELS:"); Serial.println (pixels.numPixels ()); }}

void webSocketEvent (uint8_t num, WStype_t տեսակը, uint8_t * բեռնվածությունը, size_t երկարությունը) {

if (մուտքագրել == WStype_TEXT) {String req = String ((const char *) payload); if (DEBUG) {Serial.print ("81 Req:"); Serial.println (պահանջ); } processReq (պահանջ); }}

String rip2 (String s) {

Լարային վերափոխում; int i = 0; while (s ! = '/') i ++; i ++; while (s ! = '/') i ++; i ++; մինչդեռ (s ! = '/' && s ! = '' && s ! = '\ r' && s ! = '\ n') res+= s [i ++]; վերադարձ res; }

դատարկ գործընթացReq (լարային պահանջ) {

եթե (req.indexOf ("/պտտել")! = -1) {պտտել = 1; } else if (req.indexOf ("/տեսարան")! = -1) {պտտել = 0; Լարային sc = rip2 (պահանջ); եթե (isDigit (sc [0])) տեսարան = sc.toInt (); այլ {տեսարան = 0; համար (int i = 0; i

դատարկ շրջան () {

webSocket.loop (); WiFiClient client = server.available (); եթե (! հաճախորդ) {վերադարձ; } String req = client.readStringUntil ('\ r'); if (DEBUG) {Serial.print ("80 Req:"); Serial.println (պահանջ); } processReq (պահանջ);

client.flush ();

String s = "HTTP/1.1 200 OK / r / n Բովանդակություն-տեսակ. Text/html; charset = UTF-8 / r / n Access-Control-Allow-Headers: Content-Type / r / n Access-Control-Allow-Origin: *\ r / n Միացում. փակել / r / n / r / n "; s + = "localIP:" + ipToString (localIPaddress) + ""; s + = "apIP:" + ipToString (apIPaddress) + ""; client.print (ներ); ուշացում (100); client.stop (); }

դատարկ ներկ () {

համար (int i = 0; i <65; i ++) {for (int j = 0; j <24; j ++) {unsigned char ind = կտավ [j] ; pixels.setPixelColor (j, pixels. Color (գունապնակ [ind] [0], ներկապնակ [ind] [1], ներկապնակ [ind] [2])); } pixels.show (); միկրովայրկյաններ (10); } co = (co + 1) % 40; եթե (պտտել) {եթե (համատեղ == 0) {տեսարան = (տեսարան+1) % numScenes; if (DEBUG) {Serial.print ("Տեսարան."); Serial.println (տեսարան); }} if (co == 0) loadCanvas (տեսարաններ [տեսարան]); } if (տեսարաններ [տեսարան].indexOf ("SANTA")! = -1) {for (int i = 0; i <8; i ++) for (int j = 0; j = co && j

void loadCanvas (String what) {

clearCanvas (); if (DEBUG) {Serial.print ("loadCanvas:"); Serial.println (ինչ); } if (what.indexOf ("TEXT")! = -1) {for (int l = 0; l <3; l ++) for (int n = 0; n = 12 && j <51) կտավ [j] = pgm_read_byte_near (պղպեղ +j-12); } else if (what.indexOf ("WORLD")! = -1) {for (int i = 0; i <24; i ++) for (int j = 0; j = 11 && j <53) կտավ [j] = pgm_read_byte_near (աշխարհ +j-11); }}

void clearCanvas () {

if (DEBUG) Serial.println ("clearCanvas"); համար (int i = 0; i <24; i ++) for (int j = 0; j <65; j ++) կտավ [j] = 0; }

Լարային ipToString (IPAddress ip) {

Տող s = ""; (int i = 0; i <4; i ++) s+= i? "." + Լար (ip ): լարային (ip ); վերադարձ s; }

Խորհուրդ ենք տալիս: