Necesito trazar datos en serie de Arduino.
Requiero soporte para:
Como trazar datos en serie desde Arduino es una necesidad común, mi pregunta es: ¿Qué programas / utilidades están disponibles para el trazado de datos en serie de Arduino que satisfagan las necesidades anteriores?
¿Cuáles son las ventajas / desventajas del método que usted ha sugerido?
Ventajas: Es muy flexible, se puede programar y está disponible gratuitamente.
Desventajas: Un poco complejo de aprender (pero descubrí cómo empezar en unos minutos, y bastante funcional en una hora o dos), se ejecuta en una ventana de terminal (si consideras eso una desventaja).
Algo que me resultó muy útil fue programarlo para que recargara periódicamente el archivo de registro de mi programa de terminal, de modo que obtuviera un gráfico dinámico a medida que avanzaba mi experimento.
Edición: Aquí está el script GnuPlot que lo traza:
#!/usr/local/bin/gnuplot -rv
# Note reverse video here ^^^ til I find a way to put it in the script
# gpFanCtl - Plots DiffThermo fan controller data (aloft, alow, Tdiff, fan-state).
# $Id: gpFanCtl,v 1.8 2014-04-28 09:40:51-04 jrobert Exp jrobert $
set terminal x11 1 noraise
set xtics 3600
set mxtics 4
set xdata time
set ytics 1 nomirror
set mytics 2
set y2range [0:3]
set y2tics 1
set my2tics 4
set grid
set ylabel 'Temperature, degC'
set y2label 'Tdiff, degC' textcolor rgb '#00CD63'
cd '/Users/jrobert/Desktop'
plot "Logfile.txt" using ($0*4):1 title "Aloft" with lines lc rgb "red",\
"Logfile.txt" using ($0*4):2 title "Alow" with lines lc rgb "#3982FF",\
"Logfile.txt" using ($0*4):3 title "Tdiff" with lines lc rgb "#00CD63" axis x1y2,\
"Logfile.txt" using ($0*4):4 title "Fan" with lines lc rgb "orange" axis x1y2;
pause 4
refresh
reread
Utilizo Matplotlib para cualquier trazado que necesite hacer.
No es específico de arduino en modo alguno, pero es un excelente Python conjunto de herramientas de trazado.
He construido un número de aplicaciones que trazan los datos de una variedad de microcontroladores en tiempo real a un gráfico, pero que era realmente más de un proceso de dos pasos: 1. 1. Obtener los datos del dispositivo en el ordenador, 2. trazar los datos en tiempo real.
En realidad, creo que debería dividir su pregunta en dos partes:
Respondiendo a mi propia pregunta aquí.. Yo uso Bridge Control Panel como se ha mencionado.
Ventajas: Un montón de características.
Desventajas: Difícil de configurar y muy pobre sintaxis / informes de error.
Para usar: Tienes que escribir los datos Arduino a través del puerto serie un byte a la vez. Para un tipo de datos int que se vería como sigue:
// RX8 [h=43] @1Key1 @0Key1
Serial.print("C");
Serial.write(data>>8);
Serial.write(data&0xff);
En Bridge el comando para leer los datos es:
RX8 [h=43] @1Key1 @0Key1
RX8 es el comando de lectura [h=43] significa que el siguiente byte válido es "C" en ASCII luego el Byte Alto de la Tecla1 luego el Byte Bajo de la Tecla1
Se ve así en Bridge: