Componente · Controlador

Raspberry Pi

La Raspberry Pi es un ordenador Linux del tamaño de una tarjeta: el cerebro de robots que exigen visión, ROS o potencia de cálculo que un Arduino no alcanza.

Qué es

La Raspberry Pi es un ordenador completo del tamaño de una tarjeta de crédito. Donde un Arduino Uno es un microcontrolador que ejecuta un único programa para siempre, un Pi ejecuta Linux, así que puede manejar una cámara, hablar con la red, ejecutar ROS 2 y correr tu código de robótica todo a la vez. Es el cerebro al que recurres cuando un robot necesita pensar, no solo reaccionar.

Ese poder es también su contrapartida: el multitarea de Linux hace que el Pi sea peor en los tiempos con precisión de microsegundo que un microcontrolador resuelve sin esfuerzo. Los dos son socios, no rivales.

Diagrama etiquetado de un ordenador de placa única Raspberry Pi: un PCB verde con una cabecera GPIO de 40 pines de pads dorados a lo largo del borde superior, un SoC de Broadcom y un chip de RAM en el centro, un bloque apilado de USB y Ethernet en el borde derecho, HDMI y alimentación USB-C en el borde inferior, y una ranura para microSD a la izquierda.
Una Raspberry Pi empaqueta un ordenador en una sola placa: el SoC y la RAM ejecutan Linux, la cabecera GPIO de 40 pines habla con el hardware del robot, y la microSD guarda el sistema operativo. Descargar SVG

Cómo funciona

El Pi arranca un sistema operativo (normalmente Raspberry Pi OS) desde una tarjeta microSD y se comporta como cualquier máquina Linux. Para robótica, la parte importante es la cabecera GPIO de 40 pines: entradas y salidas digitales, más buses I²C, SPI y UART, que permiten al Pi leer sensores y mandar órdenes al hardware. Por encima están las partes informáticas —USB, Ethernet, Wi-Fi y una interfaz de cámara— que un microcontrolador sencillamente no tiene.

Una arquitectura habitual es el robot de dos cerebros: el Pi se encarga de la percepción y la planificación (visión, SLAM, nodos de ROS) y baja las órdenes de los motores a un Arduino que hace el control en tiempo real.

Cuándo usarlo

Recurre a un Pi cuando el robot necesite las capacidades de un ordenador:

  • Visión por computador: una cámara más OpenCV para detectar marcadores, objetos o líneas.
  • ROS 2: ejecutar nodos, temas y la pila de navegación.
  • Cartografía y SLAM: construir un mapa y localizarse en él.
  • Redes: un panel de control web, control remoto o telemetría.

Quédate con un Arduino o un ESP32 para tareas de control puro en tiempo real: son más baratos, más simples y mejores en tiempos precisos.

Cableado y errores comunes

  • Lógica de 3,3 V, y sin tolerancia a 5 V. Meterle 5 V a un pin GPIO puede dañar el Pi. Convierte el nivel de las señales que vienen de componentes de 5 V (por ejemplo la línea TX de un HC-05).
  • Sigue sin poder alimentar motores. El GPIO maneja señales; la corriente de motor pasa por un controlador como el L298N.
  • La alimentación es quisquillosa. Dale unos 5 V estables y con corriente suficiente; los brown-outs corrompen la tarjeta SD y provocan reinicios aleatorios.
  • Apágalo limpiamente. Cortar la alimentación de un sistema Linux en marcha puede corromper la tarjeta: diseña un apagado seguro o usa un sistema de archivos de solo lectura.

La cabecera de 40 pines, y cuáles puedes usar

La cabecera tiene 40 pines y solo 26 son GPIO utilizables. El resto son alimentación y masa.

Función Pines (numeración BCM) Notas
I²C-1 GPIO 2 (SDA), GPIO 3 (SCL) Pull-ups fijos de 1.8 kΩ a 3.3 V en la placa
SPI0 GPIO 10 (MOSI), 9 (MISO), 11 (SCLK), 8/7 (CE0/CE1)
UART GPIO 14 (TX), 15 (RX) Lo usa la consola de Linux por defecto: hay que liberarlo
PWM por hardware GPIO 12, 13, 18, 19 Solo estos cuatro; todo lo demás es PWM por software
Alimentación 3.3 V, 5 V Los 5 V vienen directamente de la entrada, sin regular
Uso general El resto

Dos de esas filas le cuestan a la gente una tarde entera con regularidad.

El UART es la consola. De fábrica, GPIO 14/15 llevan un prompt de login de Linux. Si conectas ahí un módulo GPS o un Arduino, obtendrás ruido de login en lugar de datos. Libéralos con sudo raspi-config → Interface Options → Serial Port → login shell: no, hardware serial: yes. En un Pi 3 y posteriores hay otro detalle: el buen UART lo usa el Bluetooth por defecto, y el de la cabecera es un «mini UART» menor cuya velocidad de baudios se desvía con el reloj de la CPU. Añade dtoverlay=disable-bt a /boot/config.txt para intercambiarlos.

El PWM por software vibra. Solo cuatro pines tienen PWM por hardware. Todo lo demás lo genera el kernel, y el planificador de Linux lo interrumpirá, lo que en un servo se ve como conmutación visible. Es la ilustración más clara de lo que un Pi hace mal.

El problema de los tiempos, dicho sin rodeos

Esto es lo más importante que hay que entender sobre un Pi en un robot, y no es un defecto: es lo que es un sistema operativo.

Un microcontrolador ejecutando loop() corre tu código y nada más, así que un intervalo de 1 ms es 1 ms. Linux es de tiempo compartido: el kernel puede preemptar tu proceso para atender un paquete de red, vaciar una escritura en disco o ejecutar cualquiera de cien tareas en segundo plano.

Tarea Microcontrolador Raspberry Pi (Linux estándar)
Lazo de control a 1 kHz Trivial, exacto Posible, con fallos ocasionales de escala de milisegundo
PWM de servo Firme como una roca Visiblemente inestable en pines de PWM por software
Lectura de un encoder a 20 kHz Rutina con interrupciones Poco fiable: se pierden flancos
Cronometraje del eco de un ultrasónico Preciso al microsegundo Errores aleatorios de varios centímetros
Visión, planificación, redes Imposible Exactamente para eso

La consecuencia es la arquitectura de dos cerebros, y no es un compromiso sino el diseño normal de un robot serio:

Raspberry Pi                        Microcontroller
- camera, vision                    - encoder counting
- SLAM, path planning       <-->    - PID motor control
- ROS 2 nodes                       - servo timing
- networking, dashboard             - emergency stop
        high-level goals                  hard real time

Se hablan por serie USB, UART o I²C, y cada uno hace lo que se le da bien. Un Pi que intenta contar flancos de encoder los perderá; un Arduino que intenta ejecutar OpenCV no puede.

Cómo alimentarlo, y el problema de la tarjeta SD

La alimentación es donde fallan los robots con Pi, y el modo de fallo es inhabitualmente caro: un brown-out durante una escritura corrompe la tarjeta SD, y pierdes la imagen completa del sistema.

Modelo Alimentación recomendada Bajo carga
Pi Zero 2 W 5 V, 2.5 A ~350 mA típicos
Pi 3B+ 5 V, 2.5 A ~500 mA, picos cerca de 1.2 A
Pi 4B 5 V, 3 A (USB-C) ~600 mA, picos cerca de 1.5 A
Pi 5 5 V, 5 A (USB-C PD) Bastante más

Reglas que se derivan de eso:

  • Nunca alimentes los motores y el Pi desde el mismo riel. La corriente de arranque del motor es exactamente el transitorio que corrompe una tarjeta.
  • Usa un regulador conmutado, no uno lineal, si bajas de una batería. Un regulador lineal que pasa de 11,1 V a 5 V a 1 A quema 6 W.
  • Vigila el rayo. El Pi muestra un icono de aviso de subtensión y lo registra en el log; vcgencmd get_throttled también lo informa. Cualquier valor distinto de cero significa que la alimentación es insuficiente, y acabará corrompiendo una tarjeta.
  • Apágalo limpiamente. sudo shutdown -h now antes de cortar la alimentación. Un robot que se apaga con un interruptor de palanca necesita un botón de apagado cableado a un GPIO, o un sistema de archivos raíz de solo lectura.

El sistema de archivos de solo lectura merece considerarse seriamente para un robot desplegado: con overlayfs activado, nunca se escribe nada en la tarjeta durante el funcionamiento, y la alimentación se puede cortar en cualquier momento sin consecuencias. Pierdes la posibilidad de guardar datos localmente, que suele ser un intercambio razonable.

Qué modelo elegir para un robot

Modelo RAM Por qué elegirlo
Pi Zero 2 W 512 MB Diminuto y ligero. Suficiente para una cámara y visión sencilla
Pi 3B+ 1 GB Barato, adecuado para ROS 2 con nodos modestos
Pi 4B (4 GB) 4 GB El punto dulce práctico para ROS 2 más visión
Pi 5 4–16 GB Notablemente más rápido; necesita más potencia y refrigeración activa

Para ROS 2 con cámara, los 4 GB son el punto en que las cosas dejan de ser frustrantes. RViz, un nodo de visión y una pila de navegación juntos usarán más de 1 GB, y un Pi que empieza a intercambiar con la tarjeta SD se vuelve insoportablemente lento, y desgaste la tarjeta.

Dos accesorios que en la práctica no son opcionales: un disipador o ventilador (un Pi 4 bajo carga sostenida limita su frecuencia a 80 °C, y un Pi limitado pierde fotogramas) y una tarjeta microSD de buena calidad, clase A2, o mejor, arrancar desde un SSD USB. La velocidad de la tarjeta es el cuello de botella mucho más a menudo que la CPU.

Resolución de problemas

Síntoma Causa probable Solución
Reinicios aleatorios Alimentación insuficiente Comprueba vcgencmd get_throttled; usa una fuente de 3 A
La tarjeta SD se corrompe repetidamente Corte de alimentación mientras escribe Apagado limpio, o sistema de archivos de solo lectura
Icono del rayo Subtensión Mejor alimentación y mejor cable: los cables importan
El serie da ruido de login La consola sigue en el UART Desactiva el login shell en raspi-config
La velocidad del serie es incorrecta El mini UART depende del reloj de la CPU dtoverlay=disable-bt para conseguir el buen UART
El servo da tirones PWM por software más el planificador Usa un PCA9685, o un microcontrolador
Las cuentas del encoder están mal Flancos perdidos bajo carga Cuéntalos en un microcontrolador
Se ralentiza a los pocos minutos Limitación térmica Disipador o ventilador
Un pin GPIO ha dejado de funcionar 5 V hacia un pin de 3.3 V Convierte el nivel; el pin está probablemente dañado
No se detecta el dispositivo I²C Interfaz no habilitada raspi-config y luego i2cdetect -y 1

¿Pi o microcontrolador?

Arduino / ESP32 Raspberry Pi
Ejecuta Tu código, solo Linux, y tu código entre muchos procesos
Tiempos Deterministas hasta el microsegundo El mejor esfuerzo, con vibración de escala de milisegundo
Tiempo de arranque Instantáneo 20–30 segundos
Corte de alimentación Inofensivo Puede corromper el sistema de archivos
Visión, ROS 2, redes No Sí
Consumo Miliamperios De cientos de miliamperios a amperios
Coste 3–8 $ 35–80 $

El encuadre honesto: no son competidores. Un Pi no puede contar un encoder de forma fiable y un microcontrolador no puede ejecutar OpenCV. Casi todos los robots de afición capaces acaban con ambos, y reconocerlo pronto ahorra mucho esfuerzo dedicado a intentar que uno haga el trabajo del otro.

Si todo el comportamiento de tu robot cabe en un lazo de control —un seguidor de línea, un esquivador de obstáculos, un resolutor de laberinto— no necesitas un Pi en absoluto, y añadirlo hace que el robot tarde más en arrancar, sea más frágil y más difícil de depurar.

Explora el grafo

Se usa en estos montajes

Proyectos, rutas de aprendizaje y simuladores que incluyen Raspberry Pi.

Comparar

Alternativas

Preguntas

Preguntas frecuentes sobre Raspberry Pi

¿Qué es una Raspberry Pi?

Una Raspberry Pi es un ordenador de placa única pequeño y de bajo coste que ejecuta un sistema operativo Linux completo. A diferencia de un Arduino, que ejecuta un único programa en un microcontrolador, la Pi es un ordenador de verdad: puede manejar una cámara, un navegador, ROS y el código de tu robot al mismo tiempo.

¿Raspberry Pi o Arduino: cuál necesito?

Usa un Arduino para el control en tiempo real de motores y sensores; usa una Raspberry Pi cuando el robot necesite visión, mapas, ROS o red. Muchos robots usan ambos: la Pi como cerebro de alto nivel y un Arduino como las manos en tiempo real. La multitarea de Linux hace que la Pi sea peor, no mejor, para una temporización con precisión de microsegundos.

¿Puede una Raspberry Pi controlar motores?

Sus pines GPIO pueden enviar señales PWM y de dirección, pero, igual que un Arduino, no puede alimentar un motor desde un pin. Sigues necesitando mover los motores a través de un puente H como el L298N. Además, los pines de la Pi son de 3.3 V, así que vigila los niveles lógicos al conectarla a componentes de 5 V.

¿Necesitas una Raspberry Pi para un robot?

No. La mayoría de los robots de iniciación (seguidor de línea, robot que esquiva obstáculos) funcionan sin problemas con un Arduino por una fracción del coste y la complejidad. Recurre a una Pi solo cuando la tarea necesite de verdad un ordenador: visión artificial, SLAM, ejecutar ROS 2 o una interfaz web.

¿Cuáles son los mejores modelos de Raspberry Pi para robótica?

La Raspberry Pi 4 y la Pi 5 son las opciones habituales: suficiente CPU y RAM para visión artificial y ROS. La Pi Zero 2 W es una opción diminuta y de bajo consumo para robots más ligeros, donde el espacio y la batería importan más que la velocidad bruta. Descarta los modelos más antiguos (Pi 1 y 2) para cualquier cosa con mucho cálculo.

Lecturas adicionales

Referencias