Sisällysluettelo:
- Vaihe 1: ESP32: n ominaisuudet ja rajoitukset
- Vaihe 2: Videomuoto
- Vaihe 3: Äänimuoto
- Vaihe 4: Muunna muoto
- Vaihe 5: Laitteiston valmistelu
- Vaihe 6: SD -käyttöliittymä
- Vaihe 7: Laita se yhteen
- Vaihe 8: Ohjelmoi
- Vaihe 9: Vertailuarvo
- Vaihe 10: Hyvää pelaamista
Video: Toista video ESP32: 10 vaihetta (kuvien kanssa)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-31 10:19
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
- Riittävä prosessointiteho JPEG (Play Motion JPEG) - ja LZW -tietojen pakkauksen purkamiseen (Play Animated GIF)
- 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ä:
Muunna PCM -ääniksi
ffmpeg -i input.mp4 -f u16be -acodec pcm_u16le -ar 44100 -ac 1 44100_u16le.pcm
Muunna MP3 -ääniksi
ffmpeg -i input.mp4 -ar 44100 -ac 1 -q: a 9 44100.mp3
Muunna RGB565: ksi
ffmpeg -i input.mp4 -vf "fps = 9, asteikko = -1: 176: liput = lanczos, crop = 220: in_h: (in_w -220)/2: 0" -c: v rawvideo -pix_fmt rgb565be 220_9fps. rgb
Muunna animoiduksi GIF: ksi
ffmpeg -i input.mp4 -vf "fps = 15, asteikko = -1: 176: liput = lanczos, crop = 220: in_h: (in_w -220)/2: 0, split [s0] [s1]; [s0] palettegen [p]; [s1] [p] paletteuse "-loop -1 220_15fps.gif
Muunna Motion JPEG
ffmpeg -i input.mp4 -vf "fps = 30, asteikko = -1: 176: liput = lanczos, raja = 220: in_h: (in_w -220)/2: 0" -q: v 9220_30fps.mjpeg
Huomautus:
FFmpeg -muunnettu animoitu-g.webp" />
Vaihe 5: Laitteiston valmistelu
ESP32 -kehityskortti
Kaikkien kahden ytimen ESP32-kehityskorttien pitäisi olla kunnossa, tällä kertaa käytän TTGO ESP32-Micro -laitetta.
Värinäyttö
Kaikkien värinäyttöjen, joita Arduino_GFX tukee, pitäisi olla kunnossa, tällä kertaa käytän ILI9225 -murtokorttia, jossa on SD -korttipaikka.
Löydät Arduino_GFX -tuetut värinäyttöluettelot Githubista:
github.com/moononournation/Arduino_GFX
Sd-kortti
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ä
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
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.
Tässä yhteenveto yhteydestä:
ESP32
Vcc -> LCD Vcc GND -> LCD GND GPIO 2 -> SD D0/MISO -> 1k vastus -> 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
Viite:
Vaihe 8: Ohjelmoi
Arduino IDE
Lataa ja asenna Arduino IDE, jos et ole vielä tehnyt sitä:
www.arduino.cc/en/main/software
ESP32 -tuki
Lisää ESP32 -tuki asennusohjeiden mukaisesti, jos et ole vielä tehnyt sitä:
github.com/espressif/arduino-esp32
Arduino_GFX -kirjasto
Lataa uusimmat Arduino_GFX -kirjastot: (paina "Kloona tai lataa" -> "Lataa ZIP")
github.com/moononournation/Arduino_GFX
Tuo kirjastoja Arduino IDE: ssä. (Arduino IDE "Sketch" -valikko -> "Include Library" -> "Add. ZIP Library" -> valitse ladattu ZIP -tiedosto)
ESP8266Audio
Lataa uusimmat ESP8266Audio -kirjastot: (paina "Kloona tai lataa" -> "Lataa ZIP")
github.com/earlephilhower/ESP8266Audio
Tuo kirjastoja Arduino IDE: ssä. (Arduino IDE "Sketch" -valikko -> "Include Library" -> "Add. ZIP Library" -> valitse ladattu ZIP -tiedosto)
RGB565_video Esimerkkikoodi
Lataa uusin RGB565_video -mallikoodi: (paina "Kloona tai lataa" -> "Lataa ZIP")
github.com/moononournation/RGB565_video
SD -kortin tiedot
Kopioi muunnetut tiedostot SD -kortille ja aseta ne LCD -korttipaikkaan
Käännä ja lataa
- Avaa SDMMC_MJPEG_video_PCM_audio_dualSPI_multitask.ino Arduino IDE: ssä
- 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
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
Nyt voit toistaa videota ja ääntä ESP32: lla, ja se avasi monia mahdollisuuksia!
Luulen, että teen pienen vintage -television myöhemmin …
Suositeltava:
Toista kappaleita (MP3) Arduinolla PWM: n avulla kaiuttimessa tai Flyback -muuntajassa: 6 vaihetta (kuvien kanssa)
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: 10 vaihetta (kuvien kanssa)
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: 4 vaihetta (kuvien kanssa)
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
TOISTA JA LATAA IPOD VANHAN BOOMBOXIN KANSSA - Vihjeitä ja vinkkejä: 5 vaihetta (kuvilla)
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"): 11 vaihetta (kuvien kanssa)
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