MicroBlocks 2 kommt!

Ein übersetzter Auszug aus dem Blogbeitrag.

Aktualisiertes Blockdesign
Zusätzlich zu den Änderungen an der gesamten Benutzeroberfläche wurde das Grafikdesign der Blöcke aktualisiert, um die Lesbarkeit zu verbessern und den Blöcken gleichzeitig ein klares, modernes Aussehen zu verleihen. Die Blockfunktionalität hat sich nicht geändert und die neuen Blöcke ähneln im Aussehen stark dem alten Design, sodass Pädagogen weiterhin vorhandene Lernmaterialien verwenden können. Wir sind uns bewusst, dass es mit Aufwand verbunden ist, Lernmaterialien zu aktualisieren – wir haben sicherlich viele eigene Materialien zu aktualisieren! –, aber wir glauben, dass dieses neue Blockdesign uns durch das nächste Jahrzehnt der MicroBlocks-Entwicklung bringen wird.

Platzsparenderer Code
Unter der Haube bietet MicroBlocks 2.0 eine wichtige Änderung an der virtuellen Maschine von MicroBlocks.

Eine virtuelle Maschine ist ein simulierter Computer mit einem eigenen Befehlssatz, genau wie eine Hardware-CPU. Die Architektur der virtuellen Maschine ist das Geheimnis der Lebendigkeit in MicroBlocks. Wenn Sie Skripte bearbeiten, werden die Skripte schrittweise in Anweisungen für virtuelle Maschinen kompiliert und an den Mikrocontroller gesendet, damit sie sofort ausgeführt werden können.

Leider haben Mikrocontroller nur begrenzten Speicherplatz für Code. Wenn MicroBlocks-Benutzer größere und komplexere Projekte erstellen, kann dieser Speicherplatz voll werden. Einige Robotikteams in China haben dieses Limit im vergangenen Jahr erreicht. Obwohl wir den Speicherplatz so weit erweitern konnten, dass sie weitermachen konnten, wird MicroBlocks offensichtlich für ehrgeizige Projekte verwendet, die die aktuellen Grenzen des Codespeicherplatzes ausreizen.

MicroBlocks 1.0 verwendete virtuelle 32-Bit-Anweisungen; MicroBlocks 2.0 verwendet 16-Bit-Anweisungen. Das bedeutet, dass MicroBlocks 2.0 fast doppelt so viel Code im gleichen Codespeicherplatz speichern kann. Da Code mehr als nur Anweisungen enthält (z. B. String-Konstanten und Metadaten), halbiert MicroBlocks 2.0 die Codegröße zwar nicht genau, aber die Einsparungen sind beträchtlich.

Vergleichstabelle der Codegröße, 32-Bit- vs. 16-Bit-Anweisungen

Hinweis: Da sich die neuen 16-Bit-Anweisungen von den früheren 32-Bit-Anweisungen unterscheiden, müssen Sie die Firmware auf Ihren Platinen aktualisieren, bevor Sie MicroBlocks 2.0 verwenden können. Natürlich ist es sinnvoll, die Firmware auf Ihren Platinen auf dem neuesten Stand zu halten, aber in diesem Fall ist es unerlässlich. Wenn Sie eine MicroBlocks 1.0-Platine an MicroBlocks 2.0 anschließen, können Sie sie nicht programmieren. (Sie können jedoch die Firmware-Versionsnummer überprüfen.) Ebenso können Sie eine MicroBlocks 2.0-Platine nicht mit der alten 1.0-Version von MicroBlocks programmieren.

Die MicroBlocks-Apps warnen Sie, wenn die Firmware auf Ihrer Platine nicht mit der App kompatibel ist.

4 „Gefällt mir“

Danke für die Info, ich bin gespannt!

2 „Gefällt mir“

Die letzte stabile Version 1 mit 32-Bit und die erste Pilotversion der Version 2 mit 16-Bit werden voraussichtlich heute oder morgen verfügbar sein. Es wird einen separaten Blog-Beitrag und eine eigene Wiki-Seite mit einer Erläuterung der Unterschiede geben. Beide Versionen sind mit den Projektdateien austauschbar, nicht jedoch mit den VM-Dateien.

3 „Gefällt mir“

Werde mir demnächst nochmal microblocks genau anschauen.
Freue mich!

Michael

4 „Gefällt mir“

Die neueste stabile Version von MicroBlocks Version 1 wurde veröffentlicht, ebenso wie die erste Pilotversion von MicroBlocks Version 2.

Stabile version MicroBlocks v1

https://microblocks.fun/downloads/latest/
https://microblocks.fun/run/microblocks.html

Pilotversion von MicroBlocks Version 2

https://microblocks.fun/downloads/pilot/
https://microblocks.fun/run-pilot/microblocks.html

Lesen Sie den Blogbeitrag noch einmal sorgfältig durch, um alle Änderungen zu verstehen.

3 „Gefällt mir“
3 „Gefällt mir“

Hi Peter,
ich habe MicroBlocks 2.0 intensiv mit dem Calliope v3 getestet. In der neuen Version sehen die Programmblöcke noch besser aus als bisher. Es gibt auch einen dunklen Modus.
https://microblocks.fun/run-pilot/

Wenn ich den Calliope verbinde (USB oder Bluetooth BLE), werden zwei zum Calliope passende Bibliotheken LED-Display und einfache Sensoren automatisch geladen. Für die Erzeugung von Tönen und Musik kann ich die Bibliotheken Klang und Klingelton nachladen. Das Programmieren funktioniert einfacher als mit MakeCode oder OpenRoberta, denn jede Programmänderung wird mit MicroBlocks unmittelbar auf den Calliope übertragen.

Das Programm bleibt auf dem Calliope ausführbar, wenn die Verbindung zum Computer getrennt wird. Und was sich viele Leute wünschen, ist mit MicroBlocks möglich. Ich kann das Programm vom Calliope wieder in die Programmierumgebung zurückholen, sobald die Verbindung zu MicroBlocks auf diesem oder auch auf einem anderen Computer hergestellt ist.

Ein wesentliches Detail habe ich bisher vergeblich gesucht. Wie kann ich die drei RGB LEDs mit MicroBlocks richtig ansteuern? In der Bibliothek gibt es die nötigen Blöcke… Es gelingt mir, alle drei LEDs auf grün zu schalten und die LEDs auch einzeln auf rot, gelb, blau. Wenn ich allerdings die LEDs um 1 rotieren lasse, kommen grüne LEDs zum Vorschein …. ein Zeichen dafür, dass ich die Anzahl der LEDs auf 3 festlegen muss. Hier muss ich einen Pin angeben …. welchen Pin muss ich wählen?

Beste Grüße
Ralf

2 „Gefällt mir“

Schön, dass Ihre MicroBlocks bei Ihnen so gut funktioniert. Sie hatten die NeoPixels-Bibliothek bereits gefunden. Damit es wie gewünscht funktioniert, können Sie den folgenden Code ausführen. MicroBlocks weiß bereits, auf welchem ​​Pin sich die Neopixel befinden, sodass Sie das nicht mehr eingeben müssen, nur die Anzahl ist wichtig.

2 „Gefällt mir“

Hi Peter,
ja, ohne Angabe des Pins funktioniert das Programm.

Die Angabe des Pin ist allerdings notwendig, wenn ich einen zweiten NeoPixel-Streifen am Grove-Port anschließe und sowohl die internen wie auch die externen NeoPixel in einem Programm ansprechen möchte. In diesem Fall müsste ich jeweils auf den anderen Pin umschalten.

  • Wenn Knopf A gedrückt, mache was mit den internen NeoPixeln.
  • Wenn Knopf B gedrückt, mache was mit den externen NeoPixeln.

Beste Grüße
Ralf

2 „Gefällt mir“

Und hier kommt die Lösung …

  • die Anzahl der LEDs onboard ist eigentlich 3, aber ich lasse mit 7 zusätzlich 4 dunkle Plätze durchs Bild laufen.
  • der Neopixel-Streifen hat 30 LEDs und wird beim Calliope v3 am Grove-Port A1 angeschlossen. Die Verbindung zum Neopixel-Streifen ist Pin C16, der bei der Programmierung mit Pin 16 bezeichnet ist.
  • die Anzahl der LEDs im Neopixel-Streifen ist 30, von denen aber nur 3 beleuchtet sind. Damit soll das gleiche Lichtbild wie bei den onboard LEDs erzeugt werden.
  • die beiden Programmteile für Knopf A und Knopf B können nicht gleichzeitig laufen, weil sie im Hintergrund den gleichen Pixelspeicher verwenden, der beim Umschalten neu initialisiert wird.

Der Programmcode ist für den Calliope v3 und MicroBlocks 2.0
calliope-neopixel.ubp (15,9 KB)

2 „Gefällt mir“