Waveshare RP2040 Zero
Der RP2040-Zero ist ein Mikrocontroller-Board mit dem Mikrocontroller RP2040, dass einen sehr kleinen Formfaktor hat. Das Board hat eine Länge von 25 mm inkl. dem USB-C-Anschluss und eine Breite von 18 mm. Es ist eine deutlich kleinere Variante des originalen Raspberry Pi Pico und verfügt über identische Leistungsmerkmale. Das heißt, alles was vom Raspberry Pi Pico bekannt ist, ist auch mit dem RP2040-Zero möglich. Der Flash-Speicher ist 2 MByte groß und die Stromversorgung übernimmt der Low-Dropout-LDO ME621 mit maximal 800 mA.
Weitere Besonderheiten, neben dem USB-C-Anschluss, sind der zusätzliche Reset-Taster, eine WS2812-RGB-LED (Neopixel-Ansteuerung) und dass die wichtigsten GPIO-Pins an drei Seiten der Platine herausgeführt sind.
RP2040-Zero: Pinbelegung
Wem der Raspberry Pi Pico zu groß ist, der erhält mit dem RP2040-Zero eine kleinere Bauform, die alle Leistungsmerkmale des Picos hat. Einzig die Anzahl der herausgeführten GPIO-Pins ist geringer, was in der Regel kein Problem darstellt. Die Onboard-LED ist keine normale LED, sondern muss als Neopixel-LED angesteuert werden. Dafür kann sie in unterschiedlichen Farben leuchten.
Bezugsquellen
Das Original stammt von Waveshare mit der offiziellen Produktbezeichnung „Waveshare RP2040 Zero“ und kann man dort für um die 4 Euro kaufen. Verschiedene Nachbauten sind teilweise unter 1,50 EUR zu haben, wenn man sie auf einem chinesischen Online-Marktplatz bestellt. Zu beachten ist dabei, dass es bei der Verwendung von minderwertigen Komponenten, zu einem instabilen Betrieb oder zu Defekten bei anderen Komponenten kommen kann.
Einschränkungen
Der RP2040-Zero ist dann interessant, wenn man sowieso nicht alle GPIO-Pins braucht und etwas Platz sparen will. Außerdem ist es inzwischen üblich, dass elektronische Geräte und Mikrocontroller-Boards einen USB-C-Anschluss haben. Allerdings gibt es ein paar Einschränkungen, die man beim RP2040-Zero vielleicht schon im Vorfeld berücksichtigen sollte.
- Die Pin-Belegung an den Seiten ist eine andere. Allerdings sind alle Schnittstellen mehrfach herausgeführt.
- Es ist nur ein GND-Pin herausgeführt.
- Die vom Raspberry Pi Pico bekannten Pins für VSYS (Pin 39), 3V3_EN (Pin 37), ADC_REF (Pin 35) und RUN (Pin 30) sind nicht herausgeführt. Der Pin für RUN ist stattdessen mit dem Reset-Taster verbunden.
Batterie-Betrieb
Normalerweise wird man den VSYS-Pin (Pin 39) vom Raspberry Pi Pico für den Batterie-Betrieb verwenden. Der ist aber nicht separat auf dem RP2040-Zero-Board herausgeführt. Stattdessen ist der VSYS-Pin des RP2040 direkt mit dem VUSB-Pin verbunden. Im RP2040-Zero-Pinout ist er mit „5V“ gekennzeichnet.
Wenn man eine Batterie direkt mit dem VSYS-Pin verbinden möchte, sollte eine Diode in Reihe zur Batterie geschaltet werden, um den Rückfluss in einen versehentlich angeschlossenen USB zu vermeiden.
MicroPython-Firmware
Wenn man einen RP2040-Zero das erste Mal mit einem Host-Computer verbindet, wird er von der Thonny Python IDE automatisch erkannt. Es lässt sich zum Programmierung mit MicroPython eine offizielle MicroPython-Firmware auswählen und laden. Danach kann der RP2040-Zero mit der Thonny Python IDE programmiert werden.
- Raspberry Pi Pico: MicroPython installieren (automatisch)
- Raspberry Pi Pico: MicroPython installieren und aktualisieren (manuell)
Programmieren mit der Thonny Python IDE
Wie beim Raspberry Pi Pico empfiehlt es sich den RP2040-Zero mit der Thonny Python IDE zu programmieren. Das ist eine Entwicklungsumgebung zum Programmieren mit Python und MicroPython. Diesen Editor gibt es für verschiedene Betriebssysteme zum Download.
Beispiel: Blinkende LED
Auf dem RP2040-Zero-Board befindet sich keine normale LED, sondern eine WS2812-RGB-LED, die als Neopixel an GPIO16 programmiert werden muss. Der folgende Programmcode lässt die Onboad-LED blinken.
# Bibliotheken laden from machine import Pin from neopixel import NeoPixel from time import sleep # Farben und Helligkeit: 0 bis 255 led_red = (10,0,0) led_green = (0,10,0) led_blue = (0,0,10) led_white = (10,10,10) led_cyan = (0,10,10) led_yellow = (10,10,0) led_magenta = (10,0,10) led_off = (0,0,0) # Initialisierung WS2812/NeoPixel: GPIO16 + 1 LED led_onboard = NeoPixel(Pin(16, Pin.OUT), 1) # Wiederholung: Endlos-Schleife while True: # EIN (Rot) led_onboard.fill(led_red) led_onboard.write() sleep(1) # AUS led_onboard.fill(led_off) led_onboard.write() sleep(1)
Weitere verwandte Themen:
- Raspberry Pi Pico: WS2812-RGB-LEDs programmieren
- Raspberry Pi Pico: Alternativen
- Raspberry Pi Pico: Warum Pico?
- Raspberry Pi Pico: Erste Schritte
- Raspberry Pi Pico: Grundlegende Befehle von MicroPython
Frag Elektronik-Kompendium.de
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.
- LED: Einschalten, ausschalten, blinken und Helligkeit steuern
- Taster: Entprellen und Zustände anzeigen
- LED mit Taster einschalten und ausschalten
- Ampel- und Lauflicht-Steuerung
- Elektronischer Würfel
- Eigene Steuerungen programmieren
Online-Workshop: Programmieren mit dem Raspberry Pi Pico
Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.
Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.