Introduction: Ultrasonic Distance Sensor Visualizer W/ Processing
this project uses processing to take data from an ultrasonic rangefinder on an arduino board and input that into variables in a processing sketch.
Step 1: Set Up Your Hardware
you will need:
ultrasonic rangefinder
arduino board
wires
wire connect your rangefinder to GRD, 5V, and digital pin 10. the picture shows it set up with a breadboard that has an optional piezo buzzer wired as well, feel free to ignore that.
Step 2: Double Check Your Wiring Then Get Your Code Running
here is the arduino code:
const int pwPin = 10;
long pulse, inches, cm;
int measure = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
pinMode(pwPin, INPUT);
pulse = pulseIn(pwPin, HIGH);
inches = pulse/147;
cm = inches*2.54;
Serial.println(cm); measure = measure + 1;
}
Step 3: Get Your Processing Code Up and Running
first you will need to make sure you have the most updated form of processing and import the arduino libraries shown. (sketch-import library-add library-arduino(firmata)).
here is the code:
import processing.serial.*;
import cc.arduino.*;
int lf = 10; // Linefeed in ASCII
int value;
float numba = map(value, 12, 90, 10, 400);
String myString = null;
Serial myPort;
void setup(){
printArray(Serial.list());
background (255);
size(800, 800);
myPort = new Serial(this, Serial.list()[0], 9600);
myString = myPort.readStringUntil(lf);
}
void draw(){
float numba = map(value, 12, 90, 10, 400);
stroke(0);
noFill();
drawCircle(width/2, height/2, numba);
branch(width/2, height, 180);
while (myPort.available()>0){
myString = myPort.readStringUntil(lf);
if (myString != null) {
myString = trim (myString);
value = int (myString);
println(numba);
}
}
}
void drawCircle(float x, float y, float numba){
ellipse (x, y, numba, numba);
if(numba>2){
drawCircle(x + numba/1.5, y, numba/2);
drawCircle(x - numba/1.5, y, numba/2);
}
}
void branch(float x, float y, float numba) {
line(x, y, x-numba, y-numba);
line(x, y, x+numba, y-numba);
if (numba>2){ branch(x-numba, y-numba, numba/2);
branch(x+numba, y-numba, numba/2);
}
}