Мазмұны:

Интерактивті майнкрафт қылышқа/белгіге кірмейді (ESP32-CAM): 15 қадам (суреттермен)
Интерактивті майнкрафт қылышқа/белгіге кірмейді (ESP32-CAM): 15 қадам (суреттермен)

Бейне: Интерактивті майнкрафт қылышқа/белгіге кірмейді (ESP32-CAM): 15 қадам (суреттермен)

Бейне: Интерактивті майнкрафт қылышқа/белгіге кірмейді (ESP32-CAM): 15 қадам (суреттермен)
Бейне: I made the perfect Netflix logo in Minecraft 2024, Шілде
Anonim
Image
Image
Соңғы өнім
Соңғы өнім

Бұл жобаның пайда болуының бірнеше себептері бар:

1. TaskScheduler кооперативті көпміндетті кітапханасының авторы ретінде мен әрқашан кооперативті көп тапсырманың артықшылықтарын алдын ала алудың артықшылықтарымен қалай үйлестіруді білгім келді. Екеуінің де пайдасы бар, екеуінің де кемшіліктері бар. Екеуін біріктіру артықшылықтарды пайдалануға және белгілі бір жағдайға негізделген мәселелерді шешуге бірегей мүмкіндік береді. Қызықты? Оқу…

2. ESP32-көп ядролы микроконтроллер екендігі қызықты. Мен бұл мүмкіндікті пайдалана аламын ба деп үнемі қызығатынмын. Бұл жерде эксперимент келесідей болды: ESP32 екінші ядрода басқа бірдеңе (мағыналы және ақылға қонымды нәрсе) жасай отырып, бір ядро арқылы бейнені біркелкі жүргізе ала ма? Одан да қызықты ??? Оқыңыз …!

3. Маған OTA микробағдарламасын қамтамасыз ету мен конфигурацияны басқару жөніндегі соңғы жобалар үшін сынақ алаңы қажет болды …

4. Мен бірнеше уақыт бұрын екі нүктелі матрицалық LED модулін сатып алдым және олармен не істеу керектігін түсінбедім …

5. Менің ұлым - Minecraft ойыншысы, және кез келген кішкентай бала есігін «Кірмеңіз» плакаттарымен безендіруді ұнатады …

Міне, сіз осындасыз - барлық жақсы себептер: ESP32 -CAM бейне интерфейсі бар интерактивті есік белгісі «жабық есіктің артынан» немесе «Менің бөлмеме кім келеді?»

Сонымен … бәрі не туралы?

Егер сіз әңгімені толық оқуға шыдамды болсаңыз, бұл шынымен Minecraft қылышына қатысты емес екенін түсінесіз. Бұл жоба көптеген тұжырымдамалардың дәлелі:

  • Преферентивті және кооперативті көп тапсырмалардың қатар өмір сүруі
  • ESP32 ядроларын таңдап қолдану
  • Жаңа Dictionary және EspBootstrap кітапханаларын қолдану
  • OTA микробағдарламасын қамтамасыз ету
  • Конфигурацияны басқару
  • Бейне бірнеше клиенттерге жіберіледі

және тағы басқалар.

Ләззат алыңыз

Жабдықтар

  • ESP32-CAM
  • MAX7219 нүктелік матрицалық модуль 4-in-1 LED дисплей модулі Geekcreit Arduino үшін
  • Attom Tech 2500mAh қуат банкі

1 -қадам: соңғы өнім

Соңғы өнім
Соңғы өнім

Мен соңғы өнімнің қалай көрінетінінен бастаймын, содан кейін оның қалай салынғанын және оны қалай басқаруға болатынын түсіндіремін.

Бұл әлдеқайда тартымды болып көрінеді …

2 -қадам: қылыш беті

Қылыш беті
Қылыш беті
Қылыш беті
Қылыш беті

Қылыштың беті тақтадан жасалған, қарындашпен белгіленген және Crayola маркерлерімен боялған. Бұл сіздің балаңызбен қызықты жоба болуы мүмкін:

  • Қылышты тақтаға белгілеңіз
  • Бет тақтасын кесіңіз
  • Квадраттарды (немесе блоктарды) белгілеңіз
  • Оларды жеке -жеке бояңыз
  • Өткір бұрышы бар қара сызықтарды қосыңыз.

Мен ашық кеңсенің құжатын алмастың қылышының үлгісі бар суретті қоса беремін, егер оны қысқа жолмен таңдасаңыз, тақтаның үстіне жабыстыруға болады … Барлығы аяқталғаннан кейін сіз қалақшаның басқа бөлігін ыстық желіммен жабыстыруға немесе екі рет қолдануға болады. бір жақты таспа.

3 -қадам: нүктелік матрицалық жарықдиодты дисплей

Жарықдиодты дисплей матрицасы
Жарықдиодты дисплей матрицасы
Жарықдиодты дисплей матрицасы
Жарықдиодты дисплей матрицасы
Жарықдиодты дисплей матрицасы
Жарықдиодты дисплей матрицасы

Менде олардың әрқайсысы 4 сегменті бар 2 болды, сондықтан мен 8 сегменттен бір бөлік жасауға шешім қабылдадым.

Ыңғайлы, бір жағында 5 істікшелі ерлердің үстіңгі тақтасы және қарама-қарсы жағында 5 тесік бар. Ерлер тақырыбын қапсырма тәрізді пішінге айналдырып, мен екі модульді электрлік және механикалық түрде қоса алдым! Бір құспен екі құсты өлтірді (немесе екі шыбын бір шелпекпен, бір ауызға екі ауызды тоқтату үшін, бір сыйлықпен екі дос болу үшін, бір садаққа екі жіппен байланыстыру үшін, бұл туралы басқа идиомалар қандай? Кешіріңіз, мен шегіндім).

Қарама-қарсы ерлер тақырыбы ESP32-Cam және басқа компоненттері бар вертолеттің сәйкес келетін әйел тақырыбын қосу үшін пайдаланылады.

Екі компонент 3D-басып шығарылған көпірмен қосылады, ол сонымен қатар қуатты қосуға және өшіруге арналған қосқышы бар. Көпір мен басқа компоненттерге арналған 3D STL файлдары GitHub файлдар/3d қалтасында орналасқан.

4 -қадам: қуат

Қуат
Қуат

Қылыш 2500 мАч USB қуат банкімен жұмыс істейді - мен таба алатын ең кішкентай және жұқа. Powerbank 3D-басып шығарылған корпуста сырғып кетеді, ол нүктелік матрицалық модульдерге де қосылады, осылайша бәрін біріктіреді.

Қуат банкінің корпусына екі дөңгелек магнит жабыстырылған, осылайша есік қылышпен бекітілген (сондықтан оны қызмет көрсету үшін оңай ажыратуға болады).

5 -қадам: Схемалық

Схемалық
Схемалық
Схемалық
Схемалық
Схемалық
Схемалық

Нағыз схема GitHub -да орналасқан, бірақ сурет 1000 сөзден тұрады (1024 ақпараттық технологияда), осылайша сіз:

Егер сіз дәнекерлеу пистолетін қолдануды білсеңіз, бұл өте қарапайым. ЕСКЕРТПЕ: 3 -ші көпір бөлігі вертолеттің 30х70 мм өлшеміне арналған. Егер сіз басқасын қолдануды шешсеңіз, көпір компонентін қайта жобалауыңыз қажет.

6 -қадам: 3D басып шығару

3D басып шығару
3D басып шығару
3D басып шығару
3D басып шығару
3D басып шығару
3D басып шығару

Батарея корпусы мен нүктелік матрицалық дисплей жиынтығына ESP32-CAM вертолетін қосатын көпір 3d форматында жасалған және басып шығарылған.

Батарея корпусы 2 бөліктен тұрады, оны батареяға «қалта» жасау үшін басып шығарғаннан кейін желімдеу керек. Көпірді барлық тірек құрылымдарынан тазарту қажет (өкінішке орай, оларды азайтатын жақсы бағдар жоқ). STL файлдары GitHub -да және TinkerCad түпнұсқалары осында орналасқан.

TinkerCad -тің 3D дизайны сонымен қатар бөлшектердің бір -біріне қалай сәйкес келетінін және қосылу керектігін модельдейтін құрастыру схемасын қамтиды.

7 -қадам: бағдарламалау

Көпміндетті

Бұл дизайн FreeRTOS -ты алдын -ала көп тапсырма үшін және TaskScheduler кітапханасы кооперативке арналған. Қылыштың мінез-құлқы мен хабарлары Blynk App арқылы бақыланады. Орнатудан кейін (түйреуіштер, камера мен нүктелік матрицаны инициализациялау, WiFi желісіне қосылу және т.б.) RTOS-тың екі негізгі тапсырмасы жасалады:

  • ESP32 қосымшасының ядросына бекітілген бейне ағыны RTOS тапсырмасы (ядро 1)
  • Мәтінді көрсету және Blynk басқаратын RTOS тапсырмасы ESP32 Power Core-ге бекітілген (ядро 0), ол сонымен қатар WiFi-ге қатысты барлық тапсырмаларға жауап береді. Мәтін мен Blynk байланысты орындалуы TaskScheduler тапсырмалары арқылы басқарылады.

