Სარჩევი:

ინტერაქტიული Minecraft არ შეიყვანოთ ხმალი/ნიშანი (ESP32-CAM): 15 ნაბიჯი (სურათებით)
ინტერაქტიული Minecraft არ შეიყვანოთ ხმალი/ნიშანი (ESP32-CAM): 15 ნაბიჯი (სურათებით)

ვიდეო: ინტერაქტიული Minecraft არ შეიყვანოთ ხმალი/ნიშანი (ESP32-CAM): 15 ნაბიჯი (სურათებით)

ვიდეო: ინტერაქტიული Minecraft არ შეიყვანოთ ხმალი/ნიშანი (ESP32-CAM): 15 ნაბიჯი (სურათებით)
ვიდეო: პილოტი Cessna მთელს მსოფლიოში! 🛩🌥🌎 - Geographical Adventures GamePlay 🎮📱 🇬🇪 2024, ივლისი
Anonim
Image
Image
Საბოლოო პროდუქტი
Საბოლოო პროდუქტი

მართლაც არსებობს რამდენიმე მიზეზი, რის გამოც შეიქმნა ეს პროექტი:

1. როგორც კოოპერატივის მრავალფუნქციური ბიბლიოთეკის ავტორი TaskScheduler, მე ყოველთვის მაინტერესებდა, როგორ გავაერთიანო კოოპერატივის მრავალმხრივი სარგებელი და პრევენციული. ორივეს აქვს სარგებელი და ორივეს აქვს ნაკლოვანებები. ამ ორივეს კომბინაცია იძლევა უნიკალურ შესაძლებლობას გამოიყენოს სარგებელი და შეაჩეროს საკითხები რომელიმე კონკრეტული შემთხვევის საფუძველზე. საინტერესოა? წაიკითხეთ…

2. მომხიბლავია ის ფაქტი, რომ ESP32 არის მრავალ ბირთვიანი მიკროკონტროლერი. მე ყოველთვის მაინტერესებდა, შემიძლია თუ არა ამ მახასიათებლით სარგებლობა. ასე რომ, ექსპერიმენტი აქ იყო: შეუძლია თუ არა ESP32 ვიდეოს შეუფერხებლად სტრიმინგი ერთი ბირთვის გამოყენებით სხვა რამის გაკეთებისას (მნიშვნელოვანი და გონივრულად ინტენსიური სხვა) სხვა ბირთვზე. კიდევ უფრო საინტერესო ?? წაიკითხე…!

3. მე მჭირდებოდა ტესტირების საფუძველი ჩემი ბოლო პროექტებისთვის OTA firmware უზრუნველყოფისა და კონფიგურაციის მენეჯმენტის გარშემო…

4. მე ვიყიდე ორი LED Dot Matrix მოდული რამდენიმე ხნის წინ და ვერ გავიგე რა ვქნა მათთან…

5. ჩემი შვილი არის Minecraft მოთამაშე და როგორც ნებისმიერ პატარა ბიჭს უყვარს თავისი კარის გაფორმება პლაკატებით "ნუ შეხვალ" …

ასე რომ, თქვენ მიდიხართ - ყველა კარგი მიზეზი: ინტერაქტიული ნუ შეხვალთ კარის ნიშნით ESP32 -CAM ვიდეო ნაკადის სტრიმინგით "დახურული კარის უკნიდან" - ან "ვინ მოდის ჩემს ოთახში?"

ასე რომ … რა არის ეს ყველაფერი?

თუ თქვენ გაქვთ მოთმინება მთელი ისტორიის წაკითხვისას, მიხვდებით, რომ ეს ნამდვილად არ არის Minecraft– ის ხმალი. ეს პროექტი არის მრავალი კონცეფციის მტკიცებულება:

  • პრევენციული და კოოპერატიული მრავალმხრივი ამოცანების თანაარსებობა
  • ESP32 ბირთვების შერჩევითი გამოყენება
  • ახალი ლექსიკონისა და EspBootstrap ბიბლიოთეკების გამოყენება
  • OTA firmware უზრუნველყოფა
  • Კონფიგურაციის მართვა
  • ვიდეო სტრიმინგი მრავალ კლიენტზე

და კიდევ ბევრი

ისიამოვნეთ

მარაგები

  • ESP32-CAM
  • MAX7219 Dot Matrix Module 4-in-1 LED Display Module Geekcreit for Arduino
  • Attom Tech 2500 mAh დენის ბანკი

ნაბიჯი 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 დაბეჭდილ ხიდთან, რომელიც ასევე შეიცავს გადამრთველს დენის ჩართვისა და გამორთვისთვის. 3d STL ფაილები ხიდისა და სხვა კომპონენტებისათვის მდებარეობს GitHub– ის ფაილების/3D საქაღალდეში.

ნაბიჯი 4: ძალა

Ძალა
Ძალა

ხმალი იკვებება 2500 mAh USB დენის ბანკით - ყველაზე პატარა და თხელი, რაც მე ვიპოვე. Powerbank სრიალებს 3D ბეჭდვით ქეისზე, რომელიც ასევე ერთვის წერტილოვან მატრიცულ მოდულებს, რითაც აერთიანებს მთელ ნივთს.

არის ორი მრგვალი მაგნიტი, რომელიც მიმაგრებულია პაუერ ბანკის ყუთზე და ასეა მიმაგრებული ხმალი კარზე (ასე რომ ადვილად მოხსნადი მისი მოვლისთვის).

ნაბიჯი 5: სქემატური

სქემატური
სქემატური
სქემატური
სქემატური
სქემატური
სქემატური

რეალური სქემა განლაგებულია GitHub– ზე, მაგრამ სურათი ღირს 1000 სიტყვა (1024 საინფორმაციო ტექნოლოგიაში), ასე რომ აქ თქვენ ხართ:

ეს არის საკმაოდ პირდაპირი, თუ თქვენ იცით თქვენი გზა soldering იარაღი. შენიშვნა: 3D ხიდის ნაწილი განკუთვნილია ძალიან კონკრეტული veroboard ზომა: 30 x 70 მმ. თუ გადაწყვეტთ გამოიყენოთ სხვა, თქვენ უნდა ხელახლა შეიმუშაოთ ხიდის კომპონენტი.

ნაბიჯი 6: 3D ბეჭდვა

3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა
3D ბეჭდვა

ბატარეის კორპუსი და ESP32-CAM ვერო დაფის დამაკავშირებელი ხიდი dot-matrix ჩვენების ასამბლეასთან იყო შემუშავებული და დაბეჭდილი.

ბატარეის კორპუსი მოდის 2 ნაწილად, რომლებიც დაბეჭდვის შემდეგ უნდა იყოს შეკრული, რათა შეიქმნას "ჯიბე" ბატარეისთვის. ხიდი უბრალოდ უნდა გაიწმინდოს ყველა დამხმარე სტრუქტურისგან (სამწუხაროდ, არ არსებობს კარგი ორიენტაცია, რომელიც მათ მინიმუმამდე ამცირებს). STL ფაილები არის GitHub– ზე და TinkerCad ორიგინალები აქ არის განთავსებული.

3D დიზაინი TinkerCad– ზე ასევე მოიცავს სიმულაციური შეკრების სქემატურს, თუ როგორ ჯდება ნაწილები ერთმანეთთან და უნდა იყოს დაკავშირებული.

ნაბიჯი 7: პროგრამირება

მრავალმხრივი ამოცანა

