Как пользоваться STM32CubeMonitor (графики, приборы) и зачем нужно

Краткое описание программы

Новая хрень, внезапно, полезная от STMicroelectronics взамен устаревшей STM Studio. Программное обеспечение STM32CubeMonitor позволяет очень удобно и наглядно выводить значение глобальных переменных (по сути считывая значение с ОЗУ) в виде графиков с применением различных функций и возможностью удобной записи .


Как смотреть переменную (строить график)?

Первое что нужно – это программа с глобальными переменными, у меня это элементы структуры для значения ускорения датчика ADXL345:

Открываем STM32CubeMonitor и сначала добавляем блок получение выход (acq_out):

Подключаем ST-LINK к STM32 и далее к ПК:

Проверка: Win + R -> devmgmt.msc -> Universal Serial Bus devices -> STM32 STLink

Теперь двойное нажатие на него, здесь нажимаем на карандаш (редактировать) и добавляем новый зонд (он должен быть подключен к ПК):

Проверить связь легко нажатием на лампочку:

Светодиод на отладчике должен помигать:

Находим папку с проектом, в STM32CubeIDE это можно сделать из дерева проектов:

Далее находим файл  ProjectName.elf и копируем адрес папки, где он находится:

Сейчас добавляем блок переменных ( variables), двойное нажатие на него и теперь вставляем ранее скопированный адрес, выбираем файл с расширением .elf и отмечаем нужные переменные для просмотра (у меня этого элементы структуры Adxl345.x, Adxl345.y, Adxl345.z):

После соединения/редактирования блоков нужно будет нажать развернуть ( Deploy) и далее приборная панель (Dashboard).

Далее жмем на кнопку Start и всё должно работать. Выбрав показывать точки ( Show Points) легко просматриваются значения на кривой вместе с временем:

Также график можно увеличивать, а если STLINK отвалится, то придется заново нажимать кнопку запуска:

Добавление аналоговых индикаторов (Gauge)

Можно сделать свою приборную панель, для этого после блока переменных нужно добавить блок единичного значения (Single value) и только потом блок измерителя (Gauge).

Здесь вписываем нужную переменную (для каждой свой блок), а потом настраивается тип прибора, диапазон значений и цвета.

Кроме обычного стрелочного прибора есть еще и другие показометры:

Отображение переменных в виде текста

Если нужно просто вывести переменные, то делается это следующим образом:

В настройках задается отображение и текст, сопровождающий переменную:

Готово, работает 

Добавление светодиода в STM32CubeMonitor

Использую проект с датчиком ускорения ADXL345, от которого получаю ускорение,

Как и ранее, сначала добавляются нужные переменные в блок переменных (Variables node), адреса и имена извлекаются из .elf файла, который находится в папке Debug проекта:

В блоке обработки переменных (Processing node) можно ничего не менять, если не нужны дополнительные операции:

В блоке единичного значения (Single Value) пишем любое имя (Name), а в строке переменной (Variable) четко пишем название переменной (такое же как в программе и как выбрано ранее):

В блоке Изменения (Change Node) нужно добавить установку (Set) значения msg.payload (сделал как в источнике):

Также добавил текстовый вывод (Text node), которая раньше уже использовалась для отображения значения переменной, а сейчас будет отображать то, что выходит после блока Изменения (Change Node):

И последнее, блок светодиода имеем самые простые настройки, изменил размер и цвет (красный - false, зеленый - true):

Все готово, развертываем (Deploy) и заходим на приборную панель (Dashboard):

Штука на самом деле очень удобна, особенно если нужно следить на несколькими процессами, достаточно подписать светодиод и виртуальная приборная панель становится как настоящая! 

На основе:  https://community.st.com/s/question/0D53W00000DJ49tSAD/simple-led-blink-with-stm32cubemonitor

Обновление от 05.08.2022

Запись данных (логгирование)

Для регистрации всех получаемых значений достаточно выбрать Log All Values:

После этого при каждой сессии данные будут записываться и их потом можно удобно по всей красе посмотреть:

Использование триггера

Здесь есть возможность начать запись по переднему/заднему фронту с предварительной установкой нужного порога для выбранной переменной:

Теперь построение графика начнется тогда, когда Adxl345.z превысит 200.

Что может оказаться очень удобным, по меньшей мере хранить кучу лишних данных не придётся:

Обработка результатов

Программа умеет обрабатывать полученные данные путем применения математических:

побитных, тригонометрических, логических:

и статистических функций:

Среднее значение

Использование  среднего скользящего позволяет избавиться от шума, в устройствах на МК это часто используется для обработки значений с АЦП. Здесь есть встроенная функция среднего, посмотрим как сработает для сглаживаний значений ускорения с датчика ADXL345:

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

Еще запись с датчика ускорения

Не могу не сделать график зависимости ускорения с вибромоторчиком:

Получается весьма интересно:

Можно по-бырому записать что нужно, а потом детально рассмотреть:

А вот вам еще проверка  светодиодного проверяльщика (дорабатывается ):

Он уже работает и здесь очень быстро возрастает выходное напряжение, а после прекращения преобразования экспоненциально уменьшается, т.к. конденсатор разряжается.

Дополнительные возможности

Есть еще куча возможностей, в частности различные элементы интерфейса:

Получаемые данные можно пихать куда угодно через:  MQTT, HTTP, websocket, TCP, UDP, Serial.

Купить на Aliexpress 

Из-за трудности достать по нормальной цене микроконтроллеры STM32 (и другие) советую обратить внимание на плату с STM32F401 с USB Type-C, которая всё еще доступна и имеет отличные параметры (84MHz, 64k RAM, 256k ROM, 3*SPI, 3*UART, 8*TIM...).


?️ STM32F401 Module (3.50?): https://ali.ski/T9_RBe

?️ STM32F401 Black Pill USB C(3.88?): https://ali.ski/wvygW
?️ STM32F401 DevBoard Type-C (3.46?): https://ali.ski/SvrJ8d


Видос

Итого

Штука прикольная, не скажу что эти блоки мне понравились, но само ПО выглядит модно и графики строит красиво и легко вести запись значений. 

STM32CubeMonitor отлично подойдет для отладки устройства на расстоянии или отлова непредсказуемо возникающих зависаний/вылетом в обработчик ошибок (Hard Fault). Скачать и попробовать можно на оф. сайте или прямо здесь (старую версию) : STM32CubeMonitor.zip

Или новую 1.4.0 в телеграм-канале:  https://t.me/cxemka_com/10

Жаль только то, что не поддерживается бичевый  JLINK, который работает через SWD.

2677
RSS
Нет комментариев. Ваш будет первым!
Загрузка...