Агуулгын хүснэгт:

POV анимацтай ирэх дэнлүү: 7 алхам
POV анимацтай ирэх дэнлүү: 7 алхам

Видео: POV анимацтай ирэх дэнлүү: 7 алхам

Видео: POV анимацтай ирэх дэнлүү: 7 алхам
Видео: NEW MONSTERS in Roblox Doors... 2024, Долдугаар сарын
Anonim
Image
Image

Алсын хараа (POV) төслүүд нэлээд удаж байгаа бөгөөд энгийн, хямд DIY иж бүрдэлийг онлайнаар худалдаж авах боломжтой. POV нь оптик хуурмаг зүйл дээр суурилдаг бөгөөд объект богино хугацаанд ч гэсэн гэрэлтэхээ больсоны дараа бид гэрэлтдэг объектуудыг хардаг. Уламжлалт POV төслүүд дээр энэ зарчимд суурилсан эсвэл хамгийн ихдээ цаг ажиллуулдаг дүрсийг харуулдаг. Гэсэн хэдий ч хангалттай цагны хурд, ухаалаг RGB LED -ийн микроконтроллер ашиглан анимац гаргахад юу ч саад болохгүй. Энэхүү анимейшн нь зул сарын гацуур чирэгддэг Advent -ийн гоёл чимэглэл бөгөөд вэб хөтөч бүхий WiFi идэвхжүүлсэн хөдөлгөөнт төхөөрөмжөөр алсаас удирдах боломжтой юм. Дэнлүү нь Arduino -ийн гэр бүлийн Wemos ESP8266 D1 Mini микроконтроллероор тэжээгддэг. 8 битийн цаа буга хүүхэлдэйн киноны хүрээ нь авъяаслаг график зураач Ричард Фенёод зориулагдсан болно.

Алхам 1: эд ангиудын жагсаалт

Чуулганы алхамууд
Чуулганы алхамууд

Энэхүү төслийн хувьд эргэдэг хэсгийг унагахгүйгээр байрлуулахад хангалттай хүнд жинтэй хайрцаг хэрэгтэй болно. Хуучин PSU хайрцаг нь төгс төгөлдөр юм, задлахаас өмнө конденсаторыг цэнэггүй болгоход анхаарах хэрэгтэй. Мөн DC моторыг ажиллуулахын тулд танд 5V-12V хүчдэлийн адаптер хэрэгтэй болно. Үнэхээр 500 мА ба түүнээс дээш хүчдэлтэй аливаа хүчдэл үүнийг хийх болно.

Шаардлагатай хэсгүүдийг вэб дэлгүүрийн линкүүд болон одоогийн үнийн хамт доор жагсаав.

  • 2 ширхэг 18650 батерей, 4, 78 доллар
  • 2x18650 батерейны эзэмшигч, 0, 63 доллар
  • Wemos D1 Mini, 2, 14 доллар
  • Хар сүрэл, 0, 10 доллар
  • Хэт улаан туяаны цацруулагч мэдрэгч, 0, 38 доллар
  • 250V Power Rocker Switch, USD 0, 10
  • Слайд шилжүүлэгчийг сэлгэх, 0 доллар, 02 доллар
  • 6-900 эрг / мин DC мотор, 3, 99 доллар
  • Adafruit Neopixel WS2812 8 бит, USD 1, 01

Нийт өртөг нь 15 доллараас бага боловч танд гар багаж, өрөмдлөг, халуун цавуу, гагнуурын төхөөрөмж, ур чадвар хэрэгтэй болно.

Алхам 2: Чуулганы алхамууд

Эдгээр алхмуудыг дагаж төхөөрөмжийг бүрэн угсарч болно.

  1. Суурин суурийг тогтмол гүйдлийн хөдөлгүүр, унтраалгаар барьсан болно.
  2. Неопикселийг гагнаж, сүрэл босоо аманд бэхлэнэ.
  3. Эргэдэг төхөөрөмж нь микроконтроллер, слайд унтраалга, инфра мэдрэгч, сүрэл босоо амаар бүтээгдсэн.
  4. Цахилгааны хэсгүүдийн холбогч дээр утсыг гагнана
  5. Arduino кодыг Wemos микроконтроллерт байршуулсан болно.

Алхам 3: 1. DC мотортой суурин суурь

1. DC мотортой суурин суурь
1. DC мотортой суурин суурь
1. DC мотортой суурин суурь
1. DC мотортой суурин суурь
1. DC мотортой суурин суурь
1. DC мотортой суурин суурь
  1. Хайрцаг дээр нүх өрөмдөж, босоо амыг дээш чиглүүлэхийн тулд тогтмол гүйдлийн хөдөлгүүрийг засна.
  2. Доорх утас диаграмын дагуу рокерын цахилгаан унтраалга ба 5V-12V тогтмол тэжээлийн адаптерийг гагнана.
  3. Санал болгож буй тогтмол гүйдлийн хөдөлгүүр нь 12 В -т ойролцоогоор 800 RPM (минутанд эргэлт) эргэдэг бөгөөд энэ нь сүрэл босоо амны бодит салхины эсэргүүцлээс хамаарч эцсийн тохиргоонд ойролцоогоор 10 FPS (секундэд жааз) эргэдэг.
  4. Цахилгаан тэжээлийн адаптерийг залгуурт (110 эсвэл 220 В) холбоно уу.
  5. Рокерыг асаагаад DC моторын ажиллагааг шалгана уу.

Дараа нь эргэдэг өрөмдлөгийг угсарч суурийн DC хөдөлгүүрийн босоо аманд бэхлэнэ.

Алхам 4: 2. Неопикселийн хавсралт

2. Неопикселийн хавсралт
2. Неопикселийн хавсралт
2. Неопикселийн хавсралт
2. Неопикселийн хавсралт
  1. Зурган дээр үзүүлсэн шиг сүрлийн үзүүрийг хоёр талдаа 1.5 см орчим хайчилж ав.
  2. Гурван урт утсыг сүрлээр дээш нь нэх. Эдгээр нь Neopixel тээглүүрийг өрмийн машин дээрх Wemos порт руу холбох болно.
  3. Гурван утсыг GOP, 5V ба D-IN Neopixel тээглүүр дээр гагнана.
  4. Халуун цавуу нь Neopixels -ээс гагнасан утаснуудыг LED баарны яг дунд хүртэл нямбай, эмх цэгцтэй байлгадаг.
  5. Сүрэл зүссэн далавчнуудаа татан авч, тэгш хэмтэйгээр халуун цавуугаар LED баарны төв хэсэгт (нэг талын утаснуудын дээд талд) хийнэ.
  6. Утаснууд нь сүрэл дотор дамжин өрөмдлөгийн төхөөрөмж хүртэл таарч тохирсон Wemos портууд руу хүрдэг.

Алхам 5: 3. Эргэдэг төхөөрөмж суурилуулах

3. Эргэдэг төхөөрөмж суурилуулах
3. Эргэдэг төхөөрөмж суурилуулах

Тогтмол гүйдлийн хөдөлгүүрийн босоо аманд бэхлэхийн өмнө бүх өрөмдлөгийг бүрэн угсрах ёстой. Учир нь бэхэлгээний цэгийг тэнцвэржүүлэх шаардлагатай бөгөөд ингэснээр эргэлт нь ямар ч эргэлзээгүйгээр төгс төвтэй болно.

  1. Халуун цавуу Wemos D1 Mini микроконтроллер ба слайд унтраалга нь батерейны нэг талд байрладаг.
  2. Хэт улаан туяаны цацруулагч мэдрэгчийг батерейны нөгөө талд халуун цавуугаар хийнэ.
  3. Батерейг эзэмшигчид байрлуул.
  4. Сүрлийн нөгөө үзүүрийг батерейны дээр байрлуулж бэхлээрэй. Жижиг шураг эсвэл резинэн цагираг үүнийг хийх болно. Тоног төхөөрөмжийг 10 эрг / мин эргүүлж эхэлмэгц алдагдахгүй гэдгийг анхаараарай.
  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 битийн хувилбарт зориулагдсан бөгөөд вэб браузер бүхий дурын хөдөлгөөнт төхөөрөмжөөр алсаас удирдах боломжтой бөгөөд Дэлхийн газрын зураг, Матрицын анимацийн эффект, Цаа буга Sleight анимац гэх мэт харааны эффектүүдтэй. Эх кодонд өөрийн хэрэгцээнд нийцүүлэн пикселийн тоо, эффектийн параметрүүд эсвэл WiFi алсын интерфэйсийг тохируулж болно.

