166 lines
No EOL
3.7 KiB
ReStructuredText
166 lines
No EOL
3.7 KiB
ReStructuredText
.. _other_usage:
|
|
|
|
Beispiele
|
|
#########
|
|
|
|
Vorwärts und rückwärts fahren
|
|
*****************************
|
|
|
|
.. code-block:: python
|
|
|
|
import time
|
|
from compLib.Motor import *
|
|
|
|
def forward():
|
|
Motor.power(0, -30)
|
|
Motor.power(3, 30)
|
|
|
|
|
|
def backward():
|
|
Motor.power(0, 30)
|
|
Motor.power(3, -30)
|
|
|
|
def main():
|
|
print("hallo ich bin ein roboter beep buup")
|
|
|
|
forward()
|
|
time.sleep(1)
|
|
backward()
|
|
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()
|
|
|
|
Funktionalität des Roboters überprüfen
|
|
**************************************
|
|
|
|
.. code-block:: python
|
|
|
|
import time
|
|
from compLib.Motor import Motor
|
|
from compLib.Encoder import Encoder
|
|
from compLib.IRSensor import IRSensor
|
|
|
|
|
|
def testIR():
|
|
print("Enabling Infrared Sensor")
|
|
IRSensor.enable()
|
|
time.sleep(1)
|
|
|
|
print("Writing sensor values...")
|
|
for i in range(0, 50):
|
|
print(IRSensor.read_all())
|
|
time.sleep(0.1)
|
|
|
|
print("Disabling Infrared Sensor")
|
|
IRSensor.disable()
|
|
|
|
def testEncoders():
|
|
Motor.multiple_pulse_width((0, 50), (3, -50))
|
|
|
|
print("Writing encoder positions...")
|
|
for i in range(0, 50):
|
|
print(Encoder.read_all_positions())
|
|
time.sleep(0.1)
|
|
|
|
time.sleep(2)
|
|
print("Writing encoder velocities...")
|
|
for i in range(0, 50):
|
|
print(Encoder.read_all_velocities())
|
|
time.sleep(0.1)
|
|
|
|
Motor.multiple_pulse_width((0, 0), (3, 0))
|
|
|
|
|
|
def testMotors():
|
|
print("Setting pulse_with")
|
|
Motor.multiple_pulse_width((0, 50), (3, -50))
|
|
time.sleep(3)
|
|
|
|
print("Setting power")
|
|
Motor.multiple_power((0, 50), (3, -50))
|
|
time.sleep(3)
|
|
|
|
print("Setting pulse_with")
|
|
Motor.multiple_speed((0, 5), (3, -5))
|
|
time.sleep(3)
|
|
|
|
for i in range(0, 100):
|
|
Motor.multiple_power((0, i), (3, -i))
|
|
time.sleep(0.1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
print("Make sure robot is turned on it's back!")
|
|
time.sleep(5)
|
|
|
|
print()
|
|
print("----------------- Testing Infrared Sensor -----------------")
|
|
testIR()
|
|
|
|
print()
|
|
print("----------------- Testing Encoder -----------------")
|
|
testEncoders()
|
|
|
|
print()
|
|
print("----------------- Testing Motors -----------------")
|
|
testMotors() |