changeset 2:6dcf45d13f35

Rename servo methods to make more sense Also change the range of speed from 0-180 to -90-90
author Radomir Dopieralski <sheep-devel@sheep.art.pl>
date Tue, 14 Mar 2017 13:00:05 +0100
parents 6bd959f77530
children 1dc1a2e5e642
files bot.py
diffstat 1 files changed, 12 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/bot.py	Tue Jan 19 21:11:51 2016 +0100
+++ b/bot.py	Tue Mar 14 13:00:05 2017 +0100
@@ -5,12 +5,12 @@
     def __init__(self, pin, trim=0):
         self.pin = pin
         self.trim = trim
-        self.position = 90
+        self.speed = 0
         self.pin.set_analog_period(20)
 
-    def write(self, degrees):
-        self.pin.write_analog(int(25 + 100 * degrees / 180 + self.trim))
-        self.position = degrees
+    def set_speed(self, speed):
+        self.pin.write_analog(int(25 + 100 * (90 + speed) / 180 + self.trim))
+        self.speed = speed
 
 
 class Robot:
@@ -20,28 +20,28 @@
 
     def go(self, distance):
         microbit.display.show(microbit.Image.ARROW_S)
-        self.left_servo.write(0)
-        self.right_servo.write(180)
+        self.left_servo.set_speed(-90)
+        self.right_servo.set_speed(90)
         microbit.sleep(int(distance * 2000 / 17))
         self.stop()
 
     def turn(self, angle):
         if angle > 0:
             microbit.display.show(microbit.Image.ARROW_E)
-            self.left_servo.write(0)
-            self.right_servo.write(0)
+            self.left_servo.set_speed(-90)
+            self.right_servo.set_speed(-90)
             microbit.sleep(int(angle * 64 / 9))
         else:
             microbit.display.show(microbit.Image.ARROW_W)
-            self.left_servo.write(180)
-            self.right_servo.write(180)
+            self.left_servo.set_speed(90)
+            self.right_servo.set_speed(90)
             microbit.sleep(int(-angle * 64 / 9))
         self.stop()
 
     def stop(self):
         microbit.display.show(microbit.Image.DIAMOND)
-        self.left_servo.write(90)
-        self.right_servo.write(90)
+        self.left_servo.set_speed(0)
+        self.right_servo.set_speed(0)
 
     def get_distance(self):
         return microbit.pin2.read_analog()