Aktoren
Ausgang
Der "Starte jedes Mal"-Block
Der "Starte jedes Mal"-Block bietet die Möglichkeit ein Programm ablaufen zulassen, wenn eine Bedingung erfüllt ist. Er funktioniert also ähnlich wie eine Fallunterscheidung, wird aber nicht nur einmal durchlaufen, sondern jedes Mal, wenn die Bedingung erfüllt ist, während des gesamten Ablauf des Programms. Der "Starte jedes Mal"-Block:
ist eine Abkürzung für folgendes Konstrukt:
Man kann in den "Starte jedes Mal"-Block der Kategorie Ausgänge alle Bedingungen aus ebendieser Kategorie einsetzen.
Hinweis: Der Programmabschnitt innerhalb des "Starte jedes Mal"-Block sollte kurz gehalten werden und keine blockierenden Aufrufe oder Endlosschleifen enthalten, sodass dieser Teil des Programms schnell abgearbeitet werden kann.
LEDs
LEDs (Licht emittierende Dioden) sind kleine Leuchtmittel, die in einer Vielzahl von Geräten zum Einsatz kommen.
Setzen
Mit den Blöcken "setze LED [] []" und "setze LED [] Helligkeit ..." kann man die LED an- und ausstellen beziehungsweise ihre Helligkeit auf einen bestimmten Wert (von 0 bis 512) setzen.
Im Beispiel wird die LED eingeschaltet und ihre Helligkeit auf den maximal möglichen Wert eingestellt. Dies ermöglicht es, die LED in ihrem hellsten Zustand zu betreiben.
Abrufen
Mit dem Block "hole LED [] Helligkeit" lässt sich die Helligkeit einer LED abrufen und als Wert weiterverarbeiten.
Im Beispiel wird die aktuelle Helligkeit der LED abgefragt und in einer Variable Helligkeit gespeichert:
Abfragen
Mit den Blöcken "ist LED [] []" und "ist LED [] Helligkeit [] ..." kann man die Aktivität beziehungsweise die Helligkeit einer LED als Bedingung nutzen.
Im Beispiel wir die Helligkeit der LED auf 512 gesetzt, sofern sie nicht schon diese Helligkeit hat.
Motoren
Das Symbol auf den Motorblöcken steht stellvertretend für alle Motoren, die nicht Encoder- oder Servomotoren sind.
Setzen
Mit dem Block "setze Motor [] Geschwindigkeit …" kann man die Geschwindigkeit eines Motors auf einen bestimmten Wert (von 0 bis 512) setzen.
Abrufen
Mit dem Block "hole Motor [] Geschwindigkeit" lässt sich die Geschwindigkeit eines Motors abrufen und als Wert weiterverarbeiten.
Abfragen
Mit den Blöcken "läuft Motor []" und "ist Motor [] Geschwindigkeit …" kann man die Aktivität beziehungsweise die Geschwindigkeit eines Motors als Bedingung nutzen.
Stoppen
Mit dem Block "stoppe Motor []" ist es möglich einen Motor zu stoppen.
Magnetventil
Ein Magnetventil ist wie ein elektrisch gesteuerter Wasserhahn. Statt ihn von Hand aufzudrehen oder zuzumachen, benutzt man Strom. Wenn Strom durch das Ventil fließt, aktiviert sich ein Magnet, der das Ventil öffnet oder schließt. So kann man den Fluss von Flüssigkeiten oder Gasen kontrollieren, ohne direkt am Ventil zu sein. Das ist praktisch für Systeme, die automatisch laufen sollen.
Setzen
Mit dem Block "setze Magnetventil [] []" kann man das Magnetventil ein- oder ausschalten.
Dieser Block ermöglicht das Ein- oder Ausschalten des Magnetventils. Durch Auswahl im Dropdown-Menü kann das Magnetventil entweder aktiviert (an) oder deaktiviert (aus) werden.
Abfragen
Mit dem Block "ist Magnetventil [] []" kann man die Aktivität eines Magnetventils als Bedingung nutzen.
In dem Beispiel wird geprüft, ob das Magnetventil eingeschaltet ist, und wenn ja, wird das Magnetventil ausgeschaltet.
Kompressor
Ein Kompressor ist ein Gerät, das dazu dient, Luft oder ein anderes Gas zu komprimieren und so den Druck zu erhöhen. Kompressoren werden zum Beispiel Aufpumpen von Reifen verwendet.
Setzen
Mit dem Block "setze Kompressor [] []" kann man den Kompressor ein- oder ausschalten.
Abfragen
Mit dem Block "ist Kompressor [] []" kann man die Aktivität eines Kompressors als Bedingung nutzen.
Motor
Der "Starte jedes Mal"-Block
Der "Starte jedes Mal"-Block bietet die Möglichkeit ein Programm ablaufen zulassen, wenn eine Bedingung erfüllt ist. Er funktioniert also ähnlich wie eine Fallunterscheidung, wird aber nicht nur einmal durchlaufen, sondern jedes Mal, wenn die Bedingung erfüllt ist, während des gesamten Ablauf des Programms. Der "Starte jedes Mal"-Block:
ist eine Abkürzung für folgendes Konstrukt:
Man kann in den "Starte jedes Mal"-Block der Kategorie Motor alle Bedingungen aus eben dieser Kategorie einsetzen.
Hinweis: Der Programmabschnitt innerhalb des "Starte jedes Mal"-Block sollte kurz gehalten werden und keine blockierenden Aufrufe oder Endlosschleifen enthalten, sodass dieser Teil des Programms schnell abgearbeitet werden kann.
Motor
Das Symbol auf den Motorblöcken steht stellvertretend für alle Motoren, die nicht Encoder- oder Servomotoren sind.
Setzen
Mit dem Block "setze Motor [] Geschwindigkeit [] ..." kann man die Geschwindigkeit eines Motors auf einen bestimmten Wert (von 0 bis 512) setzen. Über das Dropdown-Menü (kleines Dreieck) kann die Drehrichtung gewählt werden.
Abrufen
Mit dem Block "hole Motor [] Geschwindigkeit" lässt sich die Geschwindigkeit eines Motors abrufen und als Wert weiterverarbeiten.
Abfragen
Mit den Blöcken "läuft Motor []" und "ist Motor [] Geschwindigkeit [] ..." kann man die Aktivität beziehungsweise die Geschwindigkeit eines Motors als Bedingung nutzen.
Stoppen
Mit dem Block "stoppe Motor [] []" ist es möglich einen Motor zu stoppen. Dabei bietet der Block "stoppe Motor [] []" die Optionen, einen Motor direkt oder auslaufend zu stoppen. Die gewünschte Option kann über das Dropdown-Menü (kleines Dreieck) ausgewählt werden.
Encodermotor
Der Encodermotor hat die gleichen Funktionen wie ein normaler Motor, bietet aber zusätzlich die Möglichkeit, die Umdrehungen zu zählen und mehrere Motoren synchron anzusteuern. Eine Umdrehung wird dabei in ~64 Schritte unterteilt.
Setzen
Mit dem Block
kann man die Geschwindigkeit eines Motors auf einen bestimmten Wert (von 0 bis 512) setzen. Über das Dropdown-Menü (kleines Dreieck) kann die Drehrichtung gewählt werden. Zusätzlich kann man die Anzahl an Schritten eingeben, die der Motor zurücklegen soll. In diesem Beispiel dreht sich der Motor 100 Schritte, also eine und eine 36/64 Umdrehungen. Wie am Beispiel zu sehen, hat dieser Block ein Pluszeichen, mithilfe dessen sich mehrere Motoren synchron ansteuern lassen. Es ist möglich Motoren am Master oder an einer Extension zu synchronisieren, eine übergreifenden Synchronisierung bspw. zwischen Motoren des Masters und einer Extension ist nicht möglich.
Hinweis: Schnell aufeinanderfolgende Synchronisierungsaufrufe, wie sie z. B. durch eine Schleife möglich sind (siehe Beispiel), können die Synchronität beeinträchtigen oder sogar komplett verhindern.
Stoppen
Mit dem Block "stoppe Motor []" stoppt man einen Motor. Möchte man mehrere Motoren gleichzeitig stoppen, kann man über das Plus links am Block bis zu drei weitere Motoren hinzufügen.
Abfragen
Der Block "hat Motor [] Position erreicht" wird genutzt, um das Erreichen der Position als Bedingung zu nutzen. Mit Position ist hier die Endposition eines Encodermotors nach vollendeter Schrittweite gemeint.
Servomotor
Ein Servomotor ist ein spezieller Motor, der für präzise Steuerung seiner Position ausgelegt ist. Er kann auf exakte Winkel positioniert werden und verfügt über ein eingebautes Feedback-System, das es ermöglicht, die gewünschte Position genau zu erreichen und zu halten.
Setzen
Mit dem Block "setze Servomotor [] Position ..." kann man die Position eines Servomotors auf einen bestimmten Wert (von 0 bis 512) setzen. 0 und 512 sind die Werte für die maximale Auslenkung rechts und links. Bei dem Wert 256 steht der Servomotor dementsprechend in der Mitte.
Abrufen
Mit dem Block "hole Servomotor [] Position" lässt sich die Position eines Servomotors abrufen und als Wert weiterverarbeiten.
Sound
Der TXT 4.0 Controller hat einen eingebauten Lautsprecher und bietet somit die Möglichkeit, Sounds abzuspielen.
Der "Starte jedes Mal"-Block
Der "Starte jedes Mal"-Block bietet die Möglichkeit ein Programm ablaufen zulassen, wenn eine Bedingung erfüllt ist. Er funktioniert also ähnlich wie eine Fallunterscheidung, wird aber nicht nur einmal durchlaufen, sondern jedes Mal, wenn die Bedingung erfüllt ist, während des gesamten Ablauf des Programms. Der "Starte jedes Mal"-Block:
ist eine Abkürzung für folgendes Konstrukt:
Man kann in den "Starte jedes Mal"-Block der Kategorie Sound alle Bedingungen aus eben dieser Kategorie einsetzen.
Hinweis: Der Programmabschnitt innerhalb des "Starte jedes Mal"-Block sollte kurz gehalten werden und keine blockierenden Aufrufe oder Endlosschleifen enthalten, sodass dieser Teil des Programms schnell abgearbeitet werden kann.
Abspielen
Vorinstallierte Audiodateien
Mit dem folgenden Block kann man einen von 29 vorinstallierten Sounds abspielen. Die gewünschte Audiodatei kann über das Drop-down-Menü (kleines Dreieck) ausgewählt werden. Außerdem ist es möglich, den Ton in Dauerschleife abzuspielen. Dafür muss man das Kästchen hinter dem Dauerschleife-Symbol ankreuzen.
Eigene Audiodateien
Möchte man einen eigenen Sound abspielen, kann man den Block "spiele eigene Audiodatei" nutzen. Um seinen eigenen Sound in den Block einzubetten, muss man:
- Mit dem Controller verbunden sein
- Die IP-Adresse des Controllers in den Browser eingeben (hierbei muss die IP gewählt werden, die auch zum Verbinden mit dem Controller genutzt wurde)
- Auf der aufgerufenen Seite USER: ft, PASSWORD: fischertechnik eingeben
- Ordner sounds öffnen und dort über das Plus die gewünschte Audiodatei auf den Controller laden (wichtig: die Audiodatei muss im wav-Format vorliegen)
- Im ROBO Pro Coding-Block unter Pfad "./dateiname.wav" angeben
Auch hier gibt es die Option, den Sound in Dauerschleife abzuspielen.
Abfragen
Um abzufragen, ob eine Audiodatei abgespielt wird, nutzt man den Block "spielt Audiodatei ab". Dieser kann als Bedingung im Programm genutzt werden.
Stoppen
Um einen Ton zu stoppen, wird einfach der Block "stoppe Wiedergabe Audiodatei" im Programm verwendet.
Anzeige
Mit den Blöcken der Kategorie Display lässt sich der Bildschirm des TXT 4.0 Controllers gestalten und nutzbar machen. Dies geschieht in zwei Schritten:
- Konfigurieren, das heißt:
- Eine neue Datei der Kategorie Display öffnen, über das Seitensymbol mit dem Plus oben links
- Die gewünschten Elemente auf den gerasterten Bereich ziehen (er stellt den konfigurierbaren Teil des Displays dar)
- Bei Bedarf Spezifikationen anpassen.
- Programmieren, das heißt:
- Im Hauptprogramm mit den Blöcken der Kategorie Display die Wirkung von Interaktion mit dem Display programmieren.
Blöcke
Beschriftungsfeld
Mit dem Element "Beschriftungsfeld" kann man einen Text auf dem Bildschirm platzieren. Das Symbol im Anzeigekonfigurator ist das Etikett. Zieht man dieses Symbol in den gerasterten Bereich, öffnet sich rechts ein Fenster. Hier kann unter Inspektor
- die Größe des Beschriftungsfelds in Pixeln,
- die Position des Beschriftungsfelds in Pixeln (auf dem angegebenen Punkt liegt die obere linke Ecke des Textfeldes),
- der Name des Beschriftungsfelds und
- der Inhalt des Beschriftungsfelds (dieser Text wird bei Start des Displays abgebildet)
festgelegt werden.
Mit dem Block "setze Beschriftungsfeld [] Text ..." lässt sich der abgebildete Text im Laufe des Programms ändern. Um den aktuellen Text des Beschriftungsfelds zu erhalten, kann der Block "hole Beschriftungsfeld [] Text" verwendet werden. Dies ist nützlich, um den Text zu lesen und in anderen Teilen des Programms zu verwenden oder zu überprüfen.
Eingaben
Das Element "Eingabe" erlaubt es, dass Nutzer*innen über den Controller Text eingeben. Das zugehörige Symbol im Anzeigekonfigurator ist das "T" Zeichen. Zieht man dieses Symbol in den gerasterten Bereich, öffnet sich rechts ein Fenster. Hier kann unter Inspektor
- die Größe des Eingabefeldes in Pixeln,
- die Position des Eingabefeldes in Pixeln (auf dem angegebenen Punkt liegt die obere linke Ecke des Eingabefeldes),
- der Name des Eingabefeldes und
- der Inhalt des Eingabefeldes (dieser Text wird bei Start des Displays abgebildet)
festgelegt werden.
Mit dem Block "setze Eingabefeld [] Text ..." lässt sich der abgebildete Text im Laufe des Programms ändern. Um den Text aus dem Eingabefeld abzurufen, wird der Block "hole Eingabefeld [] Text" verwendet.
Eingabe-Programm
Das Eingabe-Programm läuft ab, wenn eine Eingabe abgeschlossen wurde. Es wird separat vom Hauptprogramm geschrieben. Variablen funktionieren global über beide Programme hinweg. Das Eingabe-Programm läuft im Block "wenn Eingabe [] abgeschlossen" ab. Der "Ereignis []"-Block wird im Eingabe-Programm auf "text" gesetzt. In diesem Beispiel wird die Variable "Name" auf den eingegebenen Text gesetzt, sie wird dann im Hauptprogramm genutzt, um den eingegebenen Text auszugeben:
Ereignisabfrage
Der Block "Ereignis []" ruft den Rückgabewert eines Elements ab. Dieser Block kann nur in den Ereignisprogrammen genutzt werden. In diesen Ereignisprogrammen bezieht sich der Block automatisch auf das Ereignis, in dessen Programm er verwendet wird. Der geeignete Typ für den Rückgabewert kann über das Dropdown-Menü (kleines Dreieck) gewählt werden:
Messinstrument
Die "Messinstrument"-Funktion kann Werte (keine Werte kleiner 1) darstellen. Das zugehörige Symbol im Displaykonfigurator ist die Skalierung. Zieht man dieses Symbol in den gerasterten Bereich, öffnet sich rechts ein Fenster. Hier kann unter Inspektor
- die Größe des Messinstruments in Pixeln,
- die Position des Messinstruments in Pixeln (auf dem angegebenen Punkt liegt die obere linke Ecke der Messlehre),
- der Name des Messinstruments,
- die Ausrichtung des Messinstruments
- der Wertebereich, den das Messinstrument darstellt, und
- der Wert des Messinstruments, der bei Start des Displays gezeigt wird
festgelegt werden.
Mit dem Block "setze Messinstrument [] auf Wert ..." lässt sich das Messinstrument auf den eingegebenen Wert setzen. Dieser Wert sollte im vorher definierten Wertebereich liegen. Liegt der Wert außerhalb des Wertebereichs, wird, je nachdem, ob der Wert zu groß oder zu klein ist, eine der Grenzen des Wertebereichs dargestellt. Um den aktuellen Wert des Messinstruments abzurufen, wird der Block "hole Messinstrument [] Wert" verwendet.
Statusanzeige
Der Statusindikator zeigt die Aktivität von etwas an. Je nach Status leuchtet er ("aktiv") oder tut dies nicht ("inaktiv"). Das Symbol im Displaykonfigurator ist eine leuchtende Diode. Zieht man dieses Symbol in den gerasterten Bereich, öffnet sich rechts ein Fenster. Hier kann unter Inspektor
- die Größe der Statusanzeige in Pixeln,
- die Position der Statusanzeige in Pixeln (auf dem angegebenen Punkt liegt die obere linke Ecke des Statusindikators),
- der Name der Statusanzeige,
- die Farbe der Statusanzeige und
- ob die Statusanzeige zu Beginn aktiv oder inaktiv sein soll,
festgelegt werden.
Mit dem Block "setze Statusanzeige [] aktiv ..." lässt sich die Statusanzeige aktivieren bzw. deaktivieren. Im Dropdown-Menü (kleines Dreieck) lässt sich wählen, ob die Statusanzeige auf aktiv oder inaktiv gesetzt werden soll. Um den aktuellen Status der Statusanzeige zu überprüfen, kann der Block "ist die Statusanzeige [] aktiv" verwendet werden.
Schieberegler
Der Schieberegler gibt Werte abhängig von seiner Position zurück. Die Position kann dabei vom Nutzer*innen über den Touchscreen verändert werden. Der Wert kann über den "Ereignis []"-Block abgerufen werden, sobald der Schieberegler ruht. Der abgerufene Wert ist eine Dezimalzahl. Will man den Wert des Schiebereglers ganzzahlig haben, muss man den "runde"-Block einsetzen. Das zugehörige Symbol für den Schieberegler ist der Strich mit dem Kreis. Zieht man dieses Symbol in den gerasterten Bereich, öffnet sich rechts ein Fenster. Hier kann unter Inspektor
- die Größe des Schiebereglers in Pixeln,
- die Position des Schiebereglers in Pixeln (auf dem angegebenen Punkt liegt dann die obere linke Ecke des Schiebereglers)
- der Name des Schiebereglers,
- die Aktivität des Schiebereglers,
- die Ausrichtung des Schiebereglers,
- den Wertebereich, der über den Schieberegler abgedeckt wird und
- der Wert, auf dem der Regler bei Start des Displays steht
festgelegt werden.
Mit dem Block "setze Schieberegler [] Wert ... " kann der Wert des Schiebereglers geändert werden. Mit dem Block "Setze Schieberegler aktiviert" kann die Aktivität des Schiebereglers über das Dropdown-Menü geändert werden, wobei zwischen "aktiviert" und "deaktiviert" gewählt werden kann.
Um den aktuellen Wert des Schiebereglers zu erhalten, wird der Block "hole Schieberegler [] Wert ..." verwendet. Dieser Block gibt den aktuellen Wert des Schiebereglers als Dezimalzahl zurück. Um den Aktivitätsstatus des Schiebereglers zu überprüfen, kann der Block "ist Schieberegler [] aktiv" verwendet werden. Dieser Block gibt einen Booleschen Wert zurück, der angibt, ob der Schieberegler aktiv ist.
Schieberegler-Programm
Das Schieberegler-Programm läuft ab, nachdem der Schieberegler verschoben wurde. Es wird separat vom Hauptprogramm geschrieben. Variablen funktionieren global über beide Programme hinweg. Das Schieberegler-Programm läuft im Block "wenn Schieberegler [] bewegt" ab. Der "Ereignis []"-Block wird im Schieberegler-Programm auf "value" gesetzt. In diesem Beispiel wird die Geschwindigkeit des Motors über den Schieberegler gesteuert. Der Wert des Schiebereglers muss gerundet werden, da der Motor nur ganze Zahlen als Drehzahl akzeptiert:
Schaltfläche
Die Schaltfläche ist ein beschriftetes Feld, das gedrückt werden kann. Drückt man die Schaltfläche, läuft das Schaltflächen-Programm ab, sobald sie wieder losgelassen wird. Das zugehörige Symbol für die Schaltfläche ist das Quadrat mit der "OK" Beschriftung. Zieht man dieses Symbol in den gerasterten Bereich, öffnet sich rechts ein Fenster. Hier kann unter Inspektor
- die Größe der Schaltfläche in Pixeln,
- die Position der Schaltfläche in Pixeln (auf dem angegebenen Punkt liegt die obere linke Ecke des Knopfes),
- der Name der Schaltfläche,
- den Text, der auf der Schaltfläche steht und
- die Aktivität der Schaltfläche
festgelegt werden.
Mit dem Block "setze Schaltfläche [] aktiviert ..." kann man die Aktivität über das Dropdown-Menü (kleines Dreieck) wechseln. Um zu überprüfen, ob die Schaltfläche aktiv ist, kann der Block "ist Schaltfläche aktiviert" verwendet werden.
Schaltflächen-Programm
Das Schaltflächen-Programm läuft ab, sobald die Schaltfläche nicht mehr gedrückt ist. Es wird separat vom Hauptprogramm geschrieben. Variablen funktionieren global über beide Programme hinweg. Das Schaltflächen-Programm läuft im Block "wenn Schaltfläche [] angeklickt" ab. Der "Ereignis []"-Block kann im Schaltflächen-Programm nicht verwendet werden, da die Schaltfläche keinen Rückgabewert hat. In diesem Beispiel wird die LED aktiviert, wenn die Schaltfläche gedrückt wurde.
Schalter
Der Schalter kann zwei Positionen einnehmen und befindet sich immer in genau einer dieser beiden Positionen. Je nach Position gibt er wahr oder falsch zurück. Das zugehörige Symbol für den Schalter ist das Oval mit dem Punkt. Zieht man dieses Symbol in den gerasterten Bereich, öffnet sich rechts ein Fenster. Hier kann unter Inspektor
- die Größe des Schalters in Pixeln,
- die Position des Schalters in Pixeln (auf dem angegebenen Punkt liegt die obere linke Ecke des Schalters),
- der Name des Schalters,
- den Text, der neben dem Schalter steht,
- die Aktivität des Schalters und
- den Zustand in dem sich der Schalter bei Start des Programms befinden soll
angepasst werden.
Der Block
übernimmt zwei Funktionen. Man kann entweder die Aktivität (enabled im Dropdown-Menü wählen) oder den Zustand (checked im Dropdown-Menü wählen) auf wahr oder falsch setzen. Um den aktuellen Zustand des Schalters abzufragen, wird der Block "ist Schalter [] []" verwendet.
Schalter-Programm
Das Schalter-Programm läuft jedes Mal ab, wenn der Schalter umgelegt wird. Es wird separat vom Hauptprogramm geschrieben. Variablen funktionieren global über beide Programme hinweg. Das Schalter-Programm läuft im Block "wenn Schalter [] umgeschaltet" ab. Der "Ereignis []"-Block wird im Schalter-Programm auf "checked" gesetzt, er gibt wahr oder falsch zurück. Dieses Beispielprogramm schaltet die LED ein, wenn der Schalter umgelegt ist, andernfalls wird die LED ausgeschaltet:
Kontrollkästchen
Das Kontrollkästchen kann zwei Zustände annehmen und befindet sich immer in genau einem dieser beiden. Je nach Zustand gibt es wahr oder falsch zurück. Das Symbol für das Kontrollkästchen ist das Quadrat mit dem Haken. Zieht man dieses Symbol in den gerasterten Bereich, öffnet sich rechts ein Fenster. Hier kann unter Inspektor
- die Größe des Kontrollkästchens in Pixeln,
- die Position des Kontrollkästchens in Pixeln (auf dem angegebenen Punkt liegt die obere linke Ecke des Kontrollkästchens),
- der Name des Kontrollkästchens,
- den Text, der neben dem Kontrollkästchen steht,
- die Aktivität des Kontrollkästchens und
- den Zustand in dem sich das Kontrollkästchen bei Start des Programms befinden soll
festgelegt werden.
Der folgende Block übernimmt zwei Funktionen. Über das Dropdown-Menü (kleines Dreieck) kann gewählt werden, welche man nutzt. Man kann entweder die Aktivität (enabled im Dropdown-Menü wählen) oder den Zustand (checked im Dropdown-Menü wählen) auf wahr oder falsch setzen.
Um den aktuellen Zustand des Kontrollkästchens abzufragen, wird der Block "ist Kontrollkästchen [] []" verwendet.
Kontrollkästchen-Programm
Das Kontrollkästchen-Programm läuft jedes Mal ab, wenn das Kontrollkästchen gedrückt wird. Es wird separat vom Hauptprogramm geschrieben. Variablen funktionieren über beide Programme hinweg. Das Kontrollkästchen-Programm läuft im Block "wenn Kontrollkästchen [] umgeschaltet" ab. Der "Ereignis []"-Block wird im Schalter-Programm auf "checked" gesetzt, er gibt wahr oder falsch zurück. Dieses Beispielprogramm schaltet die LED ein, wenn das Kontrollkästchen angehakt ist, andernfalls wird die LED ausgeschaltet.
Bild
Der "setze Bild [] Base64-Bild ... " Block erlaubt es, ein Bild zu ändern, indem ein Base64-codierter Bildstring verwendet wird. Der Vorteil dieses Blocks ist die Fähigkeit, dynamisch verschiedene Bilder anzeigen zu können, indem einfach der Base64-String geändert wird. Dies ermöglicht eine flexible Anpassung der Bildinhalte zur Laufzeit.
Hinweis: Base64 ist eine Kodierungsmethode, die dazu dient, binäre Daten in eine Zeichenkette aus lesbaren ASCII-Zeichen zu konvertieren. Diese Kodierung wird häufig verwendet, um Daten, die ursprünglich in einem binären Format vorliegen, wie z.B. Bilder oder Audiofiles, in Formate zu übertragen, die ausschließlich Text verarbeiten können.