Уважаемые пользователи! Наш сайт и форум содержится на средства полученные от рекламы. Если вы хотите и дальше продолжать общаться, скачивать, и т.п. пожалуйста отключите блокировку рекламы для нашего сайта/форума. Мы не обязываем Вас переходить по рекламным ссылкам, просто она должна отображаться у вас в браузере. Реклама размещена ненавязчиво, сверху и снизу страницы, на прочтение основного материала никак не влияет! Спасибо за понимание!

Графическое меню на дисплее 128x64 st7920

Как реализовать графическое меню?

Вопросы от новичков
av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#21

Сообщение av » 10.09.2019{, 19:22}

rusincor писал(а):
09.09.2019{, 19:23}
Дисплей обычный монохромный подключен по SPI
Да я его уже подключал.
И какими блоками пользовались для проверки позвольте поинтересоваться ? Как решали проблему которая все еще актуальна ? Вы даже не удосужились прикрепить проект в котором у вас не решилось.
rogerwaters, прав насчет того, что этот дисплей вероятно не популярный.
Я бы вам помог с этим меню, но у меня нет такой железки и пользовательских блоков для этого дисплея. Не получится в слепую сваять нужное меню.

Ilgam
Рядовой
Сообщения: 1
Зарегистрирован: 10.09.2019{, 17:28}
Репутация: 0
Имя: Илгам

Графическое меню на дисплее 128x64 st7920

#22

Сообщение Ilgam » 10.09.2019{, 21:35}

Предлагаю часы с озвучкой
Вложения
Часы с озвучкой времени.flp
(2.81 МБ) 26 скачиваний

rusincor
Рядовой
Сообщения: 26
Зарегистрирован: 01.09.2019{, 21:28}
Репутация: 0
Имя: Руслан

Графическое меню на дисплее 128x64 st7920

#23

Сообщение rusincor » 10.09.2019{, 23:13}

av писал(а):
10.09.2019{, 19:22}
Вы даже не удосужились прикрепить проект в котором у вас не решилось.
Прикрепил !

Отправлено спустя 1 минуту 4 секунды:
Там особо прикреплять та нечего
три картинки меню а как в подменю входить ума не приложу
Вложения
NTCN.flp
(538.66 КБ) 24 скачивания

av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#24

Сообщение av » 11.09.2019{, 00:47}

rusincor, посмотрел ваш проект. Для начала нужно создать меню ! А уже потом управлять графикой и текстом исходя какой пункт меню выбран. По вашим картинкам в 4 посте вырисовывается многоуровневое меню. В левой колонке 3 главных пункта меню (если быть точнее групповые ), а с права отображаются подменю выбранного главного пункта. В штатном блоке меню есть выходы которые активируются ( установкой галочки: Группа параметров, выход активности пункта меню ).
Группа параметров создает подменю вот как раз в подменю создаете пункты которые вам нужны их может быть множество ( в вашем случае исходя из картинки это где все связанное с ...опой ). Вообщем ищите темы по созданию меню, скачивайте проекты изучайте создавайте. А прикрутить графику и текст будет проще.

rusincor
Рядовой
Сообщения: 26
Зарегистрирован: 01.09.2019{, 21:28}
Репутация: 0
Имя: Руслан

Графическое меню на дисплее 128x64 st7920

#25

Сообщение rusincor » 13.09.2019{, 22:01}

av,
Уважаемый AV я так и не могу понять как вывести строки меню одновременно на дисплей.
просто запара какаято. Вы не могли бы ткнуть носом где расписано как это реализовать или может на своем проекте покажите пару пунктов как выводится :smile198: :smile198: :smile198:

а по наглядному уже проще будет. :smile469:

rogerwaters
Рядовой
Сообщения: 24
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Графическое меню на дисплее 128x64 st7920

#26

Сообщение rogerwaters » 13.09.2019{, 23:24}

Как вы относитесь к крититике проекта?

rusincor
Рядовой
Сообщения: 26
Зарегистрирован: 01.09.2019{, 21:28}
Репутация: 0
Имя: Руслан

Графическое меню на дисплее 128x64 st7920

#27

Сообщение rusincor » 14.09.2019{, 00:20}

rogerwaters,
Нормально если критика конструктивная а не просто срач

rogerwaters
Рядовой
Сообщения: 24
Зарегистрирован: 17.05.2019{, 18:38}
Репутация: 1
Имя: Александр

