class: center, middle # Raspberry Pi Pico ## Grundlagen, SDK, Projekte ### Hauke Goos-Habermann #### https://goos-habermann.de --- ### Über mich - Entwickler des
Softwareverteilungssystems m23
- Organisator der
Kieler Open Source und Linux Tage
-
Dienstleister zu m23, Linux und Freier Software
- Softwareentwicklung (PHP, BASH, C/C++, JS, Python und was sonst so gebraucht wird...) - Administration - Schulungen - Support - Beratung - quasi **alles**, *was mit Linux zu tun hat* - Wöchentlicher Livestream *"Jean und Hauke Show"* auf https://www.youtube.com/c/LinuxGuides - Community-Video-Serie *"Nicht der Weisheit letzter Schluß"* auf
tube.tchncs.de
und
YouTube
mit **beruflichen** oder **privaten Projekten** - Probiert auch gern mal andere Plattformen aus. --- ### Übersicht ![img100](pico.jpg)
2x 133 MHz ARM Cortex-M0+
264 KB SRAM (Programm + Daten)
2 MB Flash
30 GPIOs
USB 1.1 (Host- und Gerätemodus)
Analog-Digital-Umsetzer (ADC)
4 PIOs (Programmierbare Ein-/Ausgabe als Zustandsmaschine)
--- ### Verschiedene Boards basierend mit RP2040 * WLAN * Netzwerkbuchse * Bluetooth * Mehr Flash-Speicher * Spielekonsolen * ... --- ### SDK installieren + Projekte * Raspberry-Pi-Pico-SDK installieren:
picosdk-installieren.sh
* LED blinken lassen:
blink-projekt.sh
* Feuchtigkeitssensor:
feuchtigkeitssensor.sh
* DHT11 (https://sensorkit.joy-it.net/de/sensors/ky-015) * Stiftleisten * Steckboard * Steckboard-Verbindungsleitungen, Steckbrücken oder Kabel * Zusätzlich für andere Projekte * LEDs * Vorwiderstände 330Ω --- ### CMakeLists.txt cmake-Datei, um daraus die *Makefile* zum eigentlichen Kompilieren zum erstellen. #### Debug-Ausgabe ```bash # UART über DEBUG-Pins pico_enable_stdio_uart([Projektname] [0 = aus, 1 = an]) # USB pico_enable_stdio_usb([Projektname] [0 = aus, 1 = an]) ``` #### *Makefile* erstellen ```bash mkdir build cd build cmake .. ``` #### Kompilieren ```bash make ``` --- ### Und dann? * Taster beim Pi Pico festhalten und mit USB verbinden * uf2-Datei auf das USB-Laufwerk kopieren * Ggf. serielle DEBUG-Ausgabe aktivieren ```bash minicom -b 115200 -o -D /dev/serial/by-id/usb-Raspberry_Pi_Pico_* ``` * Zum Beenden: Strg+A (drücken + loslassen), dann X drücken --- ### So viele Möglichkeiten (Videos) * Robin Grosset * Raspberry Pi Pico, **HDMI** on a breadboard: https://www.youtube.com/watch?v=GyZS_efRyiY * Raspberry Pi Pico **VGA** video output using only resistors: https://www.youtube.com/watch?v=RmPWcsvGSyk * Raspberry Pi Pico **Audio** output: https://www.youtube.com/watch?v=rwPTpMuvSXg * **TinyGo** on the Raspberry Pi Pico: https://www.youtube.com/watch?v=Fl5eFIYU1Xg * Getting Started with **Multicore** Programming on the Raspberry Pi Pico: https://www.youtube.com/watch?v=aIFElaK14V4 * **tinyML** Talks Eben Upton: **Inference** with Raspberry Pi Pico and RP2040: https://www.youtube.com/watch?v=xTI4UeEOzkY * Showing off the Power of the Raspberry Pi Pico/RP2040 & **PIO**: https://www.youtube.com/playlist?list=PL-_wCtHUfdDOvB9edAA1Jge1ZUbgnf4Tu --- ### Projekte und/oder OpenHardware Einfach mal suchen; z.B. mit https://github.com/search?q=rp2040&type=Repositories * TFT-Ansteuerung: https://github.com/Bodmer/TFT_eSPI * Web-, FTP-Server: https://github.com/Wiznet/RP2040-HAT-C * WLAN + Webserver: https://github.com/khoih-prog/WiFiWebServer * Gamepads und Arcardesticks: https://github.com/FeralAI/GP2040, https://github.com/Drewol/rp2040-gamecon * USB-Mikrofon: https://electronut.in/mico/ * USB-Soundkarte: https://github.com/tierneytim/Pico-USB-audio * USB-Tastatur: https://github.com/sekigon-gonnoc/Pico-PIO-USB * Grafikbibliothek: https://github.com/tuupola/hagl * SD-Kartenleser: https://github.com/khoih-prog/RP2040_SD * DOS-ähnliche Shell mit BASIC: https://github.com/RetiredWizard/PyDOS --- class: center, middle ### Informationen zu mir und meinen Dienstleistungen, m23, ... ### https://goos-habermann.de