2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51
ESP32 менен видеону ойнотуу
Бул Instructables ESP32 менен видео жана аудио ойнотуу жөнүндө бир нерсени көрсөтөт.
1 -кадам: ESP32 өзгөчөлүктөрү жана чектөөлөрү
Өзгөчөлүктөрү
4 SPI автобус, 2 SPI автобус колдонуучу мейкиндиги үчүн жеткиликтүү, алар SPI2 жана SPI3 же HSPI жана VSPI деп аталат. Эки SPI автобусу эң көп 80 МГц чуркай алат. Теориялык жактан алганда, ал 320x240 16-бит түстүү пикселдерди SPI ЖКга 60 кадр / сек ылдамдыкта түртүп кое алат, бирок ал видео маалыматтарын окуу жана декоддоо үчүн керектүү болгон убакытты эсептей элек.
1-бит / 4-бит SD автобус SD протоколдо туташа алат
I2S ички DAC аудио чыгаруу
видео жана аудио буфер үчүн жеткиликтүү 100 КБдан ашык RAM
JPEG (Motion JPEGти ойнотуу) жана LZW маалыматын кысуу (анимацияланган GIFти ойнотуу) үчүн жетиштүү иштетүү күчү
Эки ядролук версия SD картадан окулган маалыматты бөлүп, декоддоп жана SPI ЖКга параллелдүү көп тапшырмаларга түртө алат жана ойнотуунун аткарылышын жогорулатат.
Чектөөлөр
16-бит түстүү 320x240 үчүн эки кадрдык буферге ээ болуу үчүн ички оперативдүү RAM жетишсиз, ал көп функциялуу дизайнды чектеген. Бул тышкы PSRAM менен бир аз жеңе алат, бирок ал ички RAMга караганда жайыраак
mp4 видеонун кодун чечүү үчүн иштетүү күчү жетишсиз
бардык ESP32 версиясында 2 ядро жок, көп тапшырмалуу үлгү эки ядролук версияда гана пайда алып келет
Шилтеме:
2 -кадам: Видео форматы
RGB565
Же 16-бит түс деп аталат, бул MCU менен түстүү дисплейдин ортосундагы байланышта кеңири колдонулат. Ар бир түстүү пиксель 16-бит мааниси менен көрсөтүлөт, биринчи 5-бит кызыл, 6-биттен кийин жашыл, андан кийин 5-бит көк мааниге ээ. 16-бит мааниси 65536 түстү өзгөртө алат, ошондуктан аны 64K түстөр деп да аташат. Ошентип, 1 мүнөт 320x240@30 кадр / сек видео көлөмү болот: 16 * 320 * 240 * 30 * 60 = 2211840000 бит = 276480000 байт же 260 МБ
Анимацияланган GIF
Бул 1990 -жылдан бери интернетте таралган файл форматы. Ал 256 түскө чейин ар бир экрандын түсүнүн өзгөрүшүн чектейт жана пикселди мурунку кадрдагыдай түстө сактабайт. Ошентип, ал файлдын көлөмүн бир топ кыскартат, айрыкча, ар бир анимация кадры өтө майда -чүйдөсүнө чейин өзгөрбөйт. LZW кысуу 1990 -жылдардын компьютери аркылуу декоддолгон жөндөмдүү болуп иштелип чыккан, ошондуктан ESP32 реалдуу убакытта аны чечмелөө үчүн жетиштүү кайра иштетүүчү күчкө ээ.
Motion 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 Мбдан ашат
MP3
MPEG Layer 3 - 1990 -жылдардан бери ырды кысуу үчүн кеңири колдонулган кысылган аудио формат. Ал кескин түрдө PCM форматынын ондон бир бөлүгүнө чейин файлдын көлөмүн азайта алат
Шилтеме:
en.wikipedia.org/wiki/Pulse-code_modulatio…
en.wikipedia.org/wiki/MP3
4 -кадам: Формат Конверсиясы
Бул долбоор FFmpegтин жардамы менен видеону ESP32 окула турган форматка айландырат.
Сураныч, азырынча FFmpegти расмий сайтына жүктөп алып, орнотуңуз:
FFmpeg анимацияланган GIFти кээ бир веб -куралдар аркылуу оптималдаштырса болот, сиз аны табуу үчүн-g.webp" />
5 -кадам: Аппараттык даярдоо
Аппараттык даярдоо
ESP32 Dev Board
Бардык эки ядролуу ESP32 иштеп чыгуучу тактасы жакшы болушу керек, бул жолу мен TTGO ESP32-Micro колдонуп жатам.
Түстүү дисплей
Arduino_GFX колдогон ар кандай түстүү дисплей жакшы болушу керек, бул жолу мен SDI картанын уячасы бар ILI9225 тактасын колдонуп жатам.
Сиз Githubдан Arduino_GFX колдоого алынган түстүү дисплей тизмесин таба аласыз:
github.com/moononournation/Arduino_GFX
SD карта
Бардык SD карта жакшы болушу керек, бул жолу мен SD адаптери бар SanDisk "кадимки ылдамдыкта" 8 ГБ микро SD колдонуп жатам.
Аудио
Эгерде сиз гарнитураны гана колдонууну кааласаңыз, гарнитура төөнөгүчтөрүн 26 -пинге туташтырыңыз жана GND аудиону уга алат. Же кичинекей күчөткүчтү колдонуп, аудио менен динамикти ойното аласыз.
Башкалар
Кээ бир столдор жана нан зымдары
6 -кадам: SD интерфейси
SD интерфейсиSD интерфейси
ILI9225 LCD сындыруучу тактасына SD crd слотунун үзүлүү казыктары да кирген. Бул SPI шинасы же 1-бит SD шинасы катары колдонулушу мүмкүн. Мурунку көрсөтмөлөрүмдө айтылгандай, мен 1-бит SD автобусун колдонууну артык көрөм, андыктан бул долбоор 1-бит SD шинасына негизделет.
7 -кадам: Аны бирге кой
Аны бирге койАны бирге койАны бирге кой
Жогорудагы сүрөттөр бул долбоордо колдонгон тестирлөө платформасын көрсөтөт. Ак нан 3 өлчөмдүү басылган, аны каалаган жерден жүктөп жана басып чыгара аласыз:
Чыныгы байланыш сиздин колуңузда болгон жабдуулардан көз каранды.
Arduino IDEде SDMMC_MJPEG_video_PCM_audio_dualSPI_multitask.ino ачуу
Эгерде сиз ILI9225 колдонбосоңуз, класстын атын оңдоо үчүн жаңы класс кодун (35 -саптын тегерегинде) өзгөртүңүз
Arduino IDE "Жүктөө" баскычын басыңыз
Эгерде сиз программаны жүктөй албасаңыз, ESP32 GPIO 2 менен SD D0/MISO ортосундагы байланышты үзүп көрүңүз.
Эгер ориентация туура эмес деп тапсаңыз, жаңы класстын кодундагы "айлануу" маанисин (0-3) өзгөртүңүз
Эгерде программа жакшы иштесе, SDMMC_ менен башталган башка үлгүнү колдонуп көрсөңүз болот*
Эгерде сизде SD картанын уячасы жок болсо же сизде FFmpeg орнотулбаса, дагы эле SPIFFS_* мисалын колдонуп көрсөңүз болот
9 -кадам: Бенчмарк
Benchmark
Бул жерде ар кандай видео (220x176) жана аудио (44100 МГц) форматындагы аткаруу резюмеси:
Формат
Секундуна кадр (секундасына)
MJPEG + PCM
30
15
RGB565 + PCM
9
MJPEG + MP3
24
Эскертүү:
MJPEG + PCM жогорку ылдамдыкка жете алат, бирок кичинекей экранда 30 кадрдан ашпашы керек
RGB565 декоддоо процессин талап кылбайт, бирок маалыматтын өлчөмү өтө чоң жана SD, 4-биттик SD автобусу жана тезирээк SD картадан маалыматтарды жүктөөдө бир аз жакшырта алат (жапайы божомол 12 кадрдын тегерегине жетиши мүмкүн)
MP3 декоддоо процесси азырынча оптималдаштырыла элек, ал азыр MP3 декоддоо үчүн 0 жана видеону ойнотуу үчүн ядро 1ге арналат
10 -кадам: бактылуу ойноо
Бактылуу Ойноңуз!
Эми сиз ESP32 менен видео жана аудио ойной аласыз, бул көптөгөн мүмкүнчүлүктөрдү ачты!
Кийинчерээк кичинекей винтаждык телевизор жасайм деп ойлойм …
Talking Arduino | Ардуино менен MP3 ойнотуу модулу жок | PC файлын колдонуу менен Arduinoдон Mp3 файлын ойнотуу: Бул көрсөтмөлөрдө биз ардуино менен mp3 файлды эч кандай аудио модулду колдонбостон ойнотууну үйрөнөбүз, бул жерде биз 8 кГц жыштыктагы 16 бит PCM ойногон Arduino үчүн PCM китепканасын колдонобуз
CD ойноткучсуз, AIди жана YouTubeду колдонуу менен CD ойнотуңуз: CDлериңизди ойноткуңуз келет, бирок CD ойноткучуңуз жокпу? Дисктериңизди жыртканга убактыңыз болгон жокпу? Аларды айрып салышты, бирок файлдар керек болгондо жеткиликсизби? Эч кандай көйгөй жок. AI (жасалма интеллект) CDиңизди аныктап, YouTube аны ойнотсун! Мен Android тиркемесин жаздым
Ырларды Step Motor колдонуп ойнотуңуз !!: Бул проект степпердик мотор менен эки башка жол менен иштешүүгө мүмкүндүк бере турган жөнөкөй динамикалык интерфейсти долбоорлоо жөнүндө. Биринчи интерфейс stepper моторунун багытын жана ылдамдыгын көзөмөлдөйт. жөнөкөй GUI, ал
Төрт кадам менен экрандуу видеону кантип жасаса болот: Биз көбүнчө бир эле кишинин сахнада эки жолу телеберүүдө көрсөтүүсүн көрөбүз. А биз билгенден актёрдун эгиз бир тууганы жок. Ырчылык чеберчиликтерин салыштыруу үчүн бир экранда эки ыр ырдалганын да көрдүк. Бул бөлүүнүн күчү
Raspberry Pi менен ойнотуу жаздыргычы: Саламатсыздарбы, бул көрсөтмөдө мен Raspberry Pi аркылуу кантип ойнотуу жаздыргыч жасаганын түшүндүрөм. Бул түзмөк B+Raspberry Pi модели, үстүндө 7 баскыч, Pi'дин USB портторунун бирине туташкан динамик жана башка микрофонго туташкан