Cargando la figura…
Un ordenador Linux de cuatro núcleos en una placa de 85 x 56 mm: Python con gpiozero en 40 pines GPIO, y ROS 2 para robots
Cada lección ejecuta tu propio código en la placa. Supera sus comprobaciones para marcarla.
Monta la placa en el orden correcto y después dale corriente y compruébala, como en el banco de trabajo.
0 de 11 pasosDeja la Pi en su PCB desnuda: una placa de 85 x 56 mm con cuatro agujeros de montaje de 2,7 mm en una cuadrícula de 58 x 49 mm y la huella del conector de 40 pines a lo largo del borde superior. Las dos caras llevan componentes.
Cada avería ocurre de verdad en la simulación. Provoca una, mira la figura y luego lee por qué.
Los ordenadores de placa única de Raspberry Pi. La Raspberry Pi 5 lleva un Broadcom BCM2712 (cuatro núcleos Arm Cortex-A76 a 2,4 GHz y una GPU VideoCore VII) con 1 a 16 GB de LPDDR4X, y le pasa todos los puertos a RP1, el chip de E/S propio de Raspberry Pi, por un enlace PCIe: el USB, el Ethernet, las líneas de cámara y pantalla y los pines GPIO del conector están todos en RP1. Un PMIC DA9091 con ocho reguladores conmutados genera todas las líneas a partir de los 5 V del USB-C y mantiene un reloj de tiempo real con conector de batería. La Raspberry Pi 4 Model B tiene el mismo contorno y el mismo conector de 40 pines, pero una distribución más antigua: un BCM2711 (cuatro núcleos Cortex-A72 a 1,8 GHz), LPDDR4, un controlador USB 3 VL805, un jack de A/V de 3,5 mm y ningún botón de encendido. Ninguna de las dos tiene una flash a la que cargar el programa: un programa es un archivo en la tarjeta microSD, y lo ejecutas en Linux, normalmente por SSH. Todos los GPIO funcionan a 3,3 V, admiten como mucho 16 mA y no toleran 5 V. Los pines de 5 V del conector están directamente sobre la línea de entrada, sin nada en medio, así que una fuente conectada ahí tiene que ser limpia y estar bien orientada.
| Conector | Pin | Nombre | Funciones | Nivel | Corriente máx. | Notas |
|---|---|---|---|---|---|---|
| J8 | 1 | 3V3 | 3.3 V power | 3,3 V | – | La línea de 3,3 V del PMIC, compartida con el banco de GPIO. Sirve para sensores y HAT pequeños, no para motores. |
| J8 | 2 | 5V | 5 V power (the input rail itself) | 5 V | – | Directamente sobre la línea de entrada de 5 V, sin protección. Como salida da lo que dé la fuente USB-C; como entrada alimenta toda la Pi, así que tienen que ser 5 V limpios y bien orientados. |
| J8 | 3 | GPIO2 | I2C1 SDA | 3,3 V | 16 mA | I2C1 SDA, con una pull-up fija de 1,8 kΩ a 3,3 V en la placa, así que lee alto cuando nada lo controla. |
| J8 | 4 | 5V | 5 V power (the input rail itself) | 5 V | – | Directamente sobre la línea de entrada de 5 V, sin protección. Como salida da lo que dé la fuente USB-C; como entrada alimenta toda la Pi, así que tienen que ser 5 V limpios y bien orientados. |
| J8 | 5 | GPIO3 | I2C1 SCL | 3,3 V | 16 mA | I2C1 SCL, con una pull-up fija de 1,8 kΩ. Ponerlo a nivel bajo despierta una Pi 4 apagada; una Pi 5 tiene su botón de encendido para eso. |
| 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 en una Pi 5). En una Pi 4 lleva la consola serie cuando está puesto enable_uart=1; una Pi 5 tiene un conector UART aparte para eso. |
| J8 | 9 | GND | – | – | – | |
| J8 | 10 | GPIO15 | UART0 RXD | 3,3 V | 16 mA | UART0 RXD. Su pareja es GPIO14, en el pin 8. |
| J8 | 11 | GPIO17 | SPI1 CE1 | 3,3 V | 16 mA | |
| J8 | 12 | GPIO18 | PCM CLK, PWM0 | 3,3 V | 16 mA | Uno de los cuatro pines de PWM por hardware (12, 13, 18, 19). El PWMLED de gpiozero sigue usando PWM por software a través de lgpio, en cualquier 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 | – | La línea de 3,3 V del PMIC, compartida con el banco de GPIO. Sirve para sensores y HAT pequeños, no para motores. |
| 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 | Reservado para la EEPROM de identificación del HAT (I2C0 SDA). Déjalo libre salvo que sepas que no la necesitas. |
| J8 | 28 | GPIO1 | ID_SC (HAT EEPROM, reserved) | 3,3 V | 16 mA | Reservado para la EEPROM de identificación del HAT (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 |
Sensores y actuadores que maneja esta placa, con sus conexiones reales.
Ánodo (pata larga) a GPIO17, en el pin 11, a través de una resistencia de 330 Ω, y cátodo a GND, en el pin 9: unos 4 mA desde 3,3 V. gpiozero lo llama LED(17).
| Pin de la pieza | Pin de la placa |
|---|---|
| A | GPIO17Cable de color naranja |
| K | GNDCable de color negro |
Nunca conectes un LED sin su resistencia: el pin intentaría dar mucho más de 16 mA.
Una pata a GPIO27, en el pin 13, y la otra a GND, en el pin 14. El Button de gpiozero activa la pull-up interna, así que no hace falta resistencia: el pin lee alto hasta que pulsas.
| Pin de la pieza | Pin de la placa |
|---|---|
| 1 | GPIO27Cable de color amarillo |
| 3 | GNDCable de color negro |
VCC a 5V en el pin 2, GND al pin 6, TRIG a GPIO23 en el pin 16 (3,3 V bastan para dispararlo), ECHO a GPIO24 en el pin 18 a través de un divisor: 1 kΩ en serie, 2 kΩ a GND.
| Pin de la pieza | Pin de la placa |
|---|---|
| VCC | 5VCable de color rojo |
| TRIG | GPIO23Cable de color amarillo |
| ECHO | GPIO24Cable de color verde |
| GND | GNDCable de color negro |
ECHO es una salida de 5 V. Directamente a un pin GPIO, mete corriente por el diodo de protección del pad hacia la línea de 3,3 V y puede matar el pin o todo el chip de E/S.
Señal a GPIO18 en el pin 12, rojo a 5V, marrón a GND. Servo y AngularServo de gpiozero generan los pulsos de 50 Hz por software, así que cuenta con algo de temblor; una placa PCA9685 da pulsos estables.
| Pin de la pieza | Pin de la placa |
|---|---|
| signal | GPIO18Cable de color naranja |
| V+ | 5VCable de color rojo |
| GND | GNDCable de color marrón |
La corriente de bloqueo de un servo sale de la línea de 5 V de la Pi. Un SG90 va bien; para más, dales su propia fuente de 5 V con la tierra común.
VCC a 3V3, GND a GND, SDA a GPIO2 (pin 3), SCL a GPIO3 (pin 5). Las pull-ups de 1,8 kΩ de la placa ya están en esos pines. Activa el I2C con raspi-config y compruébalo con i2cdetect -y 1: responde en 0x68.
| Pin de la pieza | Pin de la placa |
|---|---|
| VCC | 3V3Cable de color rojo |
| GND | GNDCable de color negro |
| SCL | GPIO3Cable de color amarillo |
| SDA | GPIO2Cable de color azul |
GND, VCC a 3V3, SCL a GPIO3, SDA a GPIO2: el mismo bus I2C que otros sensores, normalmente en la dirección 0x3C.
| Pin de la pieza | Pin de la placa |
|---|---|
| GND | GNDCable de color negro |
| VCC | 3V3Cable de color rojo |
| SCL | GPIO3Cable de color amarillo |
| SDA | GPIO2Cable de color azul |
El positivo a GPIO22 en el pin 15, el negativo a GND. Un zumbador activo solo necesita el Buzzer(22) de gpiozero; uno pasivo necesita un tono, de TonalBuzzer.
| Pin de la pieza | Pin de la placa |
|---|---|
| + | GPIO22Cable de color naranja |
| - | GNDCable de color negro |