Уже много лет можно использовать I2S для вывода видео на чипах ESP8266 и ESP32, но композитная видеотека ESP32 от aquaticus может упростить задачу вывода видеосигналов PAL, NTSC или SECAM с любых платформ ESP32 на основе Tensilica.
Библиотеке не требуется никакого внешнего оборудования, и вы можете просто подключить разъем RCA к GPIO25 (данные I2S) и GND, а интеграция с библиотекой LVGL упрощает создание графических пользовательских интерфейсов, как показано на снимках ниже.
Библиотека поддерживает вывод видео в градациях серого (на данном этапе без цвета), несколько разрешений от 384×288 до 720×288 с частотой до 25 или 30 Гц, шесть различных пиксельных часов для PAL/SECAM и NTSC, а также шесть форматов кадрового буфера, а именно RGB565, RGB332, серый 8 бит/пиксель, серый 4 бит/пиксель, монохромный 1 бит/пиксель и монохромный LVGL 1 байт/пиксель.
На Github вы найдете исходный код библиотеки видеокомпозитов ESP32, выпущенной под лицензией GPL v3, вместе с инструкциями по началу работы и документацией по API. Образец «hello world» отображает образец Philips PM5544 с разрешением PAL 384×288 или разрешением NTSC 320×240:
1 2 3 4 5 6 |
#include "video.h" void app_main(void) { video_test_pal(VIDEO_TEST_PM5544); } |
Приведенный выше пример предназначен для PAL/SECAM, вместо этого просто используйте функцию video_test_ntsc для вывода NTSC.
Для этого требуется инфраструктура ESP32-IDF (версия 4.4, используемая для тестирования) с-O2
CFLAGS и, необязательно, графическая библиотека LVGL (тестируется версия 8.3). Похоже, что библиотека была протестирована на одной из мини-плат Wemos D1. Некоторые из приложений, перечисленных в библиотеке, включают информационно-развлекательные системы, эмуляторы, игровые приставки с 8-битным стилем и видеодиагностику.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.