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,8 +19,11 @@ red = [1, 0, 0]
19 green = [0, 1, 0] 19 green = [0, 1, 0]
20 blue = [0.2, 0.5, 1] 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 starttime = time.time() 28 starttime = time.time()
26 29
@@ -59,32 +62,27 @@ def plotline(target, xdata, ydata, colour): @@ -59,32 +62,27 @@ def plotline(target, xdata, ydata, colour):
59 62
60 63
61 xdata = [0] 64 xdata = [0]
62 -ydata = [0]  
63 -ydatasmooth = [0]  
64 - 65 +y0data = [0]
  66 +y1data = [0]
65 67
66 def poll_serial(foo): 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 try: 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 xdata.append(round(time.time() - starttime, 3)) 83 xdata.append(round(time.time() - starttime, 3))
76 if len(xdata) > max_points: 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 except: 86 except:
89 pass 87 pass
90 88
@@ -94,12 +92,14 @@ def drawgraph(target, xpoints, ypoints, colour): @@ -94,12 +92,14 @@ def drawgraph(target, xpoints, ypoints, colour):
94 plotline(target, xpoints, ypoints, colour) 92 plotline(target, xpoints, ypoints, colour)
95 drawgrid(target, 16, 10, [min(xpoints), max(xpoints)], [min(ypoints), max(ypoints)]) 93 drawgrid(target, 16, 10, [min(xpoints), max(xpoints)], [min(ypoints), max(ypoints)])
96 94
97 -@window.event 95 +@window0.event
98 def on_draw(): 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 pyglet.app.run() 105 pyglet.app.run()
106 \ No newline at end of file 106 \ No newline at end of file
telemetry/code/robot/analogread_demo/analogread_demo.ino
@@ -10,11 +10,15 @@ @@ -10,11 +10,15 @@
10 10
11 void setup() { 11 void setup() {
12 Serial.begin(9600); 12 Serial.begin(9600);
13 - Serial.println("Hello, World");  
14 pinMode(13, OUTPUT); 13 pinMode(13, OUTPUT);
15 } 14 }
16 15
17 void loop() { 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 }