Სარჩევი:
- მარაგები
- ნაბიჯი 1: საბოლოო პროდუქტი
- ნაბიჯი 2: ხმლის საფარი
- ნაბიჯი 3: Dot Matrix LED ეკრანი
- ნაბიჯი 4: ძალა
- ნაბიჯი 5: სქემატური
- ნაბიჯი 6: 3D ბეჭდვა
- ნაბიჯი 7: პროგრამირება
- ნაბიჯი 8: წერტილოვანი მატრიცის კონტროლი
- ნაბიჯი 9: ვიდეო ნაკადი
- ნაბიჯი 10: კონფიგურაცია
- ნაბიჯი 11: OTA Firmware განახლებები
- ნაბიჯი 12: MJPEG სერვერი
- ნაბიჯი 13: ბლინკის აპლიკაცია
- ნაბიჯი 14: ისიამოვნეთ
- ნაბიჯი 15: ბიბლიოთეკები და კოდი
ვიდეო: ინტერაქტიული Minecraft არ შეიყვანოთ ხმალი/ნიშანი (ESP32-CAM): 15 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
მართლაც არსებობს რამდენიმე მიზეზი, რის გამოც შეიქმნა ეს პროექტი:
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 ეკრანი
მე მქონდა 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 ბეჭდვა
ბატარეის კორპუსი და 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)
გირჩევთ:
გაფანტული LED ზოლის ნიშანი Arduino/Bluetooth– ით: 8 ნაბიჯი (სურათებით)
გაფანტული LED ზოლის ნიშანი Arduino/Bluetooth: მე შევქმენი ეს ნიშანი დიჯეის ჯიხურისთვის მე –8 ყოველწლიურ ინტერაქტიულ ჩვენებაზე ჩემს ადგილობრივ ჰაკერულ სივრცეში, NYC Resistor. წლევანდელი თემა იყო The Running Man, 1987 წლის სამეცნიერო ფანტასტიკური ფილმი, რომელიც ვითარდება 2017 წელს. ნიშანი აგებულია ქაფით
ააშენეთ Rainbow ინტერაქტიული ხიდი Minecraft Raspberry Pi გამოცემის გამოყენებით: 11 ნაბიჯი
ააშენეთ Rainbow ინტერაქტიული ხიდი Minecraft Raspberry Pi Edition– ის გამოყენებით: გუშინ, მე ვნახე ჩემი 8 წლის ძმისშვილი, რომელიც თამაშობდა Minecraft– ით Raspberry Pi– სთან ერთად, რომელიც მანამდე მივეცი მას, შემდეგ კი მივიღე იდეა, რომელიც იყენებს კოდს მორგებული და საინტერესო Minecraft– ის შესაქმნელად- pi LED ბლოკების პროექტი. Minecraft Pi არის შესანიშნავი გზა, რომ დაიწყოთ
როგორ გავაკეთოთ უზარმაზარი განათების LED ნიშანი: 4 ნაბიჯი (სურათებით)
როგორ გააკეთოთ უზარმაზარი განათება LED ნიშანი: ამ პროექტში მე გაჩვენებთ თუ როგორ უნდა ავაშენოთ უზარმაზარი ნიშანი მორგებული ასოებით, რომელსაც შეუძლია აანთოს RGB LED- ების დახმარებით. მაგრამ ნიშანი შეიძლება გამოყენებულ იქნას როგორც თქვენი ძირითადი სინათლის წყარო თქვენს ოთახში თბილი თეთრი LED ზოლების გამოყენებით. მოდი დავიჯეროთ
გააკეთეთ საკუთარი LED ნიშანი VU მეტრი: 4 ნაბიჯი (სურათებით)
შექმენით თქვენი საკუთარი LED ნიშანი VU მეტრი: ამ პროექტში მე გაჩვენებთ თუ როგორ უნდა შექმნათ პერსონალური LED ნიშანი, რომელიც რეაგირებს თქვენი მუსიკის ხმამაღლა, ისევე როგორც VU მეტრი. Დავიწყოთ
არასოდეს შეიყვანოთ თქვენი პინი თქვენი ხმოვანი ფოსტისთვის: 3 ნაბიჯი
არასოდეს შეიყვანოთ თქვენი პინი თქვენი ხმოვანი ფოსტისთვის: დაიღალეთ იმის გამო, რომ ხმოვანი ფოსტა ყოველ ჯერზე უნდა შეამოწმოთ. მე ასე ვარ, მე ვიპოვე ხრიკი ამისათვის