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

Minecraft ինտերակտիվ մի մուտքագրեք սուր/նշան (ESP32-CAM). 15 քայլ (նկարներով)
Minecraft ինտերակտիվ մի մուտքագրեք սուր/նշան (ESP32-CAM). 15 քայլ (նկարներով)

Video: Minecraft ինտերակտիվ մի մուտքագրեք սուր/նշան (ESP32-CAM). 15 քայլ (նկարներով)

Video: Minecraft ինտերակտիվ մի մուտքագրեք սուր/նշան (ESP32-CAM). 15 քայլ (նկարներով)
Video: Մանկական քվեսթ՝ Ծովահենները և 7 հրաշալիքը 2024, Դեկտեմբեր
Anonim
Image
Image
Վերջնական արտադրանք
Վերջնական արտադրանք

Իրականում մի քանի պատճառ կա, թե ինչու է այս նախագիծը ծագել.

1. Որպես TaskScheduler կոոպերատիվ բազմաֆունկցիոնալ գրադարանի հեղինակ, ինձ միշտ հետաքրքրում էր, թե ինչպես համատեղել համատեղ գործերի առավելությունները նախապատվության առավելությունների հետ: Երկուսն էլ օգուտներ ունեն, և երկուսն էլ ունեն թերություններ: Երկուսի համադրումը բացառիկ հնարավորություն է տալիս օգուտներ քաղել և նվազեցնել յուրաքանչյուրի հիմնախնդիրը ՝ հիմնված կոնկրետ օգտագործման դեպքի վրա: Հետաքրքիր է? Կարդալ…

2. Ինքնին այն փաստը, որ ESP32- ը բազմամիջուկ միկրոկոնտրոլեր է, հետաքրքրաշարժ է: Ինձ միշտ հետաքրքրում էր, թե կարո՞ղ եմ օգտվել այդ հնարավորությունից: Այսպիսով, այստեղ փորձը հետևյալն էր. Նույնիսկ ավելի հետաքրքիր ?? Կարդացեք…!

3. Ինձ անհրաժեշտ էր փորձարկման դաշտ ՝ OTA որոնվածը ապահովելու և կազմաձևման կառավարման վերաբերյալ իմ վերջին նախագծերի համար…

4. Որոշ ժամանակ առաջ ես գնել էի երկու LED Dot Matrix մոդուլ և չէի կարողանում պարզել, թե ինչ անել դրանց հետ…

5. Իմ որդին Minecraft- ի խաղացող է, և ինչպես ցանկացած փոքր տղա սիրում է իր դուռը զարդարել «Մի՛ մտիր» պաստառներով…

Այսպիսով, ահա թե ինչու, բոլոր լավ պատճառներն են ՝

Այսպիսով… ինչի՞ մասին է դա:

Եթե համբերություն ունենաք ամբողջ պատմությունը կարդալու, կհասկանաք, որ սա իրականում Minecraft- ի սրի մասին չէ: Այս նախագիծը բազմաթիվ հասկացությունների ապացույց է.

  • Կանխարգելիչ և համագործակցային բազմակի առաջադրանքների համակեցություն
  • ESP32 միջուկների ընտրովի օգտագործում
  • Նոր բառարանային և EspBootstrap գրադարանների օգտագործումը
  • OTA որոնվածի ապահովում
  • Կազմաձևման կառավարում
  • Տեսանյութերի հոսք բազմաթիվ հաճախորդների համար

և շատ ավելին:

Վայելեք:

Պարագաներ

  • ESP32-CAM
  • MAX7219 Dot Matrix Module 4-in-1 LED Display Module Geekcreit for Arduino
  • Attom Tech 2500 mAh Power Bank

Քայլ 1: Վերջնական արտադրանք

Վերջնական արտադրանք
Վերջնական արտադրանք

Ես կսկսեմ նրանից, թե ինչ տեսք ունի վերջնական արտադրանքը, այնուհետև կբացատրեմ, թե ինչպես է այն կառուցվել և ինչպես վերահսկել այն:

Այս կերպ ավելի գրավիչ է թվում…

Քայլ 2: Սրի երեսպատում

Սուր երեսպատում
Սուր երեսպատում
Սուր երեսպատում
Սուր երեսպատում

Սրի երեսը պատրաստված է գրատախտակից, մատիտով նշված և գունավոր Crayola մարկերներով: Սա միայն կարող է հետաքրքիր նախագիծ լինել ձեր երեխայի հետ.

  • Սուր գրատախտակի վրա նշեք
  • Կտրեք երեսպատումը
  • Նշեք քառակուսիները (կամ բլոկները)
  • Գունավորեք դրանք առանձին
  • Ավելացրեք սև գծեր սրիչով:

Ես ներառեցի բաց գրասենյակային փաստաթուղթ `ադամանդե սրի օրինակով, որը կարող եք սոսնձել գրատախտակի վերևում, եթե նախընտրում եք դյուրանցումներ: Ամեն ինչ անելուց հետո կարող եք կամ սոսնձել երեսպատումը մնացած հավաքածուի վրա, կամ կրկնակի օգտագործել: միակողմանի ժապավեն:

Քայլ 3: Dot Matrix LED էկրան

Dot Matrix LED էկրան
Dot Matrix LED էկրան
Dot Matrix LED էկրան
Dot Matrix LED էկրան
Dot Matrix LED էկրան
Dot Matrix LED էկրան

Ես ունեի դրանցից 2-ը ՝ 4-ական հատված, ուստի որոշեցի պատրաստել մեկ 8-հատվածանոց մեկը:

Հարմար է, որ մի կողմում տեղադրված է 5-փին արական վերնագիր, իսկ հակառակ կողմում համապատասխան 5 անցք: Արական վերնագիրը թեքելով կեռի տեսքով ՝ ես կարողացա երկու մոդուլը միացնել և՛ էլեկտրական, և՛ մեխանիկական: Սպանեց երկու թռչուն մեկ քարով (կամ երկու ճանճ մեկ սվիտով, երկու բերան մեկ պատառով կանգնեցրեց, երկու ընկեր ունեցավ մեկ նվերով, երկու լար ՝ մեկ ծիածանի համար): Ի՞նչ եք կարծում: Կներեք, ես շեղվեցի):

Հակառակ արական վերնագիրը կօգտագործվի veroboard- ից համապատասխան կին վերնագիր ESP32-Cam- ի և այլ բաղադրիչների հետ միացնելու համար:

Երկու բաղադրիչները կապված են 3D տպագրությամբ կամրջի հետ, որի մեջ կա նաև անջատիչ ՝ հոսանքը միացնելու և անջատելու համար: Bridge- ի և այլ բաղադրիչների համար նախատեսված 3D STL ֆայլերը տեղակայված են GitHub- ի ֆայլերի/3d պանակում:

Քայլ 4: Հզորություն

Ուժ
Ուժ

The Sword- ը սնուցվում է 2500 mAh USB հզորության բանկից, որն ամենափոքրն ու ամենաբարակն է, որ կարող եմ գտնել: Powerbank- ը սահում է եռաչափ տպված պատյանով, որը նույնպես կցվում է կետային մատրիցային մոդուլներին ՝ դրանով իսկ ամբողջը միասին պահելով:

Գոյություն ունեն երկու կլոր մագնիսներ, որոնք սոսնձված են Power Bank- ի պատյանին, և դա այն է, թե ինչպես է թուրը ամրացված դռանը (այնպես որ այն կարող է հեշտությամբ անջատվել սպասարկման համար):

Քայլ 5: Սխեմատիկ

Սխեմատիկ
Սխեմատիկ
Սխեմատիկ
Սխեմատիկ
Սխեմատիկ
Սխեմատիկ

Իրական սխեման գտնվում է GitHub- ում, բայց նկարը արժե 1000 բառ (1024 -ը ՝ տեղեկատվական տեխնոլոգիաներում), ուստի այստեղ եք.

Սա բավականին պարզ է, եթե դուք գիտեք ձեր ճանապարհը զոդման ատրճանակով: ՈOTՇԱԴՐՈԹՅՈՆ. 3 -րդ կամրջի հատվածը նախատեսված է շատ հատուկ տախտակի չափի համար `30 x 70 մմ: Եթե որոշեք օգտագործել մեկ ուրիշը, ապա պետք է նորից նախագծել կամրջի բաղադրիչը:

Քայլ 6: 3D տպագրություն

3D տպագրություն
3D տպագրություն
3D տպագրություն
3D տպագրություն
3D տպագրություն
3D տպագրություն

Մարտկոցի պատյանն ու ESP32-CAM veroboard- ը միացնող կամուրջը կետային-մատրիցային ցուցադրման հավաքածուին նախագծված և տպագրված էին 3D ձևաչափով:

Մարտկոցի պատյանը գալիս է 2 մասից, որոնք տպելուց հետո անհրաժեշտ է դրանք սոսնձել ՝ մարտկոցի համար «գրպան» ստեղծելու համար: Կամուրջը պարզապես պետք է մաքրվի բոլոր օժանդակ կառույցներից (ցավոք, իրական կողմնորոշում չկա, որը դրանք նվազագույնի կհասցնի): STL ֆայլերը GitHub- ում են, իսկ TinkerCad բնօրինակները ՝ այստեղ:

TinkerCad- ի եռաչափ դիզայնը ներառում է նաև մոդելավորված հավաքման սխեմատիկա, թե ինչպես են մասերը տեղավորվում և պետք է միացված լինեն:

Քայլ 7: mingրագրավորում

Բազմաֆունկցիոնալ

Այս դիզայնը օգտագործում է FreeRTOS- ը ՝ կանխարգելիչ բազմակողմանի աշխատանքի համար, իսկ TaskScheduler գրադարանը ՝ կոոպերատիվի համար: Սրի վարքագիծը և հաղորդագրությունները վերահսկվում են Blynk հավելվածի միջոցով: Կարգավորումից հետո (կապում, տեսախցիկի և կետային մատրիցի սկզբնավորում, WiFi- ին միացում և այլն) ստեղծվում է երկու հիմնական RTOS առաջադրանք.

  • Տեսահոսքի RTOS առաջադրանք, ամրացված ESP32- ի Application Core- ում (հիմնական 1)
  • Տեքստի ցուցադրում և Blynk վերահսկում են RTOS առաջադրանքը ՝ ամրացված ESP32 (Core 0) Power Core- ին, որը նույնպես պատասխանատու է WiFi- ի հետ կապված բոլոր առաջադրանքների համար: Տեքստի և Բլինկի հետ կապված կատարումը կառավարվում է TaskScheduler առաջադրանքների միջոցով:

Ես պարզեցի, որ 4K տիպի տարածքը բավարար է RTOS առաջադրանքների համար, բայց հնարավոր է, որ բուրգը սպառվի, այնպես որ, եթե նախընտրում եք, այն դարձեք 8K - ESP32- ում շատ RAM կա:

Բոլոր տեսանյութերի նկարահանումն ու հեռարձակումը տեղի են ունենում Core 1 -ում: Մնացած բոլորը `Core 0 -ում:

ESP32- ն ունի բավականաչափ ուժ ՝ այդ ամենը մի փոքր քրտինքով քայքայելու համար (տեսանյութը հոսելիս տախտակը տաքանում է):

Սա նախագծի հիմնական նպատակն էր. Կանխարգելիչ և համագործակցային բազմակողմանի խաղաղ և արդյունավետ համակեցություն:

Քայլ 8: Dot Matrix Control

Ես օգտագործում եմ շատ հզոր MD_Parola և MD_MAX72xx գրադարաններ, որոնք առկա են նաև Arduino IDE գրադարանի կառավարչում:

Բոլոր տեքստային հատուկ էֆեկտները կատարվում են այդ գրադարանների միջոցով: Մի փոքր ջանք պահանջվեց `MAX72XX սարքաշարի ճիշտ տեսակը որոշելու համար (MD_MAX72XX:: ICSTATION_HW իմ դեպքում, ձերն այլ կերպ կարող է լինել), որից հետո տեքստի կառավարումը քամի է:

