El sketch de arduino:
void setup() {
leftRightServo.attach(9); // Servo's Pin
// initialize the serial port:
Serial.begin(9600);
}
/* begin rotating the servo and getting sensor values */
void loop() {
for(leftRightPos = 0; leftRightPos < 100; leftRightPos++) { // de izq a der
leftRightServo.write(leftRightPos);
for (index = 0; index<=numReadings;index++) { // 10 tomas para hacer la media
// Pin como salida:
pinMode(pingPin,OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(50);
digitalWrite(pingPin, HIGH); // envio pulso de 50 ms
delayMicroseconds(50);
digitalWrite(pingPin, LOW); // close signal
// Pin como entrada:
pinMode(pingPin, INPUT);
duration = pulseIn(pingPin, HIGH); // calcula el tiempo del pulso de llegada
distance= duration / 29 / 2; // paso a cm
total = total + distance; // calculo la suma para luego hacer la media
delay(30); //
}
average = total/numReadings; // media
if (index >= numReadings) { // reseteo los contadores
index = 0;
total = 0;
}
Serial.print(leftRightPos); // mando por el serie la posición actual del servo
Serial.println();
Serial.print(average); // mando por serie la media (distancia al objeto)
Serial.println();
}
El que utilizo para el processing es un ejemplo de los que trae de la libreria Serial (SimpleRead), con todos los que he probado me da el mismo error.
Y por último el modelo del emisor-receptor de ultrasonidos es:
http://www.seeedstudio.com/depot/datasheet/Seeed%20Ultrasonic%20Sensor%20datasheet.pdf