Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import processing.serial.*;
- import controlP5.*;
- Serial myPort;
- ControlP5 cp5;
- ArrayList<Integer> leds = new ArrayList<Integer>();
- int off = 0;
- int ledSize = 20;
- long last;
- int interval = 100;
- float y = 0;
- int noiseDetail = 2;
- float amplitude = 10;
- int inByte = -1;
- int phase = 0;
- void setup() {
- size(2300, 1080, P2D);
- colorMode(HSB, 100);
- off = (width - (ledSize*100))/2;
- for (int i = 0; i < 100; i++) {
- leds.add(color(100, 100, 100));
- }
- cp5 = new ControlP5(this);
- cp5.addSlider("noiseDetail")
- .setPosition(20, 20)
- .setSize(200, 30)
- .setRange(1, 8)
- .setNumberOfTickMarks(8);
- cp5.addSlider("amplitude")
- .setPosition(20, 60)
- .setSize(200, 30)
- .setRange(2, 20);
- cp5.addSlider("interval")
- .setPosition(20, 100)
- .setSize(200, 30)
- .setRange(10, 200);
- String portName = Serial.list()[1];
- myPort = new Serial(this, portName, 250000);
- }
- void serialEvent(Serial myPort) {
- inByte = myPort.read();
- println("Read: "+inByte);
- }
- void draw() {
- if (phase == 0) {
- myPort.write((int)'a');
- phase = 1;
- println("Sent A, waiting for B...");
- }
- if (phase == 1) {
- if (inByte == 'b') {
- phase = 2;
- println("Got B, Sending C...");
- return;
- }
- }
- if (phase == 2) {
- myPort.write((int)'c');
- phase = 3;
- println("Sent C, waiting for D...");
- }
- if (phase == 3) {
- if (inByte == 'd') {
- phase = 4;
- println("Got D, Ready to Start!");
- return;
- }
- }
- if (phase == 4) {
- noiseDetail(noiseDetail, 0.5);
- float o = 0;
- for (int i = 0; i < 100; ++i) {
- int c = color(noise((int) o, y) * amplitude, 100, 100);
- leds.set(i, c);
- o += 0.5;
- }
- if (millis() - last > interval) {
- y += 0.1;
- transmitLeds();
- last = millis();
- }
- drawLeds();
- }
- }
- void transmitLeds() {
- //String data = "";
- //for (int l = 0; l < leds.size(); l++) {
- // data += hex(leds.get(l), 6);
- // myPort.write(hex(leds.get(l), 6));
- //}
- //data += 'X';
- myPort.write((char)random(48, 57));
- myPort.write((char)random(48, 57));
- myPort.write('x');
- //transmit(data);
- }
- void transmit(String data) {
- for (int i = 0; i < data.length(); i++) myPort.write(data.charAt(i));
- print("Transmitted... ");
- }
- void drawLeds() {
- background(0);
- for (int l = 0; l < leds.size(); l++) {
- // int c = leds.get(l);
- noStroke();
- fill(leds.get(l));
- rect(off + (ledSize*l), 540, ledSize, ledSize);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment