Существует весьма любопытное устройство, изготовление которого может дать много позитивных эмоций и занять свободное время в предстоящие новогодние выходные дни, особенно если у вас есть маленькие дети (но не обязательно, так как даже взрослым будет интересно повозиться с таким устройством). И называется оно зоотроп.
▍ Вступление
Устройства подобного типа являются своеобразными прародителями кинематографа, причём зоотроп не является первым, до него существовало ещё устройство, называемое феникистаскопом, изобретателем которого был Жозеф Плато:
Картинка: wikipedia.org
Картинка: wikipedia.org
Устройство представляло собой диск с нанесёнными на него фигурками в различных позах, содержащий ряд щелей.
Диск насаживался на вращающее устройство, перед ним устанавливалось зеркало, и наблюдатель смотрел с обратной стороны диска в сторону зеркала сквозь щели во вращающемся диске. При этом диск должен быть обращён в сторону зеркала своими картинками, а тыльной стороной — к наблюдателю.
Благодаря инерции человеческого зрения (картинка пропадает не сразу), если картинки будут достаточно быстро будут сменять друг друга, то возникнет иллюзия ожившего изображения.
Минусом указанного феникистаскопа являлась весьма ограниченная его способность к размещению массива изображений (дословно, можно было разместить всего лишь «не более двух дюжин», против «пяти, десяти и более дюжин» — у зоотропа).
Это ограничение привело к разработке другим изобретателем, Уильямом Джорджем Горнером, устройства, называемого зоотропом, которое представляло собой барабан также с прорезанными в нём прорезями и идущими по периметру сменяющими друг друга фигурками в разных позах.
Наблюдение за фигурками осуществлялось также сквозь щели в барабане с внешней стороны устройства:
Картинка: Runner1616, wikipedia.org
Несмотря на то, что подобное устройство существовало в эпоху до кинематографа, нельзя сказать, что оно отжило своё. Как нам подсказывает Википедия, в настоящее время зоотропы тоже используются, правда своеобразным образом: в нью-йоркском метро установлен линейный зоотроп, представляющий собой стену из 228 окошек, за каждым из которых расположено отдельное изображение, а пассажиры поездов, проезжая мимо, видят анимацию:
Таким образом, как мы можем видеть, неотъемлемой частью подобных устройств являются стробоскопирующие устройства — специальные технические подходы, как бы выхватывающие отдельные моменты из непрерывного движения.
Кстати сказать, насколько мне известно, есть вариант применения подобного подхода в настоящее время, причём с обратной целью: не создать анимацию, а наоборот остановить движение.
Например, это используется для исследования технических устройств, остановить которые невозможно (например, винты вертолёта, лопатки турбин и т. д.). Для этого их освещают импульсным светом, скорость следования вспышек которого совпадает со скоростью вращения устройства, что приводит к эффекту как бы останавливания вращения устройства, и его можно визуально исследовать без физической остановки движения наблюдаемого объекта.
Ниже показаны забавные примеры, когда частота следования кадров видеосъёмки совпадает со скоростью вращения винта, и к чему это приводит:
▍ Собираем зоотроп
Таким образом, как мы могли видеть выше, вопрос создания зоотропа можно разделить на две части:
- Создание массива сменяющих друг друга картинок.
- Создание стробоскопирующего устройства.
Начнём с первого… Можно использовать множество различных подходов для создания отдельных картинок, однако мы возьмём самый простой из всех. А какой из подходов является самым простым? Верно, просто-напросто, выдернуть картинки из любого gif-изображения!
Потому что изображения подобного типа являются сменяющимися статичными картинками, в чём мы легко можем убедиться, если скачаем и откроем любое из подобных изображений в любом из доступных вам графических редакторов, после чего включим там отображение таймлайна:
Как я и говорил, в таймлайне мы можем видеть сменяющие друг друга картинки, находящиеся внутри одного gif-изображения.
И теперь для того, чтобы сохранить эти изображения в виде отдельных картинок, нам необходимо всего лишь переходить между отдельными кадрами таймлайна и сохранить каждый кадр как картинку на жёстком диске компьютера.
Чтобы было несколько забавней, как можно видеть выше, я взял в качестве «экспоната для препарирования» анимированную картинку известного мема — танцующего грустного лягушонка Пепе :-)
Картинка: tenor.com
Кстати, если мы посмотрим на таймлайн этой гифки, то увидим, что она содержит всего лишь 23 кадра, хотя исторически в кинематографе был стандарт 24 кадра в секунду. Просто я это говорю к тому, что нам придётся это учесть, и стробоскопирующее устройство должно будет выдавать 23 импульса в секунду.
Если кому интересно подробно почитать о стандартах количества кадров в секунду, вот здесь есть интересная развёрнутая статья на эту тему.
Итак, у нас есть подборка отдельных изображений… Что же нам дальше делать с ними? Нам необходимо будет эти изображения собрать в одну непрерывную ленту, причём, если мы пойдём самым простым путём, то нам даже не нужен будет какой-либо графический редактор. Мы вполне можем это проделать это даже в обычном текстовом редакторе Word!
После чего готовую ленту необходимо распечатать на любом принтере (конечно, лучше бы, наверное, цветной, но у меня есть только чёрно-белый).
В результате получилась вот такая выкройка:
Забыл сказать: до сборки изображений в ленту имеет смысл озаботиться диском, или иным способом, с помощью которого эта лента будет приводиться в движение.
Мне представляется, что одним из самых простых способов является создание эдакого «ведёрка», где мы собранную в кольцо ленту прикрепляем к «донышку», к середине которого мы потом и укрепим свой электродвигатель.
Таким образом, мне кажется, сначала имеет смысл сделать такой диск, после чего по формуле вычислить его длину окружности и разделить на 23 кадра (это в моём случае 23, так как я делаю для этого лягушонка, в вашем случае должно быть 24 или иное другое желаемое число). После чего мы будем знать, какого размера по горизонтали должно быть каждое изображение, чтобы оно поместилось в свой сектор.
Итак, будем считать, что картинки у нас готовы. А что же делать со стробоскопом? Так как со времён первого появления подобных устройств наука и техника шагнула «несколько вперёд» :-), то в данный момент использовать щелевой стробоскоп, наверное, не имеет смысла (ну если только из острой любви к историзму). Поэтому я поступлю следующим образом: использую для подсветки самодельный светодиодный стробоскоп. У меня как раз под рукой имеется отслуживший своё старый налобный фонарь, который я и буду использовать в качестве донора. Разбираем фонарь и вынимаем из него светодиодный блок:
Как можно видеть, в подобных фонарях светодиоды расположены в виде нескольких концентрических колец, где у каждого кольца имеется свой минусовой контакт и общий плюсовой у всех.
Запараллеливаем все минусовые контакты и таким образом на выходе у нас получается всего два контакта:
Припаиваю туда провода с разъёмами для будущего подключения к контактной плате для быстрого проектирования — breadboard-у (чтобы провода не оторвались, для надёжности ещё приклеил их силиконом к плате):
Кстати, любопытный момент: когда разбирал фонарь, нигде не увидел токоограничивающего резистора для этой сборки светодиодов. Так как в оригинале эта сборка запитывается от 4,5 вольт, а я использовал подсевшую аккумуляторную батарею на 3,3 вольта, то я просто проигнорировал этот момент. «Для экспериментов мне хватит, а большее и не важно».
Теперь необходимо каким-то образом управлять включением этой светодиодной вспышки. Самый простой способ это сделать — использовать ключ на транзисторе.
Кроме того, нам потребуется ещё и непосредственно управляющее устройство — в качестве него я возьму esp32. Выбор обусловлен исключительно тем, что у меня их, в результате проведения предыдущих экспериментов/сборки самоделок, просто много. Вы же можете использовать любой другой, например, ту же самую Arduino Nano и т. д. (правда, соответствующим образом придётся наверняка изменить и управляющий код).
Для использования в качестве ключа я возьму транзистор IRF530N, так как он может полностью открыться от напряжения логической единицы на пине esp32 (3,3В).
Можете для своих самоделок использовать такой же, или, если захотите подобрать какой-либо иной свой, то в даташите на транзистор нужно смотреть на напряжение открытия (в том числе). Выглядит эта строчка примерно следующим образом (на примере названного выше транзистора):
Как видно, наш транзистор начинает открываться с 2 вольт и максимум открытия будет на 4 вольтах. У нас — 3,3. Сойдёт… Хотя для надёжности открытия можно было бы подобрать транзистор с максимальным вольтажом открытия в районе 3,3 вольта, но мы не будем так заморачиваться.
А вообще, для информации – если транзистору не хватит вольтажа и он не сможет полностью открыться, то будет работать полуоткрытым, что приведёт к его интенсивному нагреву, и, возможно, к выходу из строя.
Общая схема подключения светодиодного стробоскопа к микроконтроллеру через транзисторный ключ будет выглядеть следующим образом (только вместо двигателя — светодиодная сборка и нет диода):
Картинка: alexgyver.ru
Итак, стробоскоп мы подключили… Теперь необходимо каким-то образом приводить в движение эту ленту с картинками.
В качестве привода я решил использовать шаговый двигатель. Почему: я хотел иметь больший контроль над стабильностью скорости вращения, так как в противном случае, если бы я стал использовать коллекторный двигатель (как один из самых простых вариантов), у меня было подозрение, что его скорость будет несколько плавать, и придётся как-то дополнительно её стабилизировать, используя тот же самый ШИМ-контроль, алгоритм ПИД-регулятора и некий энкодер. Это всё довольно сложно и избыточно. Хотя я это всё знаю и могу сделать, но в данном случае мы поступим гораздо проще (кроме того, это будет относительно простой вариант и вам будет просто повторить за мной), так что тут одни плюсы…
В качестве шагового двигателя я взял первый попавшийся, который был под рукой, а в качестве его управляющего драйвера — TB6600:
Картинка: amperkot.ru
Плюс такого драйвера в том, что он имеет возможность настройки микрошаговых режимов работы шагового двигателя, что кроме плавности перемещения вала даёт ещё и существенное снижение шума по сравнению со стандартным режимом.
Шум работы (по результатам моих экспериментов) примерно равен или меньше, чем у коллекторного микродвигателя. То есть, другими словами, легко забивается другими шумами в жилом помещении и абсолютно не напрягает и становится вообще практически неслышимым уже с 2 метров, особенно если двигатель установлен на виброзащитную подложку (например, кусочек от туристического коврика) в противовес стандартному режиму работы, где гул двигателя слышен из другой комнаты :-) Таким образом, шаговый двигатель, работающий в микрошаговом режиме, вполне может работать продолжительное время в жилом помещении и этот шум не будет особо досаждать.
Для управления двигателем мы будем использовать следующий код, взятый отсюда (но несколько его изменим и дополним).
С микроконтроллером драйвер будет соединяться по следующей схеме (взятой оттуда же, откуда и код выше):
Картинка: makerguides.com
Итак, наш грустный лягушонок вполне готов встретить Новый год и «рвать танцполы» (тесты будут ниже), а сама система в сборе выглядит так:
Почему среди компонентов на картинке выше есть датчик, о котором я вроде ничего не говорил, и что за гребёнка вокруг диска — об этом ниже.
Но, всё же, это достаточно простой вариант… А можно ли сделать что-то ещё более интересное? «Легко» — решил я.
А что если проделать всё то же, что и выше, но фигурки сделать не распечатанными, а реальными, физическими? Почему бы и нет! Однако какая у нас будет основная идея всего этого? Мне кажется, что Новый год — это всё-таки время веселья, танцев, плясок — и именно в эту сторону мы и будем двигаться. В качестве основного способа изготовления подобных физических фигурок я возьму скоростную лазерную установку, которую рассматривал в одной из предыдущих статей.
Для этого нам необходимо проделать следующее: на любом из ресурсов, например, здесь, где в изобилии имеются гифки на разную тему, нам необходимо выбрать несколько обозначенной тематики.
Например, возьмём вот этого танцора:
Картинка: giphy.com
Попробуем её разобрать на отдельные кадры, как я описал выше. Но есть один нюанс: так как нам в дальнейшем будет необходимо этого танцора вырезать с помощью лазера, нам необходимо его превратить в векторную фигуру (то есть, простыми словами, нам необходимо создать путь, по которому в последующем будет двигаться лазер).
Для этого мы предварительно также разбираем всю гифку на отдельные кадры, при этом из каждого кадра мы вырезаем этого танцора:
После чего заливаем чёрным цветом танцора в каждом кадре (так как нам абсолютно не интересна вся информация, которая содержится внутри этого контура, и нам нужен только внешний контур):
После этого чёрную картинку мы импортируем в векторный редактор, например, CorelDraw, и запускаем там процедуру трассировки растрового изображения (то есть процедуру перевода растрового изображения в векторный путь). Полученое изображение отличается от изначального даже на глаз, так как отсутствует пикселизация и контуры идеально гладкие (на картинке ниже обработанная картинка показана справа; слева — до обработки):
Таким образом, у нас имеется подборка контурных изображений всех кадров. Вырежем эти изображения из листового материала, используя лазерную установку. Чтобы было веселее, сделаем фигурки разных танцоров — разного цвета (у нас будет три разных танцора).
Ниже на видео показано только вырезание зелёных фигурок; все остальные вырезаются аналогично:
Разложим получившиеся фигурки. Вот что у нас вышло. Слева от каждого ряда фигурок для понимания масштаба я положил спичечный коробок (кликабельно):
Из интересного здесь можно отметить, что каждую фигурку я снизу снабдил специальным замочком, с помощью которого она и будет крепиться к вращающейся платформе, так как предполагал, что если мы будем использовать способ крепления «а, как-нибудь, как получится», то это будет и неаккуратно, и долго, и трудозатратно:
После чего все фигурки без проблем поместились в три коробка:
Теперь нам необходимо изготовить платформу, на которую они будут крепиться. Платформу я сделал в виде круга, с небольшими прорезями для вставления замочков фигурок:
Вырезаем платформу:
Предвосхищая вопросы: лазер может вырезать с одного прохода, но будет нагар (при таком диаметре луча, который получается при вырезании больших объектов). Специально сделал несколько проходов, чтобы по чуть-чуть испарять материал и минимизировать нагар.
Итак, платформа вырезана, фигурки готовы, пробуем установить одну фигурку:
Так как фигурки держатся недостаточно плотно, решил сделать так: вставить один ряд фигурок, после чего перевернуть, уложить диск на рулон скотча (в качестве подставки) и проклеить снизу термоклеем с помощью пистолета.
Вот только вставленные фигурки:
Проклеиваем их снизу — держатся отлично! Кроме того, подобное проклеивание снизу позволяет скрыть все неаккуратности, и сверху всё выглядит вполне себе пристойно:
Проделываем всё то же самое для всех трёх рядов:
Когда уже собрал, понял, что можно было бы улучшить: все фигурки стоят друг за другом, несколько загораживая друг друга, а надо было сделать в шахматном порядке. Ну да ладно, посмотрим, как оно себя проявит…
Теперь нам необходимо прикрепить этот круг каким-то образом к шаговому двигателю. Моделируем насадку для шагового двигателя и распечатываем на FDM 3D принтере, устанавливаем насадку на шаговый двигатель и крепим на неё диск, используя гнутую канцелярскую скрепку. Неказисто, но держится хорошо:
Уже после того, как всё собрал, я понял, что подошёл к вопросу несколько легкомысленно — так как не предусмотрел способа, которым будут синхронизироваться двигатель и стробоскоп, просто не додумал этот момент.
Соответственно, первый тест это и показал во всей красе: стробоскоп, моргающий вразнобой с вращением двигателя, дал в результате какую-то ерунду :-) Несколько подумав, я придумал способ, которым можно это исправить. У меня был инфракрасный датчик TCRT5000:
Я решил использовать его, а также прикрепить термоклеем на нижнюю часть платформы — зубцы гребёнки энкодера, расположив их прямо напротив фигурок. Ширина зубцов составила 9,5 мм:
На картинке ниже видно, что зубцы энкодера идут в 2 ряда. Это потому, что один ряд предназначен для синхронизации с 2 внешними кольцами танцоров (зелёная девушка и красный парень) — эти ряды содержат по 24 кадра; а второй — для синхронизации с жёлтой девушкой, самой ближней к центру круга — т. к. там 23 кадра (не удалось больше «выжать» из её гифки). Соответственно, датчик я буду подносить то к одному ряду, то к другому.
После первого запуска (начал тестить с лягушонка), стало понятно, что опять существует какая-то проблема: да, синхронизатор позволил фигуркам застыть на месте, но они были нечёткими и раздвоенными.
Несколько поразмыслив над этой новой проблемой, я понял, в чём тут дело: время горения стробоскопа.
Дело в том, что в моём случае ширина конкретного зубца гребёнки энкодера определяет время горения стробоскопа. Так как ширина достаточно большая, то и фигурка оказывается освещённой в течение достаточно продолжительного времени, что в итоге приводит к её восприятию как смазанной, раздвоенной.
Сначала я было дёрнулся ножницами уменьшить ширину этих зубцов, но потом решил пойти другим путём: большая ширина зубцов позволяет гарантированно их увидеть и сработать оптическому датчику, а время работы стробоскопа мы лучше будем задавать программно.
Дальше я рассудил следующим образом: так как фигурки у меня очень маленькие, то для них недопустим даже малейший смаз. Соответственно, время горения стробоскопа должно быть очень маленьким.
Так как у меня в прошлом был достаточно большой опыт работы с временными интервалами, интуитивно я понял, что мне может не хватить даже миллисекунд и потребуется перейти на микросекунды. Как показали дальнейшие эксперименты, я оказался абсолютно прав!
А именно: для тестов я сразу же с запасом установил временной интервал горения стробоскопа на 150 мкс, выключил свет, поднёс датчик к вращающейся платформе… И ура! чёткие контрастные фигуры, танцующие на месте!
Но дальше я подумал вот о чём: дело в том, что столь малое время горения стробоскопа делает фигуры очень тусклыми и предъявляет большие требования к яркости стробоскопа (чем меньше он горит, тем более ярким он должен быть).
Конечно, мы можем пойти по пути увеличения визуальной яркости, увеличивая скорость вращения двигателя (чтобы стробоскоп срабатывал на энкодер и мигал чаще), но это приведёт к тому, что фигуры, которые условно должны танцевать вальс, будут танцевать брейк-данс — что тоже не есть хорошо…
Поэтому, на мой взгляд, решение заключается в том, чтобы найти оптимальный баланс между временем горения стробоскопа и яркостью. Другими словами, стробоскоп должен гореть настолько долго, насколько это позволяет фигурам оставаться чёткими, и они ещё не начинают размываться.
В дальнейшем, несколько грубо, я протестировал ряд интервалов и определил следующее: для моего случая, для фигурок моего размера оптимальным временем горения стробоскопа является до 500 мкс; всё что выше, уже приводит к размытию, а примерно с 1000 мкс начинает выглядеть уже достаточно грубо.
В моём же случае, время работы в 500 мкс позволяет фигуркам выглядеть достаточно яркими, и в то же время весьма чёткими: видно даже малейшие неровности и малейшую зернистость печати (для случая танцующего лягушонка). Сразу предупрежу, что выявилась одна специфическая проблема, с которой я мало что могу поделать: быстрее мерцать стробоскоп я не могу, так как это требует увеличения скорости вращения диска (иначе движения фигурок будут слишком стремительными), а настоящая скорость съёмки плохо сочетается с числом кадров в секунду — и другой камеры у меня нет. Но, по крайней мере, вы сможете составить своё представление о процессе (у обоих видео ближе к концу настроил более-менее положение датчика, а то у меня всё перекособочено, датчик срабатывает нестабильно):
UPD: Всё-таки решил показать вам, как выглядит анимация на большей скорости — не так сильно моргает частота кадров камеры. Правда и фигурки танцуют слишком быстро, но, хотя бы лучше видно саму анимацию:
После сборки и тестов появилась мысль, как это всё можно улучшить: надо по кругу разместить больше кадров/фигурок, а не только 24. И тогда можно будет сделать более плавную интересную анимацию.
Посмотрев на тесты людей, которые я привёл ниже в статье, я понял, почему никто из них не акцентировался на времени горения стробоскопа, а всего лишь ставили некий элемент, на которой срабатывал датчик: они все, практически поголовно, использовали фигуры макроразмера, намного превосходящие те, которые имел я.
Таким образом, в их случае даже смазывание в десятые доли миллиметра было малосущественно, так как с расстояния, с которого наблюдается обычно зоотроп (1 м и более), это смазывание совершенно незаметно. То есть мы здесь видим чёткую зависимость: чем меньше фигурки в размерах, тем более строгие требования предъявляются к времени горения.
По ссылке вы можете найти код, который я использовал для тестов.
Некоторые выводы из всего этого, которые могут вам потребоваться, если вы будете строить собственный зоотроп:
- Использование синхронизирующего устройства, снимает строгие требования к типу двигателя (изначально я хотел делать вообще без синхронизатора — только программно, расчётными величинами, поэтому и взял шаговый двигатель).
Таким образом, вы вполне можете взять вместо шагового двигателя, который использовал я, любой доступный вам, например, более простой двигатель коллекторного типа;
- Для своего случая вы можете просто взять и прямо использовать мой код, который с большой долей вероятности будет хорошо работать и у вас. Однако нужно помнить, что в моём случае к времени работы стробоскопа предъявлялись слишком строгие требования, которые могут быть более мягкими для вас, если ваши фигурки/изображения будут большего размера, чем у меня.
Таким образом, если у вас именно этот случай, то получится, что вы не до конца используете яркость своего стробоскопа и слишком сильно его «задавили».
Что делать в таком случае: я рекомендую вам подключить к вашему микроконтроллеру arduino/esp32 переменный резистор, а затем, используя arduino-функцию map(), плавно вращать этот переменный резистор, забирая с него значения и переводя их с помощью указанной функции в значения из временного интервала работы стробоскопа (любого, на ваш взгляд, приемлемого интервала, например, от 0 до 10 000 мкс и т. д.).
Таким образом, вы сможете найти приемлемый для конкретного вашего случая баланс между яркостью и временем, когда фигурки уже достаточно ярко освещены, но ещё не начинают смазываться. Такой подход гарантирует вам, что вы «выжали» из своего стробоскопа всё возможное. Мой код, приведённый выше, не оптимален, писался быстро, для тестирования основных идей. Вы же можете его доработать указанным образом, и сделать более универсальным. - Как я уже говорил выше, желательно по кругу разместить более чем 24 кадра. Но не для того, чтобы поднять количество кадров в секунду, а по аналогии с кинематографом «увеличить длину киноплёнки». И тогда можно будет сделать более интересную/плавную/сложную анимацию.
Описанные выше подходы я нигде не видел у самодельщиков и додумался до них сам, в результате собственных экспериментов. Надеюсь, они будут вам полезны в проведении ваших собственных!
Кроме сказанного выше, хотел отметить, что яркости никогда не бывает много, и нужно помнить, что яркости ещё должно хватить на конструкцию вашего размера.
То есть если в результате тестов вам будет казаться, что «как-то всё тускло», то причина может быть не только в малом времени работы стробоскопа — он может быть у вас в принципе слабым, света которого недостаточно для конструкции вашего размера даже при непрерывном горении, а в импульсном режиме особенно. Значит, надо менять строб на более мощный, берите с запасом — не пожалеете… К примеру, у меня яркости маловато, строб слабенький…
Как можно видеть, я специально подсветил стробоскопом всю поверхность «танцплощадки», чтобы абсолютно все фигурки сразу затанцевали.
Правда в моём случае, так как я это всё делал для теста, стробоскоп я держал просто в руке. Если вы будете делать нечто подобное, то лучше светодиодную ленту проложить вокруг диска, неким образом укрепив на стационарных подставках. Тогда всю конструкцию можно будет укрепить как на вершине ёлки, так и просто поставить удобно на столе.
Насчёт вырезания фигурок: не нужно сразу расстраиваться и говорить, что «ууу здесь же необходим лазер!». На самом деле, я использовал лазер только для миниатюризации устройства и потому что он у меня был. Подобные же фигурки можно без каких-либо проблем вырезать и канцелярским ножом, вручную, предварительно распечатав на принтере эти фигурки на плотной бумаге. Единственное, что они получатся несколько большего размера, а так, больше никаких отличий…
Для увеличения эффекта вы можете использовать светодиодную ленту и положить её вокруг всего барабана, чтобы она, например, снизу вверх подсвечивала его.
Таким образом, можно добиться того, чтобы танцующие фигурки были видны с любого ракурса, то есть имели 360-градусный обзор.
Для чего практического можно использовать подобное устройство? Например, поставить его просто в качестве оформления на свой рабочий стол, так сказать намёка для шефа, что «пора бы, так сказать, и зарплатку повысить, а то видите, каким грустным я буду встречать Новый год» :-) Это если мы говорим о лягушонке.
Ещё одним интересным вариантом, на мой взгляд, является установка подобного устройства (с предварительной распечаткой на 3D0принтере соответствующего посадочного конуса) прямо на верхушку ёлки, что может быть довольно забавным…
На этом месте пора, наверное, поставить точку? А вот и нет: что, если мы зададимся вопросом, а можно ли сделать это всё ещё более стильным?!
В своё время мне попался на глаза очень стильный проект зоотропа, где от идеи, которая была положена в его основу, у меня в буквальном смысле отвисла челюсть:
Подробное описание проекта имеется вот здесь. Хотя несмотря на впечатляющий внешний вид, он достаточно простой с технической точки зрения.
Если бы меня спросили, как бы я это сделал, я бы сказал так:
- Сначала сделать векторные пути всех кадров, как мы уже проделали выше.
- Загрузить эти пути в SolidWorks, расположить по кругу, как лучи солнца.
- Включить инструмент «бобышка по сечениям» и создать объект — что-то вроде крыла самолёта, где нервюрами являются наши векторные фигуры, соединённые между собой с помощью сгенерированной поверхности. Однако эта поверхность будет не такой, как на видео выше. Она криволинейная, или, другими словами, NURBS-поверхность, и её необходимо превратить в полигональную (то есть состоящую из треугольников).
- Загрузить полученную фигуру в 3D Studio Max, где превратить поверхность в полигональную, сделать её невидимой, а саму сетку, которая между полигонами, утолщить и сделать видимой, экспортировать полученную фигуру для 3D-печати.
- 3D-печать полученной фигуры.
Таким образом, мы видим, что ничего невозможного нет, несмотря на первичный «вау-эффект».
Подытоживая, можно сказать, что несмотря на то, что история зоотропа насчитывает уже не первое столетие, на нём ещё рано ставить крест.
Ниже я привёл ряд достаточно интересных примеров, которые могут послужить в качестве источника вдохновения для будущих самодельщиков.
В ходе исследования этой темы мне удалось увидеть, что у множества самодельщиков большой популярностью пользуется использование созданных с помощью 3D-принтера зоотропов, и ниже представлена подборка таких.
А вот тут интересно то, что показано, как сделана синхронизация скорости вращения двигателя и строба — внизу барабана, под котами стоят магниты, а к ардуине подключён цифровой датчик Холла, срабатывающий на появление магнита (например, можно взять KY-003, если будете собирать аналогичное):
«Немного лисят — никому не повредят»:
Симпсоны и не только:
Природа:
А вот тут можно видеть тот самый пример, о котором я неоднократно говорил выше: хорошая подсветка, расположенная по периметру, скрытая в невидимой зоне и осуществлённая с помощью светодиодной ленты:
Фабрики роботов:
Страшный 3D печатный зоотроп (но много труда: полгода работы и более 350 фигурок, как заявляет автор):
И напоследок даже в качестве оформления кафе:
Завершая, отмечу ещё один интересный момент, заключающийся в том, что множество gif-картинок содержат более чем 24 кадра (мне попадались даже в 450 кадров). В таких случаях я просто делил это число на 24 и через получившиеся интервалы «выдёргивал» кадры для своей самоделки.
В целом, можно сказать, что создание этих устройств весьма увлекательно и даже не замечаешь, как проходит время, а стробоскопический эффект может быть применён во множестве самоделок, и даже коты иной раз бывают в шоке от того, что «законы физики вдруг отказали»:
Субъективно, когда смотришь на работу подобных устройств в реальной жизни, это воспринимается совсем иначе, не так, как обычная анимация, потому что мы привыкли, что «там, за экраном, происходит много чего». А вот когда фигуры оживают в реальной жизни…Хочется верить, что это всё-таки то самое, настоящее волшебство, хотя бы под Новый год :-)
А засим я откланиваюсь и всех с наступающим Новым годом!
Скидки, итоги розыгрышей и новости о спутнике RUVDS — в нашем Telegram-канале
Поделиться ссылкой:
Интересные статьи
Интересные статьи
Эта статья вторая в цикле по созданию crackme под linux amd64. В этой части мы создадим исполняемый файл, в котором каждая функция будет зашифрована собственным ключом, и будет расшифровываться только...
Машинный перевод — область технологий, которая успешно приближает будущее. Он разрушает языковой барьер и помогает людям, которые говорят на разных языках, понимать друг друга. Один клик — и можно про...
Я не так давно начал изучать Python, и решил, что мне необходима портативная сборка. Причин для этого несколько, но статья не об этом. Если вам такое не нужно, дальше можно не читать. Во в...
Правила игры очень просты: надо построить цепочку слов от начального (МУХА) до конечного (СЛОН), на каждом шаге меняя только одну букву. При этом могут использоваться только русские 4-б...
Мозг реагирует на угрозы быстро. Он не только формирует новые нейронные связи, но и разрывает ДНК своих клеток, а затем воссоздаёт геном, ускоряя экспрессию генов обучения и памяти. Открытие позволяет...