Der Raspberry Pi hat zweifellos die Art und Weise revolutioniert, wie wir Einplatinencomputer (SBCs) nutzen, indem er leistungsstarke, aber dennoch erschwingliche Entwicklungsplattformen für Hobbyisten, Pädagogen und Ingenieure gleichermaßen zugänglich gemacht hat. Einige könnten argumentieren, dass Arduino eine ebenso große Rolle gespielt hat, aber realistisch gesehen, arbeitet es auf einer viel niedrigeren Ebene, gebaut für mikrocontrollerbasierte Projekte anstatt für vollwertiges Computing.
Genau hier kommt der Raspberry Pi Pico 2 W ins Spiel. Er befindet sich genau zwischen diesen beiden Welten – ein Mikrocontroller mit ernsthafter Leistung, eingebauter drahtloser Konnektivität und genügend Peripheriegeräten, um einen Ingenieur glücklich zu machen. Er wird kein vollständiges Linux OS wie ein Pi 5 ausführen, aber mit Dual-Core Cortex-M33 und RISC-V Prozessoren, Bluetooth 5.2 und deutlich mehr RAM und Flash-Speicher als ein typischer Arduino bietet er ein Maß an Flexibilität, das ihn zu einer überzeugenden Wahl für eingebettete Systeme, IoT-Anwendungen und darüber hinaus macht.
In diesem Artikel werden wir uns anschauen, wie man mit dem Raspberry Pi Pico 2 W startet und ein Beispiel durchgehen, das die neuen an Bord befindlichen Bluetooth-Fähigkeiten vorstellt.
Um zu beginnen, werden wir MicroPython auf dem Raspberry Pi Pico 2 W verwenden. Zuerst musst du den UF2 Bootloader von der MicroPython-Website herunterladen. Halte nun die BOOTSEL-Taste auf dem Raspberry Pi Pico 2 W Gerät gedrückt, während du es über den MicroUSB-Anschluss/Kabel an deinen Computer anschließt. Dadurch wird dein Gerät in ein Speichergerät verwandelt (genau wie ein Flash-Laufwerk oder eine MicroSD-Karte, die auf deinem Computer angezeigt wird). Kopiere jetzt die UF2-Datei auf dein Raspberry Pi Pico 2 W „Speicher“-Gerät, ziehe das USB-Kabel ab und stecke es wieder ein. Verbinde dich mit deinem bevorzugten seriellen Terminalgerät wie PuTTY oder TeraTerm mit dem COM-Port, der für dein Gerät angezeigt wird, und du solltest mit dem MicroPython-Shell-Interpreter begrüßt werden:
Im Erste Schritte mit MicroPython und dem Raspberry Pi Pico haben wir die Thonny IDE als Editor verwendet, um Code zu schreiben und auf das Raspberry Pi Pico 2 W Gerät zu laden. Mit der Einführung von KI in Code-Editoren und unzähligen Erweiterungen habe ich mich entschieden, meine Umgebung auf VSCode anstelle von Thonny umzustellen. Das Wichtigste zuerst (neben der Installation von VSCode) ist die Installation der offiziellen Raspberry Pi Pico Erweiterung (veröffentlicht von Raspberry Pi).
Nachdem die Erweiterung installiert wurde, sehen Sie ein kleines Raspberry Pi Pico Board-Symbol auf der linken Seite Ihres VSCode-Fensters (genau dort, wo auch die restlichen Erweiterungen sind). Klicken Sie darauf und navigieren Sie dann zu „Neues MicroPython-Projekt“ unter „Allgemein“. Geben Sie Ihrem Projekt einen Namen und Pfad und klicken Sie auf „Erstellen“.
Ein neuer Editor wird sich öffnen mit nur ein paar Dateien und einer MicroPython-Shell. Eine dieser Dateien ist eine Beispiel-LED-Blink-Python-Datei. Öffnen Sie diese blink.py. An diesem Punkt sollten Sie sicherstellen, dass Ihr Raspberry Pi Pico 2 W Gerät angeschlossen ist. Ganz unten in Ihrem VSCode-Editor sehen Sie einen kleinen Abspiel-Button.
Dies führt blink.py direkt auf dem Gerät aus (indem es zuerst auf das Gerät geladen wird). An diesem Punkt sollten Sie eine Print-Anweisung sehen und Ihre LED blinkt:
Der Ausführen-Button verwandelt sich in einen Stopp-Button, der die Ausführung des Codes stoppt. Sobald Sie bestätigen, dass die LED blinkt, sind wir jetzt bereit, zu einem komplexeren Beispiel überzugehen.
Jetzt, da wir bestätigt haben, dass unser Raspberry Pi Pico 2 W mit MicroPython läuft, wollen wir eine seiner aufregendsten neuen Funktionen erkunden – Bluetooth 5.2. Dieses Beispiel verwandelt Ihr Pico-Gerät in einen Bluetooth-Näherungsscanner, der in der Lage ist, nahegelegene Bluetooth-Geräte (wie Smartphones) zu erkennen und deren Signalstärke (RSSI) zu bestimmen. Das Skript, bluetooth_scan.py, arbeitet in zwei Modi: Entdeckungsmodus, der alle nahegelegenen Geräte scannt und ihre MAC-Adressen ausdruckt, und Verfolgungsmodus, in dem das Pico kontinuierlich ein bestimmtes Gerät überwacht und eine LED einschaltet, wenn es in naher Reichweite ist. Dieser Verfolgungsmodus ist nützlich, um spezifische Bluetooth-Geräte in Echtzeit in der Nähe zu erkennen, obwohl einige, wie Apple-Geräte, ihre MAC-Adressen aus Datenschutzgründen zufällig ändern.
Um dies zu erreichen, verwenden wir MicroPythons Bluetooth API, speziell bluetooth.BLE(), um die Bluetooth-Schnittstelle des Pico zu initialisieren. Das Skript lauscht auf Bluetooth Low Energy (BLE) Werbepakete mit gap_scan(), das wiederholt für eine gegebene Dauer scannt und die Ergebnisse durch einen Ereignisbehandler (bt_irq) verarbeitet. Dieser ereignisgesteuerte Ansatz ermöglicht es dem Pico, sofort zu reagieren, wenn ein neues Gerät erkannt wird (denken Sie an „Unterbrechungen“ bei eher hardwarenahen Ansätzen). Geräte werden basierend auf ihrem RSSI (Received Signal Strength Indicator), der hilft, die Nähe abzuschätzen, gefiltert. Nähere Geräte haben typischerweise stärkere Signale (höhere RSSI-Werte, was sich in weniger negativen dB-Werten übersetzt), und weiter entfernte Geräte haben schwächere Signale (d.h. einen negativeren dB-Wert). Der Track-Modus vergleicht erkannte MAC-Adressen mit einem vordefinierten Ziel und schaltet die an Bord befindliche LED ein, wenn eine Übereinstimmung gefunden wird. Die Scanparameter werden sorgfältig ausgewählt, um Echtzeitreaktionsfähigkeit mit CPU-Effizienz zu balancieren, um zu verhindern, dass der Pico überwältigt wird, während er kontinuierlich Bluetooth-Signale überwacht.
Um das Skript auszuführen, öffnen Sie einfach bluetooth_scan.py und klicken Sie auf die Schaltfläche Ausführen (wie wir es beim Blink-Beispiel oben gesehen haben), um die MAC-Adressen von in der Nähe befindlichen Geräten abzurufen.
Aktualisieren Sie dann das Skript mit einer spezifischen MAC-Adresse und wechseln Sie in den Track-Modus, um zu erkennen, wenn sich dieses Gerät in Reichweite bewegt. Dies kann in der Hauptfunktion am Ende des Skripts gefunden werden:
# Um ein spezifisches Gerät zu verfolgen (ersetzen Sie es durch die entdeckte MAC-Adresse)
# scanner = BLEScanner(mode="track", target_mac="aa:bb:cc:dd:ee:ff")
Die Scanparameter wurden optimiert, um eine reaktionsfähige Erkennung zu gewährleisten, ohne andere Operationen zu blockieren, was dies zu einer großartigen Einführung in das Bluetooth-Scanning und die Ereignisbehandlung auf dem Raspberry Pi Pico 2 W macht.
Der Raspberry Pi Pico 2 W ist eine aufregende Ergänzung für die Welt der eingebetteten Entwicklung und bietet eine perfekte Balance zwischen der Flexibilität eines Mikrocontrollers und der Leistungsfähigkeit der integrierten drahtlosen Konnektivität. Mit MicroPython haben wir gesehen, wie einfach es ist, von einem blinkenden LED bis hin zur Nutzung des integrierten Bluetooth 5.2 Moduls für die Echtzeit-Näherungserkennung, zu starten. Der implementierte Bluetooth-Näherungsscanner führt grundlegende Konzepte wie BLE-Scanning, ereignisgesteuerte Programmierung und Signalstärkenanalyse ein und demonstriert, wie viel mit so minimalem Code erreicht werden kann.
Obwohl dies nur ein einfaches Beispiel war, eröffnet der Pico 2 W eine ganz neue Bandbreite an Möglichkeiten für IoT-Anwendungen, Echtzeit-Tracking und drahtlose Automatisierung. Egal, ob Sie ein Hobbyist sind, der mit BLE-Peripheriegeräten experimentiert, oder ein Ingenieur, der an der Entwicklung von Next-Gen-Eingebetteten Systemen arbeitet, dieses kleine Gerät beweist, dass es ein Kraftpaket in einem winzigen Paket ist. Und das ist erst der Anfang – es gibt noch Wi-Fi, Optimierungen für geringen Stromverbrauch und mehr fortgeschrittene BLE-Interaktionen zu erkunden. Der Raspberry Pi Pico 2 W ist klein, aber er hat es in sich.
Um das Repository mit allen Codes zum Starten zu besuchen, besuchen Sie https://gitlab.com/embedded-designs/micropython-bluetooth-example.