2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50
ვიდეოს დაკვრა ESP32– ით
ეს ინსტრუქცია აჩვენებს რაღაცას ვიდეო და აუდიოს დაკვრის შესახებ ESP32– ით.
ნაბიჯი 1: ESP32 მახასიათებლები და შეზღუდვები
მახასიათებლები
4 SPI ავტობუსი, 2 SPI ავტობუსი ხელმისაწვდომია მომხმარებლისთვის, ისინი არიან SPI2 და SPI3 ან ეწოდება HSPI და VSPI. ორივე SPI ავტობუსს შეუძლია გაუშვას მაქსიმუმ 80 MHz. თეორიულად მას შეუძლია 320x240 16 ბიტიანი ფერადი პიქსელი დააყენოს SPI LCD– ზე 60 კადრი / წმ სიჩქარით, მაგრამ მას ჯერ არ აქვს დათვლილი ვიდეო მონაცემების წაკითხვისა და დეკოდირებისათვის საჭირო დრო.
1-ბიტიან / 4-ბიტიან SD ავტობუსს შეუძლია SD ბარათის დაკავშირება მშობლიურ პროტოკოლში
I2S შიდა DAC აუდიო გამომავალი
100 კბ -ზე მეტი ოპერატიული მეხსიერება ხელმისაწვდომია ვიდეო და აუდიო ბუფერისთვის
საკმაოდ სამართლიანი დამუშავების ძალა JPEG- ის (დაკვრა Motion JPEG) და LZW მონაცემების შეკუმშვისათვის (ანიმაციური GIF- ის დაკვრა)
ორმაგ ბირთვულ ვერსიას შეუძლია SD ბარათის მონაცემების წაკითხვა, დეკოდირება და SPI LCD– ზე გადატანა პარალელურ მრავალ ამოცანად და გაზარდოს დაკვრის შესრულება
შეზღუდვები
არ არის საკმარისი შიდა ოპერატიული მეხსიერება, რომ ჰქონდეს ორმაგი ჩარჩო ბუფერი 320x240 16 ბიტიან ფერში, მან შეზღუდა მრავალფუნქციური სამუშაოების დიზაინი. მას შეუძლია ოდნავ გადალახოს გარე PSRAM– ით, თუმცა ის უფრო ნელია ვიდრე შიდა RAM
არ არის საკმარისი დამუშავების ძალა mp4 ვიდეოს დეკოდირებისთვის
ყველა ESP32 ვერსიას არ აქვს 2 ბირთვი, მრავალ ამოცანის ნიმუში სარგებლობს მხოლოდ ორმაგი ბირთვიანი ვერსიით
მითითება.:
ნაბიჯი 2: ვიდეო ფორმატი
RGB565
ან 16-ბიტიანი ფერი არის მონაცემთა ნედლი ფორმატი, რომელიც ჩვეულებრივ გამოიყენება MCU და ფერადი ეკრანის კომუნიკაციისას. თითოეული ფერის პიქსელი წარმოდგენილია 16-ბიტიანი მნიშვნელობით, პირველი 5-ბიტი არის წითელი მნიშვნელობა, შემდეგ 6-ბიტიანი არის მწვანე და შემდეგ 5-ბიტიანი ლურჯი მნიშვნელობა. 16-ბიტიან მნიშვნელობას შეუძლია 65536 ფერის ცვალებადობა, ასე რომ მას ასევე უწოდებენ 64K ფერს. ასე რომ 1 წუთის 320x240@30 fps ვიდეო იქნება ზომაში: 16 * 320 * 240 * 30 * 60 = 2211840000 ბიტი = 276480000 ბაიტი ან 260 მბ -ზე მეტი
ანიმაციური GIF
ეს არის გავრცელებული ფაილის ფორმატი ინტერნეტში 1990 -იანი წლებიდან. ის ზღუდავს თითოეული ეკრანის ფერის ცვალებადობას 256 ფერამდე და არ იმეორებს პიქსელის იმავე ფერის შენახვას, როგორც წინა ჩარჩო. ამრიგად, მას შეუძლია მნიშვნელოვნად შეამციროს ფაილის ზომა, განსაკუთრებით მაშინ, როდესაც თითოეული ანიმაციური ჩარჩო არ შეცვლის ძალიან ბევრ დეტალს. LZW შეკუმშვა შექმნილია 1990 -იანი წლების კომპიუტერის საშუალებით, ასე რომ ESP32– ს აქვს საკმაოდ სამართლიანი დამუშავების ძალა რეალურ დროში დეკოდირებისთვის.
მოძრაობა JPEG
ან სახელწოდებით M-JPEG / MJPEG არის ვიდეო შეკუმშვის საერთო ფორმატი ვიდეო გადაღების აპარატურისთვის, რომელსაც აქვს შეზღუდული დამუშავების ძალა. ეს, ფაქტობრივად, ჯერ კიდევ JPEG ჩარჩოების გაერთიანებაა. შეადარეთ MPEG ან MP4– ს, Motion JPEG– ს არ სჭირდება ინტერფეისის პროგნოზირების გამოთვლების ინტენსიური ტექნიკა, ყველა ჩარჩო დამოუკიდებელია. ასე რომ, ეს მოითხოვს ნაკლებ რესურსს კოდირებისა და დეკოდირებისთვის.
მითითება.:
en.wikipedia.org/wiki/List_of_monochrome_a…
en.wikipedia.org/wiki/GIF
en.wikipedia.org/wiki/Motion_JPEG
ნაბიჯი 3: აუდიო ფორმატი
PCM
ციფრული აუდიოსთვის მონაცემთა უხეში ფორმატი. ESP32 DAC იყენებს 16 ბიტიან სიღრმეს, რაც იმას ნიშნავს, რომ თითოეული 16 ბიტიანი მონაცემი წარმოადგენს ციფრული სინჯის ანალოგურ სიგნალს. ვიდეო და სიმღერების უმეტესობა ჩვეულებრივ იყენებს ნიმუშის სიხშირეს 44100 MHz, რაც ნიშნავს 44100 სინჯის ანალოგურ სიგნალს ყოველ წამს. ასე რომ, 1 წუთიანი მონო აუდიო PCM ნედლეულის მონაცემები იქნება ზომა: 16 * 44100 * 60 = 42336000 ბიტი = 5292000 ბაიტი ან 5 მბ -ზე მეტი. სტერეო აუდიოს ზომა იქნება ორმაგი, ანუ 10 მბ -ზე მეტი
MP3
MPEG Layer 3 არის შეკუმშული აუდიო ფორმატი, რომელიც ფართოდ გამოიყენება 1990 -იანი წლებიდან. მას შეუძლია მკვეთრად შეამციროს ფაილის ზომა ნედლი PCM ფორმატის მეათედზე
მითითება.:
en.wikipedia.org/wiki/Pulse-code_modulatio…
en.wikipedia.org/wiki/MP3
ნაბიჯი 4: კონვერტაციის ფორმატი
ამ პროექტის გამოყენებით FFmpeg გადააქციეთ ვიდეო ESP32 წაკითხვად ფორმატში.
გთხოვთ გადმოწეროთ და დააინსტალიროთ FFmpeg მათ ოფიციალურ ვებგვერდზე, თუ ჯერ არა:
ნებისმიერი ორმაგი ბირთვიანი ESP32 dev დაფა უნდა იყოს კარგი, ამ დროს მე ვიყენებ TTGO ESP32-Micro- ს.
ფერადი ჩვენება
ნებისმიერი ფერის ჩვენება, რომელსაც Arduino_GFX მხარს უჭერს, კარგი უნდა იყოს, ამჯერად მე ვიყენებ ILI9225 გარღვევის დაფას SD ბარათის სლოტით.
თქვენ შეგიძლიათ იპოვოთ Arduino_GFX მხარდაჭერილი ფერის ჩვენების სია Github– ში:
github.com/moononournation/Arduino_GFX
SD ბარათი
ნებისმიერი SD ბარათი უნდა იყოს კარგი, ამ დროს მე ვიყენებ SanDisk "ნორმალური სიჩქარით" 8 GB მიკრო SD SD ადაპტერით.
აუდიო
თუ გსურთ გამოიყენოთ მხოლოდ ყურსასმენი, უბრალოდ დაუკავშირეთ ყურსასმენის ქინძისთავები პინ 26 – ს და GND– ს შეუძლია აუდიოს მოსმენა. ან შეგიძლიათ გამოიყენოთ პატარა გამაძლიერებელი აუდიო სპიკერის დასაკრავად.
სხვა
ზოგიერთი breadboard დაფები და breadboard მავთულები
ნაბიჯი 6: SD ინტერფეისი
SD ინტერფეისიSD ინტერფეისი
ILI9225 LCD გარღვევის დაფა ასევე მოიცავდა SD crd სლოტის გარღვევის ქინძისთავებს. ის შეიძლება გამოყენებულ იქნას როგორც SPI ავტობუსი ან 1-ბიტიანი SD ავტობუსი. როგორც ჩემს წინა ინსტრუქციებში იყო ნათქვამი, მე მირჩევნია გამოვიყენო 1-ბიტიანი SD ავტობუსი, ამიტომ ეს პროექტი ემყარება 1-ბიტიან SD ავტობუსს.
ნაბიჯი 7: შეაერთეთ ერთად
განათავსეთ ერთადგანათავსეთ ერთადგანათავსეთ ერთად
ზემოთ მოყვანილი სურათები აჩვენებს ტესტირების პლატფორმას, რომელსაც მე ვიყენებ ამ პროექტში. თეთრი პურის დაფა არის 3D დაბეჭდილი, შეგიძლიათ გადმოწეროთ და დაბეჭდოთ thingiverse– ზე:
ფაქტობრივი კავშირი დამოკიდებულია იმაზე, თუ რომელი აპარატურა გაქვთ ხელში.
თუ თქვენ არ იყენებთ ILI9225- ს, შეცვალეთ ახალი კლასის კოდი (35 -ე სტრიქონის გარშემო) კლასის სახელის გასასწორებლად
დააჭირეთ Arduino IDE ღილაკს "ატვირთვა"
თუ პროგრამის ატვირთვა ვერ მოხერხდა, სცადეთ კავშირის გაწყვეტა ESP32 GPIO 2 -სა და SD D0/MISO- ს შორის.
თუ თქვენთვის ორიენტაცია არასწორია, შეცვალეთ "ბრუნვის" მნიშვნელობა (0-3) ახალი კლასის კოდში
თუ პროგრამა კარგად მუშაობს, შეგიძლიათ სცადოთ სხვა ნიმუშის დაწყება SDMMC_* - ით
თუ თქვენ არ გაქვთ SD ბარათის სლოტი ან არ გაქვთ FFmpeg დაინსტალირებული, მაინც შეგიძლიათ სცადოთ SPIFFS_* მაგალითი
ნაბიჯი 9: ნიშნული
საორიენტაციო ნიშანი
აქ მოცემულია სხვადასხვა ვიდეო (220x176) და აუდიო (44100 MHz) ფორმატის შესრულების შეჯამება:
ფორმატი
კადრი წამში (კადრი / წმ)
MJPEG + PCM
30
15
RGB565 + PCM
9
MJPEG + MP3
24
Შენიშვნა:
MJPEG + PCM– ს შეუძლია მიაღწიოს უფრო მაღალ ჩარჩო წამს / წამს, მაგრამ ეს არის ზედმეტი თამაში პატარა ეკრანზე, რომელიც აღემატება 30 კადრს წამში
RGB565 არ საჭიროებს დეკოდირების პროცესს, მაგრამ მონაცემების ზომა ძალიან დიდია და დიდი დროა დახარჯული SD– დან მონაცემების ჩატვირთვისას, 4 – ბიტიანი SD ავტობუსი და უფრო სწრაფი SD ბარათი შეიძლება ოდნავ გააუმჯობესოს (ველურმა ვარაუდმა შეიძლება მიაღწიოს დაახლოებით 12 კადრი / წმ – ს)
MP3 დეკოდირების პროცესი ჯერ არ არის ოპტიმიზირებული, ახლა მას მიუძღვება ბირთვი 0 MP3 დეკოდირებისთვის და ბირთვი 1 ვიდეოს დაკვრისთვის
ნაბიჯი 10: ბედნიერი თამაში
ბედნიერი თამაში!
ახლა თქვენ შეგიძლიათ ითამაშოთ ვიდეო და აუდიო თქვენი ESP32– ით, მან გახსნა მრავალი შესაძლებლობა!
ვფიქრობ, მოგვიანებით გავაკეთებ პატარა რთველის ტელევიზიას …
დაწყება ESP32 CAM | ვიდეოს სტრიმინგი ESP CAM– ის გამოყენებით Wifi | ESP32 უსაფრთხოების კამერის პროექტი: დღეს ჩვენ ვისწავლით თუ როგორ გამოვიყენოთ ეს ახალი ESP32 CAM დაფა და როგორ შეგვიძლია მისი კოდირება და გამოვიყენოთ ის როგორც უსაფრთხოების კამერა და მივიღოთ ნაკადი ვიდეო wifi საშუალებით
საუბარი არდუინოზე. | MP3– ის დაკვრა არდუინოსთან ერთად ნებისმიერი მოდულის გარეშე | Arduino– დან Mp3 ფაილის დაკვრა PCM– ის გამოყენებით: ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ ვითამაშოთ arduino– ით mp3 ფაილი აუდიო მოდულის გამოყენების გარეშე, აქ ჩვენ გამოვიყენებთ PCM ბიბლიოთეკას Arduino– სთვის, რომელიც უკრავს 16 ბიტიან PCM– ს 8kHZ სიხშირით, ასე რომ, ამის გაკეთება
სიმღერების დაკვრა (MP3) Arduino– ს გამოყენებით PWM სპიკერზე ან Flyback Transformer– ზე: გამარჯობა ბიჭებო, ეს არის ჩემი პირველი სასწავლო ინსტრუქცია, იმედი მაქვს მოგეწონებათ !! ძირითადად, ამ პროექტში მე გამოვიყენე სერიული კომუნიკაცია ჩემს არდუინოსა და ჩემს ლეპტოპს შორის, მუსიკალური მონაცემების გადატანა ჩემი ლეპტოპიდან არდუინოში. და Arduino TIMERS t
CD– ების დაკვრა CD პლეერის გარეშე, AI და YouTube– ის გამოყენებით: გსურთ თქვენი CD– ების დაკვრა, მაგრამ აღარ გაქვთ CD პლეერი? არ გქონდათ დრო თქვენი CD– ების გადასაღებად? გაანადგურეს ისინი, მაგრამ საჭიროების შემთხვევაში ფაილები მიუწვდომელია? პრობლემა არ არის. მიეცით AI (ხელოვნური ინტელექტი) იდენტიფიკაციის თქვენი CD და YouTube ითამაშეთ! მე დავწერე Android app doin
ითამაშეთ სიმღერები Stepper Motor !!: ეს პროექტი არის მარტივი დინამიური ინტერფეისის შემუშავების შესახებ, რომელიც საშუალებას მისცემს სტეპერ ძრავასთან ურთიერთქმედება ორი განსხვავებული გზით. პირველი ინტერფეისი გააკონტროლებს სტეპერი ძრავის მიმართულებას და სიჩქარეს აპარატის გამოყენებით მარტივი GUI, რომელიც თ