From 002db9d650d64d41bbd3cea8459f55a28d321673 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Fri, 14 Oct 2022 00:08:59 +0200 Subject: [PATCH] Add linefollower --- client/docs/source/other/usage.rst | 67 ++++++++++++++++++++++++++++-- 1 file changed, 63 insertions(+), 4 deletions(-) diff --git a/client/docs/source/other/usage.rst b/client/docs/source/other/usage.rst index 0296e59..b8bd653 100644 --- a/client/docs/source/other/usage.rst +++ b/client/docs/source/other/usage.rst @@ -12,13 +12,13 @@ Vorwärts und rückwärts fahren from compLib.Motor import * def forward(): - Motor.power(1, -30); - Motor.power(2, 30); + Motor.power(0, -30); + Motor.power(3, 30); def backward(): - Motor.power(1, 30); - Motor.power(2, -30); + Motor.power(0, 30); + Motor.power(3, -30); def main(): print("hallo ich bin ein roboter beep buup") @@ -29,4 +29,63 @@ Vorwärts und rückwärts fahren time.sleep(1) if __name__ == '__main__': + main() + + +Eine Linie verfolgen +******************** + +.. code-block:: python + + import time + from compLib.Motor import Motor + from compLib.Encoder import Encoder + from compLib.IRSensor import IRSensor + + COLOR_BREAK = 850 + DRIVE_SPEED = 35 + + IRSensor.enable() + + def drive(left, right): + right *= -1 + Motor.multiple_power((0, right), (3, left)) + print(f"{left} {right}") + + def follow(): + while True: + sensors = IRSensor.read_all() + + if sensors[0] > COLOR_BREAK: + # turn left + drive(-DRIVE_SPEED, DRIVE_SPEED) + elif sensors[4] > COLOR_BREAK: + # turn right + drive(DRIVE_SPEED, -DRIVE_SPEED) + else: + # straight + drive(DRIVE_SPEED, DRIVE_SPEED) + + if sensors[0] > COLOR_BREAK and sensors[4] > COLOR_BREAK: + break + + drive(0, 0) + time.sleep(1) + + def main(): + follow() + + drive(DRIVE_SPEED, DRIVE_SPEED) + time.sleep(0.5) + follow() + + drive(DRIVE_SPEED, DRIVE_SPEED) + time.sleep(0.5) + follow() + + drive(DRIVE_SPEED, DRIVE_SPEED) + time.sleep(0.5) + follow() + + if __name__ == "__main__": main() \ No newline at end of file