xxxxxxxxxx
97
let serial; // variable to hold an instance of the serialport library
let portName = "/dev/tty.usbmodem21201"; // fill in your serial port name here
let inData;
function setup() {
createCanvas(500, 500);
serial = new p5.SerialPort(); // make a new instance of the serialport library
serial.on("list", printList); // set a callback function for the serialport list event
serial.on("connected", serverConnected); // callback for connecting to the server
serial.on("open", portOpen); // callback for the port opening
serial.on("data", serialEvent); // callback for when new data arrives
serial.on("error", serialError); // callback for errors
serial.on("close", portClose); // callback for the port closing
serial.list(); // list the serial ports
serial.open(portName); // open a serial port
}
function serverConnected() {
console.log("connected to server.");
}
function portOpen() {
console.log("the serial port opened.");
}
function serialEvent() {
inData = Number(serial.read());
}
function serialError(err) {
console.log("Something went wrong with the serial port. " + err);
}
function portClose() {
console.log("The serial port closed.");
}
// get the list of ports:
function printList(portList) {
// portList is an array of serial port names
for (var i = 0; i < portList.length; i++) {
// Display the list the console:
console.log(i + portList[i]);
}
}
function draw() {
background(0);
fill(255);
text("sensor value: " + inData, 30, 50);
// ellipse(200,200,inData)
petals();
//center of flower
stroke(255);
fill(255, 174, 13);
ellipse(250, 250, inData);
}
function petals() {
push();
stroke(255);
fill(255, 244, 25);
translate(250, 250); //changes 0,0 point to 250, 250
rotate(radians(40));
ellipse(75, 0, inData,50); // start from 75 (tip of ellipse, 150/2), since ellipse is 150 wide
rotate(radians(40));
ellipse(75, 0, inData,50);
rotate(radians(40));
ellipse(75, 0, inData,50);
rotate(radians(40));
ellipse(75, 0, inData,50);
rotate(radians(40));
ellipse(75, 0, inData,50);
rotate(radians(40));
ellipse(75, 0, inData,50);
rotate(radians(40));
ellipse(75, 0, inData,50);
rotate(radians(40));
ellipse(75, 0, inData,50);
rotate(radians(40));
ellipse(75, 0, inData,50);
pop();
//OR
/* for (let i = 0; i < 20, i ++){
rotate(radians(360/20));
ellipse(60, 0, 120, 20);
} */
}