ws2812-achterbahn/achterbahnconfig/achterbahnconfig/achterbahnconfig.pde

231 lines
4.7 KiB
Plaintext

import controlP5.*;
import processing.serial.*;
ControlP5 cp5;
Serial myPort; // Create object from Serial class
int pixelnumber;
int last_pixelnumber;
int pixelvalue;
Slider slPixel;
Slider slPixelValue;
int numpixels=600;
int maxpixelvalue=254;
Slider slSpawnPos;
int spawnpos;
Slider slSpawnLength;
int spawnlength;
int maxspawnlength=100;
Slider slSpawnStartvel;
int spawnstartvel;
int maxspawnstartvel=100;
Slider slSpawnStartacc;
int spawnstartacc;
int maxspawnstartacc=100;
Slider slSpawnMass;
int spawnmass;
int maxspawnmass=10000;
Slider slSpawnColor;
int spawncolor;
int maxspawncolor=255;
void setup() {
size(700, 300);
frameRate(100);
background(0);
cp5 = new ControlP5(this);
/*
slLinks = cp5.addSlider("links")
.setRange((float)-1, (float)1)
.setValue(0)
.setPosition(10,10)
.setSize(400,20)
;
slRechts = cp5.addSlider("rechts")
.setRange((float)-1,(float)1)
.setValue(0)
.setPosition(10,40)
.setSize(400,20);
*/
slPixel = cp5.addSlider("pixelnumber")
.setRange(0,numpixels-1)
.setValue(0)
.setPosition(10,20)
.setSize(numpixels,20);
slPixelValue = cp5.addSlider("pixelvalue")
.setRange(0,maxpixelvalue)
.setValue(0)
.setPosition(10,50)
.setSize(maxpixelvalue,20);
cp5.addButton("Set")
.setPosition(10, 80)
.setSize(60, 60);
cp5.addButton("ClearHeightmap")
.setPosition(10, 80+60+5)
.setSize(100, 10);
cp5.addButton("load_heightmap")
.setPosition(10, 80+60+5+15)
.setSize(100, 10);
cp5.addButton("save_heightmap")
.setPosition(10, 80+60+5+15*2)
.setSize(100, 10);
cp5.addButton("Remove")
.setPosition(100, 80)
.setSize(50, 50);
cp5.addButton("SpawnRandom")
.setPosition(160, 80+55)
.setSize(50, 30);
cp5.addButton("Spawn")
.setPosition(160, 80)
.setSize(50, 50);
slSpawnPos = cp5.addSlider("spawnpos")
.setRange(0,numpixels-1)
.setValue(590)
.setPosition(220,80)
.setSize(300,10);
slSpawnLength = cp5.addSlider("spawnlength")
.setRange(0,maxspawnlength)
.setValue(30)
.setPosition(220,80+15*1)
.setSize(maxspawnlength,10);
slSpawnStartvel = cp5.addSlider("spawnstartvel")
.setRange(-maxspawnstartvel,maxspawnstartvel)
.setValue(-20)
.setPosition(220,80+15*2)
.setSize(maxspawnstartvel*2,10);
slSpawnStartacc = cp5.addSlider("spawnstartacc")
.setRange(0,maxspawnstartacc)
.setValue(0)
.setPosition(220,80+15*3)
.setSize(maxspawnstartacc,10);
slSpawnMass = cp5.addSlider("spawnmass")
.setRange(1,maxspawnmass)
.setValue(1000)
.setPosition(220,80+15*4)
.setSize(maxspawnmass/100-1,10);
slSpawnColor = cp5.addSlider("spawncolor")
.setRange(0,maxspawncolor)
.setValue(150)
.setPosition(220,80+15*5)
.setSize(maxspawncolor,10);
cp5.addButton("Debug")
.setPosition(10, 200)
.setSize(100, 30);
cp5.addButton("Run")
.setPosition(10, 240)
.setSize(100, 30);
cp5.addButton("FX_Scanner")
.setPosition(200, 200)
.setSize(100, 20);
cp5.addButton("FX_Flash")
.setPosition(200, 220)
.setSize(100, 20);
myPort = new Serial(this, "/dev/ttyUSB0", 115200);
}
void Set() {
String writeserial="setpx="+pixelnumber+","+pixelvalue+"\n";
myPort.write(writeserial);
}
void ClearHeightmap(){
String writeserial="clear\n";
myPort.write(writeserial);
}
void load_heightmap(){
String writeserial="load\n";
myPort.write(writeserial);
}
void save_heightmap(){
String writeserial="save\n";
myPort.write(writeserial);
}
void Debug() {
String writeserial="debug\n";
myPort.write(writeserial);
}
void Run() {
String writeserial="run\n";
myPort.write(writeserial);
}
void Remove() {
String writeserial="remove\n";
myPort.write(writeserial);
}
void Spawn() {
//String writeserial="spawn\n"; //random
String writeserial="spawn="+spawnpos+","+spawnlength+","+spawnstartvel+","+spawnstartacc+","+spawnmass+","+spawncolor+"\n";
myPort.write(writeserial);
}
void SpawnRandom() {
//String writeserial="spawn\n"; //random
String writeserial="spawn\n";
myPort.write(writeserial);
}
void FX_Scanner() {
String writeserial="fx_scanner\n";
myPort.write(writeserial);
}
void FX_Flash() {
String writeserial="fx_flash\n";
myPort.write(writeserial);
}
void draw() {
if (last_pixelnumber!=pixelnumber){
last_pixelnumber=pixelnumber;
String writeserial="px="+pixelnumber+"\n";
myPort.write(writeserial);
}
String inBuffer = myPort.readString();
if (inBuffer != null) {
println(inBuffer);
}
}