Вывод информации на экран с аналоговым видео или minimOSD и как его использовать по своему хотению.

Понадобилось для нескольких проектов накладывать на аналоговое видео информацию в виде текста или простой графики.

Известны проекты генерации видео основанные на Arduino или ESP32. В основном они только генерируют свое видео, а не накладывают на имеющееся. Там требуется считывание сигналов синхронизации кадровой развертки, но даже при этом невозможно по желанию отключить видеопоток и оставить только информацию на экране.

Мне же нужно именно наложить информацию на видео и иметь возможность отключить или видео или информацию.

Решение не новое, широко применяется в экранных меню старых телевизоров, аналоговых видеокамер и мониторов, но наиболее известное применение — телеметрия беспилотных летательных и «катательных» аппаратов. называется эта технология OSD.

OSD (на англ. On-Screen Display) – это экранное меню настроек устройства, показываемое поверх основного изображения, выводимого с видеокамеры на монитор.

Покопавшись в море информации Интернета, нашел несколько готовых реализаций в основном реализованных на микросхеме MAX7456 чаще в связке с Atmega328.

minimOSD

Основные возможности:

  • вывод 256 символов, загруженных в память MAX7456;
  • мигание символами;
  • инверсия цвета символов;
  • прозрачность части знакоместа незанятого символом;
  • включение и отключение вывода информации;
  • включение и выключение фонового видео;
  • имеются несколько библиотек под Arduino для управления;
  • имеется программа создания и загрузки символов в MAX7456.

Из недостатков:

  • схема привередлива к видеосигналу. Попалась видеокамера, при работе с которой видеоизображение было хорошим, а OSD пропадало. Иногда появлялось при закрытии объектива камеры. Возможно уровень белого сбивает синхронизацию;
  • три найденных мной библиотеки не умеют выводить русский шрифт, в них нет возможности выводить информацию с выравниванием по центру или по краю;
  • вывод текста жрет много памяти, поэтому целесообразно вместо Mega328 применить ESP32 (например).

После реверса библиотек и примеров кода, были написаны дополнительные функции и немного изменена одна из библиотек. Ниже результат.

Телеметрия для управления колесным транспортом OSD
Русский текст OSD

Общее впечатление положительное. В рамках 256 символов, которые можно запрограммировать самостоятельно и небольшом количестве знакомест вполне можно организовать интересный симбиоз аналогового видео и компьтерных технологий.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *