Commit ae0e1c6f8c87b44a21ca661545e6f01103372cc5
1 parent
99dd1cb7
Exists in
master
Demo with two simultaneous plots!
Showing
2 changed files
with
34 additions
and
30 deletions
Show diff stats
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 | } | ... | ... |