changeset 11:5c99ed631554

Don't send "dirty" flags
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Wed, 06 Apr 2016 22:34:26 +0200
parents 2dfdd05f2c91
children 1298204d2f3d
files controller/i2c.ino controller/leg.ino controller/misc.h python/robot.py
diffstat 4 files changed, 12 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/controller/i2c.ino	Mon Apr 04 21:59:34 2016 +0200
+++ b/controller/i2c.ino	Wed Apr 06 22:34:26 2016 +0200
@@ -3,7 +3,7 @@
 
 
 const int SLAVE_ADDRESS = 0x09;
-const int MAX_REGS = 16;
+const int MAX_REGS = 12;
 
 volatile int8_t regs[MAX_REGS] = {};
 volatile uint8_t address;
@@ -24,11 +24,8 @@
 
 void i2c_loop() {
     for (int leg = 0; leg < 4; ++leg) {
-        if (regs[leg * 4]) {
-            move_leg(leg, regs[leg * 4 + 1] + HOME,
-                          regs[leg * 4 + 2] + HOME,
-                          regs[leg * 4 + 3] - TIBIA);
-            regs[leg * 4] = 0;
-        }
+        move_leg(leg, regs[leg * 4 + 0] + HOME,
+                      regs[leg * 4 + 1] + HOME,
+                      regs[leg * 4 + 2] - TIBIA);
     }
 }
--- a/controller/leg.ino	Mon Apr 04 21:59:34 2016 +0200
+++ b/controller/leg.ino	Wed Apr 06 22:34:26 2016 +0200
@@ -53,6 +53,9 @@
     double ankle = NAN;
     double knee = NAN;
     double hip = NAN;
+    if (leg_position[0] == x && leg_position[1] == y && leg_position[2] == z) {
+        return true;
+    }
     leg_position[leg][0] = x;
     leg_position[leg][1] = y;
     leg_position[leg][2] = z;
--- a/controller/misc.h	Mon Apr 04 21:59:34 2016 +0200
+++ b/controller/misc.h	Wed Apr 06 22:34:26 2016 +0200
@@ -6,7 +6,4 @@
 extern const double TAU;
 extern const double SQRT2;
 
-// Use the larger SG90 servos
-#define TOTE2
-
 #endif
--- a/python/robot.py	Mon Apr 04 21:59:34 2016 +0200
+++ b/python/robot.py	Wed Apr 06 22:34:26 2016 +0200
@@ -55,11 +55,11 @@
 
     def update(self):
         data = ustruct.pack(
-            "Bbbbbbbbbbbbbbbbb", 0,
-            1, self.legs[0].x, self.legs[0].y, self.legs[0].z,
-            1, self.legs[1].x, self.legs[1].y, self.legs[1].z,
-            1, self.legs[2].x, self.legs[2].y, self.legs[2].z,
-            1, self.legs[3].x, self.legs[3].y, self.legs[3].z,
+            "Bbbbbbbbbbbbb", 0,
+            self.legs[0].x, self.legs[0].y, self.legs[0].z,
+            self.legs[1].x, self.legs[1].y, self.legs[1].z,
+            self.legs[2].x, self.legs[2].y, self.legs[2].z,
+            self.legs[3].x, self.legs[3].y, self.legs[3].z,
         )
         while True:
             try: