Სარჩევი:
- ნაბიჯი 1: ESP32 მახასიათებლები და შეზღუდვები
- ნაბიჯი 2: ვიდეო ფორმატი
- ნაბიჯი 3: აუდიო ფორმატი
- ნაბიჯი 4: კონვერტაციის ფორმატი
- ნაბიჯი 5: აპარატურის მომზადება
- ნაბიჯი 6: SD ინტერფეისი
- ნაბიჯი 7: შეაერთეთ ერთად
- ნაბიჯი 8: პროგრამა
- ნაბიჯი 9: ნიშნული
- ნაბიჯი 10: ბედნიერი თამაში
ვიდეო: ვიდეოს დაკვრა ESP32– ით: 10 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-31 10:21
ეს ინსტრუქცია აჩვენებს რაღაცას ვიდეო და აუდიოს დაკვრის შესახებ 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 მათ ოფიციალურ ვებგვერდზე, თუ ჯერ არა:
გადაიყვანეთ PCM აუდიოზე
ffmpeg -i input.mp4 -f u16be -acodec pcm_u16le -ar 44100 -ac 1 44100_u16le.pcm
გადაიყვანეთ MP3 აუდიოზე
ffmpeg -i input.mp4 -ar 44100 -ac 1 -q: a 9 44100.mp3
გადაიყვანეთ RGB565
ffmpeg -i input.mp4 -vf "fps = 9, scale = -1: 176: flags = lanczos, crop = 220: in_h: (in_w -220)/2: 0" -c: v rawvideo -pix_fmt rgb565be 220_9fps rgb
გადაიყვანეთ ანიმაციურ GIF– ში
ffmpeg -i input.mp4 -vf "fps = 15, scale = -1: 176: flags = lanczos, crop = 220: in_h: (in_w -220)/2: 0, გაყოფილი [s0] [s1]; [s0] palettegen [p]; [s1] [p] paletteuse "-loop -1 220_15fps.gif
გადააკეთეთ მოძრაობის JPEG ფორმატში
ffmpeg -i input.mp4 -vf "fps = 30, scale = -1: 176: flags = lanczos, crop = 220: in_h: (in_w -220)/2: 0" -q: v 9 220_30fps.mjpeg
Შენიშვნა:
FFmpeg მოაქცია ანიმაციური-g.webp" />
ნაბიჯი 5: აპარატურის მომზადება
ESP32 Dev დაფა
ნებისმიერი ორმაგი ბირთვიანი 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 ინტერფეისი
ILI9225 LCD გარღვევის დაფა ასევე მოიცავდა SD crd სლოტის გარღვევის ქინძისთავებს. ის შეიძლება გამოყენებულ იქნას როგორც SPI ავტობუსი ან 1-ბიტიანი SD ავტობუსი. როგორც ჩემს წინა ინსტრუქციებში იყო ნათქვამი, მე მირჩევნია გამოვიყენო 1-ბიტიანი SD ავტობუსი, ამიტომ ეს პროექტი ემყარება 1-ბიტიან SD ავტობუსს.
ნაბიჯი 7: შეაერთეთ ერთად
ზემოთ მოყვანილი სურათები აჩვენებს ტესტირების პლატფორმას, რომელსაც მე ვიყენებ ამ პროექტში. თეთრი პურის დაფა არის 3D დაბეჭდილი, შეგიძლიათ გადმოწეროთ და დაბეჭდოთ thingiverse– ზე:
ფაქტობრივი კავშირი დამოკიდებულია იმაზე, თუ რომელი აპარატურა გაქვთ ხელში.
აქ არის კავშირის შეჯამება:
ESP32
Vcc -> LCD Vcc GND -> LCD GND GPIO 2 -> SD D0/MISO -> 1k რეზისტორი -> Vcc GPIO 14 -> SD CLK GPIO 15 -> SD CMD/MOSI GPIO 18 -> LCD SCK GPIO 19 -> LCD MISO GPIO 22 -> LCD LED GPIO 23 -> LCD MOSI GPIO 27 -> LCD DC/RS GPIO 33 -> LCD RST
მითითება:
ნაბიჯი 8: პროგრამა
Arduino IDE
ჩამოტვირთეთ და დააინსტალირეთ Arduino IDE, თუ ეს ჯერ არ გააკეთეთ:
www.arduino.cc/en/main/software
ESP32 მხარდაჭერა
მიჰყევით ინსტალაციის ინსტრუქციას ESP32 მხარდაჭერის დასამატებლად, თუ ეს ჯერ არ გააკეთეთ:
github.com/espressif/arduino-esp32
Arduino_GFX ბიბლიოთეკა
ჩამოტვირთეთ Arduino_GFX უახლესი ბიბლიოთეკები: (დააჭირეთ ღილაკს "კლონირება ან ჩამოტვირთვა" -> "ჩამოტვირთეთ ZIP")
github.com/moononournation/Arduino_GFX
ბიბლიოთეკების იმპორტი Arduino IDE– ში. (Arduino IDE "ესკიზი" მენიუ -> "ბიბლიოთეკის ჩართვა" -> "დამატება. ZIP ბიბლიოთეკა" -> გადმოწერილი ZIP ფაილის არჩევა)
ESP8266 აუდიო
ჩამოტვირთეთ უახლესი ESP8266 აუდიო ბიბლიოთეკები: (დააჭირეთ ღილაკს "კლონირება ან ჩამოტვირთვა" -> "ჩამოტვირთეთ ZIP")
github.com/earlephilhower/ESP8266Audio
ბიბლიოთეკების იმპორტი Arduino IDE– ში. (Arduino IDE "ესკიზი" მენიუ -> "ბიბლიოთეკის ჩართვა" -> "დამატება. ZIP ბიბლიოთეკა" -> გადმოწერილი ZIP ფაილის არჩევა)
RGB565_video საცდელი კოდი
ჩამოტვირთეთ უახლესი RGB565_video ნიმუშის კოდი: (დააჭირეთ "კლონირება ან ჩამოტვირთვა" -> "ჩამოტვირთეთ ZIP")
github.com/moononournation/RGB565_video
SD ბარათის მონაცემები
დააკოპირეთ მოაქცია ფაილები SD ბარათზე და ჩადეთ LCD ბარათის სლოტში
შედგენა და ატვირთვა
- გახსენით SDMMC_MJPEG_video_PCM_audio_dualSPI_multitask.ino Arduino IDE– ში
- თუ თქვენ არ იყენებთ 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 უსაფრთხოების კამერის პროექტი: 8 ნაბიჯი
დაწყება ESP32 CAM | ვიდეოს სტრიმინგი ESP CAM– ის გამოყენებით Wifi | ESP32 უსაფრთხოების კამერის პროექტი: დღეს ჩვენ ვისწავლით თუ როგორ გამოვიყენოთ ეს ახალი ESP32 CAM დაფა და როგორ შეგვიძლია მისი კოდირება და გამოვიყენოთ ის როგორც უსაფრთხოების კამერა და მივიღოთ ნაკადი ვიდეო wifi საშუალებით
საუბარი არდუინოზე. - MP3– ის დაკვრა არდუინოსთან ერთად ყოველგვარი მოდულის გარეშე - MP3 ფაილის Arduino– დან დაკვრა PCM– ის გამოყენებით: 6 ნაბიჯი
საუბარი არდუინოზე. | MP3– ის დაკვრა არდუინოსთან ერთად ნებისმიერი მოდულის გარეშე | Arduino– დან Mp3 ფაილის დაკვრა PCM– ის გამოყენებით: ამ ინსტრუქციებში ჩვენ ვისწავლით თუ როგორ ვითამაშოთ arduino– ით mp3 ფაილი აუდიო მოდულის გამოყენების გარეშე, აქ ჩვენ გამოვიყენებთ PCM ბიბლიოთეკას Arduino– სთვის, რომელიც უკრავს 16 ბიტიან PCM– ს 8kHZ სიხშირით, ასე რომ, ამის გაკეთება
სიმღერების დაკვრა (MP3) Arduino– ით PWM– ს გამოყენებით სპიკერზე ან Flyback Transformer– ზე: 6 ნაბიჯი (სურათებით)
სიმღერების დაკვრა (MP3) Arduino– ს გამოყენებით PWM სპიკერზე ან Flyback Transformer– ზე: გამარჯობა ბიჭებო, ეს არის ჩემი პირველი სასწავლო ინსტრუქცია, იმედი მაქვს მოგეწონებათ !! ძირითადად, ამ პროექტში მე გამოვიყენე სერიული კომუნიკაცია ჩემს არდუინოსა და ჩემს ლეპტოპს შორის, მუსიკალური მონაცემების გადატანა ჩემი ლეპტოპიდან არდუინოში. და Arduino TIMERS t
CD– ების დაკვრა CD პლეერის გარეშე, AI და YouTube– ის გამოყენებით: 10 ნაბიჯი (სურათებით)
CD– ების დაკვრა CD პლეერის გარეშე, AI და YouTube– ის გამოყენებით: გსურთ თქვენი CD– ების დაკვრა, მაგრამ აღარ გაქვთ CD პლეერი? არ გქონდათ დრო თქვენი CD– ების გადასაღებად? გაანადგურეს ისინი, მაგრამ საჭიროების შემთხვევაში ფაილები მიუწვდომელია? პრობლემა არ არის. მიეცით AI (ხელოვნური ინტელექტი) იდენტიფიკაციის თქვენი CD და YouTube ითამაშეთ! მე დავწერე Android app doin
სიმღერების დაკვრა Stepper Motor– ის გამოყენებით !!: 11 ნაბიჯი (სურათებით)
ითამაშეთ სიმღერები Stepper Motor !!: ეს პროექტი არის მარტივი დინამიური ინტერფეისის შემუშავების შესახებ, რომელიც საშუალებას მისცემს სტეპერ ძრავასთან ურთიერთქმედება ორი განსხვავებული გზით. პირველი ინტერფეისი გააკონტროლებს სტეპერი ძრავის მიმართულებას და სიჩქარეს აპარატის გამოყენებით მარტივი GUI, რომელიც თ