Სარჩევი:

Advent Lantern ერთად POV ანიმაცია: 7 ნაბიჯი
Advent Lantern ერთად POV ანიმაცია: 7 ნაბიჯი

ვიდეო: Advent Lantern ერთად POV ანიმაცია: 7 ნაბიჯი

ვიდეო: Advent Lantern ერთად POV ანიმაცია: 7 ნაბიჯი
ვიდეო: DIY Рождественские фонари - как сделать рождественский фонарь из банки? 2024, ნოემბერი
Anonim
Image
Image

Vision (POV) პროექტების არსებობა საკმაოდ დიდი ხანია არსებობს, მარტივი და იაფი წვრილმანი ნაკრები კი ხელმისაწვდომია ონლაინ შესყიდვისთვის. POV ემყარება ოპტიკურ ილუზიას, სადაც ჩვენ ვხედავთ განათებულ ობიექტებს მას შემდეგ, რაც ობიექტი აღარ არის განათებული თუნდაც მცირე ხნით. ტრადიციული POV პროექტები ასახავს ამ პრინციპზე დაფუძნებულ სურათებს ან მაქსიმუმ საათებს. თუმცა, არაფერი უშლის ანიმაციების პროექტს საკმარისი საათის სიჩქარის და ჭკვიანი RGB LED- ების მიკროკონტროლერების გამოყენებით. ეს კონკრეტული ანიმაცია არის ირემის მიერ გადატანილი საშობაო შთაბეჭდილება სადღესასწაულო გაფორმებისთვის, რომლის დისტანციურად კონტროლი შესაძლებელია ნებისმიერი ბრაუზერის WiFi მობილური ტელეფონის საშუალებით. ფარანი იკვებება არდუინოს ოჯახის Wemos ESP8266 D1 მინი მიკროკონტროლით. ანიმაციური 8-ბიტიანი ირემის გარყვნილების ჩარჩოების დამსახურებაა ნიჭიერი გრაფიკოსი რიჩარდ ფენიო.

ნაბიჯი 1: ნაწილების სია

ასამბლეის ნაბიჯები
ასამბლეის ნაბიჯები

ამ პროექტისთვის დაგჭირდებათ საქმე, რომელიც საკმარისად მძიმეა იმისათვის, რომ მბრუნავი ერთეული შეინარჩუნოს ადგილზე გადაბრუნების გარეშე. ძველი კვების ბლოკი არის სრულყოფილი, უბრალოდ ფრთხილად იყავით, რომ კონდენსატორები დაიშალა დაშლის წინ. თქვენ ასევე დაგჭირდებათ ნებისმიერი სახის 5V-12V დენის წყაროს გადამყვანი DC ძრავის კვებისათვის. მართლაც ნებისმიერი amperage 500mA და ზემოთ ამას გააკეთებს.

საჭირო ნაწილები ჩამოთვლილია ქვემოთ ვებ მაღაზიის ბმულებით და მიმდინარე ფასებით.

  • 2 ცალი 18650 ბატარეა, 4 აშშ დოლარი, 78
  • ბატარეის დამჭერი 2x18650, 0 აშშ დოლარი, 63
  • Wemos D1 Mini, აშშ დოლარი 2, 14
  • შავი ჩალა, 0 აშშ დოლარი, 10
  • ინფრაწითელი ამრეკლავი სენსორი, 0 აშშ დოლარი, 38
  • 250V Power Rocker Switch, 0 აშშ დოლარი, 10
  • სლაიდების გადამრთველის გადართვა, 0 აშშ დოლარი, 02
  • DC ძრავა 6-900rpm, 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. შეაერთეთ როკერის დენის გადამრთველი და ჩვეულებრივი 5V-12V დენის ადაპტერი ქვემოთ გაყვანილობის დიაგრამის მიხედვით.
  3. მითითებული DC ძრავა ბრუნავს დაახლოებით 800 RPM (ბრუნვა წუთში) 12V– ზე, რის შედეგადაც დაახლოებით 10 FPS (კადრი წამში) საბოლოო კონფიგურაციაში დამოკიდებულია ჩალის ლილვის ქარის რეალურ წინააღმდეგობაზე.
  4. შეაერთეთ კვების ბლოკის ადაპტერი გამოსასვლელთან (110 ან 220V).
  5. ჩართეთ როკერი და შეამოწმეთ DC ძრავის მუშაობა.

შემდეგი, მბრუნავი აპარატი შეიკრიბება და დაფიქსირდება ბაზის DC ძრავის ლილვზე.

ნაბიჯი 4: 2. ნეოპიქსელის დანართი

2. ნეოპიქსელის დანართი
2. ნეოპიქსელის დანართი
2. ნეოპიქსელის დანართი
2. ნეოპიქსელის დანართი
  1. ჩალის ბოლო ორ მოპირდაპირე მხარეს გაჭერით ერთ ბოლოში დაახლოებით 1.5 სმ -ით, როგორც სურათზე ჩანს.
  2. მაქმანი სამი გრძელი მავთული ჩალის. ეს დააკავშირებს ნეოპიქსელის ქინძისთავებს Wemos პორტებზე გაყალბებაზე.
  3. შეაერთეთ სამი მავთული ნეოპიქსელის ქინძისთავებზე GND, 5V და D-IN.
  4. ცხელი წებო მავთულხლართების სისუფთავე და მოწესრიგებული ნეოპიქსელებისაგან ბოლომდე მიდის LED ბარის ზუსტად შუაში.
  5. ჩალის მოჭრილი ფრთები გაშალეთ და ცხელი წებოთი დააწებეთ სიმეტრიულად LED ბარის ცენტრში (ერთ მხარეს მავთულის თავზე).
  6. მავთულები გადის ჩალის შიგნით გაყალბებამდე, რათა მიაღწიოს შესატყვისი ვემოსის პორტებს.

ნაბიჯი 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 მიკროკონტროლერის ერთი და იგივე პორტი მრავალჯერ შეიკვრება სხვადასხვა მავთულხლართებით. ამას სჭირდება გარკვეული პრაქტიკა, ან შეაერთეთ ეს მავთულები ვემოსის პორტზე შედუღებამდე.

  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. არდუინოს კოდი
5. არდუინოს კოდი

ეს კონკრეტული კოდი არის POV Lantern– ის 24 ბიტიანი ვერსიისთვის, მისი დისტანციურად კონტროლი შესაძლებელია ნებისმიერი მობილური მოწყობილობით ვებ ბრაუზერებით და აქვს ვიზუალური ეფექტები, როგორიცაა მსოფლიო რუქა, მატრიქსის ანიმაციის ეფექტი და Reindeer Sleight ანიმაცია. მოგერიდებათ დაარეგულიროთ პიქსელების რაოდენობა, ეფექტების პარამეტრები ან WiFi დისტანციური ინტერფეისი თქვენს საჭიროებებზე წყაროს კოდში.

// 24 ბიტიანი POV Lantern - 2019 პიტერ ცურგაი

#მოიცავს 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 ხელმოუწერელი 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 } };

კონსერტული ხელმოუწერელი წიწაკა [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 unsigned 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] = {"WORLD", "SANTA", "PEPPER", "TEXT", "MATRIX"}; uint8_t როტაცია = 1; uint8_t numGreens = 0; // დაცემული ხაზების MATRIX რაოდენობა uint8_t მწვანეთა [64] [2]; // დაცემის ხაზების შემთხვევითი პოს x და y

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 მისამართი:"); if (DEBUG) Serial.println (localIPaddress);

server.begin ();

if (DEBUG) Serial.println ("სერვერი (80) დაიწყო"); webSocket.begin (); webSocket.onEvent (webSocketEvent); if (DEBUG) Serial.println ("WebSocket (81) დაიწყო"); uint8_t coli = 0; for (int i = 0; i <24; i ++) {for (int j = 0; j <64; j ++) {canvas [j] = coli ++; coli = coli % 7; } ტილო [64] = 0; } pinMode (INFRATRIGGER_PIN, INPUT); attachInterrupt (digitalPinToInterrupt (INFRATRIGGER_PIN), საღებავი, RISING); pixels.begin (); pixels.show (); if (DEBUG) {Serial.print ("დაიწყო ნეოპიქსელი, NUMPIXELS:"); Serial.println (pixels.numPixels ()); }}

ბათილი webSocketEvent (uint8_t num, WStype_t ტიპი, uint8_t * დატვირთვა, ზომა_t სიგრძე) {

if (ტიპი == WStype_TEXT) {სიმებიანი რექ = სიმებიანი ((const char *) დატვირთვა); if (DEBUG) {Serial.print ("81 Req:"); Serial.println (req); } processReq (მოთხოვნა); }}

სიმებიანი rip2 (სიმებიანი) {

სიმებიანი რეს; int i = 0; ხოლო (s ! = '/') i ++; მე ++; ხოლო (s ! = '/') i ++; მე ++; ხოლო (s ! = '/' && s ! = '&& s ! =' / r '&& s ! =' / n ') res+= s [i ++]; დაბრუნება res; }

void processReq (სიმებიანი მოთხოვნა) {

if (req.indexOf ("/როტაცია")! = -1) {როტაცია = 1; } else if (req.indexOf ("/სცენა")! = -1) {როტაცია = 0; სიმებიანი sc = rip2 (req); if (isDigit (sc [0])) სცენა = sc.toInt (); სხვა {სცენა = 0; for (int i = 0; i

ბათილი მარყუჟი () {

webSocket.loop (); WiFiClient client = server.available (); თუ (! კლიენტი) {დაბრუნება; } სიმებიანი req = client.readStringUntil ('\ r'); if (DEBUG) {Serial.print ("80 Req:"); Serial.println (req); } processReq (მოთხოვნა);

client.flush ();

სტრიქონი s = "HTTP/1.1 200 OK / r / nContent-type: text/html; charset = UTF-8 / r / nAccess- 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 (s); დაგვიანება (100); client.stop (); }

ბათილი საღებავი () {

for (int i = 0; i <65; i ++) {for (int j = 0; j <24; j ++) {unsigned char ind = canvas [j] ; pixels.setPixelColor (j, pixels. Color (პალიტრა [ind] [0], პალიტრა [ind] [1], პალიტრა [ind] [2])); } pixels.show (); გადადება მიკრო წამი (10); } co = (co + 1) % 40; if (როტაცია) {if (co == 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 (სიმებიანი რა) {

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) canvas [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"); for (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; }

გირჩევთ: