Pergunta

Eu estou tentando ler dados de um resistor fotocélula e meu Arduino Decimila e, em seguida, o gráfico-lo em tempo real com Processing.

Deve ser dolorosamente simples; mas o seu crescimento em um pouco de um pesadelo para mim.

código que eu estou correndo no meu 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 eu estou correndo em Processamento:

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
}

Eu testei os dois pedaços de código separado e sei que eles trabalham. É só quando eu tento ter a entrada do Arduino vai Processamento de que os problemas começam.

Quando eu visualizar os dados no "Monitor de série" do Arduino, eu obter um bom fluxo constante de dados que parece olhar válido.

Mas quando li os mesmos dados através do processamento, eu recebo um padrão de repetição de valores aleatórios.

Halp?

Foi útil?

Solução

Você poderia transmitir os dados com a API Plotly Arduino, que juntamente com a documentação e configuração é acessível aqui . idéia básica: você pode continuamente transmitir dados de seu Arduino, ou transmitir um único pedaço.

Então, se você quiser incorporá-lo em um site, você vai querer pegar a URL e usar esse trecho:

<iframe id="igraph" src="https://plot.ly/~abhishek.mitra.963/1/400/250/" width="400" height="250" seamless="seamless" scrolling="no"></iframe>

Você pode alterar as dimensões de largura / altura em que trecho. Nota: você precisa de swap em seu próprio URL lá para obtê-lo fluir através

.

Aqui está um exemplo de como ele olha para transmitir Arduino dados

enter descrição da imagem aqui

Divulgação completa: Eu trabalho para Plotly.

Outras dicas

Depois de um olhar mais de perto os recursos na mão, percebi que o problema já tinha sido resolvido para mim pela gente lá em http : //arduino.cc

http://arduino.cc/en/Tutorial/Graph

Oh quanto tempo eu poderia ter economizado se eu tinha visto isso antes.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top