Սուրը թույլ է տալիս կատարել հետևյալ հսկողությունը.

  • Պայծառություն
  • Թարթում է
  • Ֆլեշ
  • Ոլորման արագություն և ուղղություն (վեր/վար, ձախ/աջ, կայուն)
  • Կարող եք նաև այն դարձնել պատի ժամացույց

Քայլ 9: Տեսանյութերի հեռարձակում

Blynk հավելվածն ունի վիդեո հոսքի մի փոքր վիջեթ, բայց դուք կարող եք հոսել դիտարկիչի, VLC նվագարկչի կամ MJPEG ստանդարտին աջակցող որևէ բանի մեջ:

Աջակցվում է մինչև 10 միացված հաճախորդ:

Դուք պետք է պարզեք ձեր ESP32-CAM- ի IP հասցեն, որպեսզի կարողանաք միանալ դրան: Կարող եք այն փնտրել ձեր երթուղղիչում կամ կազմել այս ուրվագիծը նախ միացված _DEBUG_ տարբերակով և կարդալ տերմինալի IP հասցեն, երբ այն միանա ձեր ցանցին:

ԿԱՐԵՎՈՐ. Շատ նպատակահարմար է մշտական IP հասցե նշանակել կամ ստեղծել DHCP ամրագրում ESP32-CAM մոդուլի համար, որպեսզի վարձակալության ժամկետը լրանալուց հետո դրա հասցեն չփոխվի: Կարող եք նաև փոփոխել Blynk հավելվածը ՝ հոսքի URL- ում IP հասցեն թարմացնելու համար. Հետաքրքիր տնային առաջադրանք, եթե պատրաստ եք դրան:

Ներկայիս ուրվագիծը օգտագործում է QVGA թույլտվություն ՝ 320x240 պիքսել, ինչը այն դարձնում է բավականին արագ: Դուք ազատ եք և խրախուսվում եք խաղալ այլ բանաձևերի հետ և որոշել, թե որն է ձեզ համար հարմար:

RAM- ը չպետք է խնդիր լինի, քանի որ ուրվագիծը օգտվում է PSRAM- ից:

Քայլ 10: Կազմաձևում

Էսքիզն օգտվում է իմ Բառարանային և EspBootstrap գրադարաններից ՝ բեռնման ժամանակ կոնֆիգուրացիայի սերվերից բեռնելու կոնֆիգուրացիայի պարամետրերը:

Ես վարում եմ իմ սեփական կազմաձևման սերվերը, որը դուք նույնպես կարող եք անել (դա պարզ Apache2 վեբ սերվեր է, որը պարզապես ծառայում է JSON ֆայլերին):

Կարող եք նաև օգտագործել առաջադրանքի համար մատչելի առցանց ծառայություններից որևէ մեկը (OTADrive, Microsoft Azure, AWS IoT և այլն): Այս դեպքում խնդրում ենք փոխել String makeConfig (Լարերի ուղի) մեթոդը `համապատասխան կազմաձևելու համար URL, որը մատնանշում է ձեր կազմաձևման աղբյուրը: Այլապես, կարող եք կազմաձևման ֆայլը պահել SPIFFS ֆայլային համակարգում ESP32-CAM- ում և կարդալ այն այնտեղից, կամ պարզապես կոդավորել բոլոր գրառումները: Ձեր ընտրանքների համար տե՛ս EspBootstrap գրադարանի README:

Կազմաձևման ֆայլի օրինակ տրվում է GitHub- ում:

Եթե նախընտրում եք կոշտ կոդերի պարամետրերը, ստորև բերված է մի օրինակ.

pd («Վերնագիր», «DND Sword Setup»);

pd ("ssid", "your wifi ssid"); pd («գաղտնաբառ», «ձեր wifi գաղտնաբառը»); pd ("msg", "Hello!"); pd ("սարքեր", "8"); pd ("blynk_auth", "your blynk AUTH UUID"); // եթե աշխատում եք միայն ձեր սեփական սերվերի վրա ՝ pd («blynk_host», «ձեր blynk սերվերի IP»); pd ("blynk_port", "ձեր սերվերի նավահանգիստ");

Քայլ 11: OTA որոնվածի թարմացումներ

Էսքիզը նաև միացված է OTA (Over The Air) որոնվածի թարմացմանը և ստուգում է նոր որոնվածը յուրաքանչյուր բեռնման ժամանակ:

Կրկին, ես վարում եմ իմ սեփական OTA թարմացման սերվերը, որը դուք նույնպես կարող եք անել (դա պարզ Apache2 վեբ սերվեր է, որը մի փոքր PHP սցենարական ծառայություն է մատուցում երկուական ֆայլերի):

Դուք կարող եք նաև օգտագործել առաջադրանքի համար մատչելի առցանց IoT ծառայություններից որևէ մեկը (OTADrive, Microsoft Azure, AWS IoT և այլն): Այս դեպքում, խնդրում ենք փոխել անվավեր checkOTA () մեթոդը `համապատասխանաբար կառուցելու համար թարմացման URL, որը մատնանշում է ձեր երկուական ֆայլի աղբյուրը:

