Impulswoche - MysteryBox
Sammlung einfacher, kommentierter Beispielprogramme fuer den BBC micro:bit V2.2, programmiert in MicroPython. Entstanden fuer die Impulswoche an der Neuen Kantonsschule Aarau.
Jedes Sample ist eine in sich abgeschlossene Seite (README.md) mit:
- Aufgabe, Materialliste und Verkabelung (Text + ASCII-Skizze)
- dem vollstaendigen Programm - direkt in der README, automatisch aus
main.pyeingefuegt (siehetools/) - einem Ordner
wiring/fuer das reale Foto der Schaltung (nach dem Test)
Dazu die Masse der Bauteile fuers CAD unter hardware/
(Panel-Ausschnitte fuer Taster, Displays usw.).
Editor
Alle Beispiele sind fuer den Online-Editor gedacht: https://python.microbit.org/v/3
Uebertragung Schritt fuer Schritt: docs/setup.md
Fester Einstiegsweg (Station fuer Station, Servo + Sensoren + Anzeige bis zur Codeeingabe): docs/workflow.md
Zeitplan der ganzen Woche (Tage, Meilensteine, Fristen): docs/ablaufplan.md
Tools
Anleitungen rund um den Bau, auf der Website im Menue Tools:
- Loeten: Temperaturen, Schritte, Fehlersuche
- LightBurn: Platte mit Loch zeichnen und als DXF exportieren, dazu Bedienung und alle Ausschnitt-Dateien
- Fusion 360: 3D modellieren, zwei Uebungen (DXF fuer den Laser, STL fuer den 3D-Druck)
Repo-Struktur
Ordnerstruktur anzeigen
micro_bit/
├── README.md
├── docs/
│ ├── setup.md Editor + Uebertragung auf den micro:bit
│ ├── workflow.md Einstiegsweg Station fuer Station (Mo/Di)
│ └── ablaufplan.md Agenda 2026 (Mo bis Fr)
├── tools/
│ └── build_readme.py fuegt main.py in die Sample-READMEs ein
│
├── code-samples/ kategorie / bauteil / sample
│ ├── onboard/ eingebaut, KEINE Verkabelung, kein hardware/
│ │ ├── buttons/ a-b-zaehler
│ │ ├── touch-logo/ logo-schalter (V2)
│ │ ├── pin-touch/ beruehr-toene
│ │ ├── accelerometer/ wasserwaage · shake-wuerfel
│ │ ├── compass/ kompass-pfeil
│ │ ├── microphone/ lautstaerke-balken (V2)
│ │ ├── temperature/ temperatur-anzeigen
│ │ ├── light-level/ nachtlicht
│ │ ├── display/ bilder-und-text · einzelne-pixel
│ │ ├── speaker/ melodie-und-sound (V2)
│ │ └── radio/ senden-empfangen (2 micro:bits)
│ ├── input/
│ │ ├── ds425-pushbutton/
│ │ │ ├── ton-bei-druck/ main.py · README.md · wiring/
│ │ │ └── ton-solange-gedrueckt/
│ │ ├── ec11-encoder/
│ │ │ ├── drehen-zaehler/
│ │ │ ├── drehen-und-druck/
│ │ │ └── ton-hoehe-einstellen/
│ │ └── hc-sr04-abstandssensor/
│ │ ├── abstand-messen/
│ │ ├── naeherungsalarm/
│ │ └── entfernungsanzeige-tm1637/
│ ├── servo/
│ │ └── miuzei-9g-servo/
│ │ ├── a-b-drehen/
│ │ ├── zwei-stellungen/
│ │ ├── sweep/
│ │ ├── winkel-mit-encoder/
│ │ ├── endlagen-kalibrieren/
│ │ ├── bolzen-schalten/
│ │ └── box-startprogramm/
│ └── output/
│ ├── ws2812b-led-strip/
│ │ ├── erste-farben/
│ │ ├── lauflicht/
│ │ └── regenbogen/
│ └── tm1637-4digit/
│ ├── zahl-anzeigen/
│ ├── zaehler/
│ └── stoppuhr/
│
└── hardware/ Masse fuers CAD, gleicher Pfad wie code-samples
(nur fuer externe Bauteile, nicht fuer onboard/)
├── input/
│ ├── ds425-pushbutton/ README.md · dimensions.json · bilder/
│ ├── ec11-encoder/
│ └── hc-sr04-abstandssensor/
├── servo/
│ └── miuzei-9g-servo/
└── output/
├── ws2812b-led-strip/
└── tm1637-4digit/
Samples
onboard (eingebaut, kein Aufbau)
| Bauteil | Sample | Beschreibung |
|---|---|---|
| buttons | a-b-zaehler | A zaehlt hoch, B runter, A+B = Reset |
| touch-logo | logo-schalter | Logo antippen schaltet ein Herz an/aus (V2) |
| pin-touch | beruehr-toene | P0/P1/P2 antippen spielt je einen Ton |
| accelerometer | wasserwaage | Leuchtpunkt zeigt die Neigung |
| accelerometer | shake-wuerfel | Schuetteln = Zufallszahl 1..6 |
| compass | kompass-pfeil | Pfeil zeigt immer nach Norden |
| microphone | lautstaerke-balken | Lautstaerke als Balken (V2) |
| temperature | temperatur-anzeigen | Knopf A -> Temperatur scrollt durch |
| light-level | nachtlicht | wird es dunkel, leuchtet die Matrix |
| display | bilder-und-text | Bilderfolge und Lauftext |
| display | einzelne-pixel | Leuchtpunkt mit den Knoepfen bewegen |
| speaker | melodie-und-sound | Melodie, Soundeffekt, Ton per Logo (V2) |
| radio | senden-empfangen | zwei micro:bits funken sich Zahlen zu |
input
| Bauteil | Sample | Beschreibung |
|---|---|---|
| ds425-pushbutton | ton-bei-druck | Herz + kurzer Ton beim Druecken |
| ds425-pushbutton | ton-solange-gedrueckt | Dauerton, solange gehalten wird |
| ec11-encoder | drehen-zaehler | Wert 0..9 per Drehknopf |
| ec11-encoder | drehen-und-druck | zusaetzlich: Druck = Reset auf 0 |
| ec11-encoder | ton-hoehe-einstellen | Drehen = Tonhoehe, Druck = an/aus |
| hc-sr04-abstandssensor | abstand-messen | Abstand als LED-Balken + Zahl seriell |
| hc-sr04-abstandssensor | naeherungsalarm | piept schneller, je naeher ein Hindernis ist |
| hc-sr04-abstandssensor | entfernungsanzeige-tm1637 | Abstand in cm auf der TM1637-Anzeige |
servo
| Bauteil | Sample | Beschreibung |
|---|---|---|
| miuzei-9g-servo | a-b-drehen | Knopf A/B drehen den Servo, A+B zurueck auf 0 |
| miuzei-9g-servo | zwei-stellungen | Knopf A = 0 Grad, Knopf B = 180 Grad |
| miuzei-9g-servo | sweep | faehrt langsam hin und her, Knopf A haelt an |
| miuzei-9g-servo | winkel-mit-encoder | EC11-Drehknopf stellt den Winkel |
| miuzei-9g-servo | endlagen-kalibrieren | sichere Endpunkte einer eigenen Mechanik finden |
| miuzei-9g-servo | bolzen-schalten | zwischen zwei kalibrierten Endpunkten fahren (Endanschlag) |
| miuzei-9g-servo | box-startprogramm | Startprogramm fuer die eigene Box: A oeffnet, B schliesst, dazu Ideen mit den Sensoren |
output
| Bauteil | Sample | Beschreibung |
|---|---|---|
| ws2812b-led-strip | erste-farben | Strip zum Leuchten bringen, LEDs einfaerben |
| ws2812b-led-strip | lauflicht | ein Punkt wandert, Knopf A/B = Tempo |
| ws2812b-led-strip | regenbogen | Regenbogen laeuft ueber den Strip |
| tm1637-4digit | zahl-anzeigen | Grundfunktion, Treiber inklusive |
| tm1637-4digit | zaehler | Knopf A/B zaehlen 0..9999, A+B = Reset |
| tm1637-4digit | stoppuhr | MM:SS, Start/Pause/Reset, blinkender Doppelpunkt |
Weitere Kategorien, Bauteile und Samples folgen.
Neues Sample hinzufuegen
Anleitung anzeigen
- Ordner
code-samples/<kategorie>/<bauteil>/<sample>/anlegen mitmain.pyundREADME.md. Bei externen Bauteilen zusaetzlichwiring/. - Die
README.mdnach dem festen Abschnitts-Schema aufbauen (Details: code-samples/README.md). Kurz: Beschreibung -> Material -> Verkabelung -> Foto -> Wie der Code funktioniert ->## Programmmit dem Code direkt darunter -> Uebertragen -> Erwartetes Verhalten -> Erweiterungen. -
Im Abschnitt
## Programmnur die zwei Marker setzen, den Code NICHT von Hand einfuegen:<!-- CODE:START --> <!-- CODE:END --> python tools/build_readme.pyausfuehren - fuegtmain.pyzwischen die Marker ein. Nach jeder Aenderung anmain.pyerneut laufen lassen;python tools/build_readme.py --checkmeldet veraltete READMEs.
Website (GitHub Pages)
Details anzeigen
Dieses Repo laesst sich unveraendert als Website veroeffentlichen: die
_config.yml im Root aktiviert Jekyll (Theme minima) mit den GitHub-Pages-
eigenen Plugins jekyll-readme-index und jekyll-relative-links - jede
README.md wird automatisch zur passenden Seite, bestehende relative Links
zwischen den Ordnern funktionieren dabei unveraendert weiter.
Einmalig aktivieren: Settings -> Pages -> Source: Deploy from a branch ->
Branch main / (root). Danach ist die Seite unter
https://masta-nksa.github.io/microbit-micropython-samples/ erreichbar und
aktualisiert sich bei jedem Push automatisch. Lokale Vorschau:
bundle exec jekyll serve.
Hinweise
- micro:bit V2 hat einen eingebauten Lautsprecher und ein Mikrofon.
Toene laufen mit
music.pitch(freq, dauer, pin=None)ueber den Lautsprecher. - Die Pins P0/P1/P2 haben abschaltbare interne Pull-up-/Pull-down-Widerstaende.
© 2026 Martin Stangl (masta)