Странные случайные данные, отправляемые с 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, я получаю приятный постоянный поток данных, который, кажется, выглядит достоверным.
Но когда я считываю те же самые данные с помощью обработки, я получаю повторяющийся набор случайных значений.
Халп?
Решение
Вы могли бы передать эти данные с помощью 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
О, сколько времени я мог бы сэкономить, если бы увидел это раньше.