Mündəricat:

İnteraktiv Minecraft Qılınc/İşarə (ESP32-CAM) girməyin: 15 addım (şəkillərlə)
İnteraktiv Minecraft Qılınc/İşarə (ESP32-CAM) girməyin: 15 addım (şəkillərlə)

Video: İnteraktiv Minecraft Qılınc/İşarə (ESP32-CAM) girməyin: 15 addım (şəkillərlə)

Video: İnteraktiv Minecraft Qılınc/İşarə (ESP32-CAM) girməyin: 15 addım (şəkillərlə)
Video: Choose your own Adventure in Minecraft! 360° POV - Interactive 2024, Iyul
Anonim
Image
Image
Son Məhsul
Son Məhsul

Bu layihənin yaranmasının bir neçə səbəbi var:

1. TaskScheduler kooperativ çoxlu tapşırıq kitabxanasının müəllifi olaraq, kooperativ çoxlu işin faydalarını qabaqcıl kitabın faydaları ilə necə birləşdirəcəyim həmişə maraqlı idi. Hər ikisinin də faydası var və hər ikisinin də çatışmazlıqları var. İkisini birləşdirmək, müəyyən bir istifadə vəziyyətinə əsaslanan faydalardan istifadə etmək və ya problemləri həll etmək üçün unikal bir fürsət verir. Maraqlıdır? Oxuyun…

2. ESP32-nin çox nüvəli mikrokontrolör olması çox maraqlıdır. Həmişə bu xüsusiyyətdən istifadə edə biləcəyimi düşünürdüm. Buradakı təcrübə belə idi: ESP32, digər nüvədə başqa bir şey (mənalı və kifayət qədər intensiv bir şey) edərkən bir nüvədən istifadə edərək videonu rahatca axına bilərmi? Daha da maraqlıdır ??? Oxuyun…!

3. OTA firmware təminatı və konfiqurasiya idarəçiliyi ilə bağlı son layihələrim üçün bir sınaq meydançasına ehtiyacım var idi …

4. Bir müddət əvvəl iki LED Dot Matrix modulu almışdım və onlarla nə edəcəyimi anlaya bilmədim …

5. Oğlum Minecraft oyunçusudur və hər bir kiçik oğlan qapısını "İçəri girmə" plakatları ilə bəzəməyi çox sevir …

Budur, bütün yaxşı səbəblər: ESP32 -CAM "qapalı qapının arxasından" video axını olan interaktiv giriş qapısı işarəsi - və ya "otağıma kim gəlir?"

Elə isə … hamısı nə ilə əlaqədardır?

Bütün hekayəni oxumaq üçün səbriniz varsa, bunun əslində Minecraft qılıncı ilə əlaqəli olmadığını başa düşürsünüz. Bu layihə bir çox anlayışın sübutudur:

  • Preemptif və Kooperativ çoxlu işin Bir yerdə olması
  • ESP32 nüvələrinin seçmə istifadəsi
  • Yeni Dictionary və EspBootstrap kitabxanalarından istifadə
  • OTA firmware təminatı
  • Konfiqurasiya idarəçiliyi
  • Birdən çox müştəriyə video axını

və daha çox.

Zövq alın

Təchizat

  • ESP32-CAM
  • MAX7219 Arduino üçün Geekcreit Dot Matrix Modulu 4-ü 1 Arada LED Ekran Modulu
  • Attom Tech 2500mAh Güc Bankı

Addım 1: Son məhsul

Son Məhsul
Son Məhsul

Son məhsulun necə göründüyündən başlayacağam, sonra necə qurulduğunu və necə idarə ediləcəyini izah edəcəyəm.

Bu şəkildə daha cazibədar görünür …

Addım 2: Qılınc üzlük lövhəsi

Qılınc üz lövhəsi
Qılınc üz lövhəsi
Qılınc üz lövhəsi
Qılınc üz lövhəsi

Qılınc üzlük lövhəsi qələmlə işarələnmiş və lövhədən hazırlanmışdır və Crayola markerləri ilə rənglənmişdir. Yalnız bu, uşağınızla maraqlı bir layihə ola bilər:

  • Ağ lövhədə bir qılınc işarələyin
  • Üz lövhəsini kəsin
  • Meydanları (və ya blokları) işarələyin
  • Onları fərdi olaraq rəngləyin
  • Qara xətləri iti ucu ilə əlavə edin.

Qısayolları istəsəniz, ağ lövhənin üstünə yapışdıra biləcəyiniz bir almaz qılıncın nümunə şəkli olan açıq bir ofis sənədini daxil etdim … Hər şey bitdikdən sonra ya lövhəni montajın qalan hissəsinə isti yapışdıra və ya ikiqat istifadə edə bilərsiniz. tərəfli lent.

Addım 3: Dot Matrix LED Ekranı

Dot Matrix LED Ekranı
Dot Matrix LED Ekranı
Dot Matrix LED Ekranı
Dot Matrix LED Ekranı
Dot Matrix LED Ekranı
Dot Matrix LED Ekranı

Hər biri 4 seqmentdən 2-si var idi, buna görə də 8-dən biri etmək qərarına gəldim.

Əlverişli olaraq bir tərəfdə 5 pinli kişi başlığı və qarşı tərəfdə 5 deşik uyğun gəlir. Kişi başlığını ştapelə bənzər] bir formaya bükərək, iki modulu həm elektrik, həm də mexaniki olaraq bağlaya bildim! Bir quşla iki quş öldürdü (və ya iki ağcaqanadı bir lələklə iki ağzını dayandırmaq, bir hədiyyə ilə iki dost qazanmaq, bir yay üçün iki telə sahib olmaq, bu mövzuda başqa deyimlər nələrdir - düşündünüzmü? Bağışlayın, mən kənara çəkildim).

Qarşıdakı kişi başlığı, ESP32-Cam və digər komponentlərlə veroboarddan uyğun bir qadın başlığı bağlamaq üçün istifadə ediləcək.

İki komponent, 3d çaplı bir körpü ilə əlaqələndirilir, burada da gücü açmaq və söndürmək üçün bir keçid var. Körpü və digər komponentlər üçün 3D STL faylları GitHubdakı fayllar/3d qovluğunda yerləşir.

Addım 4: Güc

Güc
Güc

Qılınc 2500 mAh USB güc bankı ilə təchiz edilmişdir - tapa biləcəyim ən kiçik və ən incə. Powerbank, 3d matrisli bir qutuya sürüşür, bu da nöqtəli matris modullarına bağlanır və bununla da hər şeyi bir yerdə saxlayır.

Güc bankı qutusuna yapışdırılmış iki yuvarlaq maqnit var və qılınc qapıya necə bağlanır (buna görə də təmir üçün asanlıqla ayrılır).

Addım 5: Şematik

Sxematik
Sxematik
Sxematik
Sxematik
Sxematik
Sxematik

Əsl sxem GitHub -da yerləşir, lakin bir şəkil 1000 sözə (1024 İnformasiya Texnologiyasına) bərabərdir, buna görə buradasınız:

Bir lehim silahı ilə yolunuzu bilirsinizsə, bu olduqca sadədir. Qeyd: 3d körpü hissəsi çox xüsusi bir veroboard ölçüsü üçün hazırlanmışdır: 30 x 70 mm. Fərqli birini istifadə etmək qərarına gəlsəniz, körpü komponentini yenidən dizayn etməlisiniz.

Addım 6: 3d çap

3d çap
3d çap
3d çap
3d çap
3d çap
3d çap

Batareya qutusu və ESP32-CAM veroboardunu nöqtə matrisli ekran qurğusuna bağlayan bir körpü 3d dizayn edilmiş və çap edilmişdir.

Batareya qutusu 2 hissədən ibarətdir ki, çap edildikdən sonra akkumulyator üçün "cib" yaratmaq üçün bir -birinə yapışdırılmalıdır. Körpünün bütün dəstək strukturlarından təmizlənməsi lazımdır (təəssüf ki, onları minimuma endirən yaxşı bir oriyentasiya yoxdur). STL sənədləri GitHubdadır və TinkerCad orijinalları burada yerləşir.

TinkerCad -dakı 3D dizayn, hissələrin bir -birinə necə uyğun gəldiyini və birləşdirilməsinin simulyasiya edilmiş montaj sxemini də ehtiva edir.

Addım 7: Proqramlaşdırma

Çox vəzifəli

Bu dizayn, çox vəzifəli iş üçün FreeRTOS və kooperativ üçün TaskScheduler kitabxanasından istifadə edir. Qılıncın davranışı və mesajları Blynk Tətbiqi vasitəsi ilə idarə olunur. Quraşdırıldıqdan sonra (pinlər, kamera və nöqtə matrisinin işə salınması, WiFi-yə qoşulma və s.) İki əsas RTOS vəzifəsi yaradılır:

  • Video axını RTOS tapşırığı, ESP32 -nin Tətbiq Nüvəsinə (əsas 1) bərkidilir
  • Mətn ekranı və Blynk, WiFi ilə əlaqəli bütün vəzifələrdən məsul olan ESP32 (Core 0) Güc Nüvəsinə sabitlənmiş RTOS tapşırığını idarə edir. Mətn və Blynk ilə əlaqəli icra TaskScheduler vəzifələri vasitəsilə idarə olunur.

Öyrəndim ki, RTOS tapşırıqları üçün 4K yığın sahəsi kifayətdir, lakin yığının tükənmə ehtimalı var, buna görə də isterseniz onu 8K edin - ESP32 -də çoxlu RAM var.

Bütün video çəkmə və axın Core 1 -də olur. Qalan hər şey Core 0 -da.

ESP32, bir az tərləmə ilə bütün bunları idarə etmək üçün kifayət qədər gücə malikdir (video axın edərkən lövhə istiləşir).

BU layihənin əsas məqsədi idi: qabaqlayıcı və kooperativ çoxlu işin dinc və məhsuldar bir yerdə olması!

Addım 8: Dot Matrix Control

Arduino IDE kitabxana menecerində də mövcud olan çox güclü MD_Parola və MD_MAX72xx kitabxanalarından istifadə edirəm.

Bütün mətn xüsusi effektləri həmin kitabxanalar vasitəsi ilə edilir. Doğru MAX72XX aparat tipini (MD_MAX72XX:: ICSTATION_HW mənim vəziyyətimdə fərqli ola bilər) müəyyən etmək üçün bir az səy sərf olundu, bundan sonra mətni idarə etmək asan bir işdir.

Qılınc aşağıdakı nəzarətlərə imkan verir:

  • Parlaqlıq
  • Yanıp sönür
  • Flaş
  • Sürət və istiqamət (yuxarı/aşağı, sol/sağ, sabit)
  • Divar saatına da çevirə bilərsiniz

Addım 9: Video axını

Blynk Tətbiqində video axını üçün kiçik bir widget var, ancaq brauzerə, VLC pleyerinə və ya MJPEG standartını dəstəkləyən hər şeyə daxil ola bilərsiniz.

10 -a qədər bağlı müştəri dəstəklənir.

ESP32-CAM-a qoşulmaq üçün onun IP ünvanını öyrənməlisiniz. Bunu marşrutlaşdırıcınızda axtara və ya əvvəlcə _DEBUG_ seçimi aktiv olaraq bu eskizi tərtib edə və şəbəkənizə qoşulduqda terminalın IP ünvanını oxuya bilərsiniz.

ƏHƏMİYYƏTLİ: ESP32-CAM moduluna daimi bir IP ünvanı təyin etmək və ya bir DHCP rezervasyonu yaratmaq çox məqsədəuyğundur ki, icarə müddəti başa çatdıqda ünvanı dəyişməsin. IP adresini axın URL -də yeniləmək üçün Blynk Tətbiqini də dəyişə bilərsiniz - əgər buna hazırsınızsa maraqlı bir ev tapşırığı.

Mövcud eskizdə QVGA qətnaməsi istifadə olunur: 320x240 piksel, bu onu olduqca sürətli edir. Sərbəstsiniz və digər qətnamələrlə oynamağa və sizin üçün nəyin işləyəcəyinə qərar verməyə təşviq olunur.

Eskiz PSRAM -dan istifadə etdiyi üçün RAM problem yaratmamalıdır.

Addım 10: Konfiqurasiya

Eskiz, açılış zamanı konfiqurasiya parametrlərini konfiqurasiya serverindən yükləmək üçün Dictionary və EspBootstrap kitabxanalarımdan istifadə edir.

Siz də edə biləcəyiniz öz konfiqurasiya serverimi işə salıram (həqiqətən də yalnız JSON fayllarına xidmət edən sadə bir Apache2 veb serveridir).

Tapşırıq üçün mövcud olan onlayn xidmətlərdən də istifadə edə bilərsiniz: (OTADrive, Microsoft Azure, AWS IoT və s.). Bu vəziyyətdə, konfiqurasiya mənbəyinizə işarə edən bir URL qurmaq üçün String makeConfig (String yolu) metodunu dəyişdirin. Alternativ olaraq, konfiqurasiya faylını ESP32-CAM üzərindəki SPIFFS fayl sisteminə saxlaya və oradan oxuya və ya bütün girişləri kodlaşdıra bilərsiniz. Seçimləriniz üçün EspBootstrap kitabxanasının README -ə baxın.

GitHub -da bir konfiqurasiya faylına bir nümunə verilir.

Sərt kodlaşdırma parametrlərinə üstünlük verirsinizsə, bir nümunə aşağıda verilmişdir:

pd ("Başlıq", "DND Qılınc Quraşdırması");

pd ("ssid", "wifi ssid"); pd ("parol", "wifi şifrəniz"); pd ("msg", "Hello!"); pd ("cihazlar", "8"); pd ("blynk_auth", "blynk AUTH UUID"); // yalnız öz serveriniz varsa: pd ("blynk_host", "blynk server IP"); pd ("blynk_port", "server portunuz");

Addım 11: OTA Firmware Güncellemeleri

Eskiz də OTA (Havada) firmware yeniləməsi aktivdir və hər açılışda yeni proqram təminatını yoxlayır.

Yenə də edə biləcəyiniz öz OTA yeniləmə serverimi işə salıram (ikili fayllara xidmət edən bir az PHP skriptli sadə bir Apache2 veb serveridir).

Tapşırıq üçün mövcud olan hər hansı bir onlayn IoT xidmətindən də istifadə edə bilərsiniz: (OTADrive, Microsoft Azure, AWS IoT və s.). Bu halda, ikili fayl mənbəyinizə işarə edən bir yeniləmə URL -si qurmaq üçün void checkOTA () metodunu dəyişdirin.

Bu isteğe bağlıdır - yalnız ikili faylları serial bağlantısı ilə yükləməyi seçə bilərsiniz.

Addım 12: MJPEG Server

Bu mövzu burada ətraflı təsvir edilmişdir.

Addım 13: Blynk Tətbiqi

Blynk Tətbiqi
Blynk Tətbiqi
Blynk Tətbiqi
Blynk Tətbiqi
Blynk Tətbiqi
Blynk Tətbiqi

Blynk, tətbiqin sürətli inkişafına imkan verən bulud əsaslı bir IoT platformasıdır. Şəxsi istifadə üçün pulsuzdur və hətta öz Blynk serverinizi işlətmək imkanı var.

Mən (əvvəlcədən təxmin etdiyiniz kimi) öz Blynk serverimi işlədirəm, ancaq bulud versiyasından istifadə etmək sizin üçün daha asan ola bilər. Blynk iOS və ya Android Tətbiqini quraşdırın və telefonunuzdakı Tətbiqi yenidən qurmaq üçün aşağıdakı şəkilləri izləyin.

Tətbiqin Tətbiqinizlə işləməsi üçün öz Blynk Auth UUID -ni təqdim etməlisiniz. Bu səbəbdən konfiqurasiya fayllarından istifadə edirəm. Ancaq birdəfəlik bir layihə üçün, kodlaşdırılmış bir dəyər eyni dərəcədə yaxşı işləyəcəkdir.

ƏHƏMİYYƏTLİ: Blynk Layihənizin Tətbiq Bağlandıqda Cihazlara Bildiriş verdiyinə əmin olun.

Video axını vidjetində QEYD: bəzən video başlamır. ESP32 ilə deyil, Blynk tətbiqinin video vidjetində bir problem kimi görünmür. Tətbiqi bağlayıb yenidən açmağa və ya layihəni dayandırmağa/yenidən başlamağa çalışın. Nəhayət, başlayır. Bu problem brauzerdə və ya VLC pleyerində görünmür (məsələn).

Addım 14: Zövq alın

Bunu qurmaq və ESP32 kimi poçt markalı bir cihazın yalnız video axını etməkdən daha çox şey edə biləcəyini sübut etmək çox əyləncəli idi. Bu layihənin bir çox anlayışı digər tətbiqlərdə yenidən istifadə edilə bilər.

Addım 15: Kitabxanalar və Kod

Kitabxanalar:

  • Blynk server
  • EspBootstrap kitabxanası
  • TaskScheduler kitabxanası
  • Sözlük kitabxanası
  • LED Matrix Kitabxanası
  • Modul sürüşdürmə LED matris mətn ekranları üçün kitabxana

Həqiqi depo:

Minecraft Interactive Qılınc/İşarə (ESP32-CAM) girməyin

Tövsiyə: