This repository has been archived on 2025-06-01. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
compLIB/lib/classes/Motor.html
Konstantin Lampalzer cb6d561c53 Update documentation
2022-10-13 00:56:19 +02:00

370 lines
No EOL
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html class="writer-html5" lang="de" >
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Motoren &mdash; CompLib 0.2.3 Dokumentation</title>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<!--[if lt IE 9]>
<script src="../../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/translations.js"></script>
<script type="text/javascript" src="../../_static/js/theme.js"></script>
<link rel="index" title="Stichwortverzeichnis" href="../../genindex.html" />
<link rel="search" title="Suche" href="../../search.html" />
<link rel="prev" title="Infrarot Sensoren" href="IRSensor.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../../index.html">
<img src="../../_static/compair-logo-white.svg" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Dokumentation durchsuchen" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../gettingStarted/index.html">Erste Schritte</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../software/installation.html">Installationsanweisungen</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../faq.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../other/usage.html">Beispiele</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../index.html">compLib</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="Encoder.html">Encoder</a></li>
<li class="toctree-l2"><a class="reference internal" href="IRSensor.html">Infrarot Sensoren</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Motoren</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#dokumentation-der-klasse">Dokumentation der Klasse</a></li>
<li class="toctree-l3"><a class="reference internal" href="#genauere-informationen">Genauere Informationen</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#power-vs-speed-vs-pulsewidth">Power vs Speed vs PulseWidth</a></li>
<li class="toctree-l4"><a class="reference internal" href="#normal-vs-multiple">Normal vs Multiple</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#beispiele">Beispiele</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#vorwarts-fahren">Vorwärts fahren</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../../index.html">CompLib</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="../../index.html" class="icon icon-home"></a> &raquo;</li>
<li><a href="../index.html">compLib</a> &raquo;</li>
<li>Motoren</li>
<li class="wy-breadcrumbs-aside">
<a href="../../_sources/lib/classes/Motor.rst.txt" rel="nofollow"> Quelltext anzeigen</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="motoren">
<span id="lib-motor"></span><h1>Motoren<a class="headerlink" href="#motoren" title="Link zu dieser Überschrift"></a></h1>
<div class="section" id="dokumentation-der-klasse">
<h2>Dokumentation der Klasse<a class="headerlink" href="#dokumentation-der-klasse" title="Link zu dieser Überschrift"></a></h2>
<dl class="py class">
<dt id="compLib.Motor.Motor">
<em class="property">class </em><code class="sig-prename descclassname">compLib.Motor.</code><code class="sig-name descname">Motor</code><a class="headerlink" href="#compLib.Motor.Motor" title="Link zu dieser Definition"></a></dt>
<dd><p>Klasse zum Ansteuern der Motoren</p>
<dl class="py method">
<dt id="compLib.Motor.Motor.multiple_power">
<em class="property">static </em><code class="sig-name descname">multiple_power</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">arguments</span><span class="p">:</span> <span class="n">tuple</span></em><span class="sig-paren">)</span><a class="headerlink" href="#compLib.Motor.Motor.multiple_power" title="Link zu dieser Definition"></a></dt>
<dd><p>Mehrere Motoren auf eine prozentuale Leistung der Höchstgeschwindigkeit einstellen</p>
<dl class="field-list simple">
<dt class="field-odd">Parameter</dt>
<dd class="field-odd"><p><strong>arguments</strong> tuple von port, percentage</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p>IndexError</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="compLib.Motor.Motor.multiple_pulse_width">
<em class="property">static </em><code class="sig-name descname">multiple_pulse_width</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">arguments</span><span class="p">:</span> <span class="n">tuple</span></em><span class="sig-paren">)</span><a class="headerlink" href="#compLib.Motor.Motor.multiple_pulse_width" title="Link zu dieser Definition"></a></dt>
<dd><p>Setzen den Pulsbreite mehreer Motoren in Prozent der Periode</p>
<dl class="field-list simple">
<dt class="field-odd">Parameter</dt>
<dd class="field-odd"><p><strong>arguments</strong> tuple von port, prozent</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p>IndexError</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="compLib.Motor.Motor.multiple_speed">
<em class="property">static </em><code class="sig-name descname">multiple_speed</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">*</span><span class="n">arguments</span><span class="p">:</span> <span class="n">tuple</span></em><span class="sig-paren">)</span><a class="headerlink" href="#compLib.Motor.Motor.multiple_speed" title="Link zu dieser Definition"></a></dt>
<dd><p>Geschwindigkeit mehrerer Motoren einstellen</p>
<dl class="field-list simple">
<dt class="field-odd">Parameter</dt>
<dd class="field-odd"><p><strong>arguments</strong> tuple von port, Geschwindigkeit in Radianten pro Sekunde (rad/s)</p>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p>IndexError</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="compLib.Motor.Motor.power">
<em class="property">static </em><code class="sig-name descname">power</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">port</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">percent</span><span class="p">:</span> <span class="n">float</span></em><span class="sig-paren">)</span><a class="headerlink" href="#compLib.Motor.Motor.power" title="Link zu dieser Definition"></a></dt>
<dd><p>Motor auf eine prozentuale Leistung der Höchstgeschwindigkeit einstellen</p>
<dl class="field-list simple">
<dt class="field-odd">Parameter</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>port</strong> Port, an welchen der Motor angestecht wird. 0-3</p></li>
<li><p><strong>percent</strong> Prozentsatz der Höchstgeschwindigkeit. zwischen -100 und 100</p></li>
</ul>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p>IndexError</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="compLib.Motor.Motor.pulse_width">
<em class="property">static </em><code class="sig-name descname">pulse_width</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">port</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">percent</span><span class="p">:</span> <span class="n">float</span></em><span class="sig-paren">)</span><a class="headerlink" href="#compLib.Motor.Motor.pulse_width" title="Link zu dieser Definition"></a></dt>
<dd><p>Setzen den Pulsbreite eines Motors in Prozent der Periode</p>
<dl class="field-list simple">
<dt class="field-odd">Parameter</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>port</strong> Port, an welchen der Motor angestecht wird. 0-3</p></li>
<li><p><strong>percent</strong> Prozent der Periode zwischen -100 und 100</p></li>
</ul>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p>IndexError</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt id="compLib.Motor.Motor.speed">
<em class="property">static </em><code class="sig-name descname">speed</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">port</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">speed</span><span class="p">:</span> <span class="n">float</span></em><span class="sig-paren">)</span><a class="headerlink" href="#compLib.Motor.Motor.speed" title="Link zu dieser Definition"></a></dt>
<dd><p>Geschwindigkeit des Motors einstellen</p>
<dl class="field-list simple">
<dt class="field-odd">Parameter</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>port</strong> Port, an welchen der Motor angestecht wird. 0-3</p></li>
<li><p><strong>speed</strong> Drehzahl, mit der sich ein Motor dreht, in Radianten pro Sekunde (rad/s)</p></li>
</ul>
</dd>
<dt class="field-even">Raises</dt>
<dd class="field-even"><p>IndexError</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</div>
<div class="section" id="genauere-informationen">
<h2>Genauere Informationen<a class="headerlink" href="#genauere-informationen" title="Link zu dieser Überschrift"></a></h2>
<div class="section" id="power-vs-speed-vs-pulsewidth">
<h3>Power vs Speed vs PulseWidth<a class="headerlink" href="#power-vs-speed-vs-pulsewidth" title="Link zu dieser Überschrift"></a></h3>
<p>Zur ansteuerung der Motoren kann entweder <code class="docutils literal notranslate"><span class="pre">Motor.power(...)</span></code>, <code class="docutils literal notranslate"><span class="pre">Motor.speed(...)</span></code> oder <code class="docutils literal notranslate"><span class="pre">Motor.pulse_width(...)`</span></code> verwendet werden.
Der Unterschied der 3 Funktionen liegt dabei in der Einheit des 2. Parameters.</p>
<div class="line-block">
<div class="line">Bei <code class="docutils literal notranslate"><span class="pre">Motor.power()</span></code> wird dabei ein Wert zwischen -100% und 100% der maximalen Geschwindigkeit angegeben.</div>
<div class="line"><code class="docutils literal notranslate"><span class="pre">Motor.speed()</span></code> verwendet die Encoder um die Geschwindigkeit der Motoren mittels closed-loop zu steuern. Diese Funktion sollte nur verwendet werden, wenn <code class="docutils literal notranslate"><span class="pre">Motor.power()</span></code> nicht zur Ansteuerung ausreicht.</div>
<div class="line"><code class="docutils literal notranslate"><span class="pre">Motor.pulse_width()</span></code> 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.</div>
</div>
</div>
<div class="section" id="normal-vs-multiple">
<h3>Normal vs Multiple<a class="headerlink" href="#normal-vs-multiple" title="Link zu dieser Überschrift"></a></h3>
<p>Der Aufruf der funktionen kann entweder über <code class="docutils literal notranslate"><span class="pre">Motor.power(port,</span> <span class="pre">percent)</span></code> oder <code class="docutils literal notranslate"><span class="pre">Motor.power((port,</span> <span class="pre">percent),</span> <span class="pre">(port,</span> <span class="pre">percent),</span> <span class="pre">..)</span></code> 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.</p>
</div>
</div>
<div class="section" id="beispiele">
<h2>Beispiele<a class="headerlink" href="#beispiele" title="Link zu dieser Überschrift"></a></h2>
<div class="section" id="vorwarts-fahren">
<h3>Vorwärts fahren<a class="headerlink" href="#vorwarts-fahren" title="Link zu dieser Überschrift"></a></h3>
<p>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.</p>
<p>Zusätzlich ist ein <code class="docutils literal notranslate"><span class="pre">time.sleep(5)</span></code> 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.</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">compLib.Motor</span> <span class="kn">import</span> <span class="n">Motor</span>
<span class="kn">import</span> <span class="nn">time</span>
<span class="n">Motor</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">50</span><span class="p">)</span>
<span class="n">Motor</span><span class="o">.</span><span class="n">power</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">50</span><span class="p">)</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
</div>
<footer>
<div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
<a href="IRSensor.html" class="btn btn-neutral float-left" title="Infrarot Sensoren" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Zurück</a>
</div>
<hr/>
<div role="contentinfo">
<p>
&copy; Copyright 2022, Verein zur Förderung von Wissenschaft und Technik an Schulen (F-WuTS)
</p>
</div>
Erstellt mit <a href="http://sphinx-doc.org/">Sphinx</a> mit einem
<a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
bereitgestellt von <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>