/* * Sequence Control * Copyright Sternlab 2006. * licenced under the Creative Commons Attribution 2.5 license * viewable at: http://creativecommons.org/licenses/by/2.5/ * contact[at]sternlab[dot]org * * This program animates images and uses an arduino-powered input device to control that animation. * More information about this project can be found at sternlab.org. */ import processing.serial.*; int numFrames = 20; // The number of frames in the animation int frame = 0; int speed = 15; //initial framerate PImage[] images = new PImage[numFrames]; Serial port; String portname = "/dev/cu.usbserial-A3000YYR"; int baudrate = 9600; int value = 0; //for storing intial serial data String buffer=""; //for buffering up serial data float value1 = 0.0; //for converting buffered serial data to numbers int stepper = 1; //for stepping frames void setup() { size(720, 480); key = 'a'; for(int i=0; i 0){ value = port.read(); serialEvent(value); //println(value); } frame+=stepper; if(frame >= numFrames){ frame = 0; } else if(frame < 0){ frame = numFrames-1; } image(images[frame], 0, 0); //println(speed); } void serialEvent(int serial){ if(serial == 'P'){ //pause stepper = 0; } else if(serial == 'R'){ //step frame reverse stepper = 0; frame--; } else if(serial == 'F'){ //step frame forward stepper = 0; frame++; }else{ stepper = 1; if(serial!=10) { //10 is a line break // add event to buffer buffer += char(serial); } else { // if serial is line break set set the speed and clear the buffer value1 = float(buffer); speed = int(value1/9.0 + 1); //println(speed); frameRate(speed); buffer=""; } } println(speed); }