diff --git a/software/apps/Motion/Damp/Damp/Damp.ino b/software/apps/Motion/Damp/Damp/Damp.ino new file mode 100644 index 0000000..97f16d6 --- /dev/null +++ b/software/apps/Motion/Damp/Damp/Damp.ino @@ -0,0 +1,23 @@ +//Damp - measure velocity then f=Bv +#import +int x; //position measured +float v, f, t, xold; //velocity, force, time delta +byte c; //for debug print every 256th loop + +void setup(){ + Serial.begin(9600); + xold = analogRead(A0); +} + +void loop(){ + x = analogRead(A0); + v = x - xold; //lag v, too + xold += 0.1*(x-xold); //slide xold with lag + + if(c++==0){ + //Serial.print(xold); + //Serial.print(" "); + Serial.println(100*v); + } +} + diff --git a/software/apps/Motion/Damp2/Damp2.ino b/software/apps/Motion/Damp2/Damp2.ino new file mode 100644 index 0000000..af8764a --- /dev/null +++ b/software/apps/Motion/Damp2/Damp2.ino @@ -0,0 +1,28 @@ +//Damp 2 with running average position + +#define n 10 //number in buffer +int x; //position measured +float xf; // running average on n samples +int buff[n]; +int index = 0; +float v, oldavg; // estimate of velocity +byte c; + +void setup(){ + Serial.begin(9600); +} + +void loop(){ + buff[index] = analogRead(A0); + index++; + if(index > n-1) index = 0; + int acc = 0; + for(int i=0; i