50 lines
2 KiB
ReStructuredText
50 lines
2 KiB
ReStructuredText
.. _lib_motor:
|
|
|
|
Motoren
|
|
********
|
|
|
|
Dokumentation der Klasse
|
|
========================
|
|
|
|
.. autoclass:: compLib.Motor.Motor
|
|
:members:
|
|
|
|
Genauere Informationen
|
|
======================
|
|
|
|
Power vs Speed vs PulseWidth
|
|
-----------------------------
|
|
Zur ansteuerung der Motoren kann entweder ``Motor.power(...)``, ``Motor.speed(...)`` oder ``Motor.pulse_width(...)``` verwendet werden.
|
|
Der Unterschied der 3 Funktionen liegt dabei in der Einheit des 2. Parameters.
|
|
|
|
| Bei ``Motor.power()`` wird dabei ein Wert zwischen -100% und 100% der maximalen Geschwindigkeit angegeben.
|
|
| ``Motor.speed()`` verwendet die Encoder um die Geschwindigkeit der Motoren mittels closed-loop zu steuern. Diese Funktion sollte nur verwendet werden, wenn ``Motor.power()`` nicht zur Ansteuerung ausreicht.
|
|
| ``Motor.pulse_width()`` stellt die Geschwindigkeit des Motors mittels der Pulsbreite der PWM-Steuerung des Motors ein. Diese Funktion ist so nah an der Hardware wie möglich und sollte auch nur verwendet werden, wenn es einen expliziten Grund dafür gibt.
|
|
|
|
Normal vs Multiple
|
|
------------------
|
|
Der Aufruf der funktionen kann entweder über ``Motor.power(port, percent)`` oder ``Motor.power((port, percent), (port, percent), ..)`` erfolgen.
|
|
Der zweite Aufruf ermöglicht dem Entwickler dabei beide Motoren in einem Aufruf anzusteuern und bringt einen kleinen Vorteil in der Leistungsfähigkeit der Software.
|
|
|
|
|
|
Beispiele
|
|
=========
|
|
|
|
Vorwärts fahren
|
|
---------------
|
|
|
|
Mit folgenden Programm drehen sich beide Motoren mit 50% ihrer maximalen Geschwindigkeit.
|
|
Dabei ist zu beachten, dass ein Motor in die entgegengesetzte Richtung zum aneren Motor gedreht werden muss, da diese spiegelverkehrt montiert sind.
|
|
|
|
Zusätzlich ist ein ``time.sleep(5)`` notwendig, welches das Programm für 5 Sekunden pausiert. Diese Pause wird benötigt, da der Roboter automatisch alle Motoren beim Ende des Progammes deaktiviert.
|
|
|
|
.. code-block:: python
|
|
|
|
from compLib.Motor import Motor
|
|
import time
|
|
|
|
Motor.power(0, -50)
|
|
Motor.power(3, 50)
|
|
|
|
time.sleep(5)
|
|
|