Luuc
Published © GPL3+

Calliope Diagramm auf dem Computer

Welche Werte misst nun der x-Beschleunigungssensor wirklich? Mit Diagramm auf Computer ist diese Frage beantwortet

IntermediateFull instructions provided30 minutes266
Calliope Diagramm auf dem Computer

Things used in this project

Hardware components

Calliope mini v0.3 (pre-production)
Calliope mini v0.3 (pre-production)
Calliope mini muss mit USB an einen Computer angeschlossen sein.
×1

Story

Read more

Code

Calliope Code

JavaScript
Messroutine welche mittels Balkendiagramm auch über den USB Port die Messdaten ausgibt.
basic.forever(() => {
    led.plotBarGraph(
        pins.map(
            input.acceleration(Dimension.X),
            -1023,
            1023,
            0,
            1023
        ),
        1023
    )
})

Processing Code

Processing
Die Processing Software fragt nach den verfügbaren USB Ports ab, je nach Verwendung in der eckigen Klammer eine 0,1,2 oder 3 rein schreiben
// Graphing sketch
// This program takes ASCII-encoded strings from the serial port at 9600 baud
// and graphs them. It expects values in the range 0 to 1023, followed by a
// newline, or newline and carriage return

  // created 20 Apr 2005
  // updated 24 Nov 2015
  // by Tom Igoe
  // This example code is in the public domain.
  // Quelle: https://www.arduino.cc/en/Tutorial/Graph

  import processing.serial.*;

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

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

    // List all the available serial ports
    // if using Processing 2.1 or later, use Serial.printArray()
    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 initial background:
    background(0);
  }

  void draw () {
    // 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++;
    }
  }

  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:
      inByte = float(inString);
      println(inByte);
      inByte = map(inByte, 0, 1023, 0, height);
    }
  }

Credits

Luuc
8 projects • 3 followers

Comments