Skip to content

Instantly share code, notes, and snippets.

@danaabs
Created October 14, 2015 19:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danaabs/7a46fce0eba2535c8327 to your computer and use it in GitHub Desktop.
Save danaabs/7a46fce0eba2535c8327 to your computer and use it in GitHub Desktop.
ITP Emotional Swings
var serial;
var portName = '/dev/cu.usbmodemfd121';
var inData;
var PosX = 0;
var rainbow;
var volume = 0;
var sad;
var clown;
var happy;
function preload() {
rainbow = loadImage("bullshit.png");
sad = loadImage("sad.png");
happy = loadSound('happy.mp3');
clown = loadSound('clown.mp3');
}
function setup() {
createCanvas(1200, 600);
happy.setVolume(0.8);
clown.setVolume(0.8);
clown.play();
happy.play();
frameRate(10);
serial = new p5.SerialPort(); //new instance of lib
serial.on('list', printList); //set a callback fn
serial.on('connected', serverConnected); //callback for connecting
serial.on('open', portOpen);
serial.on('data', serialEvent); //callback for new data
serial.on('error', serialError);
serial.on('close', portClose);
serial.list(); //list the serial ports
serial.open(portName);
}
function printList(portList) {
//portList is an array of serial port names
for(var i = 0; i < portList.length; i++) {
//dsiplay the list in the console
println(i + " " + portList[i]);
}
}
function serverConnected() {
println('connected to server.');
}
function portOpen() {
println('the serial port opened.')
}
function serialEvent() {
inData = Number(serial.read());
}
function serialError(err) {
println('Something went wrong with the serial port. ' + err);
}
function portClose() {
println('The serial port closed.');
}
function draw() {
background(255);
fill(random(0, 255), 200, 000);
noStroke();
image(rainbow, 300, inData*2.5, 480, 300);
image(sad, 450, -400 + inData*2, 200, 190);
ellipse(random(0,300), random(0, 600), inData, inData);
ellipse(random(780, 1200), random(0, 600), inData, inData);
fill(random(0, 255), 0, 200);
ellipse(random(0,300), random(0, 600), inData, inData);
ellipse(random(780, 1200), random(0, 600), inData*2, inData*2);
textSize(40);
textWidth(10);
textStyle(BOLD);
text("ITP!", random(0, 900), random(0, 600), 100, 100);
if (inData < 120 && clown.isPlaying()) {
clown.pause();
}
if (inData > 120 && happy.isPlaying()) {
happy.pause();
}
if (inData > 120 && !clown.isPlaying()) {
clown.play();
}
if (inData < 120 && !happy.isPlaying()) {
happy.play();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment