2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:41
Toista video ESP32: lla
Tämä opas näyttää jotain videon ja äänen toistamisesta ESP32: lla.
Vaihe 1: ESP32: n ominaisuudet ja rajoitukset
ominaisuudet
4 SPI -väylää, 2 SPI -väylää käytettävissä tilaa varten, ne ovat SPI2 ja SPI3 tai kutsutaan HSPI- ja VSPI -väyliksi. Molemmat SPI -väylät voivat ajaa enintään 80 MHz. Teoreettisesti se voi siirtää 320 x 240 16-bittisiä väripikseleitä SPI LCD -nopeuteen 60 kuvaa sekunnissa, mutta se ei ole vielä laskenut videodatan lukemiseen ja purkamiseen tarvittavaa aikaa.
1-bittinen / 4-bittinen SD-väylä voi yhdistää SD-kortin natiiviprotokollaan
I2S: n sisäinen DAC -äänilähtö
yli 100 kt RAM -muistia käytettävissä video- ja äänipuskurille
Kaksoisydinversio voi jakaa lukutiedot SD-kortilta, purkaa ja siirtää SPI LCD -näyttöön rinnakkaisiin monitehtäviin ja parantaa toiston suorituskykyä
Rajoitukset
sisäinen RAM-muisti ei riitä kaksoiskehyspuskuriin 320 x 240 kuvapistettä varten 16-bittisissä väreissä, se rajoitti moniajo-suunnittelua. Se voi voittaa hieman ulkoisella PSRAM -muistilla, vaikka se on hitaampi kuin sisäinen RAM
prosessointiteho ei riitä mp4 -videon purkamiseen
Kaikissa ESP32-versioissa ei ole 2 ydintä
Viite:
Vaihe 2: Videomuoto
RGB565
Tai nimeltään 16-bittinen väri on raakatietoformaatti, jota käytetään yleisesti MCU: n ja värinäytön välisessä viestinnässä. Jokaista väripikseliä edustaa 16-bittinen arvo, ensimmäinen 5-bittinen on punainen arvo, seuraava 6-bittinen on vihreä arvo ja sitten 5-bittinen sininen arvo. 16-bittinen arvo voi tehdä 65536 värivaihtelua, joten sitä kutsutaan myös 64K-väreiksi. Joten 1 minuutin 320x240@30 fps videon koko on: 16 * 320 * 240 * 30 * 60 = 2211840000 bittiä = 276480000 tavua tai yli 260 Mt
Animoitu GIF
Tämä on yleinen tiedostomuoto verkossa 1990 -luvulta lähtien. Se rajoittaa kunkin näytön värivaihtelua enintään 256 väriin eikä toista pikselin tallentamista samaan väriin kuin edellinen kehys. Joten se voi pienentää tiedoston kokoa paljon, varsinkin kun jokainen animaatiokehys ei muuta liikaa yksityiskohtia. LZW -pakkaus on suunniteltu dekoodattavaksi 1990 -luvun tietokoneella, joten ESP32: lla on myös riittävästi prosessointitehoa sen purkamiseen reaaliajassa.
Liike JPEG
Tai nimeltään M-JPEG / MJPEG on yleinen videopakkausmuoto videokuvauslaitteistolle, jolla on rajallinen prosessointiteho. Se on itse asiassa yksinkertaisesti edelleen JPEG -kehysten ketjutus. Vertaa MPEG- tai MP4 -muotoon, Motion JPEG ei tarvitse laskennallisesti intensiivistä kehystenvälistä ennustamistekniikkaa, jokainen kehys on itsenäinen. Joten se vaatii vähemmän resursseja koodata ja purkaa.
Viite.:
en.wikipedia.org/wiki/List_of_monochrome_a…
en.wikipedia.org/wiki/GIF
en.wikipedia.org/wiki/Motion_JPEG
Vaihe 3: Äänimuoto
PCM
Raaka datamuoto digitaalista ääntä varten. ESP32 DAC käyttää 16-bittistä syvyyttä, mikä tarkoittaa, että jokainen 16-bittinen data edustaa digitaalista näytteistettyä analogista signaalia. Useimmat video- ja kappaleäänet käyttävät yleensä näytteenottotaajuutta 44100 MHz: llä, mikä tarkoittaa 44100 näytteistettyä analogista signaalia joka sekunti. Joten 1 minuutin monoäänen PCM -raakatiedot mitoitetaan: 16 * 44100 * 60 = 42336000 bittiä = 5292000 tavua tai yli 5 Mt. Stereoäänen koko on kaksinkertainen eli yli 10 Mt
MP3
MPEG Layer 3 on pakattu äänimuoto, jota on käytetty laajasti kappaleiden pakkaamiseen 1990 -luvulta lähtien. Se voi pienentää tiedoston kokoa dramaattisesti alle kymmenesosaan raa'asta PCM-muodosta
Viite.:
en.wikipedia.org/wiki/Pulse-code_modulatio…
en.wikipedia.org/wiki/MP3
Vaihe 4: Muunna muoto
Tämä projekti käyttää FFmpeg muuntaa videon ESP32 luettavissa muodossa.
Lataa ja asenna FFmpeg niiden viralliselle sivustolle, jos et vielä:
Kaikkien SD -korttien pitäisi olla kunnossa, tällä kertaa käytän SanDiskin "normaalinopeuksista" 8 Gt: n micro -SD -korttia SD -sovittimella.
Audio
Jos haluat käyttää vain kuulokkeita, kytke vain kuulokkeiden nastat nastaan 26 ja GND voi kuunnella ääntä. Tai voit käyttää pientä vahvistinta äänen toistamiseen kaiuttimella.
Muut
Jotkut leipälaudat ja leipälautajohdot
Vaihe 6: SD -käyttöliittymä
SD -käyttöliittymäSD -käyttöliittymä
ILI9225 LCD -murtokortti sisälsi myös SD -korttipaikan aukot. Sitä voidaan käyttää SPI-väylänä tai 1-bittisenä SD-väylänä. Kuten aiemmissa ohjeissani mainitsin, mieluummin käytän 1-bittistä SD-väylää, joten tämä projekti perustuu 1-bittiseen SD-väylään.
Vaihe 7: Laita se yhteen
Laita se yhteenLaita se yhteenLaita se yhteen
Yllä olevat kuvat osoittavat testausalustan, jota käytän tässä projektissa. Valkoinen leipälauta on 3D -tulostettu, voit ladata ja tulostaa sen osoitteesta thingiverse:
Todellinen yhteys riippuu siitä, mitä laitteistoa sinulla on käsilläsi.
Jos et käytä ILI9225: tä, vaihda uusi luokan koodi (noin rivi 35) oikean luokan nimeksi
Paina Arduino IDE "Lataa" -painiketta
Jos ohjelman lataaminen epäonnistui, yritä irrottaa yhteys ESP32 GPIO 2: n ja SD D0/MISO: n välillä
Jos suunta ei ole oikea, muuta "kierto" -arvoa (0-3) uudessa luokkakoodissa
Jos ohjelma toimii hyvin, voit kokeilla toista näytealoitusta SDMMC_*: lla
Jos sinulla ei ole SD -korttipaikkaa tai sinulla ei ole FFmpeg -ohjelmistoa, voit silti kokeilla SPIFFS_* -esimerkkiä
Vaihe 9: Vertailuarvo
Vertailuarvo
Tässä on yhteenveto eri video- (220x176) ja äänimuodosta (44100 MHz):
Muoto
Ruutu sekunnissa (fps)
MJPEG + PCM
30
15
RGB565 + PCM
9
MJPEG + MP3
24
Huomautus:
MJPEG + PCM voi saavuttaa korkeammat fps, mutta se on tarpeetonta toistoa pienellä näytöllä, joka on suurempi kuin 30 fps
RGB565 ei vaadi dekoodausprosessia, mutta datakoko on liian suuri ja paljon aikaa kuluu tietojen lataamiseen SD: ltä, 4-bittiseltä SD-väylältä ja nopeammalta SD-kortilta.
MP3 -dekoodausprosessia ei ole vielä optimoitu, se on nyt omistanut ytimen 0 MP3 -dekoodaukselle ja ydin 1 videon toistolle
Vaihe 10: Hyvää pelaamista
Hyvää pelaamista!
Nyt voit toistaa videota ja ääntä ESP32: lla, ja se avasi monia mahdollisuuksia!
Luulen, että teen pienen vintage -television myöhemmin …
Toista kappaleita (MP3) Arduinolla PWM: n avulla kaiuttimessa tai Flyback -muuntajassa: Hei kaverit, tämä on ensimmäinen opastettava, toivon, että pidät siitä! Pohjimmiltaan tässä projektissa olen käyttänyt sarjaliikennettä Arduinon ja kannettavan tietokoneen välillä, siirtää musiikkitietoja kannettavalta tietokoneeltani Arduinolle. Ja käyttämällä Arduino TIMERS t
Toista CD -levyjä ilman CD -soitinta, tekoälyn ja YouTuben avulla: Haluatko toistaa CD -levyjä, mutta sinulla ei ole enää CD -soitinta? Eikö sinulla ollut aikaa kopioida CD -levyjäsi? Kopioitu ne, mutta tiedostot eivät ole käytettävissä tarvittaessa? Ei hätää. Anna tekoälyn (AI) tunnistaa CD -levysi ja YouTube toistaa sen! Kirjoitin Android -sovelluksen
Kuvien tallentaminen tehtävää varten: 1. Avaa uusi Google -asiakirja ja suojaa kuvat tällä sivulla. Käytä ctrl (ohjaus) ja " c " kopioitava näppäin 3. Käytä ctrl (control) ja " v " liitettävä avain
PELAA JA LATAA IPODI VANHAN BOOMBOXIN KÄYTTÖÄ - Vihjeitä ja vinkkejä: Pidä tätä lisäyksenä muihin iPod boombox -modeihin. Myönnän, että lainasin muista Instructablesista. Älä ota pois näitä ohjeita, tässä on "huutaa". niille, jotka inspiroivat minua sukeltamaan omaan modiini. Kiitos. Opastettava
Kuvien tekeminen saumattomiksi vain vaaka- tai pystysuunnassa ("The GIMP"): Jos yrität "Tee saumaton" -laajennusta GIMP: ssä, se tekee kuvasta saumattoman sekä vaaka- että pystysuunnassa samanaikaisesti. Se ei salli sinun tehdä siitä saumatonta vain yhdessä ulottuvuudessa. Tämä ohje auttaa sinua saamaan kuvan