serial-port - serial - port busy octopus
Se envían datos aleatorios extraños de Arduino a Processing (2)
Después de examinar más de cerca los recursos disponibles, me di cuenta de que el problema ya había sido resuelto por la gente de http://arduino.cc
Oh, cuánto tiempo podría haber ahorrado si hubiera visto eso antes.
Intento leer datos de una resistencia de fotocélula y mi Arduino Decimila y luego graficarlo en tiempo real con Processing.
Debería ser dolorosamente simple; pero se está convirtiendo en una pequeña pesadilla para mí.
código que estoy ejecutando en mi Arduino:
int photoPin;
void setup(){
photoPin = 0;
Serial.begin( 9600 );
}
void loop(){
int val = int( map( analogRead( photoPin ), 0, 1023, 0, 254 ) );
Serial.println( val ); //sending data over Serial
}
código que estoy ejecutando en Processing:
import processing.serial.*;
Serial photocell;
int[] yvals;
void setup(){
size( 300, 150 );
photocell = new Serial( this, Serial.list()[0], 9600 );
photocell.bufferUntil( 10 );
yvals = new int[width];
}
void draw(){
background( 0 );
for( int i = 1; i < width; i++ ){
yvals[i - 1] = yvals[i];
}
if( photocell.available() > 0 ){
yvals[width - 1] = photocell.read();
}
for( int i = 1; i < width; i++ ){
stroke( #ff0000 );
line( i, yvals[i], i, height );
}
println( photocell.read() ); // for debugging
}
He probado ambos bits de código por separado y sé que funcionan. Solo cuando trato de hacer que la entrada del Arduino vaya a Procesar, comienzan los problemas.
Cuando veo los datos en "Serial Monitor" de Arduino, obtengo un buen flujo constante de datos que parece ser válido.
Pero cuando leo esos mismos datos a través de Processing, obtengo un patrón repetitivo de valores aleatorios.
Halp?
Puede transmitir esos datos con la API Plotly Arduino, que junto con la documentación y la configuración están disponibles aquí . Idea básica: puede transmitir continuamente datos de su Arduino o transmitir un solo fragmento.
Luego, si desea insertarlo en un sitio, querrá tomar la URL y usar este fragmento:
<iframe id="igraph" src="https://plot.ly/~abhishek.mitra.963/1/400/250/" width="400" height="250" seamless="seamless" scrolling="no"></iframe>
Puede cambiar las dimensiones de ancho / alto en ese fragmento. Nota: necesita intercambiar su propia URL allí para que se transmita.
Aquí hay un ejemplo de cómo parece transmitir datos de Arduino
Divulgación completa: trabajo para Plotly.