Raspberry Pi Pico - MicroPython und VSCode als IDE
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
- http://pico-go.net/docs/start/quick/
- https://medium.com/all-geek-to-me/developing-for-the-raspberry-pi-pico-in-vs-code-getting-started-6dbb3da5ba97