changeset 69:0591e2335dcd

slower rotation
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Thu, 28 Aug 2014 18:55:40 +0200
parents f9b874547633
children 2d864e78240b
files creep.py joy.py
diffstat 2 files changed, 23 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/creep.py	Thu Aug 28 18:37:57 2014 +0200
+++ b/creep.py	Thu Aug 28 18:55:40 2014 +0200
@@ -9,8 +9,9 @@
     posture = 10, 16  # How much to change posture depending on direction.
     leg_order = {
         'forward': {None: 1, 1: 0, 0: 2, 2: 3, 3: 1},
-        'rotate_left': {None: 0, 0: 1, 1: 2, 2: 3, 3: 0},
-        'rotate_right': {None: 0, 0: 3, 3: 2, 2: 1, 1: 0},
+        'backward': {None: 1, 1: 3, 3: 2, 2: 0, 0: 1},
+        'left': {None: 0, 0: 1, 1: 2, 2: 3, 3: 0},
+        'right': {None: 0, 0: 3, 3: 2, 2: 1, 1: 0},
     }
 
     def __init__(self, robot):
--- a/joy.py	Thu Aug 28 18:37:57 2014 +0200
+++ b/joy.py	Thu Aug 28 18:55:40 2014 +0200
@@ -26,17 +26,17 @@
                     raise SystemExit()
                 elif event.type == pygame.JOYBUTTONDOWN:
                     if event.button == 10:
-                        self.gait = 'forward'
-                    elif event.button == 11:
-                        if self.rotation > 0:
-                            self.gait = 'rotate_left'
+                        if self.speed[0] >= 0:
+                            self.gait = 'forward'
                         else:
-                            self.gait = 'rotate_right'
+                            self.gait = 'backward'
+                    elif event.button == 11:
+                        if self.rotation >= 0:
+                            self.gait = 'left'
+                        else:
+                            self.gait = 'right'
                     elif event.button == 0:
-                        serial = self.robot.legs[0].hip.serial
-                        serial.write('0xfd')
-                        sensor = ord(serial.read(1))
-                        print "Sensor value: %d" % sensor
+                        robot.beep(440, 100)
                     else:
                         print "Button %d" % event.button
                 elif event.type == pygame.JOYBUTTONUP:
@@ -45,12 +45,22 @@
                 elif event.type == pygame.JOYAXISMOTION:
                     if event.axis == 0:
                         self.speed[0] = event.value
+                        if self.gait in ('forward', 'backward'):
+                            if self.speed[0] >= 0:
+                                self.gait = 'forward'
+                            else:
+                                self.gait = 'backward'
                     elif event.axis == 1:
                         self.speed[1] = -event.value
                     elif event.axis == 2:
                         dz = event.value
                     elif event.axis == 3:
-                        self.rotation = event.value
+                        self.rotation = event.value * 0.8
+                        if self.gait in ('left', 'right'):
+                            if self.rotation >= 0:
+                                self.gait = 'left'
+                            else:
+                                self.gait = 'right'
             self.robot.shift[2] = min(24,
                 max(-12, self.robot.shift[2] + dz))
             yield