roboforum.ru

Технический форум по робототехнике.


Вывод графики/текста на ЖК T191

Как собрать и запрограммировать робота на Arduino(Freeduino, Roboduino, Seeduino ...). Используем Wiring и Processing.

Вывод графики/текста на ЖК T191

Сообщение dccharacter » 20 май 2011, 23:10

Думал куда присунуть тему, решил сюда, пость и по чисто формальному признаку. Итак, есть ORduino nano....

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

Так вот - как готовить для него страницу? Я смотрю на библиотеки для графических LCD под ардуино и вижу, что там реализованы примитивы (окружность, прямоугольник простой/закрашенный) и знакогенераторы. Мне понятно только как на этом ЛЦД сделать вывод текста, например 5х8 или 6х8, но как выводить графику или текст, скажем, 9х12 - неясно :-((( Подскажите?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Вывод графики/текста на ЖК T191

Сообщение =DeaD= » 20 май 2011, 23:19

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

Re: Вывод графики/текста на ЖК T191

Сообщение dccharacter » 20 май 2011, 23:23

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

Re: Вывод графики/текста на ЖК T191

Сообщение =DeaD= » 20 май 2011, 23:28

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

Re: Вывод графики/текста на ЖК T191

Сообщение HarryStar » 20 май 2011, 23:29

с помощью логики и побитовых операций
например вам надо вывести символ 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) если сверху вниз
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Вывод графики/текста на ЖК T191

Сообщение dccharacter » 20 май 2011, 23:38

Ну да, я первое имел ввиду. Но, похоже, я понял. Или не понял - пробовать надо.

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

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

Re: Вывод графики/текста на ЖК T191

Сообщение HarryStar » 20 май 2011, 23:58

2 буфера не надо.
1 более чем достаточно. Если экран у вас 64х98 пикселей, то занимать он будет 784 байта.
Начните с 2х функций:
set_pixel(x, y, color)
и
display_buffer()

соотв сначала формируете точками картинку в буфере, потом выводите буффер на экран
когда их сделаете можно сделать примитивы, а потом переходить к нужным шрифтам.
Аватара пользователя
HarryStar
 
Сообщения: 995
Зарегистрирован: 15 ноя 2010, 13:56
Откуда: Нижний Новгород
прог. языки: С, С++, РНР

Re: Вывод графики/текста на ЖК T191

Сообщение dccharacter » 21 май 2011, 03:53

Круто, линии и окружности рисует... Мусор только какой-то на экране появляется в небольших количествах - и что-то пока не пойму - кто мусорит :-)))

Все, шумы поборол... Странно немножко у этого дисплея с пикселами. Реально видно 96 в строку, но если делать заливку - надо 102 пикселя писать, иначе поедет все. Ну, методом научного тыка нашел золотую середину.
Вложения
фотография1.jpg
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Вывод графики/текста на ЖК T191

Сообщение big-vl » 20 май 2014, 17:02

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


Вернуться в Arduino и другие Xduino

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

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