ეს დიზაინი იყენებს FreeRTOS- ს პრევენციული მრავალმხრივი ამოცანებისთვის და TaskScheduler ბიბლიოთეკას თანამშრომლობისთვის. ხმლის ქცევა და შეტყობინებები კონტროლდება Blynk აპლიკაციის საშუალებით. დაყენების შემდეგ (ქინძისთავები, კამერა და წერტილოვანი მატრიცის ინიციალიზაცია, WiFi- თან დაკავშირება და ა.შ.) იქმნება ორი ძირითადი RTOS ამოცანა:

  • ვიდეო სტრიმინგის RTOS ამოცანა, მიმაგრებულია ESP32– ის პროგრამის ძირითად ნაწილში (ძირითადი 1)
  • ტექსტის ჩვენება და Blynk აკონტროლებენ RTOS ამოცანას, მიმაგრებულია ESP32- ის Power Core- ზე (ბირთვი 0), რომელიც ასევე პასუხისმგებელია WiFi- თან დაკავშირებულ ყველა დავალებაზე. ტექსტსა და ბლინკთან დაკავშირებულ შესრულებას მართავს TaskScheduler ამოცანები.

აღმოვაჩინე, რომ დასტის 4K ადგილი საკმარისია RTOS ამოცანების შესასრულებლად, მაგრამ შესაძლებელია დასტის ამოწურვა, ასე რომ, თუ გირჩევნიათ, გახადეთ 8K - ESP32– ზე არის ბევრი ოპერატიული მეხსიერება.

ყველა ვიდეოს გადაღება და ნაკადი ხდება Core 1. სხვა დანარჩენზე - Core 0 -ზე.

ESP32– ს აქვს საკმარისი ძალა, რომ გაუმკლავდეს ამ ყველაფერს მცირეოდენი ოფლის მოშლით (დაფა ცხელდება ვიდეოს ნაკადის დროს).

ეს იყო პროექტის მთავარი მიზანი: მშვიდობიანი და პროდუქტიული თანაარსებობა პრევენციული და კოოპერატიული მრავალმხრივი ამოცანებისათვის!

ნაბიჯი 8: წერტილოვანი მატრიცის კონტროლი

მე ვიყენებ ძალიან ძლიერ MD_Parola და MD_MAX72xx ბიბლიოთეკებს, რომლებიც ასევე ხელმისაწვდომია Arduino IDE ბიბლიოთეკის მენეჯერში.

ყველა ტექსტური სპეციალური ეფექტი კეთდება ამ ბიბლიოთეკების საშუალებით. ცოტაოდენი ძალისხმევა დასჭირდა MAX72XX ტექნიკის სწორი ტიპის დასადგენად (MD_MAX72XX:: ICSTATION_HW ჩემს შემთხვევაში, თქვენი შეიძლება განსხვავებული იყოს), ამის შემდეგ, ტექსტის კონტროლი ნიავია.

ხმალი იძლევა შემდეგ კონტროლს:

  • სიკაშკაშე
  • მოციმციმე
  • ფლეშ
  • გადახვევის სიჩქარე და მიმართულება (ზემოთ/ქვემოთ, მარცხნივ/მარჯვნივ, სტაბილურად)
  • თქვენ ასევე შეგიძლიათ გადააქციოთ იგი კედლის საათად

ნაბიჯი 9: ვიდეო ნაკადი

Blynk App– ს აქვს მცირე ვიჯეტი ვიდეო ნაკადისთვის, მაგრამ თქვენ შეგიძლიათ გადმოწეროთ ბრაუზერში, VLC პლეერში ან სხვა რამეში, რაც მხარს უჭერს MJPEG სტანდარტს.

10 – მდე დაკავშირებული კლიენტია მხარდაჭერილი.

თქვენ უნდა გაარკვიოთ თქვენი ESP32-CAM– ის IP მისამართი, რათა შეძლოთ მასთან დაკავშირება. თქვენ შეგიძლიათ ნახოთ იგი თქვენს როუტერზე, ან შეადგინოთ ესკიზი ჯერ ჩართული _DEBUG_ პარამეტრით და წაიკითხოთ ტერმინალის IP მისამართი, როდესაც ის თქვენს ქსელს დაუკავშირდება.

მნიშვნელოვანია: ძალიან მიზანშეწონილია მიაწოდოთ მუდმივი IP მისამართი ან შექმნათ DHCP დაჯავშნა ESP32-CAM მოდულისთვის, ასე რომ მისი მისამართი არ შეიცვლება იჯარის ვადის გასვლის შემდეგ. თქვენ ასევე შეგიძლიათ შეცვალოთ ბლინკის აპლიკაცია, რომ განაახლოთ IP მისამართი ნაკადის URL– ში - საინტერესო საშინაო დავალება, თუკი ამას მიაღწევთ.

მიმდინარე ესკიზი იყენებს QVGA რეზოლუციას: 320x240 პიქსელი, რაც მას საკმაოდ სწრაფს ხდის. თქვენ თავისუფალი ხართ და წახალისებული ხართ ითამაშოთ სხვა რეზოლუციებით და გადაწყვიტოთ რა გამოგადგებათ.

ოპერატიული მეხსიერება არ უნდა იყოს პრობლემა, რადგან ესკიზი სარგებლობს PSRAM– ით.

ნაბიჯი 10: კონფიგურაცია

ესკიზი სარგებლობს ჩემი ლექსიკონისა და EspBootstrap ბიბლიოთეკების მიერ ჩატვირთვისას კონფიგურაციის სერვერიდან კონფიგურაციის პარამეტრების ჩატვირთვისას.

მე ვმართავ ჩემს კონფიგურაციის სერვერს, რისი გაკეთებაც თქვენც შეგიძლიათ (ეს არის მარტივი Apache2 ვებ სერვერი, რომელიც უბრალოდ ემსახურება JSON ფაილებს).

თქვენ ასევე შეგიძლიათ გამოიყენოთ ნებისმიერი ონლაინ სერვისი, რომელიც ხელმისაწვდომია ამოცანისთვის: (OTADrive, Microsoft Azure, AWS IoT და სხვ.). ამ შემთხვევაში გთხოვთ შეცვალოთ String makeConfig (სიმებიანი გზა) მეთოდი, რათა სწორად შექმნათ URL, რომელიც მიუთითებს თქვენს კონფიგურაციის წყაროს. გარდა ამისა, შეგიძლიათ შეინახოთ კონფიგურაციის ფაილი SPIFFS ფაილურ სისტემაში ESP32-CAM და წაიკითხოთ იქიდან, ან უბრალოდ ჩაწეროთ ყველა ჩანაწერი. გთხოვთ იხილოთ EspBootstrap ბიბლიოთეკის README თქვენი ვარიანტებისათვის.

კონფიგურაციის ფაილის მაგალითი მოცემულია GitHub– ში.

თუ თქვენ გირჩევნიათ მყარი კოდის პარამეტრები, ქვემოთ მოცემულია მაგალითი:

pd ("სათაური", "DND ხმლის დაყენება");

pd ("ssid", "your wifi ssid"); pd ("პაროლი", "თქვენი wifi პაროლი"); pd ("msg", "გამარჯობა!"); pd ("მოწყობილობები", "8"); pd ("blynk_auth", "your blynk AUTH UUID"); // თუ თქვენ აწარმოებთ მხოლოდ საკუთარ სერვერს: pd ("blynk_host", "თქვენი blynk სერვერის IP"); pd ("blynk_port", "თქვენი სერვერის პორტი");

ნაბიჯი 11: OTA Firmware განახლებები

ესკიზი ასევე არის OTA (Over The Air) პროგრამული უზრუნველყოფის განახლება ჩართული და ყოველ ჩატვირთვისას ამოწმებს ახალ ფირმას.

ისევ და ისევ, მე ვუშვებ ჩემს OTA განახლების სერვერს, რისი გაკეთებაც თქვენც შეგიძლიათ (ეს არის მარტივი Apache2 ვებ სერვერი, რომელსაც აქვს მცირე PHP სკრიპტირების სერვისი ორობითი ფაილებისთვის).

თქვენ ასევე შეგიძლიათ გამოიყენოთ ნებისმიერი ონლაინ IoT სერვისი, რომელიც ხელმისაწვდომია ამოცანისთვის: (OTADrive, Microsoft Azure, AWS IoT და სხვ.). ამ შემთხვევაში გთხოვთ შეცვალოთ ბათილი checkOTA () მეთოდი, რათა სწორად შექმნათ განახლების URL, რომელიც მიუთითებს თქვენი ორობითი ფაილის წყაროს.

ეს არჩევითია - თქვენ შეგიძლიათ უბრალოდ ატვირთოთ ორობები სერიული კავშირის საშუალებით.

ნაბიჯი 12: MJPEG სერვერი

ეს თემა აქ დეტალურად არის აღწერილი.

ნაბიჯი 13: ბლინკის აპლიკაცია

ბლინკის აპლიკაცია
ბლინკის აპლიკაცია
ბლინკის აპლიკაცია
ბლინკის აპლიკაცია
ბლინკის აპლიკაცია
ბლინკის აპლიკაცია

Blynk არის ღრუბელზე დაფუძნებული IoT პლატფორმა, რომელიც აპლიკაციის სწრაფი განვითარების საშუალებას იძლევა. ის უფასოა პირადი სარგებლობისთვის და აქვს საკუთარი ბლინკის სერვერის გაშვების შესაძლებლობაც კი.

მე (როგორც თქვენ ალბათ უკვე მიხვდით) ვამუშავებ საკუთარ ბლინკის სერვერს, მაგრამ შეიძლება თქვენთვის უფრო ადვილი იყოს ღრუბლოვანი ვერსიის გამოყენება. დააინსტალირეთ Blynk iOS ან Android აპლიკაცია და მიჰყევით ქვემოთ მოცემულ სურათებს, რათა განაახლოთ აპლიკაცია თქვენს ტელეფონში.

თქვენ უნდა მიაწოდოთ თქვენი საკუთარი Blynk Auth UUID, რომ აპლიკაცია იმუშაოს თქვენს აპლიკაციასთან. ამიტომაც ვიყენებ კონფიგურაციის ფაილებს. ამასთან, ერთჯერადი პროექტისთვის, მყარი კოდირებული ღირებულება იმუშავებს ისევე.

მნიშვნელოვანია: დარწმუნდით, რომ თქვენი ბლინკის პროექტი დაყენებულია მოწყობილობების შეტყობინებაზე, როდესაც აპლიკაცია დაკავშირებულია.

შენიშვნა ვიდეო ნაკადის ვიჯეტზე: ზოგჯერ ვიდეო არ იწყება. როგორც ჩანს, ეს არ არის ESP32– ის პრობლემა, არამედ Blynk პროგრამის ვიდეო ვიჯეტის. სცადეთ დახუროთ და გახსნათ აპლიკაცია ან შეაჩეროთ/თავიდან დაიწყოთ პროექტი. საბოლოოდ, ის იწყება. ეს პრობლემა არ ჩანს ბრაუზერში ან VLC პლეერში (მაგალითად).

ნაბიჯი 14: ისიამოვნეთ

ძალიან სახალისო იყო ამის შექმნა და იმის მტკიცება, რომ საფოსტო ნიშნის ზომის მოწყობილობას, როგორიცაა ESP32, შეუძლია ბევრად მეტი გააკეთოს, ვიდრე უბრალოდ ვიდეოს სტრიმინგი. ამ პროექტის მრავალი კონცეფცია შეიძლება გამოყენებულ იქნას სხვა პროგრამებში.

ნაბიჯი 15: ბიბლიოთეკები და კოდი

ბიბლიოთეკები:

  • ბლინკის სერვერი
  • EspBootstrap ბიბლიოთეკა
  • TaskScheduler ბიბლიოთეკა
  • ლექსიკონის ბიბლიოთეკა
  • LED მატრიქსის ბიბლიოთეკა
  • ბიბლიოთეკა მოდულური გადახვევისთვის LED მატრიქსის ტექსტის ჩვენებისთვის

ფაქტობრივი საცავი:

Minecraft Interactive არ შეიყვანოთ ხმალი/ნიშანი (ESP32-CAM)

გირჩევთ: