问题描述
我正在尝试使用来自陀螺仪的串行数据在处理中连接旋转形状。形状从 0-90 度旋转得很好,但是当角度大于 90 度时,它在达到大约 180 度之前不会旋转。当我在串行监视器上打印时,串行数据是正确的。我应该注意到它在 90-180 的范围内很少工作。我能做什么。
void draw(){
pushmatrix();
translate(200,200);
rotateX(radians(90));
rotateY(myVal);
scale(50);
beginShape(QUADS);
while (mySerial.available() > 0){
myString = mySerial.readStringUntil(nl);
if(myString != null){
background(0.5);
myVal = float(myString) ;
myVal = radians(-1 * myVal);
解决方法
while
循环阻塞了主动画/渲染线程。
另一种方法是将 bufferUntil()
与 serialEvent()
配对:
例如
void setup(){
...
mySerial.bufferUntil(lf);
}
...
void serialEvent(Serial p){
myString = mySerial.readString();
myVal = float(myString.trim()) ;
myVal = radians(-1 * myVal);
}