■実現したいこと
Arduinoと接続したジャイロセンサー(MPU6050)の値をProcessingにシリアル通信し、センサー値に応じてモデルが回転させる
■現状
processingにて添付写真のように読みだされていて、適切な値が取り出せていない
■Arduino側
以下でシリアルモニタに-2.44,-3.84,162,00のように表示されることを確認
angle_out = String(ROLL) + "," + String(PITCH) + "," + String(YAW);
Serial.println(angle_out);
■Processing側
import processing.serial.*;
Serial myPort;
String datline;
float xGyroValue;
float yGyroValue;
float zGyroValue;
void setup(){
println(Serial.list());
frameRate(30);
noStroke();
myPort = new Serial(this, "COM7", 115200);
}
void settings(){
size(400, 400, P3D);
}
void draw() {
background(0);
pushMatrix();
translate(width / 2, height / 2, -30);
if ( myPort.available() > 0) {
String datline = myPort.readString();
println(datline);
float[] splitdata = float(datline.split(","));
xGyroValue = splitdata[0];
yGyroValue = splitdata[1];
zGyroValue = splitdata[2];
println(xGyroValue);
println(yGyroValue);
println(zGyroValue);
}
rotateX(xGyroValue);
rotateY(yGyroValue);
rotateZ(zGyroValue);
scale(100);
beginShape(QUADS);
fill(255, 0, 0);
vertex(-1, 1, 1);
vertex( 1, 1, 1);
vertex( 1, -1, 1);
vertex(-1, -1, 1);
fill(0, 255, 0);
vertex( 1, 1, 1);
vertex( 1, 1, -1);
vertex( 1, -1, -1);
vertex( 1, -1, 1);
fill(0, 0, 255);
vertex( 1, 1, -1);
vertex(-1, 1, -1);
vertex(-1, -1, -1);
vertex( 1, -1, -1);
fill(255, 255, 0);
vertex(-1, 1, -1);
vertex(-1, 1, 1);
vertex(-1, -1, 1);
vertex(-1, -1, -1);
fill(0, 255, 255);
vertex(-1, 1, -1);
vertex( 1, 1, -1);
vertex(1, 1, 1);
vertex(-1, 1, 1);
fill(255, 0, 255);
vertex(-1, -1, -1);
vertex( 1, -1, -1);
vertex(1, -1, 1);
vertex(-1, -1, 1);
endShape();
popMatrix();
}

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。