// "Pendulum" - spring-mass oscillator #include #include byte incomingByte; void setup() { // init MotionA & MotorA MotionA.init(INPUTA0); MotorA.init(); // provide MotionA with initial physics constants MotionA.k = 0.2f; // spring MotionA.m = 0.3f; // mass MotionA.d = 0.02f; // damping Serial.begin(9600); } void loop(){ if(MotionA.F < 0) MotorA.direction(FORWARD); else MotorA.direction(BACKWARD); float t = abs(MotionA.F); MotorA.torque(t); if (Serial.available() > 0) { incomingByte = Serial.read(); if(incomingByte == '1'){ MotionA.m = MotionA.m * 1.1; Serial.print("m: "); Serial.println(MotionA.m); } else if(incomingByte == '!'){ MotionA.m = MotionA.m / 1.1; Serial.print("m: "); Serial.println(MotionA.m); } else if(incomingByte == '2'){ MotionA.k = MotionA.k * 1.1; Serial.print("k: "); Serial.println(MotionA.k); } else if(incomingByte == '@'){ MotionA.k = MotionA.k / 1.1; Serial.print("k: "); Serial.println(MotionA.k); } else if(incomingByte == '3'){ MotionA.d = MotionA.d * 1.1; Serial.print("d: "); Serial.println(MotionA.d); } else if(incomingByte == '#'){ MotionA.d = MotionA.d / 1.1; Serial.print("d: "); Serial.println(MotionA.d); } } }