Графическое меню на дисплее 128x64 st7920

#28

Сообщение rogerwaters » 14.09.2019{, 14:42}

Смените дисплей на другой, например TFT- 320х240 ILI9341. Тогда поможем 100%. :yes:

av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#29

Сообщение av » 16.09.2019{, 13:01}

rusincor, извиняюсь ,что не сразу ответил в данный момент запарка со временем. Постараюсь сегодня вечером показать как сделать меню, но как всегда есть проблемы. А именно проблема с пользовательскими блоками. Те блоки которые для дисплея в вашем проекте рассчитаны всего лишь на две строки текста, чтобы добавить еще строк блок не позволяет добавить его дважды. В связи с этим нужно искать другие пользовательские блоки для этого дисплея.
Но меню мы все же создадим !

Отправлено спустя 3 часа 56 минут 49 секунд:
rusincor, начнем создавать меню !

Для начала вытаскиваем штатный блок меню на плату. Заходим в настройки блока. Создаем 3 пункта меню исходя из вашего рисунка в посте № 4 как раз видны 3 графических пункта.
СпойлерПоказать
1.1.jpg
Далее нужно их сделать групповыми с выходами активности этих пунктов.
СпойлерПоказать
1.2.jpg
При повороте вала энкодера эти пункты будут выбираться по кругу для этого переходим на вкладку "Управление меню" и устанавливаем галочки как на рисунке.
СпойлерПоказать
1.3.jpg
Когда будет выбран один из пунктов группового меню на выходе соответствующий этому пункту появится единица, которая в свою очередь будет активировать инверсию графического символа тем самым указывая на выбор нужного пункта.
Чтобы отображать строковые пункты меню не заходя в подменю автор программы любезно позаботился об этом графой "Дополнительные строки" ими и воспользуемся.
СпойлерПоказать
1.4.jpg
Для создания подменю физического в котором будет изменяться нужная вам настройка нажмите на "Добавить подменю".

Да простят меня админы :smile44: за некорректность и невежество находящихся на следующем рисунке. Я не специально это сделано для полного понимания топикстартером исходя из его же рисунков.
СпойлерПоказать
1.5.jpg
И так добавляете сколько вам нужно подменю в пределах 1 главного пункта меню. Такие же манипуляции проводим и с другими двумя групповыми пунктами.
Я не знаю доходчиво ли вам объясняю ? Сделайте как описал, дайте названия пунктам меню и пришлите мне проект с ним и будем работать.

av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#30

Сообщение av » 16.09.2019{, 22:42}

rusincor, примерно так будет выглядеть блок меню.
СпойлерПоказать
1.6.jpg
Вкратце опишу как создать дополнительные строки верней покажу на рисунках :D
Дополнительные строки для пункта меню М-1.1
СпойлерПоказать
1.7.jpg
И для остальных пунктов группового меню 1 "НАСТРОЙКИ". Обратите внимание на графу "Дополнительные строки" в разных пунктах они разные ! Это сделано с целью правильного перебора пунктов при прокрутке по кольцу, то есть за последним четвертым пунктом следует первый
СпойлерПоказать
1.8.jpg
СпойлерПоказать
1.9.jpg
СпойлерПоказать
1.10.jpg
Таким же образом нужно создать дополнительные строки и в других групповых пунктах меню. При добавлении доп.строк выходы строк блока меню создаются автоматически. Допустим в следующем групповом меню №2 доп.строк будет меньше (3 строки), но в первом груп.пункте №1 их было создано (4 строки). Они автоматически появляются в количестве в котором были созданы в начале т.е. 4 штуки с маркировкой "Не определен". Двойным щелчком мыши выбираем первую в графе Доп.строки и вписываем то имя пункта меню которое требуется. Если не изменить маркировку " Не определен" , то на соответсвующем выходе строки будет пустая строка.
СпойлерПоказать
1.11.jpg

Но если удалить доп.строку кнопкой удаления строка так же удалится из всех групповых пунктов. Лучше не удалять, а просто оставлять маркер "Не определен".
Вот как то так. Из меня объясняльщик еще тот, прошу прощения если не донес суть своих мыслей :smile44:

av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#31

Сообщение av » 17.09.2019{, 15:48}

