이상한 임의의 데이터가 Arduino에서 처리로 전송됩니다
-
05-07-2019 - |
문제
광전지 저항과 Arduino Decimila의 데이터를 읽은 다음 처리와 함께 실시간으로 그래프하려고합니다.
고통스럽게 단순해야합니다. 그러나 그것은 나에게 약간의 악몽으로 자랍니다.
코드 내 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
}
처리 중입니다.
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
}
나는 두 조각의 코드를 별도로 테스트했으며 그들이 작동한다는 것을 알고 있습니다. Arduino의 입력을 처리하려고 할 때만 문제가 시작되도록 처리 할 때만 가능합니다.
Arduino의 "Serial Monitor"에서 데이터를 볼 때 유효한 것처럼 보이는 데이터의 일정한 흐름을 얻습니다.
그러나 처리를 통해 동일한 데이터를 읽으면 반복적 인 무작위 값 패턴을 얻습니다.
HALP?
해결책
해당 데이터를 Plotly Arduino API로 전송할 수 있으며 문서 및 설정과 함께 사용할 수 있습니다. 여기. 기본 아이디어 : Arduino에서 데이터를 지속적으로 스트리밍하거나 단일 청크를 전송할 수 있습니다.
그런 다음 사이트에 포함 시키려면 URL을 잡고이 스 니펫을 사용하려고합니다.
<iframe id="igraph" src="https://plot.ly/~abhishek.mitra.963/1/400/250/" width="400" height="250" seamless="seamless" scrolling="no"></iframe>
해당 스 니펫의 너비/높이 치수를 변경할 수 있습니다. 참고 : 스트리밍을 위해 자신의 URL을 교체해야합니다.
Arduino 데이터를 스트리밍하는 방법의 예는 다음과 같습니다.
전체 공개 : 나는 줄거리를 위해 일합니다.
다른 팁
당면한 자원을 면밀히 살펴본 후에, 나는 사람들이 이미 나를 위해 문제가 해결되었다는 것을 깨달았습니다. http://arduino.cc
오, 내가 더 일찍 본 적이 있다면 얼마나 많은 시간을 절약 할 수 있었습니까?