Mercurial > ukubik
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
