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.
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_throttledtambié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 nowantes 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