Commit ae0e1c6f8c87b44a21ca661545e6f01103372cc5

Authored by Christopher Stone
1 parent 99dd1cb7
Exists in master

Demo with two simultaneous plots!

telemetry/code/monitor/graph_plotter.py
... ... @@ -19,8 +19,11 @@ red = [1, 0, 0]
19 19 green = [0, 1, 0]
20 20 blue = [0.2, 0.5, 1]
21 21  
22   -window = pyglet.window.Window(800, 480, resizable=True)
23   -window.set_caption("Raw data")
  22 +window0 = pyglet.window.Window(800, 480, resizable=True)
  23 +window0.set_caption("First graph")
  24 +
  25 +window1 = pyglet.window.Window(800, 480, resizable=True)
  26 +window1.set_caption("Second graph")
24 27  
25 28 starttime = time.time()
26 29  
... ... @@ -59,32 +62,27 @@ def plotline(target, xdata, ydata, colour):
59 62  
60 63  
61 64 xdata = [0]
62   -ydata = [0]
63   -ydatasmooth = [0]
64   -
  65 +y0data = [0]
  66 +y1data = [0]
65 67  
66 68 def poll_serial(foo):
67   - max_points = 250
68   - value = datafeed.readline()
  69 + max_points = 200
  70 + value0 = datafeed.readline().strip().split(", ")[0]
  71 + value1 = datafeed.readline().strip().split(", ")[1]
69 72 try:
70   - value = float(value)
71   - ydata.append(value)
72   - if len(ydata) > max_points:
73   - del ydata[0]
  73 + value0 = float(value0)
  74 + y0data.append(value0)
  75 + if len(y0data) > max_points:
  76 + del y0data[0]
  77 +
  78 + value1 = float(value1)
  79 + y1data.append(value1)
  80 + if len(y1data) > max_points:
  81 + del y1data[0]
74 82  
75 83 xdata.append(round(time.time() - starttime, 3))
76 84 if len(xdata) > max_points:
77   - del xdata[0]
78   -
79   - avg = 0;
80   - for n in range(0, len(ydata)):
81   - weight = (1-float(n/len(ydata)))/max_points
82   - avg += weight * ydata[n]
83   -
84   - ydatasmooth.append(avg)
85   - if len(ydatasmooth) > max_points:
86   - del ydatasmooth[0]
87   -
  85 + del xdata[0]
88 86 except:
89 87 pass
90 88  
... ... @@ -94,12 +92,14 @@ def drawgraph(target, xpoints, ypoints, colour):
94 92 plotline(target, xpoints, ypoints, colour)
95 93 drawgrid(target, 16, 10, [min(xpoints), max(xpoints)], [min(ypoints), max(ypoints)])
96 94  
97   -@window.event
  95 +@window0.event
98 96 def on_draw():
99   - window.clear()
100   - drawgraph(window, xdata, ydata, blue)
  97 + window0.clear()
  98 + drawgraph(window0, xdata, y0data, red)
101 99  
102   -
103   -
  100 +@window1.event
  101 +def on_draw():
  102 + window1.clear()
  103 + drawgraph(window1, xdata, y1data, green)
104 104  
105 105 pyglet.app.run()
106 106 \ No newline at end of file
... ...
telemetry/code/robot/analogread_demo/analogread_demo.ino
... ... @@ -10,11 +10,15 @@
10 10  
11 11 void setup() {
12 12 Serial.begin(9600);
13   - Serial.println("Hello, World");
14 13 pinMode(13, OUTPUT);
15 14 }
16 15  
17 16 void loop() {
18   - float avalue = analogRead(A0);
19   - Serial.println(avalue);
  17 + float a0value = analogRead(A0);
  18 + float a7value = analogRead(A7);
  19 +
  20 + Serial.print(a0value);
  21 + Serial.print(", ");
  22 + Serial.println(a7value);
  23 + delay(20);
20 24 }
... ...