// comment line 41 to show the sensor value ///////////////////////////// // SEND AND RECEIVE DATA /// ///////////////////////////// function checkPort(){ // check to see if serial is available: if (!navigator.serial) { alert("WebSerial is not supported in this browser. Try Chrome or MS Edge."); } // if serial is available, add connect/disconnect listeners: navigator.serial.addEventListener("connect", portConnect); navigator.serial.addEventListener("disconnect", portDisconnect); // check for any ports that are available: serial.getPorts(); // if there's no port chosen, choose one: serial.on("noport", makePortButton); // open whatever port is available: serial.on("portavailable", openPort); // handle serial errors: serial.on("requesterror", portError); // handle any incoming serial data: serial.on("data", serialEvent); serial.on("close", makePortButton); } function serialEvent() { // read a string from the serial port // until you get carriage return and newline: let inString = serial.readStringUntil("\r\n"); // print(inString); //check to see that there's actually a string there: if (inString) { let sensors = split(inString, ","); // console.log(sensors); if(sensors[0]=="p0"){ // ball.x = int(map(sensors[1], 0, 200, 0, 200)); value0= sensors[1]; // console.log(sensors[0]); } if(sensors[0]=="p1"){ // ball.y = int(map(sensors[1], 0, 200, 0, 200)); value1=sensors[1]; // console.log(sensors[0]); } if(sensors[0]=="p2"){ // ball.y = int(map(sensors[1], 0, 200, 0, 200)); value2=sensors[1]; // console.log(sensors[0]); } } } ///////////////////////////////////////////// // UTILITY FUNCTIONS TO MAKE CONNECTIONS /// ///////////////////////////////////////////// // if there's no port selected, // make a port select button appear: function makePortButton() { // create and position a port chooser button: portButton = createButton("choose port"); portButton.position(10, 10); // give the port button a mousepressed handler: portButton.mousePressed(choosePort); } // make the port selector window appear: function choosePort() { serial.requestPort(); } // open the selected port, and make the port // button invisible: function openPort() { // wait for the serial.open promise to return, // then call the initiateSerial function serial.open().then(initiateSerial); // once the port opens, let the user know: function initiateSerial() { console.log("port open"); // serial.write("x"); } // hide the port button once a port is chosen: if (portButton) portButton.hide(); } // pop up an alert if there's a port error: function portError(err) { alert("Serial port error: " + err); } // try to connect if a new serial port // gets added (i.e. plugged in via USB): function portConnect() { console.log("port connected"); serial.getPorts(); } // if a port is disconnected: function portDisconnect() { serial.close(); console.log("port disconnected"); }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter