Например TDA7294

Форум РадиоКот • Просмотр темы - STM32 разработка GUI
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср апр 21, 2021 04:22:47

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 35 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 10:34:57 
Первый раз сказал Мяу!

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 34
Рейтинг сообщения: 0
Доброго дня!
Вопрос больше теоретический, наверное. В плане хобби собираю много разнообразных девайсов. С недавних пор перешёл с AVR на STM32.
Традиционно возникает вопрос, как организовывать взаимодействие с пользователем. Традиционно делал это с помощью LCD (скажем 16x04) и энкодера. Удавалось сделать какое ни какое меню.
Ну и собственно возник вопрос более продвинутого способа взаимодействия с пользователем, благо TFT дисплеев с touch screen сейчас масса.
Вот только вопрос как интерфейс на этом дисплее организовывать? Не рисовать же все кнопочки и менюшки самостоятельно.
STM и google подсказали что можно использовать touchGFX. Купил отладочную плату stm32f469i-disco попробовал красиво и нарядно, но….

    1. Работает только с достаточно продвинутыми чипами, которые в основном BGA и в домашних условиях плату на такие не сделаешь
    2. Софт touchGFX designer только под винду…. А мне уж очень не хотелось ещё и её в хозяйстве заводить.

В связи с этим вопрос, а кто как делает пользовательский интерфейс на TFT дисплеях?
В какую сторону копать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 11:00:56 
Держит паяльник хвостом

Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 940
Рейтинг сообщения: 0
Нет, как раз-таки единственный правильный путь — рисовать все самостоятельно. Потому что даже такие совсем вроде оптимизированные библиотеки, как nuklear, все равно сожрут прилично флеша.
А свой родной код, который заточен строго под одну задачу, вряд ли больше пяти килобайт съест.
P.S. Я уже больше 10 лет под МК что-то разрабатываю. Единственный раз, когда нужен был "интерфейс" — когда я сваял простую железяку для измерения температуры, прислюнил экранчик по SPI и выводил себе буковки. Еще делал отображение данных старт/финиш на светодиодной панели. Но чтобы рисовать "окошки" и "менюшки"… Ну, не знаю, зачем это. Можно же всегда по терминалу подключиться (хоть блютус сделать) и все нужные параметры настроить.

_________________
Я на гитхабе, в ЖЖ


Вернуться наверх
 

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 11:10:11 
Первый раз сказал Мяу!

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 34
Рейтинг сообщения: 0
Ну спорный вопрос....
Последнее поделка - блок управляющий ванной для травления печатных плат. Управляет подогревом и компрессором для подачи воздуха.
Соответственно через интерфейс можно управлять температурой, которая поддерживается и интенсивностью подачи воздуха.
Управляется все с помощью одного энкодера.

Наверное такой интерфейс можно самому нарисовать, но только времени на это уйдёт уйма.
Поэтому я за какие ни будь библиотеки. Вот только какие?


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 11:51:07 
Держит паяльник хвостом

Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 940
Рейтинг сообщения: 0
Для блока управления ванной достаточно четырехразрядного семисегментного индикатора. Зачем там TFT?

_________________
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Вебинар «Решения Analog Devices для гальванической изоляции. Обзор технологий и новинок» (27.04.2021)

Компания «Компэл» и Analog Devices приглашают всех желающих 27/04/2021 принять участие в вебинаре, посвященном решениям Analog Devices для гальванической изоляции. В программе вебинара: технологии гальванической изоляции iCoupler, цифровые изоляторы, технология isoPower, гальванически изолированные интерфейсы (RS-485, CAN, USB, I2C, LVDS) и другое. Вебинар будет интересен разработчикам промышленной автоматики и медицинской техники.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 11:56:20 
Сверлит текстолит когтями
Аватар пользователя

Карма: 8
Рейтинг сообщений: 178
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1113
Рейтинг сообщения: 0
А зачем для такой задачи навороченный интерфейс? Судя по описанию там пары семисегментников хватит. Ну и переменные резисторы наверное вместо энкодера.
Хотя если делать на продажу, где нужна не функциональность, а дешевизна и внешний вид. Там и блютус с управлением с телефона замутить можно, и подсветку ванночки снизу (никого не волнует что хлорное железо почти непрозрачное) мерзкими синими диодами. Или нет, ЛГБТ-подсветкой! Все как маркетологи любят.


Вернуться наверх
 
Винтовые клеммники Degson - расширение складской программы!

Широкий ассортимент винтовых клеммников Degson включает в себя различные вариации с шагом выводов от 2,54 до 15 мм, с числом ярусов от одного до трёх и углами подключения проводника 45°, 90°, 180°. К тому же Degson предлагает довольно большой выбор клеммных винтовых колодок кастомизированных цветов.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 12:20:54 
Первый раз сказал Мяу!

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 34
Рейтинг сообщения: 0
А зачем для такой задачи навороченный интерфейс? Судя по описанию там пары семисегментников хватит. Ну и переменные резисторы наверное вместо энкодера.


Не в этом сейчас вопрос. В моем понимание сейчас реализован минимально убогий интерфейс.
1 строка: Средняя текущая температура раствора. Выбрав строку энкодером можно посмотреть температуру с каждого датчика
2 строка: Целевая температура (к которой стремимся), опять же выбрав строку экодером ее можно поменять
3 строка: Текущая мощность компрессора. Опять же экодером ее можно поменять
4 строка: Пункт меню стар/стоп и время работы если устройство запущено.

Итого один дисплей и один эккодер.
В случае с TFT touch screen можно было бы просто обойтись дисплеем.

Изображение
Дисплей к сожалению плохо видно, но если будет интересно, то вечером сфоткаю нормально.

И повторюсь вопрос не в том нужен или нет TFT дисплей. Тут я для себя уже все решил. Нужен.
Нет смысла отрицать прогресс.

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


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 13:05:37 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 11
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 625
Рейтинг сообщения: 0
Вот только вопрос как интерфейс на этом дисплее организовывать? Не рисовать же все кнопочки и менюшки самостоятельно.
Да как угодно - как удобнее. Хоть в VisualStudio. Рисуете в VS диалог со всеми кнопочками и пр. требухой. А потом забираете от него .rc-файл (описывающий нарисованное) к себе в проект. И в программе рисуете по этому файлу.

1. Работает только с достаточно продвинутыми чипами, которые в основном BGA и в домашних условиях плату на такие не сделаешь
"Смешались в кучу люди кони..."
Никакой связи рисования GUI-интерфейса и мощности чипа нет. А тем более с типом корпуса. Да хоть на самом дохлом МК можно рисовать.
1. Разработчик рисует интерфейс на ПК, сохраняя результат (.rc-файл с координатами контролов).
2. А уже программа на МК рисует этот интерфейс по данным из этого .rc-файла с помощью своего графического API либо в видеопамять напрямую либо в ОЗУ МК с последующей отсылкой массива пикселей в видеопамять (либо ещё как). Графическое API в МК должно уметь отрисовывать графические примитивы: прямые, прямоугольники (закрашенные и незакрашенные), эллипсы, иногда - треугольники, шрифты разного размера и стиля. Обычно этого набора достаточно. Из этих примитивов уже строится любой контрол GUI.

Ваш вопрос непонятно о чём? О 1-м или о 2-м?
Если 1-е - любой инструмент типа VS и т.п.
Если 2-е - лучше написать свою реализацию графической библиотеки и с помощью её рисовать контролы GUI. Хотя и готовых их полно, но тут уже возможно будет привязка к чипу и к конкретной структуре видеосистемы.


Последний раз редактировалось jcxz Пт апр 02, 2021 13:13:37, всего редактировалось 1 раз.

Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 13:11:36 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 44
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 344
Откуда: Алчевск
Рейтинг сообщения: 0
Вот сам написал однажды объект "кнопка" на подобие виндовой и не заморачиваюсь с низкоуровневым рисованием на дисплее :)) .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 13:15:32 
Первый раз сказал Мяу!

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 34
Рейтинг сообщения: 0
Вот сам написал однажды объект "кнопка" на подобие виндовой и не заморачиваюсь с низкоуровневым рисованием на дисплее :)) .


Так не ужели нет более менее внятных библиотек?
Ведь это же не просто кнопку нарисовать. А реакция на нажатие? И нажатие анимировать наверное можно....
Не самому же все это писать???


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 13:16:38 
Потрогал лапой паяльник

Карма: 5
Рейтинг сообщений: 44
Зарегистрирован: Ср янв 04, 2012 11:57:40
Сообщений: 344
Откуда: Алчевск
Рейтинг сообщения: 0
с реакцией и анимацией, за вечер


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 13:18:07 
Первый раз сказал Мяу!

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 34
Рейтинг сообщения: 0
с реакцией и анимацией, за вечер


Ну и ты этим чудом поделился? На github выложил? ))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 13:28:36 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 11
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 625
Рейтинг сообщения: 0
Не самому же все это писать???
Неужто элементарное рисование прямоугольников и горизонтальных/вертикальных прямых вызывает такие затруднения??? :shock:
Посмотрите под лупой на любую виндовую кнопку - там кроме указанных графических примитивов ничего больше не нужно чтобы её нарисовать. В любом положении.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 13:37:12 
Первый раз сказал Мяу!

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 34
Рейтинг сообщения: 0
Не самому же все это писать???
Неужто элементарное рисование прямоугольников и горизонтальных/вертикальных прямых вызывает такие затруднения??? :shock:

Ну не скажите.... Почему бы не воспользоваться тем, что люди уже один раз сделали хорошо?
Например что ни будь подобное

Изображение
Это точно не один вечер делать...

В общем возвращаюсь к вопросу про библиотеки... Кто ни будь что ни будь использует?
Или может покажете свои интерфейсы написаyные руками? Может я и правда масштаб бедствия преувеличиваю?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 13:45:45 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 11
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 625
Рейтинг сообщения: 0
Изображение
Это точно не один вечер делать...
Конечно. Для этого не нужен целый вечер - гораздо меньше. ...при наличии всех необходимых примитивов.
На этой картинке имеются только те примитивы, которые я выше перечислил (кроме фоновой картинки). А полупрозрачные наложения - это всё есть в DMA2D тех же STM32: рисуются 2 картинки в двух разных буферах, а потом с помощью DMA2D комбинируются.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 14:07:55 
Первый раз сказал Мяу!

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 34
Рейтинг сообщения: 0
Конечно. Для этого не нужен целый вечер - гораздо меньше. ...при наличии всех необходимых примитивов.
На этой картинке имеются только те примитивы, которые я выше перечислил (кроме фоновой картинки). А полупрозрачные наложения - это всё есть в DMA2D тех же STM32: рисуются 2 картинки в двух разных буферах, а потом с помощью DMA2D комбинируются.

Вот.... Уже ближе к конструктиву....
Наверняка есть библиотеки с этими примитивами. Кто ни будь чем ни будь пользуется?
Я пока попробовал только touchGFX все хорошо, но ему как раз нужен пресловутый DMA2D, а он есть только в более менее серьезных чипах.

Добавлено after 17 minutes 7 seconds:
их примитивов уже строится любой контрол GUI.

Ваш вопрос непонятно о чём? О 1-м или о 2-м?
Если 1-е - любой инструмент типа VS и т.п.


А можно подробнее что с этим делать? Как, так сказать, технологический процесс устроен?

их примитивов уже строится любой контрол GUI.
Если 2-е - лучше написать свою реализацию графической библиотеки и с помощью её рисовать контролы GUI. Хотя и готовых их полно, но тут уже возможно будет привязка к чипу и к конкретной структуре видеосистемы.

Ну я точно не сторонник писать что то свое там, где есть что то готовое.
Если их полно, то можно годные примеры?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 14:13:06 
Сверлит текстолит когтями
Аватар пользователя

Карма: 8
Рейтинг сообщений: 178
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1113
Рейтинг сообщения: 0
Цитата:
В случае с TFT touch screen можно было бы просто обойтись дисплеем.

Не забывайте, что в удобстве физические элементы управления всегда выигрывают у виртуальных. Рисовать кнопки и все остальное имеет смысл только для совсем развесистого функционала, либо удовлетворения маркетологов - дешево, красиво, неудобно.
Цитата:
Нет смысла отрицать прогресс.

Не имеет смысла жертвовать эргономикой ради моды. Даже не прогресса.
Цитата:
Вопрос в том как с минимальными усилиями делать интерфейсы.

Тот же Nuklear попробуйте. Насколько я понимаю, он для этого и предназначен.
Цитата:
всё есть в DMA2D тех же STM32: рисуются 2 картинки в двух разных буферах

Угу. Учитывая, что в контроллере физически не хватит памяти даже на пол-картинки.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 14:19:24 
Первый раз сказал Мяу!

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 34
Рейтинг сообщения: 0
Тот же Nuklear попробуйте. Насколько я понимаю, он для этого и предназначен.


А есть примеры его использования с STM32?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 14:43:43 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 11
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 625
Рейтинг сообщения: 0
А можно подробнее что с этим делать? Как, так сказать, технологический процесс устроен?
Откройте VS, создайте проект GUI-приложения, добавьте в него диалог, на диалог поместите различные контролы (кнопки, едит-боксы и т.п.), сохраните проект. Далее - в любом текстовом редакторе откройте .rc-файл этого проекта. Увидите что-то типа:
Код:
IDD_OSC_PROP_DLG DIALOGEX 0, 0, 202, 141
STYLE DS_SETFONT | DS_SETFOREGROUND | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "ОК",IDOK,48,116,50,14
    PUSHBUTTON      "Отмена",IDCANCEL,104,116,50,14
    PUSHBUTTON      "Edge",IDC_BtnOscPropBaseEdge,8,7,90,12
    CONTROL         "",IDC_EditOscPropBaseEdge,"Static",SS_LEFTNOWORDWRAP | SS_NOTIFY | SS_SUNKEN | SS_ENDELLIPSIS,104,7,90,12
    EDITTEXT        IDC_EditAdcUpdateTime,54,72,41,12,ES_NUMBER | WS_GROUP,WS_EX_RIGHT
    EDITTEXT        IDC_EditAdcAvgTime,54,87,41,12,ES_NUMBER | WS_GROUP,WS_EX_RIGHT
...
END

Это (между BEGIN и END) вставляете в свой проект и в программе с помощью граф.библиотеки граф.примитивами рисуете по этим координатам указанные контролы.

Кроме редактора VS можно пользоваться и другими. Они делают что-то подобное.

Ну я точно не сторонник писать что то свое там, где есть что то готовое.
Если их полно, то можно годные примеры?
А я не сторонник рыться в чужом говнокоде по малейшему поводу и без. Так что тут ничего не подскажу. :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 14:45:55 
Первый раз сказал Мяу!

Зарегистрирован: Вт июл 17, 2018 09:52:27
Сообщений: 34
Рейтинг сообщения: 0
Это (между BEGIN и END) вставляете в свой проект и в программе с помощью граф.библиотеки граф.примитивами рисуете по этим координатам указанные контролы.


Вот с помощью какой графической библиотеки?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: STM32 разработка GUI
СообщениеДобавлено: Пт апр 02, 2021 14:52:06 
Вымогатель припоя

Карма: -17
Рейтинг сообщений: 11
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 625
Рейтинг сообщения: 0
Угу. Учитывая, что в контроллере физически не хватит памяти даже на пол-картинки.
Странно.... а у меня почему-то хватает... и хватило всего каких-то 4096 байт (при необходимости - нетрудно ещё кратно ужать).
Открою вам страшную тайну: картинку можно обрабатывать частями. Необязательно целиком в память затаскивать.
Кроме того - не обязательно на каждый пиксел тратить 32 бита. Можно экономнее. Для GUI (без полупрозрачностей!) достаточно 4 бит на пиксел - и на весь видеобуфер вполне хватит внутренней памяти многих нежирных МК.

Добавлено after 1 minute 43 seconds:
Вот с помощью какой графической библиотеки?
Любой. У меня своя. Рассчитанная на мой формат хранения видеобуфера и интерфейса с дисплеем.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 35 ]  1,  

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


Кто сейчас на форуме

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


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y