Техновости
Новости

Анимированный скелет на Хэллоуин на базе Raspberry Pi Pico за $4

Соберите жуткую анимированную фигуру на Хэллоуин: 90-сантиметровый светящийся скелет, Raspberry Pi Pico за $4, четыре 9g сервопривода и датчик расстояния. Полная инструкция из Raspberry Pi Book of Making 2027.

Editor 7 мин 0 просм.
Анимированный скелет на Хэллоуин на базе Raspberry Pi Pico за $4

Первоисточник: www.raspberrypi.com

Что понадобится: скелет, Pico и сервоприводы

Проект из Raspberry Pi Book of Making 2027 оживляет дешёвую хэллоуинскую фигуру: 90-сантиметровый светящийся в темноте скелет с AliExpress, Raspberry Pi Pico за $4, четыре маленьких сервопривода и датчик расстояния. Сервоприводы управляют шарнирами бёдер и плеч, а колени и локти остаются свободными и болтаются сами по себе. Скелет реагирует на приближение людей — когда кто-то подходит, фигура начинает двигаться.

  • Скелет 90 см, светящийся в темноте, 2D (около £3 на AliExpress)
  • Raspberry Pi Pico (подойдёт любая модель; в оригинале — Pico W, но Wi-Fi не используется)
  • Четыре сервопривода 9g
  • Лист OSB или фанеры минимум 45 × 21 см
  • Датчик расстояния
  • Два светодиода WS2811 12 мм, 5 В (можно отрезать от цепочки на 50 штук)
  • Винты 3,5 мм короче толщины основания, крепёж, стяжка
  • Провода, припой и самослипающаяся лента для соединения четырёх проводов

Выбор скелета: почему 2D, а не 3D

Ключевое условие — скелет должен быть «2D»: все его шарниры двигаются в одной плоскости. Существуют и 3D-скелеты с более точной анатомией, но анимировать их сложнее. По описанию товара понять тип бывает трудно, однако если скелет 90 см, светится в темноте и стоит около £3, скорее всего, это нужная модель. Фигура приходит разобранной: десять отдельных частей — по две на каждую конечность, тело и голова.

Подготовка основания из OSB или фанеры

В качестве основания в оригинале использовали OSB (ориентированно-стружечную плиту), но подойдёт и фанера. Минимальный размер — 45 × 21 см, можно больше: так скелет будет лучше защищён. Основание покрасили в чёрный цвет, чтобы оно сливалось с темнотой. В плите нужно просверлить отверстия 12 мм под светодиоды в глазах и 10 мм рядом с каждым шарниром, чтобы аккуратно вывести провода сервоприводов. Скелет крепится через штатное отверстие в верхней части, а также через отверстия плечевых и бедренных шарниров.

Установка сервоприводов на конечности

Первым делом отсоедините конечности от скелета — они просто вынимаются из шарниров. Скелет не соединяется с сервоприводами напрямую: сервоприводы крепятся на конечностях и удерживаются рядом с шарниром на теле. К каждому сервоприводу идёт набор «рогов» (качалок); использовали одинарный рог, прикрученный как можно ближе к родному шарниру. Винты могут прокалывать тонкий пластик и царапать людей — концы винтов закрывают каплей горячего клея или кусочком пластика.

Для второй стороны сервопривода нужен держатель. Проще всего напечатать его на 3D-принтере; главное — чтобы сервопривод стоял вертикально. Без 3D-принтера можно вырезать отверстие в основании (сверлением по цепочке или лобзиком после стартового отверстия) и закрепить сервопривод в нём, при необходимости щедро добавив горячего клея.

Подключение сервоприводов к Raspberry Pi Pico

Четыре сервопривода подключаются к одним и тем же контактам питания, поэтому нужна аккуратная разводка: три провода — питание, земля и данные. Провода сервоприводов пропускают через отверстия в основании до пайки, иначе их не получится смонтировать. Для соединения четырёх проводов в один узел использовали пайку и самослипающуюся ленту — это проще, чем искать специальные соединители. Если провода короткие, нарастите их заранее.

Настройка MicroPython и библиотеки servo

Если вы ещё не работали с MicroPython, начните с руководства для начинающих: установите Thonny и прошейте на Raspberry Pi Pico прошивку MicroPython. После этого в Thonny можно писать код и отправлять его на плату. Дополнительно понадобится библиотека servo: через файловый менеджер Thonny создайте на Pico папку servo и скопируйте в неё файлы __init__.py и __main__.py.

Тестовый код: выставление углов сервоприводов

Перед сборкой проверьте положение сервоприводов. Прикрепите к валам что-то легко снимаемое — например, флажки из изоленты — и запустите тестовый код. Он поочерёдно переводит сервоприводы в состояния «вниз» и «вверх». Флажки помогут убедиться, что в положении «вниз» они смотрят вниз, а в положении «вверх» — под углом 90 градусов.

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)

Монтаж светодиодов в глазах скелета

Красные глаза — классический приём из кино, поэтому скелету их добавили. Можно взять обычные красные светодиоды, но в оригинале использовали RGB-модели, задействовав только один цвет: это упрощает сборку и оставляет варианты на будущее. Конкретно это WS2811 диаметром 12 мм, цепочки обычно по 50 штук на 5 В или 12 В. Нужна версия на 5 В, а из цепочки отрезаются всего два светодиода. Отверстия под глаза сверлят 12 мм; небольшое покачивание сверла облегчает посадку светодиодов.

Добавление датчика расстояния

Чтобы скелет реагировал на людей, в проект добавлен датчик расстояния: он определяет, когда кто-то подходит близко, и запускает анимацию. Это превращает статичную декорацию в интерактивную фигуру, которая «оживает» при приближении гостей.

Сборка и финальная настройка анимации

После проверки углов сервоприводы закрепляют на основании, подключают светодиоды и датчик, а провода убирают в просверленные отверстия. Raspberry Pi Pico монтируют так, чтобы был доступ к USB-порту для прошивки и отладки. Затем загружают основной код анимации, который связывает показания датчика с движениями бёдер и плеч и свечением глаз.

Идеи для других страшных декораций

Технику из этого проекта можно адаптировать под любые другие декорации — страшные или не очень. Принцип тот же: жёсткое основание, сервоприводы на подвижных частях, контроллер Raspberry Pi Pico и датчик расстояния для реакции на людей. Меняя фигуру и код, легко получить машущие руки, качающиеся надгробия или другие интерактивные элементы для Хэллоуина.

Подойдёт ли обычный Raspberry Pi Pico, а не Pico W?

Да. В оригинальном проекте использовался Pico W, но беспроводной интерфейс не задействован, поэтому подойдёт любая модель Raspberry Pi Pico.

Почему нужен именно 2D-скелет?

У 2D-скелета все шарниры двигаются в одной плоскости, поэтому его легко анимировать сервоприводами на плоском основании. У 3D-скелета более точная анатомия, но анимировать его сложнее.

Можно ли обойтись без 3D-принтера?

Да. Вместо печати держателей можно вырезать отверстие в основании — сверлением по цепочке или лобзиком после стартового отверстия — и закрепить сервопривод в нём, при необходимости добавив горячий клей.

Почему рекомендуют сервоприводы именно 9g?

Они достаточно сильны для этой задачи. Более крупные сервоприводы потребляют слишком много тока, и тогда понадобится внешний источник питания.

Читайте также