Necesito trazar datos en serie de Arduino.
Necesito soporte para:
- Varios formatos de datos (por ejemplo, con signo, sin signo, 8 bits, 16 bits);
- Traza varios datos en los mismos ejes;
- Exporta / Importa datos de archivos.
Como trazar datos en serie de Arduino es una necesidad común, mi pregunta es: ¿Qué programas / utilidades están disponibles para trazar datos en serie de Arduino que satisfagan las necesidades anteriores?
¿Cuáles son las ventajas / desventajas del método que ha sugerido?
Respuestas:
Hay algunas buenas aplicaciones para visualizar los datos en serie, que incluyen:
MegunoLink ($ 29.95; Lite gratis): trazado, registro, programación, informes y más.
MakerPlot ($ 39): trazado digital y analógico, monitoreo, interfaces personalizadas y más.
ArduinoPlot (gratis): trazado simple.
Arduino-plotter (gratis): trazado fácil y ligero con soporte para todos los tipos primitivos
Panel de control de puente (gratis): registro, trazado y más.
RealtimePlotter (gratis): trazado de datos de 6 canales.
Trazador de datos en serie en tiempo real (gratis): trazado de datos CSV, registro y más.
SimPlot (gratis): trazado de 4 canales.
Arduino Serial Plotter (gratis): construido en Arduino Editor en Herramientas> Serial Plotter .
(Esta es una wiki comunitaria, puede expandir la lista).
fuente
GnuPlot
Ventajas: es muy flexible, programable y disponible gratuitamente.
Desventajas: un poco complejo de aprender (pero descubrí cómo comenzar en unos minutos y bastante funcional en una o dos horas), se ejecuta en una ventana de terminal (si lo considera una desventaja).
Algo que encontré muy útil fue escribirlo para volver a cargar el archivo de registro de mi programa de terminal periódicamente, así que obtuve un gráfico dinámico a medida que avanzaba mi experimento.
Editar: Aquí está el script GnuPlot que lo traza:
fuente
Uso Matplotlib para cualquier trazado que necesite hacer.
No es específico de Arduino de ninguna manera, pero es un excelente kit de herramientas de trazado de Python .
He creado una serie de aplicaciones que trazan datos de una variedad de microcontroladores en tiempo real a un gráfico, pero realmente fue más un proceso de dos pasos: 1. Obtener datos del dispositivo a la computadora, 2. trazar datos en tiempo real .
Realmente, creo que deberías dividir tu pregunta en dos partes:
fuente
SerialPlot (gratis). Hace todo lo que necesita y mucho más.
Otras características:
fuente
Respondiendo a mi propia pregunta aquí ... Uso el Panel de control de Bridge como se mencionó.
Ventajas: muchas características.
Desventajas: difícil de configurar e informes de sintaxis / error muy pobres.
Para usar: debe escribir los datos de Arduino sobre el puerto serie un byte a la vez. Para un tipo de datos int que se vería de la siguiente manera:
En Bridge, el comando para leer datos es:
RX8 es el comando de lectura [h = 43] significa que el siguiente byte válido es "C" en ASCII, luego el byte superior de la clave1 y el byte inferior de la clave1
Se ve así en Bridge:
fuente
Puedes probar el serialchart . Es un programa bastante directo. Hace exactamente lo que pediste. La única desventaja es que requiere datos en formato CSV (no cumple con el primer punto).
Captura de pantalla de la página del proyecto:
fuente
Quizás te interese
Telemetry
Ver en Github . Es un protocolo de comunicación, muy fácil de usar, con una interfaz limpia, que permite la comunicación bidireccional con dispositivos Arduino / Mbed.Si no desea leer esta larga publicación, vea un tutorial de todas las características increíbles que contiene.
El poder de esta biblioteca proviene de la interfaz de línea de comandos del escritorio (que no requiere habilidades de programación en python).
Es capaz de abrir trazados de alto rendimiento (mucho más altos que lo que se puede hacer con matplotlib) simplemente escribiendo un comando .
El protocolo admite estructuras de datos complejas . Por ahora, se pueden enviar matrices y matrices dispersas desde la placa integrada.
Las gráficas abiertas desde la interfaz de línea de comando comprenden el tipo de datos, y para las matrices, en lugar de trazar cada muestra en función del tiempo, la muestra se trazará en función de su propio índice.
En un futuro cercano, se planea agregar soporte para coordenadas espaciales (datos xyz), que le permitirán trazar datos espaciales de inmediato. Una vez más, las tramas resolverán todo, trazarán sus datos en espacio 2D o 3D y podrá concentrarse en desarrollar su aplicación.
Creo que esas características son simplemente únicas para tal proyecto.
Pylelemetry CLI
Una vez instalado con
pip
, la línea de comando se puede iniciar conA continuación, puede
connect
,ls
(lista) recibió los temas,print
los datos recibidos sobre un tema,pub
(publicar) sobre un tema, o una abiertaplot
sobre un tema para mostrar los datos recibidos en tiempo real,Empezar
Wiki
PD: soy el autor.
Lo desarrollé porque no pude encontrar una solución que me permitiera:
todo lo anterior sin usar soluciones patentadas o GUI hinchadas.
Usando esta biblioteca, el tiempo para configurar una comunicación entre Arduino y la PC pasó generalmente de medio día a 5 minutos.
fuente
Nadie había mencionado el procesamiento, que es súper versátil. Puede hacer mucho más que solo trazar, pero si eso es todo lo que quiere hacer, puede usar la biblioteca gwoptics; conecte Arduino y Processing como se indica aquí .
fuente
Hice una herramienta equivalente en python que imprime datos en tiempo real desde el acelerómetro ADXL345. https://github.com/mba7/SerialPort-RealTime-Data-Plotter
puede ser útil para alguien
Simplemente elija el com serial y la velocidad y envíe los datos seriales en el siguiente formato:
Podría adaptarse fácilmente para cambiar este formato
fuente
Puede usar MATLAB Student Edition , esto también puede ahorrarle tiempo para análisis adicionales. Simplemente puede abrir el puerto COM en MATLAB y trazar la señal recibida y / o guardar la señal en el espacio de trabajo o lo que sea. ¡MATLAB hace que todo sea fácil!
fuente
El formato CSV es más versátil para cualquier dato (firmado / no firmado, varios tamaños y precisión).
La herramienta multiplataforma (escrita en Java / Scala) Scsvlog puede recibir / analizar cadenas CSV desde el puerto / socket serie, mostrar valores y dibujar gráficos (hasta 8).
fuente
Puede probar el software que desarrollé para esa propuesta. Su objetivo es ser fácil de usar. Consulte SerialGraphicator : cliente de puerto serie gratuito de código abierto capaz de graficar valores que se reciben en formato JSON.
fuente
Si bien no lo he usado yo mismo, "rqt_plot" que se ejecuta en la PC parece ser una forma popular de trazar datos en una PC que proviene de un puerto serie de un Arduino que ejecuta un boceto que incluye la biblioteca rosserial_arduino o la biblioteca ros_arduino_bridge .
fuente
Sé que esta es una pregunta muy antigua, pero recientemente creé una aplicación para Mac que resuelve muy bien este problema. Puede encontrar más información al respecto en www.bloonapp.com. Hay algunos videos de demostración en el sitio web que puede consultar.
fuente
Sé que probablemente buscabas una salida de GUI más avanzada, pero logré replicar una tarea que normalmente se haría con un osciloscopio:
usando el plotter en serie en el IDE de Arduino y un módulo ADC que puede obtener por $ 3 en eBay. Admito que es un poco tosco, pero puede valer la pena jugar con la herramienta por un tiempo, antes de invertir en soluciones de nivel Python / Matlab / ect. Fue extremadamente fácil de usar. No tomaría mucho agregar la grabación de la tarjeta SD al proceso.
Ver: https://edwardmallon.wordpress.com/2016/08/15/using-the-arduino-uno-as-a-basic-data-acquisition-system/
fuente
Visor de telemetría
Ventajas:
Desventajas
fuente
Serial Plotter es un programa simple que hice con Electron que recibe datos en el siguiente formato:
data1,data2,timestamp;
y los convierte en un gráfico en tiempo real.fuente
Casi útil Necesita:
Live Graph es una mejor opción y la uso junto con Tera Term, que obtiene los datos a través del enlace USB / serie (y los guarda en un archivo de registro que luego sondea Live Graph).
Live Graph es un poco defectuoso cuando almacena datos en caché y no he encontrado una manera de configurar una ventana móvil para mostrar los resultados. Además, mostrar múltiples gráficos requiere una escala manual, pero a pesar de todo esto, sigue siendo muy útil. Está escrito en Java, por lo que necesitará el JRE. Prefiero esto a tener que instalar Python como lo hacen algunos de los otros programas de gráficos. Otro inconveniente es que abre 4 ventanas diferentes, lo cual es un dolor cuando quiero cambiar entre él y Tera Term.
Todavía tengo que encontrar el software que es
fuente
?
botón en el editor.Estoy usando processing.org para trazar en serie desde Arduino. Fue la única aplicación que pude encontrar que me permitió hacer histogramas reales (por ejemplo, un millón de eventos en cien contenedores) y mostrar varios números de información además de la sigma media para cada canal. Dos problemas principales: A) resultó estar basado en Java sin bytes sin firmar B) sincronizar ig con la entrada requerida buffer circular y marcadores en los datos. (alta velocidad, sin apretón de manos)
fuente
SVisual Monitoreo y grabación de señales para Arduino y no solo.
Video de ejemplo
Descargar gratis)
fuente