Raspberry Pi Pico - MicroPython und VSCode als IDE

Aus Laub-Home Wiki

Möchte man den Raspberry Pi Pico oder Pico W mit MicroPython Programmieren, sollte man am besten eine IDE dafür verwenden. Wenn ihr wie ich unter MacOS unterwegs seid, dann ist VSCode von Microsoft eine sehr gute und mächtige IDE (auch auf Windows und Linux nutzbar). Wie man mit dieser den Raspberry Pi Pico verbindet und dann ein erstes kleines Script auf ihn deployt, zeige ich hier in diesem Artikel.

Einrichtung VSCode

Als erstes brauchen wir VSCode, welches ihr hier herunterladen könnt:

Dann einfach installieren und Starten. Nun benötigen wir noch das aktuellste Python auf dem Rechner. dieses kann man hier herunterladen:

Nach dem Download einfach installieren. Ihr könnt dann in einem Terminal Fenster einfach mit python --version schauen ob es installiert ist und vor allem auch die richtige Version hat:

python3 --version
Python 3.10.5

Dann kann man via pip3 noch die folgenden python module nach installieren:

pip3 install micropy-cli
pip3 install pylint

Unter den "Erweiterungen" in VSCode findet ihr die Extension Pico-W-Go, diese einfach installieren und den Anweisungen folgen. (Hilfe hierzu bekommt ihr auch hier)

Dann solltet ihr noch die folgenden Erweiterungen in VSCode suchen und installieren:

  • ms-python.python
  • VisualStudioExptTeam.vscodeintellicode

Erste Schritte mit VSCode und dem Pico

Als erstes öffnen wir auf unserem Filesystem einen neuen Ordner mit VSCode, den wir einfach picoflash nennen.

Datei --> Ordner öffnen --> Neuer Ordner

Diesen dann öffnen. Nun erscheint ein neuer VSCode Arbeitsbereich, in diesem können wir nun den angeschlossenen Pico verbinden und das Projekt konfigurieren.

In der Leiste, bei All Commands Pico-Go > Configure project konfiguriert ihr das Projekt für Micropython und dem Pico. Nun zum Schluss noch den Pico verbinden. Dafür einfach auf Pico Disconnected klicken.

wenn alles geklappt hat solltet ihr auch ein Terminal Fenster sehen, in dem ihr die REPL seht.

Hier könnt ihr ein einfaches print("Hello World") ausprobieren:

Nun erstellen wir unser erstes Script mit folgendem Inhalt:

flash.py

from machine import Pin
import utime

pin = Pin('LED', Pin.OUT)

while True:
    pin.toggle()
    utime.sleep_ms(1000)

Solltet ihr einen Pico, nicht Pico w nutzen, bitte 'LED' in die Zahl 25 ändern.


Ein Klick nun auf Run unten in der Leiste sollte dafür sorgen, das dass Script auf dem Pico ausgeführt wird und die LED des Pico blinkt. Mit Stop in der Leiste, wird das Script wieder gestoppt.

Unser erster Test war somit erfolgreich.

Installation in den Flashspeicher des Pico

Um die Scripte, oder das Ganze Projekt auf den Pico zu installieren, kann dies mittels dem Upload Button in der Leiste unten gemacht werden. Ebenfalls ein Download ist möglich. Möchtet ihr das, ein Script beim Start des Pico automatisch ausgeführt wird, so solltet ihr das Script main.py benennen und hochladen. Aber Achtung, danach ist der Pico nicht mehr programmierbar und muss, solltet ihr etwas ändern wollen, zurückgesetzt und MicroPython wieder installiert werden (Raspberry Pi Pico zurücksetzen). Ich nutze als main.py ein eigenes Script was die Möglichkeit gibt, einen EXIT auszulösen, wenn man einen GPIO Pin aktiviert. Wenn der Pin nicht aktiviert ist, führt es ein konfiguriertes anderes Script aus.

main.py https://raw.githubusercontent.com/alaub81/rpi_pico_scripts/main/main.py

# -*- coding: utf-8 -*-
"""Main Script
to prevent always blank flashing the pico
GPIO(19) is used to detect, if the system will break
instead of running the MQTT script.
Just use a jumper cable to connect GND and GPIO(19)
or use a switch on these two pins.
* on exit you'll see led 5 times flashing
* on entering the python script led will flash 1 time
"""


import machine
from time import sleep

# declare LED variable
led = machine.Pin('LED', machine.Pin.OUT)
# declare EXIT Pin GPIO(19)
sw = machine.Pin(19,machine.Pin.IN,machine.Pin.PULL_UP)

# Check if GPIO19 is activated
if  sw.value():
    # LED blink on Startup
    led.value(True)
    sleep(.3)
    led.value(False)
    import dht22homiemqtt.py
else:
    blink = 5
    for i in range(blink):
        led.value(True)
        sleep(.1)
        led.value(False)
        sleep(.1)
    sys.exit()

FTP Server

Es gibt auch die Möglichkeit einen FTP Server auf dem Pico zu aktivieren. Dazu einfach in VSCode unten in der Leiste bei All Commands "Start FTP-Server" auswählen. Danach kann man sich mit einem FTP Client verbinden:

ftp ftp://pico@127.0.0.1:2121

auf dem Mac könnt ihr mittels brew tnftp installieren:

brew Install tnftp

Hier ein paar FTP Commands:

# zeigt Inhalt des aktuellen Ordners an
dir
# wechselt in einen anderen Ordner
cd
# dateiname ändern
rename
# löschen von Dateien
delet
# verlassen des clients
quit

Quellen