以前書いた記事より簡単にまとめました.
micro:bitの加速度をProcessingへ送り,画面サイズにmapしellipseで描画します.
1つの値を送る
micro:bitコード
Processingコード
import processing.serial.*;
Serial microbit;
float x = 0;
void setup() {
size(640, 480);
String []portName = Serial.list();
println(portName);
microbit = new Serial(this, portName[0], 115200);
}
void draw() {
background(0);
if (microbit.available() > 0) {
int val = int(microbit.readString());
x = map(val, -1023, 1023, 0, 640);
}
ellipse(x, height/2, 30,30);
}
複数の値を送る
micri:bitコード
Processingコード
import processing.serial.*;
Serial microbit;
float x = 0;
float y = 0;
void setup() {
size(640, 480);
String []portName = Serial.list();
println(portName);
microbit = new Serial(this, portName[0], 115200);
microbit.bufferUntil(10);
}
void draw() {
background(0);
ellipse(x, y, 30, 30);
}
void serialEvent(Serial microbit) {
String str = microbit.readStringUntil('\n');
if (str != null) {
str = trim(str);
float[] sensors = float(split(str, ','));
if(sensors.length > 1){
x = map(sensors[0], -1023, 1023, 0,width);
y = map(sensors[1], -1023, 1023, 0, height);
}
}
}