Компания DWIN постоянно совершенствует и дополняет свои продукты, так недавно были выпущены камеры основанные на подключении камеры OV2640 к контроллеру T5L0 и имеющими на выходе FSK интерфейс. Камеры выполнены в двух исполнениях, с обычной матрицей (FDV200-1) и инфракрасной (FDV200-2). Также для подключения камер была выпущена широкая линейка наименований дисплеев с диагоналями от 4.3 до 21.5 дюймов.
Прошлые статьи:
DWIN. Подготовка дисплея к работе и загрузка демо-проекта
DWIN. Знакомство с программным обеспечением DWIN Graphic Utilized Software. Hello World
DWIN. Связываем STM32 Nucleo и дисплей.
DWIN. Элемент Real-Time Curves, чертим графики.
DWIN DGUS. Элемент Artistic Variables. Отображаем цифры иконками.
DWIN DGUS. Страница защищённая паролем. Пакетное считывание и запись. Интерфейс RS485
Дисплей
Для реализации проекта будет использован дисплей DMG10600T070_26WTC. Рассмотрим характеристики дисплея:
Диапазон рабочих напряжений: 6В - 36В.
Потребляемый ток: 110-260мА.
Разрешение: 1024х600.
Тип матрицы: IPS 16.7M цветов.
Тип сенсорной панели: Емкостная.
Яркость подсветки: 250нит.
Flash память: 16 Мб.
Встроенный RTC.
Ресурс подсветки - 30000 часов.
Интерфейсы: UART2 ,UART4
К дисплею будет подключена камера FDV200-1.
Проект
Первым пунктом необходимо загрузить последнюю версию программного обеспечения DGUS, которое можно скачать с официального сайта.
Создаём проект, выбираем разрешение 1024х600, далее размещаем окно которое будет отображать изображение с камеры. Для этого выбираем вкладу "ICON Display" и добавляем элемент "Icon Overlay". Выбираем разрешение 640х480.
Заводское разрешение по умолчанию — 640×480 (настройка разрешения камеры: горизонтальное разрешение и вертикальное разрешение камеры должны быть кратны 4).
Далее необходимо выбрать адрес VP, выставляем адрес 0x4000. Данный адрес будет означать адрес первого пикселя. Вычислим занимаемую память:
640 * 480 / 8192 = 37.5 KB, округлим до 40 KB.
Далее необходимо рассчитать с какого адреса можно использовать адреса для остальных элементов которые могут быть использованы в проекте:
40 * 1024 / 2 = 20480, в шестнадцатеричной форме число 20480 равно 0x5000. Это означает, что с адреса 0x9000 (0x4000 + 0x5000) можно использовать память для остальных элементов.
Чтобы запустить камеру необходимо подать две команды.
Первая команда необходима для настройки шины. Для этого необходимо записать настройки в память 0x0100.
Например настроить можно с помощью команды 5A A5 07 82 01 00 A5 04 50 00.
Вторая командой для запуска камеры станет настройка по адресу 0x0120.
5A A5 0D 82 01 20 80 20 00
80 : Устройство № 0 включено (.7 = 1 устройство включено, .7 = 0 устройство выключено; .6-.5 зарезервировано, устанавливается в 0; .4 -.0 Backup ID, в диапазоне 0x00-0x1E )
20 00: адрес первой ячейки памяти для отображения изображения с камеры разделенный на 2. Адрес 0x4000/2=0x4000.
Для изменения параметров отображения можно использовать расширенную команду:
5A A5 0D 82 01 20 80 20 00 02 51 80 02 80 01 E0
Значение: 01 20: Переменный адрес интерфейса, определенный DGUS.
80 : Устройство № 0 включено (.7 = 1 устройство включено, .7 = 0 устройство выключено; .6-.5 зарезервировано, устанавливается в 0; .4 -.0 Backup ID, в диапазоне 0x00-0x1E )
20 00: Адрес двойного слова для хранения данных (Примечание: 0x2000 — это адрес слова, соответствующий адресу двойного слова 0x4000. Вычисляется: 0x4000 / 2 = 0x2000).
02 : Передача только 2 двойных слов
5F: команда настройки камеры
80 : Зеркальное отображение слева и справа
02 80 : Горизонтальное разрешение камеры 0x0280 = 640
01 E0 : Вертикальное разрешение камеры 0x01E0 = 480
Используем два варианта включения камеры. Первый это команды через асинхронный порт. Второй с помощью элемента Synchrodata Return.
Адреса с 0x1000 по 0x3FFF свободны, запишем команды по адресам 0x2000 и 0x2010. При нажатии на кнопку с адреса 0x2000 будет записано 4 байта в память по адресу 0x0100, при отпускании произведется запись с адреса 0x2010 по адресу 0x0120, тем самым будет отправлено две команды на запуск камеры.
Сгенерируем проект и изменим файл 22.bin, добавим команды по адресам 0x2000 и 0x2010. Так как память 16 бит, а редактор отображает адреса по 8 бит, то адрес в редакторе будет в два раза больше, т.е. 0x4000 и 0x4020 соответственно. запишем A5 04 50 00 и 80 20 00 соответственно.
Далее загружаем файлы проекта на дисплей и проверяем работу.
На следующем изображении видно камеру и изображение которое она должна транслировать на дисплей.
Для отображения видео нажимаем на камеру в правом верхнем углу дисплея, команды записываются и изображение появляется.
Отправить команды с асинхронного порта можно с помощью новой функции DGUS - DEBUG. Для этого выберем необходимую вкладку и нажимаем на иноку DEBUG.
В открывшемся окне выбираем вкладку Custom, добавляем необходимые команды описанные ранее, подключаем Serial Port и отправляем команды в дисплей. Результат будет идентичный, поток видео с камеры будет запущен.
Видео демонстрация проделанной работы:
Заключение
В данной статье разобрано подключение FSK камеры к дисплею и формирование проекта способного отобразить изображение с камеры.
Ссылка на GitHub: https://github.com/VB-Radchenko/Lesson-11-FSK-Camera
Компания DWIN предоставляет бесплатные образцы для юридических лиц. Для получения образцов, оптовых закупок, персональных скидок, технической поддержки и общим вопросам обращайтесь:
Email: Info_dwin@mail.ru
VK: https://vk.com/radchenko_vb
Telegram: https://t.me/Radchenko_VB
Сообщество VK https://vk.com/public208909284
Скидочный купон на 5$ для официального магазина AliExpress - DWVLPRO