Мазмұны:
- Жабдықтар
- 1 -қадам: соңғы өнім
- 2 -қадам: қылыш беті
- 3 -қадам: нүктелік матрицалық жарықдиодты дисплей
- 4 -қадам: қуат
- 5 -қадам: Схемалық
- 6 -қадам: 3D басып шығару
- 7 -қадам: бағдарламалау
- 8 -қадам: Матрицалық бақылау
- 9 -қадам: бейне ағыны
- 10 -қадам: конфигурация
- 11 -қадам: OTA микробағдарламалық жасақтамасын жаңарту
- 12 -қадам: MJPEG сервері
- 13 -қадам: Blynk қосымшасы
- 14 -қадам: ләззат алыңыз
- 15 -қадам: Кітапханалар мен код
Бейне: Интерактивті майнкрафт қылышқа/белгіге кірмейді (ESP32-CAM): 15 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:23
Бұл жобаның пайда болуының бірнеше себептері бар:
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 басып шығару
Батарея корпусы мен нүктелік матрицалық дисплей жиынтығына 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-бұлтқа негізделген IoT платформасы, ол қосымшаларды жылдам дамытуға мүмкіндік береді. Бұл жеке пайдалану үшін ақысыз, тіпті сіздің жеке Blynk серверіңізді іске қосу мүмкіндігі бар.
Мен (сіз болжаған боларсыз) өз Blynk серверін іске қосамын, бірақ бұлтты нұсқаны пайдалану сізге оңайырақ болуы мүмкін. Blynk iOS немесе Android қосымшасын орнатыңыз және телефондағы қолданбаны қайта құру үшін төмендегі суреттерді орындаңыз.
Қолданбамен жұмыс жасау үшін сізге өзіңіздің Blynk Auth UUID -ін көрсету қажет болады. Сондықтан мен конфигурация файлдарын қолданамын. Алайда, бір реттік жоба үшін қатаң кодталған мән дәл жақсы жұмыс істейді.
МАҢЫЗДЫ: Blynk жобасы қолданба қосылған кезде құрылғыларға хабарландыру орнатылғанына көз жеткізіңіз.
Бейне ағыны виджетінде ЕСКЕРТПЕ: кейде бейне басталмайды. Бұл ESP32 -де проблема емес сияқты, Blynk қосымшасының бейне виджетінде. Қолданбаны жауып, қайта ашуға немесе жобаны қайтадан тоқтатуға/бастауға тырысыңыз. Ақырында, ол басталады. Бұл мәселе браузерде немесе VLC ойнатқышында жоқ сияқты (мысалы).
14 -қадам: ләззат алыңыз
Мұны жасау өте қызықты болды және ESP32 сияқты пошталық өлшемдегі құрылғы бейнені ағынмен ғана шектей алмайды. Бұл жобаның көптеген тұжырымдамаларын басқа қосымшаларда қолдануға болады.
15 -қадам: Кітапханалар мен код
Кітапханалар:
- Blynk сервері
- EspBootstrap кітапханасы
- TaskScheduler кітапханасы
- Сөздік кітапханасы
- Жарықдиодты матрицалық кітапхана
- Жарықдиодты матрицалық мәтіндік дисплейлерді модульдік айналдыруға арналған кітапхана
Нақты репозиторий:
Minecraft Interactive қылышқа/белгіге кірмейді (ESP32-CAM)
Ұсынылған:
BBC Micro: бит және Scratch - интерактивті руль және жүргізуші ойыны: 5 қадам (суреттермен)
BBC Micro: бит және Scratch - интерактивті руль және көлік жүргізу ойыны: Менің осы аптадағы тапсырмаларымның бірі - біз жазған Scratch бағдарламасымен интерфейс жасау үшін BBC Micro: bit пайдалану. Мен бұл ThreadBoard тақтасын ендірілген жүйені құрудың тамаша мүмкіндігі деп ойладым! Менің сызатқа шабытым
Arduino интерактивті жарықдиодты кофе үстелі: 6 қадам (суреттермен)
Arduino интерактивті жарықдиодты кофе үстелі: Мен интерактивті кофе үстелін жасадым, ол объектінің астына шамдарды қосады, ол үстелдің үстіне қойылғанда. Тек сол объектінің астындағы светодиодтар жанады. Ол мұны жақындық сенсорларын тиімді қолдану арқылы жасайды, ал жақындық
Интерактивті жарықдиодты плитка қабырғасы (қарағанда оңай): 7 қадам (суреттермен)
Интерактивті жарықдиодты плитка қабырғасы (қарағанда оңай): Бұл жобада мен Arduino мен 3D басып шығарылған бөлшектердің көмегімен интерактивті жарықдиодты қабырға дисплейін құрдым. Бұл жобаның шабыты Nanoleaf тақтайшаларынан алынды. Мен өз нұсқамды ойлап тапқым келді, ол қол жетімді ғана емес, сонымен қатар
Майнкрафт батутын қалай жасауға болады: 7 қадам
Майнкрафт батутын қалай жасауға болады: Бұл майнкрафт батуттары менің інілеріме қатысты өте қызықты және үлкен хит! Жасау қызықты, соңында ойнау да қызықты! Бұл сізді әдеттегіден әлдеқайда жоғары секіруге мәжбүр етеді. Сізге кейбір қауіпсіздік шаралары қажет
Майнкрафт үйі: 8 қадам
Майнкрафт үйі: Егер сіз менің майнкрафттағы ең жақсы үйге қатысты ұсыныстарымды орындасаңыз, сіз оған ұқсас үй сала аласыз! Бұл тек ұсыныстар, мен жасағанның бәрін орындаудың қажеті жоқ; Сіз мені ұнатасыз, өзіңізге ұнайтын нәрселерді жасай аласыз