// 24 бит POV Lantern - 2019 Peter Csurgay

#ESP8266WiFiMulti.h -ийг оруулна уу

#WiFiClient.h оруулах #ESP8266WebServer.h #WebSocketsServer оруулах.h #Adafruit_NeoPixel.h оруулах

#DEBUG -ийг тодорхойлох 1

String текст [3] = {"INSTRUCTABLES", "ARDUINO", "УРАЛДААН"};

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 - Magenta {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 pepper [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; String үзэгдлүүд [6] = {"WORLD", "SANTA", "PEPPER", "TEXT", "MATRIX"}; uint8_t эргүүлэх = 1; uint8_t numGreens = 0; // MATRIX унаж буй шугамын тоо uint8_t greens [64] [2]; // MATRIX санамсаргүй pos x ба y унах шугамууд

хүчингүй тохиргоо () {

if (DEBUG) {Serial.begin (9600); Serial.println ("Эхлэх …"); } саатал (3000);

ESP8266WiFiMulti wifiMulti;

wifiMulti.addAP ("wifissid", "pwd"); wifiMulti.addAP ("хөдөлгөөнгүй", "pwd"); wifiMulti.addAP ("зөөврийн компьютерууд", "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); пиксел.begin (); пиксел.шоу (); if (DEBUG) {Serial.print ("Neopixel эхэлсэн, NUMPIXELS:"); Serial.println (piksel.numPixels ()); }}

хүчин төгөлдөр бус webSocketEvent (uint8_t num, WStype_t төрөл, uint8_t * ачаалал, size_t урт) {

if (type == WStype_TEXT) {String req = String ((const char *) ачаа); if (DEBUG) {Serial.print ("81 Req:"); Serial.println (req); } processReq (req); }}

String rip2 (String s) {

String res; int i = 0; while (s ! = '/') i ++; би ++; while (s ! = '/') i ++; би ++; while (s ! = '/' && s ! = '' && s ! = '\ r' && s ! = '\ n') res+= s [i ++]; буцааж өгөх; }

void processReq (String req) {

if (req.indexOf ("/rotate")! = -1) {эргүүлэх = 1; } if if (req.indexOf ("/scene")! = -1) {rotate = 0; String sc = rip2 (req); if (isDigit (sc [0])) үзэгдэл = sc.toInt (); өөр {үзэгдэл = 0; for (int i = 0; i

void loop () {

webSocket.loop (); WiFiClient клиент = server.available (); if (! үйлчлүүлэгч) {буцах; } String req = client.readStringUntil ('\ r'); if (DEBUG) {Serial.print ("80 Req:"); Serial.println (req); } processReq (req);

client.flush ();

String s = "HTTP/1.1 200 OK / r / nContent-Type: text/html; charset = UTF-8 / r / nAccess-Control-Allow-Headers: Content-Type / r / nAccess-Control-Allow-Origin: *\ r / nХолболт: хаах / r / n / r / n "; s + = "localIP:" + ipToString (localIPaddress) + ""; s + = "apIP:" + ipToString (apIPaddress) + ""; клиент.хэв (ууд); саатал (100); client.stop (); }

хоосон будаг () {

for (int i = 0; i <65; i ++) {for (int j = 0; j <24; j ++) {unsigned char ind = canvas [j] ; piksel.setPixelColor (j, piksel. Color (палитр [ind] [0], палитр [ind] [1], палитр [ind] [2])); } пиксел.шоу (); delayMicroseconds (10); } co = (co + 1) % 40; if (эргүүлэх) {if (co == 0) {үзэгдэл = (үзэгдэл+1) % numScenes; if (DEBUG) {Serial.print ("Scene:"); 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) canvas [j] = pgm_read_byte_near (чинжүү +j-12); } өөр бол (what.indexOf ("WORLD")! = -1) {for (int i = 0; i <24; i ++) for (int j = 0; j = 11 && j <53) canvas [j] = pgm_read_byte_near (ертөнц +j-11); }}

хүчингүй clearCanvas () {

if (DEBUG) Serial.println ("clearCanvas"); for (int i = 0; i <24; i ++) for (int j = 0; j <65; j ++) canvas [j] = 0; }

String ipToString (IPAddress ip) {

Мөр s = ""; for (int i = 0; i <4; i ++) s+= i? "." + String (ip ): String (ip ); буцах s; }

Зөвлөмж болгож буй: