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
2022-11-18 16:46:58 +01:00

265 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 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 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="Encoder" href="Encoder.html" />
<link rel="prev" title="compLib" href="../index.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="Navigation menu">
<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 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>
<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"><a class="reference internal" href="Seeding.html">Seeding</a></li>
<li class="toctree-l2"><a class="reference internal" href="DoubleElimination.html">Double Elimination</a></li>
<li class="toctree-l2"><a class="reference internal" href="Opencv.html">Camera und OpenCV</a></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="Mobile navigation menu" >
<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="Page 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 mehrerer 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 angesteckt ist. 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 angesteckt ist. 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 angesteckt ist. 0-3</p></li>
<li><p><strong>speed</strong> Drehzahl, mit der sich ein Motor dreht, in Centimeter pro Sekunde (cm/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">
<a href="../index.html" class="btn btn-neutral float-left" title="compLib" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Zurück</a>
<a href="Encoder.html" class="btn btn-neutral float-right" title="Encoder" accesskey="n" rel="next">Weiter <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2022, Verein zur Förderung von Wissenschaft und Technik an Schulen (F-WuTS).</p>
</div>
Erstellt mit <a href="https://www.sphinx-doc.org/">Sphinx</a> mit einem
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
bereitgestellt von <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>