xxxxxxxxxx
81
let door;
let door2;
let trick;
let treat;
let serial;
let distance = "waiting for data";
let state = "waiting for data";
let doorCanPlay = false;
let stateCanPlay = false;
function preload() {
door = loadSound('door.mp3');
door2 = loadSound('door2.mp3');
treat = loadSound('treat.mp3');
trick = loadSound('trick.mp3');
}
function setup() {
createCanvas(400, 400);
//trick.loop();
// Instantiate our SerialPort object
serial = new p5.SerialPort();
serial.open("/dev/cu.usbmodem1421");
serial.on('data', gotData);
// setInterval(function() {
// console.log("HELLO");
// serial.write(1);
// }, 1000);
}
function draw() {
if (distance > 30) {
if (doorCanPlay) {
door.play();
doorCanPlay = false;
}
} else {
doorCanPlay = true;
}
if (distance < 30) {
door.pause();
}
print(distance);
if (state == 0) {
if (stateCanPlay) {
treat.loop();
stateCanPlay = false;
}
} else if (state == 1) {
if (stateCanPlay) {
trick.loop();
stateCanPlay = false;
}
} else if (state == 2) {
stateCanPlay = true;
treat.pause();
trick.pause();
}
console.log(state)
}
function gotData() {
let currentString = serial.readStringUntil("\r\n"); // read the incoming string
trim(currentString); // remove any trailing whitespace
if (!currentString) return; // if the string is empty, do no more
//console.log(currentString); // println the string
var sensorReadings = split(currentString, ",");
if (sensorReadings.length > 1) {
distance = int(sensorReadings[0]); // save it for the draw method
state = int(sensorReadings[1]);
}
}