Assignment 7.4

Post date: Aug 22, 2010 7:32:14 PM

This took a little while to get but it turned out pretty well. Sometimes the potentiometers will be a little unresponsive.

Arduino Code:

int pot1 = 1; //delcare variables

int pot2 = 2;

int val = 0;

void setup() {

Serial.begin(9600); //data will ne sent and received 9600 bps

}

//I will be using the punctuation method for this code

void loop() {

val = analogRead(pot1); //read the first potentiometer and store it in val

Serial.print(val, DEC); // print the valuse just stored

Serial.print(","); //print a comma to organize data

val = analogRead(pot2); //read the second potentiometer and store it in val

Serial.println(val, DEC); //print the value just stored

}

Processing Code:

import processing.serial.*; //import the processing library

Serial myPort; //delcare variables

float xpos;

float ypos;

void setup() {

size (500, 500); //set the window siae to 500x500

myPort = new Serial(this, Serial.list()[0], 9600);

myPort.bufferUntil('\n'); //store values in a buffer

background(255); //sets the background color to white

}

void draw() {

fill(0); //sets the fill color to black

stroke(0);//sets the outline color to black

ellipse(xpos, ypos, 3, 3); //draw a circle at the designated postion

}

void serialEvent(Serial myPort) {

String myString = myPort.readStringUntil('\n'); // read the buffer

if (myString !=null) {

myString = trim(myString);

int sensors[]= int(split(myString, ',')); //split string at commas

for (int sensorNum = 0; sensorNum < sensors.length; sensorNum++){

print ("Sensor" + sensorNum + ":" + sensors[sensorNum] + "\t"); //print values

}

println();

if (sensors.length > 1) {

xpos = map(sensors [1], 0, 1023, 0, 500); // set values so circles stays in window

ypos = map(sensors [2], 0, 1023, 0, 500);

}

}

}