Страница 1 из 1

Вывод текста на VGA монитор

Добавлено: 14 фев 2018, 14:53
Fuji1604
Переделал на досуге, скетч для вывода текста на VGA монитор, принимает строки(string) или символы (char), через hardserial (UART RX0, скорость 9600) и выводит его на экран, 10 строк по 24 символа.
Строки отправлять через UART c другого МК , с ПК или любого другого устройства с UART, на скорости 9600.
Принимает только ЗАГЛАВНЫЕ буквы латиницы и кириллицы. принимает текст в ASCI кодировке, (байт 13-перевод строки, 27-очистка экрана, 127-DEL)

Для вывода на экран полностью используется одна ардуино, для всего остального нужен еще один МК.
По сути превращает ардуино в видеокарту. Тестировал на NANO328
Сделано на основе этой и этой статей.
ufont RUS.png
wire0.png
VGA_TEXT.ino
vgax-master.zip

Доработал скетч. Теперь если к началу отправляемой строки добавить char с номером строки (1,2....,9 или 10), то эта строка на экране очистится и текст будет выводится в ней. Длина строки не должна превышать 24 символа, иначе перенесется на следующую строку или очистит весь экран если перенос будет в 10 строке.
VGA_TEXT_STROKI.ino

Вывод текста на VGA монитор

Добавлено: 14 фев 2018, 22:36
Evgesha
Куда файлы то пропали ?

Вывод текста на VGA монитор

Добавлено: 15 фев 2018, 06:14
Fuji1604
перезалил

Вот еще похожее устройство, с более читабельными символами, но на микроконтроллере atmega16, поддерживает композитный вывод на тв и vga на монитор.

Вывод текста на VGA монитор

Добавлено: 15 фев 2018, 14:43
Anydy
[ref]Fuji1604[/ref], А где пользовательский блок? Тема то для размещения ПБ.
Вообще задумка интересная, проверю как работает вывод на монитор....
И еще нужно было указать что для вывода используется одна ардуино(328), для всего остального нужно еще один МК.

Вывод текста на VGA монитор

Добавлено: 15 фев 2018, 17:23
Fuji1604
Делал для этой темы http://forum.flprog.ru/viewtopic.php?f=67&t=2923, но сказали перенести в блоки. Можно и блок сделать, только думаю вопросов будет еще больше.

Вывод текста на VGA монитор

Добавлено: 15 фев 2018, 17:59
Anydy
[ref]Fuji1604[/ref], Если собираетесь делать блок - то перенесем тему в "разработка блоков"
Если разработали блок, то дополняйте первое сообщение.
Развивать дальше проект будете?

Вывод текста на VGA монитор

Добавлено: 15 фев 2018, 18:19
Fuji1604
Завтра сделаю блок

Вывод текста на VGA монитор

Добавлено: 15 фев 2018, 19:39
EldeR
Fuji1604 писал(а): 15 фев 2018, 17:23 Можно и блок сделать, только думаю вопросов будет еще больше.
Будет, и не мало. Скетчи во многих статьях есть, а вот в блок перевести очень нужно. Вывод информации не в две строки, и на VGA монитор, актуален в перспективе. С уважением.

Вывод текста на VGA монитор

Добавлено: 16 фев 2018, 01:29
seri0shka
Для использования в том виде как есть блок по сути не нужен- ардуино принимает через порт данные и выводит на экран, другой работы при этом не выполняя и используя все доступные резервы. То есть по сути в проекте может быть только блок вывода на экран и ничего более. Блоки отправки нужны для второго контроллера.
Но с использованием данной библиотеки открывается много возможностей. Жаль, что её автор пошёл по изначально неправильному пути (ИМХО), использовав двухбитный режим для отображения трёх цветов на экране. Тем самым сильно ограничил количество символов на экране (ограничение памяти контроллера). Применив чёрно-белое изображение, можно было бы увеличить количество строк на экране (и объём отображаемой информации), были у меня определённые успехи в этом направлении, но добиться желаемого не удалось, не хватает знаний и опыта. Если кто встречал другие библиотеки, поделитесь информацией. Или можно допилить существующую, у меня не получилось.

Вывод текста на VGA монитор

Добавлено: 16 фев 2018, 12:47
Fuji1604
Создать блок не получилось, пишет блок не корректен, блок не сохраняет. Причину так и не нашел. Может быть наши гуру с этим справятся.

Но доработал существующий скетч. Теперь если к началу отправляемой строки добавить char с номером строки (1,2....,9 или 10), то эта строка на экране очистится и текст будет выводится в ней. Длина строки не должна превышать 24 символа, иначе перенесется на следующую строку или очистит весь экран если перенос будет в 10 строке.

Тестируйте

Вывод текста на VGA монитор

Добавлено: 16 фев 2018, 13:28
EldeR
Fuji1604 писал(а): 16 фев 2018, 12:47Создать блок не получилось
Очень жалко. Хотелось бы посмотреть, хотя бы набросок блока.

Вывод текста на VGA монитор

Добавлено: 16 фев 2018, 14:05
Fuji1604
EldeR писал(а): 16 фев 2018, 13:28
Fuji1604 писал(а): 16 фев 2018, 12:47Создать блок не получилось
Очень жалко. Хотелось бы посмотреть, хотя бы набросок блока.
держите
VGA__TEXT_(CODE).ubi

Вывод текста на VGA монитор

Добавлено: 16 фев 2018, 16:38
EldeR
Fuji1604 писал(а): 16 фев 2018, 14:05держите
Спасибо [ref]Fuji1604[/ref], извините, но я не так представлял блок. Видимо думаю не в том направлении.

Вывод текста на VGA монитор

Добавлено: 17 фев 2018, 12:24
seri0shka
[ref]Fuji1604[/ref], в какой версии Arduino IDE проверяли? У меня скетчи при компилировании показывают 106% занятой памяти, соответственно кучу ошибок. Пользовательский блок вообще светится красным, о компиляции не может быть и речи. В то же время закидываю скетчи годовой давности под эту библиотеку, всё компилируется превосходно.

Вывод текста на VGA монитор

Добавлено: 17 фев 2018, 12:51
Fuji1604
Использовал ide 1.6.4

Вывод текста на VGA монитор

Добавлено: 19 фев 2018, 01:15
seri0shka
Да, действительно, в ide 1.6.4 компилируется нормально, а в ide 1.6.5 "не помещается", такой вот прогресс. С этой библиотекой я игрался год назад, мне не нравится шрифт (хотя лучше, чем ничего), и потребление ресурсов.
Вот здесь нормальная библиотека, шрифт 8х8 пикселей, вот только работает, к сожалению, лишь с ide 1.0. Кроме того, через serial ничего не передашь, так как для вывода на монитор используется пин 1. Раньше мне не удавалось скачать и проверить, вчера всё понаходил и проверил.
Здесь скетч и две библиотеки:
http://gammon.com.au/Arduino/VGA_output.zip
Здесь статья с подробнейшим описанием:
https://www.gammon.com.au/forum/?id=11608
Изображение

Отправлено спустя 6 минут 13 секунд:
По I2C можно отправлять, но это я ещё не умею )