Table of Contents

Introduction to Raspberry Pi Pico W

This documentation is based on the DTI '24 Microcontroller Workshop and introduces the Raspberry Pi Pico W and its potential in physical computing using CircuitPython. All examples, explanations and tutorials are adapted from the online version found at https://adriaanb.github.io/dti_workshop/.


Raspberry Pi Pico – Einführung

Der Raspberry Pi Pico ist ein kompaktes Mikrocontroller-Board der Raspberry Pi Ltd. Im Gegensatz zu den Einplatinencomputern der Raspberry-Pi-Familie läuft auf dem Pico kein Linux; das Board führt genau ein Programm aus, das im integrierten Flash-Speicher abgelegt ist. Damit eignet sich der Pico für Aufgaben, bei denen Sensoren ausgelesen und Aktoren (Licht, Klang, Bewegung) in Echtzeit gesteuert werden – also für Physical Computing, interaktive Objekte und Prototypen.

Im DTI-Workshop wird der Raspberry Pi Pico W verwendet, vorinstalliert mit CircuitPython 10 und ergänzt durch ein Grove Shield für steckbare Bauteile.

Modellübersicht

Modell Chip SRAM Flash Funk
Pico / Pico H RP2040 264 kB 2 MB –
Pico W / Pico WH RP2040 264 kB 2 MB WLAN + Bluetooth
Pico 2 / Pico 2 with headers RP2350 520 kB 4 MB –
Pico 2 W / Pico 2 W with headers RP2350 520 kB 4 MB WLAN + Bluetooth

Technische Daten Pico W

Merkmal Wert
Mikrocontroller RP2040, Dual-Core Arm Cortex-M0+
Taktfrequenz bis 133 MHz
Arbeitsspeicher 264 kB SRAM
Programmspeicher 2 MB Flash (auf dem Board)
GPIO 26 multifunktionale Pins
Analogeingänge 3 × ADC, 12 Bit
Schnittstellen 2 × UART, 2 × SPI, 2 × I²C, 16 PWM-Kanäle
PIO 8 programmierbare I/O-Zustandsmaschinen
USB USB 1.1 (Device und Host), Micro-USB-Buchse
Funkchip Infineon CYW43439
WLAN IEEE 802.11n, 2,4 GHz, WPA3, Access-Point-Modus (bis 4 Clients)
Bluetooth 5.2 (BLE und Classic)
Logikpegel 3,3 V

Hinweis: Die GPIO-Pins arbeiten mit 3,3 V und sind nicht 5-V-tolerant. Ein 5-V-Signal direkt an einem GPIO kann den Mikrocontroller beschädigen.

Aufbau und Pinbelegung

Wichtige Versorgungs- und Sonderpins:

Analogeingänge liegen auf GP26 (A0), GP27 (A1) und GP28 (A2).

Offizielles Pinout-Diagramm: Raspberry Pi Documentation – Wireless board layout

Programmiersprachen und Umgebungen

Umgebung Sprache Charakteristik
CircuitPython (Adafruit) Python Board erscheint als USB-Laufwerk CIRCUITPY; Code wird beim Speichern sofort ausgeführt. Im Workshop verwendet.
MicroPython Python Offiziell von Raspberry Pi unterstützt; Dateiübertragung über Editor (z. B. Thonny).
Pico C/C++ SDK C, C++ Höchste Performance und volle Hardwarekontrolle; Kompilierung nötig.
Arduino-Core C++ (Arduino) Community-Core; Nutzung der Arduino-Bibliotheken möglich.

CircuitPython installieren

Bei den Workshop-Boards ist CircuitPython bereits installiert. Für eigene Boards oder ein Update:

  1. Passende UF2-Datei für „Raspberry Pi Pico W“ von circuitpython.org herunterladen.
  2. BOOTSEL-Taster gedrückt halten und das Board per USB mit dem Rechner verbinden.
  3. Es erscheint ein Laufwerk RPI-RP2.
  4. UF2-Datei per Drag-and-drop auf RPI-RP2 kopieren.
  5. Das Board startet neu und erscheint als Laufwerk CIRCUITPY.

Der BOOTSEL-Modus liegt im unveränderlichen ROM des Chips. Ein Board kann daher durch fehlerhafte Software nicht dauerhaft unbrauchbar werden.

Dateistruktur auf CIRCUITPY

Bibliotheken stammen aus dem Adafruit Library Bundle, das zur installierten Hauptversion passen muss (Workshop: Bundle 10.x): circuitpython.org/libraries

Editor: Mu

Erstes Programm: Onboard-LED blinken lassen

# --- Imports
import time
import board
import digitalio
 
# --- Variables
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
 
# --- Main loop
while True:
    led.value = True
    time.sleep(0.5)
    led.value = False
    time.sleep(0.5)

Das Gliederungsschema (Imports, Variables, Functions, Setup, Main loop) entspricht der Struktur der Workshop-Beispiele.

Grundbegriffe

Grove Shield im Workshop

Das Grove Shield für den Pi Pico stellt lötfreie Grove-Steckverbinder bereit:

Die Anschlüsse A1 und A2 sind „geschindelt“: Der zweite Pin eines Anschlusses ist mit dem ersten Pin des darüberliegenden Anschlusses identisch. Die Nutzung eines Anschlusses kann daher den benachbarten blockieren.

Typische Fehlerquellen

Quellen