Browserbasierte Blockly-IDE für CircuitPython auf dem Cytron MAKER-PI-RP2040
CircuitBlox ermöglicht es Kindern und Einsteigern, physische Elektronikprojekte zu programmieren – ohne eine einzige Zeile Code zu tippen. Per Drag & Drop werden bunte Blöcke zu einem Programm zusammengesteckt, das CircuitBlox direkt in lauffähigen CircuitPython-Code übersetzt und über eine serielle Verbindung auf den Mikrocontroller überträgt.
Der Einstieg in Mikrocontroller-Programmierung scheitert oft an zwei Hürden: der Entwicklungsumgebung und der Syntax. CircuitBlox beseitigt beides.
- Kein Setup: Die App läuft direkt im Browser – kein npm, kein Build-Schritt, keine Installation.
- Kein Tippen: Blöcke statt Syntax. Kinder im Grundschul- und Mittelschulalter können sofort loslegen.
- Echte Hardware: Der generierte Code läuft auf echtem CircuitPython, nicht auf einem Simulator. Was man baut, funktioniert wirklich.
- Deutsch: Alle Labels, Tooltips und Fehlermeldungen sind auf Deutsch – für den Einsatz im deutschsprachigen Unterricht oder Makerspaces.
Das Projekt entstand mit dem Ziel, ein Werkzeug zu schaffen, das in AGs, Schulstunden und Workshops ohne Vorkenntnisse sofort einsetzbar ist.
CircuitBlox ist auf dieses Board zugeschnitten:
- RP2040-Chip (Dual-Core ARM Cortex-M0+, 264 KB RAM)
- Onboard: 2× Grove-kompatible I2C-Ports, 7× Grove-Ports (GPIO/ADC), 4× Motor-Treiber (DC + Servo), 2× RGB-NeoPixel, Piezo-Buzzer, programmierbare LEDs, USB-C
- CircuitPython-kompatibel: Wird als USB-Laufwerk (
CIRCUITPY) erkannt, Code einfach kopieren - Kinder-freundlich: Robuste Stecker, farbige Ports, kein Löten nötig
Bezugsquelle: Cytron oder gängige Elektronik-Distributoren (Mouser, Reichelt, …)
CircuitBlox hat fertige Blöcke für folgende Komponenten:
| Kategorie | Komponenten |
|---|---|
| Temperatur & Feuchte | DHT22, DHT11, BMP280 |
| Abstand & Licht | HC-SR04 (Ultraschall), LDR (Fotowiderstand), BH1750 (Lux) |
| Digital-Sensoren | Taster, Hindernis, Liniensensor, Neigung, Magnetfeld, Flamme, Schall, Touch, Vibration |
| Analog (universell) | Analogeingang (0–65535), NTC-Temperaturfühler |
| Joystick & Encoder | Joystick (X/Y/Taster), Rotary Encoder |
| LED & Licht | Einzel-LED, Blink-LED, RGB-LED, 2-Farb-LED, NeoPixel |
| Ton | Passiver Buzzer (Frequenz), Aktiver Buzzer |
| Bewegung | Servo (Winkel), DC-Motor (vorwärts/rückwärts/stop) |
| Sonstiges | Relais |
Ein günstiges 37-teiliges oder 45-teiliges KY-Sensor-Set (z. B. „Elegoo Sensor Kit" oder vergleichbare Sets) deckt den Großteil der Blöcke ab.
Web Serial API wird benötigt – unterstützt von:
- Google Chrome (empfohlen)
- Microsoft Edge
Firefox und Safari werden nicht unterstützt.
- Visueller Editor mit Blockly (Drag & Drop)
- Live-Codegenerierung – CircuitPython-Code wird in Echtzeit angezeigt
- Direkt ausführen – Code wird per Web Serial Raw REPL auf das Board geladen und gestartet
- Serieller Monitor –
print()-Ausgaben des Boards live im Browser sehen - REPL-Eingabe – manuelle Befehle direkt ins Board schicken
- Keine Installation –
index.htmlim Browser öffnen, fertig
- Board per USB-C anschließen (CircuitPython muss installiert sein)
index.htmlin Chrome oder Edge öffnen- Blöcke zusammenstecken
- ▶ Ausführen klicken → Browser fragt nach Zugriff auf den seriellen Port → Board auswählen
- Programm läuft auf dem Board; Ausgaben erscheinen im Seriellen Monitor
index.html – Einstiegspunkt (keine Build-Pipeline nötig)
css/style.css – Dunkles Theme
js/
boards.js – Board-Profil & Pin-Konstanten
toolbox.js – Block-Kategorien & Toolbox-Definition
blocks/
control.js – SETUP- und FÜR-IMMER-Blöcke
sensors.js – Sensor-Block-Definitionen
actuators.js – Aktor-Block-Definitionen
generator.js – Blockly → CircuitPython Transpiler
app.js – Workspace-Init & UI-Events
serial.js – Web Serial API (Raw REPL)
- Phase 2.5 – Code direkt als
code.pyauf CIRCUITPY speichern (File System Access API) - Phase 3 – Projekte speichern/laden, Board-Auswahl
- Phase 4 – OLED-Display, weitere Sensoren, Notenblöcke, Lernmodus
Dieses Projekt ist für den Einsatz in Bildung und Maker-Communities gedacht. Lizenz folgt.