Raspberry Pi Pico im Unterricht: MicroPython in 6 Wochen
Raspberry Pi Pico im Unterricht mit MicroPython: 6 Wochen à 40 Minuten, kostenlose Projekte, Thonny-Einrichtung, Materialliste für 24 und eine Beispielstunde.
Du suchst einen Plan für den Raspberry Pi Pico im Unterricht? Die kurze Antwort: 6 Wochen, eine 40-minütige Stunde pro Woche, Zweiergruppen und pro Woche genau ein neues MicroPython-Konzept. In Woche 1 schalten die Schülerinnen und Schüler die Onboard-LED mit einer einzigen Zeile in der REPL von Thonny ein; danach folgen Variablen und Timing, Funktionen, Taster und Bedingungen, Ton und ein Abstandssensor mit PWM, und in der letzten Woche entsteht mit einer Liste und einer for-Schleife ein Klavier mit fünf Tasten. Das Projekt jeder Woche ist in BlueGrays mit Schaltplan, Bauteilliste und Code kostenlos, die Klasse braucht also kein Premium. Der Plan nutzt den Raspberry Pi Pico oder Pico W mit Thonny und richtet sich an Schülerinnen und Schüler der Sekundarstufe, die noch nie programmiert haben.
Zuerst geht es darum, warum Pico und MicroPython im Klassenzimmer so gut funktionieren, dann um die Vorbereitung vor der ersten Stunde: die MicroPython-UF2-Datei, den BOOTSEL-Taster, die Wahl des Interpreters in Thonny und worauf du an Schulrechnern achten solltest. Danach bekommst du den Wochenplan mit der Arduino-C++-Entsprechung jedes Konzepts, eine Materialliste für 24 Schülerinnen und Schüler, eine Beispielstunde im Minutentakt, drei kurze Codebeispiele, eine Bewertungstabelle und Lösungen für die häufigsten Probleme im Unterricht. Die 8-wöchige Version desselben Ansatzes mit Arduino und Blöcken findest du im Beitrag Blockprogrammierung im Unterricht; dieser Plan wiederholt ihn nicht, sondern ist für Klassen gedacht, die direkt mit textbasiertem Code starten oder nach den Blöcken zu Python wechseln wollen.

Warum Raspberry Pi Pico und MicroPython?
Der Pico ist ein kleines Mikrocontroller-Board, das Raspberry Pi um seinen eigenen RP2040-Chip gebaut hat. Er ist kein Computer, sondern führt wie ein Arduino ein einziges Programm immer wieder aus. Im Unterricht hat er drei Stärken. Die erste ist MicroPython, eine abgespeckte Python-Version für Mikrocontroller. Es ist gut lesbar und kommt ohne Semikolons und geschweifte Klammern aus; wer Python aus dem Informatikunterricht kennt, steuert mit derselben Sprache nun eine LED oder einen Summer. Die zweite: Es wird nicht kompiliert. Sobald du in Thonny auf Ausführen drückst, läuft der Code auf dem Board, und du wartest nicht nach jeder kleinen Änderung auf Kompilieren und Hochladen. In einer 40-Minuten-Stunde bedeutet das viel mehr Versuche in derselben Zeit. Die dritte ist die REPL: Tippe eine einzelne Zeile in die Shell von Thonny, drücke Enter, und das Board führt sie sofort aus. Wenn jemand led.on() tippt und die LED angeht, ist in fünf Minuten klar, dass Programmieren heißt, dem Board Befehle zu geben. Der niedrige Preis und die Tatsache, dass das Board direkt aufs Steckbrett passt, machen Zweiergruppen realistisch. Wann ist der Arduino die bequemere Wahl? Bei jüngeren Kindern, die gerade erst lesen gelernt haben, oder wenn dein Set vor allem aus 5-V-Modulen besteht, bringt ein Start mit Arduino und Blöcken weniger Überraschungen. Technische Daten und Pinbelegung findest du im Beitrag Was ist der Raspberry Pi Pico.
| Merkmal | Raspberry Pi Pico + MicroPython | Arduino Uno + C++ |
|---|---|---|
| Pinspannung | 3,3 V (nicht 5-V-tolerant) | 5 V |
| Sprache und Editor | MicroPython, Thonny | C++, Arduino IDE |
| Code ausführen | Sofort per Ausführen, kein Kompilieren | Nach jeder Änderung kompilieren und hochladen |
| Zeilenweise testen (REPL) | Ja: >>> in der Thonny-Shell | Nein |
| Analoge Eingänge | 3 Pins (GP26–GP28), read_u16() 0–65535 | 6 Pins (A0–A5), analogRead() 0–1023 |
| USB-Buchse | Micro-USB | USB-B (Uno R3) |
| Auf dem Steckbrett | Pico H / WH mit Stiftleisten, direkt einsteckbar | Board liegt daneben, Verbindung über Kabel |
| Preis | Meist deutlich günstiger als ein Uno | Teurer |
Vor der ersten Stunde: MicroPython und Thonny
- Board erkennen: Pico, Pico W, Pico 2 und Pico 2 W brauchen jeweils eine eigene MicroPython-Datei. Sieh dir die Beschriftung auf dem Board an und lade von der offiziellen MicroPython-Downloadseite die aktuelle .uf2-Datei für genau dieses Board. Mit der falschen Datei startet das Board nicht oder das WLAN funktioniert nicht.
- Mit gedrücktem BOOTSEL einstecken: Halte den weißen BOOTSEL-Taster neben der USB-Buchse gedrückt, während du das Kabel in den Rechner steckst, und lass ihn dann los. Am Rechner erscheint ein Laufwerk namens RPI-RP2 (beim Pico 2 heißt es RP2350).
- UF2-Datei kopieren: Zieh die .uf2-Datei auf dieses Laufwerk. Das Board startet nach wenigen Sekunden neu und das Laufwerk verschwindet; das ist kein Fehler, sondern zeigt, dass MicroPython installiert ist. MicroPython bleibt auf dem Board, du musst es nicht in jeder Stunde neu aufspielen.
- Interpreter in Thonny wählen: Wähle unter Tools > Options > Interpreter den Eintrag "MicroPython (Raspberry Pi Pico)" und lass den Port auf automatischer Erkennung. Dieselbe Auswahl erreichst du auch mit einem Klick unten rechts im Thonny-Fenster.
- Verbindung testen: In der Shell unten sollte das Zeichen >>> stehen. Tippe print("hallo") und drück Enter; kommt eine Antwort, ist das Board bereit für den Unterricht.
Verschieb die Installation auf den Schulrechnern nicht in die Stunde, sondern sprich eine Woche vorher mit der IT-Betreuung. Thonny läuft unter Windows, macOS und Linux und bringt sein eigenes Python mit, du musst Python also nicht separat installieren. Für Windows gibt es außerdem eine portable Version, die gar keine Installation braucht; in abgesicherten Computerräumen, in denen nur die IT Programme installieren darf, macht sie vieles einfacher. Windows 10 und 11 erkennen den Pico ohne zusätzlichen Treiber als seriellen Port (COM). Manche Schulen sperren USB-Speicher; dann taucht das Laufwerk RPI-RP2 an den Schülerrechnern womöglich nicht auf. Hast du MicroPython aber vorher an deinem eigenen Rechner aufgespielt, spielt das keine Rolle, weil im Unterricht nur die serielle Verbindung genutzt wird. Zeig der Klasse zum Schluss die beiden Optionen im Speichern-Dialog von Thonny: "This computer" speichert die Datei auf dem Rechner, "Raspberry Pi Pico" auf dem Board. Gruppen, die nicht wissen, was sie gewählt haben, finden ihren Code in Woche 6 nicht wieder.
Der 6-Wochen-Plan für den Raspberry Pi Pico im Unterricht
Jede Stunde ist für 40 Minuten und Zweiergruppen geplant. Alle Projekte in der Tabelle sind in BlueGrays kostenlos, und die Projekte der ersten drei Wochen haben neben dem Code auch eine Blockansicht. Die Reihenfolge ist bewusst gewählt: zuerst Ausgabe (LED), dann Variablen und Timing, Funktionen, danach Eingabe und Bedingungen, Ton und Sensor mit PWM und zum Schluss Listen und Schleifen. Jede Woche fügt genau eine neue Idee hinzu. Die letzte Spalte zeigt dasselbe Konzept in Arduino C++ und baut so eine Brücke für alle, die später zum Arduino wechseln; die C++-Seite im Detail findest du in den Arduino-Programmiergrundlagen.
| Woche | Ziel | Kostenloses BlueGrays-Projekt | Neues MicroPython-Konzept | Entsprechung in Arduino C++ |
|---|---|---|---|---|
| 1 | Den Pico kennenlernen, erstes Programm, digitaler Ausgang | Raspberry Pi Pico Onboard-LED Blinken (Pico und Pico W), Raspberry Pi Pico: Externe LED zum Leuchten bringen (GP14 + Steckbrett) | REPL (>>>), from machine import Pin, Pin(14, Pin.OUT), led.on() / led.off(), time.sleep(0.5), while True:, Einrückung | pinMode(14, OUTPUT); digitalWrite(14, HIGH); delay(500); void loop() |
| 2 | Variablen, Timing, zwei Ausgänge | Raspberry Pi Pico Zwei LEDs abwechselnd blinken (Blink-Flip, GP14 + GP13), Raspberry Pi Pico Polizeilicht-Effekt (Rot + Blau Strobe, GP11 + GP12) | WAIT_MS = 300 (Variable), led.value(1), led.toggle(), sleep_ms(300) | int waitMs = 300; digitalWrite(13, !digitalRead(13)); delay(waitMs); |
| 3 | Weniger Wiederholung: Funktionen | Raspberry Pi Pico Ampel-Simulator (3 LEDs sequenziell, GP11/GP12/GP13) | def all_off():, eine Funktion aufrufen, Dezimalsekunden mit sleep(1.5) | void allOff() { … } ; delay(1500); |
| 4 | Eingabe, Bedingungen und Zustand | Raspberry Pi Pico-Ampel mit 4-Modus-Tastenwahlschalter (Zustandsmaschine, GP11-13 + GP4) | Pin(4, Pin.IN, Pin.PULL_UP), if / elif / else, mode = (mode + 1) % 4, time.ticks_ms() | pinMode(4, INPUT_PULLUP); if / else if / else; millis() |
| 5 | Sensor und Ton | Raspberry Pi Pico Einparkhilfe (HC-SR04 + 3 LEDs + Summer) | PWM(Pin(17)), freq(), duty_u16(), time_pulse_us(), def … return | tone(17, 1200); pulseIn(); return |
| 6 | Listen, for-Schleife, Abschlussprojekt | Raspberry Pi Pico Tasten-Klavier (5 Taster + Summer + Melodie-Rekorder) | NOTE_HZ = (523, 587, 659, 698, 784), for … in, fünf Taster mit demselben Code | int notes[] = {523, 587, 659, 698, 784}; for (int i = 0; i < 5; i++) |

