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
- Raspberry Pi (Pico)
https://www.raspberrypi.com/products/raspberry-pi-pico/ - Raspberry Pi Pico W product brief
https://datasheets.raspberrypi.com/picow/pico-w-product-brief.pdf - Doku
https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html - Raspberry Pi Pico Python SDK
https://datasheets.raspberrypi.com/pico/raspberry-pi-pico-python-sdk.pdf - Raspberry Pi Pico W mit Wi-Fi Support
https://draeger-it.blog/raspberry-pi-pico-w-mit-wifi-support/
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.
- Waveshare 19717 Pico-2CH-RS485 (7€)
https://www.welectron.com/Waveshare-19717-Pico-2CH-RS485
2x RS485 Schnittstelle für PICO/PICO W - Waveshare 19806 Pico-8SEG-LED (4€)
https://www.welectron.com/Waveshare-19806-Pico-8SEG-LED - WIZnet Ethernet HAT & Raspberry Pi Pico [RP2040] (10€)
https://www.elektor.de/wiznet-ethernet-hat-for-raspberry-pi-pico
https://github.com/Wiznet/RP2040-HAT-CircuitPython#overview - Welectron RPi Pico/RP2040 -Seite mit vielen weiteren Shields/HATs
https://www.welectron.com/RPi-Pico-RP2040_s3
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
- Getting started with Raspberry Pi Pico
https://projects.raspberrypi.org/en/projects/getting-started-with-the-pico/ - Introduction to Raspberry Pi Pico: LEDs, buzzers, switches, and dials
https://projects.raspberrypi.org/en/pathways/pico-intro - Micropython: Quick reference for the RP2
http://docs.micropython.org/en/latest/rp2/quickref.html - https://micropython.org/download/rp2-pico-w/
- https://www.az-delivery.de/blogs/azdelivery-blog-fur-arduino-und-raspberry-pi/raspberry-pi-pico-und-thonny-mit-micropython-teil-1
- Raspberry Pi Pico W – Zeit aus dem Internet lesen und auf einem Display
anzeigen
https://draeger-it.blog/raspberry-pi-pico-w-ntp-time-aus-dem-internet-lesen/ - Alles über den Raspberry Pi Pico W
https://buyzero.de/blogs/news/alles-uber-den-raspberry-pi-pico-w