Raspberry Pico W

Auch wenn die Plattform um den ESP8266 und ESP32 sehr interessant ist, habe ich mir dennoch auch den kleinen Raspberry PICO W angeschaut. Gegenüber dem Pico ohne WLAN (ca. 4€) kostet er nur minimal mehr. Da wir den Pico W eventuell bei PIT Hackathon 2022 zum Einsatz bringen, war es an der Zeit sich auch dieses Device anzuschauen.

Hardware

Zur Hardware gibt es genug Seiten und PDFS im Internet. Interessant ist hier die schmale Bauform, die für Breadboards besser geeignet ist als einige "breite" ESP-Chips.

Die Bilder zeigen meinen Pico W mit angelöteten Pins. Auf der Unterseite sind die Beschriftungen natürlich nur zu sehen, wenn sie die Stiftleiste "falschrum" anlöten und damit den Pico W mit der Bestückungsseite nach unten ins Breadboard stecken. Das geht dank der niedrigen Bauhöhe

Wenn Sie den Pico per USB-Kabel an den PC anschließen dann erkennt mein Windows ein neues Gerät:

Der PICO simuliert ein USB-Laufwerk mit ein zwei Dateien darauf. Die HTML-Datei macht einen Redirect zur Webseite https://raspberrypi.com/device/RP2?version=E0C9125B0D9B der INFO_UF2.TXT. Der Parameter ist nicht die MAC-Adresse des Device

UF2 Bootloader v3.0
Model: Raspberry Pi RP2
Board-ID: RPI-RP2

Einrichtung mit Thonny

Thonny ist vielleicht nicht die leistungsfähigste IDE zur Entwicklung von Python-Code aber für erste IoT Projekte sehr einfach zu nutzen. Thonny kann direct MicroPython auf unterstützten Geräten installieren, so dass Sie sich den manuellen Download der richtige Version sparen.

Danach trennen Sie den PICO kurz vom USB-Kabel und starten ihn ohne Drücken der "BOOTSEL"-Taste. Durch die Installation von MicroPython wird der USB-Anschluss dann zum seriellen Port. Wenn Sie eine andere Firmware auf den Pico landen wollen, müssen Sie Sie BOOTSEL-Taste beim herstellen der Stromversorgung gedrückt halten, damit der Pico wieder als Laufwerk erscheint.

Funktionstests mit Buildin-LED

Um den Erfolg des Upload und Funktion von MicroPython auf dem Pico W zu prüfen, lassen wir einfach die OnBoard-LED blinken. Wer aber die massenhaften Beispiel mit Port 25 nutzt, sieht kein Ergebnis. Beim Pico W hat Raspberry den Anschluss verlegt:

Unlike the original Raspberry Pi Pico, the on-board LED on Pico W is not connected to a pin on RP2040, but instead to a GPIO pin on the wireless chip. MicroPython has been modified accordingly. This means that you can now do:
https://datasheets.raspberrypi.com/picow/connecting-to-the-internet-with-pico-w.pdf#page=15

Daher habe ich zwei Varianten, die man einfach in Thonny interaktiv ausführen lassen kann, ganz ohne eine py-Datei zu speichern.

# LED beim PICO W einschalten
led = machine.Pin("LED", machine.Pin.OUT, value=1)
# und ausschalten
led = machine.Pin("LED", machine.Pin.OUT, value=0)

# LED beim PICO (ohne W) ein und ausschalten
led = machine.Pin(25, machine.Pin.OUT, value=1)
led = machine.Pin(25, machine.Pin.OUT, value=0)

Oder das ganze dann als "main.py" zur automatischen Ausführung beim Einschalten:

from machine import Pin
from time import sleep

led = Pin("LED", Pin.OUT, value=1)
while True:
    sleep(1)
    led.toggle()
  

Funktionstest WLAN

Der nächste test ist die Verbindung zum WLAN. Hier reicht es mir, wenn der PICO W sich mit dem WLAN verbindet, ich die IP-Adresse erhalte und per PING erreichbar bin. Auch diese Befehle kann ich interaktiv in Thonny direkt eingeben.

# Ein einfaches WLAN-Beispiel
import network
wlanssid = '<WLAN SSID'
wlanpwd = '<WLAN Kennwort>'

wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(wlanssid, wlanpwd)
# hier etwas warten und dann die Werte ausgeben
wlan
wlan.ifconfig()

Wenn sich ihr PICO W per WLAN verbunden hat, dann sollte er nun auch von anderen Systemen "anpingbar" sein.

Shields/HATs

Ehe Sie nun anfangen, den PICO oder PICO W selbst mit externen Bauteilen zu beschalten, lohnt sich ein Blick auf bereits vorhandene Shields bzw. HATs. Zwar können LEDs mit wenig Strombedarf allein mit einem Widerstand betrieben werden und auch Eingaben per Taster oder Analogsignal sind unkritisch, solange sie die physikalischen Grenzen einhalten. Servo-Motoren lassen sich per Pulsweitenmodulation (PWM) ebenfalls noch direkt betreiben.

Für erste Bastelversuche gibt es mittlerweile schon entsprechende Breadboards, auf die Sie ihren PICO einfach aufstecken und weiter verdrahten können. Aber für viele Standardaufgaben wie z.B. RS-485/RS232-Schnitstelle, LED/LCD-Anzeigen, Ethernet-Anschluss etc. gibt es direkt aufsetzbare Boards, so dass Sie sich nur noch um die Software kümmern müssen.

Einschätzung

Für die Kenner des klassischen Raspberry ist es erst einmal eine Umgewöhnung, dass die PICO-Serie kein Raspian/Linux-basiertes System ist, sondern eine ganz andere Liga bedient, in der sich der PICO natürlich mit Arduino, ESP8266/ESP32 und anderen vergleichbaren Geräten das Feld teilen muss. Ein ESP32 aus China, der neben WiFi auch noch Bluetooth mitbringt ist teils günstiger als ein PICO W. Dennoch wird auch der PICO seine Freund finden.

Wenn aber immer mehr Bastler und Entwickler direkt mit MicroPython statt C++/Arduino arbeiten und sich auf allgemein verfügbare Ports beschränken, dann könnte sogar eine große Basis portablen Python-Code dafür sorgen, dass es irgendwo schon eine Lösung oder zumindest Vorlage für das eigene Problem gibt.

Weitere Links