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,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 | } |