Мен RTOS тапсырмалары үшін 4K стек кеңістігі жеткілікті екенін білдім, бірақ буманың таусылып қалу мүмкіндігі бар, сондықтан қаласаңыз, оны 8K етіп жасаңыз - ESP32 -те жедел жады көп.

Барлық бейне түсіру мен ағын Core 1 -де болады. Қалғаны - Core 0 -де.

ESP32 мұның бәрін аздап терлеу арқылы шешуге жеткілікті күшке ие (бейне ағызу кезінде тақта қызып кетеді).

БҰЛ жобаның басты мақсаты болды: алдын ала және бірлескен көп тапсырмалардың бейбіт және өнімді өмір сүруі!

8 -қадам: Матрицалық бақылау

Мен Arduino IDE кітапхана менеджерінде қол жетімді MD_Parola және MD_MAX72xx өте қуатты кітапханаларын қолданамын.

Барлық мәтіндік арнайы эффектілер сол кітапханалар арқылы жасалады. Дұрыс MAX72XX аппараттық түрін (MD_MAX72XX:: ICSTATION_HW менің жағдайда, сіздікі басқаша болуы мүмкін) анықтау үшін біраз күш қажет болды, содан кейін мәтінді басқару - бұл жел.

Қылыш келесі бақылауға мүмкіндік береді:

  • Жарықтық
  • Жыпылықтау
  • Жарқыл
  • Айналу жылдамдығы мен бағыты (жоғары/төмен, солға/оңға, тұрақты)
  • Сіз оны қабырға сағатына айналдыра аласыз

9 -қадам: бейне ағыны

Blynk қосымшасында бейне ағыны үшін кішкене виджет бар, бірақ сіз оны шолғышқа, VLC ойнатқышына немесе MJPEG стандартын қолдайтын кез келген нәрсеге ағынмен жібере аласыз.

Қосылған 10 клиентке дейін қолдау көрсетіледі.

Қосылу үшін сізге ESP32-CAM IP мекенжайын білу қажет. Сіз оны маршрутизатордан іздей аласыз немесе осы эскизді алдымен _DEBUG_ опциясы қосылған күйінде құрастыра аласыз және желіге қосылған кезде терминалдың IP мекенжайын оқи аласыз.

МАҢЫЗДЫ: ESP32-CAM модуліне тұрақты IP мекенжайын тағайындау немесе DHCP брондауын жасау өте орынды, сондықтан жалдау мерзімі аяқталған кезде оның мекенжайы өзгермейді. Сіз сонымен қатар Blynk қосымшасын ағынның URL мекенжайындағы IP мекенжайын жаңарту үшін өзгерте аласыз - егер сіз оған дайын болсаңыз, қызықты үй тапсырмасы.

Ағымдағы эскизде QVGA ажыратымдылығы қолданылады: 320x240 пиксель, бұл оны өте жылдам етеді. Сіз басқа шешімдермен ойнауға және сізге сәйкес келетінін шешуге еркінсіз және шақырыласыз.

Жедел жады проблема болмауы керек, себебі эскиз PSRAM артықшылығын пайдаланады.

10 -қадам: конфигурация

Эскиз жүктеу кезінде конфигурация серверінен конфигурация параметрлерін жүктеу үшін Dictionary мен EspBootstrap кітапханаларының артықшылығын пайдаланады.

Мен өзімнің конфигурациялық серверімді іске қосамын, сіз де жасай аласыз (бұл шынымен JSON файлдарына қызмет көрсететін қарапайым Apache2 веб -сервері).

Сіз сондай -ақ тапсырма үшін қол жетімді кез келген онлайн қызметтерін пайдалана аласыз: (OTADrive, Microsoft Azure, AWS IoT және т.б.). Бұл жағдайда конфигурация көзін көрсететін URL мекенжайын дұрыс құру үшін String makeConfig (String path) әдісін өзгертіңіз. Сонымен қатар, конфигурация файлын ESP32-CAM-де SPIFFS файлдық жүйесінде сақтап, сол жерден оқи аласыз немесе барлық жазбаларды қатаң кодтай аласыз. Опциялар үшін EspBootstrap кітапханасының README бөлімін қараңыз.

Конфигурация файлының мысалы GitHub -та берілген.

Егер сіз қатаң кодтау параметрлерін таңдағыңыз келсе, мысал төменде:

pd («Тақырып», «DND Sword Setup»);

pd («ssid», «сіздің wifi ssid»); pd («құпия сөз», «сіздің WiFi құпия сөзіңіз»); pd («msg», «Hello!»); pd («құрылғылар», «8»); pd («blynk_auth», «сіздің blynk AUTH UUID»); // егер сіз тек өзіңіздің жеке серверіңізді іске қоссаңыз: pd («blynk_host», «сіздің blynk сервер IP)»; pd («blynk_port», «сіздің сервер портыңыз»);

11 -қадам: OTA микробағдарламалық жасақтамасын жаңарту

Эскиз сонымен қатар OTA (Over The Air) микробағдарламасын жаңартуды қосады және әр жүктеу кезінде жаңа микробағдарламаны тексереді.

Мен қайтадан OTA жаңарту серверін іске қосамын, оны да жасай аласың (бұл екілік файлдарға қызмет ететін PHP сценарийі бар қарапайым Apache2 веб -сервері).

Сіз сондай -ақ тапсырма үшін қол жетімді кез келген онлайн IoT қызметтерін пайдалана аласыз: (OTADrive, Microsoft Azure, AWS IoT және т.б.). Бұл жағдайда екілік файл көзін көрсететін жаңарту URL мекенжайын дұрыс құру үшін void checkOTA () әдісін өзгертіңіз.

Бұл міндетті емес - екілік файлдарды сериялық қосылым арқылы жүктеуді таңдауға болады.

12 -қадам: MJPEG сервері

Бұл тақырып мұнда егжей -тегжейлі сипатталған.

13 -қадам: Blynk қосымшасы

Blynk қосымшасы
Blynk қосымшасы
Blynk қосымшасы
Blynk қосымшасы
Blynk қосымшасы
Blynk қосымшасы

Blynk-бұлтқа негізделген IoT платформасы, ол қосымшаларды жылдам дамытуға мүмкіндік береді. Бұл жеке пайдалану үшін ақысыз, тіпті сіздің жеке Blynk серверіңізді іске қосу мүмкіндігі бар.

Мен (сіз болжаған боларсыз) өз Blynk серверін іске қосамын, бірақ бұлтты нұсқаны пайдалану сізге оңайырақ болуы мүмкін. Blynk iOS немесе Android қосымшасын орнатыңыз және телефондағы қолданбаны қайта құру үшін төмендегі суреттерді орындаңыз.

Қолданбамен жұмыс жасау үшін сізге өзіңіздің Blynk Auth UUID -ін көрсету қажет болады. Сондықтан мен конфигурация файлдарын қолданамын. Алайда, бір реттік жоба үшін қатаң кодталған мән дәл жақсы жұмыс істейді.

МАҢЫЗДЫ: Blynk жобасы қолданба қосылған кезде құрылғыларға хабарландыру орнатылғанына көз жеткізіңіз.

Бейне ағыны виджетінде ЕСКЕРТПЕ: кейде бейне басталмайды. Бұл ESP32 -де проблема емес сияқты, Blynk қосымшасының бейне виджетінде. Қолданбаны жауып, қайта ашуға немесе жобаны қайтадан тоқтатуға/бастауға тырысыңыз. Ақырында, ол басталады. Бұл мәселе браузерде немесе VLC ойнатқышында жоқ сияқты (мысалы).

14 -қадам: ләззат алыңыз

Мұны жасау өте қызықты болды және ESP32 сияқты пошталық өлшемдегі құрылғы бейнені ағынмен ғана шектей алмайды. Бұл жобаның көптеген тұжырымдамаларын басқа қосымшаларда қолдануға болады.

15 -қадам: Кітапханалар мен код

Кітапханалар:

  • Blynk сервері
  • EspBootstrap кітапханасы
  • TaskScheduler кітапханасы
  • Сөздік кітапханасы
  • Жарықдиодты матрицалық кітапхана
  • Жарықдиодты матрицалық мәтіндік дисплейлерді модульдік айналдыруға арналған кітапхана

Нақты репозиторий:

Minecraft Interactive қылышқа/белгіге кірмейді (ESP32-CAM)

Ұсынылған: