Auto-connect: https://editor.p5js.org/aaronsherwood/sketches/kN6wwHyat
Original: https://editor.p5js.org/aaronsherwood/sketches/q2Pl77SWl
Exercise 1 –
The ellipse was controlled on the horizontal axis with the potentiometer.
void setup() { Serial.begin(9600); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); int sensorValue = analogRead(A0); Serial.println(sensorValue); } }
https://editor.p5js.org/hindyounus727/sketches/B7U2fCaNp
Exercise 2 –
The LED brightness was controlled by the mouseX value, and is constrained in case it passes the canvas width.
int lightValue = 0; void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { int lightValue = Serial.read(); analogWrite(5, lightValue); } // read the incoming byte: int inByte = Serial.read(); int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.print(","); sensorValue = analogRead(A1); Serial.print(sensorValue); Serial.println(); }
https://editor.p5js.org/hindyounus727/sketches/SoQkb_ztQ
Exercise 3 –
void setup() { Serial.begin(9600); pinMode(2, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(2, inByte); int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); } }
https://editor.p5js.org/mz2934/sketches/kUwzGxtQ5
p5.js
Arduino
void setup() { Serial.begin(9600); pinMode(2, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(2, inByte); int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); } }
p5.js
Arduino
int lightValue = 0; void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { int lightValue = Serial.read(); analogWrite(5, lightValue); } // read the incoming byte: int inByte = Serial.read(); int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.print(","); sensorValue = analogRead(A1); Serial.print(sensorValue); Serial.println(); }
p5.js
Arduino
void setup() { Serial.begin(9600); pinMode(2, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(2, inByte); int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); } }
N/A
let serial; // variable to hold an instance of the serialport library let portName = "COM3"; // fill in your serial port name here let xPos=0; let yPos=240; let onOff=0; let val; function setup() { createCanvas(640, 480); 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 draw() { background(255); val = map(mouseX, 0, width, 0, 255); } // get the list of ports: function printList(portList) { // portList is an array of serial port names for (let i = 0; i < portList.length; i++) { // Display the list the console: print(i + " " + portList[i]); } } function serverConnected() { print("connected to server."); } function portOpen() { print("the serial port opened."); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readLine(); serial.write(val); } function serialError(err) { print("Something went wrong with the serial port. " + err); } function portClose() { print("The serial port closed."); } /* Arduino code void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(5,inByte); Serial.println(); } } */
let serial; // variable to hold an instance of the serialport library let portName = "COM7"; // fill in your serial port name here let velocity; let gravity; let position; let acceleration; let wind; let drag = 0.99; let mass = 50; let windVal; function setup() { createCanvas(640, 360); noFill(); position = createVector(width/2, 0); velocity = createVector(0,0); acceleration = createVector(0,0); gravity = createVector(0, 0.5*mass); wind = createVector(0,0); 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 } // get the list of ports: function printList(portList) { // portList is an array of serial port names for (let i = 0; i < portList.length; i++) { // Display the list the console: print(i + " " + portList[i]); } } function serverConnected() { print("connected to server."); } function portOpen() { print("the serial port opened."); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readLine(); print(inString); if (inString.length > 0){ windVal = map(inString, 0, 1023, -3, 3); } } function serialError(err) { print("Something went wrong with the serial port. " + err); } function portClose() { print("The serial port closed."); } function draw() { background(255); wind.x = windVal; applyForce(wind); applyForce(gravity); velocity.add(acceleration); velocity.mult(drag); position.add(velocity); acceleration.mult(0); ellipse(position.x,position.y,mass,mass); if (position.y > height-mass/2 - 25){ serial.write(255); } else serial.write(0); if (position.y > height-mass/2) { velocity.y *= -0.9; // A little dampening when hitting the bottom position.y = height-mass/2; } } function applyForce(force){ // Newton's 2nd law: F = M * A // or A = F / M let f = p5.Vector.div(force, mass); acceleration.add(f); } function keyPressed(){ if (keyCode==LEFT_ARROW){ wind.x=-1; } if (keyCode==RIGHT_ARROW){ wind.x=1; } if (key==' '){ mass=random(15,80); position.x=width/2; position.y=-mass; velocity.mult(0); } } /* Arduino code void setup() { Serial.begin(9600); pinMode(2, OUTPUT); while (Serial.available() <= 0) { Serial.println("0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(2, inByte); int WindPower = analogRead(A0); Serial.println(WindPower); } } */
EX1
The work didn’t get saved by mistake.
EX2
let serial; // variable to hold an instance of the serialport library let portName = "COM3"; // fill in your serial port name here let xPos=0; let yPos=240; let onOff=0; let val; function setup() { createCanvas(640, 480); 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 draw() { background(255); val = map(mouseX, 0, width, 0, 255); } // get the list of ports: function printList(portList) { // portList is an array of serial port names for (let i = 0; i < portList.length; i++) { // Display the list the console: print(i + " " + portList[i]); } } function serverConnected() { print("connected to server."); } function portOpen() { print("the serial port opened."); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readLine(); serial.write(val); } function serialError(err) { print("Something went wrong with the serial port. " + err); } function portClose() { print("The serial port closed."); } /* Arduino code void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(5,inByte); Serial.println(); } } */
EX3
let serial; // variable to hold an instance of the serialport library let portName = "COM7"; // fill in your serial port name here let velocity; let gravity; let position; let acceleration; let wind; let drag = 0.99; let mass = 50; let windVal; function setup() { createCanvas(640, 360); noFill(); position = createVector(width/2, 0); velocity = createVector(0,0); acceleration = createVector(0,0); gravity = createVector(0, 0.5*mass); wind = createVector(0,0); 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 } // get the list of ports: function printList(portList) { // portList is an array of serial port names for (let i = 0; i < portList.length; i++) { // Display the list the console: print(i + " " + portList[i]); } } function serverConnected() { print("connected to server."); } function portOpen() { print("the serial port opened."); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readLine(); print(inString); if (inString.length > 0){ windVal = map(inString, 0, 1023, -3, 3); } } function serialError(err) { print("Something went wrong with the serial port. " + err); } function portClose() { print("The serial port closed."); } function draw() { background(255); wind.x = windVal; applyForce(wind); applyForce(gravity); velocity.add(acceleration); velocity.mult(drag); position.add(velocity); acceleration.mult(0); ellipse(position.x,position.y,mass,mass); if (position.y > height-mass/2 - 25){ serial.write(255); } else serial.write(0); if (position.y > height-mass/2) { velocity.y *= -0.9; // A little dampening when hitting the bottom position.y = height-mass/2; } } function applyForce(force){ // Newton's 2nd law: F = M * A // or A = F / M let f = p5.Vector.div(force, mass); acceleration.add(f); } function keyPressed(){ if (keyCode==LEFT_ARROW){ wind.x=-1; } if (keyCode==RIGHT_ARROW){ wind.x=1; } if (key==' '){ mass=random(15,80); position.x=width/2; position.y=-mass; velocity.mult(0); } } /* Arduino code void setup() { Serial.begin(9600); pinMode(2, OUTPUT); while (Serial.available() <= 0) { Serial.println("0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(2, inByte); int WindPower = analogRead(A0); Serial.println(WindPower); } } */
Marium and I worked together in order to complete these tasks.
Exercise 1 – make something that uses only one sensor on Arduino and makes the ellipse in processing move on the horizontal axis, in the middle of the screen, and nothing on Arduino is controlled by processing
We made it so whenever the potientometer is rotated, the ball moves along the horizontal axis, in the middle of the screen.
Processing code:
let serial; // variable to hold an instance of the serialport library let portName = "/dev/cu.usbmodem14501"; // fill in your serial port name here let xPos=0; let yPos=0; let onOff=0; function setup() { createCanvas(640, 480); 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 draw() { background(255); ellipse(xPos, yPos, 50, 50); // draw the circle } // get the list of ports: function printList(portList) { // portList is an array of serial port names for (let i = 0; i < portList.length; i++) { // Display the list the console: print(i + " " + portList[i]); } } function serverConnected() { print("connected to server."); } function portOpen() { print("the serial port opened."); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readLine(); //check to see that there's actually a string there: if (inString.length > 0) { let sensors = split(inString, ","); // split the string on the commas if (sensors.length== 2) { // if there are three elements xPos = map(sensors[1], 0, 1023, 0, width); // element 0 is the locH yPos = height/2; // yPos = map(sensors[1], 550, 250, 0, height); // element 1 is the locV } } serial.write(onOff); } function serialError(err) { print("Something went wrong with the serial port. " + err); } function portClose() { print("The serial port closed."); }
Arduino code:
void setup() { Serial.begin(9600); while (Serial.available() <= 0) { Serial.println("0"); // send a starting message delay(300); // } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); int sensorValue = analogRead(A0); Serial.println(sensorValue); } }
Exercise 2 – make something that controls the LED brightness from processing
We made it so when the mouse hovers on the left side of the canvas, the LED is dim and then the far right of the canvas is the brightest. It works in a gradient, so the point in the middle of the canvas is semi-bright.
Processing code:
let serial; // variable to hold an instance of the serialport library let portName = "/dev/cu.usbmodem14501"; // fill in your serial port name here let xPos = 0; let yPos = 0; let onOff = 0; let brightness = 0; function setup() { createCanvas(640, 480); 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 draw() { background(255); } // get the list of ports: function printList(portList) { // portList is an array of serial port names for (let i = 0; i < portList.length; i++) { // Display the list the console: print(i + " " + portList[i]); } } function serverConnected() { print("connected to server."); } function portOpen() { print("the serial port opened."); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readLine(); brightness = mouseX; let mapped = map (brightness, 0, 640, 0, 255); serial.write(mapped); } function serialError(err) { print("Something went wrong with the serial port. " + err); } function portClose() { print("The serial port closed."); }
Arduino code:
int ledPin = 5; void setup () { Serial.begin(9600); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(ledPin, inByte); Serial.println("0"); } }
Exercise 3 – take the gravity wind example below and make it so every time the ball bounces one led lights up and then turns off, and you can control the wind from one analog sensor
We found this exercise the most difficult. We took it step by step by first ensuring we have all the important elements for serial communication, including changes in the index.html. Then we worked on getting the LED to light up when the ball bounces and then turn off. Then we worked on the wind part and controlling with the potentiometer.
Processing code:
let serial; let portName = "/dev/cu.usbmodem14401"; let velocity; let gravity; let position; let acceleration; let wind; let drag = 0.99; let mass = 50; let bounce; let xPos=0; let yPos=0; let onOff=0; // for port connection and handshake function setup() { createCanvas(640, 360); 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 // get the list of ports: function printList(portList) { // portList is an array of serial port names for (let i = 0; i < portList.length; i++) { // Display the list the console: print(i + " " + portList[i]); } } function serverConnected() { print("connected to server."); } function portOpen() { print("the serial port opened."); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readLine(); //xPos = map(inString, 0, 1023, 0, width); //check to see that there's actually a string there: if (inString.length > 0) { xPos = map(inString, 0, 1023, 0, width); } serial.write(onOff); } function serialError(err) { print("Something went wrong with the serial port. " + err); } function portClose() { print("The serial port closed."); } // code for the actual bouncing, wind, etc. noFill(); position = createVector(width/2, 0); velocity = createVector(0,0); acceleration = createVector(0,0); gravity = createVector(0, 0.5*mass); wind = createVector(0,0); bounce=map (mass,15,80,.80,.80); } function draw() { background(255); if (!keyPressed){ console.log(xPos); velocity.x*=bounce; } wind.x = map(xPos, 0, width, -1, 1); applyForce(wind); applyForce(gravity); velocity.add(acceleration); velocity.mult(drag); position.add(velocity); acceleration.mult(0); fill(255); ellipse(position.x,position.y,mass,mass); if (position.y > height-mass/2 - 40) { if (velocity.y > 1) { serial.write(255); } if (position.y > height-mass/2) { velocity.y *= -0.9; // A little dampening when hitting the bottom position.y = height-mass/2; } } } function applyForce(force){ // Newton's 2nd law: F = M * A // or A = F / M let f = p5.Vector.div(force, mass); acceleration.add(f); } function keyPressed(){ if (keyCode==LEFT_ARROW){ wind.x=-1; } if (keyCode==RIGHT_ARROW){ wind.x=1; } if (key==' '){ mass=random(15,80); position.y=-mass; velocity.mult(0); } }
Arduino Code:
void setup() { Serial.begin(9600); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(5, inByte); int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); } }
Video
Exercise 1
Arduino:
void setup() { Serial.begin(9600); while (Serial.available() <= 0) { Serial.println("0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); } int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); }
P5js:
Exercise 2:
void setup() { Serial.begin(9600); while (Serial.available() <= 0) { Serial.println("0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte int inByte = Serial.read(); // brightness = map(inByte, 0, 1023, 0, 255); analogWrite(5, inByte); Serial.println(inByte); } }
p5js:
Exercise 3:
void setup() { Serial.begin(9600); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int onoff = Serial.read(); analogWrite(5, onoff); int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); } }
p5js:
let serial; // variable to hold an instance of the serialport library let portName = "/dev/cu.usbmodem14101"; // fill in your serial port name here let xPos=0; let yPos=0; let onOff=0; function setup() { createCanvas(640, 480); 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 draw() { background(255); ellipse(xPos, height/2, 50, 50); // draw the circle if (mouseIsPressed){ if(mouseX<=width/2) onOff=1; else onOff=2; }else{ onOff=0; } } // get the list of ports: function printList(portList) { // portList is an array of serial port names for (let i = 0; i < portList.length; i++) { // Display the list the console: print(i + " " + portList[i]); } } function serverConnected() { print("connected to server."); } function portOpen() { print("the serial port opened."); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readLine(); //check to see that there's actually a string there: if (inString.length > 0) { let sensors = split(inString, ","); // split the string on the commas if (sensors.length == 2) { // if there are three elements xPos = map(sensors[0], 0, 1023, 0, width); // element 0 is the locH yPos = map(sensors[1], 550, 250, 0, height); // element 1 is the locV } } serial.write(onOff); } function serialError(err) { print("Something went wrong with the serial port. " + err); } function portClose() { print("The serial port closed."); } /* ARDUINO CODE void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); switch (inByte) { case 0: digitalWrite(2, LOW); digitalWrite(5, LOW); break; case 1: digitalWrite(2, HIGH); break; case 2: digitalWrite(5, HIGH); break; } int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.print(","); sensorValue = analogRead(A1); Serial.print(sensorValue); Serial.println(); } } */
void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); switch (inByte) { case 0: digitalWrite(2, LOW); digitalWrite(5, LOW); break; case 1: digitalWrite(2, HIGH); break; case 2: digitalWrite(5, HIGH); break; } int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.print(","); sensorValue = analogRead(A1); Serial.print(sensorValue); Serial.println(); } }
let serial; // variable to hold an instance of the serialport library let portName = "/dev/cu.usbmodem14101"; // fill in your serial port name here let xPos=0; let yPos=0; let onOff=0; function setup() { createCanvas(640, 480); 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 draw() { background(255); xPos = mouseX; mappedxPos = map(xPos, 0, 640, 0, 255); print(mappedxPos); ellipse(xPos, height/2, 50, 50); // draw the circle } // get the list of ports: function printList(portList) { // portList is an array of serial port names for (let i = 0; i < portList.length; i++) { // Display the list the console: print(i + " " + portList[i]); } } function serverConnected() { print("connected to server."); } function portOpen() { print("the serial port opened."); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readLine(); //check to see that there's actually a string there: if (inString.length > 0) { let sensors = split(inString, ","); // split the string on the commas /* if (sensors.length == 1) { // if there are three elements xPos = map(sensors[0], 0, 1023, 0, width); // element 0 is the locH // element 1 is the locV } */ } serial.write(mappedxPos); } function serialError(err) { print("Something went wrong with the serial port. " + err); } function portClose() { print("The serial port closed."); } /* ARDUINO CODE void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); switch (inByte) { case 0: digitalWrite(2, LOW); digitalWrite(5, LOW); break; case 1: digitalWrite(2, HIGH); break; case 2: digitalWrite(5, HIGH); break; } int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.print(","); sensorValue = analogRead(A1); Serial.print(sensorValue); Serial.println(); } } */
void setup() { Serial.begin(9600); pinMode(3, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(5, inByte); analogWrite(3, inByte); int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); } }
void setup() { Serial.begin(9600); pinMode(3, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); switch (inByte) { case 0: digitalWrite(3, HIGH); digitalWrite(5, HIGH); break; case 1: digitalWrite(3, LOW); digitalWrite(5, LOW); break; } int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); }}
Exercise 1:
P5.Js
Arduino
void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); //handshake method ALWAYS - LEAVE THIS ALWAYS while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte - always read whether you need that info or not int inByte = Serial.read(); switch (inByte) { case 0: digitalWrite(2, LOW); digitalWrite(5, LOW); break; case 1: digitalWrite(2, HIGH); break; case 2: digitalWrite(5, HIGH); break; } int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.print(","); sensorValue = analogRead(A1); Serial.print(sensorValue); Serial.println(); } }
Exercise 2:
P5.Js
Arduino
void setup() { Serial.begin(9600); pinMode(3, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); analogWrite(3, inByte); int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); } }
Exercise 3:
P5.Js
Arduino
void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); switch (inByte) { case 0: digitalWrite(2, HIGH); break; case 1: digitalWrite(2, LOW); break; } int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); } }void setup() { Serial.begin(9600); pinMode(2, OUTPUT); pinMode(5, OUTPUT); while (Serial.available() <= 0) { Serial.println("0,0"); // send a starting message delay(300); // wait 1/3 second } } void loop() { while (Serial.available() > 0) { // read the incoming byte: int inByte = Serial.read(); switch (inByte) { case 0: digitalWrite(2, HIGH); break; case 1: digitalWrite(2, LOW); break; } int sensorValue = analogRead(A0); Serial.print(sensorValue); Serial.println(); } }
Video