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 bcaeff1a1c Update documentation
2022-11-01 23:06:23 +01:00

382 lines
No EOL
19 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" />
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/theme.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 data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<script src="../../_static/jquery.js"></script>
<script src="../../_static/underscore.js"></script>
<script src="../../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/sphinx_highlight.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="next" title="Hardware" href="../../other/hardware.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><ul>
<li class="toctree-l4"><a class="reference internal" href="#compLib.Motor.Motor"><code class="docutils literal notranslate"><span class="pre">Motor</span></code></a></li>
</ul>
</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>
<li class="toctree-l1"><a class="reference internal" href="../../other/hardware.html">Hardware</a></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="Permalink to this heading"></a></h1>
<div class="section" id="dokumentation-der-klasse">
<h2>Dokumentation der Klasse<a class="headerlink" href="#dokumentation-der-klasse" title="Permalink to this heading"></a></h2>
<dl class="py class">
<dt class="sig sig-object py" id="compLib.Motor.Motor">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">compLib.Motor.</span></span><span class="sig-name descname"><span class="pre">Motor</span></span><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 class="sig sig-object py" id="compLib.Motor.Motor.multiple_power">
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">multiple_power</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">arguments</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span></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 class="sig sig-object py" id="compLib.Motor.Motor.multiple_pulse_width">
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">multiple_pulse_width</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">arguments</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span></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 class="sig sig-object py" id="compLib.Motor.Motor.multiple_speed">
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">multiple_speed</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">*</span></span><span class="n"><span class="pre">arguments</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span></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 class="sig sig-object py" id="compLib.Motor.Motor.power">
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">power</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">percent</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></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 class="sig sig-object py" id="compLib.Motor.Motor.pulse_width">
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">pulse_width</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">percent</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></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 class="sig sig-object py" id="compLib.Motor.Motor.speed">
<em class="property"><span class="pre">static</span><span class="w"> </span></em><span class="sig-name descname"><span class="pre">speed</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">port</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">speed</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></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="Permalink to this heading"></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="Permalink to this heading"></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="Permalink to this heading"></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="Permalink to this heading"></a></h2>
<div class="section" id="vorwarts-fahren">
<h3>Vorwärts fahren<a class="headerlink" href="#vorwarts-fahren" title="Permalink to this heading"></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="../../other/hardware.html" class="btn btn-neutral float-right" title="Hardware" accesskey="n" rel="next">Weiter <span class="fa fa-arrow-circle-right"></span></a>
<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>