А вы играли в Portal? Даже если нет, сборка личной автоматической турели с детекцией движения и оригинальным голосовым сопровождением наверняка окажется как минимум любопытной, ведь такая диковина может не просто украсить интерьер, но и стать, к примеру, отличным подарком для детей.

Предыстория


С самого первого выхода Portal в 2007 году встречающиеся в этой игре турели сильно впечатляли. Белые штуковины странной формы, манящие вас приятным голосом, но при одном неверном движении расстреливающие в пух и прах.

Заняться этим проектом меня подтолкнуло наличие 3D-принтера, сильное желание создать нечто клёвое на сервоприводах и возможность испытать потенциал Fusion 360.

Всего я поставил перед собой несколько целей:

  • Добиться компактного дизайна. Я использую Prusa Mini, поэтому мне хотелось, чтобы детали были небольшими. Кроме того, готовое изделие должно умещаться на мой рабочий стол.
  • Заложить максимально возможную свободу движения.
  • Реагировать турель должна так же, как и оригинал в игре, поэтому нужна озвучка, обнаружение людей и движения.
  • Постараться сделать так, чтобы она не выглядела, как напечатанная на 3D-принтере.

Многие из этих целей я в итоге достиг. Некоторыми же моментами пришлось пожертвовать, но если учесть физический размер турели, то это вполне ожидаемо.

Об этом руководстве


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

Также уделите время изучению схемы и можете даже заглянуть в исходный код, прежде чем приступать к финальной сборке. Внимательный пошаговый подход определённо поможет грамотно и качественно собрать отличную турель.

Необходимые компоненты



  • блок питания 5В с хорошим амперажом (2А должно хватить). Подойдёт и USB-зарядка;
  • коммутационная плата с USB;
  • держатели светодиодов 3мм х 4шт.;
  • акселерометр ADXL345 x 1шт.;
  • оранжевые светодиоды 3мм х 4шт.;
  • красные светодиоды 5мм х 1шт.;
  • 8-светодиодное кольцо SK6812 5050 RGB х 1шт.;
  • стандартный сервопривод g90 х 1шт.;
  • рычажный микропереключатель х 1шт.;
  • плата PCA9685, желательно без впаянных гребёнок х 1шт.;
  • PIR-датчик х 1шт.;
  • динамик 4Ом, 4см в ширину и 2см в высоту х 1шт.;
  • сервопривод непрерывного вращения g90 х 1шт.;
  • MP3-плеер YX5200 х 1шт.;
  • Wemos D1 Mini 3 х 1шт.;
  • стальной стержень 4мм.;
  • резьбовая шпилька M3;
  • шестигранник 4мм;
  • провод;
  • карта micro-sd.

Инструменты


  • 3D-принтер;
  • паяльник;
  • компоненты для покраски и шлифовки;
  • стандартные инструменты вроде отвёрток, мини-пилы и т.д.

Схема


Схематично турель относительно проста. Все компоненты питаются от линий 5В. И ADXL345, и PCA9685 работают по протоколу I2C. YX5200 подключается через последовательный порт, а PIR-датчик и светодиодное кольцо используют для связи по одному контакту.

Несколько важных примечаний:

  • После встраивания Wemos добраться до неё будет уже сложно. Так что обязательно загрузите скетч заранее. Это позволит вам использовать OTA-обновления, избавив от необходимости каждый раз подключать плату по USB.
  • Используйте макетную плату, чтобы заранее убедиться в работоспособности всех компонентов. Нет ничего хуже, чем обнаружить необходимость замены детали уже после завершения финальной сборки.
  • Подтягивание вывода D0, используемого для микропереключателя «открыт/закрыт», реализуется через резистор на 4.7кОм. D0 я выбрал, потому что при подтягивании к верхнему уровню других оставшихся на Wemos контактов возникали проблемы с загрузкой.
  • Для проверки занятости MP3-плеера я задействовал аналоговый контакт Wemos. Это можно счесть пустой тратой аналоговой функции, так как ещё остаётся 2 цифровых контакта. Однако MP3-плеер во время простоя будет подтягивать контакт вверх, так что Wemos вряд ли сможет загружаться корректно при использовании одного из них.
  • Питается Wemos от 3.3В, но сигнал светодиодного кольца ожидает 5В. Мне удалось заставить его работать, но высока вероятность, что вам потребуется логический преобразователь 3.3В – 5В, если вдруг светодиоды будут показывать странные цвета.
  • Для того, чтоб ADXL345 заработал в режиме I2C, контакт CS необходимо подтянуть к верхнему уровню. Логический уровень микросхемы 3.3В, но я по ошибке привязал этот контакт прямо к линии 5В, и знаете — сработало — так что в своей схеме я это подключение оставляю. Вам же рекомендую попробовать привязать CS к выводу 3.3В на Wemos, к примеру.

Это лишь часть нюансов, с которыми я столкнулся при сборке турели. Поэтому рекомендую внимательно ознакомиться со спецификациями выбранных вами компонентов, прежде чем их подключать.


Исходный код


Мозгом турели будет Wemos D1 Mini. Эта мощная маленькая плата несёт на борту WiFi и без проблем программируется. Для установки библиотек и программ вам потребуется Arduino IDE.


Помните, что большая часть ПО была написана просто, чтобы турель заработала, так что для лучшей читаемости код не оптимизировался. Вся функциональность разбита по разным файлам, чтобы хоть немного упростить работу с ней.

Для работы кода также потребуется установить несколько библиотек:


Файлы для 3D-печати


Турель состоит из множества деталей. Все они показаны ниже. Я предлагаю использовать для их деления на части программу вроде Slic3r или Prusa Slicer. Большинство деталей можно напечатать с минимальной или вообще без поддержки. В Prusa Slicer есть инструменты для расстановки поддержки в нужных местах. Параметры вроде температуры и полей нужно определять согласно модели вашего принтера и выбранной нити.

Сложнее всего будет печатать крылья. Мне пришлось использовать довольно много материала на поддержку и сделать большие поля, чтобы получить точный и единый элемент. Если хотите в итоге добиться такой же глянцевой поверхности, используйте для внешних слоёв толщину около 0.10мм. Внутренние детали можно печатать с немного большей высотой слоя, хотя тогда, естественно, получатся более заметные слоевые линии.

Внутренние детали


Скачать


Внешние детали


Скачать


Ноги


Скачать


Аудио


Турель воспроизводит много речевых паттернов из игры. Скачайте этот архив и залейте его содержимое на SD-карту, которая будет использоваться в плеере YX5200.

Окрашивание


Хотелось бы мне предложить вам какой-нибудь упрощённый способ окрашивания готового изделия. Но увы, для получения блестящей поверхности он всего один:

  • использовать небольшую высоту печати;
  • отшлифовать детали;
  • дополнительно сгладить поверхность грунтовкой;
  • использовать глянцевую аэрозольную краску.

На этом этапе потребуется немало терпения. Не спешите. Не наносите помногу краски за раз. Чем более гладкой будет поверхность изначально, тем лучше получится результат в конце. Затраченное время себя оправдает.

Сборка


После того как все детали будут напечатаны и покрашены, можно приступать к сборке. Все эти этапы подразумевают, что вы умеете подключать электронику.

Сердцевина



Для облегчения печати основа механической части изготовляется в 3 захода. Соедините эти 3 детали при помощи шести винтов.


Шестерёнки должны чётко входить внутрь. В качестве оси центральной я использовал старый шестигранник. Он должен входить легко, но шестерня при этом должна прочно фиксироваться. Если она будет болтаться, ось может выпасть. Оси остальных шестернёй я сделал из металлических стержней толщиной 4мм, которые обрезал под нужную длину. Убедитесь, что шестерни ориентированы правильно!


С помощью 4 небольших винтов прикрепите боковую пластину, чтобы зафиксировать шестерни.


Установите сервопривод непрерывного вращения и микропереключатель. Этот переключатель позволит микроконтроллеру обнаруживать открытое/закрытое состояние крыльев.



Вставьте реечные передачи и проверьте их ровность с обеих сторон. Обе должны полностью задвигаться.


Теперь ставим большую шестерню. Её тоже нужно зафиксировать на оси жёстко, чтобы не отпала. Можно просто капнуть клея.


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

Глаз



Центральный элемент печатается плоским, чтобы облегчить сам процесс печати и добиться отсутствия слоевых линий. Однако форма должна быть слегка углублённой. Для этого после печати глаз помещается в горячую воду – пластик становится податливым — и с помощью специальной «чашечки» вдавливается до нужного углубления.


Светодиодное кольцо должно точно вписываться в крепление. То же касается красного светодиода. Белая деталь – это «диффузор», который рассеивает красный свет равномерно по всему глазу — смотрится намного эффектнее.


Все детали компонуются одна к другой и должны вписаться в контуры основного корпуса. Красный светодиод при этом выступает в качестве своеобразной опоры.

Кронштейн для Wemos




Для Wemos нужно напечатать небольшой кронштейн. Имейте в виду, что на момент написания статьи уже вышла Wemos v4, у которой крепёжные отверстия расположены иначе. Либо возьмите v3, либо переделайте сам кронштейн. Сам он подразумевает прикручивание платы всего на один винт, что упрощает дальнейший доступ при пайке компонентов.

Основной корпус



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



Теперь наденьте на стержни вторую часть корпуса, также закрепив клеем.