Продолжим !
Допустим блок меню создан с нужными именами пунктов меню. Теперь эти пункты нужно вывести на дисплей да и часть из них будет графической. Графическими пунктами будут групповые пункты меню ( из предидущего поста на картинках это пункты "НАСТРОЙКА", "ОПЦИИ", "КАЛИБРОВКИ" ). Для них нужно создать растровые рисунки с определенными размерами или иконки (так же возможны символы). Для этих целей есть множество приложений. Я использую:

для рисования
LCDFontMaker.zip
(1.06 МБ) 14 скачиваний
и для перевода в код
Image2Code.7z
(608.69 КБ) 11 скачиваний


Нарисовав иконку Домик из рисунка топикстартера и переведя в код вставляем в пользовательский блок уважаемого aidar_i, по это ссылке.Описание как это сделать в посте №2 по вышеуказанной ссылке.
СпойлерПоказать
дом.bmp
дом.bmp (1.94 КБ) 399 просмотров
Увы но здесь присутствует проблема ! Так как блок для отрисовки рисунка возможно использовать в проекте только один раз. И в этом случае мы можем вывести только одну иконку используя этот пользовательский блок :( . Возможно есть какие то вариант переделать блок, но моих познаний в области кода не достаточно.

Представим что блок может выводить несколько растровых рисунков (в нашем случае 3), а так же инвертировать их изображение. Тогда делаем анимацию выбора пункта группового меню инвертировав выбранную иконку выходами блока меню (М-1, М-2, М-3 см. первый рисунок в спойлере из поста №30). В этот же момент в правой части дисплея выводим дополнительные строки с выходов (AStr1-AStr4). При прокрутке нужной нам иконки энкодером в строках будут отображаться пункты подменю соответсвующие групповому пункту меню. Выбрали нужный пункт группового меню нажимаем на кнопку энкодера переходим в подменю. В подменю отображаются строки с именами подменю. Первой строкой будет выводиться выход "Name" и в координатах этой же строки но справа выводиться изменяемое значение выбранного подменю. В строках 2, 3, 4 будут выводиться дополнительные строки настроенные в пунктах подменю рисунок в втором спойлере поста №30.

Вот в принципе меню готово, если бы не подвели пользовательские блоки для этого дисплея которые разрешено использовать один раз в проекте. Да и количество строк ограничено количеством равным двум. Возможно как то можно доработать эти блоки под вывод 3 эконок и хотя бы четырех строк. Но я не спец в коде.

av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#32

Сообщение av » 19.09.2019{, 19:57}

Что то топикстартер молчит, наверное уже передумал :D .

rusincor
Рядовой
Сообщения: 26
Зарегистрирован: 01.09.2019{, 21:28}
Репутация: 0
Имя: Руслан

Графическое меню на дисплее 128x64 st7920

#33

Сообщение rusincor » 23.09.2019{, 19:10}

av,
Нет нивкоем случае не передумал, просто был в отъезде не было доступа к инету.
Во первых огромное спасибо Вам за помощь!
Я в блоке вывода графики для вывода нескольких картинок делал так
После энкодера ставил счетчик циклический допустим от 1 до 4 при достижении 4 включалась 1
Вход en_XBM делал integer и подключал к счетчику, на вход en_XBM подавались 1 или 2 или 3 а в самом блоке поправил код, что если ==1 то грузится 1 картинка если ==2 то вторая и тд. так я думаю можно много запихать. (прикрепил проект)
Там сделал вывод четырех пунктов текстового меню text_1 --- это наименование text_2 --- его значение например (скорость -> 100%) и так далее !!!
Может на базе этой доработки сможем прилепить меню!!!
Вложения
NTCN_111.flp
(454.22 КБ) 11 скачиваний

av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#34

Сообщение av » 23.09.2019{, 22:26}

rusincor, да можно и на этой базе прикрутить меню. Меня интересует вопрос, после редактирования блока у вас он работает ? На дисплей выводятся эконки (растровые рисунки) ? И в каком порядке (имеется ввиду сверху вниз в колонку сразу все три или все таки одна эконка(рисунок)). А так же текста сколько влазит построчно. Я для чего это спрашиваю, чтобы знать инфу куда что расположить. На вашей базе если прикручивать меню счетчик перебора картинок не нужен. Используем выхода пунктов меню для выбора картинки посредством шифрования штатным блоком.

Руслан так же мне нужно знать названия пунктов меню, а дальше вы сами настроите какими значениями меню будете оперировать. Жду более подробной инфы.

rusincor
Рядовой
Сообщения: 26
Зарегистрирован: 01.09.2019{, 21:28}
Репутация: 0
Имя: Руслан

Графическое меню на дисплее 128x64 st7920

#35

Сообщение rusincor » 23.09.2019{, 22:58}

av, Алексей добрый вечер, да блок работает.
Отображаются все три иконки в раз просто которая в фокусе она светлая.
СпойлерПоказать
111.bmp
Первый экран
111.bmp (1.06 КБ) 270 просмотров
СпойлерПоказать
222.bmp
Второй экран
222.bmp (1.06 КБ) 270 просмотров
СпойлерПоказать
333.bmp
Третий экран
333.bmp (1.06 КБ) 270 просмотров
Текста влазит 6 строк

Названия можете написать любые я еще в процессе придумывания.

Это будет блок управления приточно-вытяжной вентиляции с рекуператором.
Проект на 6 строк во вложении
Вложения
NTCN_6str.flp
(655.71 КБ) 14 скачиваний

av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#36

Сообщение av » 24.09.2019{, 09:58}

rusincor, для начала попробуйте этот проект:
Граф.меню.flp
(5.2 МБ) 25 скачиваний
Настройте координаты строк на дисплее подключите энкодер. Схема подключения кнопки энкодера в проекте !

Отправлено спустя 11 минут 41 секунду:
rusincor, сорян в блоке тип дисплея нужно раскоментировать строку с вашим дисплеем и закоментить SSD1306. В проекте заточено под дисплей SSD1306.

rusincor
Рядовой
Сообщения: 26
Зарегистрирован: 01.09.2019{, 21:28}
Репутация: 0
Имя: Руслан

Графическое меню на дисплее 128x64 st7920

#37

Сообщение rusincor » 24.09.2019{, 21:01}

av, Алексей добрый вечер спасибо за труды.
Проект залил меню работает, а подменю частично нет -- то-есть пункты подменю переключаются а их значения поменять не могу.
В ссылке видео чтобы наглядно было.
Видео

av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#38

Сообщение av » 25.09.2019{, 09:56}

rusincor, я сейчас не дома буду только к вечеру. Проблема указанная в видео исходит от блока управления меню, но не переживайте это решаемо ! Насчет того что рамка уходит будем разбираться. Вероятнее всего когда находимся в подменю на выходах М1, М2, М3 нет сигнала активации на входе управления графикой если мне не изменяет память тот что с типом integer и это тоже решаемо. Буду вечером будем разбираться.

av
Капитан
Сообщения: 777
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 45
Имя: Алексей

Графическое меню на дисплее 128x64 st7920

#39

Сообщение av » 26.09.2019{, 11:08}

rusincor, увы вчера вечером не смог добраться до компа :smile44: . Переделал проект теперь должно работать, рамка не должна уходить и настройка значения пункта меню будет работать как надо. Еще кое что изменил, когда заходим в подменю определенной настройки в дополнительных строках можно прописывать допустим подсказки к настройке или пояснения для каждого выбранного пункта меню. Протестируйте проект снимите видео если есть баги и недоработки. По видео наглядно видно где допущена ошибка.
Граф.меню 2.flp
(5.35 МБ) 11 скачиваний

Аватара пользователя
dizzyy
Лейтенант
Сообщения: 688
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 31
Откуда: Червоноград
Имя: Марьян

Графическое меню на дисплее 128x64 st7920

#40

Сообщение dizzyy » 26.09.2019{, 16:03}

у меня не пошло

av, есть ошибка в
if (en_graphics_113206122_2 ) { u8g.setColorIndex(1);
u8g.drawFrame(25, 3+list_frame, width_frame, height_frame); }
'list_frame' was not declared in this scope

в блоке это строчка
if (en_graphics ) { u8g.setColorIndex(color_g);
graphics }

также
_func_UB_201536490(&UB_201536490_Instance1, UB_201536490_ubi_145266424, UB_201536490_ubi_85351464, UB_201536490_ubi_42610036, UB_201536490_ubi_94809482, UB_201536490_ubi_59920069, UB_201536490_ubi_210017112, 25, 1500);
'_func_UB_201536490' was not declared in this scope

Ответить

Вернуться в «Начинающим»

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

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