Update documentation

This commit is contained in:
Konstantin Lampalzer 2022-10-20 19:55:14 +02:00
parent 49c4040072
commit 3173308b54
31 changed files with 13061 additions and 1263 deletions

View file

@ -13,6 +13,8 @@
<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" />
@ -26,9 +28,12 @@
<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>
@ -163,62 +168,45 @@
<div itemprop="articleBody">
<div class="section" id="mein-drittes-programm">
<h1>Mein drittes Programm<a class="headerlink" href="#mein-drittes-programm" title="Link zu dieser Überschrift"></a></h1>
<h1>Mein drittes Programm<a class="headerlink" href="#mein-drittes-programm" title="Permalink to this heading"></a></h1>
<p>Der offizielle compAIR-Bot ist mit einer Reihe von Sensoren ausgestattet. Die wichtigsten sind die Infrarotsensoren und -sender, die an der Vorderseite des Roboters angebracht sind. Insgesamt gibt es fünf IR-Sensoren.</p>
<p>Um loszulegen, muss man zunächst das entsprechende Modul wie folgt importieren:</p>
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">compLib.IRSensor</span> <span class="kn">import</span> <span class="n">IRSensor</span>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="kn">from</span> <span class="nn">compLib.IRSensor</span> <span class="kn">import</span> <span class="n">IRSensor</span>
</pre></div>
</td></tr></table></div>
</div>
<p><img alt="irSensor" src="../_images/07_irSensor.webp" /></p>
<p>Wie im obigen Diagramm zu sehen ist, verfügt jeder Sensor auch über einen entsprechenden IR-Sender / Emitter. Dieser Sender kann mit <code class="docutils literal notranslate"><span class="pre">IRSensor.set(port,</span> <span class="pre">enable)</span></code> aktiviert werden.</p>
<p>Schalten wir nun alle fünf Sender ein:</p>
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">compLib.IRSensor</span> <span class="kn">import</span> <span class="n">IRSensor</span>
<span class="n">IRSensor</span><span class="o">.</span><span class="n">enable</span><span class="p">()</span>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="kn">from</span> <span class="nn">compLib.IRSensor</span> <span class="kn">import</span> <span class="n">IRSensor</span>
<span class="linenos">2</span>
<span class="linenos">3</span><span class="n">IRSensor</span><span class="o">.</span><span class="n">enable</span><span class="p">()</span>
</pre></div>
</td></tr></table></div>
</div>
<p>Diese fünf verschiedenen Sensoren befinden sich an der Vorderseite des Roboters und sind wichtig, um schwarze Linien zu erkennen.</p>
<p>Es ist sehr einfach, den Wert der Sensoren abzulesen:</p>
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7
8</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">compLib.IRSensor</span> <span class="kn">import</span> <span class="n">IRSensor</span>
<span class="n">IRSensor</span><span class="o">.</span><span class="n">enable</span><span class="p">()</span>
<span class="k">if</span> <span class="n">IRSensor</span><span class="o">.</span><span class="n">read_all</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">500</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;high&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;low&quot;</span><span class="p">)</span>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="kn">from</span> <span class="nn">compLib.IRSensor</span> <span class="kn">import</span> <span class="n">IRSensor</span>
<span class="linenos">2</span>
<span class="linenos">3</span><span class="n">IRSensor</span><span class="o">.</span><span class="n">enable</span><span class="p">()</span>
<span class="linenos">4</span>
<span class="linenos">5</span><span class="k">if</span> <span class="n">IRSensor</span><span class="o">.</span><span class="n">read_all</span><span class="p">()[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">500</span><span class="p">:</span>
<span class="linenos">6</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;high&quot;</span><span class="p">)</span>
<span class="linenos">7</span><span class="k">else</span><span class="p">:</span>
<span class="linenos">8</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;low&quot;</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>
</div>
<p><strong>Erkennen einer schwarzen Linie</strong>
Um den IR-Sensor zu testen, kannst du deinen Roboter auf eine schwarze Linie stellen. Der Sensor in der Mitte sollte auf der schwarzen Linie liegen.</p>
<div class="highlight-python notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7
8
9</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="kn">from</span> <span class="nn">compLib.IRSensor</span> <span class="kn">import</span> <span class="n">IRSensor</span>
<span class="n">IRSensor</span><span class="o">.</span><span class="n">enable</span><span class="p">()</span>
<span class="n">COLOR_BREAK</span> <span class="o">=</span> <span class="mi">900</span>
<span class="k">if</span> <span class="n">IRSensor</span><span class="o">.</span><span class="n">read_all</span><span class="p">()[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">COLOR_BREAK</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Robot is standing on a black line&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Robot is NOT standing on a black line&quot;</span><span class="p">)</span>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="linenos">1</span><span class="kn">from</span> <span class="nn">compLib.IRSensor</span> <span class="kn">import</span> <span class="n">IRSensor</span>
<span class="linenos">2</span>
<span class="linenos">3</span><span class="n">IRSensor</span><span class="o">.</span><span class="n">enable</span><span class="p">()</span>
<span class="linenos">4</span><span class="n">COLOR_BREAK</span> <span class="o">=</span> <span class="mi">900</span>
<span class="linenos">5</span>
<span class="linenos">6</span><span class="k">if</span> <span class="n">IRSensor</span><span class="o">.</span><span class="n">read_all</span><span class="p">()[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&gt;</span> <span class="n">COLOR_BREAK</span><span class="p">:</span>
<span class="linenos">7</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Robot is standing on a black line&quot;</span><span class="p">)</span>
<span class="linenos">8</span><span class="k">else</span><span class="p">:</span>
<span class="linenos">9</span><span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Robot is NOT standing on a black line&quot;</span><span class="p">)</span>
</pre></div>
</td></tr></table></div>
</div>
<p>Wenn das Programm ausgeführt wird, zeigt es an, dass der Roboter auf einer schwarzen Linie steht, wenn sich der mittlere IR-Sensor des Roboters über einer schwarzen Linie befindet, und es zeigt an, dass der Roboter NICHT auf einer schwarzen Linie steht, wenn sich der mittlere IR-Sensor nicht über einer Linie befindet.</p>
<div class="line-block">
<div class="line">In <code class="docutils literal notranslate"><span class="pre">Zeile</span> <span class="pre">1</span></code> importieren wir das <code class="docutils literal notranslate"><span class="pre">IRSensor</span></code>-Modul, das zur Kommunikation mit dem IR-Sensor-Board verwendet werden kann.</div>