Можно ставить собранный глаз на место. Далее приклейте кронштейн с Wemos. Это дополнительно поможет выровнять два элемента корпуса.

Верхняя часть



Нижний элемент является частью навеса, обеспечивающего поворот крыльев. Здесь же размещаются PCA9685 и YX5200. Поскольку у плеера крепёжных отверстий нет, я решил его просто приклеить к верхнему сегменту.

Ради экономии места советую выпаять с YX5200 гребёнки. Отрежьте ножницами чёрные пластиковые элементы и при помощи паяльника извлеките металлические штырьки. Убирайте их по одному. Не перегревайте чип.

PCA9685 крепится 4 винтами.


После приклеивания YX5200 к детали можно её прикрутить.


Вставьте готовый узел в корпус и закрепите 4 винтами. Теперь вся сборка станет намного устойчивей.

Нижняя часть



Запитать турель можно по-разному – использовать коммутационную плату с USB или просто проложить провода напрямую – оба варианта должны вписаться под маленькую планку, которая крепится двумя винтами.

Следом идёт акселерометр. Для его крепления предусмотрены две опоры.


Вся эта пластина крепится снизу шестью винтами. PIR-датчик фиксируется спереди, занимая удобное положение над акселерометром. Места здесь немного, но при плотной укладке проводов должно получиться.


Прикрутите малую шестерню к сервоприводу и установите его на пластине.


Отрежьте от металлического стержня 2 сегмента нужной длины и просуньте их через пластину так, чтобы с каждой стороны они выпирали на несколько миллиметров.


Ещё один небольшой кусок стержня используйте в качестве шарнира между верхней и нижней частью.


На этом большая часть внутренней механики завершена.


Вставьте всю эту механическую часть в верхний подвес. Немного раздвиньте детали корпуса внизу, чтобы одеть их на стержни. Если корпус держится на стержнях неплотно, можете использовать клей. Но имейте в виду, что так вы зафиксируете сборку намертво, поэтому сначала лучше убедиться в работоспособности всех элементов.

Крылья



Сначала два пулемёта. Вставьте белые светодиоды в металлические держатели. Сами держатели вставьте в дула. В них они должны держаться без дополнительной помощи.


Сзади пулемётов есть небольшой канал для прокладки проводов. Закрепите светодиоды и провода с помощью клея. Убедитесь, что провода дотягиваются до PCA9685. Возьмите с запасом – будет проще отрезать, чем потом перепаивать новые.


Отрежьте четыре стержня нужной длины. Рекомендую их шлифануть, вставив в дрель и повращав внутри наждачной бумаги. Шлифуйте хорошо, но учитывайте, что они должны входить максимально плотно, чтобы крылья не совершали лишних колебаний. Теперь слегка загрубите концы штырей и вставьте их в крыло. Рекомендую на время высыхания клея установить крылья в основной механизм, чтобы зафиксировать стержни. Но смотрите, чтобы они его не касались, иначе могут приклеиться. Спросите, откуда я это знаю…



Прикрутите пулемёт с помощью 2-6 винтов.


Отрежьте два небольших сегмента от резьбовой шпильки и вклейте по одному в крыло. Это будут штифты, на которые оденутся зубчатые рейки, так что крепите как следует.


После склеивания и фиксации всех элементов можете задвинуть крылья и защёлкнуть рейки на штифтах.

Ноги



Каждая нога собирается из куска стального стержня, двух напечатанных элементов и небольшого штифта усиления конструкции. Штифт можно отрезать от резьбовой шпильки. Всё это в итоге склеивается.

Добиться правильной формы металлических деталей может быть нелегко – всё же сталь 4мм. Советую использовать что-нибудь круглое подходящего размера, чтобы выгнуть пруты под нужным углом.

Завершение!



Теперь пора вклеить все три ноги и антенну. На этом сборка закончена.

Первый запуск


После сборки турель по большому счёту готова к использованию. При запуске Wemos будет искать сеть WiFi. Если она её не найдёт, то запустит хот-спот для подключения. Через предоставленный портал нужно будет ввести учётные данные WiFi. После этого турель должна подключиться к сети и запустить программу.

Посмотреть IP-адрес турели можно через роутер или на странице http://portal.local через устройство, подключённое к той же сети. Эта ссылка выведет вас на тематическую страницу турели в стиле Portal, где вы сможете просмотреть её датчики.

Комментарии (16)


  1. HepoH
    01.04.2022 17:50
    +4

    Отличная работа!

    Сам в прошлом году хотел заняться сборкой портальной пушки, но в какой-то момент мой принтер (ender 3) почему-то стал прекращать подавать филамент на длительных печатях. Прийти на кухню после ночи печати, чтобы увидеть, что сопло рисует фигуры в 10см над недопечатанной деталью сильно демотивирует, так и не разобрался в чем была проблема.


    1. ktod
      02.04.2022 04:22
      +3

      У меня такая проблема решилась заменой драйвера шагового двигателя. Поставил TMC2209 и все стало ок.


  1. HardWrMan
    01.04.2022 17:51
    +9

    Вот какой должен быть правильный корпус для Яндекс.Станции.


    1. commanderxo
      01.04.2022 18:17
      +7

      … и чтоб говорила голосом GLaDOS!


      1. HardWrMan
        01.04.2022 18:35
        +8

        Так точно! И не просто говорила, но ещё и отпускала те самые шуточки, как про Челл. "Между делом я заглянула в твоё личное дело. Ты ужасный человек. Нет, правда, тут так и написано - ты ужасный человек." (с) GLaDOS


    1. Hisoka
      02.04.2022 11:36

      Вот, кстати, из сберовского постомата забирал, а там озвучка мужским голосом. Учитывая акустику это звучало как трёп главы лаборатории во втором портале, в той части, где попадаем в старый испытательный комплекс.


      1. HardWrMan
        02.04.2022 11:59

        Этого мужика зовут Кейв Джонсон. https://theportalwiki.com/wiki/Cave_Johnson/ru

        Ну ладно, я вот тут подумал. Если жизнь одаривает вас лимонами — не делайте лимонад. Заставьте жизнь забрать их обратно! Разозлитесь! Мне не нужны твои проклятые лимоны! Что мне с ними делать? Требуйте встречи с менеджером, отвечающим за жизнь! Заставьте жизнь пожалеть о том дне, когда она решила одарить Кейва Джонсона лимонами! Вы знаете, кто я? Я тот, кто сожжет ваш дом! Я заставлю своих инженеров изобрести зажигательный лимон, чтобы спалить ваш дом дотла! (с) Кейв Джонсон


    1. greenkey
      03.04.2022 16:04

      лучше в виде гладос и с ее характером


      1. HardWrMan
        03.04.2022 16:58

        GLaDOS придётся к потолку крепить.


  1. greenkey
    01.04.2022 19:12
    +2

    Однако, можно и производство открыть, вся документация есть


    1. numb
      01.04.2022 19:46
      +2

      Я бы купил)


    1. 1tuz
      04.04.2022 13:00

      А ведь шансы есть, с учётом того, как Valve относится к фанатским проектам. Если Black Mesa и Hunt Down The Freeman пошли в продажу, то есть шансы, что турель пойдёт в производство


  1. KSA_GT
    02.04.2022 05:45
    +2

    Охренительно! Молодец чувак. В очереди наверняка GLaDOS.


  1. shalamberidze
    02.04.2022 05:45
    +4

    Тот случай когда очень хочется такую но самому сделать не вариант :(


  1. SGrek
    02.04.2022 17:22

    Интересно, как скоро увидим на Али :)


  1. poluian
    03.04.2022 19:16
    +1

    Есть новейшие разработки - плазменные двигательные панели, которые расположены в виде круглых зон по периметру и на днище летательного аппарата, - там плазменный импульс создают ячейки в виде микрорельсотронов. Если на рельсовые контакты подать электроток, индукция разгоняет искру замыкающую контакты до космических скоростей. У двигательных плазменных панелей, где соединены вместе мини-разрядники ячеек (как у плазменных телевизоров), там рельсотроны уменьшены до размеров шариковой ручки, собраны в плоские панели, которые по конструкции напоминают плазменные панели телевизоров. Расстояние между контактами незначительно - до 1 мм - перемычкой между ними становится искра разряда. Работают ячейки синхронно: стреляют струйками плазмы – искрами электроразрядов, ускоренных силой индукции. Скорость большая, количество рельсотронов в панелях доходит до сотен тысяч - суммарный двигательный импульс в итоге огромен! Разряды идут с мегагерцевой частотой, каждый импульс ударяет о воздух, который завихряется в тороидальные кольца. Эти двигательные панели используются для летательных аппаратов в атмосфере: снизу и по движению создается импульсами плазменных панелей столб кольцевых вихрей - так и летает... В вихревой струе, за счет вращения воздуха, падает температура – влага из воздуха вымораживается снежинками, на которых искрится свет, созданный электроразрядами панели. Получается некий «твердый луч», который при покачивании аппарата изгибается за счет искривления траектории отлетающих вихревых колец. Впрочем, эта технология совсем не супер. Летают такие аппараты быстро и маневренны - из-за легкости аппарата, но от импульсных плазменных двигателей - СВЧ излучение. Но для грузовых дирижаблей - самое то! Удаленность от кабины снижает опасность СВЧ-излучения, а двигательные панели создают дирижаблю суперманевренность.