Skip to content
Snippets Groups Projects
Commit a6fccf36 authored by Anian Bühler's avatar Anian Bühler
Browse files

updated blockreference

parent 827fe9fc
No related branches found
No related tags found
1 merge request!1dev_prefereences to master
......@@ -55,6 +55,7 @@ public class SketchBlock extends TranslatorBlock
ret = headerBlocks.toCode();
headerBlocks = headerBlocks.nextTranslatorBlock();
//TODO: IF suitable Block (e.g. create Variable) THEN add returnValue to definitionCommand
/*if(!ret.contentEquals("")){ //remove empty commands //TODO: select suitable Blocks && (headerBlocks instanceof CodeLoopBlock || headerBlocks instanceof CodeCommentBlock || headerBlocks instanceof SetterNumberArrayBlock || headerBlocks instanceof SetterCharArrayBlock)
this.headerCommand.add(ret);
}else{
......
src/main/webapp/com/ardublock/reference/map-beispiel-1.png

14.4 KiB | W: | H:

src/main/webapp/com/ardublock/reference/map-beispiel-1.png

14.4 KiB | W: | H:

src/main/webapp/com/ardublock/reference/map-beispiel-1.png
src/main/webapp/com/ardublock/reference/map-beispiel-1.png
src/main/webapp/com/ardublock/reference/map-beispiel-1.png
src/main/webapp/com/ardublock/reference/map-beispiel-1.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -28,7 +28,7 @@
<map name="blockmap">
<area shape="rect" coords="29, 20, 133, 200" href="#block_beschreibung" title="Block"></area>
<area shape="rect" coords="174, 21, 264, 54" href="#wert" title="Wert"></area>
<area shape="rect" coords="146, 96, 290, 90" href="#von_low" title="von Low"></area>
<area shape="rect" coords="146, 96, 290, 54" href="#von_low" title="von Low"></area>
<area shape="rect" coords="144, 96, 324, 130" href="#von_high" title="von High"></area>
<area shape="rect" coords="148, 133, 300, 162" href="#nach_low" title="nach Low"></area>
<area shape="rect" coords="140, 170, 318, 200" href="#nach_high" title="nach High"></area>
......@@ -49,94 +49,43 @@
</p>
<h2 class="unterueberschrift" id="block_beschreibung">Erklärung</h2>
<p>
<b>Einfaches Beispiel: </b>Eine Zahl aus dem Zahlenraum 0 bis 10 soll in eine Zahl aus dem Zahlenraum von 0 bis 100 übertragen werden.
Zahl 2 aus dem Zahlenraum [0, 10] entspricht der Zahl 20 im Zahlenraum [0, 100].
<p>
Der Block rechnet linear zwischen den beiden Zahlenbereichen um:<br>
Liegt der Eingangswert am unteren Ende des Eingangsbereichs (hier 0), dann liegt der Ausgangswert auch am unteren Ende (hier 0).<br>
Liegt der Eingangswert in der Mitte des Eingangsbereichs (hier 512), dann liegt der Ausgangswert auch in der Mitte (hier 127).<br>
Liegt der Eingangswert am unteren Ende des Eingangsbereichs (hier 1023), dann liegt der Ausgangswert auch am unteren Ende (hier 255).<br>
<b style="color: red;">Achtung: </b>Das bedeutet auch, dass der <b>Ausgangswert</b> sowohl <b>größer</b> als auch <b>kleiner als</b> der eingestellte <b>Ausgangsbereich</b> (hier 0 - 255) werden kann.
<br><br>In ArduBlock:
<br>
Rechnung:
<div class="fraction">
<span class="top">100</span> &#xb7; <b style="color: red;">2</b>
<span class="bottom">10</span>
<p>
= 20
</p>
</div>
<br><br>
Wenn eine Zahl übertragen wird, dann verändert sich diese zwar, jedoch ist das Verhältnis des Abstandes zur
untersten Zahl und dieses zur oberen Zahl gleich, wie bei der zu übertragenden Zahl und der untersten bzw. obersten Zahl
ihres Zahlensystems.
<br>
Eine Formel hierfür lautet:
<br><br>
<div class="fraction">
<span class="top">alte_Zahl * neuer_höchstwert</b>
<span class="bottom">alter_höchstwert</span>
<p>
= neue_zahl
</p>
<br>
</div>
<br>
Oder:
<br><br>
<div class="fraction">
<span class="top">alte_Zahl * neuer_niedrigstwer</b>
<span class="bottom">alter_niedrigstwert</span>
<p>
= neue_zahl
</p>
</div>
<br>
<b>Weiteres Beispiel: </b>Die Zahl 50 aus dem Zahlenraum [0, 100] soll in den Zahlenraum [-50, 50] übertragen werden.
Die übertragene Zahl ist 0.
<br><br>
Anwendung mit dem Beispiel von <code>analogWrite</code>.
Mit dem <code>analogWrite</code> Befehl kann eine Ausgangsspannung zwischen 0 und 5 Volt an bestimmten digitalen Pins simuliert werden.
Dazu wird dem <code>analogWrite</code> Block eine Zahl zwischen 0 und 255 übergeben.
0 entspräche einer mittleren simulierten Ausgangsspannung von 0 Volt und 255 einer mittleren Ausgangsspannung von 5 Volt.
<br>
Nun kann man mit dem <code>zuordnen</code> Block eine Spannung mit einem Wert zwischen 0 und 5 angeben und sich daraus dann den erforderlichen Wert für den <code>analogWrite</code>
Befehl bestimmen lassen.
<br><br>
<b>Beispiel: </b> Eine Spannung von 4,2 Volt soll am Pin 3 simuliert werden.
<br>
<b style="color: red;">Wichtig: </b> Wenn eine Kommazahl eingesetzt wird, dann darf kein Komma verwendet werden.
Für das Komma wird stattdessen ein Punkt eingesetzt.
<br><br>
In ArduBlock:
<br><br>
<img src="map-beispiel-1.png" alt="beispiel-zum-zuordnen-block">
</p>
<h2 class="unterueberschrift" id="wert">Wert</h2>
<p>
Der <code>Wert</code> Parameter ist einfach dazu da, um den Zahlenwert aus dem Zahlenbereich <code>von Low</code> bis <code>von HIGH</code> einzutragen, der in den
Zahlenbereich von <code>nach Low</code> bis <code>nach High</code> übertragen werden soll.
Der <code>Wert</code> Parameter ist dazu da, um einen Zahlenwert aus dem Zahlenbereich 0 bis 1023 einzutragen, der in den Zahlenbereich von 0 bis 255 übertragen werden soll.
Als <code>Wert</code> Parameter kann auch eine analoge Variable oder ein analoger Eingang des Arduinos verwendet werden.
Es kann sich auch um eine Kommazahl handeln.
<br>
<b style="color: red;">Achtung: </b>Natürlich muss der <code>Wert</code> Parameter zwischen <code>von Low</code> und <code>von High</code> liegen.
<b style="color: red;">Achtung: </b>Der <code>Wert</code> Parameter muss zwischen <code>von Low</code> und <code>von High</code> liegen, damit der Ausgangsbereich (<code>nach Low</code> - <code>nach High</code>) nicht überschritten wird.
</p>
<h2 class="unterueberschrift" id="von_low" id="von_high">von Low/ von High</h2>
<h2 class="unterueberschrift" id="von_low" id="von_high">von Low / von High</h2>
<p>
Der <code>von Low</code> Parameter ist die untere Grenze des aktuellen Zahlenbereichs.
Der <code>von Low</code> Parameter ist die untere Grenze des Eingabebereichs.
<br>
Der <code>von High</code> Parameter ist die obere Grenze des aktuellen Zahlenbereichs.
Der <code>von High</code> Parameter ist die obere Grenze des Eingabebereichs.
</p>
<h2 class="unterueberschrift" id="nach_low" id="nach_low">nach Low/ nach High</h2>
<h2 class="unterueberschrift" id="nach_low" id="nach_low">nach Low / nach High</h2>
<p>
Der <code>nach Low</code> Parameter ist die untere Grenze des Zahlenbereichs in den die Größe unter <code>Wert</code> übertragen werden soll.
Der <code>nach Low</code> Parameter ist die untere Grenze des Ausgabebereichs in den die Größe unter <code>Wert</code> übertragen werden soll.
<br>
Der <code>nach High</code> Parameter ist die obere Grenze des Zahlenbereichs in den die Größe unter <code>Wert</code> übertragen werden soll.
Der <code>nach High</code> Parameter ist die obere Grenze des Ausgabebereichs in den die Größe unter <code>Wert</code> übertragen werden soll.
</p>
<h2 class="unterueberschrift" id="code">Code</h2>
<p>
Im Code kann der <code>zuordnen</code> Block mit dem Befehl <code>map(Wert, von Low, von High, nach Low, nach High)</code> realisiert werden.
Wobei für den die entsprechenden Parameter natürlich eingetragen werden müssen.
<br><br>
Das Beispiel von oben würde im Code dann folgendermaßen aussehen:
<br><br>
<code>
&emsp;&emsp;map(4.2, 0, 5, 0, 255);
&emsp;&emsp;map(Wert, 0, 1023, 0, 255);
</code>
<p>
</div>
......
......@@ -43,27 +43,25 @@
</p>
<h2 class="unterueberschrift" id="block_beschreibung">Erklärung</h2>
<p>
Der Block rechnet dabei linear zwischen den beiden Zahlenbereichen um:<br>
Der Block rechnet linear zwischen den beiden Zahlenbereichen um:<br>
Liegt der Eingangswert am unteren Ende des Eingangsbereichs (hier 0), dann liegt der Ausgangswert auch am unteren Ende (hier 0).<br>
Liegt der Eingangswert in der Mitte des Eingangsbereichs (hier 512), dann liegt der Ausgangswert auch in der Mitte (hier 127).<br>
Liegt der Eingangswert am unteren Ende des Eingangsbereichs (hier 1023), dann liegt der Ausgangswert auch am unteren Ende (hier 255).<br>
<b style="color: red;">Achtung: </b>Das bedeutet auch, dass der <b>Ausgangswert</b> sowohl <b>größer</b> als auch <b>kleiner als</b> der eingestellte <b>Ausgangsbereich</b> (0 - 255) werden kann.
In ArduBlock:
<br><br>
<br><br>In ArduBlock:
<br>
<img src="map_common-beispiel-1.png" alt="beispiel-zum-map-common-block">
</p>
<h2 class="unterueberschrift" id="wert">Wert</h2>
<p>
Der <code>Wert</code> Parameter ist einfach dazu da, um den Zahlenwert aus dem Zahlenbereich 0 bis 1023 einzutragen, der in den Zahlenbereich von 0 bis 255 übertragen werden soll.
Der <code>Wert</code> Parameter ist dazu da, um einen Zahlenwert aus dem Zahlenbereich 0 bis 1023 einzutragen, der in den Zahlenbereich von 0 bis 255 übertragen werden soll.
Als <code>Wert</code> Parameter kann auch eine analoge Variable oder ein analoger Eingang des Arduinos verwendet werden.
<b style="color: red;">Achtung: </b>Natürlich muss der <code>Wert</code> Parameter zwischen 0 und 1024 liegen.
Es kann sich auch um eine Kommazahl handeln.
<b style="color: red;">Achtung: </b>Der <code>Wert</code> Parameter muss zwischen 0 und 1023 liegen, damit der Ausgangsbereich nicht überschritten wird.
</p>
<h2 class="unterueberschrift" id="code">Code</h2>
<p>
Im Code kann der <code>map [0, 1023] to [0, 255]</code> Block mit dem Befehl <code>map(Wert, 0, 1023, 0, 255)</code> realisiert werden.
Wobei für den <code>Wert</code> Parameter natürlich die entsprechende zu Übertragende Größe eingetragen wird.
Wobei für den <code>Wert</code> Parameter die entsprechende zu übertragende Größe oder Variable eingetragen wird.
<p>
</div>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment