Ruta de construcciónIntermedioUn fin de semana

Construye un brazo robótico de 4 DOF: cinemática y PCA9685

Un brazo robótico de sobremesa que alcanza las posiciones comandadas: controlado por PCA9685 y cinemática inversa comprendida en el simulador antes de conectar nada.

Esquema técnico de Construye un brazo robótico de 4 DOF: cinemática y PCA9685REACHABLE WORKSPACE

Un brazo robótico es el primer proyecto en el que un robot deja de moverse por ahí y empieza a hac algo en el mundo. Un seguidor de línea sigue; un esquivador de obstáculos esquiva; un brazo alcanza, posiciona y agarra. Ese cambio —de conducir a manipular— trae la única idea sobre la que se construye todo manipulador: la cinemática, la geometría que conecta los ángulos que puede comandar con el punto del espacio que realmente quiere.

Este itinerario de construcción trata el brazo exactamente como eso: una lección de cinemática que puede sostener en la mano. Empieza entendiendo cómo un brazo de dos eslabones convierte ángulos articulares en posición de la herramienta y de vuelta, reúne las piezas que necesita un brazo con servos y aprende qué hace cada una, y luego —antes de gastar nada o destrozar un engranaje— explora el alcance, las dos soluciones de codo y las posturas inalcanzables en el simulador del navegador. Solo entonces cablea el brazo real, calibra sus servos a mano y ejecuta la cinemática inversa en hardware.

Recorra el árbol tecnológico de abajo arriba. Cada nodo se abre una vez hechos sus prerrequisitos, y su progreso se guarda en este dispositivo, así que puede construir el brazo en un fin de semana sin perder el sitio.

Lista de materiales

Componente Cant. Coste aprox. Notas
Arduino Uno 1 $5–8 Cualquier placa sirve: aquí solo habla I²C
Driver de 16 canales PCA9685 1 $3 No es estrictamente necesario para cuatro servos, pero es la herramienta adecuada
Servo SG90 4 $8 Compre un MG90S para el hombro: engranajes metálicos, y es la articulación que falla
Kit de brazo de 4 GDL 1 $12–25 El acrílico va bien para aprender; el aluminio flexa mucho menos
Fuente de 5–6 V, ≥3 A 1 $8 Cuatro servos en bloqueo a la vez son ~2.6 A
Condensador de 1000 µF 1 $1 En paralelo a V+, cerca del terminal
Horquillas de servo de repuesto 1 juego $2 Va a colocar una mal. Le pasa a todo el mundo

Total: aproximadamente $40–60.

Dos compras merece la pena pensar en vez de darlas por supuestas. Un MG90S con engranajes metálicos en el hombro cuesta un dólar más y es la articulación que soporta el peso de todas las demás: los engranajes de nailon ahí se rompen bajo carga sostenida, no bajo un golpe. Y una fuente dimensionada para el bloqueo, porque el fallo distintivo de un brazo es que cuando colisiona con su propio bastidor o agarra algo sólido, todos los servos se bloquean a la vez.

Mida su brazo antes de escribir una línea de código

La cinemática inversa es aritmética sobre longitudes de eslabón. Estos cuatro números son toda la entrada, y obtenerlos de la ficha de producto en vez de con una regla es el motivo más común de que un brazo alcance con confianza al sitio equivocado.

Símbolo Medir desde Hasta Típico
L1 Eje de la articulación del hombro Eje de la articulación del codo 90–105 mm
L2 Eje de la articulación del codo El punto real de prensión de la pinza 80–95 mm

Esa última fila hace más trabajo de lo que parece. «El punto real de prensión de la pinza» se mueve cuando se cierran las mordazas, y dimensionar la propia pinza es un problema aparte de posicionarla, con sus propios límites, su propia aritmética y sus propios modos de fallo. Si su brazo alcanza la pieza y luego la suelta o la aplasta, la respuesta no está en esta página: empiece por el simulador de pinzas. | h | Superficie de la mesa | Eje de la articulación del hombro | 50–70 mm | | d | Eje de rotación de la base | Eje del hombro, en horizontal | 0–15 mm |

Mida entre ejes de articulación, no entre bordes de soporte. El eje es el centro del estriado de salida del servo, a menudo 5–10 mm por dentro del soporte visible. En un eslabón de 95 mm un error de 10 mm es más del 10 %, y produce un brazo sistemáticamente corto de una forma que ninguna ganancia corrige.

Esas dos longitudes le dan el espacio de trabajo de inmediato:

maximum reach = L1 + L2          e.g. 100 + 90 = 190 mm
minimum reach = |L1 - L2|        e.g. |100 - 90| = 10 mm

El espacio de trabajo es una corona, no un disco. Hay un hueco en el centro al que el brazo no puede llegar físicamente, y que un objetivo cerca de la base vuelva como «inalcanzable» es un comportamiento correcto y no un fallo.

Construir por hitos

El orden de montaje de aquí contiene un paso casi imposible de deshacer, y es el paso 2.

# Hito La prueba Un aprobado se ve así
1 El driver responde Escanee el bus I²C Aparece 0x40; V+ tiene su propia alimentación
2 Servos Referenciados antes del montaje Mande cada servo a 90° antes de presionar una horquilla Cada horquilla queda montada en la pose de cero que usted quiere
3 Topes por servo Avance hacia fuera desde el centro hasta que el servo zumbe Tiene cuentas mínima y máxima por servo, no las de la biblioteca
4 Mapa articular registrado Mande cada articulación a lo largo de su rango Offset, signo y límites mecánicos anotados para las cuatro
5 Comprobación de colisiones Recorra despacio cada articulación por todo su rango Nada golpea el bastidor; los límites reflejan lo que observó
6 Cinemática directa Fije ángulos conocidos, calcule la posición de la herramienta y mídala Lo calculado y lo medido coinciden dentro de unos pocos milímetros
7 Ida y vuelta Pase la posición calculada de vuelta por la IK Los ángulos que salen coinciden con los que entraron
8 Los cuatro cuadrantes Pida objetivos delante, detrás, izquierda, derecha Los cuatro funcionan: si dos se reflejan, usó atan y no atan2
9 Alcanzabilidad Pida un objetivo muy lejos de L1 + L2 Un «inalcanzable» limpio, no un NaN ni un estiramiento
10 Movimiento suave Mande un movimiento grande Interpolado en pasos, todas las articulaciones a la vez, sin tirón
11 Repetibilidad Vuelva a la misma pose diez veces desde direcciones distintas Dispersión de llegada medida: ese número es su backlash

El hito 2 no se recupera después. Una horquilla de servo tiene estriado —unos 20 dientes— así que solo encaja en posiciones discretas separadas unos 18°. Monte primero y calibre después, y puede encontrar una articulación cuyo rango usable está desplazado 40° sin forma mecánica de arreglarlo. Alimente cada servo, mande 90°, y entonces presione la horquilla.

Muévalo con suavidad, siempre

Un servo al que se le manda un ángulo nuevo va allí a plena velocidad. En un brazo eso significa un movimiento violento, un pico de corriente a través de los cuatro servos y un golpe mecánico por los engranajes de nailon, multiplicado por la palanca del propio brazo.

// Interpolate every joint together, so the tool takes a sensible path and
// no single servo carries the whole transition.
void moveTo(float base, float shoulder, float elbow, int steps, int stepMs) {
  static float cur[3] = {0, 0, 0};
  const float target[3] = {base, shoulder, elbow};

  for (int s = 1; s <= steps; s++) {
    const float t = (float)s / steps;
    for (int j = 0; j < 3; j++) {
      const float a = cur[j] + (target[j] - cur[j]) * t;
      pwm.setPWM(JOINT[j].channel, 0, countsFor(JOINT[j], a));
    }
    delay(stepMs);
  }
  memcpy(cur, target, sizeof(cur));
}

Interpolar todas las articulaciones a la vez importa tanto como el suavizado en sí. Mover las articulaciones una a una envía la herramienta por un arco extraño a través del espacio de trabajo: más lento, y con mucha más probabilidad de chocar con algo por el camino.

Cómo se ve un buen resultado

Medición Kit de acrílico, SG90 Aluminio, MG90S
Repetibilidad, mismo sentido de aproximación ±3–5 mm ±1–2 mm
Repetibilidad, sentidos de aproximación mezclados ±8–15 mm ±3–5 mm
Carga útil a plena extensión 20–30 g 40–60 g
Flecha a plena extensión, sin carga 3–8 mm 1–3 mm

La diferencia entre las dos filas de repetibilidad es el backlash, y es la mayor fuente de error de un brazo de hobby. Cuatro grados de juego en el hombro sobre un alcance de 190 mm son más de 13 mm en la pinza. La respuesta práctica no es mejor matemática: es acercarse siempre a un objetivo desde la misma dirección, lo que elimina por completo el cambio de signo y convierte un error de ±13 mm en un desvío repetible que puede calibrar fuera.

Resolución de problemas

Síntoma Causa probable Arreglo
El brazo alcanza a un punto completamente equivocado Horquilla montada en un ángulo arbitrario Referencie todos los servos a 90° antes de montar las horquillas
El rango de una articulación está desplazado ~18° Horquilla con un diente de estriado de más Quítela y vuelva a montarla: el software no puede arreglar esto
Alcanza bien por delante, se refleja por detrás atan en vez de atan2 atan2 resuelve los cuatro cuadrantes
La IK devuelve NaN y el brazo se estira Argumento de acos fuera de −1..1 Compruebe la alcanzabilidad antes de la trigonometría
Los objetivos cerca de la base fallan Dentro del hueco de alcance mínimo Comportamiento correcto: el espacio de trabajo es una corona
La placa se reinicia cuando se mueve el brazo Corriente de servo a través del Arduino Alimentación V+ aparte, masa común, condensador de 1000 µF
El brazo se hunde a plena extensión Hombro más allá de su par cómodo MG90S en el hombro; compense con una goma elástica
Zumba mientras mantiene una pose El servo luchando contra una carga en su límite Reduzca la carga, o use detach cuando no haga falta mantener
Picos de velocidad articular cerca de la extensión total Atravesar una singularidad Mantenga las trayectorias dentro de un margen del borde
Aterriza distinto según de dónde venga Backlash Acérquese siempre desde la misma dirección
Todos los ángulos quedan sistemáticamente cortos El oscilador del PCA9685 no es exactamente de 25 MHz Mida la frecuencia real de salida y llame a setOscillatorFrequency

Hacia dónde llevarlo después

Añada un movimiento en línea recta. Interpolar en espacio articular, como hace el código de arriba, hace que la herramienta siga una curva. Interpolar en espacio cartesiano —calculando la IK en cada paso a lo largo de una recta— hace que viaje recto, que es lo que necesita cualquier pick-and-place real. Es un cambio pequeño, y es donde las singularidades dejan de ser teóricas: una trayectoria recta atravesando casi la extensión total exige velocidades articulares enormes.

Añada una cámara y cierre el lazo. Todo lo de aquí es a lazo abierto: el brazo va donde se le dice y nunca comprueba. Una cámara que lea un marcador ArUco en el objeto deja que el brazo corrija el error que dejan el backlash y la flecha, que es como un brazo barato se vuelve preciso.

Suba el hardware una vez que choque con el techo. Los eslabones de aluminio eliminan casi toda la flexión, los servos MG90S eliminan casi todo el backlash, y un brazo de 6 GDL añade una muñeca para que el ángulo de aproximación de la herramienta sea cosa suya. Nada de eso cambia la matemática: el solucionador de dos eslabones que escribió aquí es el mismo que usa un brazo mejor, que es exactamente por lo que mereció la pena construir primero el bastidor barato.

Hoja de ruta del proyecto

La ruta de construcción

Sigue el árbol tecnológico desde las piezas hasta un robot que funciona. Cada nodo se desbloquea cuando completas sus requisitos previos, y tu progreso se guarda en este dispositivo.

0 / 13 completados

100%
Tutorial

Cómo alcanza el brazo una posición

22 min

Abrir tutorial
Componente

Selecciona el bastidor del brazo

Component

Ver componente
Componente

Añade el controlador de servos

Component

Ver componente
Ruta de aprendizaje

Cinemática de brazos robóticos

Learning path

Abrir ruta
Montaje

Cablea el brazo robótico

40 min

Montaje

Calibra el cero mecánico y límites

30 min

Montaje

Ejecuta cinemática inversa en hardware

45 min

Objetivo

Brazo robótico de 4 DOF completado

You built it

Componentes

Tutoriales de esta ruta

Practica antes de cablear

Ajústalo en el simulador en vivo

La ruta de construcción pasa por un laboratorio en el navegador. Consigue aquí el comportamiento correcto y luego traslada tus ajustes al robot real.

Preguntas frecuentes

¿Cómo se construye un brazo robótico con Arduino?

Monta cuatro servomotores en una estructura de 4 grados de libertad (base, hombro, codo y pinza) y contrólalos mediante un módulo PCA9685 por bus I²C para no saturar los temporizadores ni pines PWM de la placa Arduino. Calibra el rango de pulsos de cada actuador y conecta las coordenadas objetivo a un solver analítico de cinemática inversa de dos eslabones que determine los ángulos de hombro y codo. Este proyecto estructura todo el proceso, permitiendo validar la cinemática en un simulador antes de conectar el hardware.

¿Cuántos servos requiere un brazo robótico de 4 DOF?

Cuatro servomotores: uno por cada grado de libertad (rotación de base, articulación de hombro, articulación de codo y mecanismo de apertura de la pinza). Cada articulación exige un canal PWM dedicado e independiente, razón por la cual se utiliza un controlador auxiliar PCA9685 en lugar de depender exclusivamente de los pines de hardware limitados del microcontrolador.

¿Es indispensable un controlador PCA9685 para este proyecto?

Es la solución técnica recomendada, aunque no estrictamente obligatoria. Cuatro servos pueden gobernarse directamente desde un Arduino si se alimentan de forma externa, pero el PCA9685 descarga a la CPU de la generación de pulsos, reduce el cableado de control a dos líneas I²C (SDA/SCL) y canaliza la corriente pesada de los motores a través de su bornera V+, previniendo caídas de tensión que reinicien el microcontrolador.

¿Tengo que comprar los componentes antes de empezar?

No. Tanto la formulación cinemática como la resolución geométrica de posiciones se ejecutan en el simulador interactivo del navegador web. Puedes familiarizarte con el espacio de trabajo, las configuraciones de codo arriba/abajo y las singularidades mecánicas antes de adquirir ningún componente físico. Solo las fases de montaje mecánico, calibración y conexión requieren el hardware real.

¿Cómo se aplica la cinemática inversa en un brazo articulado?

La cinemática directa determina las coordenadas cartesianas del extremo final a partir de los ángulos articulares; la cinemática inversa realiza la operación opuesta: dadas unas coordenadas cartesianas deseadas en el espacio, calcula analíticamente los ángulos requeridos en las articulaciones. En este brazo, hombro y codo forman un sistema plano de dos eslabones, la base orienta el plano azimutal y la pinza ejecuta la sujeción. El simulador permite visualizar cómo opera el solver y delimita el espacio alcanzable.