Arduino рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ - SK6812 рдПрд▓ рдИ рдбреА рдХреЗ рд╕рд╛рде рдЯреА-рд╢рд░реНрдЯ

рд╢реБрдн рд╕рдВрдзреНрдпрд╛ рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдпрд╛ рд╕рд┐рд░реНрдл рдПрдХ рдЧрд░реНрдо рдЧрд░реНрдореА рдХреА рд╢рд╛рдо рдХреЛ рд░рд╛рд╣рдЧреАрд░реЛрдВ рдХреЛ рдЭрдЯрдХрд╛ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП? рдПрдХ рдПрд▓рдИрдбреА рдЯреА-рд╢рд░реНрдЯ рдмрдирд╛рдУ! рдореИрдВ Arduino рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреЗрд╢ рдХрд░рддрд╛ рд╣реВрдВ - рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрд▓рдИрдбреА рдЯреА-рд╢рд░реНрдЯред рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рджреЗрдЦрд┐рдП рдХреИрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛ред рдЗрд╕ рдмреАрдЪ, рдлреЛрдЯреЛред



рдореИрдВрдиреЗ рдЗрд╕ рдЯреА-рд╢рд░реНрдЯ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рджреЛ рд╢рд╛рдореЗрдВ рдмрд┐рддрд╛рдИрдВ, рдФрд░ рдлрд┐рд░ рдПрдХ рдФрд░ рд╣рдлрд╝реНрддреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрд▓рд╛, рдЗрд╕рдХреЗ рдкреБрдирд░реЛрджреНрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЖрдВрдХрдбрд╝реЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ред рдпрд╣ рдХрд┐рд╕рд╕реЗ рдмрдирд╛ рд╣реИ:

1. Arduino рдиреИрдиреЛ - рдпрд╣ рдЫреЛрдЯрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдбрд┐рдЬрд╛рдЗрдиреЛрдВ рдореЗрдВ рд╕рд┐рд▓рд╛рдИ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдХреЗрд╡рд▓ рдкреИрд░реЛрдВ рдХреЛ рдорд┐рд▓рд╛рдк!
2.64 рдПрд▓рдИрдбреА SK6812ред 8 x 8 рдХреЗ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдПред рдпреЗ рдкрд┐рдХреНрд╕реЗрд▓ рдПрдбреНрд░реЗрд╕рд┐рдВрдЧ рдХреЗ рд╕рд╛рде RGBW LED рд╣реИрдВред RGBW - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рддреАрди RGB рдХреНрд░рд┐рд╕реНрдЯрд▓ рдФрд░ рдПрдХ "рд╕реНрдХреНрд░реИрдореНрдмрд▓" рд╡реНрд╣рд╛рдЗрдЯ рдЧреНрд▓реЛ рд╣реИред рдмрд╣реБрдд рдЙрдЬреНрдЬреНрд╡рд▓!
3. рдмрджрд▓рддреЗ рдкреНрд░рднрд╛рд╡ рдХреЗ рд▓рд┐рдП рдмрдЯрдиред
4. рдмреИрдЯрд░реА 1800 рдПрдордПрдПрдЪред
5. рдПрдордЬреАрдЯреАрдПрдл рддрд╛рд░ред
6. рдорд┐рд▓рд╛рдк, рдкреНрд░рд╡рд╛рд╣, рдФрд░ рдЦрд╛рд▓реА рд╕рдордп рдХреЗ 8 рдШрдВрдЯреЗред

рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП:



рд╣рдо рдкрд╣рдирдиреЗ рдпреЛрдЧреНрдп 8 x 8 рдореИрдЯреНрд░рд┐рдХреНрд╕ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ - рдХрдкрдбрд╝реЗ рдХреЗ 20 рдлреНрд▓реИрдк рдХреЛ 20 рд╕реЗрдореА рддрдХ рд▓реЗрдВ рдФрд░ рдЗрд╕реЗ "рдореЛрдореЗрдВрдЯ" рдХреЛ рд╕рднреА 2.5 рд╕реЗрдореА рдХреА рджреВрд░реА рдкрд░ 64 рдПрд▓ рдИ рдбреА рдЧреЛрдВрдж рджреЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрда рдПрд▓ рдИ рдбреА рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдХреЛ рдКрдкрд░, рджреВрд╕рд░реЗ рдХреЛ рдиреАрдЪреЗ, рдлрд┐рд░ рдКрдкрд░, рддрд▓реА рд╣реБрдИ рд╣реИред рдиреАрдЪреЗ, рдЖрджрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреАрдбрд╝рд╛ рджреА рдЬрд╛рддреА рд╣реИ ... рдЙрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ рдХрдкрдбрд╝реЗ рд╕реЗ рдмрд╣реБрдд рдордЬрдмреВрддреА рд╕реЗ рдлрд╛рдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдЧреЗ рд╣рдо рдЙрдиреНрд╣реЗрдВ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:


рдпрд╣рд╛рдВ рднреА рд╕рдЦреНрддреА рд╣реИред рд╕реНрдХреЗрдЪ рдПрд▓рдИрдбреА рд╕рд┐рдЧреНрдирд▓ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрд░реЗрдЦ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рдФрд░ рдмрд╛рд░реА-рдмрд╛рд░реА рд╕реЗ рдмрд╛рдПрдВ рд╕реЗ рджрд╛рдПрдВ, рдлрд┐рд░ рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВред

рдХрд┐рд╕реА рднреА рджрд┐рд╢рд╛ рдореЗрдВ рдкрд╛рд╡рд░ рдПрд▓.рдИ.рдбреА. рдореИрдВрдиреЗ рдЦрд╛рдирд╛ рднреА тАЬрд╕рд╛рдБрдктАЭ рдмрдирд╛рдпрд╛ред рдкрд╣рд▓реА рдПрд▓рдИрдбреА рдХрд╛ рдЗрдирдкреБрдЯ рдЖрд░реНрдХрдбрд┐рдиреЛ рдХреЗ 12 рдЗрдирдкреБрдЯ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред Arduina рдЦреБрдж рдЙрд╕реА рдлреНрд▓реИрдк рдкрд░ рд╕рд┐рд▓ рдЬрд╛рддреА рд╣реИред рд▓рд┐рдЯрд┐рд▓ рдиреИрдиреЛ, рдкреИрд░реЛрдВ рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдПрдХ рдЯреА-рд╢рд░реНрдЯ рдХреЗ рдиреАрдЪреЗ рд▓рдЧрднрдЧ рдЕрджреГрд╢реНрдп рд╣реИред

рдХрдкрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрд▓реНрдХреНрд░реЛ рдЯреЗрдк рдкрд╣рд▓реЗ рдФрд░ рдЖрдЦрд┐рд░реА рд╕реНрддрдВрднреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд┐рд▓рдирд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рдордХрдХреНрд╖ рдХреЛ рдЕрдВрджрд░ рд╕реЗ рдЯреА-рд╢рд░реНрдЯ рдкрд░ рд╕рд┐рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЦреИрд░, рдЕрдм рдлреНрд▓реИрдк рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рдЕрдВрджрд░ рд╕реЗ рдЯреА-рд╢рд░реНрдЯ рд╕реЗ рдЪрд┐рдкрдХрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдЕрднреА рднреА рдмрджрд▓рддреЗ рдкреНрд░рднрд╛рд╡ рдФрд░ рдПрдХ рдмреИрдЯрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди рд╣реИред рд╡реЗ рдЕрднреА рднреА рдкреАрдЫреЗ рдХреА рдЬреЗрдм рдореЗрдВ рд╣реИрдВред

рдЕрдм рд╕реНрдХреЗрдЪ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдореЗрд░реЗ рд╕рд╣рд╛рдпрдХ рдХреИрдерд░реАрди рдХреА рдЯреА-рд╢рд░реНрдЯ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ, KATRINDETKA рдЕрдХреНрд╖рд░реЛрдВ рдХреЛ рдкрд╣рд▓реЗ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЬрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдиреАрдЪреЗ рдЪрд┐рддреНрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреЗ рдЕрдХреНрд╖рд░ рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрддреНрд░ рдХреА рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ 11100011 рд╣реИред 1 - рдПрд▓ рдИ рдбреА рд▓рд╛рдЗрдЯ рдЕрдк, 0 - рдирд╣реАрдВред

рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдореЛрдб рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдмрд╛рдЗрдирд░реА рдХреЛрдб рдХреЛ рдПрдЪрдИрдПрдХреНрд╕ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ рдФрд░ 0xE3 рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред

рд╕реНрдХреЗрдЪ рдореЗрдВ (рдлрд╝рд╛рдЗрд▓ LEDS_64_panel.h) рд╣рдо рд░реЗрдЦрд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ:

const uint8_t DIG_0[] PROGMEM = { 0xE3, 0xE7, 0xEE, 0xFC, 0xFC, 0xEE, 0xE7, 0xE3, }; //k 

