Мне нужно построить серийные данные от Arduino.
Мне нужна поддержка для:
- Различные форматы данных (например, со знаком, без знака, 8 бит, 16 бит);
- Отображает несколько данных по одним и тем же осям;
- Экспорт / Импорт данных файла.
Поскольку получение последовательных данных от Arduino является обычной потребностью, мой вопрос: какие программы / утилиты доступны для вывода последовательных данных из Arduino, которые удовлетворяют вышеуказанным потребностям?
Каковы преимущества / недостатки предложенного вами метода?
Ответы:
Есть несколько хороших приложений для визуализации последовательных данных, в том числе:
MegunoLink ($ 29,95; Lite бесплатно) - черчение, ведение журнала, программирование, отчетность и многое другое.
MakerPlot ($ 39) - цифровое и аналоговое построение графиков, мониторинг, пользовательские интерфейсы и многое другое.
ArduinoPlot (бесплатно) - простая прорисовка.
Arduino-plotter (бесплатно) - легкий, легкий способ построения графиков с поддержкой всех примитивных типов
Панель управления мостом (бесплатно) - регистрация, построение графиков и многое другое.
RealtimePlotter (бесплатно) - 6 каналов данных.
Плоттер последовательных данных в реальном времени (бесплатно) - CSV данные, ведение журнала и многое другое.
SimPlot (бесплатно) - 4-х канальная прорисовка.
Arduino Serial Plotter (бесплатно) - встроенный редактор Arduino в меню «Инструменты»> «Последовательный плоттер» .
(Это вики сообщества, вы можете расширить список.)
источник
GNUPLOT
Преимущества: это очень гибко, доступно для сценариев и свободно доступно.
Недостатки: немного сложный для изучения (но я понял, как начать работу через несколько минут, и достаточно функциональный через час или два), запускается в окне терминала (если вы считаете это недостатком).
Что-то, что я нашел очень полезным, - это сценарий, чтобы периодически перезагружать лог-файл моей терминальной программы, чтобы я получил динамический график в ходе моего эксперимента.
Редактировать: вот сценарий GnuPlot, который строит его:
источник
Я использую Matplotlib для любых графиков, которые мне нужны.
Это не специфично для Arduino, но это очень хороший инструментарий для построения графиков Python .
Я построил несколько приложений, которые отображают данные с различных микроконтроллеров в режиме реального времени на график, но на самом деле это был скорее двухэтапный процесс: 1. Получение данных с устройства на компьютер, 2. Отображение данных в реальном времени. ,
На самом деле, я думаю, что вы должны разбить свой вопрос на две части:
источник
SerialPlot (бесплатно). Он делает все, что вам нужно и многое другое.
Другие свойства:
источник
Отвечая на мой собственный вопрос здесь ... Я использую панель управления мостом, как упоминалось.
Преимущества: много возможностей.
Недостатки: сложность в настройке и очень плохой синтаксис / сообщения об ошибках.
Использование: Вам необходимо записывать данные Arduino через последовательный порт по одному байту за раз. Для типа данных int, который будет выглядеть следующим образом:
В Bridge команда для чтения данных:
RX8 - это команда чтения [h = 43] означает, что следующий действительный байт - это «C» в ASCII, затем старший байт ключа 1, затем младший байт ключа 1
Похоже, это в Bridge:
источник
Вы можете попробовать серийный график . Это довольно прямолинейная программа. Это именно то, что вы просили. Единственным недостатком является то, что для этого требуются данные в формате CSV (не соответствует первому пункту).
Снимок экрана со страницы проекта:
источник
Вы можете быть заинтересованы в
Telemetry
Смотрите на Github . Это очень простой в использовании протокол связи с чистым интерфейсом, который обеспечивает двустороннюю связь с устройствами Arduino / Mbed.Если вы не хотите читать этот длинный пост, посмотрите пошаговое руководство по всем удивительным функциям в нем
Сила этой библиотеки поступает из интерфейса командной строки рабочего стола (который не требует не навыков программирования в Python).
Он может открывать высокопроизводительные графики (намного выше, чем то, что можно сделать с помощью matplotlib), просто набрав команду .
Протокол поддерживает сложные структуры данных . На данный момент массивы и разреженные массивы можно отправлять со встроенной платы.
Графики, открытые из интерфейса командной строки, понимают тип данных, и для массивов вместо того, чтобы отображать каждую выборку в зависимости от времени, выборка будет построена по собственному индексу.
В ближайшее время планируется добавить поддержку пространственных координат (данные xyz), что позволит вам сразу же построить пространственные данные. После того, как графики снова разберутся, разместите свои данные в 2D или 3D пространстве, и вы сможете сосредоточиться на разработке своего приложения.
Я считаю, что эти функции просто уникальны для такого проекта.
Pytelemetry CLI
После установки с
pip
помощью командной строки можно запустить сТогда вы можете
connect
,ls
(список) , полученного тем,print
данные , полученные по теме,pub
(опубликовать) по теме или открытьplot
на тему , чтобы отобразить полученные данные в режиме реального времениНачать
Wiki
PS: я автор.
Я разработал его, потому что не мог найти решение, которое позволило бы мне:
все вышеперечисленное без использования фирменных решений или раздутых графических интерфейсов.
Используя эту библиотеку, время для установки связи между Arduino и ПК обычно составляло от полдня до 5 минут.
источник
Никто не упомянул Обработка, которая является супер универсальной. Вы можете сделать гораздо больше, чем просто строить графики, но если это все, что вы хотите сделать, вы можете использовать библиотеку gwoptics; подключите Arduino и обработку, как указано здесь .
источник
Я сделал эквивалентный инструмент в Python, который печатает данные в реальном времени от акселерометра ADXL345. https://github.com/mba7/SerialPort-RealTime-Data-Plotter
может быть, это будет полезно для кого-то
Просто выберите серийный номер и скорость и отправьте серийные данные в следующем формате:
Может быть легко адаптирован для изменения этого формата
источник
Вы можете использовать MATLAB Student Edition , это также сэкономит ваше время для дальнейшего анализа. Вы можете просто открыть COM-порт в MATLAB и отобразить полученный сигнал и / или сохранить сигнал в рабочей области или где-либо еще. MATLAB делает все просто!
источник
Формат CSV наиболее универсален для любых данных (со знаком / без знака, различного размера и точности).
Кроссплатформенный (написанный на Java / Scala) инструмент Scsvlog может получать / анализировать строки CSV из последовательного порта / сокета, отображать значения и составлять графики (до 8).
источник
Вы можете попробовать программное обеспечение, которое я разработал для этого предложения. Он предназначен для простоты использования. См. SerialGraphicator - свободный клиент последовательного порта с открытым исходным кодом, способный отображать значения графиков в формате JSON.
источник
Хотя я не использовал его сам, «rqt_plot», запущенный на ПК, кажется, является популярным способом отображения данных на ПК, который поступает через последовательный порт от Arduino, на котором выполняется скетч, включающий библиотеку rosserial_arduino или библиотеку ros_arduino_bridge .
источник
Я знаю, что это очень старый вопрос, но я недавно создал приложение для Mac, которое очень хорошо решает эту проблему. Вы можете найти больше информации об этом на www.bloonapp.com. На сайте есть несколько демо-видео, которые вы можете проверить.
источник
Я знаю, что вы, вероятно, после более продвинутого вывода графического интерфейса, но мне удалось воспроизвести задачу, которую обычно делают с осциллографом:
используя последовательный плоттер в Arduino IDE и модуль АЦП, вы можете получить за 3 доллара на eBay. Я признаю, что это немного грубо, но, возможно, стоит немного поиграть с этим инструментом, прежде чем вкладывать средства в решения на уровне Python / Matlab / ect. Это было чрезвычайно просто в использовании. Это не займет много времени, чтобы добавить запись SD-карты в процессе.
См .: https://edwardmallon.wordpress.com/2016/08/15/using-the-arduino-uno-as-a-basic-data-acquisition-system/
источник
Телеметрия просмотра
Преимущества:
Недостатки:
источник
Serial Plotter - это простая программа, которую я создал для Electron, которая получает данные в следующем формате:
data1,data2,timestamp;
и преобразует их в график в реальном времени.источник
Практически полезно. Это необходимо:
Live Graph - лучший вариант, и я использую его вместе с Tera Term, который получает данные через USB / последовательный канал (и сохраняет их в файл журнала, который затем опрашивает Live Graph).
Живой график слегка глючит при кэшировании данных, и я не нашел способа установить движущееся окно для отображения результатов. Кроме того, показ нескольких графиков требует ручного масштабирования, но, несмотря на все это, это все еще очень полезно. Он написан на Java, поэтому вам понадобится JRE. Я предпочитаю это, чем устанавливать Python, как это делают некоторые другие графические программы. Другим недостатком является то, что он открывает 4 разных окна, что является болью, когда я хочу переключиться между ним и Tera Term.
Я еще не нашел программное обеспечение, которое
источник
?
кнопку в редакторе.Я использую processing.org для серийного черчения от Arduino. Это было единственное приложение, которое я смог найти, что позволило мне создавать реальные гистограммы (например, миллион событий в сотне бинов) и отображать различные информационные числа в дополнение к средней сигме для каждого канала. Две основные проблемы: A) оказалось, что он основан на Java без байтов без знака. B) синхронизация с входным обязательным циклическим буфером и маркерами в данных. (высокая скорость, без рукопожатия)
источник
SVisual Мониторинг и запись сигналов для Arduino и не только.
Пример видео
Скачать бесплатно)
источник