diff --git a/src/main/java/com/ardublock/translator/block/control/SketchBlock.java b/src/main/java/com/ardublock/translator/block/control/SketchBlock.java index ca66fa268c34bea407f4fdba870465ba482c26d8..e94335eb0f4ca157aca833c9940275854ee9e380 100644 --- a/src/main/java/com/ardublock/translator/block/control/SketchBlock.java +++ b/src/main/java/com/ardublock/translator/block/control/SketchBlock.java @@ -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{ diff --git a/src/main/webapp/com/ardublock/reference/map-beispiel-1.png b/src/main/webapp/com/ardublock/reference/map-beispiel-1.png index 50908c01828d65d39268ea37b69a7f9827f06302..a0a108c84585d528491fab7a5966f502fd33a50e 100644 Binary files a/src/main/webapp/com/ardublock/reference/map-beispiel-1.png and b/src/main/webapp/com/ardublock/reference/map-beispiel-1.png differ diff --git a/src/main/webapp/com/ardublock/reference/map.html b/src/main/webapp/com/ardublock/reference/map.html index 33044ac881574a2537ae8c48f31077e1536fc9b4..c2a0c0ca6272104ccdba507b20c648bf7b12ddda 100644 --- a/src/main/webapp/com/ardublock/reference/map.html +++ b/src/main/webapp/com/ardublock/reference/map.html @@ -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> · <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> -   map(4.2, 0, 5, 0, 255); +   map(Wert, 0, 1023, 0, 255); </code> <p> </div> diff --git a/src/main/webapp/com/ardublock/reference/map_common.html b/src/main/webapp/com/ardublock/reference/map_common.html index 5ae1a245e224dc457570a160bc81d1ac2932de97..7edae3399d785e9715d1166382acdb8d47848a87 100644 --- a/src/main/webapp/com/ardublock/reference/map_common.html +++ b/src/main/webapp/com/ardublock/reference/map_common.html @@ -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>