OLED дисплей 128х64 SPI - пользовательский блок на Си
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
Вот выродил наконец более вменяемый блок для ОЛЭД дисплея.
Получился громоздкий по входам но функционалу неплохо получилось.
Умеет рисовать точку, линию, прямоугольник, залитый прямоугольник, круг, заполненый круг, прямоуг. с закруленными углами, то же заполненный, треугольник заполненный/прозрачный, выводить текст.
Не знаю как лучше. Все в одном (т.е. все команды дисплея в одном блок) или каждую команду отдельным блоком??? Посоветуйте кто как думает.
Или может наверное лучше на каждую функцию отдельный блок?
Блок 1
Блок 2
Получился громоздкий по входам но функционалу неплохо получилось.
Умеет рисовать точку, линию, прямоугольник, залитый прямоугольник, круг, заполненый круг, прямоуг. с закруленными углами, то же заполненный, треугольник заполненный/прозрачный, выводить текст.
Не знаю как лучше. Все в одном (т.е. все команды дисплея в одном блок) или каждую команду отдельным блоком??? Посоветуйте кто как думает.
Или может наверное лучше на каждую функцию отдельный блок?
Блок 1
Блок 2
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
Проблема еще с компилятором.
При возникновении таких ошибок в 1. случае надо дописать идентификатор блока, а во втором убрать задвоенный. Эти несколько ошибок пока править надо вручную. От куда берутся не знаю, автору сообщил. Пока так. Если все ошибки исправить, то компелируется нормально.
При возникновении таких ошибок в 1. случае надо дописать идентификатор блока, а во втором убрать задвоенный. Эти несколько ошибок пока править надо вручную. От куда берутся не знаю, автору сообщил. Пока так. Если все ошибки исправить, то компелируется нормально.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
OLED дисплей 128х64 SPI - пользовательский блок на Си
С задвоением я тоже встречался, как понял он может возникать если есть два похожих названия отличающихся на подчёркивание:Сергей писал(а):в 1. случае надо дописать идентификатор блока, а во втором убрать задвоенный. Эти несколько ошибок пока править надо вручную. От куда берутся не знаю, автору сообщил. Пока так. Если все ошибки исправить, то компелируется нормально.
у вас похоже одновременно есть
text и En_text и x_text и y_text
чтобы пропало нужно убрать, назвать их скажем так
text1 и En_text x_text и y_text
Первая ошибка тоже наверное из-за знака "_" , попробуй
ClearLcd вместо Clear_lcd
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
Слимпер, да все верно, это изза подчеркивания.
Блоки заменил по ссылкам в 1м сообщении. Теперь все компилируется.
Блоки заменил по ссылкам в 1м сообщении. Теперь все компилируется.
OLED дисплей 128х64 SPI - пользовательский блок на Си
Сергей, спасибо за блоки. Действительно они получились громоздкими. Если вас интересует моё мнение, то лучше сделать каждую команду отдельным блоком, ведь наверное не все команды можно будет задействовать, а по необходимости.
OLED дисплей 128х64 SPI - пользовательский блок на Си
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Skull 01 фев 2016, 01:19, всего редактировалось 1 раз.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
krom23, да, скорее всего надо будет делать отдельно маленькими. А то памяти много занимает.
Опыты продолжаются. Сейчас набрасываю аналоговые часы. Для примера. Что бы понять на сколько полезный и удобный блок. Пришлось тригонометрию вспоминать
. Но результаты есть. Сейчас видео выложу, а как доделаю то и проект.
[video]http://www.youtube.com/watch?v=vG1dnBArPZI[/video]
Короче что бы прорисовывать стрелку, известны только начальные координаты линии и угол (6 град или 0,101 рад) на который поворачивается линия каждую секунду. Через синус и косинус определяем ее конечние координаты X и Y. Прибавляем или отнимаем от центральных координат радиус умноженный на полученный результат.... получаем меняющиеся координаты линии...
Блоки разобью уже завтра на маленькие. Продумаю как это будет. Надо не только рисовать, а еще и очищать дисплей, стирать отдельные области. И я не представляю как оно должно выглядеть. К примеру, каждая фигура это отдельный блок, то есть и стирание отдельными. А инициализацию и запуск дисплея? Они же будут дублироваться в каждом блоке. Или делать отдельно блок инициализации ЛСД?. Не пойму пока как лучше.
Опыты продолжаются. Сейчас набрасываю аналоговые часы. Для примера. Что бы понять на сколько полезный и удобный блок. Пришлось тригонометрию вспоминать

[video]http://www.youtube.com/watch?v=vG1dnBArPZI[/video]
Короче что бы прорисовывать стрелку, известны только начальные координаты линии и угол (6 град или 0,101 рад) на который поворачивается линия каждую секунду. Через синус и косинус определяем ее конечние координаты X и Y. Прибавляем или отнимаем от центральных координат радиус умноженный на полученный результат.... получаем меняющиеся координаты линии...
Блоки разобью уже завтра на маленькие. Продумаю как это будет. Надо не только рисовать, а еще и очищать дисплей, стирать отдельные области. И я не представляю как оно должно выглядеть. К примеру, каждая фигура это отдельный блок, то есть и стирание отдельными. А инициализацию и запуск дисплея? Они же будут дублироваться в каждом блоке. Или делать отдельно блок инициализации ЛСД?. Не пойму пока как лучше.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
Skull, позже. Сначала блок до ума доведу.
Вообще круто что теперь есть возможность Си вставлять.
Спасибо автору!!! Я ведь раньше Си знал только в общих чертах. А теперь, спустя неделю уже блоки делаю, о чем раньше только мечтал и ждал пока кто то сделает.
Вообще круто что теперь есть возможность Си вставлять.
Спасибо автору!!! Я ведь раньше Си знал только в общих чертах. А теперь, спустя неделю уже блоки делаю, о чем раньше только мечтал и ждал пока кто то сделает.
-
- Лейтенант
- Сообщения: 537
- Зарегистрирован: 29 окт 2015, 09:57
- Откуда: Kazakhstan
- Имя: Evgesha
OLED дисплей 128х64 SPI - пользовательский блок на Си
Сергей немогли бы выложить библиотеку, у меня ошибки при компиляции, то glcdfont ненаходит то еще ....
спасибо
спасибо
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
Evgesha, там же их две надо!
Дисплей покупал здесь - 9,44$ но не советую. Дорого и SPI.
Вот тут в разы дешевле и вроде I2C
Дисплей покупал здесь - 9,44$ но не советую. Дорого и SPI.
Вот тут в разы дешевле и вроде I2C
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Подполковник
- Сообщения: 1202
- Зарегистрирован: 14 фев 2016, 14:16
- Откуда: kazahstan
- Благодарил (а): 32 раза
- Поблагодарили: 6 раз
OLED дисплей 128х64 SPI - пользовательский блок на Си
Можете выложить пример, вывод температуры или просто слово, не пойму как блоком пользоваться .
OLED дисплей 128х64 SPI - пользовательский блок на Си
Как подключить I2C? И желательно пример работы блока.
Последний раз редактировалось robocraft 09 дек 2016, 13:05, всего редактировалось 1 раз.
☃ Loading... ██████████████] 99%
- hrach
- Сержант
- Сообщения: 258
- Зарегистрирован: 17 сен 2015, 11:05
- Откуда: Самара
- Имя: Грачик
- Поблагодарили: 1 раз
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
Пример подключение.robocraft писал(а):Как подключить I2C? И желательно пример работы блока.
_uVideoPlayer({'url':'https://www.youtube.com/watch?v=sNl_4Co ... 13EG1CfjUj');
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
Доделываю проект с дисплеем, выложу потом проект и видео работы. Переделал переносной обогреватель электролюкс. Там электроника сдохла.robocraft писал(а):Как подключить I2C? И желательно пример работы блока
как раз и вывод температуры есть.vovka1973 писал(а):Можете выложить пример, вывод температуры
Блоки, те что раньше выкладывал не очень пригодны, т. к. просто выводят текст и т. д. А при работе в реальном проекте необходимо менять содержимое экрана, при чем не одновременно, а выбранные объекты. При добавлении текста, новый текст накладывается на старый. А при использовании функции очистки дисплея, он постоянно моргает, обновляется... Не очень приятно смотреть. Переделал блоки вывода текста так, что бы при установки En, поданный на вход текст выводился. При изменении текста обновляется сам текст, а не весь экран. Сделал это таким способом: если En=1, при изменении текста, сначала выводится старая строка только черным шрифтом (таким образом старый текст просто убирается), а после этого сразу выводится новый текст.
Блоки в проекте потом выложу. Еще надо доработать блок чтобы текст корректно обновлялся при изменении координат начала строки на входе блока. Но это через недельку (работы на работе много).
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
Во-первых стандартную библиотеку (Adafruit_SSD1306) необходимо отредактировать. Она настроена на 32-х строчный экран. Без этого на 64-х строчном экране картинка будет растянута и отображать через строку. А кадр будет выходить за нижние пределы экрана.Evgesha писал(а):Сергей немогли бы выложить библиотеку, у меня ошибки при компиляции
И попробуйте залить сначала стандартный скетч из примеров.
В файлике Adafruit_SSD1306.h, необходимо сделать как на рисунке
Редактирование библиотеки
Находится этот файлик в папке с библиотеками, только не с программой, а в документах пользователя.
Спустя пол года сам все забыл и заново разбирался что к чему)
OLED дисплей 128х64 SPI - пользовательский блок на Си
Сергей, а Вам не кажется что блоки крупноваты и следует разделить их на отдельные функциональные блоки, как то вывод элементарной графики ( круги, рамки...) с входами для координат и en.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
так это были еще первые пробы. Сейчас с блоком текста работаю, то он маленький. Входы En; X,Y; Text;slavas писал(а):Сергей, а Вам не кажется что блоки крупноваты
OLED дисплей 128х64 SPI - пользовательский блок на Си
Вы библиотеку правили, а у вас описание есть или в коде разбирались?
Последний раз редактировалось slavas 10 дек 2016, 13:42, всего редактировалось 1 раз.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
OLED дисплей 128х64 SPI - пользовательский блок на Си
slavas,
Вот видео рабочего проекта. Качество не очень, но других вариантов сейчас показать нету(. Мой телефон с нормальной камерой в СБУ)).
_uVideoPlayer({'url':'https://www.youtube.com/watch?v=XStLd22 ... 11HZ1CfF8v');
Вообще сам разбирался. Первый раз включил дисплей на скетче из примеров. Ошибки при компиляции были, но я прямо в примере убрал строки выводящие ошибки, он прошился, но работал через строку. Cразу и не заметил что он через строку работает.slavas писал(а):Вы библиотеку правили,
Вот видео рабочего проекта. Качество не очень, но других вариантов сейчас показать нету(. Мой телефон с нормальной камерой в СБУ)).
_uVideoPlayer({'url':'https://www.youtube.com/watch?v=XStLd22 ... 11HZ1CfF8v');
OLED дисплей 128х64 SPI - пользовательский блок на Си
Сергей, просто и со вкусом, этот экран прекрасно подходит для таких целей. Вы не пробовали сделать блок для вывода иконок? Я кое что делал, но получается сложно.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя