-
-
»Programmstart«
-
Jedes Programm beginnt mit dem »Programmstart-Block«, welcher nicht gelöscht werden kann. Den ersten
- Block, den man verwenden möchte, verbindet man direkt mit der »Sequenzverbindung« am
- Programmstart-Block.
-
Einstellmöglichkeiten:
-
-
- - Erzeuge eine neue globale Variable.
- - Entferne die globale Variable.
-
-
Wenn globale Variablen erzeugt wurden:
-
-
- - Text, Name der Variablen.
- - Typ der Variablen.
- - Wert, Anfangswert der Variablen.
-
-
-
-
»Zeige Text ...«
-
-
Mit dem Block »Zeige ...« kannst du deinen Calliope mini Text darstellen lassen.
-
Einstellmöglichkeiten und Eingabewert:
-
-
- - Option, »Text« zeigt die Zeichenkette als Laufschrift über den
- Bildschirm an, »Zeichen« blendet die Buchstaben nacheinander ein.
- - Zeichenkette, anzuzeigender Text.
-
-
-
-
»Zeige Bild ...«
-
Mit dem Block »Zeige Bild/Animation« können selbst erstellte oder vordefinierte Bilder auf dem Bildschirm
- deines Calliope mini angezeigt werden.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Bild oder Animation, Bilder werden nacheinander angezeigt.
-
- - Bild oder Liste von Bildern als Animation.
-
-
-
-
»Lösche Bildschirm«
-
Mit dem Block »Lösche
- Bildschirm«
- kann der Bildschirminhalt deines Calliope mini gelöscht werden.
-
-
-
»Setze Helligkeit ...«
-
Die Helligkeit aller LEDs auf dem Bildschirm deines Calliope mini wird auf einen einheitlichen Wert
- gesetzt. 0 schaltet die LEDs ganz aus, 9 ist der maximale Helligkeitswert.
-
Eingabewert:
-
-
- - Zahl, Wert zwischen 0 und 9 für die Helligkeit der LEDs. Dabei
- bedeutet 0, dass die LEDs aus sind und 9, dass die LEDs am hellsten leuchten. Dieser Wert wird
- intern auf den Bereich zwischen 0 und 9 begrenzt.
-
-
-
-
»gib Helligkeit«
-
Die Helligkeit aller LEDs auf dem Bildschirm deines Calliope mini wird gelesen. 0 bedeutet, dass alle
- LEDs ausgeschaltet sind, 9 ist der Helligkeitswert.
-
Rückgabewert:
-
-
- - Zahl, Wert zwischen 0 und 9 für die Helligkeit der LEDs. Dabei
- bedeutet 0, dass die LEDs aus sind und 9, dass die LEDs am hellsten leuchten.
-
-
-
-
»Setze LED Helligkeit x ...«
-
-
Die Helligkeit einer einzelnen LED auf dem Bildschirm deines Calliope mini wird auf einen Wert
- festgelegt. Die Position der LED wird mittels x-Achse und y-Achse ermittelt. x ist die horizontale und y
- ist die vertikale Achse. 0 schaltet die LEDs aus, 9 ist der maximale Helligkeitswert.
-
Eingabewerte:
-
-
- - Zahl, Wert zwischen 0 und 4 für die x-Position der LED. Dabei steht 0
- für die erste LED in der Reihe und 4 für die fünfte und die letzte LED in der Reihe.
- - Zahl, Wert zwischen 0 und 4 für die y-Position der LED. Dabei steht 0
- für die erste LED in der Spalte und 4 für die fünfte und die letzte LED in der Spalte.
- - Zahl, Wert zwischen 0 und 9 für die Helligkeit der LED. Dabei
- bedeutet 0, dass die LED aus ist und 9, dass die LED am hellsten leuchtet. Dieser Wert wird intern
- auf den Bereich zwischen 0 und 9 begrenzt.
-
-
-
-
»gib LED Helligkeit x ...«
-
Die Helligkeit einer LED auf dem Bildschirm deines Calliope mini wird gelesen. Die Position der LED wird
- mittels x-Achse und y-Achse ermittelt. x ist die horizontale und y ist die vertikale Achse. 0 bedeutet,
- dass die LED ausgeschaltet ist und 9, dass die LED am hellsten leuchtet.
-
Eingabewerte:
-
-
- - Zahl, Wert zwischen 0 und 4 für die x-Position der LED. Dabei steht 0
- für die erste LED in der Reihe und 4 für die fünfte und die letzte LED in der Reihe.
- - Zahl, Wert zwischen 0 und 4 für die y-Position der LED. Dabei steht 0
- für die erste LED in der Spalte und 4 für die fünfte und die letzte LED in der Spalte.
-
-
Rückgabewert:
-
-
- - Zahl, Wert zwischen 0 und 9. Dabei bedeutet 0, dass die LED aus ist
- und 9, dass die LED am hellsten leuchtet.
-
-
-
-
»Zeige auf Serial Monitor ...«
-
-
Mit dem Block »Zeige auf Serial Monitor...« kannst du die Ausgabe in einem Serialen Monitor deiner Wahl
- (z.B. Arduino Serial Monitor / (Chrome) Browser Serial Monitor) anzeigen lassen.
-
Eingabewert:
-
-
- - Bestimme, was auf deinem Serialen Monitor angezeigt werden soll.
- Mögliche Varianten sind: Zahl, logischer Wert, Zeichenkette oder Farbe.
-
-
-
-
»Zeige 4-Ziffern Display
- Zahl...«
-
Mit diesem Block kannst du dir eine Zahl von 0 bis 9999 auf dem Grove 4-Ziffern Display von Seeed
- anzeigen lassen. Das Display muss am rechten Grove-Anschluss (A1) angeschlossen werden. Die Position von
- 0 bis 3 gibt die Startposition der Zahl an.
-
Optionen:
-
-
- -
-
Zahl, Wert zwischen 0 und 9999. Diese Zahl wird auf dem Display abgebildet.
-
- -
-
Zahl, Wert von 0 bis 3. Dies ist die Startposition der eingegeben Zahl.
-
- -
-
Logischer Wert, wahr oder falsch. Bestimmt, ob ein Doppelpunkt in der Mitte
- angezeigt werden soll.
-
-
-
-
-
»Lösche Bildschirm
- 4-Ziffern Display«
-
Dieser Block löscht die Ausgabe auf dem Grove-Display von Seeed, wenn dieses am rechtem Grove-Anschluss
- (A1) angeschlossen ist.
-
-
-
»Schalte LED ... an Farbe ...«
-
Mit dem Block »Schalte LED ... an Farbe ...« kannst du die RGB-LED deines Calliope mini oder Calli:bot in
- einer bestimmten Farbe einschalten.
-
Auswahlmöglichkeiten und Eingabewert:
-
-
- - Option, RGB-LED, die du einschalten möchtest.
- - Farbe, in der die RGB-LED leuchten soll.
-
-
-
-
»Schalte LED aus ...«
-
Mit dem Block »Schalte LED aus ...« kannst du eine RGB-LED deines Calliope mini oder Calli:bot
- ausschalten.
-
Eingabewert:
-
-
- - Option, RGB-LED, die du ausschalten möchtest.
-
-
-
-
»Setze LED Leiste ...
- Helligkeit ...«
-
Mit diesem Block setzt du die ausgewählte LED auf der Grove LED-Bar v2.0 von Seeed auf die ausgewählte
- Helligkeit. Die LED-Leiste muss mit dem rechten Grove-Anschluss (A1) verbunden werden. Dabei leuchtet
- die erste LED, also LED 0, rot, LED 1 orange und alle anderen grün.
-
Eingabewert:
-
-
- - Zahl, Wert von 0 bis 9. Die Zahl zeigt die LED, die gesteuert werden
- soll. Die Nummerierung der LEDs beginnt unten am Schriftzug »LED Bar v2.0«. Dieser Wert wird intern
- auf den Bereich zwischen 0 und 9 begrenzt.
- - Zahl, Wert von 0 bis 8. Dabei bedeutet 0, dass die LED aus ist und 8,
- dass die LED am hellsten leuchtet. Dieser Wert wird intern auf den Bereich zwischen 0 und 8
- begrenzt.
-
-
-
-
»Schalte LED an Calli:bot ...«
-
-
Mit diesem Block wird die rote LED am Calli:bot ein- oder ausgeschaltet.
-
Einstellmöglichkeiten:
-
-
- - Option, wähle die LED, welche du an deinem Calli:bot steuern
- möchtest.
- - Option, wähle, ob die LED ein- oder ausgeschaltet werden soll.
-
-
-
-
-
»Motor ... an Tempo % ... «
-
Der Block »Motor ... an
- Tempo % ... « setzt das Tempo
- (Geschwindigkeit) des jeweiligen Motors auf einen neuen Wert.
-
Falls einer von zwei angeschlossenen Motoren sich nicht drehen soll, so muss dessen Tempo-Wert explizit
- auf 0 gestellt werden.
-
Einstellmöglichkeiten und Eingabewert:
-
-
- - Option, wähle die Motoren aus, für die das Tempo
- (Geschwindigkeit) eingestellt werden soll.
- - Zahl, Wert zwischen -100 und 100. Geschwindigkeit des ersten Motors
- in Prozent. Dieser Wert wird intern auf den Bereich zwischen -100 und 100 begrenzt.
- - Zahl, Wert zwischen -100 und 100. Geschwindigkeit des zweiten Motors
- in Prozent. Dieser Wert wird intern auf den Bereich zwischen -100 und 100 begrenzt.
-
-
-
-
»Stoppe Motor Port A + B«
-
Mit dem Block »Stoppe Motor Port A +
- B« schaltest
- du den Motor A und den Motor B gleichzeitig aus.
-
-
-
»Motor Port ... an Tempo ...«
-
-
Der Block »Motor Port
- ... an Tempo ...« setzt das Tempo
- (Geschwindigkeit) eines Motors auf einen neuen Wert.
-
Wenn zwei Motoren angeschlossen sind, laufen beide nur mit halber Leistung. Falls einer von zwei
- angeschlossenen Motoren sich nicht drehen soll, so muss dessen Tempo-Wert explizit auf 0 gestellt
- werden. Es wird empfohlen, beim Einsatz von zwei Motoren stets zwei Motor-Blöcke - für jeden einen - als
- Paare zu verwenden.
-
Optionen:
-
-
- - Motor, wähle den Motor Port aus, für den das Tempo eingestellt
- werden soll. Dieser Wert wird intern auf den Bereich zwischen -100 und 100 begrenzt.
- - Zahl, Wert zwischen -100 und 100.
-
-
-
-
»Stoppe Motor ...«
-
Mit dem Block »Stoppe Motor
- ...« schaltest
- du den Motor, der an deinem Calliope mini oder Calli:bot angeschlossen ist, aus.
-
-
Einstellmöglichkeiten:
-
-
- - Option, wähle den Motor aus, der ausgeschaltet werden soll.
-
-
-
-
-
»Motor an Tempo % ...«
-
Mit diesem Block setzt du das Tempo (Geschwindigkeit) des Motors auf einen neuen Wert. Achtung: Dieser
- Block kann nur den Motor steuern, den du an die Motor-Pins über der RGB-LED anschließt.
-
Optionen:
-
-
- - Zahl, Wert zwischen -100 und 100. Geschwindigkeit des Motors. Wenn
- die Zahl negativ ist, wird die Drehrichtung umgekehrt. Dieser Wert wird intern auf den Bereich
- zwischen -100 und 100 begrenzt.
-
-
-
-
»Stoppe Motor ...«
-
Du kannst einstellen, ob der Motor langsam ausläuft oder gebremst wird.
-
-
- - Option, Stoppmöglichkeiten; »auslaufen« sorgt dafür, dass
- der Motor langsam ausläuft; »bremsen« sorgt dafür, dass der Motor abrupt abgebremst
- wird.
-
-
-
-
- »Setze Servomotor ... auf ° ... «
-
Mit diesem Block kannst du einen angeschlossenen Servomotor steuern und dessen Arm drehen.
-
Eingabewerte:
-
-
- - Zahl, Winkel bzw. Position in die sich der Arm des Servomotors drehen
- soll. Zahl zwischen -180 und 180.
-
-
-
-
»MotionKit
- ... ... «
-
Mit diesem Block kannst du einen einzelnen Motor des MotionKits ansteuern und ihn entweder vor- oder
- rückwärts laufen lassen.
-
Optionen:
-
-
- - Option, links oder rechts, der Motor, den du ansteuern
- möchtest.
- - Option, vor- oder rückwärts, die Richtung in die sich der
- Motor dreehen soll.
-
-
-
-
- »MotionKit links ... rechts ... «
-
Mit diesem Block kannst du die beiden Motoren des MotionKits gleichzeitig ansteuern. Dabei müssen sich
- die beiden Motoren allerdings nicht in die gleiche Richtung drehen.
-
Optionen:
-
-
- - Option, vor- oder rückwärts, die Richtung in die sich der
- linke Motor drehen soll.
- - Option, vor- oder rückwärts, die Richtung, in die sich der
- rechte Motor drehen soll.
-
-
-
-
»Spiele ...«
-
Mit dem Block »Spiele ...« bringst du deinen Roboter dazu, einen ganze, halbe, viertel, achtel oder
- sechzehntel Note abzuspielen.
-
Einstellmöglichkeiten:
-
-
- - Option, Länge der Note.
- - Option, Note die gespielt werden soll.
-
-
-
-
»Spiele Frequenz ... Dauer«
-
-
Mit dem Block »Spiele Frequenz ... Dauer« kannst du die Frequenz (Höhe eines Tons) und die Zeit (wie
- lange der Ton gespielt wird) programmieren. Der Ton wird über den eingebauten Lautsprecher deines
- Calliope mini abgespielt, bis die eingestellte Dauer erreicht ist.
-
-
Eingabewerte:
-
-
- - Zahl, gewünschte Frequenz in Hz (Hertz) eingeben. Je höher die
- Frequenz, desto höher ist der Ton.
- - Zahl, gewünschte Dauer des Tons in Millisekunden (ms) eingeben.
-
-
-
-
»Schreibe ... Wert auf Pin
- ...«
-
Mit dem Block »Schreibe ... Wert auf Pin ...« kannst du einen analogen oder digitalen Wert auf einen der
- Pins schreiben.
-
Einstellmöglichkeiten und Eingabewert:
-
-
- - Option, analog oder digital. »Analog« sind die Werte zwischen
- 0 und 1023. 0 bedeutet, dass es keine keine Spannung am Pin anliegt, und 1023 bedeutet, dass die
- vollen 3.3V anliegen. »Digital« sind entweder 0 oder 1. 0 bedeutet, dass keine Spannung anliegt und
- 1 bedeutet, dass volle Spannung anliegt.
- - Option, wähle den Ausgabepin aus.
- - Zahl, zu schreibender Wer. »Analog« sind die Werte zwischen 0 und
- 1023. 0 bedeutet, dass es keine keine Spannung am Pin anliegt, und 1023 bedeutet, dass die vollen
- 3.3V anliegen. »Digital« sind entweder 0 oder 1. 0 bedeutet, dass keine Spannung anliegt und 1
- bedeutet, dass volle Spannung anliegt. Dieser Wert wird intern auf den Bereich zwischen 0 und 1023
- begrenzt.
-
-
-
-
»Schalte LED Matrix ...«
-
Mit diesem Block wird die LED Matrix ein- oder ausgeschaltet.
-
Einstellmöglichkeiten:
-
-
- - An / Aus - steuert, ob die LED Matrix ein- oder ausgeschaltet
- wird.
-
-
-
-
»Taste ... gedrückt?«
-
Mit dem Block »Taste ... gedrückt?« kannst du einem anderen Block »mitteilen«, ob eine der eingebauten
- Tasten gedrückt wurde oder nicht. Dieser Block gibt die logischen Werte wahr = gedrückt oder
- falsch = nicht gedrückt zurück.
-
Einstellmöglichkeiten:
-
-
- - Option, wähle die Taste aus, die du abfragen möchtest.
-
-
Rückgabewert:
-
-
- - Logischer Wert: »wahr«, wenn die Taste gedrückt ist, sonst »falsch«.
-
-
-
-
-
»Pin ... gedrückt?«
-
Mit dem Block »Pin ... gedrückt?« kannst du einem anderen Block »mitteilen«, ob der ausgewählte Pin
- berührt wird oder nicht. Dieser Block gibt die logischen Werte wahr = gedrückt oder falsch
- = nicht gedrückt zurück.
-
Einstellmöglichkeiten:
-
-
- - Option, wähle den Pin aus, den du abfragen willst.
-
-
Rückgabewert:
-
-
- - Logischer Wert: »wahr«, wenn der Pin berührt wird, sonst »falsch«.
-
-
-
-
-
»Gib ... Lage«
-
Mit dem Block »Gib ... Lage« kannst du einem anderen Block »mitteilen«, ob sich der Calliope mini in
- einer bestimmten Lage befindet. Dieser Block fragt den eingebauten Gyrosensor des Calliope mini ab.
-
Befindet sich der Calliope mini in der abgefragten Lage liefert der »Gib ... Lage« Block »wahr«, sonst
- »falsch«.
-
Einstellmöglichkeiten:
-
-
-
Rückgabewert:
-
-
- - Logischer Wert: »wahr«, wenn er sich in der ausgewählten Lage
- befindet, sonst »falsch«.
-
-
-
-
»gib Winkel ° Kompasssensor«
-
Mit dem Block »gib Winkel Kompasssensor« kannst du die Orientierung deines Calliope minis im Bezug auf
- die Himmelsrichtungen auslesen, genau wie auf einem Kompass.
-
Dazu musst du vorher den Calliope mini kalibrieren, indem du den Calliope mini in alle Richtungen neigst,
- bis alle LEDS auf dem Display des Calliope mini leuchten.
-
Rückgabewert:
-
-
- - Zahl, Orientierung in Grad von 0° bis 360°. Dabei bedeutet 0°, dass
- dein Calliope mini in Richtung Norden zeigt.
-
-
-
-
»gib Geräusch % Mikrofon«
-
Mit dem Block »gib Wert Mikrofon« kannst du die Lautstärke von Geräuschen in der näheren Umgebung messen.
- Das Mikrofon ist nicht sehr empfindlich und die Geräusche sollten nicht zu weit weg sein.
-
Rückgabewert:
-
-
- - Zahl, Lautstärke von 0 (leise) bis 100 (laut). Bei älteren Versionen
- des Calliope mini kann es sein, dass nur Werte zwischen 0 und ca. 10 ausgegeben werden.
-
-
-
-
»gib Wert ms Zeitgeber«
-
Mit dem Block »Gib Wert Zeitgeber« kannst du einem anderen Block den aktuellen Stand des internen
- Zeitgebers in Millisekunden »mitteilen«. Der Zeitgeber 1 wird automatisch mit dem Beginn eines Programms
- gestartet.
-
Rückgabewert:
-
-
- - Zahl, aktueller Wert des Zeitgebers in Millisekunden.
-
-
-
-
»Setze Zeitgeber zurück«
-
Mit dem Block »Setze Zeitgeber zurück« kannst du den internen Zeitgeber auf den Wert 0 zurücksetzen.
-
-
-
-
»gib Wert ° Temperatursensor«
-
Mit dem Block »gib Wert Temperatursensor« kannst du die aktuell gemessene Temperatur als Zahl auslesen.
- Dieser Block fragt den eingebauten Temperatursensor des Calliope mini ab.
-
Rückgabewert:
-
-
- - Zahl; Temperatur in Grad Celsius.
-
-
-
-
-
»gib Wert % Lichtsensor«
-
Mit dem Block »gib Wert % Lichtsensor« kannst du Helligkeit deiner Umgebung messen. Dieser Block fragt
- den eingebauten Lichtsensor des Calliope mini ab.
-
Rückgabewert:
-
-
- - Zahl; Helligkeit von 0 bis 100. 0 bedeutet, dass es dunkel ist und
- 100, dass es hell ist.
-
-
-
-
»gib ... Wert Pin ...«
-
Mit dem Block »gib ... Wert Pin ...« kannst du den Eingabewert an dem ausgewählten Pin auslesen, wenn du
- dort ein anderes Gerät oder Zusatzmodul angeschlossen hast.
-
Einstellmöglichkeiten:
-
-
- - Option, wähle, welche Art von Signal du einlesen möchtest.
- »Analog« sind die Werte zwischen 0 und 1023. 0 bedeutet, dass es keine keine Spannung am Pin
- anliegt, und 1023 bedeutet, dass die vollen 3.3V anliegen. »Digital« sind entweder 0 oder 1. 0
- bedeutet, dass keine Spannung anliegt und 1 bedeutet, dass volle Spannung anliegt.
- - Pin, wähle den Pin aus, den du abfragen willst.
-
-
Rückgabewert:
-
-
- - Zahl; aktueller Wert des Eingangssignals. Entweder zwischen 0 und
- 1023 bei einem analogen Signal, bei einem digitalen Signal entweder 0 oder 1.
-
-
-
-
»gib Winkel ° Kreiselsensor ...«
-
Dieser Block gibt den aktuellen Wert des Kreiselsensors zurück. Der Wert ist der Winkel, um den der
- Calliope mini in die ausgewählte Richtung geneigt ist.
-
Einstellmöglichkeiten:
-
-
- - Option, wähle die Achse, um die der Calliope mini gedreht
- wird.
-
-
Rückgabewert:
-
-
- - Zahl, Winkel um die der Calliope mini gedreht worden ist. Die
- x-Achse ist diejenige, die den Pin 0 und 3 gedanklich verbindet (im Bild grün). Sie kann die Werte
- von 0° bis 90° zurückgeben. Die y-Achse (im Bild rot) gibt die Werte von -180° bis +180° und
- verbidet gedanklich den USB-Connector mit der Auskerbung.
-
-
-
-
»gib Wert
- milli-g Beschleunigungssensor ...«
-
Mit dem Block »gib Wert milli-g Beschleunigung ...« kannst du die Beschleunigung des Calliope mini
- auslesen. Es gibt drei Richtungen, in denen die Beschleunigung gemessen werden kann. Die Beschleunigung
- kann in die drei verschiedenen Raumrichtungen (links-rechts, vorne-hinten und oben-unten) gemessen
- werden.
-
Einstellmöglichkeiten:
-
-
- - Optionen; wähle, für welche Richtung der Wert ausgegeben
- werden soll. »x« ist die links-rechts-Achse, »y« die vorne-hinten-Achse, »z« ist die oben-unten
- Achse.
-
-
Rückgabewert:
-
-
- - Zahl; aktueller Wert der Beschleunigung in milli-g. 1g oder 1000
- milli-g wirken auf den Calliope mini aufgrund der Erdbeschleunigung, ohne das er bewegt wird.
-
-
-
-
»gib ...
- Luftfeuchtigkeitssensor A1«
-
Dieser Block zeigt den Wert des Feuchtigkeitssensors. Dieser Sensor misst sowohl die
- relative Luftfeuchtigkeit als auch die Temperatur der Umgebung und muss an den Pin A1 angeschlossen
- werden.
-
Der verwendete Sensor ist ein SHT31 und kommuniziert per I²C mit dem Calliope mini.
-
Rückgabewert:
-
-
- - Zahl, Wert der Luftfeuchtigkeit in Prozent oder der Temperatur in
- Grad Celsius.
-
-
Einstellmöglichkeiten:
-
-
- - Option; wähle, ob du die Werte für die Luftfeuchtigkeit oder
- die Temperatur zurückbekommen möchtest.
-
-
-
-
»gib Abstand cm
- Ultraschallsensor ...«
-
Dieser Sensor misst den Abstand zum nächsten Objekt durch das Aussenden von
- Ultraschallwellen. Dieser Senosor muss entweder am Calliope mini an den Pin A1 oder an den vorgesehenen
- Platz am Calli:bot angeschlossen werden. Der verwendete Sensor ist ein Grove Ultraschall-Sensor auf
- Basis eines HC-SR04, allerdings mit einem verbauten Mikrocontroller, der die Kommunikation übernimmt.
-
-
Einstellmöglichkeiten:
-
-
- - Option, der Eingang kann entweder für Calliope mini oder den
- Calli:bot konfiguriert werden.
-
-
Rückgabewert:
-
-
- - Zahl, Wert des Ultraschallsensors - Abstand zum nächsten Objekt in
- Zentimetern.
-
-
-
-
»gib Linie
- Infrarotsensor Calli:bot ...«
-
Dieser Sensor misst die Schattierung des Untergrunds und gibt zurück, ob es sich um einen
- hellen oder dunklen Untergrund handelt.
-
Rückgabewert:
-
-
- - Logischer Wert: »wahr«, wenn der Untergrund dunkel ist, sonst
- »falsch«.
-
-
Einstellmöglichkeiten:
-
-
- - Option, wähle den linken oder rechten Calli:bot Sensor aus.
-
-
-
-
-
»Gib ... Farbsensor
- TCS3472 ... «
-
Mit diesem Block kannst du den Farbsensor TCS3472 abfragen. Dieser Sensor kann die Farbe, die Helligkeit
- und die Farbzusammensetzung seiner Umgebung messen.
-
Optionen:
-
-
- - Option, wähle die Eigenschaft aus, die du messen möchtest. Es
- steht Farbe, Licht und RGB zur Auswahl.
- - Option, wähle den Sensor aus, den du abfragen möchtest.
-
-
Rückgabewert:
-
-
- - Farbe, die Farbe der Umgebung.
- - Zahl, die Helligkeit der Umgebung in Prozent.
- - Liste von Zahlen, die Aufteilung der Farbe in Werte von Rot, Grün
- und Blau.
-
-
-
-
»Wenn mache«
-
Mit dem Block »Wenn mache« kannst du gezielt Aktionen auslösen, die von einer
- Bedingung abhängen. Der »Wenn mache«-Block benötigt einen logischen Wert als Eingabewert. Falls die
- Bedingung in »Wenn« erfüllt (wahr) ist, wird der eingefügte Block (oder die Blöcke) ausgeführt. Bei
- einem verschachtelten »Wenn mache« Block, also wenn eine weitere Unterscheidung eingefügt wurde, wird
- zuerst die erste »Wenn« Bedingung abgefragt und, falls diese nicht erfüllt ist (Bedingung = falsch),
- wird die zweite »oder wenn« Bedingung geprüft. Auch diese zweite Bedingung benötigt wieder einen
- logischen Wert als Eingabewert.
-
Die Bedingungen können beliebig durch Anklicken des »+« Plus-Symbols erweitert
- und durch das »-« Minus-Symbol wieder bis auf eine einzige Bedingung reduziert werden.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Eine weitere Bedingung am Ende anfügen.
- - Die letzte Bedingung löschen.
- - Logischer Wert, »wahr« oder »falsch«.
- - Blöcke, die nur dann ausgeführt werden, wenn die zugehörige Bedingung
- »wahr« ist.
-
-
-
-
»Wenn mache sonst«
-
Mit dem Block »Wenn mache sonst« kannst du gezielt Aktionen auslösen, die von
- einer Bedingung abhängen. Der »Wenn mache sonst«-Block benötigt hierfür einen logischen Wert als
- Eingabewert. Falls die Bedingung erfüllt (wahr) ist, wird der dort eingefügte Block (oder die Blöcke)
- ausgeführt, ansonsten (Bedingung nicht erfüllt = falsch) wird der Block (bzw. die Blöcke), der bei
- »sonst« eingefügt wurde, ausgeführt. Bei einem verschachtelten »Wenn mache sonst« Block, also wenn eine
- weitere Unterscheidung dazugefügt wurde, wird zuerst die erste »Wenn« Bedingung abgefragt und, falls
- diese nicht erfüllt ist, wird die zweite »oder wenn« Bedingung geprüft. Auch diese zweite Bedingung
- benötigt wieder einen logischen Wert als Eingabewert. Nur wenn beide Bedingungen nicht erfüllt sind,
- wird der Block ausgeführt, der bei »sonst« eingefügt wurde.
-
Die Bedingungen können beliebig durch anklicken des »+« Plus-Symbols erweitert
- und durch das »-« Minus-Symbol wieder bis auf eine einzige Bedingung reduziert werden.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Eine weitere Bedingung am Ende anfügen.
- - Die letzte Bedingung löschen.
- - Logischer Wert, »wahr« oder »falsch«.
- - Blöcke, die nur dann ausgeführt werden, wenn die zugehörige Bedingung
- »wahr« ist.
- - Blöcke, die nur dann ausgeführt werden, wenn die zugehörige Bedingung
- »falsch« ist.
-
-
-
-
»Wiederhole unendlich
- oft«
-
Mit dem Block »Wiederhole unendlich oft« kannst du Blöcke endlos von deinem
- Roboter ausführen lassen. Alle Blöcke, die sich im »Wiederhole unendlich oft«-Block befinden, werden
- immer wieder ausgeführt. Die Blöcke werden dabei von oben nach unten ausgeführt. Sobald der letzte Block
- ausgeführt wurde, beginnt das Programm wieder mit dem ersten Block. Deshalb wird dieser Block auch
- »Endlosschleife« genannt.
-
Eingaben:
-
-
- - Blöcke, die wiederholt ausgeführt werden.
-
-
-
-
»Wiederhole n mal«
-
Mit dem Block »Wiederhole n mal« kannst du andere Blöcke beliebig oft von
- deinem Roboter ausführen lassen. Alle Blöcke, die sich im Block »Wiederhole n mal« befinden, werden so
- oft ausgeführt, wie im Eingabefeld eingestellt ist. Die Blöcke werden dabei von oben nach unten
- ausgeführt. Sobald der letzte Block ausgeführt wurde, beginnt das Programm wieder mit dem ersten Block,
- bis die eingestellte Wiederholungszahl erreicht ist. Deshalb wird dieser Block auch »Schleife« genannt.
-
-
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Zahl, wie oft die enthaltenen Blöcke wiederholt werden sollen.
- - Blöcke, die wiederholt ausgeführt werden.
-
-
-
-
- »Wiederhole solange/bis«
-
Mit dem Block »Wiederhole solange/bis« kannst du andere Blöcke beliebig oft von
- deinem Roboter ausführen lassen. Alle Blöcke, die sich im Block »Wiederhole solange/bis« befinden,
- werden immer wieder ausgeführt, solange bzw. bis die Bedingung im Eingabefeld erfüllt ist. Die Blöcke
- werden dabei von oben nach unten ausgeführt. Sobald der letzte Block ausgeführt wurde, beginnt das
- Programm wieder mit dem ersten Block, solange bzw. bis die Bedingung im Eingabefeld erfüllt ist. Deshalb
- wird dieser Block auch »bedingte Schleife« genannt.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - »solange« oder »bis«, um den Typ der bedingten Wiederholung zu
- bestimmen.
- - Logischer Wert, »wahr« oder »falsch«.
- - Blöcke, die wiederholt ausgeführt werden.
-
-
-
-
»Für Wert
- aus der Liste«
-
Mit dem Block »Für Wert aus der Liste« werden nacheinander alle Werte einer
- Liste an eine Variable übergeben und können dann in der so genannten Schleife verarbeitet werden. Mit
- jedem Schleifendurchlauf wird das nächste Element aus der Liste geholt, bis die Liste vollständig
- abgearbeitet ist. Der Wert des Listenelements wird an die Variable Element gebunden und kann in den
- enthaltenen Blöcken verwendet werden.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Typ der Listenelemente, »Zahl«, »Zeichenkette«, »logischer
- Wert«, »Farbe«, »Verbindung«
- - Variable, frei wählbarer Name, an den nacheinander die Listenelemente
- übergeben werden.
- - Liste, die Elemente des festgelegten Typs enthält. Wenn die
- Listenelemente nicht den richtigen Typ haben, kann die Liste nicht als Eingabewert verwendet werden.
-
- - Blöcke, die wiederholt ausgeführt werden.
-
-
-
-
»Zähle von bis«
-
-
Mit dem Block »Zähle von bis« kannst du andere Blöcke mehrfach von deinem
- Roboter ausführen lassen. Alle Blöcke, die sich im Block »Zähle von bis« befinden, werden so oft
- ausgeführt, bis die Zählung im Eingabefeld abgearbeitet ist. Die Blöcke werden dabei von oben nach unten
- ausgeführt. Sobald der letzte Block ausgeführt wurde, beginnt das Programm wieder mit dem ersten Block,
- solange die Zählbedingung im Eingabefeld erfüllt ist, d.h. der Endwert der Zählung noch nicht erreicht
- ist. Die Werte der Zählung werden jeweils an die Zählvariable gebunden, deren Name frei eingestellt
- werden kann. Der Wert der Zählvariablen kann in den Blöcken der Schleife verwendet werden. Der letzte
- Eingabewert gibt an, in welcher Schrittweite gezählt wird.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Variable, frei wählbarer Name für die Zählvariable.
- - Zahl, Anfangswert der Zählschleife.
- - Zahl, Endwert der Zählschleife.
- - Zahl, Schrittweite für die Zählschleife.
- - Blöcke, die wiederholt ausgeführt werden.
-
-
-
-
- »Die Schleife abbrechen/mit der nächsten Iteration der Schleife fortfahren«
-
Mit dem Block »Die Schleife abbrechen/mit der nächsten Iteration der Schleife
- fortfahren« kann eine Schleife vorzeitig beendet bzw. wieder zum Anfang der Schleife gesprungen werden.
- Sobald dieser Block in einer Reihe von Blöcken erscheint, werden alle nachfolgenden Blöcke bis zum Ende
- der Schleife ignoriert.
-
Einstellmöglichkeiten:
-
-
- - Abbruchverhalten, »Die Schleife abbrechen« oder »mit der
- nächsten Iteration der Schleife fortfahren«.
-
-
-
-
»Warte bis ... «
-
Mit dem Block »Warte bis« kannst du dein Programm an der Stelle »anhalten«, an
- der du den »Warte bis«-Block eingefügt hast. Dein Programm wartet dann so lange, bis die Bedingung
- erfüllt (wahr) ist. Den »Warte bis«-Block kannst du mit dem »+«-Zeichen um zusätzliche Bedingungen
- erweitern. Dein Programm wartet dann solange, bis (mindestens) eine der Bedingungen deines »Warte
- bis«-Blocks erfüllt ist.
-
Einstelmöglichkeiten und Eingabewert:
-
-
- - Eine weitere Wartebedingung am Ende anfügen.
- - Die letzte Wartebedingung löschen.
- - Logischer Wert, »wahr« oder »falsch«.
-
-
-
-
»Warte ms ... «
-
Mit dem Block »Warte« kannst du dein Programm an der Stelle "anhalten", an der
- du den Block eingefügt hast. Dein Programm bleibt dann für die angegebene Dauer an dieser Stelle stehen.
- Nach Ablauf der angegebenen Zeit wird dann der nachfolgende Block ausgeführt. Beispielsweise kannst du
- dadurch einen Text in dem Display deines Roboters exakt für diese Zeit anzeigen lassen.
-
Einstellmöglichkeiten:
-
-
- - Zahl, Wartezeit in Millisekunden.
-
-
-
-
»Warte bis ... «
-
Mit dem Block »Warte bis« kannst du dein Programm an der Stelle »anhalten«, an
- der du den »Warte bis«-Block eingefügt hast. Dein Programm wartet dann so lange, bis die Bedingung
- erfüllt (wahr) ist. Den »Warte bis«-Block kannst du mit dem »+«-Zeichen um zusätzliche Bedingungen
- erweitern. Dein Programm wartet dann solange, bis (mindestens) eine der Bedingungen deines »Warte
- bis«-Blocks erfüllt ist.
-
Einstelmöglichkeiten und Eingabewert:
-
-
- - Eine weitere Wartebedingung am Ende anfügen.
- - Die letzte Wartebedingung löschen.
- - Logischer Wert, »wahr« oder »falsch«.
-
-
-
-
»Vergleiche«
-
Mit dem Block »Vergleiche« kannst du verschiedene Eingabewerte (Zahl, Farbe,
- logischer Wert, Text) gleichen Typs miteinander vergleichen. Stimmt der Vergleich, wird der logische
- Wert »wahr« zurückgegeben, sonst »falsch«.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Linker Eingabewert für den Vergleich.
- - Vergleich, wähle aus, wie verglichen werden soll.
- - Rechter Eingabewert für den Vergleich.
-
-
Rückgabewert:
-
-
- - Logischer Wert, »wahr« oder »falsch«.
-
-
-
-
»und/oder«
-
Mit dem Block »und/oder« kannst du logische Werte zueinander in Beziehung
- setzen. Der »und/oder« Block liefert bei der Einstellung »und« nur dann den logischen Wert »wahr«, wenn
- beide Eingabewerte des Blocks gleichzeitig »wahr« sind. Bei der Einstellung »oder« genügt es, wenn einer
- der beiden Eingabewerte »wahr« ist, damit der »und/oder« Block als logischen Wert »wahr« liefert.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Logischer Wert für die Verknüpfung.
- - Wähle die logische Verknüpfung.
-
-
Rückgabewert:
-
-
- - Logischer Wert, »wahr« oder »falsch«.
-
-
-
-
»nicht«
-
Mit dem Block »nicht« kannst du einen logischen Wert umkehren. Der logische
- Wert ergibt sich aus der logischen Umkehrung des Eingabewertes, aus »wahr« wird »falsch« und umgekehrt.
-
-
Eingabewert:
-
-
- - Logischer Wert für die Umkehrung.
-
-
Rückgabewert:
-
-
- - Logischer Wert, Ergebnis der Umkehrung.
-
-
-
-
»wahr/falsch«
-
Mit dem Block »wahr/falsch« kannst du entweder den logischen Wert »wahr« oder
- »falsch« an einen anderen Block übermitteln.
-
Einstellmöglichkeiten:
-
-
- - Logischer Wert, wähle den Wert, der ausgegeben werden soll.
-
-
-
Rückgabewert:
-
-
-
-
-
»null«
-
Der Block »null« ist ein Platzhalter für eine Eingabe, die noch unbestimmt ist.
- Wenn z.B. eine neue Verbindungsvariable für die Kommunikation erzeugt wird und noch nicht belegt ist,
- wird der Anfangswert auf »null« gesetzt.
-
Rückgabewert:
-
-
- - Logischer Wert, »null«.
-
-
-
-
»teste«
-
Mit dem Block »teste« kannst du einen Test durchführen und je nach Ergebnis
- unterschiedliche Ergebnisse zurückgeben.
-
Eingabewerte:
-
-
- - Logischer Wert für den Test; wenn kein Block angegeben wird, wird
- "wahr" angenommen.
- - Beliebiger Wert, der mit einem Block bestimmt werden kann.
- - Beliebiger Wert, der mit einem Block bestimmt werden kann.
-
-
Rückgabewert:
-
-
- - Wert von beliebigem Typ.
-
-
-
-
»Wert«
-
Mit dem Block »Wert« kannst du Zahlen an einen anderen Block übermitteln.
-
Eingabewert:
-
-
-
Rückgabewert:
-
-
-
-
-
»Rechnen«
-
Mit dem Block »Rechnen« kannst du Zahlen addieren, subtrahieren,
- multiplizieren, dividieren oder potenzieren. Dieser Block ist nur in Verbindung mit einem anderen Block
- nutzbar, der eine Zahl als Eingabewert benötigt.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Zahl
- - Berechnung, wähle einen Operator aus.
- - Zahl
-
-
Rückgabewert:
-
-
- - Zahl, das Ergebnis der Berechnung.
-
-
-
-
- »Mathematische Funktionen«
-
Mit dem Block »Mathematische Funktionen« können einige elementare mathematische
- Funktionen berechnet werden.
-
Einstellmöglichkeiten und Eingabewert:
-
-
- - Mathematische Funktion, Quadratwurzel, Absolutwert,
- Invertieren, ln (natürlicher Logarithmus), log10 (dekadischer Logarithmus), e^ (Exponentialfunktion)
- 10^ (Zehner-Exponent)
- - Zahl, auf die die mathematische Funktion angewandt wird.
-
-
Rückgabewert:
-
-
- - Zahl, das Ergebnis der Funktion.
-
-
-
-
- »Trigonometrische Funktionen«
-
Mit dem Block »Trigonometrische Funktionen« können Sinus, Cosinus, Tangens und
- die zugehörigen Umkehrfunktionen berechnet werden. Die Eingabewerte werden im Bogenmaß erwartet (siehe
- Hinweis oben).
-
Einstellmöglichkeiten und Eingabewert:
-
-
- - Trigonometrische Funktion, wähle eine Funktion aus.
- - Zahl, im Bogenmaß
-
-
Rückgabewert:
-
-
- - Zahl, das Ergebnis der trigonometrischen Berechnung.
-
-
-
-
»Konstanten«
-
Der Block »Konstanten« stellt einige mathematische Konstanten bereit. »π«
- (3,1415...), »e« (2,718...), »φ« (1,618...), »sqrt(2)« (1,414...), »sqrt(½)« (0,7071...), »∞«.
-
Einstellmöglichkeiten:
-
-
- - Mathematische Konstanten, wähle eine Konstante aus.
-
-
Rückgabewert:
-
-
- - Zahl, Wert der mathematischen Konstante. Der Wert von Unendlich ist
- »infinity«.
-
-
-
-
- »Zahleneigenschaft«
-
Mit dem Block »Zahleneigenschaft« wird geprüft, ob eine eingegebene Zahl eine
- bestimmte Eigenschaft aufweist. »gerade«, »ungerade«, »ist Primzahl«, »ganze Zahl«, »positiv«,
- »negativ«, »teilbar durch«.
-
Einstellmöglichkeiten und Eingabewert:
-
-
- - Zahl, die mit einem Block geprüft wird.
- - Zahleneigenschaft, wähle, was geprüft werden soll.
- - Zahl; ein zweiter Eingabewert ist nur bei der Wahl von »ist teilbar
- durch« erforderlich.
-
-
Rückgabewert:
-
-
- - Logischer Wert, »wahr« oder »falsch«, je nachdem, ob die geprüfte
- Zahl die untersuchte Eigenschaft hat.
-
-
-
-
»Erhöhe um x«
-
Mit dem Block »Erhöhe um x« wird der Wert einer numerischen Variable um einen
- Betrag erhöht.
-
Eingabewerte:
-
-
- - Variable, deren Wert verändert werden soll.
- - Zahl.
-
-
-
-
»runden«
-
Mit dem Block »runden« können Werte gerundet werden. Beim Runden werden die
- Nachkommastellen auf 0 gesetzt. Es wird je nach Größe der Nachkommastellen automatisch auf- oder
- abgerundet. Man kann jedoch auch einstellen, dass stets auf- bzw. stets abgerundet werden soll.
-
Einstellmöglichkeiten und Eingabewert:
-
-
- - Art der Rundung, wähle, wie gerundet werden soll.
- - Zahl
-
-
Rückgabewert:
-
-
- - Zahl, gerundete Ganzzahl
-
-
-
-
»Liste
- auswerten«
-
Mit dem Block »Liste auswerten« können verschiedene Analysen einer Liste
- vorgenommen werden:
-
- - Summe - alle Werte der Liste werden zusammengezählt
- - Minimalwert - der kleinste Wert der Liste wird ausgegeben
- - Maximalwert - der größte Wert der Liste wird ausgegeben
- - Mittelwert - aus den Werten der Liste wird der Mittelwert bestimmt
- - Median - der Median (Zentralwert) einer Liste wird ausgegeben
- - Standardabweichung - die Standardabweichung (Varianz) der Listenwerte wird ausgegeben
- - Zufallswert - einer der Listenwerte wird per Zufall gewählt und ausgegeben
-
-
Einstellmöglichkeiten und Eingabewert:
-
-
- - Art der Listenauswertung
- - Liste mit Zahlen
-
-
Rückgabewert:
-
-
- - Zahl, Ergebnis der eingestellten Listenauswertung.
-
-
-
-
»Rest von«
-
Der Block »Rest von« führt eine Division durch und liefert den Rest der
- Division, der nicht mehr durch den Divisor geteilt werden konnte.
-
Eingabewerte:
-
-
- - Zahl, die geteilt wird (Dividend)
- - Zahl, durch die geteilt wird (Divisor bzw. Teiler)
-
-
Rückgabewert:
-
-
- - Zahl, Rest der Division
-
-
-
-
»Begrenze«
-
Der Block »Begrenze« sorgt dafür, dass Grenzwerte nicht überschritten werden.
- Er erfordert drei Eingabewerte:
-
- - zu prüfender Wert
- - untere Grenze
- - obere Grenze
-
-
Der Rückgabewert ist
-
- - der zu prüfende Wert, wenn gilt: untere Grenze ≤ zu prüfender Wert ≤ obere Grenze
- - untere Grenze, wenn zu prüfender Wert < untere Grenze
- - obere Grenze, wenn zu prüfender Wert > obere Grenze
-
-
Eingabewerte:
-
-
- - Zahl, die begrenzt wird.
- - Zahl, untere Grenze.
- - Zahl, obere Grenze.
-
-
Rückgabewert:
-
-
- - Zahl, die innerhalb der eingestellten Grenzen liegt.
-
-
-
-
- »Ganzzahlige Zufallswerte«
-
Mit dem Block »Ganzzahlige Zufallswerte« können ganzzahlige Zufallswerte
- innerhalb selbst gewählter Grenzen erzeugt werden.
-
Eingabewerte:
-
-
- - Zahl, untere Grenze
- - Zahl, obere Grenze
-
-
Rückgabewert:
-
-
- - Zahl, eine ganzzahlige Zufallszahl, die innerhalb der eingestellten
- Grenzen liegt
-
-
-
-
»Zufallszahl«
-
Mit dem Block »Zufallszahl« wird eine Zufallszahl zwischen 0,0 und 1,0
- bestimmt.
-
Rückgabewert:
-
-
- - Zahl, eine positive Zufallszahl kleiner oder gleich 1.
-
-
-
-
»wandle ... um in
- Zeichenkette«
-
Dieser Block wandelt eine Zahl in eine Zeichenkette um, die diese
- Zahl enthält. Als Beispiel wird die Zahl 123 in die Zeichenkette »123« umgewandelt.
-
-
Optionen und Eingabewerte:
-
-
- - Zahl, die Zahl die in eine Zeichenkette umgewandelt werden soll.
-
-
Rückgabewerte:
-
-
- - Zeichenkette, die Zeichenkette bestehend aus der gewählten Zahl.
-
-
-
-
-
»wandle ... um in Zeichen«
-
Dieser Block wandelt eine einzelne Zahl den dazugehörigen
- ASCII-Buchstaben um. Falls es zu dieser Zahl kein dazugehöriges ASCII-Zeichen gibt, wird eine leere
- Zeichenkette weitergegeben. So wird z.B. die Zahl 97 in den Buchstaben »a« umgewandelt.
-
Optionen und Eingabewerte:
-
-
- - Zahl, der ASCII-Code, der in das dazugehörige Zeichen umgewandelt
- werden soll. Zahl zwischen 0 und 255.
-
-
Rückgabewerte:
-
-
- - Zeichen, das Zeichen das dem gewählten ASCII-Code entspricht.
-
-
-
-
»Text«
-
Mit dem einfachen »Text«-Block wird ein Stück Text bereitgestellt.
-
Eingabewert:
-
-
- - Zeichenkette, bestehend aus beliebigen Zeichen
-
-
Rückgabewert:
-
-
- - Text, bestehend aus beliebigen Zeichen
-
-
-
-
-
»Erstelle Text«
-
-
Mit dem »Erstelle Text«-Block wird ein Stück Text aus verschiedenen
- Eingabewerten zusammengesetzt. Mit dem +-Zeichen können weitere Eingabemöglichkeiten geschaffen werden.
- Alle Eingaben werden zu einer kontinuierlichen Zeichenkette zusammengefügt.
-
Eingabewerte:
-
-
- - Weitere Eingabemöglichkeiten bereitstellen.
- - Letzte Eingabemöglichkeit entfernen (bei mehr als 2 Eingabemöglichkeiten).
-
- - Beliebiger Wert, Zahl, Text, logischer Wert, Farbe.
-
-
Rückgabewert:
-
-
- - Zeichenkette, bestehend aus beliebigen Zeichen.
-
-
-
-
»Text anhängen«
-
-
Mit dem »Text anhängen«-Block können Zeichenketten erweitert werden, z.B. indem
- an empfangene Nachrichten eine Signatur angehängt wird.
-
Eingabemöglichkeiten:
-
-
- - Text, Zeichenkette, an die Text angehängt werden soll
- - Text, Zeichenkette, die an einen Text angehängt werden soll
-
-
-
-
»wandle ... um in Zahl«
-
Dieser Block wandelt eine Zeichenkette in eine Zahl um, falls
- dies möglich ist. Wenn eine Zeichenkette also nur Zahlen enthält, kann dieser Block die Zeichenkette
- in eine Zahl umwandeln. Wenn der Block keine Zahlen enthält, gibt dieser Block »NaN« in der
- Simulation des Open Roberta Labs weiter, kann aber auch ein anderes Verhalten aufweisen, welches von
- der verwendeten Programmiersprache des Roboters abhängt. Falls die Zeichenkette zwar mit Zahlen beginnt, aber danach
- weitere Zeichen enthält, die keine Zahlen sind, gibt dieser Block nur die Zahlen weiter und stoppt,
- sobald das erste Zeichen in der Zeichenkette steht. Also als Beispiel macht dieser Block aus der
- Zeichenkette »52abcd« die Zahl 52.
-
Optionen und Eingabewerte:
-
-
- - Zeichenkette, die nur aus Zahlen besteht und in eine Zahl umgewandelt
- werden soll.
-
-
Rückgabewerte:
-
-
- - Zahl, die zahl aus der die Zeichenkette bestand.
-
-
-
-
»wandle Zeichen ...
- an Position ... in Zahl«
-
Dieser Block wandelt einen Buchstaben oder ein Zeichen aus einer
- Zeichenkette in die dazugehörige ASCII-Nummer um. Jedes Zeichen hat dabei eine dazugehörige Nummer
- in der ASCII-Tabelle. So wird z.B. ein kleines »a« in die Zahl 97 umgewandelt.
-
Optionen und Eingabewerte:
-
-
- - Zeichenkette, aus dieser wird ein einzelnes Zeichen ausgewählt.
- - Zahl, die Stelle des Zeichens das umgewandelt werden soll. Beachte
- das die Nummerierung bei 0 anfängt.
-
-
Rückgabewerte:
-
-
- - Zahl, der ASCII-Code des ausgewählten Zeichens.
-
-
-
-
»Erzeuge Liste«
-
Der Block »Erzeuge eine leere Liste« erzeugt eine Liste ohne Inhalt. Der Block »Liste« erzeugt eine Liste
- mit einigen voreingestellten Werten. Mit + und - können weitere Listenelemente am Ende hinzugefügt bzw.
- entfernt werden. Wenn das letzte Element einer Liste entfernt wurde, liegt eine leere Liste vor.
-
Einstellmöglichkeiten:
-
-
- - Typ, »Zahl«, »logischer Wert«, »Zeichenkette«, »Farbe« oder
- »Verbindung«.
- - Erzeuge ein weiteres Listenelement am Ende der bestehenden Liste.
- - Lösche das Listenelement am Ende der bestehenden Liste.
- - Werte, die dem Listentyp entsprechen. Hiermit können Anfangswerte
- gesetzt werden.
-
-
Rückgabewert:
-
-
- - Leere Liste oder eine Liste mit Elementen gleichen Typs.
-
-
-
-
»Wiederhole Element in Liste«
-
-
Der Block »Wiederhole Element in Liste« erzeugt eine Liste mit gleichen Elementen.
-
Einstellmöglichkeiten:
-
-
- - Typ, »Zahl«, »logischer Wert«, »Zeichenkette«, »Farbe« oder
- »Verbindung«.
- - Listenelement, das mit dem eingestellten Listentyp übereinstimmt.
- Dieser Wert wird in der Liste wiederholt.
- - Zahl, die angibt, wie oft der eingestellte Wert wiederholt werden
- soll.
-
-
Rückgabewert:
-
-
- - Eine Liste des spezifizierten Typs mit der eingestellten Anzahl von
- gleichen Elementen.
-
-
-
-
»Länge«
-
-
Der Block »Länge« gibt als Wert die Länge einer Liste zurück, die als Eingabewert angegeben wird. Eine
- leere Liste hat die Länge 0.
-
Eingabewert
-
-
-
Rückgabewert:
-
-
- - Zahl, Anzahl der Listenelemente
-
-
-
-
»ist leer?«
-
Eine als Eingabewert gegebene Liste wird geprüft, ob sie leer ist.
-
Eingabewert
-
-
-
Rückgabewert:
-
-
- - Logischer Wert, entweder »wahr« oder »falsch«
-
-
-
-
»Suche in der Liste«
-
Eine Liste wird durchsucht, ob ein Element darin enthalten ist. Wenn das Element enthalten ist, wird die
- Listenposition zurückgegeben. Wenn das Element nicht enthalten ist, ist das Ergebnis -1.
-
Einstellmöglichkeiten:
-
-
- - Liste, die untersucht werden soll.
- - Position für den Treffer, entweder »ersten« oder »letzten«
- Treffer suchen.
- - Wert, der mit den Listentyp übereinstimmt.
-
-
Rückgabewert:
-
-
- -
-
Zahl, die Position, an der das Element in der Liste steht.
- Beachte: Die Zählung der Listenpositionen beginnt bei 0.
-
-
-
-
-
»Nimm Listenelement«
-
Mit diesem Block wird auf ein Element einer Liste zugegriffen. Das Element wird gegebenenfalls verändert.
-
-
Es wird eine Liste als Eingabe übergeben. Danach wird per Drop-Down-Liste spezifiziert, was mit dem
- Listenelement geschehen soll. Anschließend wird angegeben, in welcher Richtung die Liste durchsucht
- werden soll, ob von vorn (links), von hinten (rechts) oder zufällig.
-
Einstellmöglichkeiten und Eingabewerte
-
-
- - Liste, die bearbeitet werden soll.
- - Aktion für das gefundene Element: »nimm« liest das Element und
- lässt es unverändert, »nimm und entferne« liest das Element und entfernt es aus der Liste,
- »entferne« entfernt das Element aus der Liste.
- - Positionsbestimmung für das gefundene Element: »#te«, »#te von
- hinten«, »erste«, »letzte« oder »zufälliges« .
- -
-
Zahl, Listenposition. Dieser Eingabewert entfällt, wenn zuvor »erste«, »letzte« oder »zufälliges«
- als Position bestimmt wurde.
- Beachte: Die Zählung der Listenpositionen beginnt bei 0.
-
-
-
Rückgabewert:
-
-
- - Das spezifizierte Listenelement, das an der angegebenen
- Listenposition gefunden wurde. »undefined« (undefiniert), wenn die Listenposition nicht existiert.
-
Bei »entferne« wird kein Wert zurückgegeben; die bearbeitete Liste ist dann um dieses
- Listenelement reduziert.
-
-
-
-
»Setze Listenelement«
-
In einer als Eingabewert übergebenen Liste wird ein näher spezifiziertes Element durch einen neuen Wert
- ersetzt bzw. es wird ein Wert eingefügt.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Liste, die bearbeitet werden soll.
- - Aktion für das gefundene Element: »setze« verändert das
- Element, »füge« fügt ein neues Element in die Liste ein.
- - Positionsbestimmung für das gefundene Element: »#te«, »#te von
- hinten«, »erste«, »letzte« oder »zufälliges« .
- - Zahl, Listenposition. Dieser Eingabewert entfällt, wenn zuvor
- »erste«, »letzte« oder »zufälliges« als Position bestimmt wurde.
Beachte: Die Zählung der
- Listenpositionen beginnt bei 0.
- - Listenelement, das an der zuvor bestimmten Listenposition gesetzt
- oder eingefügt wird.
-
-
-
-
»Erhalte Unterliste«
-
Aus einer als Eingabewert übergebenen Liste wird eine Unterliste erzeugt. In der Unterliste sind alle
- Elemente enthalten, die den weiteren Spezifikationen dieses Blocks entsprechen.
-
Einstellmöglichkeiten und Eingabewerte:
-
-
- - Liste, die bearbeitet werden soll.
- - Position, Anfang der Unterliste: »von #«, »von # von hinten«
- oder »vom Anfang«.
- - Zahl, Listenposition. Dieser Eingabewert entfällt, wenn zuvor »vom
- Anfang« als Position bestimmt wurde.
Beachte: Die Zählung der Listenpositionen beginnt bei 0.
-
- - Position, Ende der Unterliste: »zu #«, »zu # von hinten« oder
- »zum Ende«.
- - Zahl, Listenposition. Dieser Eingabewert entfällt, wenn zuvor »zum
- Ende« als Position bestimmt wurde.
Beachte: Die Zählung der Listenpositionen beginnt bei 0.
-
-
Rückgabewert:
-
-
- - Liste, Unterliste gleichen Typs wie die als Eingabewert übergebene
- Liste.
-
-
-
-
»Farbwahl «
-
Mit diesem Block kannst du eine Farbe aus einer Auswahl von vordefinierten Farben auswählen.
-
Option:
-
-
- - Option, wähle die Farbeaus, die du verwenden möchtest.
-
-
Rückgabewert:
-
-
- - Farbe, die ausgewählte Farbe.
-
-
-
-
»Farbwahl «
-
Mit diesem Block kannst du eine Farbe aus einer Auswahl von vordefinierten Farben auswählen.
-
Option:
-
-
- - Option, wähle die Farbeaus, die du verwenden möchtest.
-
-
Rückgabewert:
-
-
- - Farbe, die ausgewählte Farbe.
-
-
-
-
»Farbwahl «
-
Mit diesem Block kannst du eine Farbe aus einer Auswahl von vordefinierten Farben auswählen.
-
Option:
-
-
- - Option, wähle die Farbeaus, die du verwenden möchtest.
-
-
Rückgabewert:
-
-
- - Farbe, die ausgewählte Farbe.
-
-
-
-
»Farbe mit Rot ...
- Grün ... Blau ... Weiß ... «
-
Mit diesem Block kannst du dir eine eigene Farbe erstellen, indem du deine Farbe aus Rot, Grün und Blau
- mischst.
-
Eingabewerte:
-
-
- - Zahl, der Rot-Anteil in deine Farbe. Wert zwischen 0 und 255.
- - Zahl, der Grün-Anteil deiner Farbe. Wert zwischen 0 und 255.
- - Zahl, der Blau-Anteil deiner Farbe. Wert zwischen 0 und 255.
- - Zahl, die Helligkeit deiner Farbe. Wert zwischen 0 und 255.
-
-
Rückgabewert:
-
-
- - Farbe, die von dir erstellte Farbe.
-
-
-
-
»Farbe mit Rot ... Grün
- ... Blau ... «
-
Mit diesem Block kannst du dir eine eigene Farbe erstellen, indem du deine Farbe aus Rot, Grün und Blau
- mischst.
-
Eingabewerte:
-
-
- - Zahl, der Rot-Anteil in deine Farbe. Wert zwischen 0 und 255.
- - Zahl, der Grün-Anteil deiner Farbe. Wert zwischen 0 und 255.
- - Zahl, der Blau-Anteil deiner Farbe. Wert zwischen 0 und 255.
-
-
Rückgabewert:
-
-
- - Farbe, die von dir erstellte Farbe.
-
-
-
-
»Farbe mit Rot ... Grün
- ... Blau ... «
-
Mit diesem Block kannst du dir eine eigene Farbe erstellen, indem du deine Farbe aus Rot, Grün und Blau
- mischst.
-
Eingabewerte:
-
-
- - Zahl, der Rot-Anteil in deine Farbe. Wert zwischen 0 und 255.
- - Zahl, der Grün-Anteil deiner Farbe. Wert zwischen 0 und 255.
- - Zahl, der Blau-Anteil deiner Farbe. Wert zwischen 0 und 255.
-
-
Rückgabewert:
-
-
- - Farbe, die von dir erstellte Farbe.
-
-
-
-
»Schreibe Variable«
-
Mit dem Block »Schreibe Variable« kannst du den Wert einer Variablen verändern. Je nach Typ der Variablen
- (Zahl, Zeichenkette, logischer Wert, Liste, Farbe, Verbindung) kann der Variablen ein passender Wert
- übergeben werden.
-
Einstellmöglichkeit und Eingabewert:
-
-
- - Variable, deren Wert verändert werden soll.
- - Wert, auf den die Variable gesetzt werden soll.
-
-
-
-
»Lies Variable«
-
Mit dem Block »lies Variable« kannst du den Wert einer Variablen an einen anderen Block übergeben. Der
- Typ des Ausgabewertes entspricht immer dem Typ, mit dem die Variablen im Block »Start« initialisiert
- wurde.
-
Einstellmöglichkeit:
-
-
- - Variable, deren Wert gelesen werden soll.
-
-
Rückgabewert:
-
-
- - Wert, der in der Variablen gespeichert ist.
-
-
-
-
- Funktionsblock ohne/mit Eingabe- und ohne Rückgabewert
-
In einem Funktionsblock ohne/mit Eingabe- und Rückgabewert wird eine Folge von Anweisungen
- zusammengefasst. Die Eingabewerte werden durch die lokalen Variablen im Funktionsblock festgelegt. Mit
- dem »+«-Zeichen können lokale Variablen als Eingabewerte für den Funktionsblock erzeugt werden. Lokale
- Variablen werden nicht initialisiert.
-
Falls in einen Funktionsblock eine Wenn-Abfrage (siehe unten) eingebaut wird, kann es zu einem
- vorzeitigen Abbruch der Funktion kommen.
-
Der Funktionsblock steht nach seiner Definition als zusätzlicher Block in der Kategorie »Funktion« zur
- Verfügung. Auf diese Weise kann die Lesbarkeit komplexer Programme wesentlich vereinfacht werden.
-
Einstellmöglichkeiten:
-
-
- - Funktionsname, ohne Leer- und Sonderzeichen
- - Erzeuge eine lokale Variable, der über den Funktionsaufruf ein Wert
- zugewiesen wird.
- - Lösche eine lokale Variable.
-
-
-
-
-
- Funktionsblock ohne/mit Eingabe- und mit Rückgabewerten
-
In einem Funktionsblock ohne/mit Eingabe- und mit Rückgabewert wird eine Folge von Anweisungen
- zusammengefasst. Mit dem »+«-Zeichen können lokale Variablen als Eingabewerte für den Funktionsblock
- erzeugt werden. Nachdem alle Anweisungen durchlaufen wurden, wird abschließend ein Wert als
- Funktionswert zurückgegeben.
-
Falls in einen Funktionsblock eine Wenn-Abfrage eingebaut wird, kann es zu einem vorzeitigen Abbruch der
- Funktion kommen, und es kann ein alternativer Funktionswert zurückgegeben werden.
-
Der Funktionsblock steht nach seiner Definition als zusätzlicher Block in der Kategorie »Funktion« zur
- Verfügung. Auf diese Weise kann die Lesbarkeit komplexer Programme wesentlich vereinfacht werden.
-
Einstellmöglichkeiten:
-
-
- - Funktionsname, ohne Leer- und Sonderzeichen
- - Erzeuge eine lokale Variable, der über den Funktionsaufruf ein Wert
- zugewiesen wird.
- - Lösche eine lokale Variable.
- - Datentyp für den Rückgabewert. »Zahl«, »logischer Wert«,
- »Zeichenkette«, »Farbe«, »Verbindung«, »Liste Zahl«, »Liste logischer Wert«, »Liste Zeichenkette«,
- »Liste Verbindung«.
- - Wert, der dem eingestellten Datentyp des Rückgabewertes entspricht.
-
-
-
Rückgabewert:
-
-
- - Wert, der im Rückgabeblock berechnet wurde.
-
-
-
-
-
Wenn-Abfrage innerhalb
- einer Funktion
-
Die Wenn-Abfrage innerhalb einer Funktion ist von besonderer Bedeutung. Sobald der Funktionsablauf auf
- eine Wenn-Abfrage trifft, wird die Gültigkeit der Bedingung geprüft.
-
Wenn-Abfrage innerhalb
- einer Funktion mit Rückgabewert:
-
- - Wenn die Bedingung erfüllt ist, wird der weitere Funktionsablauf ignoriert und die Funktion wird
- beendet. Der zweite übergebene Wert wird als Funktionswert zurückgegeben. Ein eventuell mit der
- Funktion definierter Rückgabewert wird nicht weiter berücksichtig. Der Rückgabewert-Typ wird durch
- den Typ des Rückgabewerts der umgebenden Funktion festgelegt.
- - Wenn die Bedingung nicht erfüllt ist, wird der Funktionsablauf fortgesetzt. Ein eventuell mit der
- Funktion definierter Rückgabewert wird als Funktionswert zurückgegeben, wenn der Funktionsablauf das
- Funktionsende erreicht.
-
-
Wenn-Abfrage
- innerhalb einer Funktion ohne Rückgabewert:
-
- - Eine Wenn-Abfrage innerhalb einer Funktion ohne Rückgabewert hat nur die Bedingung als Eingabewert.
-
- - Wenn die Bedingung erfüllt ist, wird der weitere Funktionsablauf ignoriert und die Funktion wird
- beendet.
- - Wenn die Bedingung nicht erfüllt ist, wird der Funktionsablauf fortgesetzt.
-
-
Einstellgabewerte:
-
-
- - Logischer Wert, der aus einer Bedingung bestimmt wird.
- - Wert, dessen Typ am Ende des Funktionsblock eingestellt
- ist.
-
-
Rückgabewert:
-
-
- - Wert, dessen Typ am Ende des Funktionsblock eingestellt ist.
-
-
-
-
»Funktionsaufruf ohne
- Rückgabewert «
-
Mit diesem Block kannst du eine vorher definierte Funktion aufrufen. Diese Funktion gibt dabei keinen
- Wert zurück.
-
Eingabewerte:
-
-
- - Wert, abhängig von den Eingabewerte der vorher definierten Funktion.
-
-
-
-
-
- »Funktionsaufruf mit Rückgabewert «
-
Mit diesem Block kannst du eine vorher definierte Funktion aufrufen und den Rückgabewerte abrufen.
-
Eingabewerte:
-
-
- - Wert, abhängig von den Eingabewerten der vorher definierten Funktion.
-
-
-
Rückgabewerte:
-
-
- - Wert, abhängig von dem Rückgabewert der definierten Funktion.
-
-
-
-
»Erstelle Bild«
-
-
Mit dem Block »Erstelle Bild« kannst du eigene Bilder für die Anzeige
- des Calliope erstellen. Jede einzelne Leuchte ist durch einen Punkt im Raster dargestellt.
-
-
Du kannst für jede Leuchte eine Helligkeit zwischen 0 und 9 angeben, in
- der die jeweilige Lampe leuchten soll oder eine »#« um die Lampe
- einfach einzuschalten.
-
Ist das Feld leer, wird die Lampe nicht eingeschaltet.
-
Eingabewerte:
-
-
- - Zahl; Helligkeit der Lampe im Raster, Zahl zwischen 0 und 9.
-
-
-
-
»Bild«
-
Mit dem Block »Bild« kannst du ein vordefiniertes Bild
- auswählen.
-
Auswahlmöglichkeiten:
-
-
- - Bild, vordefiniertes Bild.
-
-
-
-
»invertiere«
-
Ein Bild wird umgekehrt. Ursprünglich leuchtende LEDs im Calliope-Display werden ausgeschaltet,
- ausgeschaltete LEDs werden eingeschaltet.
-
Eingabewert:
-
-
- - Bild, das invertiert werden soll.
-
-
Rückgabewert:
-
-
- - Bild, das invertiert wurde.
-
-
-
-
»verschiebe«
-
Ein Bild wird um einzelne Positionen verschoben. Die Verschieberichtung und die Anzahl Positionen auf dem
- Display werden eingegeben.
-
Eingabewerte und Einstellmöglichkeiten:
-
-
- - Bild, das verschoben werden soll.
- - Richtung, in die das Bild verschoben werden soll;
- Auswahlmöglichkeiten: oben, unten, links oder rechts.
- - Zahl, um wie viele Positionen das Bild verschoben werden soll.
-
-
Rückgabewert:
-
-
- - Bild, verschoben um die eingestellten Werte.
-
-
-
-
»Sende Nachricht
- Zeichenkette«
-
Der Calliope sendet eine Nachricht. Alle Calliope in der nähren Umgebung können diese Nachricht
- empfangen.
-
Eingabewert:
-
-
- - Text; Nachricht, die gesendet werden soll
-
-
-
-
»Empfange Nachricht
- Zeichenkette«
-
Mit diesem Block kannst du nachschauen, ob von anderen Calliopes
- Nachrichten emfpangen wurden und die letzte dann in deinem Programm verwenden.
Wenn noch keine
- neue Nachricht angekommen ist wartet der Calliope dabei aber nicht, bis eine neue Nachricht ankommt.
- Es kann also sein, dass du keine Nachricht erhälst.
-
Je nach ausgewähltem Nachrichtentyp erhälst du dann eine "0", eine
- unbekannte Zeichenkette oder "false" als Wert zurück.
-
Wenn du eine Zeichenkette empfangen möchtest musst du den unbekannten
- Wert erst einmal in deinem Programm in einer Variable speichern, damit du überprüfen kannst, ob
- überhaupt eine Nachricht angekommen ist. Dafür kannst du am Anfang deines Programms eine Variable
- anlegen und in ihr mit diesem Block eine Nachricht speichern. Da du am Anfang noch keine Nachricht
- empfangen hast, wird dadurch der unbekannte Wert in deiner Variable gespeichert. Später kannst du
- empfangene Nachrichten mit deiner Variable (dem unbekannten Wert darin) vergleichen, um
- herauszufinden, ob wirklich eine Nachricht angekommen ist.
-
Einstellmöglichkeiten:
-
-
- - Nachrichtentyp, »Zeichenkette«, »Zahl« oder »logischer Wert«.
-
-
-
Rückgabewert:
-
-
- -
-
Die letzte Nachricht, die dein Calliope emfpangen hat.
- Wenn noch keine neue Nachricht angekommen ist erhälst du eine leere Nachricht. Je nach
- ausgewähltem Nachrichtentyp ist dies:
-
- - Zeichenkette: Leere Zeichenkette
- - Zahl: 0
- - Logischer Wert: Falsch
-
-
-
-
-
-
»Setze Kanal auf ...«
-
Dieser Block steuert den Kanal, auf dem der Calliope mini Nachrichten empfängt. Der Calliope mini kann
- nur Nachrichten empfangen, die auf seinem Kanal gesendet worden sind.
-
Eingabewert:
-
-
- - Zahl; Der Kanal, auf dem der Calliope mini Nachrichten senden und
- empfangen soll.
-
-
-
-
\ No newline at end of file
+»Programmstart«
Jedes Programm beginnt mit dem »Programmstart-Block«, welcher nicht gelöscht werden kann. Den ersten Block, den man verwenden möchte, verbindet man direkt mit der »Sequenzverbindung« am Programmstart-Block.
Einstellmöglichkeiten:
+
+- Erzeuge eine neue globale Variable.
- Entferne die globale Variable.
+
Wenn globale Variablen erzeugt wurden:
+
+- Text, Name der Variablen.
- Typ der Variablen.
- Wert, Anfangswert der Variablen.
+
»Zeige Text ...«
Mit dem Block »Zeige ...« kannst du deinen Calliope mini Text darstellen lassen.
Einstellmöglichkeiten und Eingabewert:
+
+- Option, »Text« zeigt die Zeichenkette als Laufschrift über den Bildschirm an, »Zeichen« blendet die Buchstaben nacheinander ein.
- Zeichenkette, anzuzeigender Text.
+
»Zeige Bild ...«
Mit dem Block »Zeige Bild/Animation« können selbst erstellte oder vordefinierte Bilder auf dem Bildschirm deines Calliope mini angezeigt werden.
Einstellmöglichkeiten und Eingabewerte:
+
+- Bild oder Animation, Bilder werden nacheinander angezeigt.
- Bild oder Liste von Bildern als Animation.
+
»Lösche Bildschirm«
Mit dem Block »Lösche Bildschirm« kann der Bildschirminhalt deines Calliope mini gelöscht werden.
»Setze Helligkeit ...«
Die Helligkeit aller LEDs auf dem Bildschirm deines Calliope mini wird auf einen einheitlichen Wert gesetzt. 0 schaltet die LEDs ganz aus, 9 ist der maximale Helligkeitswert.
Eingabewert:
+
+- Zahl, Wert zwischen 0 und 9 für die Helligkeit der LEDs. Dabei bedeutet 0, dass die LEDs aus sind und 9, dass die LEDs am hellsten leuchten. Dieser Wert wird intern auf den Bereich zwischen 0 und 9 begrenzt.
+
»gib Helligkeit«
Die Helligkeit aller LEDs auf dem Bildschirm deines Calliope mini wird gelesen. 0 bedeutet, dass alle LEDs ausgeschaltet sind, 9 ist der Helligkeitswert.
Rückgabewert:
+
+- Zahl, Wert zwischen 0 und 9 für die Helligkeit der LEDs. Dabei bedeutet 0, dass die LEDs aus sind und 9, dass die LEDs am hellsten leuchten.
+
»Setze LED Helligkeit x ...«
Die Helligkeit einer einzelnen LED auf dem Bildschirm deines Calliope mini wird auf einen Wert festgelegt. Die Position der LED wird mittels x-Achse und y-Achse ermittelt. x ist die horizontale und y ist die vertikale Achse. 0 schaltet die LEDs aus, 9 ist der maximale Helligkeitswert.
Eingabewerte:
+
+- Zahl, Wert zwischen 0 und 4 für die x-Position der LED. Dabei steht 0 für die erste LED in der Reihe und 4 für die fünfte und die letzte LED in der Reihe.
- Zahl, Wert zwischen 0 und 4 für die y-Position der LED. Dabei steht 0 für die erste LED in der Spalte und 4 für die fünfte und die letzte LED in der Spalte.
- Zahl, Wert zwischen 0 und 9 für die Helligkeit der LED. Dabei bedeutet 0, dass die LED aus ist und 9, dass die LED am hellsten leuchtet. Dieser Wert wird intern auf den Bereich zwischen 0 und 9 begrenzt.
+
»gib LED Helligkeit x ...«
Die Helligkeit einer LED auf dem Bildschirm deines Calliope mini wird gelesen. Die Position der LED wird mittels x-Achse und y-Achse ermittelt. x ist die horizontale und y ist die vertikale Achse. 0 bedeutet, dass die LED ausgeschaltet ist und 9, dass die LED am hellsten leuchtet.
Eingabewerte:
+
+- Zahl, Wert zwischen 0 und 4 für die x-Position der LED. Dabei steht 0 für die erste LED in der Reihe und 4 für die fünfte und die letzte LED in der Reihe.
- Zahl, Wert zwischen 0 und 4 für die y-Position der LED. Dabei steht 0 für die erste LED in der Spalte und 4 für die fünfte und die letzte LED in der Spalte.
+
Rückgabewert:
+
+- Zahl, Wert zwischen 0 und 9. Dabei bedeutet 0, dass die LED aus ist und 9, dass die LED am hellsten leuchtet.
+
»Zeige auf Serial Monitor ...«
Mit dem Block »Zeige auf Serial Monitor...« kannst du die Ausgabe in einem Serialen Monitor deiner Wahl (z.B. Arduino Serial Monitor / (Chrome) Browser Serial Monitor) anzeigen lassen.
Eingabewert:
+
+- Bestimme, was auf deinem Serialen Monitor angezeigt werden soll. Mögliche Varianten sind: Zahl, logischer Wert, Zeichenkette oder Farbe.
+
»Zeige 4-Ziffern Display Zahl...«
Mit diesem Block kannst du dir eine Zahl von 0 bis 9999 auf dem Grove 4-Ziffern Display von Seeed anzeigen lassen. Das Display muss am rechten Grove-Anschluss (A1) angeschlossen werden. Die Position von 0 bis 3 gibt die Startposition der Zahl an.
Optionen:
+
+Zahl, Wert zwischen 0 und 9999. Diese Zahl wird auf dem Display abgebildet.
Zahl, Wert von 0 bis 3. Dies ist die Startposition der eingegeben Zahl.
Logischer Wert, wahr oder falsch. Bestimmt, ob ein Doppelpunkt in der Mitte angezeigt werden soll.
+
»Lösche Bildschirm 4-Ziffern Display«
Dieser Block löscht die Ausgabe auf dem Grove-Display von Seeed, wenn dieses am rechtem Grove-Anschluss (A1) angeschlossen ist.
»Schalte RGB LED an Farbe ...«
Mit dem Block »Schalte RGB LED an Farbe ...« kannst du die RGB-LED deines Calliope mini in einer bestimmten Farbe einschalten.
Auswahlmöglichkeiten und Eingabewert:
+
+- Farbe, in der die RGB-LED leuchten soll.
+
»Schalte RGB LED an ... Farbe ...«
Mit dem Block »Schalte RGB LED an Farbe ...« kannst du die RGB-LEDs deines Calliope mini in einer bestimmten Farbe einschalten. Dieser Block ist nur für Calliope mini V3 verfügbar.
Auswahlmöglichkeiten und Eingabewert:
+
+- Option, welches LED leuchten soll: links, mitte, rechts, oder alle.
- Farbe, in der die RGB-LED leuchten soll.
+
»Schalte RGB LED aus«
Mit dem Block »Schalte RGB LED aus« kannst du eine RGB-LED deines Calliope mini ausschalten.
»Schalte RGB LED aus ...«
Mit dem Block »Schalte RGB LED aus« kannst du eine RGB-LED deines Calliope mini ausschalten. Beim Calliope mini V3 kannst du auswählen, welche LED ausgeschaltet werden soll.
Auswahlmöglichkeiten:
+
+- Option, welches LED ausgeschaltet werden soll: links, rechts, mitte, oder alle.
+
»Schalte RGB LED an ... Farbe ...«
Mit dem Block »Schalte RGB LED .... an Farbe ...« kannst du die RGB-LED deines Calli:bot in einer bestimmten Farbe einschalten.
Auswahlmöglichkeiten und Eingabewert:
+
+- Option, RGB-LED, die du einschalten möchtest.
- Farbe, in der die RGB-LED leuchten soll.
+
»Schalte RGB LED aus ...«
Mit dem Block »Schalte RGB LED aus ...« kannst du eine RGB-LED deines Calli:bot ausschalten.
Auswahlmöglichkeiten:
+
+- Option, RGB-LED, die du ausschalten möchtest.
+
»Setze LED Leiste ... Helligkeit ...«
Mit diesem Block setzt du die ausgewählte LED auf der Grove LED-Bar v2.0 von Seeed auf die ausgewählte Helligkeit. Die LED-Leiste muss mit dem rechten Grove-Anschluss (A1) verbunden werden. Dabei leuchtet die erste LED, also LED 0, rot, LED 1 orange und alle anderen grün.
Eingabewert:
+
+- Zahl, Wert von 0 bis 9. Die Zahl zeigt die LED, die gesteuert werden soll. Die Nummerierung der LEDs beginnt unten am Schriftzug »LED Bar v2.0«. Dieser Wert wird intern auf den Bereich zwischen 0 und 9 begrenzt.
- Zahl, Wert von 0 bis 8. Dabei bedeutet 0, dass die LED aus ist und 8, dass die LED am hellsten leuchtet. Dieser Wert wird intern auf den Bereich zwischen 0 und 8 begrenzt.
+
»Schalte LED ... ...«
Mit diesem Block wird die LED am Calli:bot ein- oder ausgeschaltet.
Einstellmöglichkeiten:
+
+- Option, wähle die LED, die du an deinem Calli:bot schalten möchtest.
- Option, wähle, ob die LED ein- oder ausgeschaltet werden soll.
+
»Motor ... an Tempo % ... «
Der Block »Motor ... an Tempo % ... « setzt das Tempo (Geschwindigkeit) des jeweiligen Motors auf einen neuen Wert.
Falls einer von zwei angeschlossenen Motoren sich nicht drehen soll, so muss dessen Tempo-Wert explizit auf 0 gestellt werden.
Einstellmöglichkeiten und Eingabewert:
+
+- Option, wähle die Motoren aus, für die das Tempo (Geschwindigkeit) eingestellt werden soll.
- Zahl, Wert zwischen -100 und 100. Geschwindigkeit des ersten Motors in Prozent. Dieser Wert wird intern auf den Bereich zwischen -100 und 100 begrenzt.
- Zahl, Wert zwischen -100 und 100. Geschwindigkeit des zweiten Motors in Prozent. Dieser Wert wird intern auf den Bereich zwischen -100 und 100 begrenzt.
+
»Stoppe Motor Port A + B«
Mit dem Block »Stoppe Motor Port A + B« schaltest du den Motor A und den Motor B gleichzeitig aus.
»Motor Port ... an Tempo ...«
Der Block »Motor Port ... an Tempo ...« setzt das Tempo (Geschwindigkeit) eines Motors auf einen neuen Wert.
Wenn zwei Motoren angeschlossen sind, laufen beide nur mit halber Leistung. Falls einer von zwei angeschlossenen Motoren sich nicht drehen soll, so muss dessen Tempo-Wert explizit auf 0 gestellt werden. Es wird empfohlen, beim Einsatz von zwei Motoren stets zwei Motor-Blöcke - für jeden einen - als Paare zu verwenden.
Optionen:
+
+- Motor, wähle den Motor Port aus, für den das Tempo eingestellt werden soll. Dieser Wert wird intern auf den Bereich zwischen -100 und 100 begrenzt.
- Zahl, Wert zwischen -100 und 100.
+
»Stoppe Motor ...«
Mit dem Block »Stoppe Motor ...« schaltest du den Motor, der an deinem Calliope mini oder Calli:bot angeschlossen ist, aus.
Einstellmöglichkeiten:
+
+- Option, wähle den Motor aus, der ausgeschaltet werden soll.
+
»Motor an Tempo % ...«
Mit diesem Block setzt du das Tempo (Geschwindigkeit) des Motors auf einen neuen Wert. Achtung: Dieser Block kann nur den Motor steuern, den du an die Motor-Pins über der RGB-LED anschließt.
Optionen:
+
+- Zahl, Wert zwischen -100 und 100. Geschwindigkeit des Motors. Wenn die Zahl negativ ist, wird die Drehrichtung umgekehrt. Dieser Wert wird intern auf den Bereich zwischen -100 und 100 begrenzt.
+
»Stoppe Motor ...«
Du kannst einstellen, ob der Motor langsam ausläuft oder gebremst wird.
+
+- Option, Stoppmöglichkeiten; »auslaufen« sorgt dafür, dass der Motor langsam ausläuft; »bremsen« sorgt dafür, dass der Motor abrupt abgebremst wird.
+
»Setze Servomotor ... auf ° ... «
Mit diesem Block kannst du einen angeschlossenen Servomotor steuern und dessen Arm drehen.
Eingabewerte:
+
+- Zahl, Winkel bzw. Position in die sich der Arm des Servomotors drehen soll. Zahl zwischen -180 und 180.
+
»MotionKit ... ... «
Mit diesem Block kannst du einen einzelnen Motor des MotionKits ansteuern und ihn entweder vor- oder rückwärts laufen lassen.
Optionen:
+
+- Option, links oder rechts, der Motor, den du ansteuern möchtest.
- Option, vor- oder rückwärts, die Richtung in die sich der Motor dreehen soll.
+
»MotionKit links ... rechts ... «
Mit diesem Block kannst du die beiden Motoren des MotionKits gleichzeitig ansteuern. Dabei müssen sich die beiden Motoren allerdings nicht in die gleiche Richtung drehen.
Optionen:
+
+- Option, vor- oder rückwärts, die Richtung in die sich der linke Motor drehen soll.
- Option, vor- oder rückwärts, die Richtung, in die sich der rechte Motor drehen soll.
+
»Spiele ...«
Mit dem Block »Spiele ...« kann der Calliope mini verschiedene Noten abspielen, wie ganze, halbe, viertel, achtel oder sechzehntel Noten.
Einstellmöglichkeiten:
+
+- Option, Dauer der Note.
- Option, Note die gespielt werden soll.
+
»Spiele Frequenz ... Dauer«
Mit dem Block »Spiele Frequenz ... Dauer« kannst du die Frequenz (Höhe eines Tons) und die Zeit (wie lange der Ton gespielt wird) programmieren. Der Ton wird über den eingebauten Lautsprecher deines Calliope mini abgespielt, bis die eingestellte Dauer erreicht ist.
Eingabewerte:
+
+- Zahl, gewünschte Frequenz in Hz (Hertz) eingeben. Je höher die Frequenz, desto höher ist der Ton.
- Zahl, gewünschte Dauer des Tons in Millisekunden (ms) eingeben.
+
»Schreibe ... Wert auf Pin ...«
Mit dem Block »Schreibe ... Wert auf Pin ...« kannst du einen analogen oder digitalen Wert auf einen der Pins schreiben.
Einstellmöglichkeiten und Eingabewert:
+
+- Option, analog oder digital. »Analog« sind die Werte zwischen 0 und 1023. 0 bedeutet, dass es keine keine Spannung am Pin anliegt, und 1023 bedeutet, dass die vollen 3.3V anliegen. »Digital« sind entweder 0 oder 1. 0 bedeutet, dass keine Spannung anliegt und 1 bedeutet, dass volle Spannung anliegt.
- Option, wähle den Ausgabepin aus.
- Zahl, zu schreibender Wer. »Analog« sind die Werte zwischen 0 und 1023. 0 bedeutet, dass es keine keine Spannung am Pin anliegt, und 1023 bedeutet, dass die vollen 3.3V anliegen. »Digital« sind entweder 0 oder 1. 0 bedeutet, dass keine Spannung anliegt und 1 bedeutet, dass volle Spannung anliegt. Dieser Wert wird intern auf den Bereich zwischen 0 und 1023 begrenzt.
+
»Schalte LED Matrix ...«
Mit diesem Block wird die LED Matrix ein- oder ausgeschaltet.
Einstellmöglichkeiten:
+
+- An / Aus - steuert, ob die LED Matrix ein- oder ausgeschaltet wird.
+
»Taste ... gedrückt?«
Mit dem Block »Taste ... gedrückt?« kannst du einem anderen Block »mitteilen«, ob eine der eingebauten Tasten gedrückt wurde oder nicht. Dieser Block gibt die logischen Werte wahr = gedrückt oder falsch = nicht gedrückt zurück.
Einstellmöglichkeiten:
+
+- Option, wähle die Taste aus, die du abfragen möchtest.
+
Rückgabewert:
+
+- Logischer Wert: »wahr«, wenn die Taste gedrückt ist, sonst »falsch«.
+
»Pin ... gedrückt?«
Mit dem Block »Pin ... gedrückt?« kannst du einem anderen Block »mitteilen«, ob der ausgewählte Pin berührt wird oder nicht. Dieser Block gibt die logischen Werte wahr = gedrückt oder falsch = nicht gedrückt zurück.
Einstellmöglichkeiten:
+
+- Option, wähle den Pin aus, den du abfragen willst.
+
Rückgabewert:
+
+- Logischer Wert: »wahr«, wenn der Pin berührt wird, sonst »falsch«.
+
»Logosensor gedrückt?«
Mit diesem Block kannst du den Berührungssensor des Micro:bit abfragen, ob er gerade gedrückt wird.
Rückgabewerte:
+
+- Wahrheitswert, »wahr«, wenn die Taste gedrückt wird, sonst »falsch«.
+
»gib ... Lage«
Mit dem Block »gib ... Lage« kannst du einem anderen Block »mitteilen«, ob sich der Calliope mini in einer bestimmten Lage befindet. Dieser Block fragt den eingebauten Gyrosensor des Calliope mini ab.
Befindet sich der Calliope mini in der abgefragten Lage liefert der »gib ... Lage« Block »wahr«, sonst »falsch«.
Einstellmöglichkeiten:
+
Rückgabewert:
+
+- Logischer Wert: »wahr«, wenn er sich in der ausgewählten Lage befindet, sonst »falsch«.
+
»gib Winkel ° Kompasssensor«
Mit dem Block »gib Winkel Kompasssensor« kannst du die Orientierung deines Calliope minis im Bezug auf die Himmelsrichtungen auslesen, genau wie auf einem Kompass.
Dazu musst du vorher den Calliope mini kalibrieren, indem du den Calliope mini in alle Richtungen neigst, bis alle LEDS auf dem Display des Calliope mini leuchten.
Rückgabewert:
+
+- Zahl, Orientierung in Grad von 0° bis 360°. Dabei bedeutet 0°, dass dein Calliope mini in Richtung Norden zeigt.
+
»gib Geräusch % Mikrofon«
Mit dem Block »gib Wert Mikrofon« kannst du die Lautstärke von Geräuschen in der näheren Umgebung messen. Das Mikrofon ist nicht sehr empfindlich und die Geräusche sollten nicht zu weit weg sein.
Rückgabewert:
+
+- Zahl, Lautstärke von 0 (leise) bis 100 (laut). Bei älteren Versionen des Calliope mini kann es sein, dass nur Werte zwischen 0 und ca. 10 ausgegeben werden.
+
»gib Wert ms Zeitgeber«
Mit dem Block »gib Wert Zeitgeber« kannst du einem anderen Block den aktuellen Stand des internen Zeitgebers in Millisekunden »mitteilen«. Der Zeitgeber 1 wird automatisch mit dem Beginn eines Programms gestartet.
Rückgabewert:
+
+- Zahl, aktueller Wert des Zeitgebers in Millisekunden.
+
»Setze Zeitgeber zurück«
Mit dem Block »Setze Zeitgeber zurück« kannst du den internen Zeitgeber auf den Wert 0 zurücksetzen.
»gib Wert ° Temperatursensor«
Mit dem Block »gib Wert Temperatursensor« kannst du die aktuell gemessene Temperatur als Zahl auslesen. Dieser Block fragt den eingebauten Temperatursensor des Calliope mini ab.
Rückgabewert:
+
+- Zahl; Temperatur in Grad Celsius.
+
»gib Wert % Lichtsensor«
Mit dem Block »gib Wert % Lichtsensor« kannst du Helligkeit deiner Umgebung messen. Dieser Block fragt den eingebauten Lichtsensor des Calliope mini ab.
Rückgabewert:
+
+- Zahl; Helligkeit von 0 bis 100. 0 bedeutet, dass es dunkel ist und 100, dass es hell ist.
+
»gib ... Wert Pin ...«
Mit dem Block »gib ... Wert Pin ...« kannst du den Eingabewert an dem ausgewählten Pin auslesen, wenn du dort ein anderes Gerät oder Zusatzmodul angeschlossen hast.
Einstellmöglichkeiten:
+
+- Option, wähle, welche Art von Signal du einlesen möchtest. »Analog« sind die Werte zwischen 0 und 1023. 0 bedeutet, dass es keine keine Spannung am Pin anliegt, und 1023 bedeutet, dass die vollen 3.3V anliegen. »Digital« sind entweder 0 oder 1. 0 bedeutet, dass keine Spannung anliegt und 1 bedeutet, dass volle Spannung anliegt.
- Pin, wähle den Pin aus, den du abfragen willst.
+
Rückgabewert:
+
+- Zahl; aktueller Wert des Eingangssignals. Entweder zwischen 0 und 1023 bei einem analogen Signal, bei einem digitalen Signal entweder 0 oder 1.
+
»gib Winkel ° Kreiselsensor ...«
Dieser Block gibt den aktuellen Wert des Kreiselsensors zurück. Der Wert ist der Winkel, um den der Calliope mini in die ausgewählte Richtung geneigt ist.
Einstellmöglichkeiten:
+
+- Option, wähle die Achse, um die der Calliope mini gedreht wird.
+
Rückgabewert:
+
+- Zahl, Winkel um die der Calliope mini gedreht worden ist. Die x-Achse ist diejenige, die den Pin 0 und 3 gedanklich verbindet (im Bild grün). Sie kann die Werte von 0° bis 90° zurückgeben. Die y-Achse (im Bild rot) gibt die Werte von -180° bis +180° und verbidet gedanklich den USB-Connector mit der Auskerbung.
+
»gib Wert milli-g Beschleunigungssensor ...«
Mit dem Block »gib Wert milli-g Beschleunigung ...« kannst du die Beschleunigung des Calliope mini auslesen. Es gibt drei Richtungen, in denen die Beschleunigung gemessen werden kann. Die Beschleunigung kann in die drei verschiedenen Raumrichtungen (links-rechts, vorne-hinten und oben-unten) gemessen werden.
Einstellmöglichkeiten:
+
+- Optionen; wähle, für welche Richtung der Wert ausgegeben werden soll. »x« ist die links-rechts-Achse, »y« die vorne-hinten-Achse, »z« ist die oben-unten Achse.
+
Rückgabewert:
+
+- Zahl; aktueller Wert der Beschleunigung in milli-g. 1g oder 1000 milli-g wirken auf den Calliope mini aufgrund der Erdbeschleunigung, ohne das er bewegt wird.
+
»gib ... Luftfeuchtigkeitssensor A1«
Dieser Block zeigt den Wert des Feuchtigkeitssensors. Dieser Sensor misst sowohl die relative Luftfeuchtigkeit als auch die Temperatur der Umgebung und muss an den Pin A1 angeschlossen werden.
Der verwendete Sensor ist ein SHT31 und kommuniziert per I²C mit dem Calliope mini.
Rückgabewert:
+
+- Zahl, Wert der Luftfeuchtigkeit in Prozent oder der Temperatur in Grad Celsius.
+
Einstellmöglichkeiten:
+
+- Option; wähle, ob du die Werte für die Luftfeuchtigkeit oder die Temperatur zurückbekommen möchtest.
+
»gib Abstand cm Ultraschallsensor ...«
Dieser Sensor misst den Abstand zum nächsten Objekt durch das Aussenden von Ultraschallwellen. Dieser Senosor muss entweder am Calliope mini an den Pin A1 oder an den vorgesehenen Platz am Calli:bot angeschlossen werden. Der verwendete Sensor ist ein Grove Ultraschall-Sensor auf Basis eines HC-SR04, allerdings mit einem verbauten Mikrocontroller, der die Kommunikation übernimmt.
Einstellmöglichkeiten:
+
+- Option, der Eingang kann entweder für Calliope mini oder den Calli:bot konfiguriert werden.
+
Rückgabewert:
+
+- Zahl, Wert des Ultraschallsensors - Abstand zum nächsten Objekt in Zentimetern.
+
»gib Linie Infrarotsensor Calli:bot ...«
Dieser Sensor misst die Schattierung des Untergrunds und gibt zurück, ob es sich um einen hellen oder dunklen Untergrund handelt.
Rückgabewert:
+
+- Logischer Wert: »wahr«, wenn der Untergrund dunkel ist, sonst »falsch«.
+
Einstellmöglichkeiten:
+
+- Option, wähle den linken oder rechten Calli:bot Sensor aus.
+
»Gib ... Farbsensor TCS3472 ... «
Mit diesem Block kannst du den Farbsensor TCS3472 abfragen. Dieser Sensor kann die Farbe, die Helligkeit und die Farbzusammensetzung seiner Umgebung messen.
Optionen:
+
+- Option, wähle die Eigenschaft aus, die du messen möchtest. Es steht Farbe, Licht und RGB zur Auswahl.
- Option, wähle den Sensor aus, den du abfragen möchtest.
+
Rückgabewert:
+
+- Farbe, die Farbe der Umgebung.
- Zahl, die Helligkeit der Umgebung in Prozent.
- Liste von Zahlen, die Aufteilung der Farbe in Werte von Rot, Grün und Blau.
+
»Wenn mache«
Mit dem Block »Wenn mache« kannst du gezielt Aktionen auslösen, die von einer Bedingung abhängen. Der »Wenn mache«-Block benötigt einen logischen Wert als Eingabewert. Falls die Bedingung in »Wenn« erfüllt (wahr) ist, wird der eingefügte Block (oder die Blöcke) ausgeführt. Bei einem verschachtelten »Wenn mache« Block, also wenn eine weitere Unterscheidung eingefügt wurde, wird zuerst die erste »Wenn« Bedingung abgefragt und, falls diese nicht erfüllt ist (Bedingung = falsch), wird die zweite »oder wenn« Bedingung geprüft. Auch diese zweite Bedingung benötigt wieder einen logischen Wert als Eingabewert.
Die Bedingungen können beliebig durch Anklicken des »+« Plus-Symbols erweitert und durch das »-« Minus-Symbol wieder bis auf eine einzige Bedingung reduziert werden.
Einstellmöglichkeiten und Eingabewerte:
+
+- Eine weitere Bedingung am Ende anfügen.
- Die letzte Bedingung löschen.
- Logischer Wert, »wahr« oder »falsch«.
- Blöcke, die nur dann ausgeführt werden, wenn die zugehörige Bedingung »wahr« ist.
+
»Wenn mache sonst«
Mit dem Block »Wenn mache sonst« kannst du gezielt Aktionen auslösen, die von einer Bedingung abhängen. Der »Wenn mache sonst«-Block benötigt hierfür einen logischen Wert als Eingabewert. Falls die Bedingung erfüllt (wahr) ist, wird der dort eingefügte Block (oder die Blöcke) ausgeführt, ansonsten (Bedingung nicht erfüllt = falsch) wird der Block (bzw. die Blöcke), der bei »sonst« eingefügt wurde, ausgeführt. Bei einem verschachtelten »Wenn mache sonst« Block, also wenn eine weitere Unterscheidung dazugefügt wurde, wird zuerst die erste »Wenn« Bedingung abgefragt und, falls diese nicht erfüllt ist, wird die zweite »oder wenn« Bedingung geprüft. Auch diese zweite Bedingung benötigt wieder einen logischen Wert als Eingabewert. Nur wenn beide Bedingungen nicht erfüllt sind, wird der Block ausgeführt, der bei »sonst« eingefügt wurde.
Die Bedingungen können beliebig durch anklicken des »+« Plus-Symbols erweitert und durch das »-« Minus-Symbol wieder bis auf eine einzige Bedingung reduziert werden.
Einstellmöglichkeiten und Eingabewerte:
+
+- Eine weitere Bedingung am Ende anfügen.
- Die letzte Bedingung löschen.
- Logischer Wert, »wahr« oder »falsch«.
- Blöcke, die nur dann ausgeführt werden, wenn die zugehörige Bedingung »wahr« ist.
- Blöcke, die nur dann ausgeführt werden, wenn die zugehörige Bedingung »falsch« ist.
+
»Wiederhole unendlich oft«
Mit dem Block »Wiederhole unendlich oft« kannst du Blöcke endlos von deinem Roboter ausführen lassen. Alle Blöcke, die sich im »Wiederhole unendlich oft«-Block befinden, werden immer wieder ausgeführt. Die Blöcke werden dabei von oben nach unten ausgeführt. Sobald der letzte Block ausgeführt wurde, beginnt das Programm wieder mit dem ersten Block. Deshalb wird dieser Block auch »Endlosschleife« genannt.
Eingaben:
+
+- Blöcke, die wiederholt ausgeführt werden.
+
»Wiederhole n mal«
Mit dem Block »Wiederhole n mal« kannst du andere Blöcke beliebig oft von deinem Roboter ausführen lassen. Alle Blöcke, die sich im Block »Wiederhole n mal« befinden, werden so oft ausgeführt, wie im Eingabefeld eingestellt ist. Die Blöcke werden dabei von oben nach unten ausgeführt. Sobald der letzte Block ausgeführt wurde, beginnt das Programm wieder mit dem ersten Block, bis die eingestellte Wiederholungszahl erreicht ist. Deshalb wird dieser Block auch »Schleife« genannt.
Einstellmöglichkeiten und Eingabewerte:
+
+- Zahl, wie oft die enthaltenen Blöcke wiederholt werden sollen.
- Blöcke, die wiederholt ausgeführt werden.
+
»Wiederhole solange/bis«
Mit dem Block »Wiederhole solange/bis« kannst du andere Blöcke beliebig oft von deinem Roboter ausführen lassen. Alle Blöcke, die sich im Block »Wiederhole solange/bis« befinden, werden immer wieder ausgeführt, solange bzw. bis die Bedingung im Eingabefeld erfüllt ist. Die Blöcke werden dabei von oben nach unten ausgeführt. Sobald der letzte Block ausgeführt wurde, beginnt das Programm wieder mit dem ersten Block, solange bzw. bis die Bedingung im Eingabefeld erfüllt ist. Deshalb wird dieser Block auch »bedingte Schleife« genannt.
Einstellmöglichkeiten und Eingabewerte:
+
+- »solange« oder »bis«, um den Typ der bedingten Wiederholung zu bestimmen.
- Logischer Wert, »wahr« oder »falsch«.
- Blöcke, die wiederholt ausgeführt werden.
+
»Für Wert aus der Liste«
Mit dem Block »Für Wert aus der Liste« werden nacheinander alle Werte einer Liste an eine Variable übergeben und können dann in der so genannten Schleife verarbeitet werden. Mit jedem Schleifendurchlauf wird das nächste Element aus der Liste geholt, bis die Liste vollständig abgearbeitet ist. Der Wert des Listenelements wird an die Variable Element gebunden und kann in den enthaltenen Blöcken verwendet werden.
Einstellmöglichkeiten und Eingabewerte:
+
+- Typ der Listenelemente, »Zahl«, »Zeichenkette«, »logischer Wert«, »Farbe«, »Verbindung«
- Variable, frei wählbarer Name, an den nacheinander die Listenelemente übergeben werden.
- Liste, die Elemente des festgelegten Typs enthält. Wenn die Listenelemente nicht den richtigen Typ haben, kann die Liste nicht als Eingabewert verwendet werden.
- Blöcke, die wiederholt ausgeführt werden.
+
»Zähle von bis«
Mit dem Block »Zähle von bis« kannst du andere Blöcke mehrfach von deinem Roboter ausführen lassen. Alle Blöcke, die sich im Block »Zähle von bis« befinden, werden so oft ausgeführt, bis die Zählung im Eingabefeld abgearbeitet ist. Die Blöcke werden dabei von oben nach unten ausgeführt. Sobald der letzte Block ausgeführt wurde, beginnt das Programm wieder mit dem ersten Block, solange die Zählbedingung im Eingabefeld erfüllt ist, d.h. der Endwert der Zählung noch nicht erreicht ist. Die Werte der Zählung werden jeweils an die Zählvariable gebunden, deren Name frei eingestellt werden kann. Der Wert der Zählvariablen kann in den Blöcken der Schleife verwendet werden. Der letzte Eingabewert gibt an, in welcher Schrittweite gezählt wird.
Einstellmöglichkeiten und Eingabewerte:
+
+- Variable, frei wählbarer Name für die Zählvariable.
- Zahl, Anfangswert der Zählschleife.
- Zahl, Endwert der Zählschleife.
- Zahl, Schrittweite für die Zählschleife.
- Blöcke, die wiederholt ausgeführt werden.
+
»Die Schleife abbrechen/mit der nächsten Iteration der Schleife fortfahren«
Mit dem Block »Die Schleife abbrechen/mit der nächsten Iteration der Schleife fortfahren« kann eine Schleife vorzeitig beendet bzw. wieder zum Anfang der Schleife gesprungen werden. Sobald dieser Block in einer Reihe von Blöcken erscheint, werden alle nachfolgenden Blöcke bis zum Ende der Schleife ignoriert.
Einstellmöglichkeiten:
+
+- Abbruchverhalten, »Die Schleife abbrechen« oder »mit der nächsten Iteration der Schleife fortfahren«.
+
»Warte bis ... «
Mit dem Block »Warte bis« kannst du dein Programm an der Stelle »anhalten«, an der du den »Warte bis«-Block eingefügt hast. Dein Programm wartet dann so lange, bis die Bedingung erfüllt (wahr) ist. Den »Warte bis«-Block kannst du mit dem »+«-Zeichen um zusätzliche Bedingungen erweitern. Dein Programm wartet dann solange, bis (mindestens) eine der Bedingungen deines »Warte bis«-Blocks erfüllt ist.
Einstelmöglichkeiten und Eingabewert:
+
+- Eine weitere Wartebedingung am Ende anfügen.
- Die letzte Wartebedingung löschen.
- Logischer Wert, »wahr« oder »falsch«.
+
»Warte ms ... «
Mit dem Block »Warte« kannst du dein Programm an der Stelle "anhalten", an der du den Block eingefügt hast. Dein Programm bleibt dann für die angegebene Dauer an dieser Stelle stehen. Nach Ablauf der angegebenen Zeit wird dann der nachfolgende Block ausgeführt. Beispielsweise kannst du dadurch einen Text in dem Display deines Roboters exakt für diese Zeit anzeigen lassen.
Einstellmöglichkeiten:
+
+- Zahl, Wartezeit in Millisekunden.
+
»Warte bis ... «
Mit dem Block »Warte bis« kannst du dein Programm an der Stelle »anhalten«, an der du den »Warte bis«-Block eingefügt hast. Dein Programm wartet dann so lange, bis die Bedingung erfüllt (wahr) ist. Den »Warte bis«-Block kannst du mit dem »+«-Zeichen um zusätzliche Bedingungen erweitern. Dein Programm wartet dann solange, bis (mindestens) eine der Bedingungen deines »Warte bis«-Blocks erfüllt ist.
Einstelmöglichkeiten und Eingabewert:
+
+- Eine weitere Wartebedingung am Ende anfügen.
- Die letzte Wartebedingung löschen.
- Logischer Wert, »wahr« oder »falsch«.
+
»Vergleiche«
Mit dem Block »Vergleiche« kannst du verschiedene Eingabewerte (Zahl, Farbe, logischer Wert, Text) gleichen Typs miteinander vergleichen. Stimmt der Vergleich, wird der logische Wert »wahr« zurückgegeben, sonst »falsch«.
Einstellmöglichkeiten und Eingabewerte:
+
+- Linker Eingabewert für den Vergleich.
- Vergleich, wähle aus, wie verglichen werden soll.
- Rechter Eingabewert für den Vergleich.
+
Rückgabewert:
+
+- Logischer Wert, »wahr« oder »falsch«.
+
»und/oder«
Mit dem Block »und/oder« kannst du logische Werte zueinander in Beziehung setzen. Der »und/oder« Block liefert bei der Einstellung »und« nur dann den logischen Wert »wahr«, wenn beide Eingabewerte des Blocks gleichzeitig »wahr« sind. Bei der Einstellung »oder« genügt es, wenn einer der beiden Eingabewerte »wahr« ist, damit der »und/oder« Block als logischen Wert »wahr« liefert.
Einstellmöglichkeiten und Eingabewerte:
+
+- Logischer Wert für die Verknüpfung.
- Wähle die logische Verknüpfung.
+
Rückgabewert:
+
+- Logischer Wert, »wahr« oder »falsch«.
+
»nicht«
Mit dem Block »nicht« kannst du einen logischen Wert umkehren. Der logische Wert ergibt sich aus der logischen Umkehrung des Eingabewertes, aus »wahr« wird »falsch« und umgekehrt.
Eingabewert:
+
+- Logischer Wert für die Umkehrung.
+
Rückgabewert:
+
+- Logischer Wert, Ergebnis der Umkehrung.
+
»wahr/falsch«
Mit dem Block »wahr/falsch« kannst du entweder den logischen Wert »wahr« oder »falsch« an einen anderen Block übermitteln.
Einstellmöglichkeiten:
+
+- Logischer Wert, wähle den Wert, der ausgegeben werden soll.
+
Rückgabewert:
+
»null«
Der Block »null« ist ein Platzhalter für eine Eingabe, die noch unbestimmt ist. Wenn z.B. eine neue Verbindungsvariable für die Kommunikation erzeugt wird und noch nicht belegt ist, wird der Anfangswert auf »null« gesetzt.
Rückgabewert:
+
+- Logischer Wert, »null«.
+
»teste«
Mit dem Block »teste« kannst du einen Test durchführen und je nach Ergebnis unterschiedliche Ergebnisse zurückgeben.
Eingabewerte:
+
+- Logischer Wert für den Test; wenn kein Block angegeben wird, wird "wahr" angenommen.
- Beliebiger Wert, der mit einem Block bestimmt werden kann.
- Beliebiger Wert, der mit einem Block bestimmt werden kann.
+
Rückgabewert:
+
+- Wert von beliebigem Typ.
+
»Wert«
Mit dem Block »Wert« kannst du Zahlen an einen anderen Block übermitteln.
Eingabewert:
+
Rückgabewert:
+
»Rechnen«
Mit dem Block »Rechnen« kannst du Zahlen addieren, subtrahieren, multiplizieren, dividieren oder potenzieren. Dieser Block ist nur in Verbindung mit einem anderen Block nutzbar, der eine Zahl als Eingabewert benötigt.
Einstellmöglichkeiten und Eingabewerte:
+
+- Zahl
- Berechnung, wähle einen Operator aus.
- Zahl
+
Rückgabewert:
+
+- Zahl, das Ergebnis der Berechnung.
+
»Mathematische Funktionen«
Mit dem Block »Mathematische Funktionen« können einige elementare mathematische Funktionen berechnet werden.
Einstellmöglichkeiten und Eingabewert:
+
+- Mathematische Funktion, Quadratwurzel, Absolutwert, Invertieren, ln (natürlicher Logarithmus), log10 (dekadischer Logarithmus), e^ (Exponentialfunktion) 10^ (Zehner-Exponent)
- Zahl, auf die die mathematische Funktion angewandt wird.
+
Rückgabewert:
+
+- Zahl, das Ergebnis der Funktion.
+
»Trigonometrische Funktionen«
Mit dem Block »Trigonometrische Funktionen« können Sinus, Cosinus, Tangens und die zugehörigen Umkehrfunktionen berechnet werden. Die Eingabewerte werden im Bogenmaß erwartet (siehe Hinweis oben).
Einstellmöglichkeiten und Eingabewert:
+
+- Trigonometrische Funktion, wähle eine Funktion aus.
- Zahl, im Bogenmaß
+
Rückgabewert:
+
+- Zahl, das Ergebnis der trigonometrischen Berechnung.
+
»Konstanten«
Der Block »Konstanten« stellt einige mathematische Konstanten bereit. »π« (3,1415...), »e« (2,718...), »φ« (1,618...), »sqrt(2)« (1,414...), »sqrt(½)« (0,7071...), »∞«.
Einstellmöglichkeiten:
+
+- Mathematische Konstanten, wähle eine Konstante aus.
+
Rückgabewert:
+
+- Zahl, Wert der mathematischen Konstante. Der Wert von Unendlich ist »infinity«.
+
»Zahleneigenschaft«
Mit dem Block »Zahleneigenschaft« wird geprüft, ob eine eingegebene Zahl eine bestimmte Eigenschaft aufweist. »gerade«, »ungerade«, »ist Primzahl«, »ganze Zahl«, »positiv«, »negativ«, »teilbar durch«.
Einstellmöglichkeiten und Eingabewert:
+
+- Zahl, die mit einem Block geprüft wird.
- Zahleneigenschaft, wähle, was geprüft werden soll.
- Zahl; ein zweiter Eingabewert ist nur bei der Wahl von »ist teilbar durch« erforderlich.
+
Rückgabewert:
+
+- Logischer Wert, »wahr« oder »falsch«, je nachdem, ob die geprüfte Zahl die untersuchte Eigenschaft hat.
+
»Erhöhe um x«
Mit dem Block »Erhöhe um x« wird der Wert einer numerischen Variable um einen Betrag erhöht.
Eingabewerte:
+
+- Variable, deren Wert verändert werden soll.
- Zahl.
+
»runden«
Mit dem Block »runden« können Werte gerundet werden. Beim Runden werden die Nachkommastellen auf 0 gesetzt. Es wird je nach Größe der Nachkommastellen automatisch auf- oder abgerundet. Man kann jedoch auch einstellen, dass stets auf- bzw. stets abgerundet werden soll.
Einstellmöglichkeiten und Eingabewert:
+
+- Art der Rundung, wähle, wie gerundet werden soll.
- Zahl
+
Rückgabewert:
+
+- Zahl, gerundete Ganzzahl
+
»Liste auswerten«
Mit dem Block »Liste auswerten« können verschiedene Analysen einer Liste vorgenommen werden:
- Summe - alle Werte der Liste werden zusammengezählt
- Minimalwert - der kleinste Wert der Liste wird ausgegeben
- Maximalwert - der größte Wert der Liste wird ausgegeben
- Mittelwert - aus den Werten der Liste wird der Mittelwert bestimmt
- Median - der Median (Zentralwert) einer Liste wird ausgegeben
- Standardabweichung - die Standardabweichung (Varianz) der Listenwerte wird ausgegeben
- Zufallswert - einer der Listenwerte wird per Zufall gewählt und ausgegeben
Einstellmöglichkeiten und Eingabewert:
+
+- Art der Listenauswertung
- Liste mit Zahlen
+
Rückgabewert:
+
+- Zahl, Ergebnis der eingestellten Listenauswertung.
+
»Rest von«
Der Block »Rest von« führt eine Division durch und liefert den Rest der Division, der nicht mehr durch den Divisor geteilt werden konnte.
Eingabewerte:
+
+- Zahl, die geteilt wird (Dividend)
- Zahl, durch die geteilt wird (Divisor bzw. Teiler)
+
Rückgabewert:
+
+- Zahl, Rest der Division
+
»Begrenze«
Der Block »Begrenze« sorgt dafür, dass Grenzwerte nicht überschritten werden. Er erfordert drei Eingabewerte:
- zu prüfender Wert
- untere Grenze
- obere Grenze
Der Rückgabewert ist
- der zu prüfende Wert, wenn gilt: untere Grenze ≤ zu prüfender Wert ≤ obere Grenze
- untere Grenze, wenn zu prüfender Wert < untere Grenze
- obere Grenze, wenn zu prüfender Wert > obere Grenze
Eingabewerte:
+
+- Zahl, die begrenzt wird.
- Zahl, untere Grenze.
- Zahl, obere Grenze.
+
Rückgabewert:
+
+- Zahl, die innerhalb der eingestellten Grenzen liegt.
+
»Ganzzahlige Zufallswerte«
Mit dem Block »Ganzzahlige Zufallswerte« können ganzzahlige Zufallswerte innerhalb selbst gewählter Grenzen erzeugt werden.
Eingabewerte:
+
+- Zahl, untere Grenze
- Zahl, obere Grenze
+
Rückgabewert:
+
+- Zahl, eine ganzzahlige Zufallszahl, die innerhalb der eingestellten Grenzen liegt
+
»Zufallszahl«
Mit dem Block »Zufallszahl« wird eine Zufallszahl zwischen 0,0 und 1,0 bestimmt.
Rückgabewert:
+
+- Zahl, eine positive Zufallszahl kleiner oder gleich 1.
+
»wandle ... um in Zeichenkette«
Dieser Block wandelt eine Zahl in eine Zeichenkette um, die diese Zahl enthält. Als Beispiel wird die Zahl 123 in die Zeichenkette »123« umgewandelt.
Optionen und Eingabewerte:
+
+- Zahl, die Zahl die in eine Zeichenkette umgewandelt werden soll.
+
Rückgabewerte:
+
+- Zeichenkette, die Zeichenkette bestehend aus der gewählten Zahl.
+
»wandle ... um in Zeichen«
Dieser Block wandelt eine einzelne Zahl den dazugehörigen ASCII-Buchstaben um. Falls es zu dieser Zahl kein dazugehöriges ASCII-Zeichen gibt, wird eine leere Zeichenkette weitergegeben. So wird z.B. die Zahl 97 in den Buchstaben »a« umgewandelt.
Optionen und Eingabewerte:
+
+- Zahl, der ASCII-Code, der in das dazugehörige Zeichen umgewandelt werden soll. Zahl zwischen 0 und 255.
+
Rückgabewerte:
+
+- Zeichen, das Zeichen das dem gewählten ASCII-Code entspricht.
+
»Text«
Mit dem einfachen »Text«-Block wird ein Stück Text bereitgestellt.
Eingabewert:
+
+- Zeichenkette, bestehend aus beliebigen Zeichen
+
Rückgabewert:
+
+- Text, bestehend aus beliebigen Zeichen
+
»Erstelle Text«
Mit dem »Erstelle Text«-Block wird ein Stück Text aus verschiedenen Eingabewerten zusammengesetzt. Mit dem +-Zeichen können weitere Eingabemöglichkeiten geschaffen werden. Alle Eingaben werden zu einer kontinuierlichen Zeichenkette zusammengefügt.
Eingabewerte:
+
+- Weitere Eingabemöglichkeiten bereitstellen.
- Letzte Eingabemöglichkeit entfernen (bei mehr als 2 Eingabemöglichkeiten).
- Beliebiger Wert, Zahl, Text, logischer Wert, Farbe.
+
Rückgabewert:
+
+- Zeichenkette, bestehend aus beliebigen Zeichen.
+
»Text anhängen«
Mit dem »Text anhängen«-Block können Zeichenketten erweitert werden, z.B. indem an empfangene Nachrichten eine Signatur angehängt wird.
Eingabemöglichkeiten:
+
+- Text, Zeichenkette, an die Text angehängt werden soll
- Text, Zeichenkette, die an einen Text angehängt werden soll
+
»wandle ... um in Zahl«
Dieser Block wandelt eine Zeichenkette in eine Zahl um, falls dies möglich ist. Wenn eine Zeichenkette also nur Zahlen enthält, kann dieser Block die Zeichenkette in eine Zahl umwandeln. Wenn der Block keine Zahlen enthält, gibt dieser Block »NaN« in der Simulation des Open Roberta Labs weiter, kann aber auch ein anderes Verhalten aufweisen, welches von der verwendeten Programmiersprache des Roboters abhängt. Falls die Zeichenkette zwar mit Zahlen beginnt, aber danach weitere Zeichen enthält, die keine Zahlen sind, gibt dieser Block nur die Zahlen weiter und stoppt, sobald das erste Zeichen in der Zeichenkette steht. Also als Beispiel macht dieser Block aus der Zeichenkette »52abcd« die Zahl 52.
Optionen und Eingabewerte:
+
+- Zeichenkette, die nur aus Zahlen besteht und in eine Zahl umgewandelt werden soll.
+
Rückgabewerte:
+
+- Zahl, die zahl aus der die Zeichenkette bestand.
+
»wandle Zeichen ... an Position ... in Zahl«
Dieser Block wandelt einen Buchstaben oder ein Zeichen aus einer Zeichenkette in die dazugehörige ASCII-Nummer um. Jedes Zeichen hat dabei eine dazugehörige Nummer in der ASCII-Tabelle. So wird z.B. ein kleines »a« in die Zahl 97 umgewandelt.
Optionen und Eingabewerte:
+
+- Zeichenkette, aus dieser wird ein einzelnes Zeichen ausgewählt.
- Zahl, die Stelle des Zeichens das umgewandelt werden soll. Beachte das die Nummerierung bei 0 anfängt.
+
Rückgabewerte:
+
+- Zahl, der ASCII-Code des ausgewählten Zeichens.
+
»Erzeuge Liste«
Der Block »Erzeuge eine leere Liste« erzeugt eine Liste ohne Inhalt. Der Block »Liste« erzeugt eine Liste mit einigen voreingestellten Werten. Mit + und - können weitere Listenelemente am Ende hinzugefügt bzw. entfernt werden. Wenn das letzte Element einer Liste entfernt wurde, liegt eine leere Liste vor.
Einstellmöglichkeiten:
+
+- Typ, »Zahl«, »logischer Wert«, »Zeichenkette«, »Farbe« oder »Verbindung«.
- Erzeuge ein weiteres Listenelement am Ende der bestehenden Liste.
- Lösche das Listenelement am Ende der bestehenden Liste.
- Werte, die dem Listentyp entsprechen. Hiermit können Anfangswerte gesetzt werden.
+
Rückgabewert:
+
+- Leere Liste oder eine Liste mit Elementen gleichen Typs.
+
»Wiederhole Element in Liste«
Der Block »Wiederhole Element in Liste« erzeugt eine Liste mit gleichen Elementen.
Einstellmöglichkeiten:
+
+- Typ, »Zahl«, »logischer Wert«, »Zeichenkette«, »Farbe« oder »Verbindung«.
- Listenelement, das mit dem eingestellten Listentyp übereinstimmt. Dieser Wert wird in der Liste wiederholt.
- Zahl, die angibt, wie oft der eingestellte Wert wiederholt werden soll.
+
Rückgabewert:
+
+- Eine Liste des spezifizierten Typs mit der eingestellten Anzahl von gleichen Elementen.
+
»Länge«
Der Block »Länge« gibt als Wert die Länge einer Liste zurück, die als Eingabewert angegeben wird. Eine leere Liste hat die Länge 0.
Eingabewert
+
Rückgabewert:
+
+- Zahl, Anzahl der Listenelemente
+
»ist leer?«
Eine als Eingabewert gegebene Liste wird geprüft, ob sie leer ist.
Eingabewert
+
Rückgabewert:
+
+- Logischer Wert, entweder »wahr« oder »falsch«
+
»Suche in der Liste«
Eine Liste wird durchsucht, ob ein Element darin enthalten ist. Wenn das Element enthalten ist, wird die Listenposition zurückgegeben. Wenn das Element nicht enthalten ist, ist das Ergebnis -1.
Einstellmöglichkeiten:
+
+- Liste, die untersucht werden soll.
- Position für den Treffer, entweder »ersten« oder »letzten« Treffer suchen.
- Wert, der mit den Listentyp übereinstimmt.
+
Rückgabewert:
+
+Zahl, die Position, an der das Element in der Liste steht.
Beachte: Die Zählung der Listenpositionen beginnt bei 0.
+
»Nimm Listenelement«
Mit diesem Block wird auf ein Element einer Liste zugegriffen. Das Element wird gegebenenfalls verändert.
Es wird eine Liste als Eingabe übergeben. Danach wird per Drop-Down-Liste spezifiziert, was mit dem Listenelement geschehen soll. Anschließend wird angegeben, in welcher Richtung die Liste durchsucht werden soll, ob von vorn (links), von hinten (rechts) oder zufällig.
Einstellmöglichkeiten und Eingabewerte
+
+- Liste, die bearbeitet werden soll.
- Aktion für das gefundene Element: »nimm« liest das Element und lässt es unverändert, »nimm und entferne« liest das Element und entfernt es aus der Liste, »entferne« entfernt das Element aus der Liste.
- Positionsbestimmung für das gefundene Element: »#te«, »#te von hinten«, »erste«, »letzte« oder »zufälliges« .
Zahl, Listenposition. Dieser Eingabewert entfällt, wenn zuvor »erste«, »letzte« oder »zufälliges« als Position bestimmt wurde.
Beachte: Die Zählung der Listenpositionen beginnt bei 0.
+
Rückgabewert:
+
+- Das spezifizierte Listenelement, das an der angegebenen Listenposition gefunden wurde. »undefined« (undefiniert), wenn die Listenposition nicht existiert.
Bei »entferne« wird kein Wert zurückgegeben; die bearbeitete Liste ist dann um dieses Listenelement reduziert.
+
»Setze Listenelement«
In einer als Eingabewert übergebenen Liste wird ein näher spezifiziertes Element durch einen neuen Wert ersetzt bzw. es wird ein Wert eingefügt.
Einstellmöglichkeiten und Eingabewerte:
+
+- Liste, die bearbeitet werden soll.
- Aktion für das gefundene Element: »setze« verändert das Element, »füge« fügt ein neues Element in die Liste ein.
- Positionsbestimmung für das gefundene Element: »#te«, »#te von hinten«, »erste«, »letzte« oder »zufälliges« .
- Zahl, Listenposition. Dieser Eingabewert entfällt, wenn zuvor »erste«, »letzte« oder »zufälliges« als Position bestimmt wurde.
Beachte: Die Zählung der Listenpositionen beginnt bei 0. - Listenelement, das an der zuvor bestimmten Listenposition gesetzt oder eingefügt wird.
+
»Erhalte Unterliste«
Aus einer als Eingabewert übergebenen Liste wird eine Unterliste erzeugt. In der Unterliste sind alle Elemente enthalten, die den weiteren Spezifikationen dieses Blocks entsprechen.
Einstellmöglichkeiten und Eingabewerte:
+
+- Liste, die bearbeitet werden soll.
- Position, Anfang der Unterliste: »von #«, »von # von hinten« oder »vom Anfang«.
- Zahl, Listenposition. Dieser Eingabewert entfällt, wenn zuvor »vom Anfang« als Position bestimmt wurde.
Beachte: Die Zählung der Listenpositionen beginnt bei 0. - Position, Ende der Unterliste: »zu #«, »zu # von hinten« oder »zum Ende«.
- Zahl, Listenposition. Dieser Eingabewert entfällt, wenn zuvor »zum Ende« als Position bestimmt wurde.
Beachte: Die Zählung der Listenpositionen beginnt bei 0.
+
Rückgabewert:
+
+- Liste, Unterliste gleichen Typs wie die als Eingabewert übergebene Liste.
+
»Farbwahl«
Mit diesem Block kannst du eine Farbe aus einer Auswahl von vordefinierten Farben auswählen.
Option:
+
+- Option, wähle die Farbe aus, die du verwenden möchtest.
+
Rückgabewert:
+
+- Farbe, die ausgewählte Farbe.
+
»Farbwahl «
Mit diesem Block kannst du eine Farbe aus einer Auswahl von vordefinierten Farben auswählen.
Option:
+
+- Option, wähle die Farbe aus, die du verwenden möchtest.
+
Rückgabewert:
+
+- Farbe, die ausgewählte Farbe.
+
»Farbwahl «
Mit diesem Block kannst du eine Farbe aus einer Auswahl von vordefinierten Farben auswählen.
Option:
+
+- Option, wähle die Farbe aus, die du verwenden möchtest.
+
Rückgabewert:
+
+- Farbe, die ausgewählte Farbe.
+
»Farbe mit Rot ... Grün ... Blau ... Weiß ... «
Mit diesem Block kannst du dir eine eigene Farbe erstellen, indem du deine Farbe aus Rot, Grün und Blau mischst.
Eingabewerte:
+
+- Zahl, der Rot-Anteil in deine Farbe. Wert zwischen 0 und 255.
- Zahl, der Grün-Anteil deiner Farbe. Wert zwischen 0 und 255.
- Zahl, der Blau-Anteil deiner Farbe. Wert zwischen 0 und 255.
- Zahl, die Helligkeit deiner Farbe. Wert zwischen 0 und 255.
+
Rückgabewert:
+
+- Farbe, die von dir erstellte Farbe.
+
»Farbe mit Rot ... Grün ... Blau ... «
Mit diesem Block kannst du dir eine eigene Farbe erstellen, indem du deine Farbe aus Rot, Grün und Blau mischst.
Eingabewerte:
+
+- Zahl, der Rot-Anteil in deine Farbe. Wert zwischen 0 und 255.
- Zahl, der Grün-Anteil deiner Farbe. Wert zwischen 0 und 255.
- Zahl, der Blau-Anteil deiner Farbe. Wert zwischen 0 und 255.
+
Rückgabewert:
+
+- Farbe, die von dir erstellte Farbe.
+
»Farbe mit Rot ... Grün ... Blau ... «
Mit diesem Block kannst du dir eine eigene Farbe erstellen, indem du deine Farbe aus Rot, Grün und Blau mischst.
Eingabewerte:
+
+- Zahl, der Rot-Anteil in deine Farbe. Wert zwischen 0 und 255.
- Zahl, der Grün-Anteil deiner Farbe. Wert zwischen 0 und 255.
- Zahl, der Blau-Anteil deiner Farbe. Wert zwischen 0 und 255.
+
Rückgabewert:
+
+- Farbe, die von dir erstellte Farbe.
+
»Schreibe Variable«
Mit dem Block »Schreibe Variable« kannst du den Wert einer Variablen verändern. Je nach Typ der Variablen (Zahl, Zeichenkette, logischer Wert, Liste, Farbe, Verbindung) kann der Variablen ein passender Wert übergeben werden.
Einstellmöglichkeit und Eingabewert:
+
+- Variable, deren Wert verändert werden soll.
- Wert, auf den die Variable gesetzt werden soll.
+
»Lies Variable«
Mit dem Block »lies Variable« kannst du den Wert einer Variablen an einen anderen Block übergeben. Der Typ des Ausgabewertes entspricht immer dem Typ, mit dem die Variablen im Block »Start« initialisiert wurde.
Einstellmöglichkeit:
+
+- Variable, deren Wert gelesen werden soll.
+
Rückgabewert:
+
+- Wert, der in der Variablen gespeichert ist.
+
Funktionsblock ohne/mit Eingabe- und ohne Rückgabewert
In einem Funktionsblock ohne/mit Eingabe- und Rückgabewert wird eine Folge von Anweisungen zusammengefasst. Die Eingabewerte werden durch die lokalen Variablen im Funktionsblock festgelegt. Mit dem »+«-Zeichen können lokale Variablen als Eingabewerte für den Funktionsblock erzeugt werden. Lokale Variablen werden nicht initialisiert.
Falls in einen Funktionsblock eine Wenn-Abfrage (siehe unten) eingebaut wird, kann es zu einem vorzeitigen Abbruch der Funktion kommen.
Der Funktionsblock steht nach seiner Definition als zusätzlicher Block in der Kategorie »Funktion« zur Verfügung. Auf diese Weise kann die Lesbarkeit komplexer Programme wesentlich vereinfacht werden.
Einstellmöglichkeiten:
+
+- Funktionsname, ohne Leer- und Sonderzeichen
- Erzeuge eine lokale Variable, der über den Funktionsaufruf ein Wert zugewiesen wird.
- Lösche eine lokale Variable.
+
Funktionsblock ohne/mit Eingabe- und mit Rückgabewerten
In einem Funktionsblock ohne/mit Eingabe- und mit Rückgabewert wird eine Folge von Anweisungen zusammengefasst. Mit dem »+«-Zeichen können lokale Variablen als Eingabewerte für den Funktionsblock erzeugt werden. Nachdem alle Anweisungen durchlaufen wurden, wird abschließend ein Wert als Funktionswert zurückgegeben.
Falls in einen Funktionsblock eine Wenn-Abfrage eingebaut wird, kann es zu einem vorzeitigen Abbruch der Funktion kommen, und es kann ein alternativer Funktionswert zurückgegeben werden.
Der Funktionsblock steht nach seiner Definition als zusätzlicher Block in der Kategorie »Funktion« zur Verfügung. Auf diese Weise kann die Lesbarkeit komplexer Programme wesentlich vereinfacht werden.
Einstellmöglichkeiten:
+
+- Funktionsname, ohne Leer- und Sonderzeichen
- Erzeuge eine lokale Variable, der über den Funktionsaufruf ein Wert zugewiesen wird.
- Lösche eine lokale Variable.
- Datentyp für den Rückgabewert. »Zahl«, »logischer Wert«, »Zeichenkette«, »Farbe«, »Verbindung«, »Liste Zahl«, »Liste logischer Wert«, »Liste Zeichenkette«, »Liste Verbindung«.
- Wert, der dem eingestellten Datentyp des Rückgabewertes entspricht.
+
Rückgabewert:
+
+- Wert, der im Rückgabeblock berechnet wurde.
+
Wenn-Abfrage innerhalb einer Funktion
Die Wenn-Abfrage innerhalb einer Funktion ist von besonderer Bedeutung. Sobald der Funktionsablauf auf eine Wenn-Abfrage trifft, wird die Gültigkeit der Bedingung geprüft.
Wenn-Abfrage innerhalb einer Funktion mit Rückgabewert:
- Wenn die Bedingung erfüllt ist, wird der weitere Funktionsablauf ignoriert und die Funktion wird beendet. Der zweite übergebene Wert wird als Funktionswert zurückgegeben. Ein eventuell mit der Funktion definierter Rückgabewert wird nicht weiter berücksichtig. Der Rückgabewert-Typ wird durch den Typ des Rückgabewerts der umgebenden Funktion festgelegt.
- Wenn die Bedingung nicht erfüllt ist, wird der Funktionsablauf fortgesetzt. Ein eventuell mit der Funktion definierter Rückgabewert wird als Funktionswert zurückgegeben, wenn der Funktionsablauf das Funktionsende erreicht.
Wenn-Abfrage innerhalb einer Funktion ohne Rückgabewert:
- Eine Wenn-Abfrage innerhalb einer Funktion ohne Rückgabewert hat nur die Bedingung als Eingabewert.
- Wenn die Bedingung erfüllt ist, wird der weitere Funktionsablauf ignoriert und die Funktion wird beendet.
- Wenn die Bedingung nicht erfüllt ist, wird der Funktionsablauf fortgesetzt.
Einstellgabewerte:
+
+- Logischer Wert, der aus einer Bedingung bestimmt wird.
- Wert, dessen Typ am Ende des Funktionsblock eingestellt ist.
+
Rückgabewert:
+
+- Wert, dessen Typ am Ende des Funktionsblock eingestellt ist.
+
»Funktionsaufruf ohne Rückgabewert «
Mit diesem Block kannst du eine vorher definierte Funktion aufrufen. Diese Funktion gibt dabei keinen Wert zurück.
Eingabewerte:
+
+- Wert, abhängig von den Eingabewerte der vorher definierten Funktion.
+
»Funktionsaufruf mit Rückgabewert «
Mit diesem Block kannst du eine vorher definierte Funktion aufrufen und den Rückgabewerte abrufen.
Eingabewerte:
+
+- Wert, abhängig von den Eingabewerten der vorher definierten Funktion.
+
Rückgabewerte:
+
+- Wert, abhängig von dem Rückgabewert der definierten Funktion.
+
»Erstelle Bild«
Mit dem Block »Erstelle Bild« kannst du eigene Bilder für die Anzeige des Calliope erstellen. Jede einzelne Leuchte ist durch einen Punkt im Raster dargestellt.
Du kannst für jede Leuchte eine Helligkeit zwischen 0 und 9 angeben, in der die jeweilige Lampe leuchten soll oder eine »#« um die Lampe einfach einzuschalten.
Ist das Feld leer, wird die Lampe nicht eingeschaltet.
Eingabewerte:
+
+- Zahl; Helligkeit der Lampe im Raster, Zahl zwischen 0 und 9.
+
»Bild«
Mit dem Block »Bild« kannst du ein vordefiniertes Bild auswählen.
Auswahlmöglichkeiten:
+
+- Bild, vordefiniertes Bild.
+
»invertiere«
Ein Bild wird umgekehrt. Ursprünglich leuchtende LEDs im Calliope-Display werden ausgeschaltet, ausgeschaltete LEDs werden eingeschaltet.
Eingabewert:
+
+- Bild, das invertiert werden soll.
+
Rückgabewert:
+
+- Bild, das invertiert wurde.
+
»verschiebe«
Ein Bild wird um einzelne Positionen verschoben. Die Verschieberichtung und die Anzahl Positionen auf dem Display werden eingegeben.
Eingabewerte und Einstellmöglichkeiten:
+
+- Bild, das verschoben werden soll.
- Richtung, in die das Bild verschoben werden soll; Auswahlmöglichkeiten: oben, unten, links oder rechts.
- Zahl, um wie viele Positionen das Bild verschoben werden soll.
+
Rückgabewert:
+
+- Bild, verschoben um die eingestellten Werte.
+
»Sende Nachricht Zeichenkette«
Der Calliope sendet eine Nachricht. Alle Calliope in der nähren Umgebung können diese Nachricht empfangen.
Eingabewert:
+
+- Text; Nachricht, die gesendet werden soll
+
»Empfange Nachricht Zeichenkette«
Mit diesem Block kannst du nachschauen, ob von anderen Calliopes Nachrichten emfpangen wurden und die letzte dann in deinem Programm verwenden.
Wenn noch keine neue Nachricht angekommen ist wartet der Calliope dabei aber nicht, bis eine neue Nachricht ankommt. Es kann also sein, dass du keine Nachricht erhälst.
Je nach ausgewähltem Nachrichtentyp erhälst du dann eine "0", eine unbekannte Zeichenkette oder "false" als Wert zurück.
Wenn du eine Zeichenkette empfangen möchtest musst du den unbekannten Wert erst einmal in deinem Programm in einer Variable speichern, damit du überprüfen kannst, ob überhaupt eine Nachricht angekommen ist. Dafür kannst du am Anfang deines Programms eine Variable anlegen und in ihr mit diesem Block eine Nachricht speichern. Da du am Anfang noch keine Nachricht empfangen hast, wird dadurch der unbekannte Wert in deiner Variable gespeichert. Später kannst du empfangene Nachrichten mit deiner Variable (dem unbekannten Wert darin) vergleichen, um herauszufinden, ob wirklich eine Nachricht angekommen ist.
Einstellmöglichkeiten:
+
+- Nachrichtentyp, »Zeichenkette«, »Zahl« oder »logischer Wert«.
+
Rückgabewert:
+
+Die letzte Nachricht, die dein Calliope emfpangen hat.
Wenn noch keine neue Nachricht angekommen ist erhälst du eine leere Nachricht. Je nach ausgewähltem Nachrichtentyp ist dies:
- Zeichenkette: Leere Zeichenkette
- Zahl: 0
- Logischer Wert: Falsch
+
»Setze Kanal auf ...«
Dieser Block steuert den Kanal, auf dem der Calliope mini Nachrichten empfängt. Der Calliope mini kann nur Nachrichten empfangen, die auf seinem Kanal gesendet worden sind.
Eingabewert:
+
+- Zahl; Der Kanal, auf dem der Calliope mini Nachrichten senden und empfangen soll.
+
\ No newline at end of file
diff --git a/OpenRobertaServer/staticResources/help/progHelp_calliope_en.html b/OpenRobertaServer/staticResources/help/progHelp_calliope_en.html
index e3f5c2c8ed..97d83db7b6 100644
--- a/OpenRobertaServer/staticResources/help/progHelp_calliope_en.html
+++ b/OpenRobertaServer/staticResources/help/progHelp_calliope_en.html
@@ -1,1753 +1,484 @@
-
-
-
-
»start«
-
Each program starts with the red »start« block.
-
This block is always available in the Open Roberta Lab and cannot be deleted. The little triangle below
- the start block is called »sequence connector«. The first block you want to use will be connected by
- using the »sequence connector« at the start block. The sequence connector color changes to yellow when a
- suitable block comes into its range.
-
Settings:
-
-
- - create a new global variable
- - delete the global variable
-
-
If global variables have been created:
-
-
- - Text, name of the variable
- - Type of the variable, »Number«, »Boolean«, »String«, »Colour«,
- »Image«, »List Number«, »List Boolean«, »List String«, »List Image«
- - Value, that corresponds to the variable type. This is the initial
- value of the variable.
-
-
-
-
»show
- text/character«
-
With the »show text/character« block you can display text and numbers on the display of your robot.
-
Settings and input values:
-
-
- - Text (floats over the display) or character (are shown after
- each other).
- - Text or number you want to show.
-
-
-
-
»show image/animation«
-
With the »show image/animation« block you can show selfmade or predefined images on the display.
-
Settings and input values:
-
-
- - Image or Animation (images are shown sequentially).
- - single image or list of images.
-
-
-
-
»clear display«
-
With the »clear
- display« block
- you can delete what is shown on the display.
-
-
-
»set brightness«
-
The brightness of all LEDs on the Calliope display will be set to a uniform value. 0 switches off all
- LEDs, 9 is the maximum value.
-
Input value:
-
-
- - Number, value between 0 and 9. This value will be internally clipped
- to be between 0 and 9.
-
-
-
-
»get brightness«
-
The brightness of all LEDs on the Calliope display will be read. 0 indicates that all LEDs are switched
- off, 9 is the maximum value.
-
Return value:
-
-
- - Number, value between 0 and 9.
-
-
-
-
»set LED x y brightness«
-
The brightness of a single LED on the screen of your Calliope mini is set to a value. The position of the
- LED is determined by x-axis and y-axis. x is the horizontal axis and y is the vertical axis. 0 turns off
- the LEDs, 9 is the maximum brightness value.
-
Input values:
-
-
- - Number, value between 0 and 4 for the x position of the LED. 0 stands
- for the first LED in the row and 4 for the fifth and last LED in the row.
- - Number, value between 0 and 4 for the y position of the LED. 0 stands
- for the first LED in the column and 4 for the fifth and last LED in the column.
- - Number, value between 0 and 9, where 0 means the LED is off and 9 is
- the maximum brightness. This value will be internally clipped to be between 0 and 9.
-
-
-
-
»get LED brightness x y«
-
The brightness of a single LED on the Calliope display will be read. The position of the LED is defined
- by x and y. A brightness value of 0 indicates that the LED is switches , 9 is the maximum value.
-
Input values:
-
-
- - Number, value between 0 and 4 for the x position of the LED. 0 stands
- for the first LED in the row and 4 for the fifth and last LED in the row.
- - Number, value between 0 and 4 for the y position of the LED. 0 stands
- for the first LED in the column and 4 for the fifth and last LED in the column.
-
-
Return values:
-
-
- - number, brightness of the selected LED.
-
-
-
-
» Show on Serial Monitor ... «
-
-
With the block "Show on Serial Monitor..." you can display the output in a Serial Monitor of your choice
- (e.g. Arduino Serial Monitor / (Chrome) Browser Serial Monitor).
-
Input value:
-
-
- - Specify what should be displayed on your Serial Monitor. Possible
- variants are: Number, boolean, string or color.
-
-
-
-
» Show
- 4-Digit Display Number ... position ... colon ... «
-
With this block you can display a number from 0 to 9999 on the Grove 4-digit display of Seeed. The
- display must be connected to the right Grove connector (A1). The position from 0 to 3 indicates the
- starting position of the number.
-
Options:
-
-
- - Number, Value between 0 and 9999. This number will be shown on
- the display.
- - Number, Value between 0 and 3. This is the starting position
- of the number.
- - Boolean, true or false. Specifies whether to display a colon
- in the center.
-
-
-
-
» Clear display 4-Digit
- Display «
-
This block deletes the output on Seeed's Grove display when it is connected to the right Grove connector
- (A1).
-
-
-
»turn LED on colour ...«
-
With the »turn LED on colour ...« you can turn on the status LED in a particular colour.
-
Input value:
-
-
- - Colour in which the LED should light up.
-
-
-
-
»turn LED off«
-
With the »turn LED off« block you can turn off the status LED or the LEDs on the Calli:bot.
-
Settings:
-
-
- - option, choose which LED you want to turn off.
-
-
-
-
» set LED Bar x ... brightness
- ... «
-
With this block you can control the Grove LED-Bar v2.0 by Seed. The LED-Bar needs to be connected to the
- A1 port of your Calliope mini. The first LED of the LED-Bar is red, the second orange and the other
- eight are green.
-
Input values:
-
-
- - Number, position of the LED that you want to change, value between 0
- and 9. This value will be internally clipped to be between 0 and 9.
- - Number, brightness of the LED, value between 0 and 8, with 0 being
- off and 8 being the maximum brightness. This value will be internally clipped to be between 0 and 8.
-
-
-
-
-
» turn LED on Calli:bot ... ...
- «
-
With this block you can control the LEDs on the Calli:bot, you can either turn them off or on.
-
Options:
-
-
- - option, choose which LED you want to control.
- - option, choose whether you want to turn the LED on or off.
-
-
-
-
-
»motor ... ... on speed % ...
- ... «
-
With this block you can control two motors at the same time with different speed settings.
-
You can choose between the motors connected directly to the Calliope mini or the motors of the Calli:bot.
-
-
Settings and input value:
-
-
- - Motor; pick the motors you want to control.
- - number, speed you want the first motor to rotate at, between -100 and
- 100. This value will be internally clipped to be between -100 and 100.
- - number, speed you want the second motor to rotate at, between -100
- and 100. This value will be internally clipped to be between -100 and 100.
-
-
-
-
» stop motor port A + B «
-
With this block you can stop the two motors connected directly to the Calliope mini.
-
-
-
»motor ... on speed % ... «
-
The block »motor ... on
- speed« can be used to turn on a motor and to control its
- speed.
-
You can choose between a motor connected directly to the Calliope mini or a motor of the Calli:bot.
-
Settings and input value:
-
-
- - Motor; pick the motor you want to control.
- - number, speed you want the motor to rotate at, between -100 and 100.
- This value will be internally clipped to be between -100 and 100.
-
-
-
-
»stop motor ... «
-
With this block you can stop one of the connected motors at once.
-
Settings:
-
-
- - option, choose the motor that you want to stop.
-
-
-
-
»motor on speed % ... «
-
With this block you can control the motor connected to motor control pins aboce the RGB-LED.
-
Input value:
-
-
- - number, speed you want the motor to rotate at, between -100 and 100.
- This value will be internally clipped to be between -100 and 100.
-
-
-
-
»motor stop ... «
-
Using this block you can stop the connected motor either immediatly, let it run out or make it go to
- sleep.
-
Settings:
-
-
- - option, float, brake or sleep; make your choice.
-
-
-
-
»set
- servo motor ... to ° ... «
-
With this block you can control the chosen servo motor and turn its arm.
-
Input values and options:
-
-
- - option, choose the port or pin the servo motor is connected
- to.
- - number, angle or position that you want the servo arm to turn
- to. Value between -180 and 180.
-
-
-
-
»MotionKit ...
- ... «
-
With this block you can control one of the motors of the MotionKit and set it to turn either for- or
- backwards.
-
options:
-
-
- - option, chose with motor you want to control.
- - option, chose the direction you want the motor to turn in.
-
-
-
-
-
- »MotionKit left ... right ... «
-
With this block you can control both motors of the MotionKit individually.
-
options:
-
-
- - option, direction you want the left motor to turn in.
- - option, direction you want the right motor to turn in.
-
-
-
-
»play...«
-
With the »play ...« block you can play notes on your Calliope.
-
Settings:
-
-
- - Note length; select the length of the note that is going to be
- played.
- - Note pitch; select the note that is going to be played.
-
-
-
-
»play frequency«
-
With the »play frequency« block you can program the frequency (pitch level) and the time (how long the
- sound should be played) of the sound that is played. The sound is played by the built-in speaker of your
- Calliope for a defined of time. The frequency setting corresponds directly to the frequency in Hertz,
- for example, setting the frequency to 400 corresponds to 400 Hertz. Example: 261 = C.
-
-
Settings:
-
-
- - Number, desired frequency in Hz (Hertz) .
- - Number, desired duration in milliseconds (ms).
-
-
-
-
»write analog/digital
- value to pin ...«
-
With the »write analog/digital value to pin....« block you can send signals to an outputpin .
-
Settings and input value:
-
-
- - analog or digital.
- - In and output pin 0 to 3.
- - Number: value to write. Number between 0 and 1023 for analog signals
- or either 0 or 1 for digital signals. This value will be internally clipped to be between 0 and
- 1023.
-
-
-
-
» switch LED
- matrix ... «
-
With this block you can either switch the LED matrix on or off.
-
Settings:
-
-
- - option, choose if you want to switch the matrix off or on.
-
-
-
-
-
-
With the block »button ... pressed?« you can "tell" another block whether a button is pressed or not.
- This block returns the logical values true = pressed or false = not pressed. This
- block can only be used in conjunction with another block which requires a logical value as an input
- parameter, for example together with the »if do« block.
-
Settings:
-
-
- - Button, select the button you want to check.
-
-
Return value:
-
-
- - Boolean value: »true«, if the button is pressed, otherwise »false«.
-
-
-
-
-
»is pin ... touched?«
-
You can check whether a pin of the Calliiope is touched or not by using the block »is pin ... touched?« .
- This block returns logical values (true if the pin is touched and false if not)
-
Settings:
-
-
- - Pin, select the pin you want to check.
-
-
Return value:
-
-
- - Logical value: »true«, if the pin is touched, »false« else.
-
-
-
-
»gesture ... aktive?«
-
With the block »gesture ... aktive?« you can "tell" another block whether the Calliope is in a specific
- gesture or not .
-
If the Calliope is in the checked gesture the return value will be true. If not it will be false.
-
Settings:
-
-
- - gesture to be checked.
-
-
-
-
»get value compass sensor«
-
With the »get value compass sensor« block, you can read the orientation of your Calliope minis in
- relation to the Cardinal Directions, just like on a compass.
-
To do this, calibrate the Calliope mini by tilting it in all directions until all LEDs on the Calliope
- mini display light up.
-
Return value:
-
-
- - Number, orientation in degrees from 0° to 360°. Where 0° means your
- Calliope mini is facing north.
-
-
-
-
»get value microphone«
-
Get the value of noise close to the Calliope. The microphone is not very sensitive, so the sound you
- check should not be far away.
-
Return value:
-
-
- - Number, volume level from 0 (quiet) to 100 (loud). For older
- versions of the Calliope it is possible that only values between 0 and 10 are given.
-
-
-
-
»get value timer in ms«
-
With the block »get value timer in ms« you can "tell" another block the current time in milliseconds of
- the internal timer.
-
Return value:
-
-
- - Number, milliseconds since program start or since the last reset of
- the timer.
-
-
-
-
»reset timer«
-
With the block »reset timer« the internal timer can be reseted to the value 0.
-
-
-
»get value temperature sensor«
-
with the »get value temperature sensor« you can read out the currently measured temperature.
-
Return value:
-
-
- - Number; Temperature in degrees.
-
-
-
-
-
»get value % light sensor«
-
With the block »get value ambient light« you can measure the brightness of the ambient light.
-
Return value:
-
-
- - Number; brightness between 0 and 255.
-
-
-
-
»get analog/digital value
- pin ...«
-
With the »get analog/digital value pin ...« block you can read out a analog or digital input value. You
- can connect other devices or additional modules to a pin.
-
Settings:
-
-
- - Analog/Digital; which kind of signal do you want to read?
- - Pin, select the pin you want to read out.
-
-
Return value:
-
-
- - Number; current input signal.
-
-
-
-
»get value rotation ...«
-
Read the value of rotation in degrees, how the Calliope was pitched or rolled.
-
Settings:
-
-
- - »pitch« for measurement related to the transversal axis;
- »roll« for measurement related to the longitudinal axis.
-
-
Return value:
-
-
- - Number, degrees within the range of -180 and 180.
-
-
-
-
»get value acceleration mg ...«
-
-
The acceleration of the Calliope will be given, according to the three coordinate axes x, y and z.
-
Setting:
-
-
- - x/y/z-strength; for which direction do you want to read the
- acceleration value? z for instance is the falling direction where the earth gravitation acts.
- Strength is the sum of all directions.
-
-
Return value:
-
-
- - number, acceleration in that direction, measured in milli-g
- where 1000 mg = 1 g = 9.81 m/s²
-
-
-
-
»get ... humidity sensor «
-
This block shows the value of the humidity sensor. This sensor measures both the relative humidity and
- the temperature of the environment and must be connected to pin A1.
-
The sensor used is an SHT31 and communicates via I²C with the Calliope mini.
-
Settings:
-
-
- - option, choose which value you want to measure, either
- temperature or humidity.
-
-
Return values:
-
-
- - number, relative humidity in % or temperature in °C.
-
-
-
-
»get distance cm
- ultrasonic sensor ... «
-
This sensor measures the distance to the next object by emitting ultrasonic waves. This sensor must be
- connected either to pin A1 on the Calliope mini or to the intended location on the Calli:bot. The sensor
- used is a Grove ultrasonic sensor based on a HC-SR04, but with a built-in microcontroller that handles
- the communication.
-
Settings:
-
-
- - option, port to which the sensor is connected.
-
-
Return values:
-
-
- - number, distance to the nearest object in centimetern.
-
-
-
-
»get line infrared
- sensor Calli:bot ... «
-
This sensor measures the shade of the ground and returns whether it is a bright or dark underground.
-
Settings:
-
-
- - option, position of the infrared-sensor, either left or right.
-
-
-
Return value:
-
-
- - boolean, true if the ground is dark, false otherwise.
-
-
-
-
- »get ... colour sensor TCS3472 ... «
-
With this block you can poll the colour sensor TCS3472. This sensor can measure the colour, brightness
- and colour composition of its surroundings.
-
Options:
-
-
- - Option, select the property you want to measure. You can
- choose between colour, light and RGB.
- - Option, choose the colour sensor you want to poll.
-
-
Return values:
-
-
- - Colour, the colour of the surroundings.
- - Number, the brightness of the surroundings in percent.
- - List of numbers, dividing the colour into values of red, green and
- blue.
-
-
-
-
»if do«
-
With the block »if do« you can selectively trigger actions to be executed by your robot. The »if do«
- block therefore requires a logical value as an input parameter, the condition. Only if the condition of
- the »if« statement is true, the inserted block will be executed. In a nested »if do« block, if a further
- distinction was added, the first »if« condition is queried. If it is not fulfilled (condition = false),
- the second »else if« condition will be checked. Also this second condition requires a logical value as
- an input parameter.
-
The conditions may arbitrarily be expanded by clicking the "+" plus symbol. The "-" minus symbol reduces
- the block.
-
Settings and input values:
-
-
- - Insert an additional condition.
- - Delete the last condition.
- - Boolean value, »true« or »false«.
- - Blocks that will be executed
-
-
-
-
»if do else«
-
With the block »if do else« you can selectively trigger actions which are executed by your robot. The »if
- do then« block therefore requires a logical value as an input parameter. If the condition in »if« is
- true the inserted block will be executed, otherwise (condition is not fulfilled = false) the block
- connected to the »else« statement will be executed. In a nested »if do else« block with further
- distinctions added, the first »if« condition is queried. If it is not true, the second condition »else
- if« is checked. Also the second condition requires a logical value as an input parameter. Only when both
- conditions are not true, the block which is inserted at the »else« statement will be executed.
-
The conditions may arbitrarily be expanded by clicking the "+" plus symbol. The "-" minus symbol reduces
- the block.
-
Settings:
-
-
- - Insert an additional if-do-else condition.
- - Delete the last if-do-else condition.
- - Boolean value, »true« or »false«.
- - Do blocks that will be executed if the according condition evaluates
- to »true«.
- - Else blocks that will be executed if the according condition
- evaluates to »false«.
-
-
-
-
»repeat indefinitely«
-
With the block »repeat indefinitely« you can endlessly run the blocks on your robot. All blocks which are
- within the »repeat indefinitely« block will be executed endlessly. The blocks are applied sequentially
- from top to bottom. Once the last block has been executed, the program repeats with the first block
- again. Therefore, this block is also called »loop«.
-
Input:
-
-
- - Blocks to be repeated indefinitely.
-
-
-
-
»repeat n times«
-
With the block »repeat« you can run other block as many times as you like. All blocks in the »repeat«
- block will be executed as often as defined in the entry field. The blocks are applied sequentially from
- top to bottom. Once the last block has been executed, the program repeats with the first block again.
- Therefore, this block is also called »loop«.
-
-
Settings and input:
-
-
- - Number that indicates how often the contained blocks will be
- repeated.
- - Blocks to be repeated as often as defined.
-
-
-
-
»wait«
-
With the block »wait« you can "pause" your program at the point where you inserted the »wait« block. Your
- program will then remain for the specified duration at this point. After the specified time the next
- block will be executed. For example you can display text in the screen of your robot for exactly the
- time you specified in the »wait« block.
-
Settings and input values:
-
-
- - Number, waiting time in milliseconds.
-
-
-
-
»wait until ...«
-
With the block »wait until« you can "stop" your program at the point you insert the »wait until« block.
- Your program then waits until the condition is true. The »wait until« block you can extended by click on
- "+" symbol. Your program then waits until (at least) one of the condition of your »wait until« block is
- true.
-
Settings:
-
-
- - Add a new condition.
- - Delete the last condition.
- - Boolean value, »true« or »false«.
-
-
-
-
»wait until ... «
-
With the block »wait until« you can "stop" your program at the point you insert the »wait until« block.
- Your program then waits until the condition is true. The »wait until« block you can extended by click on
- "+" symbol. Your program then waits until (at least) one of the condition of your »wait until« block is
- true.
-
Settings:
-
-
- - Add a new condition.
- - Delete the last condition.
- - Boolean value, »true« or »false«.
-
-
-
-
»break
- out/continue with next iteration of loop«
-
With the block »break out/continue with next iteration of loop« a loop can be terminated ahead of
- schedule. As soon as the block is entered within a sequence of blocks, all further blocks up to the end
- of the loop will be ignored.
-
Settings:
-
-
- - Type of breaking behavior, »break out« or »continue with next
- iteration«.
-
-
-
-
»count with from to«
-
With the block »count with from to« you can run other block as many times as you like. All blocks in the
- »count with from to« block will be executed as long as the counting is in progress. The blocks are
- applied sequentially from top to bottom. Once the last block has been executed, the program repeats with
- the first block again if the counting is in progress. The last parameter declares the step width for
- counting.
-
Settings:
-
-
- - Variable, name of free choice; numbers of the counter will be delivered one
- after the other to the variable.
- - Number, initial value of the counter.
- - Number, final value of the counter. As the counter exceeds this value
- the loop ends.
- - Number, defining the increment. The variable value will increase by
- this amount after every loop cycle.
- - Blocks that will be executed in every loop cycle.
-
-
-
-
»for each item in list«
-
With the block »for each item in list« all list items will successively be bound to a variable. The
- variable can be used within the loop. With each loop cycle the next item of the list will be bound until
- all list elements have been processed.
-
Settings and input value:
-
-
- - Type of list elements, »Number«, »String«, »Boolean«,
- »Colour«, »Connection«
- - Variable, name of free choice; list elements will be delivered one after the
- other to the variable.
- - List that contains elements of the desired type. If the list elements
- are not of the correct type then the list will not fit to the input slot.
- - Blocks which will be executed as often as there are elements in the
- list.
-
-
-
-
»repeat while/until«
-
With the block »repeat while/until« you can run other block as many times as you like. All blocks in the
- »repeat while/until« block will be executed as long as the condition in the entry field is true. The
- blocks are applied sequentially from top to bottom. Once the last block has been executed, the program
- repeats with the first block again if the condition is still true. Therefore, this block is also called
- »conditional loop«.
-
Settings and input values:
-
-
- - Option, »while« or »until«, defining the type of the
- conditional repetition.
- - Boolean value, »true« or »false«.
- - Blocks that will be repeated while/until the condition evaluates to
- »true«.
-
-
-
-
»comparison«
-
With the block »comparison« you can compare different parameters of the same type (number, color, logical
- value, text). This block can only be used in conjunction with another block which requires a logical
- value as an input parameter.
-
Settings and input values:
-
-
- - Value for the left hand side.
- - Comparison, select one of =, ≠, <, ≤, >, ≥
- - Value for the right hand side.
-
-
Return value:
-
-
- - Boolean value, »true« or »false«.
-
-
-
-
»and/or«
-
With the block »and/or« you can interrelate logical values with each other. The »and/or« block with the
- setting "and" will be true only if both logical parameters are "'true"'. If the block has the setting
- »or« it is sufficient if one of the two parameters is "true", so that the »and/or« block will return
- true.
-
Settings:
-
-
- - Boolean value on the left hand side.
- - Boolean function, »and« or »or«.
- - Boolean value on the right hand side.
-
-
Return value:
-
-
- - Boolean value »true« or»false«.
-
-
-
-
»true/false«
-
With the block »true/false« you can return either the logical value »true« or »false« to another block.
-
-
Settings:
-
-
- - Boolean value, make your choice.
-
-
Return value:
-
-
- - Boolean value, »true« or »false«.
-
-
-
-
»not«
-
Using the »not« lets you invert a logical value and pass this value to another block.
-
Input value:
-
-
- - Boolean value, to be inverted.
-
-
Return value:
-
-
- - Boolean value, »true« or »false«; result of inverting.
-
-
-
-
»test«
-
Using the »test« block will perform a test and returns a value which depends on the test result.
-
Input values:
-
-
- - Boolean value for the test; if no input value is given "true" will be
- assumed.
- - Arbitrary value, evaluated by a block.
- - Arbitrary value, evaluated by a block.
-
-
Return value:
-
-
- - Value of arbitrary type.
-
-
-
-
»null«
-
The block »null« is a place holder for an input value that is not yet
- specified. If for instance a new connection variable has been created and is not yet bound, the initial
- value of this connection will be set to »null«.
-
Return value::
-
-
- - Boolean value, »null«.
-
-
-
-
»parameter«
-
With the block »parameter« you can send numbers to another block.
-
Settings and input values:
-
-
-
Return value:
-
-
-
-
-
»calculating«
-
With the block »calculating« you can sum up, subtract, multiply, and divide numbers. This block can only
- be used in conjunction with another block which requires a number as an input parameter.
-
Settings and input values:
-
-
- - Number, first number on the left you want to calculate with.
- - Option, mathematical operator, choose one of +, −, ×, ÷, ^.
-
- - Number, second number on the right you want to calculate with.
-
-
Return value:
-
-
- - Number, result of the calculation.
-
-
-
-
»mathematical function«
-
With the block »mathematical function« some elementary mathematical functions may be calculated.
- Available functions are »square root«, »absolute«, »invert« (multiply by -1), »ln« (natural logarithm),
- »log10« (decadic logarithm), »e^« (exponential function), »10^« (base 10 exponent)
-
Settings and input value:
-
-
- - Option, mathematical function, choose one.
- - Number to apply the function to.
-
-
Return value:
-
-
- - Number, result of the function application.
-
-
-
-
»trigonometric functions«
-
With the block »trigonometric function« sine, cosine, tangent and their respective revers functions can
- be calculated. Input values are expected in radian measure(see hint above).
-
Settings and input value:
-
-
- - Option, trigonometric function to choose from.
- - Number, in radian measure.
-
-
Return value:
-
-
- - Number, result of the trigonometric calculation.
-
-
-
-
»constant«
-
With the »constant« block some mathematical constant values are available: »π« (3,1415...), »e«
- (2,718...), »φ« (1,618...), »sqrt(2)« (1,414...), »sqrt(½)« (0,7071...), »∞«
-
Settings:
-
-
- - Option, mathematical constants, choose one.
-
-
Return value:
-
-
- - Number, value of the selected mathematical constant. Infinity will
- return »infinity«.
-
-
-
-
»number property«
-
With the block »number property« you check whether a given number has a specific property: »even«, »odd«,
- »prime«, »whole«, »positive«, »negative«, »divisible by«.
-
Settings and input values:
-
-
- - Number, the property of this input value will be checked.
- - Option, number property, choose one.
- - Number, evaluated from a block. The second input value is only
- required for the property »divisible by«.
-
-
Return value:
-
-
- - Boolean value, »true« or »false«, depending on the selected
- property.
-
-
-
-
»change by ... «
-
The block »change by ... « increments a numerical variable by a defined value.
-
Settings and input values:
-
-
- - Variable name, which value is to be changed. Choose the variable to
- be changed.
- - Number, given by a block.
-
-
-
-
»round«
-
With the block »round« values may be rounded. Rounding will set the decimal places to 0. It depends on
- the value of the decimal places whether the block rounds up or down. You may also decide by settings to
- always round up or down.
-
Settings and input value:
-
-
- - Type of rounding, choose a round mode.
- - Number you want to round.
-
-
Return value:
-
-
- - Number, rounded whole number, according to the round mode.
-
-
-
-
»list evaluation«
-
With the block »list evaluation« you may analyse a list.
-
Modes for list evaluation:
-
-
- - sum - addition of all list values
- - min - smallest value in the list
- - max - largest value in the list
- - average - average of all list values
- - median - median of all list values
- - standard deviation - standard deviation of all list values
-
- - random item - one list value randomly selected
-
-
Settings and input value:
-
-
- - Mode of list evaluation, choose one mode.
- - List of numbers
-
-
Return value:
-
-
- - Number, calculated according to the selected list evaluation mode.
-
-
-
-
-
»remainder of«
-
The block »remainder of« calculates a divison and returns the remainder of the division.
-
Input values:
-
-
- - Number to be divided (dividend).
- - Number, divisor.
-
-
Return value:
-
-
- - Number, rest of the division.
-
-
-
-
»constrain«
-
The block »constrain« ensures that given boundaries will not be exceeded.
-
Input values:
-
-
- - Number, that will be constrained.
- - Number, lower bound.
- - Number, upper bound.
-
-
Return value:
-
-
- - Number, constrained by the lower and the upper bound.
-
-
-
-
»random integer«
-
With the block »random integer« you may generate random integer numbers within defined limits
-
Input values:
-
-
- - Number, lower bound
- - Number, upper bound
-
-
Return value:
-
-
- - Number, a whole random number from within the upper and lower
- bounds.
-
-
-
-
»random fraction«
-
With the block »random fraction« a random value between 0.0 and 1.0 is calculated.
-
Return value:
-
-
- - Number, positive random value between 0.0 and 1.0.
-
-
-
-
»cast ... to String«
-
This block converts a number into a string containing that number. So for example the number 123 would be
- converted into the string »123«.
-
Options and input values:
-
-
- - Number, the number that you want to convert into a String containing
- this number.
-
-
Return value:
-
-
- - String, the string containing the selected number.
-
-
-
-
»cast ... to Char«
-
This block converts a single number to the corresponding ASCII letter. If there is no associated ASCII
- character for this number, an empty string is passed on. So for example the number 97 gets converted
- into the lower-case letter »a«.
-
Options and input values:
-
-
- - Number, the ASCII code that you want to convert into a character.
-
-
-
Return values:
-
-
- - String, a single character that corresponds to the selected ASCII
- number.
-
-
-
-
»Text«
-
The simple »Text« block creates a little text.
-
Input value:
-
-
- - String, containing arbitrary characters.
-
-
Return value:
-
-
- - String, containing arbitrary characters.
-
-
-
-
-
»create Text«
-
The »create text« block compiles a text from different input parameters. Using the + sign will insert
- further input slots. All input parameters will be connected one after the other. Essentially the »create
- text« block converts an arbitrary input value into a text string.
-
Input values:
-
-
- - Arbitrary values [numbers, text, logical values, colours)
-
-
Return value:
-
-
- - String, containing arbitrary characters, compiled sequentially from
- all input values.
-
-
-
-
»append Text«
-
The »append text« block will append some string to a given string, for instance to extend a message with
- a signature.
-
Input values:
-
-
- - String, to which some other text will be appended.
- - String, that shall be appended.
-
-
-
-
»cast ... to Number«
-
This block converts a string into a number if this is possible. So if a string contains only numbers,
- this block can convert the string into a number. If the block does not contain numbers, this block will
- pass »NaN« when used in th Open Roberta Lab simulation and may have a different behavior depending on the programming language of the robot you are
- currently using. If the string starts with numbers but
- then contains other characters that are not numbers, this block will pass only the numbers and stop
- as soon as the first character is in the string. So, as an example, this block makes the number 52
- out of the string »52abcd«.
-
Options and input values:
-
-
- - String, the string you want to convert into a number.
-
-
Return values:
-
-
- - Number, the converted number.
-
-
-
-
»cast ... at index ... to
- Number«
-
This block converts a letter or a character from a character string into the corresponding ASCII number.
- Each character has an associated number in the ASCII table. For example, a lower-case »a« is converted
- into the number 97.
-
Options and input values:
-
-
- - String, from which a single character is selected.
- - Number, the digit of the character to be converted. Note that the
- numbering starts at 0.
-
-
Return values:
-
-
- - Number, the ASCII number of to selected character. Number between 0
- and 255.
-
-
-
-
»create list«
-
The block »empty list« creates a list with no content.The block »list« generates a list with some
- predefined values.
-
This block may only be used in the context of a »set variable« block.
-
Using »+« or »−« enables you to extend or reduce the list at its end.
-
Settings and input values:
-
-
- - List type, »Number«, »String«, »Boolean«, »Colour«,
- »Connection«.
- - Create further list element, append to the end of the list.
- - Delete list element at the end of the list.
- - Values, according to the list type. Here the input of initial values
- is possible.
-
-
Return value:
-
-
- - Empty list or list, containing elements of the specified list type.
-
-
-
-
-
»repeat element in list«
-
The »repeat element in list« block generates a list of equal elements.
-
Settings and input values:
-
-
- - List type, »Number«, »Boolean«, »String«, »Colour« or
- »Connection«.
- - List element, according to the selected list type. This value
- will be repeated in the list.
- - Number, defining how often the list element will be repeated.
-
-
Return value:
-
-
- - List of the specified list type, containing the specified number of
- equal elements.
-
-
-
-
»length of«
-
The »length of« block returns a value which is the length of the list given as parameter. An empty list
- has a length of 0.
-
Input value:
-
-
- - List, evaluated by an appropriate block.
-
-
Return value:
-
-
- - Number, number of list elements.
-
-
-
-
»is empty?«
-
A list given as parameter will be checked whether it is empty.
-
Input value:
-
-
- - List, evaluated by an appropriate block.
-
-
Return value:
-
-
- - Boolean, either »true« or »false«.
-
-
-
-
»find in list«
-
A list is searched for an item. If the item is in the list, the list position will be returned. If the
- item is not in the list the result is -1.
-
Settings and input values:
-
-
- - List, that will be examined.
- - Position of the occurrence, either »first« or »last«.
- - Value, list item to be found.
-
-
Return value:
-
-
- -
-
Number, indicating the position where the element was found in the list.
- Note: Counting list positions will start with 0.
-
-
-
-
-
»get list element«
-
This block accesses an item of a list. Depending on the settings this item may be altered.
-
A list is given as parameter. Then a drop-down-list specifies what will happen to the list item under
- consideration.
-
Settings:
-
-
- - List, that is under consideration.
- - Option, action for the element found: »get« reads the element
- and leaves it unchanged, »get and remove« reads the element and removes it from the list, »remove«
- just removes the element from the list.
- - Option, position of the element found: »#«, »# from end«,
- »first«, »last« or »random« .
- -
-
Number, indicating the list position. This input value is not required if »first«, »last« or
- »random« was selected as position.
- Note: Counting of list positions starts with 0.
-
-
-
Return value:
-
-
- -
-
List element that has been found at the specified list position; »undefined«, if the list
- position does not exist.
- With selection of »remove« there is no return value; instead the list will be shortened by this
- list element.
-
-
-
-
-
»set list element«
-
In a list given as input parameter one specified element will be replaced by a new value.
-
Settings and input values:
-
-
- - List, that will be changed.
- - Option, action for the element found; »set« changes the
- element, »insert at« inserts a new element into the list.
- - Option, position for the element to be changed: »#«, »# from
- end«, »first«, »last« or »random« .
- - Number, indicating the list position. This input value is not
- required if »first«, »last« or »random« was selected.
Note: Counting of list positions begins
- with 0.
- - List element, that will be set or inserted at the selected list
- position.
-
-
-
-
»get sublist«
-
From a list given as parameter a sublist will be created. The sublist contains all those elements that
- match the further specifications of the block.
-
Settings and input values:
-
-
- - List to be examined.
- - Position, start of the sublist: »#«, »# from end« or »first«.
-
- -
-
Number, indicating the list position. This input value is not required if »first« has been
- selected.
- Note: Counting of list positions starts with 0.
-
- - Position, end of the sublist: »#«, »# from end« or »last«.
- -
-
Number, indicating the list position. This input value is not required if »last« has been
- selected.
- Note: Counting of list positions starts with 0.
-
-
-
Return value:
-
-
- - List, a sublist of the same type as the given list.
-
-
-
-
»Colour picker «
-
With this block you can choose from a pool of predefined colours for your robot.
-
options:
-
-
- - option, choose the colour you want to use.
-
-
Return value:
-
-
- - colour, your selected colour.
-
-
-
-
»Colour picker «
-
With this block you can choose from a pool of predefined colours for your robot.
-
options:
-
-
- - option, choose the colour you want to use.
-
-
Return value:
-
-
- - colour, your selected colour.
-
-
-
-
»Colour picker «
-
With this block you can choose from a pool of predefined colours for your robot.
-
options:
-
-
- - option, choose the colour you want to use.
-
-
Return value:
-
-
- - colour, your selected colour.
-
-
-
-
»Colour with red
- ... green ... blue ... white ... «
-
With this block you can create your own colour by mixing red, green and blue.
-
Input values:
-
-
- - number, the red part in your color. Value between 0 and 255.
- - number, the green part in your color. Value between 0 and 255.
- - number, the blue part in your color. Value between 0 and 255.
- - number, the brightness of your color. Value between 0 and 255.
-
-
-
-
»Colour with red ... green
- ... blue ... «
-
With this block you can create your own colour by mixing red, green and blue.
-
Input values:
-
-
- - number, the red part in your color. Value between 0 and 255.
- - number, the green part in your color. Value between 0 and 255.
- - number, the blue part in your color. Value between 0 and 255.
-
-
-
-
»Colour with red ...
- green ... blue ... «
-
With this block you can create your own colour by mixing red, green and blue.
-
Input values:
-
-
- - number, the red part in your color. Value between 0 and 255.
- - number, the green part in your color. Value between 0 and 255.
- - number, the blue part in your color. Value between 0 and 255.
-
-
-
-
»set variable«
-
Using the block »set variable« will assign a value to a variable. Depending on the variable type the
- value may be assigned by an input connector.
-
Settings and input value:
-
-
- - Variable, which value is to be changed.
- - Value, new value for the variable, evaluated from a suitable block.
-
-
-
-
-
»get variable«
-
Using the block »get variable« returns the value of a variable to another block.The type of the output
- parameter is equal to the type that has been assigned to the variable in the »start« block.
-
Settings:
-
-
- - Variable, that will be read. The value will not be changed by
- reading.
-
-
Return value:
-
-
- - Value, stored in the variable.
-
-
-
-
-
In a function block with/without input parameter and without return parameter a sequence of program
- statements will be condensed. The input parameters will be determined by the local variables of the
- function block. Local variables may be generated by using the »+« sign of the function block. Local
- variables will not be initialized.
-
If a function block contains an if-block the function may be terminated before reaching it's end.
-
The function block is available in the »Functions« category immediately after its definition. Using
- function blocks improves the readability of complex programs.
-
Settings:
-
-
- - Function name, no special characters and white spaces allowed.
- - Generate new local variables, that will be assigned with the function call.
-
- - Delete the associated local variable.
-
-
-
-
-
-
In a function block with/without input parameter and with return parameter a sequence of program
- statements will be condensed. The input parameters will be determined by the local variables of the
- function block. Local variables may be generated by using the »+« sign of the function block. Local
- variables will not be initialized. After running through all the blocks of the function a value will be
- returned.
-
If a function block contains an if-block the function may be terminated before reaching it's end. An
- alternative value may be returned by the if-block.
-
The function block is available in the »Functions« category immediately after its definition. Using
- function blocks improves the readability of complex programs.
-
Settings:
-
-
- - Function name, no special characters and white spaces allowed.
- - Generate new local variables, that will be assigned with the function call.
-
- - Delete the associated local variable.
- - Data type for the return value; choose one data type.
- - Block, that returns a value of the defined data type.
-
-
Return value:
-
-
- - Value of the defined data type, evaluated in an appropriate block.
-
-
-
-
-
-
»if block to be used within a function«
-
-
The if statement within a function is of special importance. As the function sequence meets an if
- statement the validity of the condition will be checked.
-
If statement within a function
- with return value:
-
- - If the condition evaluates to »true« the rest of the function will be ignored and the function
- terminates. The second input value of the if statement will be returned. A possibly defined return
- value of the function will be ignored. The return value data type is determined by the return data
- type of the function definition.
- - If the condition evaluates to »false« the sequence of the function blocks will be continued. The
- return value of the function will be returned after reaching the end of the function.
-
-
If statement within a
- function with no return value:
-
- - An if statement within a function without return value has just the if statement as input parameter.
-
- - If the condition evaluates to »true« the rest of the function will be ignored and the function
- terminates.
- - If the condition evaluates to »false« the sequence of the function blocks will be continued.
-
-
Settings and input values:
-
-
- - Boolean value, possibly evaluated by a condition.
- - Value of the specified data type.
-
-
Return value:
-
-
- - Value of the specified data type.
-
-
-
-
»function call without return value «
-
-
With this block you can call a previous defined function in your program.
-
Input values:
-
-
- - element, depending of the required input value of the function.
-
-
-
-
»function call
- with return value «
-
With this block you can call a previous defined function in your program.
-
Input values:
-
-
- - element, depending on the required input value of the function.
-
-
Return value:
-
-
- - element, depending on the return value of the function.
-
-
-
-
»create image«
-
-
You can use the block »create image« to create images, which can be
- displayed on the Calliope. Every single light is represented by a dot in the grid.
-
You can type in a number between 0 and 9 to adjust the brightness of the light or just a »#« to turn it on. Every
- empty field represents a turned off light.
-
Input value:
-
-
- - Number; brightness of the light in the grid, between 0 and 9.
-
-
-
-
»image«
-
By using the »image« block you can select predefined images.
-
Settings:
-
-
- - Image, predefined image.
-
-
-
-
»invert image«
-
An image will be inverted. Lightened LEDs of the calliope display will be switched of and vice versa.
-
Input value:
-
-
-
Return value:
-
-
- - Image, the inversion of the input image
-
-
-
-
»shift image ...«
-
An image will be shifted by some positions on the Calliope display. You may select the shift direction
- and the amount of shifting.
-
Input values and settings:
-
-
- - Image to be shifted
- - Direction of shifting; up, down, left or right
- - Number, amount for shifting
-
-
Return value:
-
-
-
-
-
»send message«
-
Using the »send message« block you can send a message, which can be
- received by every Calliope in reach.
-
Input value:
-
-
- - Text; message to be send
-
-
-
-
»receive message«
-
With the »receive message« block you can receive messages, sent by other
- calliopes in reach and »tell« them to another block.
-
-
Performing the »receive message« block
- the Calliope is not waiting for a message, so it wont receive a message, if none was sent.
- Instead, it will return a default value if you did not receive a message, wich is an unknown
- string, 0 or "false", depending on the secelted data type.
-
If you want to receive a string, but want to check if you really received a message, you need to store
- the unknown default value for your calliope mini first. To do that, just add a new variable at the
- beginning of your program and save a string message in it at the beginning of your program with this
- block. Like this, your calliope will save the unknown value in the variable and you can use it later to
- compare the messages you receive against it.
-
Return values:
-
-
- - message type, »String«.
-
-
-
-
»set channel to ... «
-
With this block you can set the channel of your Calliope mini. The Calliope mini can only send and
- receive messages on this channel, not on any others. So it is very important that two Calliope minis are
- set to the same channel for them to be able to communicate with one another.
-
Input values:
-
-
- - number, the channel for your Calliope mini.
-
-
-
-
\ No newline at end of file
+»start«
Each program starts with the red »start« block.
This block is always available in the Open Roberta Lab and cannot be deleted. The little triangle below the start block is called »sequence connector«. The first block you want to use will be connected by using the »sequence connector« at the start block. The sequence connector color changes to yellow when a suitable block comes into its range.
Settings:
+
+- create a new global variable
- delete the global variable
+
If global variables have been created:
+
+- Text, name of the variable
- Type of the variable, »Number«, »Boolean«, »String«, »Colour«, »Image«, »List Number«, »List Boolean«, »List String«, »List Image«
- Value, that corresponds to the variable type. This is the initial value of the variable.
+
»show text/character«
With the »show text/character« block you can display text and numbers on the display of your robot.
Settings and input values:
+
+- Text (floats over the display) or character (are shown after each other).
- Text or number you want to show.
+
»show image/animation«
With the »show image/animation« block you can show selfmade or predefined images on the display.
Settings and input values:
+
+- Image or Animation (images are shown sequentially).
- single image or list of images.
+
»clear display«
With the »clear display« block you can delete what is shown on the display.
»set brightness«
The brightness of all LEDs on the Calliope display will be set to a uniform value. 0 switches off all LEDs, 9 is the maximum value.
Input value:
+
+- Number, value between 0 and 9. This value will be internally clipped to be between 0 and 9.
+
»get brightness«
The brightness of all LEDs on the Calliope display will be read. 0 indicates that all LEDs are switched off, 9 is the maximum value.
Return value:
+
+- Number, value between 0 and 9.
+
»set LED x y brightness«
The brightness of a single LED on the screen of your Calliope mini is set to a value. The position of the LED is determined by x-axis and y-axis. x is the horizontal axis and y is the vertical axis. 0 turns off the LEDs, 9 is the maximum brightness value.
Input values:
+
+- Number, value between 0 and 4 for the x position of the LED. 0 stands for the first LED in the row and 4 for the fifth and last LED in the row.
- Number, value between 0 and 4 for the y position of the LED. 0 stands for the first LED in the column and 4 for the fifth and last LED in the column.
- Number, value between 0 and 9, where 0 means the LED is off and 9 is the maximum brightness. This value will be internally clipped to be between 0 and 9.
+
»get LED brightness x y«
The brightness of a single LED on the Calliope display will be read. The position of the LED is defined by x and y. A brightness value of 0 indicates that the LED is switches , 9 is the maximum value.
Input values:
+
+- Number, value between 0 and 4 for the x position of the LED. 0 stands for the first LED in the row and 4 for the fifth and last LED in the row.
- Number, value between 0 and 4 for the y position of the LED. 0 stands for the first LED in the column and 4 for the fifth and last LED in the column.
+
Return values:
+
+- number, brightness of the selected LED.
+
» Show on Serial Monitor ... «
With the block "Show on Serial Monitor..." you can display the output in a Serial Monitor of your choice (e.g. Arduino Serial Monitor / (Chrome) Browser Serial Monitor).
Input value:
+
+- Specify what should be displayed on your Serial Monitor. Possible variants are: Number, boolean, string or color.
+
» Show 4-Digit Display Number ... position ... colon ... «
With this block you can display a number from 0 to 9999 on the Grove 4-digit display of Seeed. The display must be connected to the right Grove connector (A1). The position from 0 to 3 indicates the starting position of the number.
Options:
+
+- Number, Value between 0 and 9999. This number will be shown on the display.
- Number, Value between 0 and 3. This is the starting position of the number.
- Boolean, true or false. Specifies whether to display a colon in the center.
+
» Clear display 4-Digit Display «
This block deletes the output on Seeed's Grove display when it is connected to the right Grove connector (A1).
»turn RGB LED on colour ...«
With the »turn RGB LED on colour ...« you can turn on the RGB-LED in a particular colour.
Input value:
+
+- Colour in which the RGB-LED should light up.
+
»turn RGB LED on ... colour ...«
With the »turn RGB LED on colour ...« you can turn on the RGB-LED in a particular colour. On Calliope mini V3 you can choose, which LED to turn on.
Input value:
+
+- LED, choose which LED to turn on: left, center, right or all.
- Colour in which the RGB-LED should light up.
+
»turn RGB LED off«
With the »turn RGB LED off« block you can turn off the RGB-LED .
»turn RGB LED off«
With the »turn RGB LED off« block you can turn off the RGB-LED. On Calliope mini V3 you can also choose, which LED to turn off.
Options:
+
+- LED, choose which LED to turn off: left, center, right or all.
+
»turn RGB LED on ... colour ...«
With the »turn RGB LED on ... colour ...« you can turn on the RGB-LED in a particular colour.
Options and input value:
+
+- option, choose which RGB-LED you want to turn off.
- Colour in which the RGB-LED should light up.
+
»turn RGB LED off ...«
With the »turn RGB LED off ...« block you can turn off the RGB-LED .
Options:
+
+- option, choose which LED you want to turn off.
+
» set LED Bar x ... brightness ... «
With this block you can control the Grove LED-Bar v2.0 by Seed. The LED-Bar needs to be connected to the A1 port of your Calliope mini. The first LED of the LED-Bar is red, the second orange and the other eight are green.
Input values:
+
+- Number, position of the LED that you want to change, value between 0 and 9. This value will be internally clipped to be between 0 and 9.
- Number, brightness of the LED, value between 0 and 8, with 0 being off and 8 being the maximum brightness. This value will be internally clipped to be between 0 and 8.
+
» turn LED ... ... «
With this block you can control the LEDs on the Calli:bot, you can either turn them off or on.
Options:
+
+- option, choose which LED you want to control.
- option, choose whether you want to turn the LED on or off.
+
»motor ... ... on speed % ... ... «
With this block you can control two motors at the same time with different speed settings.
You can choose between the motors connected directly to the Calliope mini or the motors of the Calli:bot.
Settings and input value:
+
+- Motor; pick the motors you want to control.
- number, speed you want the first motor to rotate at, between -100 and 100. This value will be internally clipped to be between -100 and 100.
- number, speed you want the second motor to rotate at, between -100 and 100. This value will be internally clipped to be between -100 and 100.
+
» stop motor port A + B «
With this block you can stop the two motors connected directly to the Calliope mini.
»motor ... on speed % ... «
The block »motor ... on speed« can be used to turn on a motor and to control its speed.
You can choose between a motor connected directly to the Calliope mini or a motor of the Calli:bot.
Settings and input value:
+
+- Motor; pick the motor you want to control.
- number, speed you want the motor to rotate at, between -100 and 100. This value will be internally clipped to be between -100 and 100.
+
»stop motor ... «
With this block you can stop one of the connected motors at once.
Settings:
+
+- option, choose the motor that you want to stop.
+
»motor on speed % ... «
With this block you can control the motor connected to motor control pins aboce the RGB-LED.
Input value:
+
+- number, speed you want the motor to rotate at, between -100 and 100. This value will be internally clipped to be between -100 and 100.
+
»motor stop ... «
Using this block you can stop the connected motor either immediatly, let it run out or make it go to sleep.
Settings:
+
+- option, float, brake or sleep; make your choice.
+
»set servo motor ... to ° ... «
With this block you can control the chosen servo motor and turn its arm.
Input values and options:
+
+- option, choose the port or pin the servo motor is connected to.
- number, angle or position that you want the servo arm to turn to. Value between -180 and 180.
+
»MotionKit ... ... «
With this block you can control one of the motors of the MotionKit and set it to turn either for- or backwards.
options:
+
+- option, chose with motor you want to control.
- option, chose the direction you want the motor to turn in.
+
»MotionKit left ... right ... «
With this block you can control both motors of the MotionKit individually.
options:
+
+- option, direction you want the left motor to turn in.
- option, direction you want the right motor to turn in.
+
»play...«
With the »play ...« block you can play notes on your Calliope.
Settings:
+
+- Note length; select the length of the note that is going to be played.
- Note pitch; select the note that is going to be played.
+
»play frequency«
With the »play frequency« block you can program the frequency (pitch level) and the time (how long the sound should be played) of the sound that is played. The sound is played by the built-in speaker of your Calliope for a defined of time. The frequency setting corresponds directly to the frequency in Hertz, for example, setting the frequency to 400 corresponds to 400 Hertz. Example: 261 = C.
Settings:
+
+- Number, desired frequency in Hz (Hertz) .
- Number, desired duration in milliseconds (ms).
+
»write analog/digital value to pin ...«
With the »write analog/digital value to pin....« block you can send signals to an outputpin .
Settings and input value:
+
+- analog or digital.
- In and output pin 0 to 3.
- Number: value to write. Number between 0 and 1023 for analog signals or either 0 or 1 for digital signals. This value will be internally clipped to be between 0 and 1023.
+
» switch LED matrix ... «
With this block you can either switch the LED matrix on or off.
Settings:
+
+- option, choose if you want to switch the matrix off or on.
+
With the block »button ... pressed?« you can "tell" another block whether a button is pressed or not. This block returns the logical values true = pressed or false = not pressed. This block can only be used in conjunction with another block which requires a logical value as an input parameter, for example together with the »if do« block.
Settings:
+
+- Button, select the button you want to check.
+
Return value:
+
+- Boolean value: »true«, if the button is pressed, otherwise »false«.
+
»is pin ... touched?«
You can check whether a pin of the Calliiope is touched or not by using the block »is pin ... touched?« . This block returns logical values (true if the pin is touched and false if not)
Settings:
+
+- Pin, select the pin you want to check.
+
Return value:
+
+- Logical value: »true«, if the pin is touched, »false« else.
+
»logo sensor pressed?«
With this block, you can query the touch sensor of the Micro:bit to see if it is currently being pressed.
Return values:
+
+- Truth value, "true" if the key is pressed, "false" otherwise.
+
»gesture ... aktive?«
With the block »gesture ... aktive?« you can "tell" another block whether the Calliope is in a specific gesture or not .
If the Calliope is in the checked gesture the return value will be true. If not it will be false.
Settings:
+
+- gesture to be checked.
+
»get value compass sensor«
With the »get value compass sensor« block, you can read the orientation of your Calliope minis in relation to the Cardinal Directions, just like on a compass.
To do this, calibrate the Calliope mini by tilting it in all directions until all LEDs on the Calliope mini display light up.
Return value:
+
+- Number, orientation in degrees from 0° to 360°. Where 0° means your Calliope mini is facing north.
+
»get value microphone«
Get the value of noise close to the Calliope. The microphone is not very sensitive, so the sound you check should not be far away.
Return value:
+
+- Number, volume level from 0 (quiet) to 100 (loud). For older versions of the Calliope it is possible that only values between 0 and 10 are given.
+
»get value timer in ms«
With the block »get value timer in ms« you can "tell" another block the current time in milliseconds of the internal timer.
Return value:
+
+- Number, milliseconds since program start or since the last reset of the timer.
+
»reset timer«
With the block »reset timer« the internal timer can be reseted to the value 0.
»get value temperature sensor«
with the »get value temperature sensor« you can read out the currently measured temperature.
Return value:
+
+- Number; Temperature in degrees.
+
»get value % light sensor«
With the block »get value ambient light« you can measure the brightness of the ambient light.
Return value:
+
+- Number; brightness between 0 and 255.
+
»get analog/digital value pin ...«
With the »get analog/digital value pin ...« block you can read out a analog or digital input value. You can connect other devices or additional modules to a pin.
Settings:
+
+- Analog/Digital; which kind of signal do you want to read?
- Pin, select the pin you want to read out.
+
Return value:
+
+- Number; current input signal.
+
»get value rotation ...«
Read the value of rotation in degrees, how the Calliope was pitched or rolled.
Settings:
+
+- »pitch« for measurement related to the transversal axis; »roll« for measurement related to the longitudinal axis.
+
Return value:
+
+- Number, degrees within the range of -180 and 180.
+
»get value acceleration mg ...«
The acceleration of the Calliope will be given, according to the three coordinate axes x, y and z.
Setting:
+
+- x/y/z-strength; for which direction do you want to read the acceleration value? z for instance is the falling direction where the earth gravitation acts. Strength is the sum of all directions.
+
Return value:
+
+- number, acceleration in that direction, measured in milli-g where 1000 mg = 1 g = 9.81 m/s²
+
»get ... humidity sensor «
This block shows the value of the humidity sensor. This sensor measures both the relative humidity and the temperature of the environment and must be connected to pin A1.
The sensor used is an SHT31 and communicates via I²C with the Calliope mini.
Settings:
+
+- option, choose which value you want to measure, either temperature or humidity.
+
Return values:
+
+- number, relative humidity in % or temperature in °C.
+
»get distance cm ultrasonic sensor ... «
This sensor measures the distance to the next object by emitting ultrasonic waves. This sensor must be connected either to pin A1 on the Calliope mini or to the intended location on the Calli:bot. The sensor used is a Grove ultrasonic sensor based on a HC-SR04, but with a built-in microcontroller that handles the communication.
Settings:
+
+- option, port to which the sensor is connected.
+
Return values:
+
+- number, distance to the nearest object in centimetern.
+
»get line infrared sensor Calli:bot ... «
This sensor measures the shade of the ground and returns whether it is a bright or dark underground.
Settings:
+
+- option, position of the infrared-sensor, either left or right.
+
Return value:
+
+- boolean, true if the ground is dark, false otherwise.
+
»get ... colour sensor TCS3472 ... «
With this block you can poll the colour sensor TCS3472. This sensor can measure the colour, brightness and colour composition of its surroundings.
Options:
+
+- Option, select the property you want to measure. You can choose between colour, light and RGB.
- Option, choose the colour sensor you want to poll.
+
Return values:
+
+- Colour, the colour of the surroundings.
- Number, the brightness of the surroundings in percent.
- List of numbers, dividing the colour into values of red, green and blue.
+
»if do«
With the block »if do« you can selectively trigger actions to be executed by your robot. The »if do« block therefore requires a logical value as an input parameter, the condition. Only if the condition of the »if« statement is true, the inserted block will be executed. In a nested »if do« block, if a further distinction was added, the first »if« condition is queried. If it is not fulfilled (condition = false), the second »else if« condition will be checked. Also this second condition requires a logical value as an input parameter.
The conditions may arbitrarily be expanded by clicking the "+" plus symbol. The "-" minus symbol reduces the block.
Settings and input values:
+
+- Insert an additional condition.
- Delete the last condition.
- Boolean value, »true« or »false«.
- Blocks that will be executed
+
»if do else«
With the block »if do else« you can selectively trigger actions which are executed by your robot. The »if do then« block therefore requires a logical value as an input parameter. If the condition in »if« is true the inserted block will be executed, otherwise (condition is not fulfilled = false) the block connected to the »else« statement will be executed. In a nested »if do else« block with further distinctions added, the first »if« condition is queried. If it is not true, the second condition »else if« is checked. Also the second condition requires a logical value as an input parameter. Only when both conditions are not true, the block which is inserted at the »else« statement will be executed.
The conditions may arbitrarily be expanded by clicking the "+" plus symbol. The "-" minus symbol reduces the block.
Settings:
+
+- Insert an additional if-do-else condition.
- Delete the last if-do-else condition.
- Boolean value, »true« or »false«.
- Do blocks that will be executed if the according condition evaluates to »true«.
- Else blocks that will be executed if the according condition evaluates to »false«.
+
»repeat indefinitely«
With the block »repeat indefinitely« you can endlessly run the blocks on your robot. All blocks which are within the »repeat indefinitely« block will be executed endlessly. The blocks are applied sequentially from top to bottom. Once the last block has been executed, the program repeats with the first block again. Therefore, this block is also called »loop«.
Input:
+
+- Blocks to be repeated indefinitely.
+
»repeat n times«
With the block »repeat« you can run other block as many times as you like. All blocks in the »repeat« block will be executed as often as defined in the entry field. The blocks are applied sequentially from top to bottom. Once the last block has been executed, the program repeats with the first block again. Therefore, this block is also called »loop«.
Settings and input:
+
+- Number that indicates how often the contained blocks will be repeated.
- Blocks to be repeated as often as defined.
+
»wait«
With the block »wait« you can "pause" your program at the point where you inserted the »wait« block. Your program will then remain for the specified duration at this point. After the specified time the next block will be executed. For example you can display text in the screen of your robot for exactly the time you specified in the »wait« block.
Settings and input values:
+
+- Number, waiting time in milliseconds.
+
»wait until ...«
With the block »wait until« you can "stop" your program at the point you insert the »wait until« block. Your program then waits until the condition is true. The »wait until« block you can extended by click on "+" symbol. Your program then waits until (at least) one of the condition of your »wait until« block is true.
Settings:
+
+- Add a new condition.
- Delete the last condition.
- Boolean value, »true« or »false«.
+
»wait until ...«
With the block »wait until« you can "stop" your program at the point you insert the »wait until« block. Your program then waits until the condition is true. The »wait until« block you can extended by click on "+" symbol. Your program then waits until (at least) one of the condition of your »wait until« block is true.
Settings:
+
+- Add a new condition.
- Delete the last condition.
- Boolean value, »true« or »false«.
+
»break out/continue with next iteration of loop«
With the block »break out/continue with next iteration of loop« a loop can be terminated ahead of schedule. As soon as the block is entered within a sequence of blocks, all further blocks up to the end of the loop will be ignored.
Settings:
+
+- Type of breaking behavior, »break out« or »continue with next iteration«.
+
»count with from to«
With the block »count with from to« you can run other block as many times as you like. All blocks in the »count with from to« block will be executed as long as the counting is in progress. The blocks are applied sequentially from top to bottom. Once the last block has been executed, the program repeats with the first block again if the counting is in progress. The last parameter declares the step width for counting.
Settings:
+
+- Variable, name of free choice; numbers of the counter will be delivered one after the other to the variable.
- Number, initial value of the counter.
- Number, final value of the counter. As the counter exceeds this value the loop ends.
- Number, defining the increment. The variable value will increase by this amount after every loop cycle.
- Blocks that will be executed in every loop cycle.
+
»for each item in list«
With the block »for each item in list« all list items will successively be bound to a variable. The variable can be used within the loop. With each loop cycle the next item of the list will be bound until all list elements have been processed.
Settings and input value:
+
+- Type of list elements, »Number«, »String«, »Boolean«, »Colour«, »Connection«
- Variable, name of free choice; list elements will be delivered one after the other to the variable.
- List that contains elements of the desired type. If the list elements are not of the correct type then the list will not fit to the input slot.
- Blocks which will be executed as often as there are elements in the list.
+
»repeat while/until«
With the block »repeat while/until« you can run other block as many times as you like. All blocks in the »repeat while/until« block will be executed as long as the condition in the entry field is true. The blocks are applied sequentially from top to bottom. Once the last block has been executed, the program repeats with the first block again if the condition is still true. Therefore, this block is also called »conditional loop«.
Settings and input values:
+
+- Option, »while« or »until«, defining the type of the conditional repetition.
- Boolean value, »true« or »false«.
- Blocks that will be repeated while/until the condition evaluates to »true«.
+
»comparison«
With the block »comparison« you can compare different parameters of the same type (number, color, logical value, text). This block can only be used in conjunction with another block which requires a logical value as an input parameter.
Settings and input values:
+
+- Value for the left hand side.
- Comparison, select one of =, ≠, <, ≤, >, ≥
- Value for the right hand side.
+
Return value:
+
+- Boolean value, »true« or »false«.
+
»and/or«
With the block »and/or« you can interrelate logical values with each other. The »and/or« block with the setting "and" will be true only if both logical parameters are "'true"'. If the block has the setting »or« it is sufficient if one of the two parameters is "true", so that the »and/or« block will return true.
Settings:
+
+- Boolean value on the left hand side.
- Boolean function, »and« or »or«.
- Boolean value on the right hand side.
+
Return value:
+
+- Boolean value »true« or»false«.
+
»true/false«
With the block »true/false« you can return either the logical value »true« or »false« to another block.
Settings:
+
+- Boolean value, make your choice.
+
Return value:
+
+- Boolean value, »true« or »false«.
+
»not«
Using the »not« lets you invert a logical value and pass this value to another block.
Input value:
+
+- Boolean value, to be inverted.
+
Return value:
+
+- Boolean value, »true« or »false«; result of inverting.
+
»test«
Using the »test« block will perform a test and returns a value which depends on the test result.
Input values:
+
+- Boolean value for the test; if no input value is given "true" will be assumed.
- Arbitrary value, evaluated by a block.
- Arbitrary value, evaluated by a block.
+
Return value:
+
+- Value of arbitrary type.
+
»null«
The block »null« is a place holder for an input value that is not yet specified. If for instance a new connection variable has been created and is not yet bound, the initial value of this connection will be set to »null«.
Return value::
+
+- Boolean value, »null«.
+
»parameter«
With the block »parameter« you can send numbers to another block.
Settings and input values:
+
Return value:
+
»calculating«
With the block »calculating« you can sum up, subtract, multiply, and divide numbers. This block can only be used in conjunction with another block which requires a number as an input parameter.
Settings and input values:
+
+- Number, first number on the left you want to calculate with.
- Option, mathematical operator, choose one of +, −, ×, ÷, ^.
- Number, second number on the right you want to calculate with.
+
Return value:
+
+- Number, result of the calculation.
+
»mathematical function«
With the block »mathematical function« some elementary mathematical functions may be calculated. Available functions are »square root«, »absolute«, »invert« (multiply by -1), »ln« (natural logarithm), »log10« (decadic logarithm), »e^« (exponential function), »10^« (base 10 exponent)
Settings and input value:
+
+- Option, mathematical function, choose one.
- Number to apply the function to.
+
Return value:
+
+- Number, result of the function application.
+
»trigonometric functions«
With the block »trigonometric function« sine, cosine, tangent and their respective revers functions can be calculated. Input values are expected in radian measure(see hint above).
Settings and input value:
+
+- Option, trigonometric function to choose from.
- Number, in radian measure.
+
Return value:
+
+- Number, result of the trigonometric calculation.
+
»constant«
With the »constant« block some mathematical constant values are available: »π« (3,1415...), »e« (2,718...), »φ« (1,618...), »sqrt(2)« (1,414...), »sqrt(½)« (0,7071...), »∞«
Settings:
+
+- Option, mathematical constants, choose one.
+
Return value:
+
+- Number, value of the selected mathematical constant. Infinity will return »infinity«.
+
»number property«
With the block »number property« you check whether a given number has a specific property: »even«, »odd«, »prime«, »whole«, »positive«, »negative«, »divisible by«.
Settings and input values:
+
+- Number, the property of this input value will be checked.
- Option, number property, choose one.
- Number, evaluated from a block. The second input value is only required for the property »divisible by«.
+
Return value:
+
+- Boolean value, »true« or »false«, depending on the selected property.
+
»change by ...«
The block »change by ... « increments a numerical variable by a defined value.
Settings and input values:
+
+- Variable name, which value is to be changed. Choose the variable to be changed.
- Number, given by a block.
+
»round«
With the block »round« values may be rounded. Rounding will set the decimal places to 0. It depends on the value of the decimal places whether the block rounds up or down. You may also decide by settings to always round up or down.
Settings and input value:
+
+- Type of rounding, choose a round mode.
- Number you want to round.
+
Return value:
+
+- Number, rounded whole number, according to the round mode.
+
»list evaluation«
With the block »list evaluation« you may analyse a list.
Modes for list evaluation:
+
+- sum - addition of all list values
- min - smallest value in the list
- max - largest value in the list
- average - average of all list values
- median - median of all list values
- standard deviation - standard deviation of all list values
- random item - one list value randomly selected
+
Settings and input value:
+
+- Mode of list evaluation, choose one mode.
- List of numbers
+
Return value:
+
+- Number, calculated according to the selected list evaluation mode.
+
»remainder of«
The block »remainder of« calculates a divison and returns the remainder of the division.
Input values:
+
+- Number to be divided (dividend).
- Number, divisor.
+
Return value:
+
+- Number, rest of the division.
+
»constrain«
The block »constrain« ensures that given boundaries will not be exceeded.
Input values:
+
+- Number, that will be constrained.
- Number, lower bound.
- Number, upper bound.
+
Return value:
+
+- Number, constrained by the lower and the upper bound.
+
»random integer«
With the block »random integer« you may generate random integer numbers within defined limits
Input values:
+
+- Number, lower bound
- Number, upper bound
+
Return value:
+
+- Number, a whole random number from within the upper and lower bounds.
+
»random fraction«
With the block »random fraction« a random value between 0.0 and 1.0 is calculated.
Return value:
+
+- Number, positive random value between 0.0 and 1.0.
+
»cast ... to String«
This block converts a number into a string containing that number. So for example the number 123 would be converted into the string »123«.
Options and input values:
+
+- Number, the number that you want to convert into a String containing this number.
+
Return value:
+
+- String, the string containing the selected number.
+
»cast ... to Char«
This block converts a single number to the corresponding ASCII letter. If there is no associated ASCII character for this number, an empty string is passed on. So for example the number 97 gets converted into the lower-case letter »a«.
Options and input values:
+
+- Number, the ASCII code that you want to convert into a character.
+
Return values:
+
+- String, a single character that corresponds to the selected ASCII number.
+
»text«
The simple »Text« block creates a little text.
Input value:
+
+- String, containing arbitrary characters.
+
Return value:
+
+- String, containing arbitrary characters.
+
»create text«
The »create text« block compiles a text from different input parameters. Using the + sign will insert further input slots. All input parameters will be connected one after the other. Essentially the »create text« block converts an arbitrary input value into a text string.
Input values:
+
+- Arbitrary values [numbers, text, logical values, colours)
+
Return value:
+
+- String, containing arbitrary characters, compiled sequentially from all input values.
+
»append text«
The »append text« block will append some string to a given string, for instance to extend a message with a signature.
Input values:
+
+- String, to which some other text will be appended.
- String, that shall be appended.
+
»cast ... to Number«
This block converts a string into a number if this is possible. So if a string contains only numbers, this block can convert the string into a number. If the block does not contain numbers, this block will pass »NaN« when used in th Open Roberta Lab simulation and may have a different behavior depending on the programming language of the robot you are currently using. If the string starts with numbers but then contains other characters that are not numbers, this block will pass only the numbers and stop as soon as the first character is in the string. So, as an example, this block makes the number 52 out of the string »52abcd«.
Options and input values:
+
+- String, the string you want to convert into a number.
+
Return values:
+
+- Number, the converted number.
+
»cast ... at index ... to Number«
This block converts a letter or a character from a character string into the corresponding ASCII number. Each character has an associated number in the ASCII table. For example, a lower-case »a« is converted into the number 97.
Options and input values:
+
+- String, from which a single character is selected.
- Number, the digit of the character to be converted. Note that the numbering starts at 0.
+
Return values:
+
+- Number, the ASCII number of to selected character. Number between 0 and 255.
+
»create list«
The block »empty list« creates a list with no content.The block »list« generates a list with some predefined values.
This block may only be used in the context of a »set variable« block.
Using »+« or »−« enables you to extend or reduce the list at its end.
Settings and input values:
+
+- List type, »Number«, »String«, »Boolean«, »Colour«, »Connection«.
- Create further list element, append to the end of the list.
- Delete list element at the end of the list.
- Values, according to the list type. Here the input of initial values is possible.
+
Return value:
+
+- Empty list or list, containing elements of the specified list type.
+
»repeat element in list«
The »repeat element in list« block generates a list of equal elements.
Settings and input values:
+
+- List type, »Number«, »Boolean«, »String«, »Colour« or »Connection«.
- List element, according to the selected list type. This value will be repeated in the list.
- Number, defining how often the list element will be repeated.
+
Return value:
+
+- List of the specified list type, containing the specified number of equal elements.
+
»length of«
The »length of« block returns a value which is the length of the list given as parameter. An empty list has a length of 0.
Input value:
+
+- List, evaluated by an appropriate block.
+
Return value:
+
+- Number, number of list elements.
+
»is empty«
A list given as parameter will be checked whether it is empty.
Input value:
+
+- List, evaluated by an appropriate block.
+
Return value:
+
+- Boolean, either »true« or »false«.
+
»find in list«
A list is searched for an item. If the item is in the list, the list position will be returned. If the item is not in the list the result is -1.
Settings and input values:
+
+- List, that will be examined.
- Position of the occurrence, either »first« or »last«.
- Value, list item to be found.
+
Return value:
+
+Number, indicating the position where the element was found in the list.
Note: Counting list positions will start with 0.
+
»get list element«
This block accesses an item of a list. Depending on the settings this item may be altered.
A list is given as parameter. Then a drop-down-list specifies what will happen to the list item under consideration.
Settings:
+
+- List, that is under consideration.
- Option, action for the element found: »get« reads the element and leaves it unchanged, »get and remove« reads the element and removes it from the list, »remove« just removes the element from the list.
- Option, position of the element found: »#«, »# from end«, »first«, »last« or »random« .
Number, indicating the list position. This input value is not required if »first«, »last« or »random« was selected as position.
Note: Counting of list positions starts with 0.
+
Return value:
+
+List element that has been found at the specified list position; »undefined«, if the list position does not exist.
With selection of »remove« there is no return value; instead the list will be shortened by this list element.
+
»set list element«
In a list given as input parameter one specified element will be replaced by a new value.
Settings and input values:
+
+- List, that will be changed.
- Option, action for the element found; »set« changes the element, »insert at« inserts a new element into the list.
- Option, position for the element to be changed: »#«, »# from end«, »first«, »last« or »random« .
- Number, indicating the list position. This input value is not required if »first«, »last« or »random« was selected.
Note: Counting of list positions begins with 0. - List element, that will be set or inserted at the selected list position.
+
»get sublist«
From a list given as parameter a sublist will be created. The sublist contains all those elements that match the further specifications of the block.
Settings and input values:
+
+- List to be examined.
- Position, start of the sublist: »#«, »# from end« or »first«.
Number, indicating the list position. This input value is not required if »first« has been selected.
Note: Counting of list positions starts with 0.
- Position, end of the sublist: »#«, »# from end« or »last«.
Number, indicating the list position. This input value is not required if »last« has been selected.
Note: Counting of list positions starts with 0.
+
Return value:
+
+- List, a sublist of the same type as the given list.
+
»Colour picker«
With this block you can choose from a pool of predefined colours for your robot.
options:
+
+- option, choose the colour you want to use.
+
Return value:
+
+- colour, your selected colour.
+
»Colour picker«
With this block you can choose from a pool of predefined colours for your robot.
options:
+
+- option, choose the colour you want to use.
+
Return value:
+
+- colour, your selected colour.
+
»Colour picker«
With this block you can choose from a pool of predefined colours for your robot.
options:
+
+- option, choose the colour you want to use.
+
Return value:
+
+- colour, your selected colour.
+
»Colour with red ... green ... blue ... white ...«
With this block you can create your own colour by mixing red, green and blue.
Input values:
+
+- number, the red part in your color. Value between 0 and 255.
- number, the green part in your color. Value between 0 and 255.
- number, the blue part in your color. Value between 0 and 255.
- number, the brightness of your color. Value between 0 and 255.
+
»Colour with red ... green ... blue ...«
With this block you can create your own colour by mixing red, green and blue.
Input values:
+
+- number, the red part in your color. Value between 0 and 255.
- number, the green part in your color. Value between 0 and 255.
- number, the blue part in your color. Value between 0 and 255.
+
»Colour with red ... green ... blue ...«
With this block you can create your own colour by mixing red, green and blue.
Input values:
+
+- number, the red part in your color. Value between 0 and 255.
- number, the green part in your color. Value between 0 and 255.
- number, the blue part in your color. Value between 0 and 255.
+
»set variable«
Using the block »set variable« will assign a value to a variable. Depending on the variable type the value may be assigned by an input connector.
Settings and input value:
+
+- Variable, which value is to be changed.
- Value, new value for the variable, evaluated from a suitable block.
+
»get variable«
Using the block »get variable« returns the value of a variable to another block.The type of the output parameter is equal to the type that has been assigned to the variable in the »start« block.
Settings:
+
+- Variable, that will be read. The value will not be changed by reading.
+
Return value:
+
+- Value, stored in the variable.
+
In a function block with/without input parameter and without return parameter a sequence of program statements will be condensed. The input parameters will be determined by the local variables of the function block. Local variables may be generated by using the »+« sign of the function block. Local variables will not be initialized.
If a function block contains an if-block the function may be terminated before reaching it's end.
The function block is available in the »Functions« category immediately after its definition. Using function blocks improves the readability of complex programs.
Settings:
+
+- Function name, no special characters and white spaces allowed.
- Generate new local variables, that will be assigned with the function call.
- Delete the associated local variable.
+
In a function block with/without input parameter and with return parameter a sequence of program statements will be condensed. The input parameters will be determined by the local variables of the function block. Local variables may be generated by using the »+« sign of the function block. Local variables will not be initialized. After running through all the blocks of the function a value will be returned.
If a function block contains an if-block the function may be terminated before reaching it's end. An alternative value may be returned by the if-block.
The function block is available in the »Functions« category immediately after its definition. Using function blocks improves the readability of complex programs.
Settings:
+
+- Function name, no special characters and white spaces allowed.
- Generate new local variables, that will be assigned with the function call.
- Delete the associated local variable.
- Data type for the return value; choose one data type.
- Block, that returns a value of the defined data type.
+
Return value:
+
+- Value of the defined data type, evaluated in an appropriate block.
+
»if block to be used within a function«
The if statement within a function is of special importance. As the function sequence meets an if statement the validity of the condition will be checked.
If statement within a function with return value:
- If the condition evaluates to »true« the rest of the function will be ignored and the function terminates. The second input value of the if statement will be returned. A possibly defined return value of the function will be ignored. The return value data type is determined by the return data type of the function definition.
- If the condition evaluates to »false« the sequence of the function blocks will be continued. The return value of the function will be returned after reaching the end of the function.
If statement within a function with no return value:
- An if statement within a function without return value has just the if statement as input parameter.
- If the condition evaluates to »true« the rest of the function will be ignored and the function terminates.
- If the condition evaluates to »false« the sequence of the function blocks will be continued.
Settings and input values:
+
+- Boolean value, possibly evaluated by a condition.
- Value of the specified data type.
+
Return value:
+
+- Value of the specified data type.
+
»function call without return value«
With this block you can call a previous defined function in your program.
Input values:
+
+- element, depending of the required input value of the function.
+
»function call with return value«
With this block you can call a previous defined function in your program.
Input values:
+
+- element, depending on the required input value of the function.
+
Return value:
+
+- element, depending on the return value of the function.
+
»create image«
You can use the block »create image« to create images, which can be displayed on the Calliope. Every single light is represented by a dot in the grid.
You can type in a number between 0 and 9 to adjust the brightness of the light or just a »#« to turn it on. Every empty field represents a turned off light.
Input value:
+
+- Number; brightness of the light in the grid, between 0 and 9.
+
»image«
By using the »image« block you can select predefined images.
Settings:
+
+- Image, predefined image.
+
»invert image«
An image will be inverted. Lightened LEDs of the calliope display will be switched of and vice versa.
Input value:
+
Return value:
+
+- Image, the inversion of the input image
+
»shift image ...«
An image will be shifted by some positions on the Calliope display. You may select the shift direction and the amount of shifting.
Input values and settings:
+
+- Image to be shifted
- Direction of shifting; up, down, left or right
- Number, amount for shifting
+
Return value:
+
»send message«
Using the »send message« block you can send a message, which can be received by every Calliope in reach.
Input value:
+
+- Text; message to be send
+
»receive message«
With the »receive message« block you can receive messages, sent by other calliopes in reach and »tell« them to another block.
Performing the »receive message« block the Calliope is not waiting for a message, so it wont receive a message, if none was sent. Instead, it will return a default value if you did not receive a message, wich is an unknown string, 0 or "false", depending on the secelted data type.
If you want to receive a string, but want to check if you really received a message, you need to store the unknown default value for your calliope mini first. To do that, just add a new variable at the beginning of your program and save a string message in it at the beginning of your program with this block. Like this, your calliope will save the unknown value in the variable and you can use it later to compare the messages you receive against it.
Return values:
+
+- message type, »String«.
+
»set channel to ... «
With this block you can set the channel of your Calliope mini. The Calliope mini can only send and receive messages on this channel, not on any others. So it is very important that two Calliope minis are set to the same channel for them to be able to communicate with one another.
Input values:
+
+- number, the channel for your Calliope mini.
+
\ No newline at end of file
diff --git a/OpenRobertaServer/staticResources/js/app/configVisualization/const.robots.js b/OpenRobertaServer/staticResources/js/app/configVisualization/const.robots.js
index 8e9b92d877..8fcd178be6 100644
--- a/OpenRobertaServer/staticResources/js/app/configVisualization/const.robots.js
+++ b/OpenRobertaServer/staticResources/js/app/configVisualization/const.robots.js
@@ -1,3 +1,3 @@
-define(["require","exports"],(function(o,i){Object.defineProperty(i,"__esModule",{value:!0}),i.ROBOTS=void 0;var n={ports:[{name:"motor A",position:{x:153.8,y:210}},{name:"motor B",position:{x:145,y:209}},{name:"ultrasonic 1",position:{x:245.7,y:79.5}},{name:"callibot2",position:{x:73,y:79.5}},{name:"0",position:{x:16.5,y:139.2}},{name:"1",position:{x:88,y:262}},{name:"2",position:{x:229.5,y:262}},{name:"3",position:{x:301,y:139.2}},{name:"4",position:{x:73,y:79.5}},{name:"A0",position:{x:73,y:79.5}},{name:"5",position:{x:245.7,y:79.5}},{name:"A1",position:{x:245.7,y:79.5}},{name:"C04",position:{x:130.8,y:237}},{name:"C05",position:{x:130.8,y:227.3}},{name:"C06",position:{x:140.5,y:237}},{name:"C07",position:{x:140.5,y:227.3}},{name:"C08",position:{x:150,y:237}},{name:"C09",position:{x:150,y:227.3}},{name:"C10",position:{x:169.5,y:237}},{name:"C11",position:{x:169.5,y:227.3}},{name:"C12",position:{x:179,y:237}},{name:"C16",position:{x:198.5,y:237}},{name:"C17",position:{x:198.5,y:227.3}},{name:"C18",position:{x:208,y:237}},{name:"C19",position:{x:208,y:227.3}},{name:"3V",position:{x:88,y:16}},{name:"GND",position:{x:229.5,y:16}},{name:"A",position:{x:57.5,y:114.3}},{name:"B",position:{x:260.5,y:114.3}},{name:"buzzer",position:{x:253.7,y:155}},{name:"rgbledh",position:{x:159.5,y:172}},{name:"light",position:{x:158.5,y:102.7}},{name:"temperature",position:{x:116.5,y:178.5}},{name:"accelerometer",position:{x:86,y:130.3}},{name:"compass",position:{x:91.5,y:130.3}},{name:"gyro",position:{x:97,y:130.3}},{name:"sound",position:{x:214,y:90.2}}],width:"322px",height:"283px"};i.ROBOTS={arduino_mega:{ports:[{name:"LED_BUILTIN",position:{x:161.2,y:9.5}},{name:"SCL",position:{x:114.1,y:9.5}},{name:"SDA",position:{x:125.9,y:9.5}},{name:"AREF",position:{x:137.7,y:9.5}},{name:"GND",position:{x:149.4,y:9.5}},{name:"13",position:{x:161.2,y:9.5}},{name:"12",position:{x:173,y:9.5}},{name:"11",position:{x:184.7,y:9.5}},{name:"10",position:{x:196.5,y:9.5}},{name:"9",position:{x:208.3,y:9.5}},{name:"8",position:{x:220,y:9.5}},{name:"7",position:{x:238.9,y:9.5}},{name:"6",position:{x:250.7,y:9.5}},{name:"5",position:{x:262.4,y:9.5}},{name:"4",position:{x:274.2,y:9.5}},{name:"3",position:{x:286,y:9.5}},{name:"2",position:{x:297.7,y:9.5}},{name:"1",position:{x:309.5,y:9.5}},{name:"0",position:{x:321.3,y:9.5}},{name:"14",position:{x:344.8,y:9.5}},{name:"15",position:{x:356.6,y:9.5}},{name:"16",position:{x:368.3,y:9.5}},{name:"17",position:{x:380.1,y:9.5}},{name:"18",position:{x:391.8,y:9.5}},{name:"19",position:{x:403.6,y:9.5}},{name:"20",position:{x:415.4,y:9.5}},{name:"21",position:{x:427.2,y:9.5}},{name:"5V",position:{x:462.4,y:9.5}},{name:"5V",position:{x:474.2,y:9.5}},{name:"22",position:{x:462.4,y:21.3}},{name:"24",position:{x:462.4,y:33}},{name:"26",position:{x:462.4,y:44.8}},{name:"28",position:{x:462.4,y:56.6}},{name:"30",position:{x:462.4,y:68.3}},{name:"32",position:{x:462.4,y:80.1}},{name:"34",position:{x:462.4,y:91.9}},{name:"36",position:{x:462.4,y:103.6}},{name:"38",position:{x:462.4,y:115.4}},{name:"40",position:{x:462.4,y:127.2}},{name:"42",position:{x:462.4,y:138.9}},{name:"44",position:{x:462.4,y:150.7}},{name:"46",position:{x:462.4,y:167.5}},{name:"48",position:{x:462.4,y:174.2}},{name:"50",position:{x:462.4,y:186}},{name:"53",position:{x:462.4,y:197.8}},{name:"23",position:{x:474.2,y:21.3}},{name:"25",position:{x:474.2,y:33}},{name:"27",position:{x:474.2,y:44.8}},{name:"29",position:{x:474.2,y:56.6}},{name:"31",position:{x:474.2,y:68.3}},{name:"33",position:{x:474.2,y:80.1}},{name:"35",position:{x:474.2,y:91.9}},{name:"37",position:{x:474.2,y:103.6}},{name:"39",position:{x:474.2,y:115.4}},{name:"41",position:{x:474.2,y:127.2}},{name:"43",position:{x:474.2,y:138.9}},{name:"45",position:{x:474.2,y:150.7}},{name:"47",position:{x:474.2,y:167.5}},{name:"49",position:{x:474.2,y:174.2}},{name:"51",position:{x:474.2,y:186}},{name:"53",position:{x:474.2,y:197.8}},{name:"GND",position:{x:462.4,y:209.5}},{name:"GND",position:{x:474.2,y:209.5}},{name:"NOTUSER",position:{x:156.5,y:233}},{name:"IOREF",position:{x:168.3,y:233}},{name:"RESET",position:{x:180,y:233}},{name:"3,3V",position:{x:191.8,y:233}},{name:"5V",position:{x:203.6,y:233}},{name:"GND",position:{x:215.3,y:233}},{name:"GND",position:{x:227.1,y:233}},{name:"Vin",position:{x:238.9,y:233}},{name:"A0",position:{x:262.4,y:233}},{name:"A1",position:{x:274.2,y:233}},{name:"A2",position:{x:285.9,y:233}},{name:"A3",position:{x:297.7,y:233}},{name:"A4",position:{x:309.5,y:233}},{name:"A5",position:{x:321.2,y:233}},{name:"A6",position:{x:333,y:233}},{name:"A7",position:{x:344.8,y:233}},{name:"A8",position:{x:368.3,y:233}},{name:"A9",position:{x:380,y:233}},{name:"A10",position:{x:391.8,y:233}},{name:"A11",position:{x:403.6,y:233}},{name:"A12",position:{x:415.3,y:233}},{name:"A13",position:{x:427.1,y:233}},{name:"A14",position:{x:438.9,y:233}},{name:"A15",position:{x:450.6,y:233}}],width:"500px",height:"247px"},arduino_nano:{ports:[{name:"LED_BUILTIN",position:{x:28.9,y:91.4}},{name:"RESET",position:{x:200.3,y:5.6}},{name:"GND",position:{x:186.1,y:5.6}},{name:"0",position:{x:214.6,y:5.6}},{name:"1",position:{x:228.9,y:5.6}},{name:"2",position:{x:171.8,y:5.6}},{name:"3",position:{x:157.5,y:5.6}},{name:"4",position:{x:143.2,y:5.6}},{name:"5",position:{x:128.9,y:5.6}},{name:"6",position:{x:114.6,y:5.6}},{name:"7",position:{x:100.3,y:5.6}},{name:"8",position:{x:86.1,y:5.6}},{name:"9",position:{x:71.8,y:5.6}},{name:"10",position:{x:57.5,y:5.6}},{name:"11",position:{x:43.2,y:5.6}},{name:"12",position:{x:28.9,y:5.6}},{name:"VIN",position:{x:228.9,y:91.4}},{name:"GND",position:{x:214.6,y:91.4}},{name:"RESET",position:{x:200.3,y:91.4}},{name:"5V",position:{x:186.1,y:91.4}},{name:"A7",position:{x:171.8,y:91.4}},{name:"A6",position:{x:157.5,y:91.4}},{name:"A5",position:{x:143.2,y:91.4}},{name:"A4",position:{x:128.9,y:91.4}},{name:"A3",position:{x:114.6,y:91.4}},{name:"A2",position:{x:100.3,y:91.4}},{name:"A1",position:{x:86.1,y:91.4}},{name:"A0",position:{x:71.8,y:91.4}},{name:"REF",position:{x:57.5,y:91.4}},{name:"3V3",position:{x:43.2,y:91.4}},{name:"13",position:{x:28.9,y:91.4}}],width:"253px",height:"100px"},nano33ble:{ports:[{name:"LED_BUILTIN",position:{x:28.9,y:91.4}},{name:"RESET",position:{x:200.3,y:5.6}},{name:"GND",position:{x:186.1,y:5.6}},{name:"lsm9ds1",position:{x:85,y:40}},{name:"apds9960",position:{x:92,y:47}},{name:"lps22hb",position:{x:99,y:54}},{name:"hts221",position:{x:106,y:61}},{name:"TX1",position:{x:228.9,y:5.6}},{name:"RX0",position:{x:214.6,y:5.6}},{name:"0",position:{x:214.6,y:5.6}},{name:"1",position:{x:228.9,y:5.6}},{name:"2",position:{x:171.8,y:5.6}},{name:"3",position:{x:157.5,y:5.6}},{name:"4",position:{x:143.2,y:5.6}},{name:"5",position:{x:128.9,y:5.6}},{name:"6",position:{x:114.6,y:5.6}},{name:"7",position:{x:100.3,y:5.6}},{name:"8",position:{x:86.1,y:5.6}},{name:"9",position:{x:71.8,y:5.6}},{name:"10",position:{x:57.5,y:5.6}},{name:"11",position:{x:43.2,y:5.6}},{name:"12",position:{x:28.9,y:5.6}},{name:"VIN",position:{x:228.9,y:91.4}},{name:"GND",position:{x:214.6,y:91.4}},{name:"RESET",position:{x:200.3,y:91.4}},{name:"5V",position:{x:186.1,y:91.4}},{name:"A7",position:{x:171.8,y:91.4}},{name:"A6",position:{x:157.5,y:91.4}},{name:"A5",position:{x:143.2,y:91.4}},{name:"A4",position:{x:128.9,y:91.4}},{name:"A3",position:{x:114.6,y:91.4}},{name:"A2",position:{x:100.3,y:91.4}},{name:"A1",position:{x:86.1,y:91.4}},{name:"A0",position:{x:71.8,y:91.4}},{name:"REF",position:{x:57.5,y:91.4}},{name:"3V3",position:{x:43.2,y:91.4}},{name:"13",position:{x:28.9,y:91.4}}],width:"253px",height:"100px"},arduino_uno:{ports:[{name:"LED_BUILTIN",position:{x:131.5,y:7.8}},{name:"SCL",position:{x:93,y:7.8}},{name:"SDA",position:{x:102.6,y:7.8}},{name:"AREF",position:{x:112.2,y:7.8}},{name:"GND",position:{x:121.9,y:7.8}},{name:"13",position:{x:131.5,y:7.8}},{name:"12",position:{x:141.1,y:7.8}},{name:"11",position:{x:150.7,y:7.8}},{name:"10",position:{x:160.3,y:7.8}},{name:"9",position:{x:169.9,y:7.8}},{name:"8",position:{x:179.6,y:7.8}},{name:"7",position:{x:195,y:7.8}},{name:"6",position:{x:204.7,y:7.8}},{name:"5",position:{x:214.3,y:7.8}},{name:"4",position:{x:223.9,y:7.8}},{name:"3",position:{x:233.5,y:7.8}},{name:"2",position:{x:243.1,y:7.8}},{name:"1",position:{x:252.8,y:7.8}},{name:"0",position:{x:262.4,y:7.8}},{name:"NOTUSER",position:{x:127.7,y:190.5}},{name:"IOREF",position:{x:137.3,y:190.5}},{name:"RESET",position:{x:146.9,y:190.5}},{name:"3,3V",position:{x:156.6,y:190.5}},{name:"5V",position:{x:166.2,y:190.5}},{name:"GND",position:{x:175.8,y:190.5}},{name:"GND",position:{x:185.4,y:190.5}},{name:"Vin",position:{x:195,y:190.5}},{name:"A0",position:{x:214.3,y:190.5}},{name:"A1",position:{x:223.9,y:190.5}},{name:"A2",position:{x:233.5,y:190.5}},{name:"A3",position:{x:243.1,y:190.5}},{name:"A4",position:{x:252.8,y:190.5}},{name:"A5",position:{x:262.4,y:190.5}}],width:"283px",height:"202px"},arduino_unowifirev2:{ports:[{name:"SCL",position:{x:93,y:7.8}},{name:"SDA",position:{x:102.6,y:7.8}},{name:"AREF",position:{x:112.2,y:7.8}},{name:"GND",position:{x:121.9,y:7.8}},{name:"13",position:{x:131.5,y:7.8}},{name:"12",position:{x:141.1,y:7.8}},{name:"11",position:{x:150.7,y:7.8}},{name:"10",position:{x:160.3,y:7.8}},{name:"9",position:{x:169.9,y:7.8}},{name:"8",position:{x:179.6,y:7.8}},{name:"7",position:{x:195,y:7.8}},{name:"6",position:{x:204.7,y:7.8}},{name:"5",position:{x:214.3,y:7.8}},{name:"4",position:{x:223.9,y:7.8}},{name:"3",position:{x:233.5,y:7.8}},{name:"2",position:{x:243.1,y:7.8}},{name:"1",position:{x:252.8,y:7.8}},{name:"0",position:{x:262.4,y:7.8}},{name:"NOTUSER",position:{x:127.7,y:190.5}},{name:"IOREF",position:{x:137.3,y:190.5}},{name:"RESET",position:{x:146.9,y:190.5}},{name:"3,3V",position:{x:156.6,y:190.5}},{name:"5V",position:{x:166.2,y:190.5}},{name:"GND",position:{x:175.8,y:190.5}},{name:"GND",position:{x:185.4,y:190.5}},{name:"Vin",position:{x:195,y:190.5}},{name:"A0",position:{x:214.3,y:190.5}},{name:"A1",position:{x:223.9,y:190.5}},{name:"A2",position:{x:233.5,y:190.5}},{name:"A3",position:{x:243.1,y:190.5}},{name:"A4",position:{x:252.8,y:190.5}},{name:"A5",position:{x:262.4,y:190.5}}],width:"283px",height:"202px"},calliope_calliope2017:n,calliope_calliope2017NoBlue:n,calliope_calliope2016:n,calliope_calliopev3:{ports:[{name:"motor A",position:{x:235.5,y:244}},{name:"motor B",position:{x:235.5,y:233}},{name:"ultrasonic 1",position:{x:280,y:91}},{name:"callibot2",position:{x:82,y:91}},{name:"0",position:{x:17,y:159}},{name:"1",position:{x:99,y:301}},{name:"2",position:{x:262,y:301}},{name:"3",position:{x:343,y:159}},{name:"4",position:{x:82,y:91}},{name:"A0",position:{x:82,y:91}},{name:"5",position:{x:280,y:91}},{name:"A1",position:{x:280,y:91}},{name:"C04",position:{x:138,y:244}},{name:"C05",position:{x:138,y:233}},{name:"C06",position:{x:149.2,y:244}},{name:"C07",position:{x:149.2,y:233}},{name:"C08",position:{x:160.5,y:244}},{name:"C09",position:{x:160.5,y:233}},{name:"C10",position:{x:182,y:244}},{name:"C11",position:{x:182,y:233}},{name:"C12",position:{x:192.2,y:244}},{name:"C16",position:{x:214,y:244}},{name:"C17",position:{x:214,y:233}},{name:"C18",position:{x:224.5,y:244}},{name:"C19",position:{x:224.5,y:233}},{name:"3V",position:{x:100,y:18}},{name:"GND",position:{x:262,y:18}},{name:"A",position:{x:63,y:135}},{name:"B",position:{x:298,y:135}},{name:"buzzer",position:{x:248,y:163}},{name:"rgbledh",position:{x:179,y:192}},{name:"rgbledh",position:{x:200,y:192}},{name:"rgbledh",position:{x:157,y:192}},{name:"light",position:{x:179,y:129}},{name:"temperature",position:{x:110,y:175}},{name:"accelerometer",position:{x:101,y:130.3}},{name:"compass",position:{x:106.5,y:130.3}},{name:"gyro",position:{x:113,y:130.3}},{name:"sound",position:{x:300,y:171}},{name:"logotouch",position:{x:78,y:60}}],width:"366px",height:"324px"},microbit:{ports:[{name:"0",position:{x:15,y:167}},{name:"1",position:{x:57.3,y:167}},{name:"2",position:{x:103.7,y:167}},{name:"3",position:{x:1.5,y:167}},{name:"4",position:{x:27.9,y:167}},{name:"5",position:{x:33.1,y:167}},{name:"6",position:{x:38.3,y:167}},{name:"7",position:{x:43.5,y:167}},{name:"8",position:{x:69.5,y:167}},{name:"9",position:{x:74.7,y:167}},{name:"10",position:{x:79.9,y:167}},{name:"11",position:{x:85.1,y:167}},{name:"12",position:{x:90.3,y:167}},{name:"13",position:{x:116.2,y:167}},{name:"14",position:{x:121.4,y:167}},{name:"15",position:{x:126.6,y:167}},{name:"16",position:{x:131.8,y:167}},{name:"19",position:{x:168,y:167}},{name:"20",position:{x:173.2,y:167}},{name:"3V",position:{x:150,y:167}},{name:"GND",position:{x:191.8,y:167}},{name:"A",position:{x:20.8,y:86.7}},{name:"B",position:{x:187.7,y:86.7}},{name:"light",position:{x:103.7,y:90}},{name:"temperature",position:{x:262,y:48.2}},{name:"accelerometer",position:{x:238.2,y:99.5}},{name:"compass",position:{x:238.2,y:104.7}}],width:"435px",height:"172px"},microbitv2:{ports:[{name:"0",position:{x:16,y:163}},{name:"1",position:{x:58.3,y:163}},{name:"2",position:{x:104,y:163}},{name:"3",position:{x:3,y:163}},{name:"4",position:{x:28.9,y:167}},{name:"5",position:{x:34.1,y:167}},{name:"6",position:{x:39.3,y:167}},{name:"7",position:{x:44.5,y:167}},{name:"8",position:{x:69.5,y:167}},{name:"9",position:{x:74.7,y:167}},{name:"10",position:{x:79.9,y:167}},{name:"11",position:{x:85.1,y:167}},{name:"12",position:{x:90.3,y:167}},{name:"13",position:{x:116.2,y:167}},{name:"14",position:{x:121.4,y:167}},{name:"15",position:{x:126.6,y:167}},{name:"16",position:{x:131.8,y:167}},{name:"19",position:{x:168,y:167}},{name:"20",position:{x:173.2,y:167}},{name:"3V",position:{x:150,y:163}},{name:"GND",position:{x:191.8,y:163}},{name:"A",position:{x:20.8,y:83.7}},{name:"B",position:{x:187.7,y:83.7}},{name:"light",position:{x:103.7,y:87}},{name:"temperature",position:{x:265,y:70.2}},{name:"accelerometer",position:{x:251.2,y:117.5}},{name:"compass",position:{x:251.2,y:122.7}},{name:"sound",position:{x:134,y:37}},{name:"buzzer",position:{x:323,y:87}},{name:"logotouch",position:{x:103.7,y:29}}],width:"435px",height:"172px"},sensebox:{ports:[{name:"1",position:{x:151,y:104}},{name:"2",position:{x:160,y:104}},{name:"3",position:{x:151,y:63}},{name:"4",position:{x:160,y:63}},{name:"5",position:{x:151,y:21}},{name:"6",position:{x:160,y:21}},{name:"7",position:{x:22,y:117}},{name:"8",position:{x:14,y:117}},{name:"XBEE1",position:{x:73,y:203}},{name:"XBEE2",position:{x:320,y:203}},{name:"I2C",position:{x:323,y:21}},{name:"I2C",position:{x:289,y:63}},{name:"I2C",position:{x:354,y:63}},{name:"I2C",position:{x:289,y:104}},{name:"I2C",position:{x:354,y:104}},{name:"Serial1",position:{x:220,y:105}},{name:"Serial2",position:{x:220,y:63}},{name:"GND",position:{x:133,y:104}},{name:"GND",position:{x:133,y:63}},{name:"GND",position:{x:133,y:21}},{name:"GND",position:{x:50,y:21}},{name:"5V",position:{x:141,y:104}},{name:"5V",position:{x:141,y:63}},{name:"5V",position:{x:141,y:21}},{name:"5V",position:{x:59,y:21}},{name:"accelerometer",position:{x:187,y:207}},{name:"sensebox",position:{x:187,y:207}}],width:"398px",height:"303px"},mbot2:{ports:[{name:"EM1",position:{x:140,y:340}},{name:"EM2",position:{x:185,y:340}},{name:"A",position:{x:212,y:262}},{name:"B",position:{x:212,y:306}},{name:"mbuild_port",position:{x:250,y:69}},{name:"S1",position:{x:7,y:110}},{name:"S2",position:{x:7,y:138}},{name:"S3",position:{x:250,y:138}},{name:"S4",position:{x:250,y:110}},{name:"M1",position:{x:60,y:340}},{name:"M2",position:{x:80,y:340}},{name:"joystick",position:{x:35,y:285}},{name:"buzzer",position:{x:235,y:340}},{name:"accelerometer",position:{x:108,y:238}},{name:"rgbled",position:{x:116,y:340}},{name:"light",position:{x:49,y:246}},{name:"sound",position:{x:66,y:246}},{name:"gyro",position:{x:158,y:238}},{name:"lcd",position:{x:128,y:288}}],width:"263px",height:"343px"},robotino:{ports:[{name:"DI1",position:{x:174.75,y:202.425}},{name:"DI2",position:{x:171.45,y:202.895}},{name:"DI3",position:{x:168.15,y:203.365}},{name:"DI4",position:{x:164.85,y:203.835}},{name:"DI5",position:{x:161.55,y:204.305}},{name:"DI6",position:{x:158.25,y:204.775}},{name:"DI7",position:{x:154.95,y:205.245}},{name:"DI8",position:{x:151.65,y:205.725}},{name:"AI1",position:{x:98.55,y:214.65}},{name:"AI2",position:{x:95.25,y:215.2}},{name:"AI3",position:{x:91.95,y:215.75}},{name:"AI4",position:{x:88.65,y:216.3}},{name:"AI5",position:{x:85.35,y:216.85}},{name:"AI6",position:{x:82.05,y:217.4}},{name:"AI7",position:{x:78.75,y:217.95}},{name:"AI8",position:{x:75.6,y:218.475}},{name:"M1",position:{x:129,y:146.625}},{name:"M2",position:{x:238.5,y:340.125}},{name:"M3",position:{x:349.5,y:146.625}},{name:"camera",position:{x:209.625,y:153.075}},{name:"odometry",position:{x:238.5,y:207.375}},{name:"infrared",position:{x:110.25,y:59.25}},{name:"touch",position:{x:372.825,y:59.25}}],width:"483.12px",height:"424.125px"},spike:{ports:[{name:"A",position:{x:0,y:105}},{name:"B",position:{x:210,y:105}},{name:"C",position:{x:0,y:168}},{name:"D",position:{x:210,y:168}},{name:"E",position:{x:0,y:229}},{name:"F",position:{x:210,y:229}},{name:"display",position:{x:105,y:168}},{name:"LEFT",position:{x:35,y:292}},{name:"RIGHT",position:{x:176,y:292}},{name:"buzzer",position:{x:105,y:340}},{name:"gyro",position:{x:130,y:70}},{name:"rgbled",position:{x:105,y:292}}],width:"217px",height:"342px"},joycar:{ports:[{name:"SERVO1",position:{x:141,y:204}},{name:"SERVO2",position:{x:154,y:204}},{name:"SPEED_L",position:{x:174,y:204}},{name:"SPEED_R",position:{x:187,y:204}},{name:"OBSTCL_L",position:{x:208,y:204}},{name:"OBSTCL_R",position:{x:221,y:204}},{name:"LINE_TRK_L",position:{x:240,y:204}},{name:"LINE_TRK_M",position:{x:253,y:204}},{name:"LINE_TRK_R",position:{x:266,y:204}},{name:"B0",position:{x:62,y:217}},{name:"B2",position:{x:74,y:217}},{name:"B4",position:{x:87,y:217}},{name:"B6",position:{x:100,y:217}},{name:"US",position:{x:121,y:217}},{name:"MOT_R",position:{x:28,y:58}},{name:"MOT_L",position:{x:385,y:58}},{name:"A",position:{x:74,y:58}},{name:"temperature",position:{x:111,y:58}},{name:"accelerometer",position:{x:149,y:58}},{name:"compass",position:{x:186,y:58}},{name:"sound",position:{x:224,y:58}},{name:"light",position:{x:262,y:58}},{name:"logotouch",position:{x:299,y:58}},{name:"B",position:{x:338,y:58}},{name:"buzzer",position:{x:28.5,y:125}}],width:"417px",height:"272px"},txt4:{ports:[{name:"EXT",position:{x:2,y:65}},{name:"I1",position:{x:22,y:77}},{name:"I2",position:{x:22,y:98}},{name:"I3",position:{x:22,y:119}},{name:"I4",position:{x:22,y:140}},{name:"I5",position:{x:22,y:162}},{name:"I6",position:{x:22,y:183}},{name:"I7",position:{x:22,y:204}},{name:"I8",position:{x:22,y:225}},{name:"M1",position:{x:228,y:77}},{name:"M2",position:{x:228,y:98}},{name:"M3",position:{x:228,y:119}},{name:"M4",position:{x:228,y:140}},{name:"C1",position:{x:228,y:162}},{name:"C2",position:{x:228,y:183}},{name:"C3",position:{x:228,y:204}},{name:"C4",position:{x:228,y:225}},{name:"USB1",position:{x:71,y:1}},{name:"USB2",position:{x:160,y:1}},{name:"9V",position:{x:64.5,y:225}},{name:"display",position:{x:126,y:118}}],width:"255px",height:"255px"}}}));
+define(["require","exports"],(function(o,i){Object.defineProperty(i,"__esModule",{value:!0}),i.ROBOTS=void 0;var n={ports:[{name:"motor A",position:{x:153.8,y:210}},{name:"motor B",position:{x:145,y:209}},{name:"ultrasonic 1",position:{x:245.7,y:79.5}},{name:"callibot2",position:{x:73,y:79.5}},{name:"0",position:{x:16.5,y:139.2}},{name:"1",position:{x:88,y:262}},{name:"2",position:{x:229.5,y:262}},{name:"3",position:{x:301,y:139.2}},{name:"4",position:{x:73,y:79.5}},{name:"A0",position:{x:73,y:79.5}},{name:"5",position:{x:245.7,y:79.5}},{name:"A1",position:{x:245.7,y:79.5}},{name:"C04",position:{x:130.8,y:237}},{name:"C05",position:{x:130.8,y:227.3}},{name:"C06",position:{x:140.5,y:237}},{name:"C07",position:{x:140.5,y:227.3}},{name:"C08",position:{x:150,y:237}},{name:"C09",position:{x:150,y:227.3}},{name:"C10",position:{x:169.5,y:237}},{name:"C11",position:{x:169.5,y:227.3}},{name:"C12",position:{x:179,y:237}},{name:"C16",position:{x:198.5,y:237}},{name:"C17",position:{x:198.5,y:227.3}},{name:"C18",position:{x:208,y:237}},{name:"C19",position:{x:208,y:227.3}},{name:"3V",position:{x:88,y:16}},{name:"GND",position:{x:229.5,y:16}},{name:"A",position:{x:57.5,y:114.3}},{name:"B",position:{x:260.5,y:114.3}},{name:"buzzer",position:{x:253.7,y:155}},{name:"rgbledh",position:{x:159.5,y:172}},{name:"light",position:{x:158.5,y:102.7}},{name:"temperature",position:{x:116.5,y:178.5}},{name:"accelerometer",position:{x:86,y:130.3}},{name:"compass",position:{x:91.5,y:130.3}},{name:"gyro",position:{x:97,y:130.3}},{name:"sound",position:{x:214,y:90.2}}],width:"322px",height:"283px"};i.ROBOTS={arduino_mega:{ports:[{name:"LED_BUILTIN",position:{x:161.2,y:9.5}},{name:"SCL",position:{x:114.1,y:9.5}},{name:"SDA",position:{x:125.9,y:9.5}},{name:"AREF",position:{x:137.7,y:9.5}},{name:"GND",position:{x:149.4,y:9.5}},{name:"13",position:{x:161.2,y:9.5}},{name:"12",position:{x:173,y:9.5}},{name:"11",position:{x:184.7,y:9.5}},{name:"10",position:{x:196.5,y:9.5}},{name:"9",position:{x:208.3,y:9.5}},{name:"8",position:{x:220,y:9.5}},{name:"7",position:{x:238.9,y:9.5}},{name:"6",position:{x:250.7,y:9.5}},{name:"5",position:{x:262.4,y:9.5}},{name:"4",position:{x:274.2,y:9.5}},{name:"3",position:{x:286,y:9.5}},{name:"2",position:{x:297.7,y:9.5}},{name:"1",position:{x:309.5,y:9.5}},{name:"0",position:{x:321.3,y:9.5}},{name:"14",position:{x:344.8,y:9.5}},{name:"15",position:{x:356.6,y:9.5}},{name:"16",position:{x:368.3,y:9.5}},{name:"17",position:{x:380.1,y:9.5}},{name:"18",position:{x:391.8,y:9.5}},{name:"19",position:{x:403.6,y:9.5}},{name:"20",position:{x:415.4,y:9.5}},{name:"21",position:{x:427.2,y:9.5}},{name:"5V",position:{x:462.4,y:9.5}},{name:"5V",position:{x:474.2,y:9.5}},{name:"22",position:{x:462.4,y:21.3}},{name:"24",position:{x:462.4,y:33}},{name:"26",position:{x:462.4,y:44.8}},{name:"28",position:{x:462.4,y:56.6}},{name:"30",position:{x:462.4,y:68.3}},{name:"32",position:{x:462.4,y:80.1}},{name:"34",position:{x:462.4,y:91.9}},{name:"36",position:{x:462.4,y:103.6}},{name:"38",position:{x:462.4,y:115.4}},{name:"40",position:{x:462.4,y:127.2}},{name:"42",position:{x:462.4,y:138.9}},{name:"44",position:{x:462.4,y:150.7}},{name:"46",position:{x:462.4,y:167.5}},{name:"48",position:{x:462.4,y:174.2}},{name:"50",position:{x:462.4,y:186}},{name:"53",position:{x:462.4,y:197.8}},{name:"23",position:{x:474.2,y:21.3}},{name:"25",position:{x:474.2,y:33}},{name:"27",position:{x:474.2,y:44.8}},{name:"29",position:{x:474.2,y:56.6}},{name:"31",position:{x:474.2,y:68.3}},{name:"33",position:{x:474.2,y:80.1}},{name:"35",position:{x:474.2,y:91.9}},{name:"37",position:{x:474.2,y:103.6}},{name:"39",position:{x:474.2,y:115.4}},{name:"41",position:{x:474.2,y:127.2}},{name:"43",position:{x:474.2,y:138.9}},{name:"45",position:{x:474.2,y:150.7}},{name:"47",position:{x:474.2,y:167.5}},{name:"49",position:{x:474.2,y:174.2}},{name:"51",position:{x:474.2,y:186}},{name:"53",position:{x:474.2,y:197.8}},{name:"GND",position:{x:462.4,y:209.5}},{name:"GND",position:{x:474.2,y:209.5}},{name:"NOTUSER",position:{x:156.5,y:233}},{name:"IOREF",position:{x:168.3,y:233}},{name:"RESET",position:{x:180,y:233}},{name:"3,3V",position:{x:191.8,y:233}},{name:"5V",position:{x:203.6,y:233}},{name:"GND",position:{x:215.3,y:233}},{name:"GND",position:{x:227.1,y:233}},{name:"Vin",position:{x:238.9,y:233}},{name:"A0",position:{x:262.4,y:233}},{name:"A1",position:{x:274.2,y:233}},{name:"A2",position:{x:285.9,y:233}},{name:"A3",position:{x:297.7,y:233}},{name:"A4",position:{x:309.5,y:233}},{name:"A5",position:{x:321.2,y:233}},{name:"A6",position:{x:333,y:233}},{name:"A7",position:{x:344.8,y:233}},{name:"A8",position:{x:368.3,y:233}},{name:"A9",position:{x:380,y:233}},{name:"A10",position:{x:391.8,y:233}},{name:"A11",position:{x:403.6,y:233}},{name:"A12",position:{x:415.3,y:233}},{name:"A13",position:{x:427.1,y:233}},{name:"A14",position:{x:438.9,y:233}},{name:"A15",position:{x:450.6,y:233}}],width:"500px",height:"247px"},arduino_nano:{ports:[{name:"LED_BUILTIN",position:{x:28.9,y:91.4}},{name:"RESET",position:{x:200.3,y:5.6}},{name:"GND",position:{x:186.1,y:5.6}},{name:"0",position:{x:214.6,y:5.6}},{name:"1",position:{x:228.9,y:5.6}},{name:"2",position:{x:171.8,y:5.6}},{name:"3",position:{x:157.5,y:5.6}},{name:"4",position:{x:143.2,y:5.6}},{name:"5",position:{x:128.9,y:5.6}},{name:"6",position:{x:114.6,y:5.6}},{name:"7",position:{x:100.3,y:5.6}},{name:"8",position:{x:86.1,y:5.6}},{name:"9",position:{x:71.8,y:5.6}},{name:"10",position:{x:57.5,y:5.6}},{name:"11",position:{x:43.2,y:5.6}},{name:"12",position:{x:28.9,y:5.6}},{name:"VIN",position:{x:228.9,y:91.4}},{name:"GND",position:{x:214.6,y:91.4}},{name:"RESET",position:{x:200.3,y:91.4}},{name:"5V",position:{x:186.1,y:91.4}},{name:"A7",position:{x:171.8,y:91.4}},{name:"A6",position:{x:157.5,y:91.4}},{name:"A5",position:{x:143.2,y:91.4}},{name:"A4",position:{x:128.9,y:91.4}},{name:"A3",position:{x:114.6,y:91.4}},{name:"A2",position:{x:100.3,y:91.4}},{name:"A1",position:{x:86.1,y:91.4}},{name:"A0",position:{x:71.8,y:91.4}},{name:"REF",position:{x:57.5,y:91.4}},{name:"3V3",position:{x:43.2,y:91.4}},{name:"13",position:{x:28.9,y:91.4}}],width:"253px",height:"100px"},nano33ble:{ports:[{name:"LED_BUILTIN",position:{x:28.9,y:91.4}},{name:"RESET",position:{x:200.3,y:5.6}},{name:"GND",position:{x:186.1,y:5.6}},{name:"lsm9ds1",position:{x:85,y:40}},{name:"apds9960",position:{x:92,y:47}},{name:"lps22hb",position:{x:99,y:54}},{name:"hts221",position:{x:106,y:61}},{name:"TX1",position:{x:228.9,y:5.6}},{name:"RX0",position:{x:214.6,y:5.6}},{name:"0",position:{x:214.6,y:5.6}},{name:"1",position:{x:228.9,y:5.6}},{name:"2",position:{x:171.8,y:5.6}},{name:"3",position:{x:157.5,y:5.6}},{name:"4",position:{x:143.2,y:5.6}},{name:"5",position:{x:128.9,y:5.6}},{name:"6",position:{x:114.6,y:5.6}},{name:"7",position:{x:100.3,y:5.6}},{name:"8",position:{x:86.1,y:5.6}},{name:"9",position:{x:71.8,y:5.6}},{name:"10",position:{x:57.5,y:5.6}},{name:"11",position:{x:43.2,y:5.6}},{name:"12",position:{x:28.9,y:5.6}},{name:"VIN",position:{x:228.9,y:91.4}},{name:"GND",position:{x:214.6,y:91.4}},{name:"RESET",position:{x:200.3,y:91.4}},{name:"5V",position:{x:186.1,y:91.4}},{name:"A7",position:{x:171.8,y:91.4}},{name:"A6",position:{x:157.5,y:91.4}},{name:"A5",position:{x:143.2,y:91.4}},{name:"A4",position:{x:128.9,y:91.4}},{name:"A3",position:{x:114.6,y:91.4}},{name:"A2",position:{x:100.3,y:91.4}},{name:"A1",position:{x:86.1,y:91.4}},{name:"A0",position:{x:71.8,y:91.4}},{name:"REF",position:{x:57.5,y:91.4}},{name:"3V3",position:{x:43.2,y:91.4}},{name:"13",position:{x:28.9,y:91.4}}],width:"253px",height:"100px"},arduino_uno:{ports:[{name:"LED_BUILTIN",position:{x:131.5,y:7.8}},{name:"SCL",position:{x:93,y:7.8}},{name:"SDA",position:{x:102.6,y:7.8}},{name:"AREF",position:{x:112.2,y:7.8}},{name:"GND",position:{x:121.9,y:7.8}},{name:"13",position:{x:131.5,y:7.8}},{name:"12",position:{x:141.1,y:7.8}},{name:"11",position:{x:150.7,y:7.8}},{name:"10",position:{x:160.3,y:7.8}},{name:"9",position:{x:169.9,y:7.8}},{name:"8",position:{x:179.6,y:7.8}},{name:"7",position:{x:195,y:7.8}},{name:"6",position:{x:204.7,y:7.8}},{name:"5",position:{x:214.3,y:7.8}},{name:"4",position:{x:223.9,y:7.8}},{name:"3",position:{x:233.5,y:7.8}},{name:"2",position:{x:243.1,y:7.8}},{name:"1",position:{x:252.8,y:7.8}},{name:"0",position:{x:262.4,y:7.8}},{name:"NOTUSER",position:{x:127.7,y:190.5}},{name:"IOREF",position:{x:137.3,y:190.5}},{name:"RESET",position:{x:146.9,y:190.5}},{name:"3,3V",position:{x:156.6,y:190.5}},{name:"5V",position:{x:166.2,y:190.5}},{name:"GND",position:{x:175.8,y:190.5}},{name:"GND",position:{x:185.4,y:190.5}},{name:"Vin",position:{x:195,y:190.5}},{name:"A0",position:{x:214.3,y:190.5}},{name:"A1",position:{x:223.9,y:190.5}},{name:"A2",position:{x:233.5,y:190.5}},{name:"A3",position:{x:243.1,y:190.5}},{name:"A4",position:{x:252.8,y:190.5}},{name:"A5",position:{x:262.4,y:190.5}}],width:"283px",height:"202px"},arduino_unowifirev2:{ports:[{name:"SCL",position:{x:93,y:7.8}},{name:"SDA",position:{x:102.6,y:7.8}},{name:"AREF",position:{x:112.2,y:7.8}},{name:"GND",position:{x:121.9,y:7.8}},{name:"13",position:{x:131.5,y:7.8}},{name:"12",position:{x:141.1,y:7.8}},{name:"11",position:{x:150.7,y:7.8}},{name:"10",position:{x:160.3,y:7.8}},{name:"9",position:{x:169.9,y:7.8}},{name:"8",position:{x:179.6,y:7.8}},{name:"7",position:{x:195,y:7.8}},{name:"6",position:{x:204.7,y:7.8}},{name:"5",position:{x:214.3,y:7.8}},{name:"4",position:{x:223.9,y:7.8}},{name:"3",position:{x:233.5,y:7.8}},{name:"2",position:{x:243.1,y:7.8}},{name:"1",position:{x:252.8,y:7.8}},{name:"0",position:{x:262.4,y:7.8}},{name:"NOTUSER",position:{x:127.7,y:190.5}},{name:"IOREF",position:{x:137.3,y:190.5}},{name:"RESET",position:{x:146.9,y:190.5}},{name:"3,3V",position:{x:156.6,y:190.5}},{name:"5V",position:{x:166.2,y:190.5}},{name:"GND",position:{x:175.8,y:190.5}},{name:"GND",position:{x:185.4,y:190.5}},{name:"Vin",position:{x:195,y:190.5}},{name:"A0",position:{x:214.3,y:190.5}},{name:"A1",position:{x:223.9,y:190.5}},{name:"A2",position:{x:233.5,y:190.5}},{name:"A3",position:{x:243.1,y:190.5}},{name:"A4",position:{x:252.8,y:190.5}},{name:"A5",position:{x:262.4,y:190.5}}],width:"283px",height:"202px"},calliope_calliope2017:n,calliope_calliope2017NoBlue:n,calliope_calliope2016:n,calliope_calliopev3:{ports:[{name:"motor A",position:{x:235.5,y:244}},{name:"motor B",position:{x:235.5,y:233}},{name:"ultrasonic 1",position:{x:280,y:91}},{name:"callibot2",position:{x:82,y:91}},{name:"0",position:{x:17,y:159}},{name:"1",position:{x:99,y:301}},{name:"2",position:{x:262,y:301}},{name:"3",position:{x:343,y:159}},{name:"4",position:{x:82,y:91}},{name:"A0",position:{x:82,y:91}},{name:"5",position:{x:280,y:91}},{name:"A1",position:{x:280,y:91}},{name:"C04",position:{x:138,y:244}},{name:"C05",position:{x:138,y:233}},{name:"C06",position:{x:149.2,y:244}},{name:"C07",position:{x:149.2,y:233}},{name:"C08",position:{x:160.5,y:244}},{name:"C09",position:{x:160.5,y:233}},{name:"C10",position:{x:171.25,y:244}},{name:"C11",position:{x:171.25,y:233}},{name:"C12",position:{x:182,y:244}},{name:"C13",position:{x:182,y:233}},{name:"C14",position:{x:192.2,y:244}},{name:"C15",position:{x:192.2,y:233}},{name:"C16",position:{x:203.25,y:244}},{name:"C17",position:{x:203.25,y:233}},{name:"C18",position:{x:214,y:244}},{name:"C19",position:{x:214,y:233}},{name:"3V",position:{x:100,y:18}},{name:"GND",position:{x:262,y:18}},{name:"A",position:{x:63,y:135}},{name:"B",position:{x:298,y:135}},{name:"buzzer",position:{x:248,y:163}},{name:"rgbledh",position:{x:179,y:192}},{name:"rgbledh",position:{x:200,y:192}},{name:"rgbledh",position:{x:157,y:192}},{name:"light",position:{x:179,y:129}},{name:"temperature",position:{x:110,y:175}},{name:"accelerometer",position:{x:101,y:130.3}},{name:"compass",position:{x:106.5,y:130.3}},{name:"gyro",position:{x:113,y:130.3}},{name:"sound",position:{x:300,y:171}},{name:"logotouch",position:{x:78,y:60}}],width:"366px",height:"324px"},microbit:{ports:[{name:"0",position:{x:15,y:167}},{name:"1",position:{x:57.3,y:167}},{name:"2",position:{x:103.7,y:167}},{name:"3",position:{x:1.5,y:167}},{name:"4",position:{x:27.9,y:167}},{name:"5",position:{x:33.1,y:167}},{name:"6",position:{x:38.3,y:167}},{name:"7",position:{x:43.5,y:167}},{name:"8",position:{x:69.5,y:167}},{name:"9",position:{x:74.7,y:167}},{name:"10",position:{x:79.9,y:167}},{name:"11",position:{x:85.1,y:167}},{name:"12",position:{x:90.3,y:167}},{name:"13",position:{x:116.2,y:167}},{name:"14",position:{x:121.4,y:167}},{name:"15",position:{x:126.6,y:167}},{name:"16",position:{x:131.8,y:167}},{name:"19",position:{x:168,y:167}},{name:"20",position:{x:173.2,y:167}},{name:"3V",position:{x:150,y:167}},{name:"GND",position:{x:191.8,y:167}},{name:"A",position:{x:20.8,y:86.7}},{name:"B",position:{x:187.7,y:86.7}},{name:"light",position:{x:103.7,y:90}},{name:"temperature",position:{x:262,y:48.2}},{name:"accelerometer",position:{x:238.2,y:99.5}},{name:"compass",position:{x:238.2,y:104.7}}],width:"435px",height:"172px"},microbitv2:{ports:[{name:"0",position:{x:16,y:163}},{name:"1",position:{x:58.3,y:163}},{name:"2",position:{x:104,y:163}},{name:"3",position:{x:3,y:163}},{name:"4",position:{x:28.9,y:167}},{name:"5",position:{x:34.1,y:167}},{name:"6",position:{x:39.3,y:167}},{name:"7",position:{x:44.5,y:167}},{name:"8",position:{x:69.5,y:167}},{name:"9",position:{x:74.7,y:167}},{name:"10",position:{x:79.9,y:167}},{name:"11",position:{x:85.1,y:167}},{name:"12",position:{x:90.3,y:167}},{name:"13",position:{x:116.2,y:167}},{name:"14",position:{x:121.4,y:167}},{name:"15",position:{x:126.6,y:167}},{name:"16",position:{x:131.8,y:167}},{name:"19",position:{x:168,y:167}},{name:"20",position:{x:173.2,y:167}},{name:"3V",position:{x:150,y:163}},{name:"GND",position:{x:191.8,y:163}},{name:"A",position:{x:20.8,y:83.7}},{name:"B",position:{x:187.7,y:83.7}},{name:"light",position:{x:103.7,y:87}},{name:"temperature",position:{x:265,y:70.2}},{name:"accelerometer",position:{x:251.2,y:117.5}},{name:"compass",position:{x:251.2,y:122.7}},{name:"sound",position:{x:134,y:37}},{name:"buzzer",position:{x:323,y:87}},{name:"logotouch",position:{x:103.7,y:29}}],width:"435px",height:"172px"},sensebox:{ports:[{name:"1",position:{x:151,y:104}},{name:"2",position:{x:160,y:104}},{name:"3",position:{x:151,y:63}},{name:"4",position:{x:160,y:63}},{name:"5",position:{x:151,y:21}},{name:"6",position:{x:160,y:21}},{name:"7",position:{x:22,y:117}},{name:"8",position:{x:14,y:117}},{name:"XBEE1",position:{x:73,y:203}},{name:"XBEE2",position:{x:320,y:203}},{name:"I2C",position:{x:323,y:21}},{name:"I2C",position:{x:289,y:63}},{name:"I2C",position:{x:354,y:63}},{name:"I2C",position:{x:289,y:104}},{name:"I2C",position:{x:354,y:104}},{name:"Serial1",position:{x:220,y:105}},{name:"Serial2",position:{x:220,y:63}},{name:"GND",position:{x:133,y:104}},{name:"GND",position:{x:133,y:63}},{name:"GND",position:{x:133,y:21}},{name:"GND",position:{x:50,y:21}},{name:"5V",position:{x:141,y:104}},{name:"5V",position:{x:141,y:63}},{name:"5V",position:{x:141,y:21}},{name:"5V",position:{x:59,y:21}},{name:"accelerometer",position:{x:187,y:207}},{name:"sensebox",position:{x:187,y:207}}],width:"398px",height:"303px"},mbot2:{ports:[{name:"EM1",position:{x:140,y:340}},{name:"EM2",position:{x:185,y:340}},{name:"A",position:{x:212,y:262}},{name:"B",position:{x:212,y:306}},{name:"mbuild_port",position:{x:250,y:69}},{name:"S1",position:{x:7,y:110}},{name:"S2",position:{x:7,y:138}},{name:"S3",position:{x:250,y:138}},{name:"S4",position:{x:250,y:110}},{name:"M1",position:{x:60,y:340}},{name:"M2",position:{x:80,y:340}},{name:"joystick",position:{x:35,y:285}},{name:"buzzer",position:{x:235,y:340}},{name:"accelerometer",position:{x:108,y:238}},{name:"rgbled",position:{x:116,y:340}},{name:"light",position:{x:49,y:246}},{name:"sound",position:{x:66,y:246}},{name:"gyro",position:{x:158,y:238}},{name:"lcd",position:{x:128,y:288}}],width:"263px",height:"343px"},robotino:{ports:[{name:"DI1",position:{x:174.75,y:202.425}},{name:"DI2",position:{x:171.45,y:202.895}},{name:"DI3",position:{x:168.15,y:203.365}},{name:"DI4",position:{x:164.85,y:203.835}},{name:"DI5",position:{x:161.55,y:204.305}},{name:"DI6",position:{x:158.25,y:204.775}},{name:"DI7",position:{x:154.95,y:205.245}},{name:"DI8",position:{x:151.65,y:205.725}},{name:"AI1",position:{x:98.55,y:214.65}},{name:"AI2",position:{x:95.25,y:215.2}},{name:"AI3",position:{x:91.95,y:215.75}},{name:"AI4",position:{x:88.65,y:216.3}},{name:"AI5",position:{x:85.35,y:216.85}},{name:"AI6",position:{x:82.05,y:217.4}},{name:"AI7",position:{x:78.75,y:217.95}},{name:"AI8",position:{x:75.6,y:218.475}},{name:"M1",position:{x:129,y:146.625}},{name:"M2",position:{x:238.5,y:340.125}},{name:"M3",position:{x:349.5,y:146.625}},{name:"camera",position:{x:209.625,y:153.075}},{name:"odometry",position:{x:238.5,y:207.375}},{name:"infrared",position:{x:110.25,y:59.25}},{name:"touch",position:{x:372.825,y:59.25}}],width:"483.12px",height:"424.125px"},spike:{ports:[{name:"A",position:{x:0,y:105}},{name:"B",position:{x:210,y:105}},{name:"C",position:{x:0,y:168}},{name:"D",position:{x:210,y:168}},{name:"E",position:{x:0,y:229}},{name:"F",position:{x:210,y:229}},{name:"display",position:{x:105,y:168}},{name:"LEFT",position:{x:35,y:292}},{name:"RIGHT",position:{x:176,y:292}},{name:"buzzer",position:{x:105,y:340}},{name:"gyro",position:{x:130,y:70}},{name:"rgbled",position:{x:105,y:292}}],width:"217px",height:"342px"},joycar:{ports:[{name:"SERVO1",position:{x:141,y:204}},{name:"SERVO2",position:{x:154,y:204}},{name:"SPEED_L",position:{x:174,y:204}},{name:"SPEED_R",position:{x:187,y:204}},{name:"OBSTCL_L",position:{x:208,y:204}},{name:"OBSTCL_R",position:{x:221,y:204}},{name:"LINE_TRK_L",position:{x:240,y:204}},{name:"LINE_TRK_M",position:{x:253,y:204}},{name:"LINE_TRK_R",position:{x:266,y:204}},{name:"B0",position:{x:62,y:217}},{name:"B2",position:{x:74,y:217}},{name:"B4",position:{x:87,y:217}},{name:"B6",position:{x:100,y:217}},{name:"US",position:{x:121,y:217}},{name:"MOT_R",position:{x:28,y:58}},{name:"MOT_L",position:{x:385,y:58}},{name:"A",position:{x:74,y:58}},{name:"temperature",position:{x:111,y:58}},{name:"accelerometer",position:{x:149,y:58}},{name:"compass",position:{x:186,y:58}},{name:"sound",position:{x:224,y:58}},{name:"light",position:{x:262,y:58}},{name:"logotouch",position:{x:299,y:58}},{name:"B",position:{x:338,y:58}},{name:"buzzer",position:{x:28.5,y:125}}],width:"417px",height:"272px"},txt4:{ports:[{name:"EXT",position:{x:2,y:65}},{name:"I1",position:{x:22,y:77}},{name:"I2",position:{x:22,y:98}},{name:"I3",position:{x:22,y:119}},{name:"I4",position:{x:22,y:140}},{name:"I5",position:{x:22,y:162}},{name:"I6",position:{x:22,y:183}},{name:"I7",position:{x:22,y:204}},{name:"I8",position:{x:22,y:225}},{name:"M1",position:{x:228,y:77}},{name:"M2",position:{x:228,y:98}},{name:"M3",position:{x:228,y:119}},{name:"M4",position:{x:228,y:140}},{name:"C1",position:{x:228,y:162}},{name:"C2",position:{x:228,y:183}},{name:"C3",position:{x:228,y:204}},{name:"C4",position:{x:228,y:225}},{name:"USB1",position:{x:71,y:1}},{name:"USB2",position:{x:160,y:1}},{name:"9V",position:{x:64.5,y:225}},{name:"display",position:{x:126,y:118}}],width:"255px",height:"255px"}}}));
//# sourceMappingURL=const.robots.js.map
//# sourceMappingURL=const.robots.js.map
diff --git a/OpenRobertaServer/staticResources/js/app/simulation/simulationLogic/robot.calliope.js b/OpenRobertaServer/staticResources/js/app/simulation/simulationLogic/robot.calliope.js
index b7765c938d..1c67785c57 100644
--- a/OpenRobertaServer/staticResources/js/app/simulation/simulationLogic/robot.calliope.js
+++ b/OpenRobertaServer/staticResources/js/app/simulation/simulationLogic/robot.calliope.js
@@ -1,3 +1,3 @@
-var __extends=this&&this.__extends||function(){var e=function(t,o){return e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o])},e(t,o)};return function(t,o){if("function"!=typeof o&&null!==o)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");function r(){this.constructor=t}e(t,o),t.prototype=null===o?Object.create(o):(r.prototype=o.prototype,new r)}}();define(["require","exports","robot.sensors","robot.actuators","robot.base.stationary"],(function(e,t,o,r,n){Object.defineProperty(t,"__esModule",{value:!0});var s=function(e){function t(t,n,s,i,a){var f=e.call(this,t,n,s,i,a)||this;return f.volume=.5,f.webAudio=new r.WebAudio,f.topView='