Die Abbildung wird geladen …
Ein Linux-Computer mit vier Kernen auf einer Platine von 85 x 56 mm: Python mit gpiozero an 40 GPIO-Pins und ROS 2 für Roboter
Jede Lektion führt deinen eigenen Code auf dem Board aus. Besteh ihre Prüfungen, um sie abzuhaken.
Bau das Board in der richtigen Reihenfolge, schalte es dann ein und prüf es, wie auf der Werkbank.
0 von 11 SchrittenZerleg den Pi bis auf die nackte Platine: ein Board von 85 x 56 mm mit vier Befestigungslöchern von 2,7 mm in einem Raster von 58 x 49 mm und dem Footprint der 40-poligen Stiftleiste am oberen Rand. Beide Seiten tragen Bauteile.
Jeder Fehler passiert in der Simulation wirklich. Lös einen aus, beobachte die Abbildung und lies dann, warum.
Die Einplatinencomputer von Raspberry Pi. Der Raspberry Pi 5 trägt einen Broadcom BCM2712 (vier Arm-Cortex-A76-Kerne mit 2,4 GHz und eine VideoCore-VII-GPU) mit 1 bis 16 GB LPDDR4X und übergibt jeden Anschluss über eine PCIe-Verbindung an RP1, den eigenen I/O-Chip von Raspberry Pi: USB, Ethernet, die Kamera- und Display-Lanes und die GPIO-Pins der Stiftleiste sitzen alle im RP1. Ein PMIC DA9091 mit acht Schaltreglern erzeugt jede Schiene aus den 5 V an USB-C und betreibt eine Echtzeituhr mit Batterieanschluss. Der Raspberry Pi 4 Model B hat denselben Umriss und dieselbe 40-polige Stiftleiste, aber ein älteres Layout: einen BCM2711 (vier Cortex-A72-Kerne mit 1,8 GHz), LPDDR4, einen USB-3-Controller VL805, eine 3,5-mm-A/V-Buchse und keinen Einschalttaster. Keines der beiden Boards hat einen Flash, auf den man hochlädt: Ein Programm ist eine Datei auf der microSD-Karte, und du startest es unter Linux, meist über SSH. Jeder GPIO arbeitet mit 3,3 V, verträgt höchstens 16 mA und ist nicht 5-V-tolerant. Die 5-V-Pins der Stiftleiste hängen ohne irgendetwas dazwischen direkt an der Eingangsschiene, also muss eine Versorgung dort sauber und richtig herum angeschlossen sein.
| Leiste | Pin | Name | Funktionen | Pegel | Max. Strom | Hinweise |
|---|---|---|---|---|---|---|
| J8 | 1 | 3V3 | 3.3 V power | 3,3 V | – | Die 3,3-V-Schiene des PMIC, geteilt mit der GPIO-Bank. Gut für Sensoren und kleine HATs, nicht für Motoren. |
| J8 | 2 | 5V | 5 V power (the input rail itself) | 5 V | – | Direkt an der 5-V-Eingangsschiene, ohne Schutz. Als Ausgang liefert er, was das USB-C-Netzteil liefert; als Eingang versorgt er den ganzen Pi, also muss es saubere 5 V sein, richtig herum. |
| J8 | 3 | GPIO2 | I2C1 SDA | 3,3 V | 16 mA | I2C1 SDA, mit einem festen 1,8-kΩ-Pull-up auf 3,3 V auf dem Board, also liest er HIGH, wenn nichts ihn treibt. |
| J8 | 4 | 5V | 5 V power (the input rail itself) | 5 V | – | Direkt an der 5-V-Eingangsschiene, ohne Schutz. Als Ausgang liefert er, was das USB-C-Netzteil liefert; als Eingang versorgt er den ganzen Pi, also muss es saubere 5 V sein, richtig herum. |
| J8 | 5 | GPIO3 | I2C1 SCL | 3,3 V | 16 mA | I2C1 SCL, mit einem festen 1,8-kΩ-Pull-up. Zieht man ihn auf LOW, weckt das einen angehaltenen Pi 4; ein Pi 5 hat dafür seinen Einschalttaster. |
| J8 | 6 | GND | – | – | – | |
| J8 | 7 | GPIO4 | GPCLK0, 1-Wire (w1-gpio) | 3,3 V | 16 mA | |
| J8 | 8 | GPIO14 | UART0 TXD | 3,3 V | 16 mA | UART0 TXD (/dev/ttyAMA0 auf einem Pi 5). Auf einem Pi 4 trägt er die serielle Konsole, wenn enable_uart=1 gesetzt ist; ein Pi 5 hat dafür einen eigenen UART-Anschluss. |
| J8 | 9 | GND | – | – | – | |
| J8 | 10 | GPIO15 | UART0 RXD | 3,3 V | 16 mA | UART0 RXD. Sein Partner ist GPIO14 an Pin 8. |
| J8 | 11 | GPIO17 | SPI1 CE1 | 3,3 V | 16 mA | |
| J8 | 12 | GPIO18 | PCM CLK, PWM0 | 3,3 V | 16 mA | Einer der vier Hardware-PWM-Pins (12, 13, 18, 19). gpiozeros PWMLED nutzt trotzdem Software-PWM über lgpio, an jedem Pin. |
| J8 | 13 | GPIO27 | – | 3,3 V | 16 mA | |
| J8 | 14 | GND | – | – | – | |
| J8 | 15 | GPIO22 | – | 3,3 V | 16 mA | |
| J8 | 16 | GPIO23 | – | 3,3 V | 16 mA | |
| J8 | 17 | 3V3 | 3.3 V power | 3,3 V | – | Die 3,3-V-Schiene des PMIC, geteilt mit der GPIO-Bank. Gut für Sensoren und kleine HATs, nicht für Motoren. |
| J8 | 18 | GPIO24 | – | 3,3 V | 16 mA | |
| J8 | 19 | GPIO10 | SPI0 MOSI | 3,3 V | 16 mA | |
| J8 | 20 | GND | – | – | – | |
| J8 | 21 | GPIO9 | SPI0 MISO | 3,3 V | 16 mA | |
| J8 | 22 | GPIO25 | – | 3,3 V | 16 mA | |
| J8 | 23 | GPIO11 | SPI0 SCLK | 3,3 V | 16 mA | |
| J8 | 24 | GPIO8 | SPI0 CE0 | 3,3 V | 16 mA | |
| J8 | 25 | GND | – | – | – | |
| J8 | 26 | GPIO7 | SPI0 CE1 | 3,3 V | 16 mA | |
| J8 | 27 | GPIO0 | ID_SD (HAT EEPROM, reserved) | 3,3 V | 16 mA | Reserviert für das HAT-ID-EEPROM (I2C0 SDA). Lass ihn frei, außer du weißt, dass du es nicht brauchst. |
| J8 | 28 | GPIO1 | ID_SC (HAT EEPROM, reserved) | 3,3 V | 16 mA | Reserviert für das HAT-ID-EEPROM (I2C0 SCL). |
| J8 | 29 | GPIO5 | – | 3,3 V | 16 mA | |
| J8 | 30 | GND | – | – | – | |
| J8 | 31 | GPIO6 | – | 3,3 V | 16 mA | |
| J8 | 32 | GPIO12 | PWM0 | 3,3 V | 16 mA | |
| J8 | 33 | GPIO13 | PWM1 | 3,3 V | 16 mA | |
| J8 | 34 | GND | – | – | – | |
| J8 | 35 | GPIO19 | PCM FS, PWM1, SPI1 MISO | 3,3 V | 16 mA | |
| J8 | 36 | GPIO16 | SPI1 CE2 | 3,3 V | 16 mA | |
| J8 | 37 | GPIO26 | – | 3,3 V | 16 mA | |
| J8 | 38 | GPIO20 | PCM DIN, SPI1 MOSI | 3,3 V | 16 mA | |
| J8 | 39 | GND | – | – | – | |
| J8 | 40 | GPIO21 | PCM DOUT, SPI1 SCLK | 3,3 V | 16 mA |
Sensoren und Aktoren, die dieses Board ansteuert, mit den echten Verbindungen.
Anode (langes Bein) über einen 330-Ω-Widerstand an GPIO17 an Pin 11, Kathode an GND an Pin 9: etwa 4 mA aus 3,3 V. gpiozero nennt sie LED(17).
| Bauteil-Pin | Board-Pin |
|---|---|
| A | GPIO17Kabelfarbe orange |
| K | GNDKabelfarbe schwarz |
Schließ eine LED nie ohne ihren Widerstand an: Der Pin würde versuchen, weit mehr als 16 mA zu liefern.
Ein Bein an GPIO27 an Pin 13, das andere an GND an Pin 14. gpiozeros Button schaltet den internen Pull-up ein, also braucht es keinen Widerstand: Der Pin liest HIGH, bis du drückst.
| Bauteil-Pin | Board-Pin |
|---|---|
| 1 | GPIO27Kabelfarbe gelb |
| 3 | GNDKabelfarbe schwarz |
VCC an 5V an Pin 2, GND an Pin 6, TRIG an GPIO23 an Pin 16 (3,3 V reichen zum Auslösen), ECHO über einen Spannungsteiler an GPIO24 an Pin 18: 1 kΩ in Reihe, 2 kΩ nach GND.
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | 5VKabelfarbe rot |
| TRIG | GPIO23Kabelfarbe gelb |
| ECHO | GPIO24Kabelfarbe grün |
| GND | GNDKabelfarbe schwarz |
ECHO ist ein 5-V-Ausgang. Direkt an einem GPIO-Pin drückt er Strom durch die Schutzdiode des Pads in die 3,3-V-Schiene und kann den Pin oder den ganzen I/O-Chip zerstören.
Signal an GPIO18 an Pin 12, Rot an 5V, Braun an GND. gpiozeros Servo und AngularServo erzeugen die 50-Hz-Pulse in Software, also rechne mit etwas Zittern; ein PCA9685-Board liefert ruhige Pulse.
| Bauteil-Pin | Board-Pin |
|---|---|
| signal | GPIO18Kabelfarbe orange |
| V+ | 5VKabelfarbe rot |
| GND | GNDKabelfarbe braun |
Der Blockierstrom eines Servos kommt aus der 5-V-Schiene des Pi. Ein SG90 ist in Ordnung; für mehr gib ihnen eine eigene 5-V-Versorgung mit gemeinsamer Masse.
VCC an 3V3, GND an GND, SDA an GPIO2 (Pin 3), SCL an GPIO3 (Pin 5). Die 1,8-kΩ-Pull-ups des Boards liegen schon an diesen Pins. Schalte I2C mit raspi-config ein und prüf es mit i2cdetect -y 1: Er antwortet auf 0x68.
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | 3V3Kabelfarbe rot |
| GND | GNDKabelfarbe schwarz |
| SCL | GPIO3Kabelfarbe gelb |
| SDA | GPIO2Kabelfarbe blau |
GND, VCC an 3V3, SCL an GPIO3, SDA an GPIO2: derselbe I2C-Bus wie andere Sensoren, meist auf Adresse 0x3C.
| Bauteil-Pin | Board-Pin |
|---|---|
| GND | GNDKabelfarbe schwarz |
| VCC | 3V3Kabelfarbe rot |
| SCL | GPIO3Kabelfarbe gelb |
| SDA | GPIO2Kabelfarbe blau |
Plus an GPIO22 an Pin 15, Minus an GND. Ein aktiver Summer braucht nur gpiozeros Buzzer(22); ein passiver braucht einen Ton, von TonalBuzzer.
| Bauteil-Pin | Board-Pin |
|---|---|
| + | GPIO22Kabelfarbe orange |
| - | GNDKabelfarbe schwarz |