LinkitONE DIY oscilloskop (4 / 9 steg)
Steg 4: Utveckla gränssnittet graf
Vi kommer att göra den GUI-delen med bearbetning programvara. Först och främst hämtning från www.processing.org och installera senaste versionen.
Koden är verkligen enkelt, vi bara tar avläsningar från följetongen och sedan rita en graf. Ladda ner koden bifogas i detta steg.
KOD:
---------
import processing.serial.*;
Seriell port; Skapa objekt från seriella klass int val; Uppgifterna från de seriella porten int [] värdena. float zoom;
void setup() {size(1280, 480); / / öppna porten som styrelsen är ansluten till och använda samma hastighet (9600 bps) port = ny följetong (denna, Serial.list() [0], 9600); värden = nya int [bredd]; zooma = 1.0f; smooth();}
int getY(int val) {return (int) (höjd - val/1023.0f * (höjd - 1));}
int getValue () {int värde = -1; stunder (port.available() > = 3) {om (port.read() == 0xff) {värde = (port.read() << 8) | (port.read()); {}} returvärdet; }
void pushValue (int value) {för (int jag = 0; jag
void drawLines() {stroke(255); int displayWidth = (int) (bredd / zoom); int k = values.length - displayWidth; int x0 = 0; int y0 = getY(values[k]); för (int jag = 1; jag
void drawGrid() {stroke (255, 0, 0), linje (0, höjd/2, bredd, höjd/2);}
void keyReleased() {switch (nyckel) {fallet '+': Zooma * = 2.0f; println(zoom); om ((int) (bredd / zoom) < = 1) zoom / = 2.0f; break; fall "-": zoom / = 2.0f; om (zooma < 1.0f) zooma * = 2.0f; break;}}
Annullera draw() {background(0); drawGrid(); val = getValue (), om (val! = -1) {pushValue(val);} drawLines();}
--------
När du har gjort detta flytta till nästa steg och börja testa din oscilloskop!