ROBO Pro Coding (DE)

Allgemeine Benutzung

Allgemeine Benutzung

Allgemeine Benutzung

ROBO Pro Coding ist eine  Entwicklungsumgebung zur Programmierung des neuen TXT 4.0 Controllers und damit zur Programmierung von fischertechnik-Modellen. ROBO Pro Coding ist verfügbar für Windows, macOS, Linux, iOS und Android und kann aus diesen Quellen bezogen werden.

Google_Play_Badge_DE_230x67.png    App_Store_Badge_DE_230x67.png    Microsoft_Badge_De_230x67.png   Linux_Badge.png

 

Doku_RPC.pngimage-1623839044249.22.21.png  

Der abgebildete Code könnte für dieses Modell (links) genutzt werden.Die Weboberfläche von ROBO Pro Coding hat den folgenden Aufbau (die Ziffern verweisen auf die gekennzeichneten Bereiche in der Abbildung):

  1. Hier steht das, was in Blöcken programmiert wurde, in Python
  2. Das ist das Feld in das die Blöcke hineingezogen werden um zu programmieren
  3. In der Konsole wird das Ablaufen des Programms dokumentiert 
    • Haltepunkte werden für das Debuggen von Programmen genutzt. Sie definieren bestimmte Stellen im Code, bei dehnen das Programm angehalten wird. Diese werden über den Editor gesetzt und bestehen aus dem Dateinamen + Nummer der Zeile.
    • Unter Ausdruck kann man sich Variableninhalte anschauen.
    • Der Aufrufstapel zeigt die Verschachtelung der Aufrufe. Insbesondere bei Einsatz von Funktionen ist das hilfreich.
  4. Hier findet man alle Blöcke zum Programmieren sortiert in die Kategorien Aktoren, Sensoren und Verarbeitung
  5. Diese Zeile wird separat unter Kopfzeile erläutert
  6. Hier kann man das Lernniveau an den Nutzer anpassen. Je nach Niveau werden z.B. nur die allerwichtigsten Blöcke angezeigt.

 

Kopfzeile

image-1623793979375.19.18.png

In der Kopfzeile befinden sich (v.l.n.r.) die Bedienungselemente für das Starten des Programms, das Stoppen des Programms, das Starten des Debugger, den Aufruf des Schnittstellentests, das Hochladen des aktuellen Programms und das Verbinden mit dem Controller.

Starten von Programmen

Möchte man sein Programm von ROBO Pro Coding aus starten klickt man auf dieses Symbol.

Stoppen von Programmen 

Möchte man sein Programm stoppen, bevor es von selbst endet tippt man auf dieses Symbol.

Der Debugger

Der Debugger soll das Finden von Fehlern im Programm erleichtern. Über das Menü in der oberen rechten Ecke kann man den Code Schritt für Schritt durchgehen und so einen Programmdurchlauf simulieren. Das Programm reagiert dabei trotzdem auf Interaktion mit Sensoren, wie z.B. das drücken eines Tasters. Während man das Programm durchläuft, kann man links im großen Feld sehen in welchem Block man sich befinden und rechts an welcher Stelle im Python-Code.

Der Schnittstellentest

Klickt man auf das Symbol, mit den drei Reglern, öffnet sich dieses Fenster:

image-1623794821356.06.43.png

Hier kann man alle angeschlossenen Geräte sehen. Bei Aktoren kann man kann man über die Schieberegler überprüfen ob sie funktionieren. Bei den Sensoren wird der gemessene Wert angegeben (bei dem Taster steht z.B. eine 1, weil er gedrückt ist). Über das Dropdown-Menü (kleines Dreieck) kann angegeben werden, was angeschlossen ist.

Hochladen von Programmen

Hat man ein Programm geschrieben und möchte, dass es autark auf dem Controller läuft, kann man es über dieses Symbol auf den Controller laden. Es taucht dann unter den Dateien auf dem Controller auf. Tippt man dort auf den Programmnamen, landet man in den Unterorder des Programms. Hier findet sich eine Datei, die "main.py" heißt. Klicke auf diese und der "open"-Knopf unten rechts sollte grün aufleuchten. Drücken den "open"-Knopf und es öffnet sich ein weiteres Menü mit vier Optionen:

  1. Laden: Lade das Programm dann kannst du es vom Homebildschirm aus starten
  2. Auto load: Das Programm wird beim nächsten Starten des Controller automatisch wieder geladen
  3. Auto start: Das Programm wird beim nächsten Starten des Controller automatisch wieder geladen und direkt gestartet
  4. Delete project: Das Programm wird vom Controller gelöscht
Verbinden mit dem Controller 

Wie man sich mit dem Controller verbindet wurde hier erklärt.

Controllerkonfiguration

Um Bauteile, wie Sensoren und Aktoren, im Programm nutzen zu können, muss man sie an den Controller anschließen und das nicht nur physisch, sondern auch in der Software. Die Controllerkonfiguration ist immer automatisch geöffnet und kann oben direkt neben dem Hauptprogramm erreicht werden.

Im linken Bereich werden jetzt der Controller und sämtliche mögliche Bauteile, die sich an den Controller anschließen lassen, angezeigt. Den Controller zieht man auf die Programmierfläche. Anschließend kann man die gewünschten Bauteile per Drag and  Drop an den Controller anschließen.

image-1623796138151.28.13.png

Speichern von Programmen

 Wenn du ein Programm speichern möchtest klicke auf die drei Striche oben links auf der ROBO Pro Coding Website. Tippe hier auf die Option "Exportieren". Jetzt kannst du auswählen ob du dein Programm lokal auf deinem Gerät oder bei GitLab speichern möchtest.

Lokal: Nachdem du den Namen deines Programms eingegeben hast klicke einfach auf "Exportieren" und die Programmdatei ist auf deinem Gerät.

GitLab: Nachdem du den Namen deines Programm eingegeben hast und den angegebenen Schritten gefolgt bist, um den persönlichen Zugriffstoken einzugeben, klicke einfach auf "Exportieren" und die Programmdatei ist in deinem GitLab-Account gespeichert.

 

 

Aktoren

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:

image-1623612674466.png

Ist eine Abkürzung für folgendes Konstrukt:

image-1638372346043.png

Man kann in den Starte jedes mal-Block der Kategorie Ausgänge alle Bedingungen aus eben dieser Kategorie einsetzten.

Hinweis: Der Programmabschnitt innerhalb des Starte jedes mal-Block sollte kurz gehalten werden und keine blockierenden Aufrufe oder Endlosschleifen enthalten, so dass dieser Teil des Programms schnell abgearbeitet werden kann.

LEDs

image-1623745844016.42.50.png

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. 

Abrufen

Mit dem Block hole LED Helligkeit lässt sich die Helligkeit einer LED abrufen und als Wert weiterverarbeiten.

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.

image-1623504193890.46.06.png

 

Motoren 

Das Symbol auf den Motorblöcken steht stellvertretend für alle Motoren, die nicht Encoder- oder Servomotoren sind.

Setzen

Mit den Block setze Motorgeschwindigkeit auf [] ... kann man die Geschwindigkeit eines Motors auf einen bestimmten Wert (von 0 bis 512) setzen. 

Abrufen

Mit dem Block hole Motorgeschwindigkeit lässt sich die Geschwindigkeit eines Motors abrufen und als Wert weiterverarbeiten.

Abfragen

Mit den Blöcken läuft Motor  und ist Motorgeschwindigkeit ... kann man die Aktivität beziehungsweise die Geschwindigkeit eines Motor als Bedingung nutzen.

Stoppen

Mit dem Block stoppe Motor … ist es möglich einen Motor zu stoppen.

Kompressor

image-1623746227574.40.52.png

Setzen

Mit den Block setze Kompressor [] kann man den Kompressor ein- oder ausschalten. 

Abfragen

Mit den Block ist Kompressor [] kann man die Aktivität eines Kompressors als Bedingung nutzen. 

Magnetventil

image-1623746259058.41.19.png

Setzen

Mit den Block setze Magnetventil [] kann man das Magnetventil ein- oder ausschalten. Hier bedeutet "ein", dass das Ventil offen ist und "aus", dass das Ventil geschlossen ist.

Abfragen

Mit den Block ist Magnetventil [] kann man die Aktivität eines Magnetventils als Bedingung nutzen.

Aktoren

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:

image-1623672133513.png

Ist eine Abkürzung für folgendes Konstrukt:

image-1638372436179.png

Man kann in den Starte jedes mal-Block der Kategorie Motor alle Bedingungen aus eben dieser Kategorie einsetzten.

Hinweis: Der Programmabschnitt innerhalb des Starte jedes mal-Block sollte kurz gehalten werden und keine blockierenden Aufrufe oder Endlosschleifen enthalten, so dass 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 den Block setze Motorgeschwindigkeit auf [] ... 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 Motorgeschwindigkeit lässt sich die Geschwindigkeit eines Motors abrufen und als Wert weiterverarbeiten.

Abfragen

Mit den Blöcken läuft Motor  und ist Motorgeschwindigkeit ... kann man die Aktivität beziehungsweise die Geschwindigkeit eines Motor 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:                                                                                          

image-1623613980654.51.51.png

 

Servomotor

image-1623746331741.42.25.png

Setzen

Mit den Block setze Position auf ... kann man die Position eines Servomotors auf einen bestimmten Wert (von 0-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 rufe Position ab lässt sich die Position eines Servomotors abrufen und als Wert weiterverarbeiten.

Encodermotor

image-1623746341213.40.14.png

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 

image-1623517764162.png

kann man die Geschwindigkeit eines Motors auf einen bestimmten Wert (von 0-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 drittel Umdrehungen. Wie am Bespiel zu sehen hat dieser Block ein Pluszeichen, mit Hilfe 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 Master 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.

image-1638196438212.png

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.

image-1623517630278.05.46.png

Abfragen

Der Block hat 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.

Aktoren

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: