Robótica · Arduino Uno + Sensor Shield

Construye un robot de cuatro patas con rodillas

8 servos, un Arduino Uno y un shield. Piezas, cableado, calibración y código listos para que se mantenga de pie y camine.

Banner de robo4: robot cuadrúpedo con 8 servos, Arduino Uno y shield
En resumen

robo4 es un plan completo para construir en casa un pequeño robot de cuatro patas (unos 20 cm) que camina. Cada pata tiene dos motores pequeños, llamados servos: uno en la cadera y otro en la rodilla. Un Arduino Uno con una placa de expansión (shield) encima lo controla todo; allí se conectan los 8 servos. Aquí tienes la lista de piezas, los diagramas de cableado, los pasos de montaje y calibración y el código listo para compilar. Es para quien quiere aprender robótica con sus propias manos; necesitas una computadora, las piezas de la lista y una tarde para montarlo.

Qué es

Un cuadrúpedo sencillo que camina de verdad

Dos articulaciones por pata es lo mínimo para que el pie suba, avance y baje. Lo demás es calibración y ritmo.

Etapas de robo4: piezas, montaje, cableado, calibración, cinemática y marcha

🦿 Rodillas de verdad

Cadera y rodilla en cada pata (8 servos MG90S con engranajes metálicos). El pie describe un arco: sube, avanza y se apoya.

🔌 Sin protoboard

El Sensor Shield V5 tiene 3 pines por puerto: los servos se conectan directamente de D2 a D9. Los servos reciben energía de una fuente separada.

🧮 Código listo

Cinemática inversa, trote, marcha lenta, giros y calibración guardada en la memoria. Controla el robot con letras desde el Monitor Serial.

Cómo funciona

De las piezas al trote

Son siete etapas, que corresponden a los 10 pasos de la guía: batería = paso 1, electrónica = 2, servos a 90° = 3, patas = 4 y 5, calibración = 6 a 8, marcha lenta = 9, trote = 10.

Comprar y cargar la batería→ Electrónica en la mesa→ Servos a 90°→ Montar las patas→ Calibrar→ Marcha lenta→ Trote

Dónde debe estar el pie

El código trabaja en milímetros: «pie 15 mm adelante y 85 mm debajo de la cadera». La cinemática inversa (ley de cosenos) lo convierte en dos ángulos.

Hacia dónde va el servo

90° en el servo = muslo vertical y rodilla en ángulo recto. Cadera: 90 + signo × ángulo + ajuste. Rodilla: 90 + signo × (ángulo − 90) + ajuste.

Cuándo sube cada pie

En la marcha lenta sube un pie a la vez (tres en el suelo) y el cuerpo se balancea para que el peso quede sobre ellos. En el trote suben dos pies en diagonal. Todo se actualiza 50 veces por segundo.

Piezas y herramientas

Qué comprar

Los precios en reales son estimaciones de octubre de 2026. Total básico: R$ 450 a 850, sin impresora 3D ni opcionales.

Ilustración de todas las piezas del robot organizadas sobre la mesa
Ilustración generada con IA: el kit completo antes del montaje.

En el celular, arrastra la tabla hacia un lado para ver todas las columnas.

ElementoCant.EstimaciónPor qué elegirlo
Arduino Uno R3 + cable USB1R$ 50–130Cerebro del robot
Sensor Shield V5.0 para Uno1R$ 20–35Pines S/V/G para conectar los servos y bornera de alimentación separada
Microservo MG90S8 (+1 de repuesto)R$ 18–30 cada unoLos engranajes metálicos soportan el peso en la rodilla; los engranajes plásticos del SG90 se desgastan
Batería LiPo 2S 7,4 V, 1000–2200 mAh, XT601R$ 70–140Alimenta los servos y el Arduino
UBEC / step-down 5–6 V, 5 A o más1R$ 20–45Los 8 servos consumen de 4 a 6 A en el pico
Portafusible de cuchilla + fusible de 7,5 A1R$ 8–15Justo después del XT60: un cortocircuito no derrite el cable ni la pista
Interruptor de encendido/apagado (≥ 5 A)1R$ 5–10Apaga todo de una vez
Alarma de voltaje para LiPo (zumbador)1R$ 8–15Suena antes de que la batería baje demasiado
Enchufe P4 macho de 5,5 × 2,1 mm con cable1R$ 5–10Lleva la batería al jack DC del Uno (el shield cubre el pin VIN)
Cable 18 AWG rojo y negro (~1 m)1R$ 8–15Línea de alimentación batería → interruptor → UBEC → bornera
Cargador balanceado 2S1R$ 60–150La LiPo solo se carga con un balanceador
Chasis + 4 muslos + 4 tibias1 juegoR$ 10–40Acrílico o MDF de 3 mm cortado según el plano acotado, o impreso en 3D con los archivos STL (15 piezas, incluidas 4 escuadras)
Patas de goma, tornillos M2/M3, separadores, bridas, velcrokitR$ 30–60Sujeción y agarre
Opcionales: Bluetooth HC-05, ultrasonido HC-SR04, IMU MPU-6050—R$ 50–80Control desde el celular, evitar obstáculos, equilibrio

Herramientas

Destornillador Phillips pequeño, alicate de corte, multímetro y cautín (solo para el XT60 y el interruptor).

Software

Arduino IDE o arduino-cli (herramienta de línea de comandos de Arduino). Los comandos de esta guía usan arduino-cli.

# instala arduino-cli (Linux/macOS; en Windows descárgalo desde arduino.github.io/arduino-cli)
mkdir -p ~/.local/bin
curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=~/.local/bin sh
export PATH="$HOME/.local/bin:$PATH"  # agrega esta línea a ~/.bashrc
arduino-cli core update-index
arduino-cli core install arduino:avr
arduino-cli lib install Servo
# Linux: permiso para usar el puerto USB (cierra sesión y vuelve a entrar después)
sudo usermod -aG dialout $USER

Las placas con chip CH340 aparecen como /dev/ttyUSB0 y, en Windows, pueden requerir el controlador CH340.

Código del proyecto

Descarga el repositorio con los dos sketches: montaje y firmware.

git clone https://github.com/inematds/robo4
cd robo4
Diagramas

Todo lo que necesitas consultar mientras montas

Los diagramas están en SVG en el repositorio (guia/assets/). En el celular se ven pequeños: toca «Abrir en pantalla completa». Para imprimir el dibujo de las piezas a tamaño real, usa las medidas escritas en él (en mm), no la escala de la pantalla.

Regla número 1: los 8 servos nunca se alimentan con los 5 V del Uno. Retira el jumper SEL del shield (la pieza plástica que conecta los 5 V del Uno a los pines V de los servos) y conecta el UBEC a la bornera (conector de tornillo) de los servos. Las pistas del shield son delgadas: si los servos tiemblan cuando el robot camina, refuerza la conexión llevando un cable 18 AWG del UBEC directamente a la fila de pines V.
Diagrama de cableado: batería, interruptor, UBEC, bornera de los servos, jack DC del Uno y pines D2 a D9
Cableado y alimentación: energía de los servos por el UBEC, lógica por el jack DC del Uno, GND común. Abrir en pantalla completa
Mapa de las patas visto desde arriba con número en el código, pines y sentido de cada servo
Mapa de las patas: número usado en el código, pines y sentido de cada servo. Abrir en pantalla completa
Dibujo de las piezas con medidas: pared lateral, base, muslo y tibia, y medidas del servo MG90S
Piezas con medidas: pared lateral, base, muslo y tibia. Abrir en pantalla completa
Geometría de la pata con muslo de 55 mm, tibia de 60 mm y fórmulas de cinemática inversa
Una pata a escala y las fórmulas que usa el código. Abrir en pantalla completa
Calibración en tres pasos: servos a 90 grados, montaje de la pata y ajuste fino
Calibración: servo a 90°, montaje en ángulo recto y ajuste fino por Serial. Abrir en pantalla completa
Gráfico de tiempo del trote y la marcha lenta que muestra cuándo sube cada pie
Cuándo sube cada pie en el trote y en la marcha lenta. Abrir en pantalla completa
Guía de uso · paso a paso

Montaje en 10 pasos

Reemplaza /dev/ttyACM0 por el puerto de tu Uno (en Windows, algo como COM3). arduino-cli board list te muestra cuál es.

1

Prueba la alimentación sin nada conectado

Carga la LiPo. Conecta batería → interruptor → UBEC y mide la salida con el multímetro. Debe dar entre 5 y 6 V. Conecta cualquier servo solo después.

2

Shield en el Uno, jumper SEL retirado

Conecta el Sensor Shield. Retira el jumper SEL. Con todo apagado y sin batería, pon el multímetro en continuidad (el modo que pita) y toca un pin V de cualquier puerto de servo con una punta y el pin 5V del Uno (o el pin 5V del shield) con la otra: no debe pitar. Si pita, el jumper todavía conecta ambos puntos (hay diferencias entre clones). Conecta el UBEC a la bornera de los servos. El Uno recibe la alimentación lógica de la LiPo por el jack DC (el conector redondo junto al USB), con un enchufe P4 de 5,5 × 2,1 mm: centro positivo, cable rojo en el pin del medio. Comprueba la polaridad con el multímetro antes de conectarlo.

El regulador del Uno necesita unos 7 V en el jack. Ajusta la alarma de la LiPo a 3,5 V por celda (7,0 V en total): suena antes de que el Uno empiece a reiniciarse.

Ilustración de la electrónica sobre la mesa: Uno con shield, servos conectados, UBEC, interruptor y batería
Ilustración generada con IA: electrónica montada sobre la mesa antes de instalarla en el chasis.
3

Servos sueltos a 90°

Conecta los 8 servos a los pines D2 a D9 (marrón en G, rojo en V, naranja en S), sin los brazos (horns, la pieza plástica que encaja en el eje). Con el interruptor de los servos apagado, carga el sketch de montaje por USB (el Uno puede tener un programa antiguo que mueve los pines D2 a D9). Luego enciende el interruptor: los servos irán a 90° uno por uno y quedarán fijos. No gires el eje con la mano mientras estén encendidos.

arduino-cli compile --fqbn arduino:avr:uno firmware/montagem
arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:uno firmware/montagem
4

Monta las patas con los servos quietos

Corta las piezas según el dibujo con medidas. Atornilla los servos de la cadera en las aberturas de las paredes laterales, con el eje hacia afuera, y fija el horn en la parte superior de cada muslo: el muslo debe quedar vertical, apuntando al suelo. La ubicación de los 2 orificios para los tornillos del horn varía según el fabricante: apoya el horn sobre la pieza, centrado en el orificio del eje, y marca los orificios con él (orificio central de 3 mm para el tornillo del eje, orificios de 1,5 mm para los tornillos del horn). Encaja el servo de la rodilla en la abertura del muslo, con el eje hacia afuera (del mismo lado que la cadera) y el cuerpo subiendo por el muslo, orientado hacia el interior del robot. La tibia va en el horn de la rodilla, por fuera del muslo, apuntando hacia el FRENTE del robot en ángulo recto (en las 4 patas). Si apunta hacia atrás, la rodilla se dobla en el sentido incorrecto y el robot no se mantiene de pie; cambiar el sentido en el código no lo corrige. Si el horn no encaja en un ángulo recto exacto, usa el diente más cercano: puedes corregir el resto en el paso 7. Opcional: para reducir el juego, un tornillo M3 con tuerca autofrenante (tuerca con un anillo de nailon que no se afloja) en el lado opuesto al eje, pasando por una segunda placa, sirve como cojinete.

Ilustración de la vista explotada del robot con chasis, Arduino, shield, batería y patas
Ilustración generada con IA: vista explotada (shield, Uno, chasis, batería y UBEC, patas).
Ilustración de una pata con servo en la cadera y servo en la rodilla
Ilustración generada con IA: servo de la cadera en el chasis, servo de la rodilla en el extremo del muslo, cables sujetos a lo largo de la pata.
5

Cierra el cuerpo

Coloca el Uno + shield arriba con separadores M3 de 25 mm (así la placa pasa por encima de los servos de la cadera); fija la batería y el UBEC abajo con velcro. Sujeta los cables con bridas y deja holgura en la rodilla; si no, el cable tira cuando la pata se dobla.

6

Carga el firmware

El firmware incluye la cinemática, los modos de marcha y la calibración. Deja el robot suspendido (sobre un recipiente, con las patas en el aire) la primera vez. Si no hay una calibración guardada, se inicia en modo de montaje, con todo a 90°, y solo se pone de pie cuando se lo indiques.

arduino-cli compile --fqbn arduino:avr:uno firmware/robo4
arduino-cli upload -p /dev/ttyACM0 --fqbn arduino:avr:uno firmware/robo4
arduino-cli monitor -p /dev/ttyACM0 -c baudrate=9600  # robo4 pronto (sem calibracao: modo montagem, 90 graus).
7

Calibra cada articulación

Escribe m para poner todo a 90°. Corrige la articulación torcida con el comando o <perna> <junta> <graus>, escrito de una sola vez y con Enter (arduino-cli monitor no muestra lo que escribes; en Arduino IDE, selecciona «Nueva línea» en el Monitor Serial). El valor reemplaza el ajuste anterior de esa articulación; no se suma: pata 0 a 3 (FE, FD, TE, TD), articulación 0 = cadera, 1 = rodilla, grados de −30 a 30. Guarda con g en la EEPROM (la memoria del Uno que no se borra al apagarlo).

m          # todo a 90°
o 0 1 -6   # rodilla delantera izquierda: −6° (si empeora, usa 6)
p          # muestra los ajustes
g          # guarda en la EEPROM (se conserva al apagar)
8

Ponte de pie

Escribe x. Las patas irán poco a poco a la posición de pie (cada servo se mueve como máximo 5° cada 20 ms; esto también reduce la carga de la fuente). Las cuatro deben doblarse igual. Si alguna se dobla hacia el lado incorrecto, cambia su sentido en SENTIDO[][] en el código, compila y vuelve a cargarlo.

// firmware/robo4/robo4.ino
const int8_t SENTIDO[4][2] = {{1, -1}, {-1, 1}, {1, -1}, {-1, 1}};
9

Primeros pasos: marcha lenta

Con el robot suspendido, escribe c (marcha lenta, en inglés creep) y comprueba el orden: trasera izquierda, delantera izquierda, trasera derecha, delantera derecha. El cuerpo se balancea hacia adelante y hacia atrás: es intencional, para que el peso quede sobre las tres patas apoyadas en el suelo. Después, ponlo en el suelo.

BALANCO solo mueve el cuerpo hacia adelante y hacia atrás. Si se cae hacia adelante o hacia atrás, aumenta BALANCO (12 → 18) o reduce PASSO. Si se cae hacia un lado, baja la altura con - o separa las patas (base más ancha que 80 mm).

10

Trote y comandos

Cuando la marcha lenta sea estable, cambia al trote.

w adelante   s atrás   a gira izq.   d gira der.
c marcha lenta   x parar   z acostarse   + / - altura
Referencia visual

Así queda una vez montado

Imágenes generadas con IA para mostrar el objetivo. Todavía no son fotos de un prototipo real.

Ilustración del robot cuadrúpedo montado sobre la mesa
Robot montado: Uno + shield arriba, batería abajo, dos servos por pata.
Ilustración de cerca de una pata del robot
De cerca: la rodilla es un segundo servo en el extremo del muslo.
Términos

Palabras que aparecen en la guía

Si una palabra te impide seguir leyendo, aquí encontrarás su significado.

TérminoQué es
ServoMotor pequeño que gira hasta el ángulo indicado (0 a 180°) y se queda en esa posición.
HornBrazo plástico que encaja en el eje del servo; la pata se atornilla a él.
ShieldPlaca que se conecta encima del Arduino y añade conectores.
Jumper SELPieza plástica del shield que conecta los 5 V del Arduino a los servos. Aquí se retira.
BorneraConector que sujeta el cable al apretarlo con un tornillo.
LiPo 2SBatería de polímero de litio con 2 celdas en serie: 7,4 V nominales.
XT60Conector amarillo común en baterías LiPo; soporta una corriente alta.
UBECRegulador que reduce el voltaje de la batería a 5–6 V con corriente suficiente para los servos.
AWGMedida del grosor del cable: cuanto menor es el número, más grueso es el cable (18 AWG es más grueso que 20).
CojineteSoporte en el lado opuesto al eje que permite que la pieza gire sin juego.
EEPROMMemoria del Arduino que no se borra al apagarlo; guarda la calibración.
SketchNombre del programa de Arduino (la carpeta con el archivo .ino).
Monitor SerialVentana de texto donde te comunicas con el Arduino por el cable USB.
Step-downRegulador que reduce el voltaje (el UBEC es un step-down).
I2CConexión de 2 cables (A4 y A5 en el Uno) que usan sensores como la IMU.
IMUSensor que mide la inclinación y el giro (ej.: MPU-6050).
Jack DC / P4Conector redondo de alimentación del Uno y el enchufe que se conecta a él.
FQBNNombre completo de la placa para arduino-cli: arduino:avr:uno.
Cinemática inversaCálculo que transforma «dónde debe estar el pie» en los ángulos de la cadera y la rodilla.
Marcha lenta (creep) y troteFormas de caminar: un pie en el aire a la vez, o dos pies en diagonal.
Problemas comunes

Si algo sale mal

Casi todos los problemas de un cuadrúpedo con servos se deben a la alimentación o a la calibración.

SíntomaCausa probableQué hacer
El Arduino se reinicia cuando se mueven los servosLos servos consumen energía del UnoRetira el jumper SEL, alimenta los servos solo con el UBEC y conecta GND común
El servo tiembla cuando está quietoFuente débil o cable delgadoUBEC de 5 A o más, cable 18 AWG en la línea de alimentación, batería cargada
El servo se calientaEstá forzando el límiteAjusta con el comando o; comprueba que la pata no choque con el chasis
La pata se dobla hacia el lado incorrectoSentido invertido o tibia montada hacia atrásComprueba que la tibia apunte hacia adelante a 90° (paso 4); si es así, cambia el sentido en SENTIDO[][]
Camina torcidoLos lados están calibrados de forma distintaUsa el comando m y luego iguala las patas con el comando o
Se tropiezaEl pie sube pocoAumenta ELEVA (constantes al principio de firmware/robo4/robo4.ino)
Se cae hacia un lado durante el troteEl paso es demasiado largo o rápidoReduce PASSO o aumenta CICLO_TROTE
No carga el códigoBluetooth conectado a D0/D1Apaga el módulo durante la carga
Batería LiPo: cárgala solo con un cargador balanceado y bajo supervisión. No la descargues por debajo de 6,6 V en total. Si la batería está hinchada, deséchala; nunca la uses en el robot.
Próximos pasos

Después de que camine

Todo cabe en los pines que quedaron libres en el Uno.

Ahora
Plan, diagramas y códigoLista de piezas, cableado, calibración, cinemática y dos modos de marcha. El código compila; todavía no se ha probado en un robot montado.
Extra 1
Control desde el celularMódulo Bluetooth HC-05 en D0/D1: las mismas letras, enviadas desde una app de terminal serial.
Extra 2
Evitar obstáculosSensor ultrasónico HC-SR04 en D10/D11: se detiene o gira cuando algo se acerca.
Extra 3
EquilibrioIMU MPU-6050 en A4/A5: lee la inclinación y corrige la altura de cada pata.