0

処理ソフトウェアを使用してArduinoのシリアルポートからグラフをプロットする最も簡単なことをしたいと思います。エクリプスを使っています。

チュートリアルがプラグインについて言うようにしました。私はこれであるarduinoのサイトからコードもコピーします:

import processing.serial.*;

Serial myPort;        // The serial port
int xPos = 1;         // horizontal position of the graph

void setup () {

  // set the window size:
  size(400, 300);        

  // List all the available serial ports
  println(Serial.list());

  // I know that the first port in the serial list on my mac
  // is always my  Arduino, so I open Serial.list()[0].
  // Open whatever port is the one you're using.
  myPort = new Serial(this, Serial.list()[0], 9600);

  // don't generate a serialEvent() unless you get a newline character:
  myPort.bufferUntil('\n');

  // set inital background:
   background(0);

}

 void draw () {
   // everything happens in the serialEvent()
 }

void serialEvent (Serial myPort) {

  // get the ASCII string:
  String inString = myPort.readStringUntil('\n');

  if (inString != null) {

    // trim off any whitespace:
    inString = trim(inString);

    // convert to an int and map to the screen height:
    float inByte = float(inString);
    inByte = map(inByte, 0, 1023, 0, height);

    // draw the line:
    stroke(127,34,255);
    line(xPos, height, xPos, height - inByte);

    // at the edge of the screen, go back to the beginning:
    if (xPos >= width) {

      xPos = 0;
      background(0);

    }
    else {

       // increment the horizontal position:
       xPos++;

    }

  }

}

bufferUntil('\n') が serialevent をトリガーしないという問題があります。

8 ビットの int を 32 ビットの int に設定しようとすると、地獄に落ちるバグ ケースがあったことは知っています。

処理 ide はうまく機能します。Eclipse はまったくトリガーしません。解決策はありますか?

4

1 に答える 1