fix keyb rotation + keyb calibration
authorMjolnir <thomas.pietrzak@inria.fr>
Thu, 3 Sep 2015 12:30:03 +0000 (14:30 +0200)
committerMjolnir <thomas.pietrzak@inria.fr>
Thu, 3 Sep 2015 12:30:03 +0000 (14:30 +0200)
ArduinoKeyboard/motorcontrol.ino

index d82ecdc8ccdbab38d0953847bf1682f91bce80ac..bced2d6fb6c75bb35df09f07a6ea0d3b5728a258 100644 (file)
@@ -1,12 +1,13 @@
 #include <Stepper.h>
 
 //DC motors
-const int motorspeed         =  33; // mm/s
-const int motorrotationspeed =  60; // deg/s
+const int motorspeed         =  15; // mm/s
+const int motorrotationspeed =  10; // deg/s
 
 //Stepper motor
-const int steps = 400;
-Stepper stepper = Stepper(steps, stepper1, stepper2, stepper3, stepper4);
+const float stepangle = 0.9;
+const int angularratio = 6;
+Stepper stepper = Stepper(360 / stepangle, stepper1, stepper2, stepper3, stepper4);
 
 void init_motors()
 {
@@ -23,6 +24,7 @@ void init_motors()
   pinMode(stepper3, OUTPUT);
   pinMode(stepper4, OUTPUT);
   stepper.setSpeed(20);
+  stepper.step(1);
 }
 
 /*
@@ -70,7 +72,9 @@ void rotate(int angle)
   
   digitalWrite(motorsenable, LOW);
   
-  stepper.step(-angle * steps / 360);
+  unsigned long steps = angle * angularratio / stepangle;
+  Serial.println(steps);
+  stepper.step(-steps);
 }
 
 /*
@@ -85,20 +89,20 @@ void translate(int distance)
   if (distance > 0)
   {
     //left motor forward
-    digitalWrite(leftmotor1, HIGH);
-    digitalWrite(leftmotor2, LOW);
+    digitalWrite(leftmotor1, LOW);
+    digitalWrite(leftmotor2, HIGH);
     //right motor forward
-    digitalWrite(rightmotor1, HIGH);
-    digitalWrite(rightmotor2, LOW);
+    digitalWrite(rightmotor1, LOW);
+    digitalWrite(rightmotor2, HIGH);
   }
   else
   {
     //left motor backward
-    digitalWrite(leftmotor1, LOW);
-    digitalWrite(leftmotor2, HIGH);
+    digitalWrite(leftmotor1, HIGH);
+    digitalWrite(leftmotor2, LOW);
     //right motor backward
-    digitalWrite(rightmotor1, LOW);
-    digitalWrite(rightmotor2, HIGH);
+    digitalWrite(rightmotor1, HIGH);
+    digitalWrite(rightmotor2, LOW);
     
     distance = -distance;
   }