рдпрд╣ рдЕрдХреНрд╖рд░ K, рд╕рднреА рдЖрда рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВред рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╕рд┐рд░реНрдл 0xE3 рд╣реИред рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдЧреЗ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред



рдпрд╣ рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ рдЫрд╡рд┐ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рд╣реИред рд▓реЗрдХрд┐рди рдПрдЪрдИрдПрдХреНрд╕ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рд╕рдВрднрд╡ рдФрд░ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдХреЛрдб рд╣реИред рдиреАрдЪреЗ рдПрдХ рд╕рд░рдгреА рджреЗрдЦреЗрдВ:

 const uint8_t SQUARE_1[PIXEL_NUM] PROGMEM = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; 

рдпрд╣ рдПрдХ рдЯреА-рд╢рд░реНрдЯ рдкрд░ рдПрдХ рд╡рд░реНрдЧ рд╣реИред рдмрдЯрди рджрдмрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╡реАрдбрд┐рдпреЛ рдореЗрдВред рдпрд╣ рдХреЗрд╡рд▓ рдмрд╛рдЗрдирд░реА рдХреЛрдб рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐ рдпрд╛ рдкреИрдЯрд░реНрди рдХреЗ рд░рдВрдЧ рдФрд░ рдЪрдордХ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

BACK_COLOUR
MAIN_COLOUR

рдЖрдк рдлреНрд░реЗрдо рджрд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ

SHOW_DELAY
TETRIS_DELAY

рдпреЛрдЬрдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рд╕реНрдХреЗрдЪ рднреАред рдХрд╛рдо рдмрд╣реБрдд рд╢реНрд░рдорд╕рд╛рдзреНрдп рд╣реИ! рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдо рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рд╕реБрдВрджрд░ рддрдХрдиреАрдХреА рд╡рд╕реНрддреНрд░ рд╣реИред рд╡реАрдбрд┐рдпреЛ рд╡рд╛рд╣ рдкреНрд░рднрд╛рд╡ рдХрд╛ рджрд╕рд╡рд╛рдВ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рдмрддрд╛рддрд╛ рд╣реИред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдкрд┐рдХреНрд╕реЗрд▓ рдПрдбреНрд░реЗрд╕рд┐рдВрдЧ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдПрд▓рдИрдбреА рдХреИрд╕реЗ рд╣реЛрддреА рд╣реИред рдмрд╕ рдПрдХ рдЦреВрдмрд╕реВрд░рдд рдХрд╛рдо рдХрд░реЛ!

рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рд╣реИ!

рд╕реНрдХреЗрдЪ LEDS_64_panel.h
 #define LED_PIN 12 #define KEY_PIN 7 #define PIXEL_IN_STICK 8 #define STICK_NUM 8 #define PIXEL_NUM (PIXEL_IN_STICK * STICK_NUM) #define MAIN_COLOUR ((uint32_t) 0xff000000) #define BACK_COLOUR ((uint32_t) 0x00000010) #define SHOW_DELAY 600 #define TETRIS_DELAY 200 #define CharGroups 3 const uint8_t DIG_0[] PROGMEM = { 0xE3, 0xE7, 0xEE, 0xFC, 0xFC, 0xEE, 0xE7, 0xE3, }; //k const uint8_t DIG_1[] PROGMEM = { 0x7E, 0xFF, 0xE7, 0xE7, 0xE7, 0xFF, 0xFF, 0xE7, };//a const uint8_t DIG_2[] PROGMEM = { 0x7F, 0x7F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, };//t const uint8_t DIG_3[] PROGMEM = { 0xFE, 0xFF, 0xE3, 0xFF, 0xFE, 0xE7, 0xE7, 0xE7, };//r const uint8_t DIG_4[] PROGMEM = { 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, };//i const uint8_t DIG_5[PIXEL_NUM] PROGMEM = { 0xE7, 0xF7, 0xF7, 0xFF, 0xFF, 0xFF, 0xEF, 0xE7, };//n const uint8_t DIG_6[] PROGMEM = { 0xFE, 0xFF, 0xE7, 0xE7, 0xE7, 0xE7, 0xFF, 0xFE, };//d const uint8_t DIG_7[] PROGMEM = { 0xFF, 0xFF, 0xE0, 0xFC, 0xFC, 0xE0, 0xFF, 0xFF, };//e const uint8_t DIG_8[] PROGMEM = { 0x7F, 0x7F, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, };//t const uint8_t DIG_9[] PROGMEM = { 0xE3, 0xE7, 0xEE, 0xFC, 0xFC, 0xEE, 0xE7, 0xE3, };//k const uint8_t DIG_10[] PROGMEM = { 0x7E, 0xFF, 0xE7, 0xE7, 0xE7, 0xFF, 0xFF, 0xE7, };//a const uint8_t DIG_11[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; const uint8_t SQUARE_1[PIXEL_NUM] PROGMEM = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; const uint8_t SQUARE_2[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; const uint8_t SQUARE_3[PIXEL_NUM] PROGMEM = { 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, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 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, }; const uint8_t SQUARE_4[PIXEL_NUM] 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, 1, 1, 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, }; const uint8_t X_Pixel_1[PIXEL_NUM] PROGMEM = { 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, 0, 0, 0, 0, 0, 0, 0, 0, 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, }; const uint8_t X_Pixel_2[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; const uint8_t X_Pixel_3[PIXEL_NUM] PROGMEM = { 1, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, }; const uint8_t X_Ray_1[PIXEL_NUM] PROGMEM = { 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, }; const uint8_t X_Ray_2[PIXEL_NUM] PROGMEM = { 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 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, 0, }; const uint8_t X_Ray_3[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, }; const uint8_t Tetris_1[PIXEL_NUM] PROGMEM = { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, 0, 0, 0, }; const uint8_t Tetris_2[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, }; const uint8_t Tetris_3[PIXEL_NUM] PROGMEM = { 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, }; const uint8_t Tetris_4[PIXEL_NUM] 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, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; const uint8_t Tetris_5[PIXEL_NUM] 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, 1, 1, 1, 1, }; const uint8_t Tetris_6[PIXEL_NUM] PROGMEM = { 0, 0, 1, 1, 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, }; const uint8_t Tetris_7[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 1, 1, 1, 1, }; const uint8_t Tetris_8[PIXEL_NUM] PROGMEM = { 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, 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, 1, 1, 1, 1, }; const uint8_t Tetris_9[PIXEL_NUM] 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, 1, 1, 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, 1, 1, 1, }; const uint8_t Tetris_10[PIXEL_NUM] 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, 1, 1, 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, 1, 1, 1, 1, }; const uint8_t Tetris_11[PIXEL_NUM] 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, }; const uint8_t Tetris_12[PIXEL_NUM] 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, }; const uint8_t Tetris_13[PIXEL_NUM] PROGMEM = { 0, 0, 0, 1, 1, 1, 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, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, }; const uint8_t Tetris_14[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, }; const uint8_t Tetris_15[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, }; const uint8_t Tetris_16[PIXEL_NUM] 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, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, }; const uint8_t Tetris_17[PIXEL_NUM] 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, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, }; const uint8_t Tetris_18[PIXEL_NUM] 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, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, }; const uint8_t Tetris_19[PIXEL_NUM] 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, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_20[PIXEL_NUM] PROGMEM = { 0, 0, 0, 1, 1, 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, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_21[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 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, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_22[PIXEL_NUM] PROGMEM = { 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, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_23[PIXEL_NUM] 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_24[PIXEL_NUM] 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, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_25[PIXEL_NUM] 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, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_26[PIXEL_NUM] PROGMEM = { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 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, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_27[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_28[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_29[PIXEL_NUM] PROGMEM = { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_30[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_31[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_32[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, }; const uint8_t Tetris_33[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; const uint8_t Tetris_34[PIXEL_NUM] PROGMEM = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, }; const uint8_t Tetris_35[PIXEL_NUM] 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, }; const uint8_t Tetris_36[PIXEL_NUM] 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, }; const uint8_t Tetris_37[PIXEL_NUM] 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, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, }; const uint8_t EMPTY[PIXEL_NUM] 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, }; 


ps рдпрд╣ рдлрд╝реЙрдиреНрдЯ рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдХреЛрдИ рдЙрдкрд╛рдп рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛ред рд╡рд╣ рдХреИрд▓рдХреБрд▓реЗрдЯрд░ рдХреЗ рдкреАрдЫреЗ рдЖрдЦрд┐рд░реА рддрд╕реНрд╡реАрд░ рдореЗрдВ рд╣реИред рд╕реА рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред

рдФрд░ рдлрд┐рд░ рднреА - рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА: Adafruit_NeoPixel рдФрд░ PinChangeIntред рдХреНрдпрд╛ рдЖрдк рдЖрджреНрдпрд╛ рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?

06/09/2017 рдХреЛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛
рд░рдВрдЧ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрдХреЗрдЪред рдбрд╛рдЙрдирд▓реЛрдбред
рдФрд░ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ

Source: https://habr.com/ru/post/hi404357/


All Articles