roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 05:06

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Вывод графики/текста на ЖК T191
СообщениеДобавлено: 20 май 2011, 23:10 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Думал куда присунуть тему, решил сюда, пость и по чисто формальному признаку. Итак, есть ORduino nano....

А теперь собственно к сути вопроса:
ЖК от Motorola T191. Вывод у него устроен так - строками из столбцов. Т.е. устанавливаем курсор в нужную позицию, посылаем на ЖК байт, этот байт отрисовывается вертикально снизу вверх (8 пикселей), потом курсор смещается вправо. 64 столбца отрисовали - переход на новую строку. И т.д.

Так вот - как готовить для него страницу? Я смотрю на библиотеки для графических LCD под ардуино и вижу, что там реализованы примитивы (окружность, прямоугольник простой/закрашенный) и знакогенераторы. Мне понятно только как на этом ЛЦД сделать вывод текста, например 5х8 или 6х8, но как выводить графику или текст, скажем, 9х12 - неясно :-((( Подскажите?

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод графики/текста на ЖК T191
СообщениеДобавлено: 20 май 2011, 23:19 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
98x64/8=784 байта в принципе даже влезет в 1Кб оперативки наны. Сделайте буфер и с ним работайте, а в чем вопрос?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод графики/текста на ЖК T191
СообщениеДобавлено: 20 май 2011, 23:23 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Как его организовать-то? Как массив байт, ок. Как вывести на экран окружность?

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод графики/текста на ЖК T191
СообщениеДобавлено: 20 май 2011, 23:28 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
В смысле непонятно как найти в буфере байт и бит соотв. нужным координатам или что?
Или как вообще эффективно рисовать окружности и линии? Для этого есть алгоритмы Брезенхема: [[:ru:Алгоритм Брезенхэма]]

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод графики/текста на ЖК T191
СообщениеДобавлено: 20 май 2011, 23:29 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
с помощью логики и побитовых операций
например вам надо вывести символ 9х12 по координатам 10, 10
1) вычисляем первый байт который нужно красить. это будет 10-й байт во второй строке
2) вычисляем с какого бита сверху нужно начинать рисовать. в нашем случае с 3-го сверху
3) читаем байт с экрана
4) нижние 6 бит в 10-м байте 2й строки заполняем нужными нам значениями
5) делаем тоже самое для остальных 8-ми байт 2й строки
6) переходим на 10й байт 3-й строки
7) вычисляем какие биты нужно изменять. В нашем случае верхние 6.
8) читаем байт
9) заполняем в нем верхние 6 бит нужными нам значениями
10) повторяем для остальных 8-ми байт

вот и все. Для понимания разлинуйте листок в клеточку вертикальными группами по 8, пронумеровав строки и столбцы. Сделайте листочек с дыркой размером 9х12 клеток и подвигайте его произвольно по разлинованной бумаге.

Для окружности и др. произвольных фигур напишите функцию точки set_pixel(x,y,color)
которая похожим на описанный выше способ изменяет побитово нужные точки. А дальше с помощью этой функции можете сделать все что угодно.

Номер нужного байта для данной функции = y/8 + x
Номер изменяемого бита = остаток от деления y/8 в случает ориентации битов сверху вниз и (7 - остаток y/8) если сверху вниз


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод графики/текста на ЖК T191
СообщениеДобавлено: 20 май 2011, 23:38 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Ну да, я первое имел ввиду. Но, похоже, я понял. Или не понял - пробовать надо.

Два буффера-то не влезут. Либо делать массив 64х98 пикселей, там колбаситься - рисовать, стирать и т.д., а потом причудливо выводить его на экран...

Update: HarryStar, кажется ясно, спасибо
Dead, не меньшее спасибо

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод графики/текста на ЖК T191
СообщениеДобавлено: 20 май 2011, 23:58 
Не в сети
Аватара пользователя

Зарегистрирован: 15 ноя 2010, 13:56
Сообщения: 995
Откуда: Нижний Новгород
прог. языки: С, С++, РНР
2 буфера не надо.
1 более чем достаточно. Если экран у вас 64х98 пикселей, то занимать он будет 784 байта.
Начните с 2х функций:
set_pixel(x, y, color)
и
display_buffer()

соотв сначала формируете точками картинку в буфере, потом выводите буффер на экран
когда их сделаете можно сделать примитивы, а потом переходить к нужным шрифтам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод графики/текста на ЖК T191
СообщениеДобавлено: 21 май 2011, 03:53 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Круто, линии и окружности рисует... Мусор только какой-то на экране появляется в небольших количествах - и что-то пока не пойму - кто мусорит :-)))

Все, шумы поборол... Странно немножко у этого дисплея с пикселами. Реально видно 96 в строку, но если делать заливку - надо 102 пикселя писать, иначе поедет все. Ну, методом научного тыка нашел золотую середину.


Вложения:
фотография1.jpg
фотография1.jpg [ 145.71 КиБ | Просмотров: 2414 ]

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вывод графики/текста на ЖК T191
СообщениеДобавлено: 20 май 2014, 17:02 
Не в сети

Зарегистрирован: 20 май 2014, 16:59
Сообщения: 2
Прошу прощения за поднятия столь старую тему, но как вам удалось проинициализировать дисплей, у меня Arduino mega, никак не могу его стартануть. Подскажите.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO