Სარჩევი:
- ნაბიჯი 1: ნაწილების სია
- ნაბიჯი 2: ასამბლეის ნაბიჯები
- ნაბიჯი 3: 1. სტაციონარული ბაზა DC ძრავით
- ნაბიჯი 4: 2. ნეოპიქსელის დანართი
- ნაბიჯი 5: 3. მბრუნავი მოწყობილობის შეკრება
- ნაბიჯი 6: 4. ელექტრული კომპონენტების გაყვანილობა
- ნაბიჯი 7: 5. Arduino კოდი
ვიდეო: Advent Lantern ერთად POV ანიმაცია: 7 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
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: ასამბლეის ნაბიჯები
ერთეულის სრულად შეკრება შესაძლებელია ამ ნაბიჯების შემდეგ.
- სტაციონარული ბაზა აგებულია DC ძრავით და გადამრთველით.
- ნეოპიქსელები იჭრება და მიმაგრებულია ჩალის ლილვზე.
- მბრუნავი აპარატი აგებულია მიკროკონტროლით, სლაიდების გადამრთველით, ინფრა სენსორით და ჩალის ლილვით.
- გაყვანილობა შედუღებულია ელექტრული ნაწილების კონექტორებზე
- Arduino კოდი აიტვირთება Wemos მიკროკონტროლერში.
ნაბიჯი 3: 1. სტაციონარული ბაზა DC ძრავით
- საბურღი ხვრელი შემთხვევაში და შეასწორეთ DC ძრავა ისე, რომ ლილვი მიმართული იყოს ზემოთ.
- შეაერთეთ როკერის დენის გადამრთველი და ჩვეულებრივი 5V-12V დენის ადაპტერი ქვემოთ გაყვანილობის დიაგრამის მიხედვით.
- მითითებული DC ძრავა ბრუნავს დაახლოებით 800 RPM (ბრუნვა წუთში) 12V– ზე, რის შედეგადაც დაახლოებით 10 FPS (კადრი წამში) საბოლოო კონფიგურაციაში დამოკიდებულია ჩალის ლილვის ქარის რეალურ წინააღმდეგობაზე.
- შეაერთეთ კვების ბლოკის ადაპტერი გამოსასვლელთან (110 ან 220V).
- ჩართეთ როკერი და შეამოწმეთ DC ძრავის მუშაობა.
შემდეგი, მბრუნავი აპარატი შეიკრიბება და დაფიქსირდება ბაზის DC ძრავის ლილვზე.
ნაბიჯი 4: 2. ნეოპიქსელის დანართი
- ჩალის ბოლო ორ მოპირდაპირე მხარეს გაჭერით ერთ ბოლოში დაახლოებით 1.5 სმ -ით, როგორც სურათზე ჩანს.
- მაქმანი სამი გრძელი მავთული ჩალის. ეს დააკავშირებს ნეოპიქსელის ქინძისთავებს Wemos პორტებზე გაყალბებაზე.
- შეაერთეთ სამი მავთული ნეოპიქსელის ქინძისთავებზე GND, 5V და D-IN.
- ცხელი წებო მავთულხლართების სისუფთავე და მოწესრიგებული ნეოპიქსელებისაგან ბოლომდე მიდის LED ბარის ზუსტად შუაში.
- ჩალის მოჭრილი ფრთები გაშალეთ და ცხელი წებოთი დააწებეთ სიმეტრიულად LED ბარის ცენტრში (ერთ მხარეს მავთულის თავზე).
- მავთულები გადის ჩალის შიგნით გაყალბებამდე, რათა მიაღწიოს შესატყვისი ვემოსის პორტებს.
ნაბიჯი 5: 3. მბრუნავი მოწყობილობის შეკრება
მთელი საყრდენი სრულად უნდა იყოს აწყობილი DC ძრავის ლილვზე დაფიქსირებამდე. ეს იმიტომ ხდება, რომ ფიქსაციის ადგილი უნდა იყოს დაბალანსებული ისე, რომ ბრუნვა შესანიშნავად იყოს ორიენტირებული ყოველგვარი მერყეობის გარეშე.
- ცხელი წებო Wemos D1 Mini მიკროკონტროლი და სლაიდის გადართვა ბატარეის დამჭერის ერთ მხარეს, როგორც სურათზე ჩანს.
- ინფრაწითელი სენსორი ცხელი წებოთი აკუმულატორის დამჭერის მეორე მხარეს.
- მოათავსეთ ბატარეები დამჭერში.
- მოათავსეთ და მიამაგრეთ ჩალის მეორე ბოლო ბატარეებზე. პატარა ხრახნი ან რეზინის ბეჭედი გააკეთებს ამას. დარწმუნდით, რომ ის არ დაიკარგება მას შემდეგ, რაც აპარატი დაიწყებს ბრუნვას 10 RPM– ზე.
- იპოვნეთ მთლიანი სიმძიმის სიმძიმის ცენტრი ქვედა მხარეს. თქვენი თითის წვერზე დაბალანსება ამას გააკეთებს.
- გააკეთეთ პატარა ხვრელი ბატარეის დამჭერის ბოლოში ზუსტად იმ ადგილას.
- წაისვით ცხელი წებო და დააფიქსირეთ ძრავის ლილვი ამ ხვრელში. დარწმუნდით, რომ ცხელი წებო არ მოხვდება ძრავის სხეულში. შეინახეთ იგი სტაბილურად სანამ წებო არ გაშრება.
- გაჭერით თეთრი ქაღალდის პატარა ნაჭერი და მიამაგრეთ სტაციონარულ ბაზაზე ისე, რომ ინფრაწითელი ამრეკლავი სენსორი ზუსტად იქცევა ამ ქაღალდის მახლობლად. ეს გამოიწვევს ანიმაციის ჩარჩოების დახატვას ზუსტ ადგილას ყოველ ბრუნვაში. სურათზე ნაჩვენებია ეს ასახვა ნაჭერი ბაზის მარცხენა ქვედა კუთხეში.
ნაბიჯი 6: 4. ელექტრული კომპონენტების გაყვანილობა
გაყვანილობის დიაგრამის შემდეგ, შეაერთეთ ელექტრული კომპონენტები შემდეგ ნაბიჯებში. გაითვალისწინეთ, რომ Wemos D1 Mini მიკროკონტროლერის ერთი და იგივე პორტი მრავალჯერ შეიკვრება სხვადასხვა მავთულხლართებით. ამას სჭირდება გარკვეული პრაქტიკა, ან შეაერთეთ ეს მავთულები ვემოსის პორტზე შედუღებამდე.
- სამი მავთული (GND, 5V და D-IN) გაერთიანებულია Wemos პორტებზე G, 5V და D3 შესაბამისად.
- ორი მავთული ინფრაწითელი ამრეკლავი სენსორისგან (VCC, GND, OUT) იჭრება Wemos პორტებზე შესაბამისად 5V, G და D2 შესაბამისად.
- ბატარეის დამჭერი დაფარული (შავი) მავთული შედუღებულია Wemos პორტში G.
- ბატარეის დამჭერის პოზიტიური (წითელი) მავთული მოთავსებულია სლაიდების გადამრთველის უახლოეს პინზე.
- Wemos 5V პორტი გაერთიანებულია სლაიდების გადართვის მეორე პინზე.
ნაბიჯი 7: 5. Arduino კოდი
ეს კონკრეტული კოდი არის 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; }
გირჩევთ:
Bitmap ანიმაცია SSD1331 OLED ეკრანზე (SPI) Visuino– ით: 8 ნაბიჯი
Bitmap ანიმაცია SSD1331 OLED ეკრანზე (SPI) Visuino– სთან ერთად: ამ გაკვეთილში ჩვენ გამოვაჩენთ და გადავიტანთ bitmap გამოსახულებას ანიმაციის მარტივი ფორმით SSD1331 OLED ეკრანზე (SPI) Visuino– სთან ერთად. ნახეთ ვიდეო
Raspberry Pi Stop-Motion ანიმაცია რიგი: 16 ნაბიჯი (სურათებით)
Raspberry Pi Stop-Motion Animation Rig: Stop-motion ანიმაცია არის ტექნიკა, როდესაც ობიექტები ფიზიკურად მანიპულირდება და გადაღებულია ჩარჩო-კადრი, რათა შეიქმნას მოძრავი გამოსახულების ილუზია. ჩვენი მინი სტოპ-მოძრაობის ანიმაციის გამოფენა დამზადებულია ჟოლოს პიით , რომელიც არის "პატარა და აფორიაქებული
PUBG თემა სიმღერა+ანიმაცია არდუინოსთან ერთად !: 13 ნაბიჯი (სურათებით)
PUBG თემის სიმღერა+ანიმაცია არდუინოსთან ერთად !: გამარჯობა და კეთილი იყოს თქვენი მობრძანება ამ სახალისო ინსტრუქციურად! ვიმედოვნებ, რომ ყველანი კარგად ხართ და ჯანმრთელები ხართ. ეს პატარა, მაგრამ საოცარი პროექტი არის PUBG თემის სიმღერის დაკვრაზე და თუნდაც თამაშების ანიმაციის შექმნაზე არდუინოს გამოყენებით. გამოყენებული კომპონენტები ძალიან
სათამაშოების ანიმაცია: 4 ნაბიჯი
სათამაშოების ანიმაცია: ჯერ შექმენით თქვენი პროექტი Scratch– ით. ეს არის ის, რაც მე შევქმენი: სათამაშოს ისტორია
RIMOSA: Sand Stop Motion ანიმაცია: 9 ნაბიჯი
RIMOSA: Sand Stop Motion Animation: შეიძინეთ თქვენი მარაგი: ა.) მოწყობილობა, რომელზეც გადმოწერილია stop motion animation აპლიკაცია (ჩვენ ვიყენებთ I-pod- ს და ვიყენებთ StopMotion Studio- ს, როგორც უფასო გადმოტვირთვას.) ბ.) სამფეხა მოწყობილობით დანართი გ.) სხვადასხვა ზომის ფუნჯი (1/4 ბრტყელ ფუნჯში იქნება ინვალური