Skip to content

softyde/brickbreaker-code

 
 

Repository files navigation

Important

Dieses Projekt ruht bis auf Weiteres (d.h. vermutlich bis in alle Ewigkeit). Obwohl alles soweit funktioniert und uns bei der WRO 2025 eine Top-Platzierung ermöglicht hat1. Warum also? Ganz einfach: an meiner Schule stehen "nur" iPads für die Robotik AG zur Verfügung und bekanntermaßen unterstützt Safari navigator.bluetooth nicht.

Es ist zwar nicht auszuschließen, dass sich das in naher Zukunft ändert. Trotzdem habe ich mit der Entwicklung eines neuen Projektes begonnen. Dies ermöglicht auf Basis von Capacitor die Nutzung auch auf iPads (und auch Android Tablets). Außerdem verzichte ich auf die Unterstützung von direkter Quellcode-Eingabe ("Monaco-Editor"), was das Programm nochmal viel schlanker macht2. Zu guter Letzt hilft ein sauberes Aufsetzen auf Basis von React 19/Redux und Vite 7/Typescript 5.8 auch, einige Altlasten aus pybricks-code loszuwerden.

Ich werde berichten.

1 Die Möglichkeit, mit einem einzigen Befehl, Gyro-gesteuert gradeaus zu fahren, grenzt gegenüber der Lego-eigenen Lösung ein wenig an Wettbewerbsverzerrung - gerade in den unteren Altersklassen.
2 Wer direkt in Python entwickeln will, verwendet eh einen Laptop und ist mit pybricks-code bestens bedient. Meine Zielgruppe ist aber bekanntlich eine andere.

Update 4.11.2025

Eine erste Alpha-Version gibt es unter https://alpha.brickbreaker.de - sie ersetzt den bisherigen pybricks-dev-Fork:

preview_alpha

Falls der Start nicht funktioniert, hast Du eventuell noch den Service-Worker der vorherigen Version laufen. In der Developer-Console des Browsers kann man den löschen, dann sollte nach einem Refresh die neue Seite geladen werden.

brickbreaker-code

A web app for programming LEGO® Powered Up Smart Hubs with Pybricks MicroPython for use in a German elementary school and support of Blockly elements.

Primary goal

Das Ziel ist, das Tool inkl. Unterstützung für Blockly-Entwicklung und vollständig auf Deutsch zur Verfügung zu stellen.

Die Blöcke sollen dabei (nach heutiger Idee) nicht (nur) 1:1 die pybricks Python-Bibliothek abbilden, sondern für Grundschülerinnen und -schüler vereinfachte Programmiermöglichkeiten bieten.

Zielsystem ist primär LEGO® Education SPIKE™ Prime.

Milestones

  • Mai 2025 - eine erste Beta-Version bei der WRO 2025 zum Einsatz bringen 🤖

Try it at https://alpha.brickbreaker.de.

This is an alpha. And nothing will work.
If it does: don't use it for anything serious.

(0.1.0-alpha15 / 15.05.2025)

Preview

Preview_WRO_beta_202505.mp4

Next steps / wip

This is still a prototype and a long way from being put to good use.

  • save/load blockly data
  • handle multiple editors
  • generate py code from blockly
  • create source map for generated py code (dev progress: https://youtu.be/bWZQiGOCs4I)
  • source map works both ways: block <> code
  • develop some useful blocks
  • run it on a real spike prime device (dev progress https://youtu.be/rxz_a8NYH68)
  • improve variable handling (dev progress https://youtu.be/X3-U1x4zmDw)
  • support user-defined methods
  • custom rendering for connection types
  • dark mode support
  • language selection (de/en)
  • develop some even more useful blocks (vars, parameters, etc.) (wip)
  • included some plugins: minimap / zoom-to-fit
  • ⇉ CURRENT 📌 implemented virtual coach
  • cleanup code
  • fix dependencies
  • fix broken tests
  • peace & love

Screenshot (more or less up to date)

Screenshot_1 Screenshot_2


LEGO® is a trademark of the LEGO Group of companies which does not sponsor, authorize or endorse this project.

About

Web IDE for Pybricks with Blockly support

Resources

License

Contributing

Stars

Watchers

Forks

Languages

  • TypeScript 90.0%
  • JavaScript 7.5%
  • SCSS 2.2%
  • Other 0.3%