Wenn du den Fehler “no module named ‘machine'” oder auf Deutsch “Kein Modul mit dem Namen ‘machine'” erhältst, dann fehlt dir nicht unbedingt dieses Modul, sondern der Fehler kommt meist ganz woanders daher. Wie du diesen Fehler behebst, zeige ich dir nun anhand des Raspberry Pi Pico (W).
Was sind Module?
Für die Programmierung nutzt man Module (auch Bibliotheken genannt), diese bieten dem Entwickler Funktionen für Sensoren, Aktoren, Pins oder auch generelle wie dem Zugriff auf Timer. Diese Module kannst du dir mit dem Python Paketmanager pip installieren.
Einige Module sind bereits installiert und können ohne weiteres verwendet werden (natürlich mit dem import Befehl).
CircuitPython vrs. MicroPython
Den Raspberry Pi Pico (W) kannst du in CircuitPython & MicroPython programmieren. Dazu musst du diesen mit der entsprechenden UF2-Datei flashen.
- CircuitPython – Raspberry Pi Pico W – Raspberry Pi Pico
- MicroPython – Raspberry Pi Pico W – Raspberry Pi Pico
In meinem Fall hatte ich den Mikrocontroller für CircuitPython geflasht und versucht die Pins über das Modul machine anzusprechen.
Adafruit CircuitPython 8.0.3 on 2023-02-23; Raspberry Pi Pico W with rp2040
>>> %Run -c $EDITOR_CONTENT
Zurückverfolgung (jüngste Aufforderung zuletzt):
Datei "<stdin>", Zeile 1, in <module>
ImportError: Kein Modul mit dem Namen 'machine'
Lösung 1 – Umschreiben des Codes
Die etwas aufwendige Lösung ist, den Code für CircuitPython umzuschreiben. Dieses kann unter Umständen sehr aufwendig sein und sehr viel Zeit benötigen. Zusätzlich kann es vorkommen, dass verwendete / importierte Module nicht kompatibel sind und somit schon fast den gesamten Code neu schreiben muss. Daher schlage ich dir die zweite Lösung vor.
Lösung 2 – Flashen für MicroPython
Der einfachste Weg ist, den Mikrocontroller für MicroPython zu flashen.
Schritt 1 – Download der UF2-Datei für MicroPython
Im ersten Schritt müssen wir die korrekte UF2-Datei für unseren Mikrocontroller laden.
Wenn dieses geschehen ist, dann müssen wir im nächsten Schritt den Mikrocontroller in den Flash-Modus versetzen.
Schritt 2 – in den Flash-Modus versetzen
Um nun den Mikrocontroller in den Flash-Modus zu versetzen, müssen wir die Taste “BOOTSEL” auf diesem gedrückt halten und mit dem Computer verbinden.
Schritt 3 – kopieren der UF2-Datei auf den Raspberry Pi Pico
Im letzten Schritt müssen wir nur noch die geladene
Datei auf den Mikrocontroller kopieren.
Nachfolgend ein kleines Video aus dem Beitrag Raspberry PI Pico #1 – Vorstellung.
Fehler am Raspberry Pi beheben
Wenn du den Fehler auf dem Einplatinencomputer Raspberry Pi wie nachfolgend gezeigt erhältst, dann musst du diesen Code umschreiben, denn das Modul machine gibt es nur für MicroPython.
Traceback (most recent call last):
File "script.py", line 1, in <module>
import machine
ImportError: No module named 'machine'
wie kopiere ich UF2 auf Thonny
Hi,
die UF2 Datei kopierst du über den Dateiexplorer auf den Pi Pico.
Um das Laufwerk einzubinden musst du die Taste BOOTSEL drücken und dann den Mikrocontroller mit dem PC verbinden.
Es sollte dann ein neues Laufwerk eingebunden werden und dort kopierst du dann die UF2 Datei hinein.
Danach startet der Mikrocontroller neu und du kannst dann in der Thonny IDE deinen Mikrocontroller programmieren.
Gruß,
Stefan