Raspberry Pi adelantó en su blog uno de los proyectos de Raspberry Pi Book of Making 2027, el libro que recopila los montajes favoritos de su revista durante el último año. El libro se puede comprar a un precio de lanzamiento de 9,99 libras. El proyecto elegido para la fecha es un esqueleto de Halloween animado con una Raspberry Pi Pico de 4 dólares.

El equipo parte de una broma. Se acerca octubre y, según las películas de terror y comedia, el velo entre los vivos y los muertos se adelgaza. Como el mundo real rara vez es tan entretenido como lo pinta Hollywood, proponen no esperar a que los muertos se levanten y darle una mano a Halloween con un esqueleto que se mueve solo. Se puede seguir el paso a paso o adaptar las técnicas a cualquier otro adorno, tenebroso o no.

La base es un esqueleto de 90 cm que brilla en la oscuridad, comprado en AliExpress. Lo importante es que sea un esqueleto "2D", donde todas las articulaciones se mueven en el mismo plano. Existen modelos 3D más fieles a la anatomía, pero son más difíciles de animar. Desde el aviso no siempre se sabe si es 2D o 3D. Si mide 90 cm, brilla en la oscuridad y cuesta unas 3 libras, lo más probable es que sea el correcto.

El esqueleto llegó en diez piezas. Dos por cada extremidad, una para el cuerpo y una para la cabeza. El montaje controla las articulaciones de cadera y hombro, lo que le permite unos cuantos movimientos. Rodillas y codos quedan sueltos para que se sacudan.

Antes de eso hacen falta algunas piezas más. El esqueleto es muy frágil, así que necesita un respaldo firme que lo mantenga en su lugar. El equipo usó tablero OSB (Oriented Strand Board) porque tenía a mano, aunque el terciado también sirve. Tiene que medir al menos 45 × 21 cm, y si es más grande no hay problema, porque protege mejor al esqueleto. Lo pintaron negro para que se confundiera con la noche.

El movimiento lo dan servos. Se parecen a un motor en que reciben una señal para girar, pero a diferencia de un motor giran una cantidad precisa y suelen trabajar en un rango de unos 180 grados. Se le manda al servo el ángulo deseado y el servo gira hasta ese ángulo.

Hay formas, discutiblemente mejores, de unir cuatro cables y aislar la unión, pero todas piden más piezas y más complejidad que una soldadura y cinta autofundente

Los servos vienen en distintos tamaños y fuerzas. El equipo eligió servos de 9 g, que alcanzan justo para esta tarea. Uno más grande puede consumir demasiada corriente, así que recomiendan quedarse con los chicos, salvo que se agregue una fuente de poder externa.

Para que el esqueleto reaccione a la gente, sumaron un sensor de distancia que detecta cuando alguien se acerca.

Falta el controlador que hace que todo funcione. Un computador Raspberry Pi serviría, pero por simplicidad usaron una Raspberry Pi Pico. La suya es una Raspberry Pi Pico W, aunque no usan la conexión inalámbrica, así que cualquier modelo funciona.

Siempre posiciona los servos antes de conectar los brazos del servo

También hacen falta algunos tornillos de 3,5 mm de ancho, más cortos que el grosor del tablero, algo de herrería de montaje y una amarra plástica.

Los huesos

El esqueleto traía articulaciones móviles con un conector de pasador y cavidad. La primera idea fue usarlas como bisagras y conectar un actuador a cada extremidad para tirarla hasta la posición deseada, como una marioneta. Pero el plástico delgado tendía a torcerse en vez de girar bien en la articulación, así que hubo que cambiar de plan.

El primer paso es separar las extremidades del cuerpo, que deberían salir a presión. El esqueleto no se vuelve a unir directamente. Los servos van montados en las extremidades y quedan fijos cerca de la articulación, sobre el cuerpo principal.

La Raspberry Pi Pico debe quedar montada de forma que se pueda acceder al puerto USB

Ahora hay que fijar un servo a cada extremidad. Los servos tienen un eje con estrías a presión donde encajan los "brazos" (horns), y normalmente vienen varios con formas distintas. El equipo usó el brazo simple y lo atornilló cerca de la articulación original.

Los servos traen tornillos que pasan por los agujeros del brazo. El problema es que atraviesan el plástico delgado del esqueleto y pueden rasguñar a quien se acerque demasiado. Si preocupa, se puede poner una gota de silicona caliente o un trozo de plástico o madera en la punta de cada tornillo.

Alimentación, tierra y datos, tres conexiones que permiten agregar tantos LED como hagan falta

Con los brazos fijos en cada extremidad, queda resolver el otro lado de los servos. Los servos tienen tornillos de montaje, pero suelen estar más arriba en el cuerpo del servo y están pensados para un calado, así que hace falta algún soporte que los sostenga.

Con una impresora 3D, lo más fácil es imprimir uno. El equipo usó este modelo, aunque según el servo puede hacer falta otro. Lo importante es que mantenga el servo en posición vertical.

Los servos deberían venir con su herrería de montaje

Sin impresora 3D, se puede abrir un agujero en la madera del respaldo, perforando en cadena o con una broca guía y una sierra caladora, y montar el servo ahí, quizás con bastante silicona caliente.

Con los soportes listos, ya están todas las piezas principales del hardware de movimiento.

¿Cómo se le ponen ojos rojos?

El cine ya dejó establecido que las cosas que asustan tienen ojos rojos. El autor admite no entender bien por qué, ya que lo único con ojos rojos que ha visto en su vida fue un conejo albino, y esa bola de pelos era lo menos aterrador que existe. Pero el cliché manda, así que el esqueleto lleva ojos rojos.

Hay dos opciones. LED rojos, o LED RGB usando solo uno de sus tres colores. La segunda parece un desperdicio, pero simplifica un poco el montaje y deja opciones para el futuro, así que eligieron esa. Son LED WS2811 de 12 mm, que vienen en cadenas (normalmente de 50) a 5 V o 12 V. Se necesita la versión de 5 V y solo dos LED, que se pueden cortar de la cadena.

No le cuentes a tu profesor de carpintería, pero mover un poco el taladro al hacer los agujeros de los ojos facilita montar los LED

Oscuro como la noche

Todo el montaje físico se apoya en el tablero de respaldo. Debe ser una plancha rectangular de madera aglomerada lo bastante firme para sostener todo. El esqueleto trae un agujero de montaje arriba, y los agujeros de las articulaciones de hombro y cadera también sirven para atornillarlo firme.

Los agujeros originales de las articulaciones sirven como puntos de montaje

Además hacen falta agujeros de 12 mm en los ojos para los LED y agujeros de 10 mm cerca de cada articulación para ordenar los cables de los servos.

En este punto conviene pintar el tablero negro para que el esqueleto resalte.

Poner los servos en cero

Ya se pueden fijar los servos, pero antes hay que preparar un poco la electrónica. Los servos no dan la vuelta completa y suelen girar unos 180 grados. Por eso hay que conocer su posición antes de montar brazos y piernas. De lo contrario, una vez montados podrían no alcanzar a girar hasta la posición correcta. Antes de seguir con el armado físico hay que cablearlos y llevarlos a una posición conocida.

El cableado podría estar más ordenado, pero para asegurarlo más habría que encajonar la parte trasera del tablero

Son cuatro servos y todos van a los mismos pines de alimentación, así que el cableado pide algo de creatividad. El equipo lo conectó como muestra la imagen de arriba, con una unión soldada de cuatro vías. Puede que haga falta soldar tramos extra de cable a los servos como extensión. Hay que pasar los cables de los servos por los agujeros del tablero antes de soldarlos, para poder montar los servos bien.

Con los servos soldados, se puede averiguar en qué posición están. Para eso hay que programar la Raspberry Pi Pico.

Configurar el código

Quien no haya usado MicroPython puede revisar la guía de inicio. En corto, hay que instalar Thonny y luego instalar el firmware de MicroPython en la Raspberry Pi Pico. Desde ahí, el IDE Thonny sirve para escribir el código y mandarlo a la placa.

También se necesita la biblioteca de servos. Con el administrador de archivos de Thonny, se crea una carpeta llamada servo en la Raspberry Pi Pico y se copian ahí los archivos __init__.py y __main__.py.

Se pega algo fácil de sacar en los ejes de los servos (el equipo usó banderitas de cinta aisladora) y se ejecuta este código de prueba.

Código
import time

from servo import Servo

left_hip = Servo(pin_id=0)

left_shoulder = Servo(pin_id=1)

right_hip = Servo(pin_id=2)

right_shoulder = Servo(pin_id=3)

servos = [left_hip,left_shoulder, right_hip, right_shoulder]

down_angle = [180,180, 0,0]

up_angle = [90,90,90,90]

while True:

    print("down")

    for i, servo in enumerate(servos):

        servo.write(down_angle[i])

    time.sleep(2)

    print("up")

    for i, servo in enumerate(servos):

        servo.write(up_angle[i])

    time.sleep(2)

El programa alterna entre dos estados, abajo y arriba. Hay que ajustar las banderitas para que "abajo" apunte hacia abajo y "arriba" quede a 90 grados. Eso indica el ángulo en que se montan las extremidades. Una vez que las banderitas apuntan en esa dirección, se montan brazos y piernas apuntando hacia el mismo lado.

Antes de montar las extremidades, faltan las dos últimas piezas de la electrónica, el sensor de distancia y los LED.

¿Qué sensor detecta a las visitas?

Hay varias opciones para detectar personas. Los sensores infrarrojos pasivos (PIR) son una elección popular para activar montajes de este tipo, y uno de ellos podría funcionar acá. Pero se disparan con mucha facilidad, y el equipo prefiere que el esqueleto se active cuando alguien se acerca de verdad.

El extracto publicado en el blog termina en este punto. El resto del montaje, con el sensor de distancia, el cableado de los LED y el programa final de animación, está en el libro.