Мазмуну:

Интерактивдүү Майнкрафт Кылычка/Белгиге кирбейт (ESP32-CAM): 15 кадам (Сүрөттөр менен)
Интерактивдүү Майнкрафт Кылычка/Белгиге кирбейт (ESP32-CAM): 15 кадам (Сүрөттөр менен)

Video: Интерактивдүү Майнкрафт Кылычка/Белгиге кирбейт (ESP32-CAM): 15 кадам (Сүрөттөр менен)

Video: Интерактивдүү Майнкрафт Кылычка/Белгиге кирбейт (ESP32-CAM): 15 кадам (Сүрөттөр менен)
Video: 11-класс | Кыргыз тили | Илимий стилде аткарылуучу практикалык иштер. Конспект. Реферат 2024, Июль
Anonim
Image
Image
Акыркы продукт
Акыркы продукт

Бул долбоордун пайда болушунун бир нече себептери бар:

1. TaskScheduler кооперативдүү көп тапшырмалуу китепкананын автору катары мен кооперативдик көп тапшырманын артыкчылыктарын алдын ала колдонуунун пайдасы менен кантип айкалыштырууга дайыма кызыкчумун. Экөөнүн тең пайдасы бар, экөөнүн тең кемчилиги бар. Экөөнү бириктирүү, артыкчылыктарды колдонууга жана тигил же бул конкреттүү ишке негизделген маселелерди чечүүгө уникалдуу мүмкүнчүлүк берет. Кызыктуубу? Окуу…

2. ESP32тин көп ядролуу микроконтроллер экендиги абдан кызыктуу. Мен бул өзгөчөлүктү колдоно аламбы деп дайыма кызыкчумун. Ошентип, бул жерде эксперимент мындай болду: ESP32 башка ядродо башка нерсени (мааниси бар жана акылга сыярлык башка нерсени) кылып жатканда, бир ядро менен видеону жылмакай түрдө агылта алабы. Андан да кызык ??? Окууну…!

3. Мага OTA программалык камсыздоону камсыздоо жана конфигурацияны башкаруу боюнча акыркы долбоорлорум үчүн сыноо аянтчасы керек болчу …

4. Мен бир нече убакыт мурун эки LED Dot Matrix модулун сатып алган элем жана алар менен эмне кыларымды билбей калдым …

5. Менин уулум Minecraftтын оюнчусу, жана кичинекей бала эшикти "Кирбе" плакаттары менен кооздоону жакшы көрөт …

Мына, бул жерде - бардык жакшы себептер: Интерактивдүү кирбеңиз ESP32 -CAM видео тамгасы менен "жабык эшиктин артынан" же "Менин бөлмөмө ким келет?"

Ошентип … мунун баары эмнеде?

Эгерде сиз бүт окуяны окуганга чыдамкай болсоңуз, анда бул чындыгында Minecraft кылычы жөнүндө эмес экенин түшүнөсүз. Бул долбоор көптөгөн түшүнүктөрдүн далили:

  • Алдын алуу жана кооперативдик көп тапшырмалар менен бирге жашоо
  • ESP32 ядролорун тандап колдонуу
  • Жаңы Сөздүк жана EspBootstrap китепканаларын колдонуу
  • OTA камтылган программалык камсыздоо
  • Конфигурацияны башкаруу
  • Бир нече кардарга видео агымы

жана бир топ көп.

Ырахат алыңыз

Жабдуулар

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

1 -кадам: Акыркы продукт

Акыркы продукт
Акыркы продукт

Мен баштайм, акыркы продукт кандай көрүнөт, анан кантип курулганын жана аны кантип көзөмөлдөө керек экенин түшүндүрөм.

Бул жагымдуу окшойт…

2 -кадам: Кылычтын бети

Sword Faceplate
Sword Faceplate
Sword Faceplate
Sword Faceplate

Кылычтын бети тактайдан жасалган, карандаш менен белгиленген жана Крайола маркерлери менен боёлгон. Бул сиздин балаңыз менен кызыктуу долбоор болушу мүмкүн:

  • Кылычты доскага белгиле
  • Бет капчыкты кесип алыңыз
  • Квадраттарды (же блокторду) белгилеңиз
  • Аларды жекече түстөңүз
  • Курч менен кара сызыктарды кошуңуз.

Мен эгер сиз жарлыктарды кааласаңыз, досканын үстүнө жабыштыра турган алмаз кылычтын үлгүсү бар ачык офис документин коштум … Баары бүткөндөн кийин, сиз фронттун калган бөлүгүн ысык желим менен жабсаңыз болот же кош колдонсоңуз болот. тараптуу лента.

3 -кадам: Dot Matrix LED дисплейи

