Linkit ett oscilloskop (5 / 5 steg)
Steg 5: bearbetning
För programvaror att visa den våg som vi skulle använda bearbetning, behöver du ladda ner bearbetning och kopiera koden nedan och klistra in den i bearbetning. Se till att du väljer en lämplig COM-port som Linkit en är ansluten.
import processing.serial.*;
Seriell port; Skapa objekt från seriella klass
int val; Uppgifterna från den seriella porten
int [] värden.
float zoom;
void setup()
{
size(1280, 480);
Öppna den 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].
Zoom = 1.0f;
Smooth();
}
int getY(int val) {
tillbaka (int) (höjd - val/1023.0f * (höjd - 1));
}
int getValue () {
int värde = -1;
medan (port.available() > = 3) {
om (port.read() == 0xff) {
värde = (port.read() << 8) | (port.read());
}
}
returnera vä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() {
Växla (nyckel) {
fallet "+":
zoom * = 2.0f;
println(zoom);
om ((int) (bredd / zoom) < = 1)
zoom / = 2.0f;
bryta;
fallet "-":
zoom / = 2.0f;
om (zooma < 1.0f)
zoom * = 2.0f;
bryta;
}
}
void draw()
{
Background(0);
drawGrid();
Val = getValue ();
om (val! = -1) {
pushValue(val);
}
drawLines();
}