From a6fccf3627b54d98cde104a965ada7eb353768d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anian=20B=C3=BChler?= <anian.buehler@reutlingen-university.de> Date: Tue, 2 Nov 2021 17:23:17 +0100 Subject: [PATCH] updated blockreference --- .../translator/block/control/SketchBlock.java | 1 + .../ardublock/reference/map-beispiel-1.png | Bin 14766 -> 14754 bytes .../webapp/com/ardublock/reference/map.html | 85 ++++-------------- .../com/ardublock/reference/map_common.html | 14 ++- 4 files changed, 24 insertions(+), 76 deletions(-) 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 ca66fa2..e94335e 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 GIT binary patch literal 14754 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 literal 14766 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 diff --git a/src/main/webapp/com/ardublock/reference/map.html b/src/main/webapp/com/ardublock/reference/map.html index 33044ac..c2a0c0c 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 5ae1a24..7edae33 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> -- GitLab