Агуулгын хүснэгт:
- Алхам 1: ESP32 -ийн онцлог ба хязгаарлалт
- Алхам 2: Видео формат
- Алхам 3: Аудио формат
- Алхам 4: Хөрвүүлэлтийг форматлах
- Алхам 5: Тоног төхөөрөмжийн бэлтгэл
- Алхам 6: SD интерфэйс
- Алхам 7: Үүнийг хамтад нь хий
- Алхам 8: Хөтөлбөр
- Алхам 9: жишиг үзүүлэлт
- Алхам 10: Аз жаргалтай тоглох
Видео: ESP32 ашиглан видео тоглуулах: 10 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-31 10:22
Энэхүү зааварчилгаа нь ESP32 ашиглан видео болон аудио тоглуулахтай холбоотой ямар нэг зүйлийг харуулдаг.
Алхам 1: ESP32 -ийн онцлог ба хязгаарлалт
Онцлог шинж чанарууд
- 4 SPI автобус, 2 SPI автобусыг хэрэглэгчийн орон зайд ашиглах боломжтой бөгөөд эдгээр нь SPI2 ба SPI3 буюу HSPI ба VSPI гэж нэрлэгддэг. SPI автобус хоёулаа хамгийн ихдээ 80 МГц давтамжтай ажиллах боломжтой. Онолын хувьд энэ нь 320x240 хэмжээтэй 16 битийн өнгөт пикселийг SPI LCD дэлгэц дээр 60 кадр / сек хурдтайгаар дарах боломжтой боловч видео өгөгдлийг унших, декодлоход шаардагдах нэмэлт хугацааг хараахан тооцоолоогүй байна.
- 1 бит / 4 битийн SD автобус нь SD картыг төрөлхийн протоколоор холбох боломжтой
- I2S дотоод DAC аудио гаралт
- Видео болон аудио буферт 100 KB гаруй RAM ашиглах боломжтой
- JPEG (Motion JPEG тоглох) болон LZW өгөгдлийн шахалтыг тайлах (хөдөлгөөнт-g.webp" />
- Давхар цөмт хувилбар нь SD картнаас уншсан өгөгдлийг хувааж, кодыг тайлж, SPI LCD руу зэрэгцүүлэн олон үүрэг даалгавар өгч, тоглуулах ажиллагааг сайжруулдаг.
Хязгаарлалт
- 16 битийн хэмжээтэй 320x240 хэмжээтэй хоёр хүрээтэй буфертай байхын тулд дотоод санах ой хангалтгүй байгаа нь олон талт дизайныг хязгаарласан болно. Энэ нь гадаад RAM -тай бага зэрэг даван туулж чаддаг боловч дотоод 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 МГц давтамжийг ашигладаг бөгөөд энэ нь секунд тутамд 44100 түүвэрлэсэн аналог дохио гэсэн үг юм. Тиймээс, 1 минутын моно аудио PCM түүхий өгөгдлийн хэмжээ: 16 * 44100 * 60 = 42336000 бит = 5292000 байт эсвэл 5 МБ -аас их байх болно. Стерео аудионы хэмжээ хоёр дахин нэмэгдэх болно, өөрөөр хэлбэл 10 MB -аас дээш
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, масштаб = -1: 176: тугнууд = lanczos, газар тариалан = 220: in_h: (in_w -220)/2: 0" -c: v rawvideo -pix_fmt rgb565be 220_9fps. rgb
Хөдөлгөөнт-g.webp
ffmpeg -i input.mp4 -vf "fps = 15, масштаб = -1: 176: тугууд = lanczos, тайрах = 220: in_h: (in_w -220)/2: 0, хуваах [s0] [s1]; [s0] palettegen [p]; [s1] [p] paletteuse "-loop -1 220_15fps.gif
Motion JPEG руу хөрвүүлэх
ffmpeg -i input.mp4 -vf "fps = 30, масштаб = -1: 176: туг = lanczos, тайрах = 220: in_h: (in_w -220)/2: 0" -q: v 9 220_30fps.mjpeg
Тэмдэглэл:
FFmpeg хөрвүүлсэн хөдөлгөөнт-g.webp" />
Алхам 5: Тоног төхөөрөмжийн бэлтгэл
ESP32 хөгжлийн самбар
Аливаа хоёр цөмт ESP32 хөгжүүлэгч самбар зүгээр байх ёстой, энэ удаад би TTGO ESP32-Micro ашиглаж байна.
Өнгөт дэлгэц
Arduino_GFX -ийн дэмждэг өнгөт дэлгэц нь зүгээр байх ёстой, энэ удаад би SD картны үүртэй ILI9225 хавтанг ашиглаж байна.
Та Arduino_GFX дэмждэг өнгөт дэлгэцийн жагсаалтыг Github дээрээс олж болно.
github.com/moononournation/Arduino_GFX
SD карт
Аливаа SD карт зүгээр байх ёстой, энэ удаад би SD адаптертай SanDisk "хэвийн хурдтай" 8 ГБ хэмжээтэй micro SD ашиглаж байна.
Аудио
Хэрэв та зөвхөн чихэвч ашиглахыг хүсвэл чихэвчний зүүг 26 -р зүүгээр холбоод GND аудиог сонсох боломжтой. Эсвэл та чанга яригчаар аудио тоглуулахын тулд жижиг өсгөгч ашиглаж болно.
Бусад
Зарим талх, талхны утас
Алхам 6: SD интерфэйс
ILI9225 LCD таслах самбар нь SD crd үүр таслах голтой байв. Үүнийг SPI автобус эсвэл 1 битийн SD автобус болгон ашиглаж болно. Өмнөх зааварчилгаанд дурдсанчлан би 1 битийн SD автобус ашиглахыг илүүд үздэг тул энэ төсөл нь 1 битийн SD автобусанд суурилах болно.
Алхам 7: Үүнийг хамтад нь хий
Дээрх зургууд нь энэ төсөлд миний ашиглаж буй туршилтын платформыг харуулж байна. Цагаан талхны самбарыг 3 хэмжээст хэвлэмэл хэлбэрээр татаж авах боломжтой:
Бодит холболт нь таны гарт байгаа тоног төхөөрөмжөөс хамаарна.
Энд холболтын хураангуй байна:
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 номын санг татаж авах: ("Clone or Download" -> "ZIP татаж авах" товчийг дарна уу)
github.com/moononournation/Arduino_GFX
Arduino IDE дахь номын санг импортлох. (Arduino IDE "Sketch" цэс -> "Номын санг оруулах" -> ". ZIP номын сан нэмэх" -> татаж авсан ZIP файлыг сонгох)
ESP8266 аудио
Хамгийн сүүлийн ESP8266Audio номын санг татаж авах: ("Clone or Download" -> "ZIP татаж авах" товчийг дарна уу)
github.com/earlephilhower/ESP8266Audio
Arduino IDE дахь номын санг импортлох. (Arduino IDE "Sketch" цэс -> "Номын санг оруулах" -> ". ZIP номын сан нэмэх" -> татаж авсан ZIP файлыг сонгох)
RGB565_video видео кодын жишээ код
Хамгийн сүүлийн үеийн RGB565_video дээжийн кодыг татаж авах: ("Clone or Download" -> "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 МГц) форматын гүйцэтгэлийн хураангуйг энд харуулав.
Формат | Секундэд хүрээ (fps) |
MJPEG + PCM | 30 |
15 | |
RGB565 + PCM | 9 |
MJPEG + MP3 | 24 |
Тэмдэглэл:
- MJPEG + PCM нь илүү өндөр хурдаар хүрэх боломжтой боловч 30 секундээс илүү жижиг дэлгэц дээр тоглох шаардлагагүй юм.
- RGB565 нь код тайлах процесс шаарддаггүй боловч өгөгдлийн хэмжээ хэт том бөгөөд SD, 4 битийн SD автобус, илүү хурдан SD картаас өгөгдөл ачаалахад маш их цаг хугацаа шаардагддаг бөгөөд үүнийг бага зэрэг сайжруулж чадна (зэрлэг таамаглал нь ойролцоогоор 12 fps хүрэх боломжтой)
- MP3 код тайлах процесс хараахан оновчтой болоогүй байгаа бөгөөд одоо MP3 код тайлах үндсэн 0, видео тоглуулахад үндсэн 1 -ийг зориулав
Алхам 10: Аз жаргалтай тоглох
Одоо та ESP32 ашиглан видео, аудио тоглуулах боломжтой бөгөөд энэ нь олон боломжийг нээж өгсөн юм!
Хожим нь бяцхан чимэг зурагт хийх болно гэж бодож байна …
Зөвлөмж болгож буй:
Ярьж буй Ардуино - Ямар ч модульгүй Arduino ашиглан MP3 тоглуулах - PCM ашиглан Arduino -аас Mp3 файл тоглуулах: 6 алхам
Ярьж буй Ардуино | Ямар ч модульгүй Arduino ашиглан MP3 тоглуулах | PCM ашиглан Arduino -аас Mp3 файл тоглуулах: Энэхүү зааварчилгаанд бид ямар ч аудио модуль ашиглахгүйгээр mp3 файлыг arduino ашиглан хэрхэн тоглуулах талаар сурах болно, энд бид 8 кГц давтамжтай 16 битийн PCM тоглодог Arduino -д зориулсан PCM номын санг ашиглах болно
Flyback трансформатор эсвэл чанга яригч дээр ХОУХШ -ийг ашиглан ADC ашиглан Arduino -той дуу тоглуулах: 4 алхам
Flyback трансформатор эсвэл чанга яригч дээр PWM хийх ADC ашиглан Arduino -той хамт дуу тоглоорой: Сайн байна уу залуусаа, энэ бол миний зааж өгсөн хоёр дахь хэсэг юм (энэ нь маш хэцүү байсан), үндсэндээ энэ төсөлд би Arduino дээрх ADC болон TIMERS -ийг ашигласан. Аудио дохиог PWM дохио болгон хөрвүүлэх нь миний өмнөх зааварчилгаанаас хамаагүй хялбар юм
Дуу (MP3) Arduino -тай PWM ашиглан чанга яригч эсвэл Flyback трансформатор дээр тоглуулах: 6 алхам (зурагтай)
Arduino -ийн тусламжтайгаар PWM ашиглан чанга яригч эсвэл Flyback трансформатор тоглоорой: Сайн байна уу залуусаа, энэ бол миний анхны заавар бөгөөд танд таалагдсан гэж найдаж байна !! Үндсэндээ энэ төсөлд би Arduino болон зөөврийн компьютерынхаа хооронд цуваа холболтыг ашигласан. Хөгжмийн өгөгдлийг зөөврийн компьютерээс Arduino руу дамжуулах. Мөн Arduino TIMERS -ийг ашиглана уу
AI, YouTube ашиглан CD тоглуулагчгүйгээр CD тоглуулах: 10 алхам (зурагтай)
CD тоглуулагчгүйгээр хиймэл оюун ухаан, YouTube ашиглан CD тоглуулах: Та CD тоглуулахыг хүсч байна, гэхдээ CD тоглуулагч байхгүй байна уу? CD -ээ урах цаг байгаагүй юм уу? Тэдгээрийг хуулж авсан боловч шаардлагатай үед файлууд байхгүй байна уу? Асуудалгүй. AI (хиймэл оюун ухаан) таны CD -г танихыг зөвшөөрч, YouTube үүнийг тоглуулахыг зөвшөөрнө үү! Би андройд апп бичсэн
SmartPhone тоглоомын симулятор- Windows тоглоомыг дохио зангаа ашиглан IMU, акселерометр, гироскоп, соронз хэмжигч ашиглан тоглуулах: 5 алхам
SmartPhone Тоглоомын Симулятор- Дохио Хяналтын Удирдлага, Хурдатгал хэмжигч, Гироскоп, Соронзон хэмжигч ашиглан Windows тоглоом тоглуулах: Энэхүү төслийг дэмжих: https://www.paypal.me/vslcreations нээлттэй эх кодод хандив өгөх замаар & цаашдын хөгжлийг дэмжих