extras:codikon:hardware:pipico
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| extras:codikon:hardware:pipico [2025/07/06 07:49] – ↷ Page moved from extras:codikon:pipico to extras:codikon:hardware:pipico Felix Hardmood Beck | extras:codikon:hardware:pipico [2026/10/15 07:15] (current) – Felix Hardmood Beck | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| ---- | ---- | ||
| + | ====== 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 | | ||
| + | |||
| + | * Suffix W: integriertes Funkmodul (WLAN und Bluetooth). | ||
| + | * Suffix H bzw. „with headers“: Stiftleisten sind bereits aufgelötet. | ||
| + | * Pinbelegung und Abmessungen sind zwischen Pico 1 und Pico 2 kompatibel; Pico W und Pico 2 W teilen sich ebenfalls ein Layout. | ||
| + | |||
| + | |||
| + | ===== 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/ | ||
| + | | 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 ===== | ||
| + | |||
| + | * Micro-USB-Buchse (Stromversorgung und Daten) an der oberen Kante. | ||
| + | * BOOTSEL-Taster unterhalb der USB-Buchse; wird zum Aufspielen neuer Firmware benötigt. | ||
| + | * Onboard-LED: | ||
| + | * 40 Pins (je 20 pro Seite), davon 26 GPIO. | ||
| + | * Debug-Anschluss (SWD) mittig unter dem Mikrocontroller. | ||
| + | |||
| + | Wichtige Versorgungs- und Sonderpins: | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | Analogeingänge liegen auf '' | ||
| + | |||
| + | Offizielles Pinout-Diagramm: | ||
| + | |||
| + | |||
| + | ===== Programmiersprachen und Umgebungen ===== | ||
| + | |||
| + | ^ Umgebung ^ Sprache ^ Charakteristik ^ | ||
| + | | CircuitPython (Adafruit) | Python | Board erscheint als USB-Laufwerk '' | ||
| + | | MicroPython | Python | Offiziell von Raspberry Pi unterstützt; | ||
| + | | Pico C/C++ SDK | C, C++ | Höchste Performance und volle Hardwarekontrolle; | ||
| + | | Arduino-Core | C++ (Arduino) | Community-Core; | ||
| + | |||
| + | |||
| + | ===== CircuitPython installieren ===== | ||
| + | |||
| + | Bei den Workshop-Boards ist CircuitPython bereits installiert. Für eigene Boards oder ein Update: | ||
| + | |||
| + | - Passende UF2-Datei für „Raspberry Pi Pico W“ von [[https:// | ||
| + | - BOOTSEL-Taster gedrückt halten und das Board per USB mit dem Rechner verbinden. | ||
| + | - Es erscheint ein Laufwerk '' | ||
| + | - UF2-Datei per Drag-and-drop auf '' | ||
| + | - Das Board startet neu und erscheint als Laufwerk '' | ||
| + | |||
| + | 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): [[https:// | ||
| + | |||
| + | |||
| + | ===== Editor: Mu ===== | ||
| + | |||
| + | * Mu Editor installieren: | ||
| + | * '' | ||
| + | * Serieller Monitor („Serial“): | ||
| + | * Plotter: stellt Zahlenwerte als Kurven dar, wenn sie als Tupel ausgegeben werden, z. B. '' | ||
| + | * Im seriellen Monitor bricht ctrl + C das laufende Programm ab; ctrl + D startet es neu (Steuerzeichen der seriellen Konsole, auch auf dem Mac mit ctrl). | ||
| + | |||
| + | |||
| + | ===== Erstes Programm: Onboard-LED blinken lassen ===== | ||
| + | |||
| + | <code python> | ||
| + | # --- 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 ===== | ||
| + | |||
| + | * Input: Signal, das der Mikrocontroller erfasst (Taster, Drehregler, Sensor). | ||
| + | * Output: Element, das der Mikrocontroller steuert (Licht, Lautsprecher, | ||
| + | * Digital: zwei Zustände (an/aus, True/ | ||
| + | * Analog: kontinuierlicher Wertebereich; | ||
| + | * PWM: schnelles Ein- und Ausschalten eines digitalen Signals; erzeugt ein analog wirkendes Signal (Helligkeit, | ||
| + | * I²C: Bus mit zwei Leitungen (SDA = Daten, SCL = Takt) für komplexere Bauteile; jedes Gerät besitzt eine Adresse. Modul '' | ||
| + | |||
| + | |||
| + | ===== Grove Shield im Workshop ===== | ||
| + | |||
| + | Das Grove Shield für den Pi Pico stellt lötfreie Grove-Steckverbinder bereit: | ||
| + | |||
| + | * 3 digitale Anschlüsse | ||
| + | * 2 I²C-Anschlüsse (I2C0: '' | ||
| + | * 2 UART-Anschlüsse, | ||
| + | * 3 analoge Anschlüsse A0, A1, A2 | ||
| + | |||
| + | Die Anschlüsse A1 und A2 sind „geschindelt“: | ||
| + | |||
| + | |||
| + | ===== Typische Fehlerquellen ===== | ||
| + | |||
| + | * Laufwerk '' | ||
| + | * '' | ||
| + | * Analoger Sensor liefert keine Werte: Sensor steckt an einem digitalen statt an einem analogen Anschluss. | ||
| + | * I²C-Gerät nicht gefunden: Anschluss und Pinpaar (SCL/SDA) im Code prüfen. | ||
| + | * Laufwerk vor dem Abziehen des Kabels im Finder auswerfen, um Datenverlust in '' | ||
| + | |||
| + | |||
| + | ===== Quellen ===== | ||
| + | |||
| + | * Raspberry Pi Ltd.: Pico microcontroller boards. [[https:// | ||
| + | * Raspberry Pi Ltd.: Raspberry Pi Pico W Datasheet. [[https:// | ||
| + | * Raspberry Pi Ltd.: RP2040 Datasheet. [[https:// | ||
| + | * Microcontroller Workshop DTI ’26. [[https:// | ||
| + | * Adafruit: CircuitPython for Raspberry Pi Pico W. [[https:// | ||
/var/www/vhosts/ct-lab.info/wiki.ct-lab.info/data/attic/extras/codikon/hardware/pipico.1751788192.txt.gz · Last modified: by Felix Hardmood Beck