
Chisme 133: el brazo del Lince, servo con joystick y Echidna
Víctor Vílchez, el Lince de la Noche, llevaba una hora peleándose con un cable. En la mesa de la cueva de Sierra Bermeja había una caja de tornillos, una cuerda, un clip doblado y una nota: «Brazo mecánico. Urgente». Vamos a hacer un servo con joystick.
—¿Para qué es el brazo? —preguntó la Gata Montesa.
—Para coger cosas desde lejos. Sin levantarme.
—Pues vas a necesitar un brazo que haga caso. ¿Qué piensas usar para mandarlo?
El Lince miró la Echidna Black 2. Tenía un joystick en la placa. Había estado ahí todo el tiempo.
—Ah.
—Sí, ah. Un joystick y un servo. Y una pequeña cuenta.
Introducción: servo con joystick
En este chisme 133 vas a construir un brazo que sigue al joystick de la Echidna Black 2. Mueves el joystick a un lado y un servo gira hacia ese lado.
Es la continuación de la maceta del Chisme 132: otra entrada analógica, pero ahora no sirve para medir sino para controlar algo. El servo ya te sonará de la barrera del Chisme 130. Antes de montarlo, practica en el simulador del brazo, que también tiene un modo para verlo todo hecho.
Qué necesitamos
- La Echidna Black 2 y el programa EchidnaML (como en el Chisme 116).
- Del kit de sensores de Acebott: un servo estándar de 180°.
- Cables Dupont, si el servo no se conecta directamente.
- Opcional: un brazo de cartón, un palo de polo o un clip pegado al eje del servo.
Conexión
Conecta con la placa sin el USB enchufado y repasa dos veces el cable rojo y el marrón.
| Servo | Pin de la Echidna |
|---|---|
| Naranja (señal) | I/O de D8 |
| Rojo | + de D8 |
| Marrón | G de D8 |
El selector de alimentación (jumper) va en Vin, no en 5V. Un servo consume mucho más que un sensor. Con 5V la placa puede reiniciarse o el servo temblar. El joystick ya está en la placa y no necesita cables.
Cómo funciona el servo
Un servo es un pequeño motor con un circuito que sabe en qué posición está su eje. Tú le dices un ángulo y él gira hasta ahí y se queda quieto. El de 180° llega desde 0° hasta 180°.
Por eso no es como un motor normal. Un motor gira sin parar; un servo va a una posición.
El problema de los dos rangos
Hay un problema. El joystick da números de 0 a 1023, igual que el sensor de la maceta. El servo entiende ángulos de 0 a 180. Si le mandamos el número del joystick tal cual, un 1023 no tiene sentido para el servo.
Hace falta un traductor. Y el traductor es una proporción: el 0 del joystick es el 0° del servo, y el 1023 es el 180°. Cualquier valor intermedio se calcula con esta fórmula:
ángulo = x × 180 ÷ 1023
Con el joystick en el centro (512) sale 90,1°: casi el centro del servo, no exactamente. Convertir un rango de números en otro se llama conversión de escalas y se usa en todas partes: sensores, pantallas, sonido, juegos.
Primero, mira el rango
Antes de escribir el programa, comprueba que tu joystick da lo que decimos. Haz este programa de prueba:
- Crea una variable x y marca la casilla para verla en pantalla.
- Por siempre: dar a x el valor «leer joystick x» y esperar 0,2 segundos.
Mueve el joystick a la izquierda, al centro y a la derecha y anota los tres números. Deben ir de 0 a 1023.
El programa

- Crea dos variables: x y ángulo.
- Al empezar: servo D8 al ángulo 90.
- Por siempre:
- Dar a x el valor «leer joystick x».
- Dar a ángulo el valor x × 180 ÷ 1023.
- Servo D8 al ángulo ángulo.
- Esperar 0,05 segundos.
El bloque de la operación se hace con un «dividir» que contiene un «multiplicar»: dentro, x y 180; fuera, 1023.
El «esperar» evita mandar órdenes al servo demasiado seguidas. Sin él, el servo puede vibrar o no tener tiempo de llegar.
Si va al revés
Si tu brazo se mueve al lado contrario, no cambies los cables. Cambia la fórmula por 180 − (x × 180 ÷ 1023). Así, el joystick a la derecha manda el brazo a la izquierda. Cambiar un número del programa cambia el comportamiento. Eso es depurar.
Qué estamos midiendo realmente
El joystick es, por dentro, un par de potenciómetros: dos resistencias que cambian al moverlas. La placa mide su valor igual que midió la corriente en la maceta, y lo convierte en un número de 0 a 1023.
Fíjate en que hay 1024 posiciones del joystick y solo 181 ángulos posibles en el servo. Varias posiciones del joystick dan el mismo ángulo. Se pierde resolución. Es un efecto normal al pasar de un rango grande a uno pequeño.
Y en el centro, sin tocarlo, el número puede bailar un poco. Es ruido de la medida: el joystick nunca descansa exactamente en 512.
Para el aula
- Calcula: ¿qué ángulo corresponde a x = 256? ¿Y a x = 800? Comprueba con el programa.
- Predice: ¿qué pasa si cambias 180 por 90 en la fórmula?
- Mide: anota qué número da el joystick en reposo durante diez lecturas. ¿Es siempre el mismo?
- Compara: ¿en qué se parece este chisme al de la maceta (Chisme 132)? ¿En qué se diferencia?
- Explica: si el joystick tiene 1024 posiciones y el servo 181 ángulos, ¿qué se pierde al convertir?
Retos
- Reto 1: haz que el brazo siga al joystick.
- Reto 2: usa el eje y en vez del x.
- Reto 3: limita el recorrido a una zona (por ejemplo, de 30° a 150°).
- Reto 4: añade una zona muerta: si el joystick está cerca del centro (por ejemplo, entre 450 y 570), el servo no se mueve.
- Reto 5: guarda una posición del brazo con un pulsador de la placa y vuelve a ella con otro.
- Reto 6: invierte el sentido con la fórmula 180 − (x × 180 ÷ 1023).
Qué hemos aprendido
Has conectado un servo a la Echidna Black 2, has leído el joystick y has hecho una conversión de escalas de 0–1023 a 0–180. Y has visto que pasar de un rango grande a uno pequeño pierde resolución.
El Lince ya tiene su brazo. Ahora solo le falta decidir qué coger primero.



