Orodha ya maudhui:
- Hatua ya 1: Vipengele vya ESP32 na Upungufu
- Hatua ya 2: Umbizo la Video
- Hatua ya 3: Umbizo la Sauti
- Hatua ya 4: Umbiza Ubadilishaji
- Hatua ya 5: Maandalizi ya vifaa
- Hatua ya 6: Kiolesura cha SD
- Hatua ya 7: Kuiweka Pamoja
- Hatua ya 8: Programu
- Hatua ya 9: Benchi
- Hatua ya 10: Kucheza kwa Furaha
Video: Cheza Video Na ESP32: Hatua 10 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-31 10:25
Maagizo haya yanaonyesha kitu juu ya kucheza video na sauti na ESP32.
Hatua ya 1: Vipengele vya ESP32 na Upungufu
Vipengele
- Basi ya SPI 4, basi 2 ya SPI inapatikana kwa nafasi ya mtumiaji, ni SPI2 na SPI3 au inaitwa HSPI na VSPI. Basi zote za SPI zinaweza kukimbia zaidi ya 80 MHz. Kinadharia inaweza kushinikiza saizi za rangi 320x240 16-bit kwa SPI LCD kwa fps 60, lakini bado haijahesabu saa inayotakiwa kwa kusoma na kuamua data ya video.
- Basi ya SD ya 1-bit / 4-bit inaweza kuunganisha kadi ya SD katika itifaki ya asili
- Pato la sauti la ndani la I2S
- zaidi ya 100 KB ya RAM inapatikana kwa bafa ya video na sauti
- Nguvu ya kutosha ya usindikaji kuamua JPEG (cheza Motion JPEG) na ukandamizaji wa data ya LZW (cheza Animated GIF)
- Toleo la msingi-mbili linaweza kugawanya data iliyosomwa kutoka kwa kadi ya SD, kusimbua na kushinikiza kwa SPI LCD katika kazi nyingi zinazofanana na kuongeza utendaji wa kucheza
Upungufu
- haitoshi RAM ya ndani kuwa na bafa ya fremu mbili kwa 320x240 katika rangi 16-bit, ilizuia muundo wa kazi nyingi. Inaweza kushinda kidogo na PSRAM ya nje ingawa ni polepole kuliko RAM ya ndani
- haitoshi nguvu ya usindikaji kuamua video ya mp4
- sio toleo lote la ESP32 lenye msingi 2, sampuli ya kazi nyingi hufaidika tu kwenye toleo la msingi-mbili
Ref.:
Hatua ya 2: Umbizo la Video
RGB565
Au inayoitwa rangi ya 16-bit ni fomati ya data ghafi inayotumiwa sana kwenye mawasiliano kati ya MCU na onyesho la rangi. Kila pikseli ya rangi inawakilishwa na thamani ya 16-bit, 5-bit ya kwanza ni nyekundu, ikifuata 6-bit ni thamani ya kijani na kisha 5-bit thamani ya bluu. Thamani ya 16-bit inaweza kufanya tofauti ya rangi 65536 kwa hivyo inaitwa pia rangi 64K. Kwa hivyo video 1 dakika 320x240 @ 30 fps itakuwa saizi: 16 * 320 * 240 * 30 * 60 = 2211840000 bits = 276480000 byte au zaidi ya 260 MB
Hii ni fomati ya faili ya kawaida kwenye wavuti tangu miaka ya 1990. Inapunguza utofauti wa rangi kwa kila skrini hadi rangi 256 na usirudie kuhifadhi pikseli hiyo kama rangi sawa na fremu iliyopita. Kwa hivyo inaweza kupunguza saizi ya faili, haswa wakati kila fremu ya uhuishaji haibadiliki maelezo mengi. Ukandamizaji wa LZW umeundwa na uwezo wa kukataliwa na kompyuta ya miaka ya 1990, kwa hivyo ESP32 pia ina nguvu ya kutosha ya usindikaji kuisuluhisha kwa wakati halisi.
Mwendo JPEG
Au inayoitwa M-JPEG / MJPEG ni muundo wa kawaida wa kukandamiza video kwa vifaa vya kukamata video na nguvu ndogo ya usindikaji. Kwa kweli ni mkusanyiko wa muafaka bado wa JPEG. Linganisha na MPEG au MP4, Motion JPEG hakuna hitaji la mbinu kubwa ya hesabu ya utabiri wa kuingiliana, kila fremu inajitegemea. Kwa hivyo inahitaji rasilimali kidogo kusimba na kusimbua.
Ref.
en.wikipedia.org/wiki/List_of_monochrome_a…
en.wikipedia.org/wiki/GIF
en.wikipedia.org/wiki/Motion_JPEG
Hatua ya 3: Umbizo la Sauti
PCM
Muundo wa data mbichi ya sauti ya dijiti. ESP32 DAC hutumia kina kidogo cha 16-bit, hiyo inamaanisha kila data ya 16-bit inawakilisha ishara ya analog ya sampuli ya dijiti. Sauti nyingi za video na wimbo kawaida hutumia kiwango cha sampuli kwa 44100 MHz, hiyo inamaanisha ishara ya analog ya sampuli 44100 kwa kila sekunde. Kwa hivyo, data mbichi ya dakika 1 ya sauti ya PCM itakuwa saizi: 16 * 44100 * 60 = 42336000 bits = ka 5292000 au zaidi ya 5 MB. Saizi ya sauti ya stereo itakuwa mara mbili, i.e.zidi 10 MB
MP3
Tabaka la 3 la MPEG ni umbizo la sauti lililobanwa kutumika sana kwa kukandamiza wimbo tangu miaka ya 1990. Inaweza kupunguza kwa kiasi kikubwa saizi ya faili hadi chini ya moja ya kumi ya fomati ghafi ya PCM
Ref.
en.wikipedia.org/wiki/Pulse-code_modulatio …….
en.wikipedia.org/wiki/MP3
Hatua ya 4: Umbiza Ubadilishaji
Mradi huu unatumia FFmpeg kubadilisha video kuwa fomati inayosomeka ya ESP32.
Tafadhali pakua na usakinishe FFmpeg kwenye tovuti yao rasmi ikiwa bado:
Badilisha kwa sauti ya PCM
ffmpeg -i pembejeo.mp4 -f u16be -acodec pcm_u16le -ar 44100 -ac 1 44100_u16le.pcm
Badilisha kwa sauti ya MP3
ffmpeg -i pembejeo.mp4 -ar 44100 -ac 1 -q: a 9 44100.mp3
Badilisha kuwa RGB565
ffmpeg -i pembejeo.mp4 -vf "fps = 9, scale = -1: 176: bendera = lanczos, mazao = 220: in_h: (in_w-220) / 2: 0" -c: v rawvideo -pix_fmt rgb565be 220_9fps. rgb
Badilisha kuwa-g.webp
ffmpeg -i pembejeo.mp4 -vf "fps = 15, scale = -1: 176: bendera = lanczos, mazao = 220: in_h: (in_w-220) / 2: 0, split [s0] [s1]; [s0 palettegen [p]; [s1] [p] paletteuse "-loop -1 220_15fps.gif
Badilisha kwa Mwendo JPEG
ffmpeg -i pembejeo.mp4 -vf "fps = 30, wadogo = -1: 176: bendera = lanczos, mazao = 220: in_h: (in_w-220) / 2: 0" -q: v 9 220_30fps.mjpeg
Kumbuka:
GF ya Uhuishaji iliyobadilishwa FFmpeg inaweza kuboreshwa zaidi na zana zingine za wavuti, unaweza kutafuta optimizer ya-g.webp" />
Hatua ya 5: Maandalizi ya vifaa
Bodi ya ESP32 Dev
Bodi yoyote ya msingi ya ESP32 inapaswa kuwa sawa, wakati huu ninatumia TTGO ESP32-Micro.
Kuonyesha Rangi
Onyesho lolote la rangi ambalo msaada wa Arduino_GFX unapaswa kuwa sawa, wakati huu ninatumia bodi ya kuzuka ya ILI9225 iliyo na kadi ya SD.
Unaweza kupata orodha ya kuonyesha rangi ya Arduino_GFX huko Github:
github.com/moononournation/Arduino_GFX
Kadi ya SD
Kadi yoyote ya SD inapaswa kuwa sawa, wakati huu ninatumia SanDisk "kasi ya kawaida" 8 GB ndogo ya SD na adapta ya SD.
Sauti
Ikiwa unataka kutumia kipaza sauti tu, unganisha tu pini za kichwa ili kubandika 26 na GND inaweza kusikiliza sauti. Au unaweza kutumia kipaza sauti kidogo kucheza sauti na spika.
Wengine
Baadhi ya ubao wa mkate na waya za mkate
Hatua ya 6: Kiolesura cha SD
Bodi ya kuzuka ya ILI9225 LCD pia ilijumuisha pini za kuzima za SD crd. Inaweza kutumika kama basi ya SPI au basi ya 1-bit SD. Kama nilivyosema katika mafundisho yangu ya hapo awali, napendelea kutumia basi ya 1-bit SD, kwa hivyo mradi huu utategemea basi ya 1-bit SD.
Hatua ya 7: Kuiweka Pamoja
Picha hapo juu zinaonyesha jukwaa la upimaji ninalo tumia katika mradi huu. Bodi nyeupe ya mkate imechapishwa na 3D, unaweza kuipakua na kuichapisha kwenye eneo la habari:
Uunganisho halisi unategemea vifaa gani unavyo mkononi.
Hapa kuna muhtasari wa unganisho:
E3232
Vcc -> LCD Vcc GND -> LCD GND GPIO 2 -> SD D0 / MISO -> 1k kipinga -> 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
Ref.:
Hatua ya 8: Programu
Arduino IDE
Pakua na usakinishe Arduino IDE ikiwa bado haujafanya:
www.arduino.cc/en/main/software
Msaada wa ESP32
Fuata Maagizo ya Usanikishaji ili kuongeza msaada wa ESP32 ikiwa bado haujaifanya:
github.com/espressif/arduino-esp32
Maktaba ya Arduino_GFX
Pakua maktaba za hivi karibuni za Arduino_GFX: (bonyeza "Clone au Pakua" -> "Pakua ZIP")
github.com/moononournation/Arduino_GFX
Ingiza maktaba katika Arduino IDE. (Arduino IDE "Mchoro" Menyu -> "Jumuisha Maktaba" -> "Ongeza Maktaba ya ZIP" -> chagua faili ya ZIP iliyopakuliwa)
ESP8266 Sauti
Pakua hivi karibuni maktaba za ESP8266Audio: (bonyeza "Clone au Pakua" -> "Pakua ZIP")
github.com/earlephilhower/ESP8266Audio
Ingiza maktaba katika Arduino IDE. (Arduino IDE "Mchoro" Menyu -> "Jumuisha Maktaba" -> "Ongeza Maktaba ya ZIP" -> chagua faili ya ZIP iliyopakuliwa)
Msimbo wa Mfano wa RGB565_video
Pakua nambari mpya ya sampuli ya RGB565_video: (bonyeza "Clone au Pakua" -> "Pakua ZIP")
github.com/moononournation/RGB565_video
Takwimu za Kadi ya SD
Nakili faili zilizobadilishwa kwenye kadi ya SD na ingiza kwenye slot ya kadi ya LCD
Jumuisha na Upakie
- Fungua SDMMC_MJPEG_video_PCM_audio_dualSPI_multitask.ino katika Arduino IDE
- Ikiwa hutumii ILI9225, badilisha nambari mpya ya darasa (karibu na mstari wa 35) kusahihisha jina la darasa
- Bonyeza kitufe cha "Pakia" cha Arduino IDE
- Ikiwa umeshindwa kupakia programu hiyo, jaribu kuondoa unganisho kati ya ESP32 GPIO 2 na SD D0 / MISO
- Ukiona mwelekeo sio sahihi, badilisha thamani ya "mzunguko" (0-3) katika nambari mpya ya darasa
- Ikiwa programu inaendeshwa vizuri unaweza kujaribu sampuli nyingine kuanza na SDMMC_ *
- Ikiwa hauna kadi ya SD au huna FFmpeg iliyosanikishwa, bado unaweza kujaribu mfano wa SPIFFS_ *
Hatua ya 9: Benchi
Hapa kuna muhtasari wa utendaji wa video tofauti (220x176) na fomati ya sauti (44100 MHz):
Umbizo | Sura kwa sekunde (ramprogrammen) |
MJPEG + PCM | 30 |
15 | |
RGB565 + PCM | 9 |
MJPEG + MP3 | 24 |
Kumbuka:
- MJPEG + PCM inaweza kufikia ramprogrammen ya juu lakini sio kucheza kwa lazima kwenye skrini ndogo zaidi ya 30 fps
- RGB565 haihitaji mchakato wa kusimbua lakini saizi ya data ni kubwa sana na inatumiwa wakati mwingi kupakia data kutoka kwa SD, basi ya 4-bit SD na kadi ya SD haraka inaweza kuiboresha kidogo (nadhani ya mwitu inaweza kufikia karibu ramprogrammen 12)
- Mchakato wa kusimbua MP3 bado haujaboreshwa, sasa ni kujitolea kwa msingi wa 0 kwa uamuzi wa MP3 na msingi 1 wa kucheza video
Hatua ya 10: Kucheza kwa Furaha
Sasa unaweza kucheza video na sauti na ESP32 yako, ilifungua uwezekano mwingi!
Nadhani nitaunda TV ndogo ya zabibu baadaye …
Ilipendekeza:
Chomeka na Cheza Seva ndogo ya Mtandao ya Raspberry Pi: Hatua 6 (na Picha)
Chomeka na Cheza Seva ndogo ya Mtandao ya Raspberry Pi: Hivi karibuni, nimepata mikono yangu juu ya Raspberry Pi 1 Model A + kwa bei rahisi. Ikiwa haujasikia juu ya Pi Model A, ni moja ya sababu ya kwanza kabisa ya Raspberry Pi ambayo ni kubwa kuliko Pi Zero na ndogo kuliko Raspberry Pi ya kawaida. Daima ninataka
Cheza Kituo cha Kidhibiti cha 3D kisicho na waya kilichodhibitiwa kwa mbali: Hatua 7 (na Picha)
Cheza Kituo cha Kidhibiti cha 3D kisicho na waya kilichodhibitiwa cha mbali: Nani hapendi michezo ya kubahatisha? Mashindano na Mapigano katika Ulimwengu Halisi wa Kituo cha Mchezo na Xbox !! Kwa hivyo, kuleta raha hiyo kwa maisha halisi nilifanya hii iweze kufundishwa ambayo nitaenda kukuonyesha jinsi unaweza kutumia Kidhibiti cha mbali cha Kituo cha Play (Wired
Cheza Nyimbo (MP3) Na Arduino Kutumia PWM kwenye Spika au Flyback Transformer: Hatua 6 (na Picha)
Cheza Nyimbo (MP3) Na Arduino Kutumia PWM kwenye Spika au Flyback Transformer: Hello Guys, Hii ndio mafunzo yangu ya kwanza, natumai utaipenda !! Kimsingi, Katika Mradi huu nimetumia Mawasiliano ya Siri kati ya Arduino yangu na Laptop yangu, kusambaza data ya muziki kutoka Laptop yangu kwenda Arduino. Na kutumia Arduino Timers t
Cheza CD bila Kicheza CD, ukitumia AI na YouTube: Hatua 10 (na Picha)
Cheza CD bila Kicheza CD, ukitumia AI na YouTube: Unataka kucheza CD zako lakini hauna kicheza CD zaidi? Haukuwa na wakati wa kupasua CD zako? Zimechanwa lakini faili hazipatikani wakati zinahitajika? Hakuna shida. Wacha AI (akili ya bandia) itambue CD yako, na YouTube iicheze! Niliandika programu ya Android
Cheza Video Nyuma Kutumia Mchezaji wa Haraka: Hatua 5
Cheza Video Nyuma Kutumia Mchezaji wa Haraka fanya na mradi lakini nilihitaji