CALLIOPE Programmierumgebungen auf dem PC

MakeCode Editor

Was ist ein Editor?

Ein Editor ist ein Programm auf dem PC (Personal Computer). Mit einem Editor benutzt der Mensch Bildschirm, Tastatur und Maus, um einen Text zu schreiben und als Datei zu speichern. Ein gespeicherter Text kann später wieder geöffnet und weiter bearbeitet werden. Mit einem Editor kann man also eine Datei nicht nur angucken, sondern selbst aktiv etwas verändern oder ganz neue Dateien schreiben.

Ein bekannter Editor ist Word. Damit können Texte auch formatiert werden, damit sie schön aussehen. Ein Programm-Text - auch Code genannt - soll aber nicht vom Mensch gelesen werden. Code wird vom Computer abgearbeitet. Dazu muss der Code ohne Syntax-Fehler sein.

Um den CALLIOPE zu programmieren, wird ein Block-Editor verwendet. Die einzelnen Anweisungen (Befehle) werden auf dem Bildschirm mit der Maus zusammengesteckt wie Lego Bausteine. Durch die Programmierung mit Blöcken können keine Syntax-Fehler passieren. Weil ein Computer keine Bilder abarbeiten kann, wird im Hintergrund eine Text-Datei mit dem Programm-Code erzeugt.

Mit dem Block-Editor wird der Code in einer Text-Datei gespeichert. Die Datei hat die Endung .hex und wird deshalb .hex-Datei genannt. Die .hex-Datei muss dann noch vom PC auf den CALLIOPE kopiert werden. Das funktioniert wie bei einem USB-Stick, aber nur in einer Richtung. Vom CALLIOPE kann keine Datei auf den PC zurück kopiert werden. Es ist deshalb wichtig, die mit dem Editor geschaffenen Programme auch auf dem PC zu speichern.

CALLIOPE Programmierumgebungen auf dem PC

Um CALLIOPE zu programmieren, brauchen wir also den PC mit einem geeigneten Editor. Die Editoren für CALLIOPE sind unter CALLIOPE-Editoren zu finden und werden auch PROGRAMMIERUMGEBUNGEN genannt. Der neue Trend ist, den Editor nicht mehr auf dem PC zu installieren. Die CALLIOPE-Editoren werden über das Internet genutzt, obwohl für die Programmierung damit eigentlich keine Internetverbindung erforderlich ist. So hat man beim starten immer die neueste Version. Das kann gut sein, muss aber nicht. Die Bedienung kann plötzlich anders funktionieren oder es sind neue Fehler drin.

Für MakeCode gibt es inzwischen auch eine offline Version. Man findet den Link unter CALLIOPE-Editoren. Eine .exe-Datei wird auf den PC herunter geladen und ohne Internet gestartet. Die Projekte (.hex-Dateien) sind aber nicht immer zwischen den Versionen austauschbar. Wenn das Internet ausgefallen ist, dann kann mit der offline Version aber immer noch weiter programmiert werden.

Ein Vorteil von Online ist, dass man nur draufklicken muss, und dann kann man es sofort benutzen, wenn das Internet funktioniert. Man kann die CALLIOPE-Editoren alle mal ausprobieren. Ich habe mich für "MakeCode" entschieden. Dieser scheint einfacher zu sein als "Open Roberta Lab" und man kann Software-Pakete hinzufügen, um die Display-Module (in der Einkaufsliste) mit Blöcken zu programmieren.

CALLIOPE Editor "MakeCode"

MakeCode

CALLIOPE Simulator

So sieht "MakeCode" aus, wenn man es über den Link makecode.calliope.cc startet. Mit der Maus holt man aus den bunten Blöcken in der Mitte die Programmier-Anweisungen und baut sie rechts in dem freien Platz zusammen. Der entstandene Code wird unmittelbar links in dem Bild vom CALLIOPE simuliert. Hier blinkt schon ein lachendes Gesicht in den 25 roten Leuchtdioden. Man kann auch die RGB-LED anschalten, die Tasten A und B mit der Maus drücken, über den PC Lautsprecher Töne hören und anderes.

Mit dem Simulator im Editor ist es also möglich, zu programmieren und das Ergebnis zu sehen, ohne einen CALLIOPE zu besitzen.

Das Projekt später (auf einem anderen PC) mit "MakeCode" wieder öffnen.

Oben unter dem Menüpunkt Projekte merkt sich "MakeCode" die zuletzt bearbeiteten Programme. Ein neues, leeres Projekt ist über den Menüpunkt Projekte - Neues Projekt anzulegen und unten ist ein Name einzutragen.

Das Wiederfinden funktioniert aber nur auf dem selben PC und ist eher unsicher. Über den Menüpunkt Projekte - Datei importieren kann man eine zuvor gespeicherte .hex-Datei zum Öffnen auswählen. Diese kann auch von einer anderen Person, einem anderen PC, einem USB-Stick oder aus dem Internet stammen.

WICHTIG: Es funktioniert nur mit dem Editor "MakeCode", dass man eine .hex-Datei als Projekt wieder laden kann, und dann die ursprünglichen Blöcke wieder angezeigt werden um daran weiter zu programmieren!

Und es funktioniert nur mit .hex-Dateien, die von "MakeCode" auch gespeichert wurden. Andere Editoren z. B. "Open Roberta Lab" erzeugen auch .hex-Dateien, um sie auf den CALLIOPE zu kopieren. Diese können aber von keinem Editor als Projekt geöffnet werden. Mit "Open Roberta Lab" muss man Projekte anders (nämlich als .xml-Datei) speichern, um damit später weiter zu programmieren.

Das Programm als .hex-Datei auf dem PC speichern.

Man schreibt zuerst einen Name für das Programm unten in die Textbox und klickt dann daneben auf den dunklen Button mit der Diskette. Der große Button Herunterladen geht auch, dann wird noch kurz ein Hinweis angezeigt, was man machen soll.

Jetzt funktioniert das genau so wie immer, wenn man mit dem Webbrowser eine Datei aus dem Internet herunterladen will. Manche Browser fragen nicht und speichern die Datei in dem dafür bestimmten Verzeichnis. Meistens ist das "Downloads". Vielleicht öffnet sich das Verzeichnis danach und man sieht die Datei "mini-neuesProjekt.hex".

Der Internetexplorer stellt die Frage: Möchten Sie "mini-neuesProjekt.hex" (569 KB) von "makecode.calliope.cc" öffnen oder speichern? Mit "Öffnen" könnte man sich die .hex Datei im Editor ansehen. So kommt sie aber nicht auf den CALLIOPE. Mit "Speichern" kommt sie wahrscheinlich in den oben genannten Ordner "Downloads". Mit "Speichern unter" kann man den Speicherort selbst wählen. Es ist sinnvoll, für die CALLIOPE Programme einen eigenen Ordner (auf der Festplatte, einem USB-Stick oder im Netzwerk) anzulegen, um sie wieder zu finden.

Die .hex-Datei vom PC auf den CALLIOPE kopieren.

Jetzt ist der Zeitpunkt, den CALLIOPE mit dem USB-Kabel an den PC zu stecken (vorher die Batterie ausschalten!). Dann müsste im Datei-Manager ein neues Laufwerk z. B. "MINI (E:)" zu sehen sein. In dieses Laufwerk muss die .hex Datei einfach nur rein kopiert werden. (Bitte nicht verschieben, dann ist sie weg!) Ordner sind dort nicht vorhanden und nicht zu beachten. Wenn man auf die zuvor gespeicherte .hex-Datei mit der rechten Maustaste klickt, kann man in dem Menü "Senden an" direkt "MINI (E:)" finden und drauf klicken. Die Datei wird in das Laufwerk "MINI", was der CALLIOPE ist, kopiert.

Das Programm als .hex-Datei direkt auf den CALLIOPE herunterladen, ohne zu speichern.

Wenn "Speichern unter" möglich ist, kann die .hex-Datei direkt auf den angesteckten CALLIOPE heruntergeladen werden. Dann ist sie aber weg. Das geht zwischendurch schneller, man sollte aber nicht vergessen, sie am Ende doch einmal auf dem PC zu speichern.

Im Computerkabinett sind keine Computer, sondern Thin-Clients.

Ein Thin-Client hat Bildschirm, Tastatur, Maus und macht damit eine Session auf dem Terminal-Server. Es kann sein, dass es zwar USB-Buchsen gibt, um Tastatur und Maus anzustecken, aber ein USB-Stick funktioniert daran nicht. Es ist also nach dem anstecken des CALLIOPE mit dem USB-Kabel kein Laufwerk "MINI (E:)" vorhanden. In öffentlichen Computerkabinetten kann die Funktion USB-Laufwerk auch aus Sicherheitsgründen verboten sein.

Mit dem Webbrowser kann man "MakeCode" und die anderen Editoren aber trotzdem benutzen. Darin funktioniert vielleicht sogar der Simulator. Die .hex-Datei sollte dann im Netzwerk gespeichert werden (das ist ein Laufwerksbuchstabe, auf den alle Computer zugreifen können).

Es wird mindestens ein richtiger PC im Netzwerk gebraucht, an den der CALLIOPE mit dem USB-Kabel angesteckt wird. Aus dem Netzlaufwerk kann nun die mit dem Thin-Client gespeicherte .hex-Datei auf den CALLIOPE kopiert werden.

Aufgabe in einem eigenen Fenster anzeigen

Aufgabe Programmieren

1. Suche in Windows den Editor (notepad.exe) und öffne damit eine .hex-Datei, die auf den CALLIOPE kopiert werden kann. Der Text in einer .hex-Datei sieht ungefähr so aus:

:020000040000FA
:10000000C0070000D1060000D1000000B1060000CA
:1000100000000000000000000000000000000000E0
:100020000000000000000000000000005107000078
:100030000000000000000000DB000000E500000000
:10004000EF000000F9000000030100000D010000B6
:1000500017010000210100002B0100003501000004
:100060003F01000049010000530100005D01000054
:1000700067010000710100007B01000085010000A4
:100080008F01000099010000A3010000AD010000F4

Das CALLIOPE-Programm besteht aus Bytes, die in HEXADEZIMAL-Schreibweise dargestellt sind. Zwei Zeichen ergeben immer ein Byte. In der Datei sind zwar viele Zeichen, aber nicht viele verschiedene. Außer dem Doppelpunkt am Anfang jeder Zeile gibt es genau 16 verschiedene Zeichen.

2. Finde alle 16 Zeichen.

3. Schreibe diese Zeichen in geordneter Reihenfolge auf, zuerst die Ziffern, danach die Buchstaben.

t1 IsNullOrWhiteSpace

4. Wie viele Bytes stehen in der 1. Zeile "020000040000FA"?

Theoretisch kann man Bytes schreiben, um zu programmieren. Praktisch gibt es dafür Programmiersprachen. CALLIOPE kann man auch mit JavaScript programmieren.

basic.forever(() => {
    basic.showLeds(`
        . . . . .
        . # . # .
        . . . . .
        # . . . #
        . # # # .
        `)
    basic.showLeds(`
        . . . . .
        . . . . .
        . . . . .
        . . . . .
        . . . . .
        `)
})

Das ist das Programm-Beispiel in JavaScript-Ansicht, wenn man in MakeCode ein neues, leeres Projekt erstellt. Man kann schon erkennen, was das Programm vielleicht macht. Weil man Kindern JavaScript nicht zumuten wollte, wurden die BLÖCKE erfunden. Damit kann nun wirklich jeder mit der Maus ein Programm zusammen schieben - und im Hintergrund macht der Editor für uns JavaScript und am Ende HEX-Ziffern daraus.

5. Öffne MakeCode und schalte von der Ansicht "Blöcke" in die Ansicht "JavaScript" um.

6. Schalte zurück auf "Blöcke", ändere etwas am Code, schalte wieder auf "JavaScript" und vergleiche.

7. Du kannst auch im JavaScript Punkte durch Doppelkreuze ersetzen und dann sehen welche Leuchtdioden blinken. Wenn das ohne Syntaxfehler funktioniert, kannst Du erzählen, dass Du Programmcode geschrieben hat!

Hinweise und Fehlermeldungen können hier anonym oder - wenn eine Antwort erwartet wird - per E-Mail gesendet werden. Impressum