|
|
Line 23: |
Line 23: |
|
| |
|
| An Arduino with a color sensor records the data and this data (variety of pigments) will be use for to paint morning walks at Ilm Park. A color will be archived while walking every morning on the specific route determined in the park. | | An Arduino with a color sensor records the data and this data (variety of pigments) will be use for to paint morning walks at Ilm Park. A color will be archived while walking every morning on the specific route determined in the park. |
|
| |
|
| |
| Code:
| |
|
| |
| import processing.serial.*; // import Serial library
| |
| Serial myPort; // Create object from Serial class
| |
| String incomingData = null; // create String "text" variable for incoming arduino data
| |
| float rawSensorData = 0; // create float "number" variable for incoming arduino data
| |
| float r,g,b;
| |
| void setup() {
| |
| size(800, 800); // define the size of the canvas
| |
| String portName = Serial.list()[3]; // define the serial port. change the number in [] to a 1 or 2 etc. to match your Arduino USB port.
| |
| myPort = new Serial(this, portName, 9600); // create new serial object with baud rate (USB-speed) 9600 (must be the same in arduino!!!)
| |
| myPort.bufferUntil('\n'); // receive data until new line character comes up
| |
| background (255); // make a white background. You can also put this in DRAW to refresh your canvas every draw loop.
| |
| }
| |
| void draw() {
| |
| //*** experiment here to visualize your sensor data!
| |
| //*** use the variable – rawSensorData – to change things according to sensor changes.
| |
| // for example:
| |
| //float mappedData = map (rawSensorData, 0, 1023, 0, 255);
| |
| background (r,g,b);
| |
| }
| |
| // this is the serial function that runs constantly in the background of your program
| |
| // it allows you to use the incoming data in the draw() function, you do not need to change this.
| |
| void serialEvent(Serial myPort) {
| |
| incomingData = myPort.readString(); // read the incoming data as String and save it in the "incomingData" variable
| |
| r = float(trim(incomingData.split(" ")[0]));
| |
| g = float(trim(incomingData.split(" ")[1]));
| |
| b = float(trim(incomingData.split(" ")[2]));
| |
| //rawSensorData = float(trim(incomingData)); // clean the incoming data String and convert it to a float data type (a number)
| |
| //println (rawSensorData); // print the data to the console for inspection
| |
| println (incomingData);
| |
| myPort.clear(); // clear the serial port for receiving new data
| |
| }
| |
| /*
| |
| HELP: FINDING THE CORRECT USB PORT
| |
| if you can not find your arduino USB port, make a new file and add this code:
| |
| * CODE START *
| |
| import processing.serial.*;
| |
| // List all the available serial ports
| |
| printArray(Serial.list());
| |
| * CODE END *
| |
| It will print out a list of all your USB connections.
| |
| Find the [ ] number for your Arduino Port and include it in line 8 of this code.
| |
| */
| |