Dot Matrix LED дисплейи
Dot Matrix LED дисплейи
Dot Matrix LED дисплейи
Dot Matrix LED дисплейи
Dot Matrix LED дисплейи
Dot Matrix LED дисплейи

Менде алардын экөөсү бар, ар бири 4 сегмент, ошондуктан мен 8 сегменттен бир бөлүк кылууну чечтим.

Ыңгайлуу түрдө бир жагында 5 төөнөгүч эркек баш, ал эми карама-каршы жагында 5 тешик бар. Эркектин башын степлерге окшош] формага ийип, мен эки модулду электрдик жана механикалык жактан туташтыра алдым! Бир таш менен эки чымчыкты өлтүрдү (же бир чымчык менен эки чымын, бир ооздук менен эки оозду токтотуу, бир белек менен эки дос кылуу, бир жаага эки жип алуу, бул боюнча башка идиомалар кандай - ойлонуп көрдүңүз беле? Кечиресиз, мен чегиндим).

Карама-каршы эркек аталышы ESP32-Cam жана башка компоненттер менен вероборддон дал келген аялдын башын туташтыруу үчүн колдонулат.

Эки компонент 3d басылган көпүрө менен туташат, ал дагы электрди күйгүзүү жана өчүрүү үчүн которгучту камтыйт.3d STL файлдары көпүрө жана башка компоненттер үчүн GitHubдагы файлдар/3d папкасында жайгашкан.

4 -кадам: Күч

Күч
Күч

Кылыч 2500 мАч USB кубаты менен иштейт - мен тапкан эң кичинекей жана ичке. Powerbank 3d басылган корпуска жылат, ал дагы матрицалык модулдарга тиркелет, ошентип бүт нерсени чогуу кармап турат.

Күч банкынын корпусуна чапталган эки тегерек магнит бар, жана кылыч эшикке ушинтип бекитилет (андыктан тейлөө үчүн оңой эле ажыратылышы мүмкүн).

5 -кадам: схемалык

Схемалык
Схемалык
Схемалык
Схемалык
Схемалык
Схемалык

Чыныгы схема GitHubда жайгашкан, бирок сүрөт 1000 сөзгө барабар (Маалымат технологиясында 1024), андыктан бул жерде сиз:

Эгерде сиз ширетүүчү тапанча менен өз жолуңузду билсеңиз, бул жөнөкөй эле нерсе. ЭСКЕРТҮҮ: 3d көпүрө бөлүгү вробордун өзгөчө өлчөмү үчүн иштелип чыккан: 30 x 70 мм. Эгер башкасын колдонууну чечсеңиз, көпүрөнүн компонентин кайра иштеп чыгууңуз керек.

6 -кадам: 3d басып чыгаруу

3d басып чыгаруу
3d басып чыгаруу
3d басып чыгаруу
3d басып чыгаруу
3d басып чыгаруу
3d басып чыгаруу

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

Батарейканын корпусу 2 бөлүктөн турат, алар батарея үчүн "чөнтөк" түзүү үчүн басып чыгаргандан кийин жабыштырылышы керек. Көпүрөнү жөн эле бардык колдоо структураларынан тазалоо керек (чынында, тилекке каршы, аларды азайткан жакшы багыт жок). STL файлдары GitHubда жана TinkerCad түпнускалары ушул жерде.

TinkerCadдагы 3D дизайны бөлүктөрдүн бири -бирине кантип туура келерин жана туташуусун симуляцияланган монтаждоо схемасын камтыйт.

7 -кадам: Программалоо

Multi-multitasking

Бул дизайн FreeRTOSту алдын ала көп тапшырма үчүн жана TaskScheduler китепканасын кооперативдик үчүн колдонот. Кылычтын жүрүм-туруму жана билдирүүлөрү Blynk App аркылуу көзөмөлдөнөт. Орнотулгандан кийин (казыктар, камера жана чекиттүү матрицанын инициализациясы, WiFiга туташуу ж. Б.), RTOSтун эки негизги тапшырмасы түзүлөт:

  • ESP32 тиркемесине кадалган RTOS видео агымы (негизги 1)
  • Текст дисплейи жана Blynk контролдоо RTOS тапшырмасы, ESP32 Power Coreго кадалган (ядро 0), ал ошондой эле WiFi менен байланышкан бардык тапшырмалар үчүн жооптуу. Текст жана Blynk менен байланышкан аткаруу 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 менин жагдайымда, сиздики башкача болушу мүмкүн), андан кийин текстти көзөмөлдөө - бул шамал.

Кылыч төмөнкү көзөмөлдөрдү берет:

  • Жарыктык
  • Көз ирмем
  • Flash
  • Жылдыруу ылдамдыгы жана багыты (өйдө/ылдый, солго/оңго, туруктуу)
  • Сиз аны дубал саатына айландырсаңыз болот

9 -кадам: Видео агымы

Blynk колдонмосунда видео агымына кичине виджет бар, бирок сиз браузерге, VLC ойноткучуна же MJPEG стандартын колдогон нерсеге агылып кире аласыз.

10го чейин туташкан кардарлар колдоого алынат.

Ага туташуу үчүн сиз ESP32-CAMдин IP дарегин билишиңиз керек болот. Сиз аны роутериңизден издей аласыз же бул эскизди _DEBUG_ опциясы иштетилгенден кийин түзө аласыз жана ал тармагыңызга туташканда терминалдын IP дарегин окуй аласыз.

МААНИЛҮҮ: ESP32-CAM модулуна туруктуу IP дарегин дайындоо же DHCP ээлеп коюу өтө жөндүү, ошондуктан анын дареги ижара мөөнөтү бүткөндө өзгөрбөйт. Сиз ошондой эле Blynk тиркемесин IP дарегин агым URLинде жаңыртуу үчүн өзгөртө аласыз - эгер сиз буга даяр болсоңуз, кызыктуу үй тапшырмасы.

Учурдагы эскиз QVGA токтомун колдонот: 320x240 пиксел, бул аны абдан ылдам кылат. Сиз эркинсиз жана башка токтомдор менен ойноп, өзүңүзгө эмне туура келерин чечүүгө үндөйсүз.

Эстетика PSRAMдын артыкчылыгын колдонуп жаткандыктан, RAM көйгөй болбошу керек.

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

Эскиз жүктөө учурунда конфигурация серверинен конфигурация параметрлерин жүктөө үчүн Сөздүгүмдүн жана EspBootstrap китепканаларымдын артыкчылыгын колдонот.

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

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

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

Эгерде сиз hardcode параметрлерин кааласаңыз, төмөндө мисал келтирилген:

pd ("Title", "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 жаңыртуу серверимди иштетем, аны да жасай аласың (бул кичинекей PHAR сценарийи бар бинардык файлдарды тейлеген жөнөкөй Apache2 веб -сервери).

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

Бул милдеттүү эмес - сериялык туташуу аркылуу экилик файлдарды жүктөөнү тандасаңыз болот.

12 -кадам: MJPEG Server

Бул тема бул жерде кеңири сүрөттөлгөн.

13 -кадам: Blynk App

Blynk App
Blynk App
Blynk App
Blynk App
Blynk App
Blynk App

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

Мен (сиз болжогондой) өзүмдүн Blynk серверимди иштетип жатам, бирок булут версиясын колдонуу сизге оңой болушу мүмкүн. Blynk iOS же Android тиркемесин орнотуңуз жана телефонуңуздагы тиркемени калыбына келтирүү үчүн төмөнкү сүрөттөрдү ээрчиңиз.

Колдонмоңуз менен иштөө үчүн сиз өзүңүздүн Blynk Auth UUID менен камсыз кылууңуз керек. Мына ошондуктан мен конфигурация файлдарын колдоном. Бирок, бир жолку долбоор үчүн, каттуу коду жакшы иштейт.

МААНИЛҮҮ: Blynk долбооруңуз колдонмо туташканда түзмөктөргө кабарлоо үчүн коюлганын текшериңиз.

Видео агымынын виджетинде ЭСКЕРТҮҮ: кээде видео башталбайт. Бул ESP32 менен эмес, Blynk тиркемесинин видео виджети менен көйгөй эмес окшойт. Колдонмону жаап, кайра ачып көрүңүз же долбоорду кайра токтотуп/баштаңыз. Акыры, ал башталат. Бул көйгөй браузерде же VLC плееринде жок окшойт (мисалы).

14 -кадам: ырахат алыңыз

Муну куруу абдан кызыктуу болду жана ESP32 сыяктуу почта маркасындагы түзүлүш видеону агылтуудан да көптү кыла аларын далилдөө. Бул долбоордун көптөгөн түшүнүктөрү башка колдонмолордо кайра колдонулушу мүмкүн.

15 -кадам: Китепканалар жана код

Китепканалар:

  • Blynk сервер
  • EspBootstrap китепканасы
  • TaskScheduler китепканасы
  • Сөздүк китепканасы
  • LED Matrix китепканасы
  • Модулдук жылдыруу үчүн LED матрицасы текст дисплейи үчүн китепкана

Чыныгы репозиторий:

Minecraft Interactive кылычка/белгиге кирбейт (ESP32-CAM)

Сунушталууда: