Перейти к содержанию
    

Какую выбрать программу для визуализации данных от контроллера с сом-порта?

Здравствуйте. Посоветуйте готовую программу для решения подобной задачи.

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

Нужно несколько (штук 6-8) графиков (контроллер будет каждые 0.5с присылать строку чисел со знаком float и int в том формате, который я выберу.

Нужна запись и просмотр лога, а в идеале - просмотр этого лога просто прокруткой назад графика, который строится в данный момент.

Также желательно отмечать на графиках события, которые присылает контроллер в виде слов (например, если в строке присутствует слово CLOSED1 - то отображать какую-то метку на временной шкале). И это тоже должно попадать в лог.

Еще желательно менять и отправлять параметры в контроллер с этого же экрана.

Вот нашел такую разработку https://github.com/sebnil/RealtimePlotter

это на Processinge, с которым я не имел дела раньше.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У всех разные требования, готовое не подходит и пишут свое. У меня нет текстовых меток и отправки параметров обратно, и не думаю в эту сторону.

 

https://sourceforge.net/projects/graph-plotter/

Изменено пользователем amaora

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Процессинг у меня не запустился на ноуте (видеокарта не поддерживает OpenGL 2)

Ваша программа запустилась (хотел попробовать), 

13 часов назад, amaora сказал:

но я не нашел по ней описания, какие данные присылать, как задавать цвета и названия графиков и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Использую для подобного SerialPlot (последняя версия тут). Вроде почти всем пожеланиям должен удовлетворять, только:

 

16 часов назад, alexvu сказал:

Также желательно отмечать на графиках события, которые присылает контроллер в виде слов (например, если в строке присутствует слово CLOSED1 - то отображать какую-то метку на временной шкале).

я не пробовал, не уверен, что такое там есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, alexvu said:

но я не нашел по ней описания, какие данные присылать, как задавать цвета и названия графиков и т.д.

Есть README.md и пример конфигурационного файла с описанием всех настроек. Так же можно запустить GP с единственным параметром именем файла и порта. Или можно выбрать файл нажав "O". Настройки порта программа не умеет, всегда работал с уже настроенным портом.

Пример CSV файла, заголовок с названиями параметров, единиц измерений и числовые данные. Такой файл можно открыть без настроек, и выбрать столбцы/оси/цвета уже в программе. Или вот пример моей конфигурации для real-time построения.

#!/home/amaora/util/gp
# vi: ft=conf

chunk 20

load 0 1200 text "/dev/rfcomm0"
mkpages -1

group 0 -1
deflabel 0 "Time (s)"
defscale 0 0.05 0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, arhiv6 сказал:

Использую для подобного SerialPlot

Спасибо, запустилась, завтра попробую в деле.

9 минут назад, amaora сказал:

Спасибо, попробую тоже. У Вас хорошо сделан просмотр мелких участков графика.

10 минут назад, amaora сказал:

Или можно выбрать файл нажав "O".

А что еще можно нажать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, alexvu said:

А что еще можно нажать?

Клавиши назначены не на все действия. Посмотреть действия можно вызвав контекстное меню на каком-нибудь элементе, они подсвечиваются при наведении. Можно на заголовке сверху, на каждой оси, на легенде фигур. В каждом меню слева подписано если есть клавиша для этого действия. По большому списку меню есть нечёткий поиск (при открытом меню начинаем набирать текст, в меню останутся только совпадения), для тех у кого ~100+ графиков или файлов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здесь один известный ардуинщик, демонстрируя PID, выводит графики, похоже, средствами самого IDE. Тоже заинтересовало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

любой понравившийся скриптовый язык для приёма своих каких-то особых меток (вроде "CLOSED1") и gnuplot, 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пишется на buildere или delfi за вечер с любыми извращениями.

Если не знаете builder или delfi это хороший повод их начать изучать, потребуются еще не раз.

Изменено пользователем whale

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 часов назад, Herz сказал:

Здесь один известный ардуинщик, демонстрируя PID, выводит графики, похоже, средствами самого IDE.

Это вариант простейший и неудобный. Вот что я сразу увидел:

1) Графики отображаются в едином масштабе, т.е. если один принимает значения до 1000, то другие будут болтаться около 0. Можно, конечно, нормировать в самом контроллере, но зачем?

2) При запуске этого монитора контроллер ресетится, и это нельзя отключить. Т.е. нельзя в процессе запустить монитор и посмотреть графики.

3) Нельзя прокручивать и т.д. Ничего нельзя, в общем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На чём в итоге остановились? Сейчас озаботился аналогичной задачей.

24.04.2021 в 18:10, alexvu сказал:

Спасибо, запустилась, завтра попробую в деле.

Как впечатления?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, Herz сказал:

На чём в итоге остановились? Сейчас озаботился аналогичной задачей.

Вот эту использовал:

24.04.2021 в 16:14, arhiv6 сказал:

Использую для подобного SerialPlot (последняя версия тут).

Там простой интерфейс, она может автоматически опознавать количество графиков по строке чисел до символа конца строки, есть масштабирование каждого графика, просмотр с увеличением и т.д.

Записывает файл (я пока не пробовал).

И можно посылать текстовые команды контроллеру.

Регуляторы тем временем заработали как надо, и я пока к этой программе больше не возвращался и всех ее особенностей не знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 часов назад, alexvu сказал:

Там простой интерфейс, она может автоматически опознавать количество графиков по строке чисел до символа конца строки, есть масштабирование каждого графика, просмотр с увеличением и т.д.

А мне она показалась даже менее удобной, чем встроенный в Ардуино Плоттер: если в Плоттер можно запросто передавать большие числа в формате ASCII посредством Serial.print() и он сам переводит их в десятичный вид, то с SerialPlot это не прокатывает: нужно пользоваться Serial.write() и выводить байты по одному. Учитывая, что в Ардуино-среде самый популярный формат - int, это становится каким-то абсурдом...

Кроме того, я не нашёл, как можно масштабировать каждый график, и даже как управлять осью ординат - она всё время автоматически подстраивается под максимальный масштаб, охватывающий диапазон входных данных. Выглядит плохо. Впрочем, и в Плоттере та же проблема: нельзя жёстко задать шкалу по оси Y. Ещё мне пока не удалось настроить "ход времени", то есть скорость смещения графиков по горизонтали. Вы знаете, как это делается?

13 часов назад, alexvu сказал:

Регуляторы тем временем заработали как надо, и я пока к этой программе больше не возвращался и всех ее особенностей не знаю.

Если не секрет, какой алгоритм использовали? И чем управляли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...