Mach es beim Umsetzen zur Regel, dass am Ende jeder Woche genau ein Wert geändert wird. In Woche 1 ruft das Onboard-LED-Projekt die LED über den Namen "LED" auf und läuft deshalb auf Pico und Pico W gleich; die externe LED kommt an GP14, also an den physischen Pin 19, und Pin 18 direkt daneben ist GND. In Woche 2 zeigt das Senken von WAIT_MS im Polizeilicht-Effekt von 300 auf 80, dass eine einzige Variable den Rhythmus beider LEDs zugleich ändert. In Woche 3 ruft die Ampel all_off() dreimal in der Schleife auf; lass die Klasse die Funktion löschen und dasselbe von Hand schreiben. Wenn sich neun Zeilen ansammeln, sagen dir die Jugendlichen selbst, wozu Funktionen da sind. Woche 4 ist ein Projekt der mittleren Stufe: Der Taster ist mit PULL_UP angeschlossen, liefert beim Drücken also 0, und jeder Druck schaltet den Modus weiter zwischen normal, nur rot, gelbes Blinken und aus. Der Code ist lang, lest ihn deshalb zuerst mit den Schritten im Tab Code verstehen. In Woche 5 läuft der HC-SR04 mit 5 V, vergiss also den Spannungsteiler an ECHO nicht; das Spielen mit den Werten GREEN_CM 100, YELLOW_CM 50, RED_CM 25 und STOP_CM 10 vermittelt die Idee eines Schwellenwerts. Wie der Sensor funktioniert, steht im Beitrag zum HC-SR04-Abstandssensor, wie man mit PWM Töne erzeugt, unter Was ist ein Summer; nimm einen passiven Summer, weil das Projekt die Frequenz ändert. In Woche 6 spielt das Klavier fünf Töne von DO bis SOL zwischen 523 und 784 Hz, und wer die DO-Taste eine Sekunde gedrückt hält, startet eine Melodieaufnahme. Der vollständige Code ist für dieses Niveau lang; lass ihn nicht abtippen, sondern die Frequenzen in der Liste NOTE_HZ ändern, damit jede Gruppe ihre eigene Tonleiter baut.
Abschlussfragen für jede Woche
- Woche 1: Was passiert, wenn du die Zeilen led.on() und time.sleep(0.5) vertauschst? Warum beginnen die Zeilen unter while True: weiter rechts?
- Woche 2: Wie verändert sich das Blinklicht, wenn du WAIT_MS von 300 auf 1000 erhöhst? Welche zwei Zeilen ersetzt toggle() allein?
- Woche 3: Wie viele Zeilen mehr müsstest du ohne die Funktion all_off() schreiben? Was ist der Unterschied zwischen dem Definieren und dem Aufrufen einer Funktion?
- Woche 4: Warum liefert button.value() beim Drücken eines Tasters mit PULL_UP den Wert 0? Wenn mode 3 ist und du drückst, welchen Wert hat mode dann?
- Woche 5: Warum schließen wir den ECHO-Pin des HC-SR04 nicht direkt an den Pico an? Was bewirkt die Zeile duty_u16(0) beim Summer?
- Woche 6: Welche Listen im Code musst du ändern, um dem Klavier eine sechste Taste zu geben?
Materialliste für eine Klasse mit 24 Personen
Teilst du 24 Schülerinnen und Schüler in Zweiergruppen, ergeben sich 12 Gruppen; mit einem Ersatzset bereitest du 13 Sets vor. Weil der Pico günstig ist, sind Zweier- statt Dreiergruppen an den meisten Schulen machbar, und jede Person sitzt länger an der Tastatur; bei Dreiergruppen reichen 9 Sets. Jede Gruppe braucht einen Rechner, denn Thonny spricht über USB mit dem Pico. Ein Smartphone oder Tablet dient dazu, das Wochenprojekt, den Schaltplan und den Tab Code verstehen in BlueGrays offen zu halten. Gelötet wird nichts, alles steckt im Steckbrett.
| Material | Pro Gruppe | Für die Klasse (12 Gruppen + 1 Ersatz) | Woche |
|---|---|---|---|
| Raspberry Pi Pico H oder Pico WH (Stiftleisten eingelötet) | 1 | 13 | Alle |
| Micro-USB-Datenkabel | 1 | 13 | Alle |
| Steckbrett (400 oder 830 Kontakte) | 1 | 13 | Alle |
| Steckbrücken Stecker-Stecker | 20 | etwa 260 | Alle |
| 5-mm-LEDs (rot, gelb, grün, blau) | 4 | etwa 60 | 1–5 |
| Widerstand 220 Ω | 4 | etwa 60 | 1–5 |
| Taster (4 Beinchen) | 5 | etwa 70 | 4, 6 |
| Passiver Summer | 1 | 13 | 5, 6 |
| HC-SR04-Ultraschall-Abstandssensor | 1 | 13 | 5 |
| Widerstände 1 kΩ und 2 kΩ (ECHO-Teiler) | 1 + 1 | 13 + 13 | 5 |
| Rechner mit Thonny | 1 | 12 | Alle |
| Potentiometer 10 kΩ (optional, für ADC) | 1 | 13 | Schnelle Gruppen |
Beispielstunde: Woche 1, das erste Programm
Der folgende Ablauf ist für Woche 1. Die erste Stunde ist die riskanteste, weil hier die Einrichtungsprobleme auftauchen. Wir gehen davon aus, dass MicroPython schon auf den Boards ist und Thonny auf den Rechnern installiert ist. Dasselbe Gerüst kannst du in den anderen Wochen nutzen: Einstieg, gemeinsames Lesen, Vorhersage, Schaltung, Ausführen, einen Wert ändern und Abschlussfrage. Hast du eine Doppelstunde mit 80 Minuten, verlängere die Phase "einen Wert ändern" und lass die Gruppen ihre Antworten auf die Abschlussfrage vorstellen.
| Zeit | Phase | Was passiert? |
|---|---|---|
| 0–5 Min. | Einstieg | Frage: Was muss man einem Board sagen, damit es "die LED einschaltet"? Die Antworten kommen an die Tafel. Die Boards werden ausgeteilt, BOOTSEL-Taster und USB-Buchse werden gezeigt. |
| 5–12 Min. | Erster Befehl in der REPL | Thonny-Shell am Beamer: from machine import Pin, led = Pin("LED", Pin.OUT), led.on(). Die Gruppen tippen dieselben drei Zeilen am eigenen Rechner und schalten dann mit led.off() aus. |
| 12–18 Min. | Projekt gemeinsam lesen | In BlueGrays das Projekt Onboard-LED Blinken öffnen. Erst mit eingeschaltetem Als Blöcke zeigen die Blöcke lesen, dann den Code; über while True und Einrückung sprechen. |
| 18–22 Min. | Ausführen | Code in Thonny einfügen und Ausführen (F5) drücken. Die LED blinkt alle 0,5 Sekunden. Die Stop-Schaltfläche zum Anhalten zeigen. |
| 22–32 Min. | Schaltung mit externer LED | USB abziehen. GP14 (Pin 19) → 220 Ω → langes Bein der LED, kurzes Bein → GND (Pin 18). Den Code des Projekts mit externer LED ausführen. Rollen: Aufbau und Kontrolle. |
| 32–37 Min. | Einen Wert ändern | time.sleep(0.5) erst auf 0.1, dann auf 2 setzen. Wer möchte, setzt die LED auf GP15 um und ändert im Code 14 in 15. |
| 37–40 Min. | Abschlussfrage | Eine Frage auf Papier: Was würde passieren, wenn die Zeilen unter while True: nicht eingerückt wären? Boards abziehen und in ihre nummerierten Kästchen legen. |
Drei kurze MicroPython-Beispiele für den Unterricht
Bei der Onboard-LED gibt es zwischen Pico und Pico W die meiste Verwirrung. Beim klassischen Pico hängt die LED an GP25, deshalb steht in älteren Beispielen Pin(25). Beim Pico W hängt sie am WLAN-Chip und hat keinen nummerierten GP-Pin, dort leuchtet sie mit Pin(25) also nicht. Was auf beiden funktioniert, ist der Name: Pin("LED"). Aktuelle MicroPython-Versionen kennen diesen Namen für Pico, Pico W und Pico 2, und genau deshalb nutzt ihn auch das Onboard-LED-Projekt in BlueGrays. Hast du gemischte Boards in der Klasse, kannst du allen denselben Code geben. Kennt eine alte Firmware den Namen "LED" nicht, hilft ein Update der UF2-Datei.
1from machine import Pin
2import time
3
4# "LED" adı Pico, Pico W ve Pico 2'de karttaki LED'i bulur / The name "LED" finds the onboard LED on Pico, Pico W and Pico 2
5led = Pin("LED", Pin.OUT)
6# Eski firmware'li klasik Pico'da: Pin(25, Pin.OUT) / Classic Pico with old firmware: Pin(25, Pin.OUT)
7# Pico W'de Pin(25) LED'i yakmaz / On the Pico W, Pin(25) does not light the LED
8
9while True:
10 led.toggle() # Durumu tersine çevir / Flip the state
11 time.sleep(0.5) # 0,5 saniye bekle / Wait 0.5 seconds
12Der Code für die externe LED nutzt dasselbe Gerüst, nur die Pinnummer ändert sich. Hier steht die Wartezeit in einer Variablen namens WAIT; das ist die erste Zeile, die in Woche 2 geändert wird. Die Variable count und die Zeile print() schreiben bei jedem Aufleuchten eine Zahl in die Shell von Thonny, so sieht die Klasse am Bildschirm, dass die Schleife wirklich läuft. Die 14 im Code ist eine GP-Nummer, keine physische Pinnummer; genau das verwechseln Schülerinnen und Schüler am häufigsten.
1from machine import Pin
2import time
3
4LED_PIN = 14 # LED'in bağlı olduğu GP pini (fiziksel pin 19) / GP pin the LED is wired to (physical pin 19)
5WAIT = 0.5 # Bekleme süresi, saniye / Wait time in seconds
6
7led = Pin(LED_PIN, Pin.OUT) # Pini çıkış yap / Make the pin an output
8count = 0 # Kaç kez yandığını say / Count how many times it lit
9
10while True:
11 led.on() # LED'i yak / Turn the LED on
12 count = count + 1
13 print("LED", count) # Thonny Shell'e yaz / Print to the Thonny Shell
14 time.sleep(WAIT)
15 led.off() # LED'i söndür / Turn the LED off
16 time.sleep(WAIT)
17Für einen Taster gibt es zwei Schaltungen, und beide lohnen sich. Mit PULL_UP geht ein Beinchen des Tasters an GP15 und das gegenüberliegende an GND; ein Widerstand im Pico zieht den Pin auf 3,3 V, beim Drücken wird er mit GND verbunden und liefert 0. Alle Pico-Tasterprojekte in BlueGrays nutzen diesen Weg, weil kein zusätzliches Kabel nötig ist. Mit PULL_DOWN geht das gegenüberliegende Beinchen an den Pin 3V3(OUT) (Pin 36) und der Taster liefert beim Drücken 1; die Logik wirkt natürlicher, aber das Kabel landet leicht versehentlich an VBUS (Pin 40, 5 V). Welche der vier Beinchen eines Tasters miteinander verbunden sind, erklären wir im Beitrag zum Taster-Anschluss. Starte Woche 4 mit dem kurzen Code unten und geh dann zum Moduswähler über.
1from machine import Pin
2import time
3
4led = Pin(14, Pin.OUT) # GP14 -> 220 ohm -> LED -> GND / GP14 -> 220 ohm -> LED -> GND
5button = Pin(15, Pin.IN, Pin.PULL_UP) # Buton GP15 ile GND arasında / Button between GP15 and GND
6# PULL_DOWN: Pin(15, Pin.IN, Pin.PULL_DOWN), buton GP15 ile 3V3(OUT) arasında / button between GP15 and 3V3(OUT)
7# PULL_DOWN ile koşul == 1 olur / With PULL_DOWN the condition becomes == 1
8
9while True:
10 if button.value() == 0: # PULL_UP: basınca 0 okunur / PULL_UP: reads 0 when pressed
11 led.on()
12 else:
13 led.off()
14 time.sleep_ms(10) # Döngüyü biraz yavaşlat / Slow the loop down a little
15So nutzt du BlueGrays im Pico-Unterricht
- Code-Guide, MicroPython-Lernpfad: Der Code-Guide im Bereich Lernen bietet neben dem Arduino-C++-Pfad einen MicroPython-Pfad mit 18 Karten: import, print, Pin-Ausgang, Pin-Eingang (PULL_UP, PULL_DOWN), time.sleep, while True, Einrückung, Variablen, if / elif / else, for und range, Listen, def und return, ADC, PWM, ticks_ms, Pin.irq, try / except und I2C. Jede Karte hat Wofür ist das gut?, Syntax, ein Beispiel mit den Tabs Blöcke · Arduino · MicroPython, Häufiger Fehler und einen Minitest. Empfiehl die Karten zum Wochenkonzept zum Lesen zwischen den Stunden; den eigenen Fortschritt MicroPython x/18 sieht jede Person im Bildschirm Mein Level.
- In Projekten ansehen: Dieser Link am Ende jeder Karte listet die Projekte, in deren Code der Befehl vorkommt, von leicht bis schwer. Wer einen Befehl auf der Karte gelesen hat, findet ihn von hier aus im Code eines echten Projekts.
- Fragen des Tages: Die Einstellung "Programmiersprache der Fragen" bietet Beide, Arduino und MicroPython. Unterrichtest du mit dem Pico, lass die Klasse MicroPython wählen; allgemeine Fragen ohne Code kommen bei jeder Auswahl. Täglich gibt es eine Runde von etwa 3 Minuten, einen Einstufungstest mit 15 Fragen und 6 Level von A1 bis C2, eine gute tägliche Wiederholung zwischen den Stunden.
- Als Blöcke zeigen: Fünf der kostenlosen Pico-Projekte (Onboard-LED, externe LED, zwei LEDs abwechselnd, Ampel und Polizeilicht) haben neben dem Code eine Blockansicht. Wer Python zum ersten Mal sieht, bekommt zuerst die Blöcke und dann den Code desselben Programms gezeigt; so entsteht die Idee "gleiche Logik, andere Schreibweise". Diesen Schritt beschreiben wir ausführlich in von Blöcken zu MicroPython. Die Blöcke dienen zum Lesen; in der App lassen sie sich nicht bearbeiten, und aufs Board kommt immer der MicroPython-Code.
- Code verstehen und Fehlerbehebung: Jedes kostenlose Pico-Projekt hat beides. Der Tab Code verstehen beginnt mit der Zusammenfassung Was macht dieser Code?, geht mit der Erklärung Schritt für Schritt weiter und endet mit Wenn du nicht weiterkommst und der Aufgabe Probier es selbst. Beim langen Code in Woche 4 und 6 ist er deine größte Hilfe für Gruppen, die noch nicht schnell lesen.
- Lass es uns zusammen bauen und Link kopieren: Der geführte Modus läuft in vier Schritten und erinnert beim Code-Schritt daran, in Thonny den MicroPython-Interpreter zu wählen. Link kopieren beim Quellcode liefert einen Link, um den Code am Rechner zu öffnen, so muss niemand den Code vom Handy in Thonny abtippen.
Bewertung und Differenzierung
| Kriterium | 1 – Beginnend | 2 – Fortschreitend | 3 – Sicher |
|---|---|---|---|
| Schaltung aufbauen | Baut mit Hilfe, vergisst GND | Baut nach Schaltplan, ordnet die GP-Nummer dem Code zu | Unterscheidet physische Pins und GP-Nummern, findet Fehler bei anderen |
| Code lesen | Liest die Zeilen, kann nicht erklären, was sie tun | Erklärt grob, was das Programm macht | Erklärt jede Zeile und die Bedeutung der Einrückung |
| Ändern und testen | Ändert einen Wert, kann die Wirkung nicht erklären | Sagt das Ergebnis vorher und probiert es aus | Findet bei falscher Vorhersage die Ursache über die Fehlermeldung in der Shell |
| Zuordnung zu C++ | Kann nicht zuordnen | Ordnet Pin, sleep und while True zu | Ordnet auch if, for und Funktionen zu |
- Schnelle Gruppen, analog lesen: Im Plan gibt es keine ADC-Woche; wer früher fertig ist, schließt den Schleifer eines 10-kΩ-Potentiometers an GP26 an, liest mit ADC(26).read_u16() einen Wert zwischen 0 und 65535 und stellt damit die Geschwindigkeit des Blinklichts aus Woche 2 ein. Für eine größere Herausforderung steuert das kostenlose Projekt Raspberry Pi Pico LED-Lagerfeuer (8x8-NeoPixel-Matrix + Potentiometer + Summer) mit demselben Potentiometer eine 8x8-NeoPixel-Matrix.
- Schnelle Gruppen, kombinieren: Den Taster aus Woche 4 an die Einparkhilfe aus Woche 5 anzubauen und einen "Stumm-Modus" zu schreiben, der den Ton ein- und ausschaltet, ist der erste echte Schritt zum eigenen Code.
- Langsamere Gruppen: Gib die Schaltung fertig aufgebaut aus oder leg den Schaltplan groß ausgedruckt auf den Tisch. Lass sie mit dem Tab Code verstehen Schritt für Schritt vorgehen und an diesem Tag nur einen Wert ändern; das ist für sich schon ein lohnendes Ergebnis.
Häufige Probleme und schnelle Lösungen
| Problem | Mögliche Ursache | Lösung |
|---|---|---|
| Der Rechner erkennt den Pico überhaupt nicht | Reines Ladekabel, Wackelkontakt, USB-Hub | Ein bekanntes Datenkabel probieren, das Board direkt am Rechner einstecken, anderen USB-Port testen. |
| Bei jedem Einstecken öffnet sich das Laufwerk RPI-RP2 | Kein MicroPython auf dem Board oder BOOTSEL klemmt | UF2-Datei aufs Laufwerk kopieren; ohne Tastendruck neu einstecken. |
| RPI-RP2 erscheint nie | BOOTSEL wurde erst nach dem Einstecken gedrückt | Kabel abziehen, BOOTSEL gedrückt halten, wieder einstecken, dann loslassen. |
| Thonny verbindet nicht, "Device is busy" oder Portfehler | Falscher Interpreter oder Port, Port in anderem Programm offen, laufender Code blockiert | Unten rechts "MicroPython (Raspberry Pi Pico)" wählen, Stop/Restart drücken, zweites Thonny-Fenster schließen, USB ab- und wieder anstecken. |
| No module named 'machine' | Der Code läuft im Python des Rechners | Interpreter auf MicroPython (Raspberry Pi Pico) stellen. |
| IndentationError oder SyntaxError | Gemischte Einrückung, fehlender Doppelpunkt | Zur Zeilennummer der Meldung gehen; while-, if- und def-Zeilen brauchen am Ende einen Doppelpunkt, die Zeilen darunter 4 Leerzeichen. |
| Der Code läuft, aber die LED bleibt dunkel | LED verkehrt herum, kein GND, GP-Nummer im Code passt nicht zur Schaltung, Pin(25) am Pico W | Langes Bein Richtung Widerstand (GP-Seite), GND-Kabel prüfen, für die Onboard-LED Pin("LED") nutzen. |
| Ohne Rechner läuft der Code nicht | Datei auf dem Rechner gespeichert oder nicht main.py genannt | In Thonny Speichern > Raspberry Pi Pico wählen und main.py nennen; der Code startet dann bei jeder Stromversorgung von selbst. |
| main.py hängt in einer Endlosschleife, Thonny kommt nicht dazwischen | Der Code startet sofort beim Booten | Mehrmals Stop drücken oder Ctrl+C in der Shell; hilft das nicht, mit der offiziellen flash_nuke.uf2 den Speicher löschen und MicroPython neu aufspielen (alle Dateien auf dem Board gehen verloren). |
Checkliste vor der Stunde
- MicroPython ist auf allen Boards, Boards und Kabel sind von 1 bis 13 nummeriert.
- Thonny startet auf jedem Rechner, als Interpreter ist "MicroPython (Raspberry Pi Pico)" gewählt.
- Jedes Paar aus Board und Kabel ist getestet und zeigt >>> in der Shell.
- Die Widerstände liegen nach Wert getrennt: 220 Ω, 1 kΩ, 2 kΩ.
- Das Wochenprojekt ist in BlueGrays am Beamer geöffnet; in den ersten drei Wochen ist Als Blöcke zeigen bereit.
- Die Zettel mit der Abschlussfrage sind gedruckt, die Rollen (Aufbau, Kontrolle) sind verteilt.
- Vor Woche 5 liegen die Teilerwiderstände für den HC-SR04 für jede Gruppe bereit.
- Am Ende der Stunde sind alle USB-Kabel abgezogen und die Teile gezählt in den nummerierten Kästchen.
Alle Projekte dieser sechs Wochen kannst du in der BlueGrays-App kostenlos mit Schaltplan, Bauteilliste, MicroPython-Code und dem Tab Code verstehen öffnen; so führst du die Stunde bequem über den Beamer, während die Klasse auf den eigenen Smartphones mitliest. Möchtest du nach sechs Wochen mit Premium-Projekten für den Pico weitermachen, etwa mit LED-Helligkeit per PWM, Servo, OLED-Display oder Tastenfeld, kannst du statt einzelner Abos Lehrer-Codes verteilen; sie werden einmalig gekauft und verlängern sich nicht automatisch.
Häufige Fragen
Wie unterrichte ich mit dem Raspberry Pi Pico?
Pack in jede Stunde genau ein neues Konzept und ordne sie als Ausgabe, Variablen, Funktionen, Eingabe und Bedingungen, PWM und Sensoren und zum Schluss Listen und Schleifen. Jede Stunde folgt demselben Gerüst: Einstieg, gemeinsames Lesen, Vorhersage, Schaltung, Ausführen, einen Wert ändern und Abschlussfrage. Der 6-Wochen-Plan in diesem Beitrag ist genau so mit kostenlosen Projekten aufgebaut.
Wie installiere ich MicroPython auf dem Raspberry Pi Pico?
Halte den BOOTSEL-Taster gedrückt, während du den Pico per USB an den Rechner steckst; es erscheint ein Laufwerk namens RPI-RP2. Kopiere die MicroPython-.uf2-Datei für dein Board darauf, dann startet das Board neu. Alternativ installierst du es über "Install or update MicroPython" in den Interpreter-Einstellungen von Thonny.
Thonny erkennt meinen Raspberry Pi Pico nicht. Was tun?
Prüfe zuerst, ob dein USB-Kabel Daten überträgt, denn über ein reines Ladekabel sieht der Rechner das Board nicht. Stell dann in Thonny den Interpreter auf "MicroPython (Raspberry Pi Pico)" und drück Stop/Restart. Öffnet sich bei jedem Einstecken das Laufwerk RPI-RP2, ist noch kein MicroPython auf dem Board, dann installiere die UF2-Datei.
Raspberry Pi Pico oder Arduino für die Schule?
Beide sind ein guter Einstieg; die Wahl hängt von Sprache und Klasse ab. Unterrichtest du Python oder willst du schnell ausprobieren, ohne aufs Kompilieren zu warten, ist der Pico mit MicroPython angenehm. Bei jüngeren Kindern, beim Start mit Blöcken oder wenn dein Set aus 5-V-Modulen besteht, bringt der Arduino weniger Überraschungen.
Wie läuft Code auf dem Pico ohne Computer?
Speichere den Code in Thonny über die Option "Raspberry Pi Pico" unter dem Namen main.py auf dem Board. Der Pico führt main.py bei jeder Stromversorgung selbst aus, ein USB-Ladegerät oder eine Powerbank reicht. Zum Anhalten verbindest du das Board wieder mit Thonny und drückst Stop.
Gibt es im Unterricht einen Unterschied zwischen Pico und Pico W?
Alle Projekte in diesem Plan laufen auf beiden mit denselben Pins; der einzige Unterschied ist die Onboard-LED. Beim klassischen Pico hängt sie an GP25, beim Pico W am WLAN-Chip, deshalb nutzt du Pin("LED"), das auf beiden funktioniert. Der Pico W hat zusätzlich WLAN und Bluetooth, die du in den ersten sechs Wochen aber nicht brauchst.
Projekte, die du danach bauen kannst
Alle Projekte ansehen
Raspberry Pi Pico Onboard-LED Blinken (Pico und Pico W)
Das Eröffnungsprojekt der Raspberry Pi Pico-Serie! Wir bringen die grüne interne LED zum Blinken, um zu überprüfen, ob die Platine funktioniert — ein klassisches "Hello World"-Erstexperiment. Keine externen Komponenten, nur Pico und USB-Kabel. Der Code ist in MicroPython geschrieben (die offiziell von der Raspberry Pi Foundation unterstützte Sprache). Lerne die machine.Pin-Klasse, Pin.OUT-Modus, led.on()/off()-Methoden und time.sleep() in Thonny IDE. Verfolge jede Umsch

Raspberry Pi Pico: Externe LED zum Leuchten bringen (Steckbrett)
Der nächste Schritt nach der integrierten LED des Pico: Eine externe LED an das Breadboard anschließen und über den GP14-Pin steuern. In diesem Projekt lernst du, wie du einen beliebigen universellen GPIO-Pin des Pico als Ausgang nutzen kannst, welche Polarität die LED hat (langes Bein = Anode/+, kurzes Bein = Kathode/–) und warum ein Strombegrenzungswiderstand (220 Ω) erforderlich ist. Wenn du den Widerstand weglässt, fließt zu viel Strom durch die LED und sie kann durchbrennen. Die Schaltung i

Raspberry Pi Pico Zwei LEDs abwechselnd blinken (Blink-Flip)
Der nächste Schritt nach einer einzelnen LED auf dem Pico: zwei LEDs blinken abwechselnd in einem klassischen Flip-Flop-Muster. Wenn eine ausgeht, leuchtet die andere. Zwei verschiedenfarbige LEDs (rot an GP14, grün an GP13) wechseln alle 500ms den Zustand. MicroPythons Pin.toggle() macht den Code kurz. Grundlage von Ampeln, Polizeistroben, Lauflichtern.

Raspberry Pi Pico Ampel-Simulator (3 LEDs sequenziell)
Wir simulieren eine echte Ampel mit roten, gelben und grünen LEDs. Grün 4 Sek "gehen", gelb 1,5 Sek "bereit", rot 3 Sek "stopp" und rot+gelb 1 Sek "starten" (europäisches Ampelmuster). Lerne Funktionsdefinition, Zustandsmaschinen-Logik und Multi-GPIO-Synchronisation. Sehr einfache Schaltung: 3 LEDs an GP11/GP12/GP13, jeweils mit 220Ω Widerstand.

Raspberry Pi Pico Polizeilicht-Effekt (Rot + Blau Strobe)
Wir simulieren das Blaulicht eines Polizeiautos mit einem Raspberry Pi Pico in seiner einfachsten Form! Die rote und die blaue LED leuchten abwechselnd (Flip-Flop): Leuchtet Rot, ist Blau aus, alle 0,3 Sekunden tauschen sie, endlos. Der Code schreibt die zwei Schritte direkt in eine einzige while True-Schleife; die Geschwindigkeit legt die Konstante WAIT_MS fest.

Raspberry Pi Pico-Ampel mit 4-Modus-Tastenwahlschalter (Zustandsmaschine)
4 verschiedene Modi für die Ampel mit nur einer Taste! Mit jedem Tastendruck wechselt der Modus: Normaler Zyklus (nacheinander rot → gelb → grün), Nur Rot (Haltebefehl), Gelb blinkend (Achtung/Nachtmodus), Aus (Wartung). Lerninhalte: Zustandsmaschine (die Variable mode bestimmt, welches Verhalten ausgeführt wird), Modulo-Modus-Zyklus ((mode + 1) % 4 → 0→1→2→3→0 – endloser Zyklus), non-blocking timing (die LED-Phasen werden mit time.ticks_ms() + time.ticks_diff(

Raspberry Pi Pico Taster-gesteuerte LED (Push)
Erstes Eingabe-Projekt mit Pico — Taster lesen! LED leuchtet solange der Taster gedrückt ist. Lerne Pin.IN, Pin.PULL_UP und button.value(). GP14 LED, GP2 Taster mit internem PULL_UP. Gedrückt = 0, losgelassen = 1 — Standard.

Raspberry Pi Pico PWM LED Fade (Atem-Effekt)
Die LED blinkt nicht mehr nur — sie atmet! Mit der PWM (Pulsweitenmodulation) des Raspberry Pi Pico steigt die Helligkeit langsam an und fällt wieder ab. Lerne die machine.PWM-Klasse, duty_u16() (16-Bit-Helligkeit 0–65535), PWM-Frequenz, range()-Schleifen und analogähnliche Ausgabe. Grundlage für RGB-Farbmischung, Motorsteuerung, Servos und Buzzer.
Weitere Artikel
BlueGrays-App
Diese Schaltung Schritt für Schritt auf dem Handy nachbauen
Schaltplan, Code und Teileliste auf einem Bildschirm. Über 200 Arduino-, ESP32- und Pico-Projekte zum Nachbauen.
Mit dem Handy scannen
Richte die Kamera auf den Code, dann öffnet sich der App-Store deines Handys.
oder im Store öffnen

