Dies ist eine alte Version des Dokuments!
import processing.serial.*; Serial myPort; int posX=0; //Die X-Koordinate des gezeichneten Graphen. int varY=400;//Von diesem Wert werde ich die Y-Koordinate abziehen, um //das Koordinatensystem "umzudrehen". boolean nachRechts=true; boolean starten=false; int start=99; int winkel=0; int wertezaehler=0; float xPunkt=0; float yPunkt=0; void setup () { String[] portNames=Serial.list(); println(portNames); myPort = new Serial(this, portNames[portNames.length-1], 115200); size(600, 600); //X-Achse auf 180 begrenzt, da der Servo auch nur //bis 180° begrenzt ist. background(0); stroke(255); line(300, 300, 600, 300); frameRate(2000); for(int i=299;i<301;i++){ point(299,i); point(i,299); } for(int i=299;i<302;i++){ point(i,301); point(301,i); } for(int i=299;i<303;i++){ point(i,302); point(302,i); } } void draw () { float[] data=readLineFromSerial(myPort); if (data.length>0) { println( "\ngot fresh data!"); } for(int i=0;i<data.length;i++){ if(starten==true){ if(xPunkt!=0 && yPunkt!=0){ line(xPunkt, yPunkt, ((cos(radians(winkel))*((100+data[i])-35))*10)+300, ((sin(radians(winkel))*((100+data[i])-35))*10)+300); } print(data[i]); print("\t"); point(((cos(radians(winkel))*((100+data[i])-35))*10)+300,((sin(radians(winkel))*((100+data[i])-35))*10)+300); xPunkt=((cos(radians(winkel))*((100+data[i])-35))*10)+300; yPunkt=((sin(radians(winkel))*((100+data[i])-35))*10)+300; if(nachRechts==true && wertezaehler%4==0){ winkel++; } else if(nachRechts==false && wertezaehler%4==0){ winkel--; } if(winkel==360){ nachRechts=false; } if(winkel==0){ nachRechts=true; } } wertezaehler++; if(data[i]==start){ starten=true; } } } float[] readLineFromSerial(Serial port) { byte temp[] = port.readBytesUntil('\n'); if (temp == null) { return new float[0]; } else { String inBuffer= new String(temp); inBuffer=trim(inBuffer); println(inBuffer); float[] numbers=float(split(inBuffer, "\t")); return numbers; } }