Программы создания последовательных данных

Мне нужно записать последовательные данные из Arduino.

Мне нужна поддержка:

  1. Различные форматы данных (например, подписанные, неподписанные, 8 бит, 16 бит);
  2. Вычисляет несколько данных по тем же осям;
  3. Экспорт /Импорт данных файла.

Поскольку построение последовательных данных из Arduino является общей потребностью, мой вопрос: Какие программы /утилиты доступны для построения последовательных данных от Arduino, которые отвечают потребностям выше?

Каковы преимущества /недостатки предложенного метода?

26 голосов | спросил akellyirl 15 PMpTue, 15 Apr 2014 13:08:11 +040008Tuesday 2014, 13:08:11

17 ответов


11

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

  • MegunoLink ($ 29.95; Lite бесплатно) - построение графика, ведение журнала, программирование, отчетность и многое другое.

    MegunoLink

  • MakerPlot ($ 39) - digital & аналоговое построение, мониторинг, пользовательские интерфейсы и многое другое.

    MakerPlot

  • ArduinoPlot (бесплатно) - простое построение.

    ArduinoPlot

  • arduino-plotter (бесплатно) - легкий, легкий график с поддержкой всех примитивные типы

    arduino-plotter

  • Панель управления мостом (бесплатно) - протоколирование, построение графика и т. д.

    Bridge Control Panel

  • RealtimePlotter (бесплатно) - отображение данных на 6 каналов.

    RealtimePlotter

  • Плоттер данных реального времени (бесплатно) - построение данных CSV, запись и многое другое.

  • SimPlot (бесплатно) - 4-канальное построение.

    SimPlot

  • Arduino Serial Plotter (бесплатно) - встроенный Arduino Editor в Инструменты> Серийный плоттер .

    Arduino Serial Plotter

(Это вики сообщества, вы можете развернуть список.)

ответил exussum 18 MarpmTue, 18 Mar 2014 15:20:44 +04002014-03-18T15:20:44+04:0003 2014, 15:20:44
8

GnuPlot

Преимущества: он очень гибкий, доступный для сценариев и свободно доступный.

Недостатки: немного сложно учиться (но я выяснил, как начать работу через несколько минут и достаточно функционально через час или два), работает в терминальном окне (если вы считаете это недостатком).

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

Изображение GnuPlot



Редактировать: Вот сценарий GnuPlot, который показывает его:

#! /usr /local /bin /gnuplot -rv
# Обратите внимание на обратное видео здесь ^^^, пока не найду способ поместить его в скрипт

# gpFanCtl - графики данных контроллера вентилятора DiffThermo (в высоком разрешении, в режиме ожидания, Tdiff, состояние вентилятора).
# $ Id: gpFanCtl, v 1.8 2014-04-28 09: 40: 51-04 jrobert Exp jrobert $

установить терминал x11 1 noraise
установить xtics 3600
set mxtics 4
установить время xdata

set ytics 1 nomirror
установить mytics 2

set y2range [0: 3]
set y2tics 1
установить my2tics 4

сетка сетки
set ylabel 'Температура, degC'
set y2label 'Tdiff, degC' textcolor rgb '# 00CD63'

cd '/Пользователи /jrobert /Desktop'
сюжет «Logfile.txt» с использованием ($ 0 * 4): 1 заголовок «Aloft» с строками lc rgb «красный»,
     «Logfile.txt» с использованием ($ 0 * 4): 2 заголовок «Алоу» с строками lc rgb «# 3982FF», \
     «Logfile.txt» с использованием ($ 0 * 4): 3 заголовок «Tdiff» с строками lc rgb «# 00CD63» ось x1y2, \
     «Logfile.txt» с использованием ($ 0 * 4): 4 заголовок «Вентилятор» с линиями lc rgb «оранжевая» ось x1y2;
пауза 4
обновление
перечитывать
ответил JRobert 19 AMpSat, 19 Apr 2014 01:15:14 +040015Saturday 2014, 01:15:14
7

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

Это не какой-то ардуино, но это отличный инструмент для создания графиков Python .

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

На самом деле, я думаю, вы должны разбить свой вопрос на две части:

  • Как вы можете легко получить данные с серийного устройства Arduino /Any на компьютер.
  • Что такое хорошая графическая библиотека, которая проста в использовании.
ответил Connor Wolf 18 AMpFri, 18 Apr 2014 05:13:41 +040013Friday 2014, 05:13:41
5

Отвечая на мой собственный вопрос здесь .. Я использую Bridge Control Panel, как упоминалось.

Преимущества: множество возможностей.

Недостатки: сложность настройки и очень плохое представление синтаксиса /ошибок.

Чтобы использовать: Вам необходимо записать данные Arduino через последовательный порт по одному байту за раз. Для типа данных int, который будет выглядеть следующим образом:

//RX8 [h = 43] @ 1Key1 @ 0Key1
Serial.print ( "С");
Serial.write (данные > > 8);
Serial.write (данные & Amp; 0xff);

В Bridge команда для чтения данных:

RX8 [h = 43] @ 1Key1 @ 0Key1

RX8 - команда чтения [h = 43] означает, что следующий действительный байт является «C» в ASCII то старший байт ключа1 то младший байт ключа1

В Bridge это выглядит так:

введите описание изображения здесь>> </p>

<p> <img src =

ответил akellyirl 15 PMpTue, 15 Apr 2014 13:16:09 +040016Tuesday 2014, 13:16:09
5

Вы можете попробовать серийный номер . Это довольно простая программа. Он делает именно то, что вы просили. Единственным недостатком является то, что он требует данных в формате CSV (не соответствует первой точке).

Снимок экрана со страницы проекта:

example

ответил ah01 24 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 24 Sep 2014 05:10:40 +0400 2014, 05:10:40
5

SerialPlot (бесплатно). Он делает все, что вам нужно, и многое другое.

Другие функции:

  • Увеличить данные
  • Нажмите datapoints, чтобы увидеть значения
  • Отправка команд обратно в Arduino
  • Отрегулировать общее количество отображаемых точек
  • Возможность показывать каждый канал в собственном автомасштабированном сюжете
  • Интерпретирует двоичные, ASCII и пользовательские пакеты
  • Демо-режим позволяет играть с функциями

 введите описание изображения здесь>> </a> </p></div>
										<div class=ответил Nate 5 Jam1000000amThu, 05 Jan 2017 04:54:23 +030017 2017, 04:54:23

4

Вам может быть интересен Telemetry Смотрите на Github . Это протокол связи, очень простой в использовании, с чистым интерфейсом, который обеспечивает двунаправленную связь с устройствами Arduino /Mbed.

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

Сила этой библиотеки исходит из интерфейса командной строки рабочего стола (для которой требуется нет навыков программирования на питоне).

Он может открывать высокопроизводительные графики (намного выше, что можно сделать с помощью matplotlib) , просто набрав команду .

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

Графики, открытые из интерфейса командной строки, понимают тип данных и массивы, а не строят каждый образец в зависимости от времени, образец будет отображаться по его собственному индексу.

В ближайшем будущем планируется добавить поддержку пространственных координат (xyz data), что позволит вам сразу отображать пространственные данные. Когда-то снова на графиках будет отображаться все, постройте свои данные в 2D или 3D-пространстве, и вы сможете сосредоточиться на разработке своего приложения.

Я считаю, что эти функции просто уникальные для такого проекта.

Pytelemetry CLI  версия PyPI

После установки с помощью pip, командную строку можно запустить с помощью

pytlm

Затем вы можете connect, ls (list) полученные темы, print данные, полученные по теме, pub (публиковать) по теме или открыть plot по теме для отображения полученных данных в режиме реального времени

 введите описание изображения здесь>> </a> </p>

<p> <a href=  введите описание изображения здесь>> </a> </p>

<h1> Начало работы </h1>

<p> <a href= Wiki

PS: Я автор.

Я разработал его, потому что не смог найти решение, которое позволило бы мне:

  • быстро напишите сценарии ПК для управления Arduino
  • быстро отладить
  • отображать сложные данные (не только изменяющееся во времени значение)

все вышеперечисленное без использования проприетарных решений или раздутых графических интерфейсов.

Используя эту библиотеку, время для установления связи между Arduino и PC длилось обычно от полудня до 5 минут.

ответил Overdrivr 1 MarpmTue, 01 Mar 2016 14:07:44 +03002016-03-01T14:07:44+03:0002 2016, 14:07:44
4

Никто не упомянул технологию, которая является супер универсальной. Вы можете сделать гораздо больше, чем просто заговор, но если это все, что вы хотите сделать, вы можете использовать библиотеку gwoptics; подключить Arduino и Обработать, как указано здесь .

ответил Sebastian Zeki 29 FebruaryEurope/MoscowbMon, 29 Feb 2016 23:20:09 +0300000000pmMon, 29 Feb 2016 23:20:09 +030016 2016, 23:20:09
2

Я сделал эквивалентный инструмент в python, который печатает данные в реальном времени с акселерометра ADXL345. https://github.com/mba7/SerialPort-RealTime-Data-Plotter

может быть, это будет полезно для кого-то

введите описание изображения здесь>> </p>

<p> Просто выберите серийный com и скорость и отправьте последовательные данные в следующем формате: </p>

<ul>
<li> 3 входа, каждый вход 2 байта (дополнение 2) </li>
<li> 6 байтов, разделенных пробелом </li>
<li> пакет представляет собой строку, завершенную '\ n' </li>
</ul>
<p> Может быть легко адаптирован для изменения этого формата </p></div>
										<div class=ответил mba7 21 stEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 21 Sep 2014 19:09:16 +0400 2014, 19:09:16

2

Вы можете использовать Студенческое издание MATLAB , это также может сэкономить ваше время для дальнейшего анализа. Вы можете просто открыть COM-порт в MATLAB и нарисовать полученный сигнал и /или сохранить сигнал в рабочей области или что угодно. MATLAB все упрощает!

ответил AHKh 31 J000000Thursday14 2014, 12:09:33
2

Формат CSV наиболее универсален для любых данных (подписанный /неподписанный, различный размер и точность).

Кросс-платформенный инструмент (написанный на Java /Scala) Scsvlog может получать /анализировать строки CSV из последовательного порт /сокет, показать значения и диаграммы рисования (до 8).

ответил ed82484954 10 22015vEurope/Moscow11bEurope/MoscowTue, 10 Nov 2015 18:33:39 +0300 2015, 18:33:39
2

Вы можете попробовать программное обеспечение, которое я разработал для этого. Он нацелен на то, чтобы быть простым в использовании. См. SerialGraphicator - клиент с открытым исходным кодом с открытым исходным кодом, способный принимать значения графа, полученные в формате JSON.

ответил newtonis 21 FebruaryEurope/MoscowbSun, 21 Feb 2016 07:50:13 +0300000000amSun, 21 Feb 2016 07:50:13 +030016 2016, 07:50:13
1

Пока я сам не использовал его, «rqt_plot» , работающий на ПК, кажется, является популярный способ построения данных на ПК, который поступает через последовательный порт от Arduino, выполняющего эскиз, который включает rosserial_arduino или библиотеку ros_arduino_bridge .

ответил David Cary 25 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowThu, 25 Sep 2014 02:06:03 +0400 2014, 02:06:03
1

Я знаю, что это очень старый вопрос, но недавно я создал приложение для Mac, которое очень хорошо решает эту проблему. Дополнительную информацию об этом можно найти на сайте www.bloonapp.com. На веб-сайте есть несколько демонстрационных видеороликов, которые вы можете проверить.  введите описание изображения здесь>> </a> </p></div>
										<div class=ответил Jazawe 4 PM00000070000001731 2016, 19:43:17

1

Я знаю, что вы, вероятно, после более продвинутого вывода графического интерфейса, но мне удалось воспроизвести задачу, которую обычно делали бы с осциллографом: «Выход

с помощью серийного плоттера в IDE Arduino и модуля ADC, который вы можете получить за 3 доллара на eBay. Я признаю, что это немного грубо, но, возможно, стоит сыграть с инструментом некоторое время, прежде чем вкладывать средства в решения уровня Python /Matlab /ect. Он был чрезвычайно прост в использовании. Это не займет много времени, чтобы добавить запись SD-карты в процесс.

Смотрите: https://edwardmallon.wordpress.com/2016/08/15/using-the-arduino-uno-as-a-basic-data-acquisition-system/

ответил Ed Mallon 17 PM00000090000001131 2016, 21:43:11
0

Telemetry Viewer

Преимущества:

  1. Простота использования
  2. Интуитивно понятный и гибкий интерфейс
  3. Открытый исходный код и бесплатный
  4. Различные типы графиков
  5. Очень быстрая скорость обновления графика

Недостатки:

  1. Остановлена ​​разработка
  2. Формат двоичных данных еще не завершен.
  3. Элементы примитивного графа, такие как масштабирование, скриншот и ... введите описание изображения здесь
ответил Ali80 29 J000000Sunday18 2018, 16:55:35
-1

почти полезно. нуждается

  1. протоколирование последовательных данных в файл OR
  2. из файла и обновления каждые xxx миллисекунды.

Live Graph - лучший вариант, и я использую его в сочетании с tera term , который получает данные через USB /последовательную ссылку (и сохраняет его в файле журнала, который затем проводит опросы Live Graph ).

Live-график немного глючит при кешировании данных, и я не нашел способ установить движущееся окно для отображения результатов. Кроме того, отображение нескольких графиков требует ручного масштабирования, но, несмотря на все это, оно по-прежнему очень полезно. это написано в java, поэтому вам понадобится JRE. я предпочитаю, чтобы это было связано с необходимостью устанавливать python, как это делают некоторые другие программы графического отображения. Другой недостаток заключается в том, что он открывает 4 разных окна, что является болью, когда я хочу перевернуть между ним и термином tera.

Я еще не нашел программное обеспечение, которое

  1. исполняемый файл (.EXE), поэтому он не имеет внешнего доверия
  2. включает эмулятор терминала или последовательный регистратор данных
  3. записывает серийные данные
  4. отображает несколько элементов из csv
  5. позволяет использовать данные csv AND с разделителями-табуляторами (что проще читать при прокручивании, а одновременно отслеживать график.
  6. позволяет устанавливать различные шкалы для каждого наложенного графика без необходимости масштабировать все до [0..1] или устанавливать множитель, то есть разрешать установку диапазона [y0..y1] для каждого элемента, украшенного диаграммой.
ответил mahesh 29 FebruaryEurope/MoscowbMon, 29 Feb 2016 08:33:02 +0300000000amMon, 29 Feb 2016 08:33:02 +030016 2016, 08:33:02

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132