Սա պարտադիր չէ. Դուք կարող եք ընտրել երկուական ֆայլերի վերբեռնում սերիական կապի միջոցով:

Քայլ 12: MJPEG սերվեր

Այս թեման մանրամասն նկարագրված է այստեղ:

Քայլ 13: Blynk հավելված

Blynk հավելված
Blynk հավելված
Blynk հավելված
Blynk հավելված
Blynk հավելված
Blynk հավելված

Blynk- ը ամպային վրա հիմնված IoT հարթակ է, որը թույլ է տալիս հավելվածների արագ զարգացում: Այն անվճար է անձնական օգտագործման համար և նույնիսկ հնարավորություն ունի գործարկել ձեր սեփական Blynk սերվերը:

Ես (ինչպես երևի արդեն կռահեցիք) աշխատում եմ իմ սեփական Blynk սերվերի վրա, բայց ձեզ համար ավելի հեշտ կլինի օգտագործել ամպային տարբերակը: Տեղադրեք Blynk iOS կամ Android ծրագիրը և հետևեք ստորև ներկայացված նկարներին ՝ ձեր հեռախոսում հավելվածը վերակառուցելու համար:

Ձեր հավելվածի հետ աշխատելու համար դուք պետք է տրամադրեք ձեր սեփական Blynk Auth UUID- ը: Սա է պատճառը, որ ես օգտագործում եմ կազմաձևման ֆայլեր: Այնուամենայնիվ, մեկանգամյա ծրագրի դեպքում կոդավորված արժեքը նույնքան լավ կաշխատի:

ԿԱՐԵՎՈՐ. Խնդրում ենք համոզվել, որ ձեր Blynk Project- ը սահմանվել է որպես սարքերի մասին ծանուցում, երբ հավելվածը միացված է:

Ո NOTՇԱԴՐՈԹՅՈՆ վիդեո հոսքի վիջեթում. Երբեմն տեսանյութը չի սկսվում: Կարծես թե խնդիր չէ ESP32- ի, այլ Blynk հավելվածի վիդջեթի հետ: Փորձեք փակել և վերաբացել orրագիրը կամ նորից դադարեցնել/սկսել նախագիծը: Ի վերջո, այն սկսվում է: Կարծես թե այս խնդիրը գոյություն չունի դիտարկիչում կամ VLC նվագարկիչում (օրինակ):

Քայլ 14: Վայելեք:

Շատ զվարճալի էր դա կառուցելը և ապացուցելը, որ ESP32- ի նման փոստային կնիքի չափ սարքը կարող է շատ ավելին անել, քան պարզապես տեսանյութեր հեռարձակել: Այս նախագծից շատ հասկացություններ կարող են կրկին օգտագործվել այլ ծրագրերում:

Քայլ 15. Գրադարաններ և ծածկագիր

Գրադարաններ:

  • Blynk սերվեր
  • EspBootstrap գրադարան
  • TaskScheduler գրադարան
  • Բառարանային գրադարան
  • LED մատրիցային գրադարան
  • Գրադարան ՝ մոդուլային ոլորման LED մատրիցային տեքստային ցուցադրումների համար

Իրական պահեստ

Minecraft Interactive Մի մուտքագրեք սուր/նշան (ESP32-CAM)

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