Лучшие варианты для базового последовательного плоттера Arduino?
Arduino Serial Plotter не позволяет анализировать или сохранять данные. Какое лучшее программное обеспечение для построения графиков последовательных данных (желательно бесплатное, но я не возражаю, если оно будет платным, если оно лучше, чем простой серийный плоттер Arduino)?
Должен хорошо работать с Arduino
Должен позволять отображать несколько переменных на одном графике
Разрешить экспорт данных в CSV, чтобы я мог показать их в Excel.
@DryRun, 👍-1
Обсуждение1 ответ
Для пользовательских устройств требуются специальные решения.
Я предлагаю использовать Python (не бойтесь).
В этом руководстве показано, как считывать данные из серийного номера и сохранять их в файл .csv. Вам не обязательно использовать файл . Например, вы можете изменить его, чтобы использовать список в памяти и сохранить только значения за последние 30 секунд. Вы также можете прочитать несколько значений, а не только одно.
import serial
import time
import csv
ser = serial.Serial('/dev/ttyACM0')
ser.flushInput()
while True:
try:
ser_bytes = ser.readline()
decoded_bytes = float(ser_bytes[0:len(ser_bytes)-2].decode("utf-8"))
print(decoded_bytes)
with open("test_data.csv","a") as f:
writer = csv.writer(f,delimiter=",")
writer.writerow([time.time(),decoded_bytes])
except:
print("Keyboard Interrupt")
break
Это руководство (и этот) показывает, как очень быстро показать сложный график собранных вами данных. Вы даже можете создать график, который показывает несколько графиков и обновлений в режиме реального времени.
import matplotlib.pyplot as plt
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()
Не пугайтесь, это не черная магия. Чтобы понять, как все устроено, требуется всего несколько дней.
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Использовать все контакты как цифровые входы/выходы
- Float печатается только 2 десятичных знака после запятой
- Arduino как USB HID
- Serial1' was not declared in this scope
- Очень простая операция Arduino Uno Serial.readString()
- AT-команда не отвечает на последовательный монитор
вы можете распечатать CSV в Serial Monitor или в файл SD-карты, а затем обработать его, @Juraj
Обычно я просто сохраняю последовательные данные в файл:
stty -F /dev/ttyACM0 raw 9600 && cat /dev/ttyACM0 > data.tsv
, а затем рисую их с помощью [gnuplot](http://www.gnuplot. Информация/). Но это не серийный сюжет в реальном времени, поэтому я не знаю, можно ли это считать ответом..., @Edgar Bonetвы можете написать приложение, которое делает то, что вы хотите, используя Processing.... http://processing.org... могут быть примеры программ, которые делают то, что вы хотите, @jsotola
Если вы хотите установить среду JAVA «Обработка», взгляните на: https://github.com/digamesystems/DigameSerialPlotter., @John Price