Sisukord:
- Samm: ESP32 funktsioonid ja piirangud
- Samm: videovorming
- Samm: helivorming
- 4. samm: vormindage teisendus
- Samm: riistvara ettevalmistamine
- 6. samm: SD -liides
- 7. samm: pange see kokku
- 8. samm: programm
- 9. samm: võrdlusalus
- Samm: head mängimist
Video: Esita videot ESP32 abil: 10 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-31 10:18
Need juhendid näitavad midagi video ja heli esitamise kohta ESP32 abil.
Samm: ESP32 funktsioonid ja piirangud
Funktsioonid
- 4 SPI -bussi, 2 SPI -bussi on kasutajaruumi jaoks saadaval, need on SPI2 ja SPI3 või nimetatakse HSPI ja VSPI. Mõlemad SPI siinid võivad töötada maksimaalselt 80 MHz. Teoreetiliselt suudab see tõsta 320x240 16-bitiseid värvipiksleid SPI LCD-le 60 kaadrit sekundis, kuid pole veel arvestanud videoandmete lugemiseks ja dekodeerimiseks kuluvat üldkulusid.
- 1-bitine / 4-bitine SD-siin saab ühendada SD-kaardi algprotokollis
- I2S sisemine DAC heliväljund
- video- ja helipuhvri jaoks on saadaval üle 100 KB muutmälu
- Piisavalt töötlemisvõimsus, et dekodeerida JPEG (esita Motion JPEG) ja LZW andmete pakkimine (esita animeeritud GIF)
- Kahetuumaline versioon võib jagada lugemisandmed SD-kaardilt, dekodeerida ja SPI-LCD-le lükata paralleelseteks mitmeks ülesandeks ning suurendada taasesituse jõudlust
Piirangud
- kuna sisemälu pole piisavalt, et 16-bitistes värvides 320x240 kahekordse kaadriga puhver oleks, piiras see multitegumtöötlust. Välise PSRAM -iga saab see natuke üle, kuigi see on aeglasem kui sisemine RAM
- mp4 -video dekodeerimiseks pole piisavalt töötlemisvõimsust
- mitte kõigil ESP32 versioonidel pole 2 tuuma, mitme ülesande näidis on kasulik ainult kahetuumalisel versioonil
Viide:
Samm: videovorming
RGB565
Või nn 16-bitine värv on toorandmete vorming, mida tavaliselt kasutatakse MCU ja värvilise ekraani vahelise suhtluse jaoks. Iga värvipikslit tähistab 16-bitine väärtus, esimene 5-bitine on punane väärtus, järgmine 6-bitine on roheline ja seejärel 5-bitine sinine väärtus. 16-bitine väärtus võib muuta 65536 värvivariatsiooni, nii et seda nimetatakse ka 64K värviks. 1 minuti pikkune 320x240@30 kaadrit sekundis video suurus on 16 * 320 * 240 * 30 * 60 = 2211840000 bitti = 276480000 baiti või üle 260 MB
Animeeritud GIF
See on veebis levinud failivorming alates 1990ndatest. See piirab iga ekraani värvide varieerumist kuni 256 värvi ja ei korda piksli salvestamist sama värviga kui eelmine kaader. Seega võib see faili suurust palju vähendada, eriti kui iga animatsioonikaader ei muuda liiga palju üksikasju. LZW -tihendus on kavandatud 1990ndate aastate arvutiga dekodeerimiseks, seega on ESP32 -l ka piisavalt õigust töötlemiseks, et seda reaalajas dekodeerida.
Liikuv JPEG
Või nimega M-JPEG / MJPEG on piiratud töötlemisvõimsusega videosalvestusriistvara tavaline videotihendusvorming. Tegelikult on see lihtsalt liikumatute JPEG -kaadrite ühendamine. Võrreldes MPEG või MP4 -ga, ei vaja Motion JPEG arvutuslikult intensiivset kaadritevahelise ennustamise tehnikat, iga kaader on sõltumatu. Seega nõuab see kodeerimiseks ja dekodeerimiseks vähem ressurssi.
Viide:
en.wikipedia.org/wiki/List_of_monochrome_a…
en.wikipedia.org/wiki/GIF
en.wikipedia.org/wiki/Motion_JPEG
Samm: helivorming
PCM
Toores andmevorming digitaalse heli jaoks. ESP32 DAC kasutab 16-bitist sügavust, mis tähendab, et kõik 16-bitised andmed esindavad digitaalset proovivõtu analoogsignaali. Enamik video- ja lauluheli kasutab tavaliselt proovivõtu sagedust 44100 MHz, see tähendab 44100 proovivõtu analoogsignaali iga sekundi kohta. Niisiis, 1 -minutilise monoheli PCM algandmete suurus on 16 * 44100 * 60 = 42336000 bitti = 5292000 baiti või üle 5 MB. Stereoheli suurus on kahekordne, st üle 10 MB
MP3
MPEG Layer 3 on tihendatud helivorming, mida on laialdaselt kasutatud laulude tihendamiseks alates 1990ndatest. See võib dramaatiliselt vähendada faili suurust alla kümnendiku toor-PCM-vormingust
Viide:
en.wikipedia.org/wiki/Pulse-code_modulatio…
en.wikipedia.org/wiki/MP3
4. samm: vormindage teisendus
See projekt kasutab FFmpegi, teisendades video ESP32 loetavasse vormingusse.
Palun laadige alla ja installige FFmpeg nende ametlikule saidile, kui mitte:
Teisenda PCM -heliks
ffmpeg -i input.mp4 -f u16be -acodec pcm_u16le -ar 44100 -ac 1 44100_u16le.pcm
Teisenda MP3 -heliks
ffmpeg -i input.mp4 -ar 44100 -ac 1 -q: a 9 44100.mp3
Teisendage RGB565 -ks
ffmpeg -i input.mp4 -vf "fps = 9, skaala = -1: 176: lipud = lanczos, kärpimine = 220: in_h: (in_w -220)/2: 0" -c: v rawvideo -pix_fmt rgb565be 220_9fps. rgb
Teisenda animeeritud-g.webp
ffmpeg -i input.mp4 -vf "fps = 15, skaala = -1: 176: lipud = lanczos, kärpimine = 220: in_h: (in_w -220)/2: 0, jagatud [s0] [s1]; [s0] palettegen [p]; [s1] [p] paletteuse "-loop -1 220_15fps.gif
Teisenda Motion JPEG -ks
ffmpeg -i input.mp4 -vf "fps = 30, skaala = -1: 176: lipud = lanczos, kärpimine = 220: in_h: (in_w -220)/2: 0" -q: v 9 220_30fps.mjpeg
Märge:
FFmpegi teisendatud animeeritud-g.webp" />
Samm: riistvara ettevalmistamine
ESP32 arendusplaat
Iga kahetuumaline ESP32 arendusplaat peaks olema korras, seekord kasutan TTGO ESP32-Micro.
Värviline ekraan
Kõik värvilised ekraanid, mida Arduino_GFX toetab, peaksid olema korras, seekord kasutan SD -kaardi pesaga ILI9225 eraldusplaati.
Arduino_GFX toetatud värviekraanide loendi leiate Githubist:
github.com/moononournation/Arduino_GFX
SD -kaart
Iga SD -kaart peaks olema korras, seekord kasutan SanDiski "tavalise kiirusega" 8 GB micro SD -d koos SD -adapteriga.
Heli
Kui soovite kasutada ainult kõrvaklappe, ühendage lihtsalt kõrvaklappide tihvtid tihvtiga 26 ja GND saab heli kuulata. Või saate kõlariga heli esitamiseks kasutada väikest võimendit.
Teised
Mõned leivalauad ja leivaplaadi juhtmed
6. samm: SD -liides
ILI9225 LCD eraldusplaat sisaldas ka SD crd pesa jaotusnõelu. Seda saab kasutada SPI-siinina või 1-bitise SD-siinina. Nagu minu eelmistes juhendites mainitud, eelistan kasutada 1-bitist SD-bussi, nii et see projekt põhineb 1-bitisel SD-siinil.
7. samm: pange see kokku
Ülaltoodud pildid näitavad testimisplatvormi, mida ma selles projektis kasutan. Valge leivalaud on 3D -trükitud, saate selle alla laadida ja printida saidilt thingiverse:
Tegelik ühendus sõltub sellest, milline riistvara teil käes on.
Siin on ühenduse kokkuvõte:
ESP32
Vcc -> LCD Vcc GND -> LCD GND GPIO 2 -> SD D0/MISO -> 1k takisti -> 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
Viide:
8. samm: programm
Arduino IDE
Laadige alla ja installige Arduino IDE, kui te pole seda veel teinud:
www.arduino.cc/en/main/software
ESP32 tugi
Kui te pole seda veel teinud, järgige ESP32 toe lisamiseks installijuhiseid:
github.com/espressif/arduino-esp32
Arduino_GFX raamatukogu
Laadige alla uusimad Arduino_GFX teegid: (vajutage "Kloonige või laadige alla" -> "Laadi alla ZIP")
github.com/moononournation/Arduino_GFX
Importige teegid Arduino IDE -s. (Arduino IDE "Sketch" menüü -> "Kaasa raamatukogu" -> "Lisa. ZIP -raamatukogu" -> valige allalaaditud ZIP -fail)
ESP8266Heli
Laadige alla uusimad ESP8266Audioteegid: (vajutage "Kloonige või laadige alla" -> "Laadi alla ZIP")
github.com/earlephilhower/ESP8266Audio
Importige Arduino IDE raamatukogud. (Arduino IDE "Sketch" menüü -> "Kaasa raamatukogu" -> "Lisa. ZIP -raamatukogu" -> valige allalaaditud ZIP -fail)
RGB565_video näidiskood
Laadige alla uusim RGB565_video näidiskood: (vajutage "Kloonige või laadige alla" -> "Laadi alla ZIP")
github.com/moononournation/RGB565_video
SD -kaardi andmed
Kopeerige teisendatud failid SD -kaardile ja sisestage LCD -kaardi pesasse
Kompileeri ja laadi üles
- Avage SDMMC_MJPEG_video_PCM_audio_dualSPI_multitask.ino Arduino IDE -s
- Kui te ILI9225 ei kasuta, muutke uue klassi kood (umbes 35. rida), et klassinimi oleks õige
- Vajutage Arduino IDE nuppu "Laadi üles"
- Kui teil ei õnnestunud programmi üles laadida, katkestage ühendus ESP32 GPIO 2 ja SD D0/MISO vahel
- Kui leiate, et suund ei ole õige, muutke uue klassi koodis pöörlemisväärtust (0-3)
- Kui programm töötab hästi, võite proovida teist näidist, alustades SDMMC_*
- Kui teil pole SD -kaardi pesa või FFmpeg pole installitud, võite siiski proovida SPIFFS_* näidet
9. samm: võrdlusalus
Siin on erinevate video (220x176) ja heli (44100 MHz) vormingu toimivuse kokkuvõte:
Vorming | Kaader sekundis (kaadrit sekundis) |
MJPEG + PCM | 30 |
15 | |
RGB565 + PCM | 9 |
MJPEG + MP3 | 24 |
Märge:
- MJPEG + PCM võib saavutada kõrgemat kaadrit sekundis, kuid see on tarbetu esitamine väikesel ekraanil, mis on suurem kui 30 kaadrit sekundis
- RGB565 ei vaja dekodeerimisprotsessi, kuid andmemaht on liiga suur ja palju aega kulub andmete laadimisel SD-lt, 4-bitiselt SD-bussilt ja kiiremalt SD-kaardilt, mis võib seda veidi parandada (metsik oletus võib ulatuda umbes 12 kaadrini sekundis)
- MP3 dekodeerimisprotsess pole veel optimeeritud, nüüd on see pühendatud tuumale 0 MP3 dekodeerimiseks ja tuumale 1 video esitamiseks
Samm: head mängimist
Nüüd saate oma ESP32 -ga mängida videot ja heli, see avas palju võimalusi!
Ma arvan, et teen hiljem väikese vintage -teleri…
Soovitan:
Kuidas oma arvutiekraanilt videot teha !!: 5 sammu
Kuidas arvutiekraanilt videot teha !!: See juhend annab teile kiire & lihtne viis oma arvutiekraanilt videot teha Palun tellige minu kanalTänan
Kuidas teha drooni Arduino UNO abil - Mikrokontrolleri abil kvadkopteri valmistamine: 8 sammu (piltidega)
Kuidas teha drooni Arduino UNO abil | Valmistage mikrokontrolleri abil kvadropter: Sissejuhatus Külastage minu Youtube'i kanalit Droon on ostmiseks väga kallis vidin (toode). Selles postituses arutlen, kuidas seda odavalt teha ?? Ja kuidas saate oma odava hinnaga sellist teha … No Indias kõik materjalid (mootorid, ESC -d
Kella tegemine M5stick C abil Arduino IDE abil RTC reaalajas kell M5stack M5stick-C abil: 4 sammu
Kella tegemine M5stick C abil, kasutades Arduino IDE | RTC reaalajas kell koos M5stack M5stick-C-ga: Tere, selles juhendis olevad poisid, me õpime, kuidas Arduino IDE abil kella m5stick-C arendusplaadiga teha. Nii kuvab m5stick kuupäeva, kellaaja ja amp; kuunädal ekraanil
Kuidas teha aegunud videot: 7 sammu
Kuidas teha aegunud videot: selles juhendis kirjeldan üksikasjalikult samme, mida kasutan aegunud video tegemiseks. Piltide saamiseks kasutatav süsteem ja riistvara on Linuxi arvuti ja võrgupõhine IP -kaamera. Skript töötab Linuxi arvutis ja küsitleb iga x sekundit
Kuidas teha rakendusest rohelise ekraani videot: 5 sammu
Kuidas teha rakendusest rohelise ekraani videot: selles juhendis näitan teile, kuidas teha ja kasutada rohelist ekraani fotode ja videote tegemiseks. Seal on mitu rohelise ekraani rakendust, mida saate kasutada õige efekti saamiseks. Vajalikud materjalid: videosalvestusseade (võib olla iPod, iPad