Стол для 3д съемки своими руками

Обновлено: 16.05.2024

Привет, Хабр! В предыдущей статье я рассказывал о наших продуктах – поворотных столах для круговой фотосъёмки. За прошедшее время нам удалось серьёзно продвинуться вперёд и разработать новые устройства на базе Ардуино с использованием коллекторных и бесколлекторных двигателей.

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

Мы выпускаем столы разных размеров. Самые ходовые – с диаметром столешницы 400, 600 и 900 миллиметров. Столы способны вращать довольно приличный груз, например, стол 600 выдерживает 150 кг, а стол 900 – 250 кг. Как-то приходилось делать по спецзаказу стол диаметром 2700 миллиметров, выдерживающий груз до 700 кг.

Как говорилось в части 1, стол с промышленным контроллером выходил слишком дорогим, поэтому мы решили переходить на Ардуино. Кроме того, мы хотели заменить шаговый двигатель коллекторным.

Почему мы решили менять двигатель? Шаговый двигатель – отличный вариант для программирования. Не надо заботиться о том, как переместить стол на заданное расстояние, всё уже сделано за нас. Шаговый двигатель оснащён логическим контроллером, просто используй нужные команды и ни о чём не думай.

Но есть один существенный недостаток. Шаговый двигатель сильно шумит. Иногда двигатель попадает в резонанс, и тогда тарахтение стола становится невыносимым.

Новая схема работы стола была простой: есть двигатель с питанием на 24 вольта и встроенным редуктором. Двигатель вращает столешницу и управляется через преобразователь ШИМа, так называемый драйвер двигателя. К вращающейся столешнице подсоединён оптический энкодер, передающий текущее положение в скетч Ардуино, который должен управлять двигателем посредством ШИМ-сигнала. И первой моей задачей было научить скетч перемещать стол из точки A в точку B.

Признаться, начинал я эту работу с некоторой робостью. Придётся ли погружаться в изучение ТАУ-регуляторов? Если да, то, скорее всего, надо будет оперировать значением мгновенной скорости. Позволит ли медленная и ограниченная ардуина проводить необходимые вычисления в реальном времени? К счастью, всё оказалось намного проще.

Наш первый макет. Arduino Uno, двустрочный дисплей, кнопки

Наш первый макет. Arduino Uno, двустрочный дисплей, кнопки

Итак, скетч должен получать данные от энкодера и управлять двигателем посредством ШИМ-сигнала. Библиотека для энкодера сразу нашлась. Называется, как ни странно, Encoder, легко находится в менеджере библиотек Arduino IDE. Выводы энкодера подсоединяем к пинам 2 и 3, чтобы использовать прерывания – так значения текущего положения стола будут максимально близки к реальности.

Через какое-то время выяснится, что энкодер тем не менее слегка привирает. В чём дело? Плохой энкодер? Библиотека? Несколько отладочных скетчей, измерение импульсов, всё не то… Проблема в том, что мест, где может возникать ошибка энкодера, множество. Да и ошибка плавающая, то она есть, то нет. И вдруг совершенно случайно обнаруживается, что текущая конструкция стола несколько мм… шаткая что-ли. Раньше это было незаметно, ведь обратная связь в системе отсутствовала. А в новом изделии небольшой люфт приводил к большой погрешности в показаниях энкодера, так что потребовалось сделать конструкцию более жёсткой.

Ну что ж, теперь можно приступать к решению главной задачи по перемещению стола на заданное расстояние. Двигатель управляется ШИМ-сигналом. Это значение от единицы до 255, если не использовать большее разрешение. Сразу выяснилось, что двигатель с редуктором начинает вращать стол с некоторого минимального значения ШИМ. На первом макетном столе это значение равнялось 60.

Итак, попробуем реализовать самый простой алгоритм: первую половину пути линейно увеличиваем ШИМ, вторую половину – линейно уменьшаем:


Если значение ШИМ превышает 255, оно будет обрезано:


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

Правда, иногда стол всё-таки слегка перескакивал через заданную точку. На этот случай мы предусмотрели коррекционное перемещение для возврата назад на минимальном ШИМе. Тем не менее, хотелось бы добиться того, чтобы стол совершал минимальное количество таких ошибок.

Если на минимальном ШИМе стол безошибочно переходит в нужную точку, то что надо сделать? Может быть, стоит использовать квадратичное замедление вместо линейного? Тогда стол будет подходить к концу движениях на скоростях, близких к минимальному значению. Можно и так. Но оказалось, что есть более простое решение. Достаточно начинать тормозить чуть раньше, как на картинке:


Большое значение имеет правильный выбор минимального значения ШИМ. Если значение слишком велико, стол будет часто ошибаться и перескакивать через заданную точку. Слишком маленькое значение приведёт к тому, что нагруженный стол не сможет тронуться.

Тут родилась идея о том, что столу с тяжёлым грузом надо помогать начать движение. То есть если стол в течение определённого промежутка времени не сдвигается с места, надо слегка увеличивать минимальный ШИМ. Но нужно также предусмотреть и верхний лимит увеличения, чтобы в случае короткого перемещения стол не перескочил через заданную точку.

В процессе тестирования выяснилась странная вещь: вроде бы стол вовремя останавливается, но затем оказывается, что текущая позиция немного смещена. Особенно это заметно, если на столе стоит тяжёлый и неустойчивый предмет, например, канистра с плещущейся водой. Стало понятно, что это происходит в результате вибрации в конце движения. Чтобы дождаться полного окончания движения стола и принять решение о необходимости коррекции, нужно подождать какое-то время. Я решил задачу так: делю время на короткие интервалы по 10 мс и дожидаюсь, пока в течении десяти последних интервалов стол не меняет своего положения. Это позволяет минимизировать время ожидания. Попробовал трясти стол с грузом в конце движения – и класс! Стол ждёт, пока тряска не закончится!

Итак, задача перемещения стола была решена. И решена, как выяснилось, неплохо: калибровочные скетчи и скетчи, измеряющие время и осуществляющие десятки и даже сотни циклов по перемещению стола на 360°, приводили стол в исходное положение с точностью до долей миллиметра.

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

Как мы и предполагали, новый двигатель работал гораздо тише шагового. Тем не менее, во время работы был слышен лёгкий звон. Дело в том, что стандартная частота ШИМ в Ардуино менее 1 кГц, именно она и ощущается при работе мотора. После того, как мы увеличили частоту ШИМ до 15 кГц при помощи библиотеки PWM, звон исчез. Звук работающего двигателя стал приятным и чем-то напоминал звук движений Робокопа из голливудского фильма. После изменения частоты пришлось немного подкорректировать минимальное значение ШИМ в скетче.

Коллекторный двигатель с редуктором, который мы использовали в первом экспериментальном столе Драйвер двигателя – устройство, преобразующее ШИМ в управляющие сигналы

Теперь об управлении. Мы предполагали, что стол будет управляться при помощи проводного пульта. Предыдущий опыт общения с пользователями говорил о том, что длина кабеля должна быть достаточно большой, не менее 5 метров. Когда-то мы пытались использовать беспроводные пульты, но этот опыт был не слишком удачным.

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


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


Ему не нужен драйвер, контроллер у него внутри, и ШИМ можно подавать непосредственно на выходы. Кроме того, не нужно менять частоту ШИМ, он работает одинаково тихо на любой частоте. Позже стало ясно, что это тоже важно.

В один прекрасный момент посмотрели мы на наш пульт и подумали, что как-то он не слишком удобен. Надо крутить энкодер, чтобы попасть в нужный пункт меню, жать кнопку, проваливаться в подменю… Да тут ещё и проблема с дисплеем нарисовалась. Подсоединён он у нас был к двум пинам ардуинки и управлялся по протоколу I2C. Оказалось, что если быстро крутить управляющий энкодер и переключать пункты меню на экране, дисплей начинает глючить, пропускать или путать буквы, а через какое-то время и вовсе зависает.

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

Со средой разработки вопросов не было, это должен быть Xamarin. Во-первых, у меня уже был опыт разработки на этой платформе. А во-вторых, нужно приложение и для Android, и для iOS. Многие фотографы – пижоны, и любят пользоваться айфонами.

Xamarin не предоставляет стандартных средств для работы с bluetooth, поэтому пришлось искать библиотеку. Я остановился на Bluetooth LE. Собственно, и выбора-то особого не было, да и где-то на форумах MSDN сотрудник Microsoft рекомендовал эту библиотеку для работы в Xamarin. На первый взгляд, плагин оставлял впечатление какой-то незавершённости, но потом оказалось, что он вполне рабочий.

О железе: вначале я использовал имеющийся у меня bluetooth модуль HC-6. Он не подходил для полноценной работы, поскольку нам был нужен bluetooth не ниже 4 версии, то есть bluetooth low energy – iOS в отличие от Android не работает со старыми версиями. Но я набросал нечто вроде тестового фреймворка для первых экспериментов. Потом мы перешли на модули JDY-34, вот такие:


Пришло время изучать Bluetooth GATT. И вот что я вам скажу: вроде и Интернет у нас есть, и информации море, а найти то, что тебе нужно, с каждым годом всё сложнее и сложнее. В общем виде оно вроде бы понятно: GATT как иерархическая структура, устройство, сервисы, характеристики, но вот детали…

Вспоминаю прекрасные руководства пользователя по операционным системам, программам и библиотекам 30-летней давности. Любая библиотека имела исчерпывающее описание всех методов и возможностей, это было очевидно и даже не обсуждалось. Написаны они были простым английским языком, и там можно было найти всю необходимую информацию. Кроме руководств своевременно выходили объёмные учебники, детально объясняющие все тонкости и проблемы.

Сейчас всё не так. Фреймворки меняют друг друга с калейдоскопической быстротой. Гайды пишутся, скорее, для галочки, а то их и вовсе нет. Массу времени приходится тратить на сбор информации в Интернете по крупицам… Да, судари мои, куда катится этот мир?

Исходя из архитектуры приложения, мне были нужны две возможности – write, чтобы посылать команды, и notify, чтобы получать ответы и уведомления. Но какую GATT-характеристику следует выбрать? В модуле JDY-34 есть несколько подходящих. Где-то в одном из описаний я нашёл UUID сервиса как в моём модуле и решил, что эту характеристику и надо использовать для записи и нотификации.

В этом и заключалась моя ошибка. Сначала вроде бы всё работало, но потом я стал замечать, что иногда ответы от стола приходят в искажённом виде. Вскоре я понял, что проблема заключается в следующем: приложение отправляет команду столу, но в это самое время от стола приходит очередной токен, и данные в общем буфере портятся. Как оказалось, никакой синхронизации на уровне характеристики нет, то есть запись и чтение могут перекрывать друг друга, и другого выхода, кроме использования раздельных характеристик для write и update нет. К счастью, модуль JDY-34 позволяет сделать это.

В итоге, мобильное приложение получилось таким:

И вот пришло время решать вопрос с комплектующими. Платы Nano были ненадёжны, среди модулей JDY-41 попадались бракованные. Предлагать недешёвое изделие с подобной начинкой – это неуважение к покупателю. Хотелось бы найти хорошие надёжные платы со встроенным bluetooth.

Первое, что мы попробовали, – это ESP32, но она нам не зашла. То ли плата была левая, то ли делали мы что-то неправильно, но нам никак не удавалось заставить работать энкодер.

Потом мы стали смотреть в сторону BLE Nano V3.0 Micro с интегрированным чипом Bluetooth TI CC2540 BLE. Тут вообще интересная история случилась: вроде как и характеристики были такие же, как в модуле JDY-34, вплоть до совпадения UUID, но характеристика для записи не работала. То есть нотификация и чтение работает, а запись – нет.

Хорошо, если найти подходящую плату со встроенным bluetooth модулем не получается, надо хотя бы заменить устаревшие китайские Nano на что-то приличное. Вот в Москве есть в продаже фирменная Nano Every, позиционируется как эволюция традиционной Nano. Но – парадокс! библиотека PWM на ней не работает, и, похоже, возможности устанавливать частоту ШИМ для отдельных пинов нет вовсе. Можно, правда, ускорить системное время, тогда и частота увеличится. Не слишком элегантно, но этот подход работает. Надо только увеличить все временные интервалы, использующиеся в скетче, ведь функции millis и micros будут выдавать ускоренное время.

Тем не менее, такой подход довольно стрёмный. Вот, например, функции чтения в классе Serial используют временную задержку. Выходит, надо её переустанавливать при помощи Serial.setTimeout. А сколько ещё подобных подводных камней?

Под конец нам всё-таки удалось найти плату с интегрированным bluetooth модулем. Это Nano 33 IoT. Эта плата позволяет программно сконструировать в скетче bluetooth-устройство со всеми его сервисами и характеристиками, используя библиотеку ArduinoBLE. Библиотека эта реализует полноценный GATT. Это здорово! Программисты меня поймут – я был впечатлён!

И напоследок о моторах. Бесколлекторный двигатель, конечно, предпочтительней. Он не требует драйвера, но самое главное – не нужно менять частоту ШИМ, двигатель не звенит на стандартной частоте. На самом деле, важнейшей характеристикой является передаточное число, чем оно больше – тем лучше. На достаточно большом передаточном числе стол работает очень устойчиво. Кроме того, можно добиться медленного перемещения стола на минимальном ШИМе, а это важно для безостановочного режима.

Наш финальный выбор – бесщёточный двигатель с передаточным числом 131 и плата Nano 33 IoT.

Кабели для соединения разных фотоаппаратов со столом

Кабели для соединения разных фотоаппаратов со столом

На всякий случай оставлю ссылки на исходники, вдруг кому-то будет интересно:

Складной предметный столик своими руками

Два года назад, возникла потребность приобрести/сделать предметный столик для предметной и макро съёмок. Узнав цены на фирменные предметные столики, совершенно пропало желание его купить (стол который нужен был мне стоил около 9000 рублей). В ходе мозгового штурма родилась идея, реализовав которую, я получил за копейки отличный складной столик.

image

Трафик картинок в статье около 400кб.

Задача

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

Необходимые материалы и инструменты

  • Раскладушка
  • Лист пластика толщиной от 1мм
  • Зажимы для бумаги (самые большие)
  • Ножовка по металлу
Опционально
  • Пластиковые уголки
  • Двухсторонний скотч
  • Утеплитель для труб
  • Сумка от складного «дачного» стола

Реализация

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

Первый этап

Для начала мы должны выбрать раскладушку, это важный и ответственный момент т.к. это основа нашего стола и она должна служить верой и правдой долгие годы.Мой выбор пал на старую советскую детскую раскладушку, она компактнее и идеально подходила под мои требования. Размеры полезной площади в моём случае 60х60 см. Первым делом избавьтесь от всех ненужных пружин, винтов, скобок, ткани это нужно аккуратно демонтировать и отложить в сторону.После этого возьмите ножовку по металлу и отпилите от раскладушки один или два сегмента. Примерно вот так:


У меня получилось вот так:

Моя раскладушка была в плохом состоянии, поэтому старую краску я снял шкуркой и покрасил заново.

Второй этап

Выбор пластика — творческий момент, я выбирал исходя из того что нужна достаточная прочность, чтобы пластик не прогибался под 2-3 килограммами груза и чтобы осталась возможность подсвечивать объект снизу, через пластик.За 2 года аккуратного использования пластик только лишь немного поцарапался, но это неизбежно и его легко заменить.Есть два варианта крепления пластика на «раскладушку». Первый — зажимами для бумаги, второй
пластиковыми уголками. Мне больше понравился второй вариант, хоть мы и теряем возможность свернуть пластик в трубочку, но при этом монтаж фона на стол занимает 2 секунды.

image

Вот как это выглядит:

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

Третий этап

Всё очень просто — в любом строительном магазине покупаем утеплитель для труб диаметром 2см (уточните диаметр труб каркаса раскладушки) и из него изготавливаем мягкие «ножки» для стола. Утеплитель отрезается нужной длины, разрезается с одной стороны и надевается на раму. Результат видно на первой фотографии.

Мы получили отличный стол, с регулируемой спинкой, сменными фонами и легко складывающийся!

image

Фото в сложеном виде:

Регулятор наклона спинки:

image

Примеры работ выполненных на этом столе:

image

image

Если есть вопросы по работе с этим столом, спрашивайте — отвечу. Спасибо за внимание.

Поворотный столик для видео на 3D принтере

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

Статья относится к принтерам:

Я считаю, что видео контент более интересен, чем фото! Поэтому я решил оживить посты своих работ в INSTAGRAM и VK, сделав поворотный столик для видео. Вращающиеся детали можно рассмотреть с разных сторон, а с правильным освещением можно лучше увидеть качество деталей.

Поворотный столик для видео на 3D принтере

Да, можно купить поворотный столик на Aliexpress, но конструктору и владельцу 3D принтеров этот вариант просто оскорбителен и не приемлем )))

Для тех кто не любит читать, можно посмотреть одноименное, расширенное видео:

Итак, давайте приступим.

Требования к конструкции и исходные данные

  • Необходимо спроектировать и изготовить поворотный столик для съемки изделий из доступных комплектующих и печатных деталей.
  • Проводов выходить не должно, питание автономное от батареи.
  • Столик должен вращать изделия массой до 6 кг или больше (зачем не знаю, про запас).
  • Иметь удобное управление и несколько режимов вращения и скорости, значит будет пульт дистанционного управления.
  • Вращающаяся часть должна быть съемной и нескольких цветов, для съемки темных и светлых изделий.
  • Размер столика максимальный (тоже про запас)

Долго думал, какой наибольший размер мне понадобится для съемки деталей и решил сделать по максимуму, что может напечатать мой большой принтер FLYING BEAR TORNADO 2 PRO. Принтер может габарит 360 мм, но я решил округлить до 300 мм.

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

Поворотный столик для видео на 3D принтере

Состав проекта и комплектующие

Поворотный столик состоит из напечатанных на 3Д принтере:

  • основания диметром 300 мм (или 200 мм);
  • ведущей шестерни;
  • ведомой шестерни (или магнитного основания);
  • стоек для плат (13 шт);
  • поворотного столика диаметром 300 мм (или 200 мм);
  • закрывающей шторки;
  • ножек из TPU пластика (3шт).

Так же потребуется крепеж:

  • винт М6х30 DIN912 (1 шт);
  • гайка М6 DIN934 (1 шт);
  • винт М3х6 ISO4380 (4 шт);
  • винт М3х10 ISO4380 (2 шт);
  • винт М3х6 DIN965 (4 шт);
  • винт М3х10 DIN965 (4 шт);
  • гайка М3 DIN934 (4 шт).
  • упорный шариковый подшипник 105х80х19 мм (8116);
  • радиальный шариковый подшипник 626 2Z (626ZZ)
  • 8 шт Магнит с отверстием и зенковкой 10*7*3,5*3 мм
  • Arduino nano
  • TP4056 - Модуль зарядки
  • Аккумулятор 3,7В 5000 мАч (или меньше для столика диаметром 200 мм)
  • XL6009E1 DC-DC повышающий-понижающий преобразователь
  • ULN2003 stepper motor driver board
  • TTP223 модуль сенсорной кнопки емкостной
  • TSOP34836 ИК-приемник 36кГц
  • Пульт ДУ
  • IRF3205 N-канальный мосфет
  • SS8550 PNP транзистор
  • 4шт резистор 10-100 кОм

Сборка

Печатаем все детали по ссылкам в конце статьи, закупаем комплектующие и приступаем к сборке.

Корпусом и несущей деталью является цилиндрическое основание. В основании есть место под большой упорный подшипник размером 105х80х19.

Поворотный столик для видео на 3D принтере

Сверху на подшипник накладывается опора, она же ведомая шестерня и она же магнитное основание для вращающейся части. В нее устанавливается 4 магнита с зенковкой, которые крепятся винтом с потайной головкой М3х8 и гайками М3 с обратной стороны.

Поворотный столик для видео на 3D принтере

Так же в эту деталь установлен радиальный подшипник 626 2Z. Он нужен чтобы центрировать упорный подшипник и не дать ему развалиться, так как конструкция упорного подшипника состоит из 3х составляющих, которые не скреплены между собой. В основание вставляется винт М6х30 DIN912 и все стягивается гайкой М6.

Поворотный столик для видео на 3D принтере

На шаговый двигатель надевается ведущая шестерня. Двигатель устанавливается в основание и фиксируется 2 винтами М3х8 ISO7380.

Поворотный столик для видео на 3D принтере

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

Поворотный столик для видео на 3D принтере

Электронные платки решил крепить своим методом, заложив в конструкцию вот такие стойки типа защелок, которые печатаются отдельно. В основании под стойки имеются плотные отверстия. Запрессовываем в них стойки и немного капаем клея у основания. Под ардуино решил сделать просто прорези под ножки. Аккумулятор крепится планками и винтами М3х6 ISO 7380.

Поворотный столик для видео на 3D принтере

Поворотный столик для видео на 3D принтере

Так же напечатал 3 ножки из TPU пластика, чтобы вся конструкция не скользила. Для установки ножек с обратной стороны основания есть разметка мест установки.

Поворотный столик для видео на 3D принтере

Далее собираю и устанавливаю электронику на своё место по схеме

Поворотный столик для видео на 3D принтере

Поворотный столик для видео на 3D принтере

Ну вроде все собрано!

Управление и режимы работы

Включаем питание нажатием на логотип питания на корпусе, за которым спрятана сенсорная кнопка. Держим пока столик не начнет вращаться.

На пульту нажимаем кнопку «ОК», которая отвечает за пуск\паузу вращения, что бы остановить столик. Я, кстати, использую вот такой пульт.

Поворотный столик для видео на 3D принтере

Если столик бездействует 3 минуты, то питание отключается, для экономии заряда батареи.

Если забыли остановить вращение столика, то через 3 минуты столик остановится и далее выключится питание.

Заключение

Вот этим мне и нравится 3D печать… Есть идея, моделирую, ставлю печать и через некоторое время получаю, то что мне нужно. Больше 5 лет печатаю и не прекращаю этому восхищаться.

Поворотный столик получился очень хорошо! Пробовал поставить на него коробку с 3Д принтером FLYING BEAR GHOST 5 весом 15 кг, он выдержал и вращал ее.

Теперь детальки смотрятся очень красиво и более интересно. А так же можно показать детали со всех сторон и не нужно превозмогая дрожь рук снимать облёт вокруг.

Поворотный стол для 3D-фотосъемки


Для 3D-фотосъёмки небольших предметов часто используют поворотные столы. Предмет ставится на такой стол, после чего фотограф делает снимок и поворачивает стол на определённый угол. Далее процесс повторяется до тех пор, пока предмет не будет сфотографирован со всех сторон. Это занятие достаточно утомительно, поэтому мы решили автоматизировать процесс и собрать свой автоматический поворотный стол с автоспуском.

Что нам понадобится?


Как это собрать?

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

Установите в боковые отверстия стойки для печатных плат и закрепите их винтами M3×10. Эти стойки будут выполнять роль ножек.


Установите винты M3×15 в Arduino Uno. Закрутите на них гайки, чтобы получилась подставка между Arduino Uno и акриловым корпусом. Установите Arduino Uno в предназначенные для платы отверстия в акриле. Крайний винт закрепите стойкой для печатных плат, на оставшиеся винты закрутите гайки.


Установите Troyka-модули в предназначенные для них отверстия. Закрепите их винтами M3×10.


Установите на Arduino Uno Troyka Shield. В пин Vin вставьте красный провод «папа-папа», а в пин GND — чёрный. Второй конец красного провода установите в колодку «+» Stepper'а. Второй конец чёрного провода установите в колодку «-» Stepper'а. Зафиксируйте контакты в колодке винтами. Установите 3-х проводные шлейфы в тройки контактов 5, 6, 7 и 8 Troyka Shield'а. Вторые концы шлейфов просуньте в отверстие рядом с Arduino и обмотайте вокруг перешейка, чтобы избавиться от болтающихся проводов.


Соедините шлейфы с Troyka-модулями. Troyka-Stepper: 5 пин — step, 6 пин — direction, 7 пин — enable. Troyka-Реле — 8 пин.


Слегка отшлифуйте большое отверстие в корпусе столика и два маленьких круга мелкой шкуркой. Немного смажьте отверстие смазкой. Возьмите большой акриловый круг с тремя отверстиями под винт. С помощью сверла или крестовой отвёртки снимите в отверстиях фаску под винты с потайной головкой. Вставьте винты M3×25 с потайной головкой в отверстия и наденьте на них два маленьких круга. Переверните столик, в большое отверстие проденьте получившийся бутерброд и наденьте сверху большую шестерёнку. Затяните винты гайками.


Прикрутите к маленькой шестерёнке втулку мотора винтами M3×10.


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


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


Закрепите маленькую шестерёнку на валу мотора на высоте большой шестерёнки при помощи шестигранного штифтового ключа, идущего в комплекте с втулкой.


Соедините провода мотора с колодками «1234» Troyka-Steppera. Белый и жёлтый провода мотора нам не понадобятся, ведь мы используем униполярный шаговый двигатель в биполярном режиме. Поэтому их можно просто откусить и заизолировать.


Необходимо прикрутить провода, отвечающие за автоспуск к колодкам Troyka-Реле. Провода нужно присоединить к контакту «COM» и «NO».


Другой конец этих проводов идёт в фотоаппарат, к пинам «Земля» и «Затвор». Конструкция ответной части может быть разной. Это может быть как 2,5 мм джэк, так и разъём N3 Cannon (наш случай). О том как подключить эти провода к нужному вам штекеру лучше почитать на специализированных сайтах. Мы просто воспользовались наконечником «мама» от провода «мама-папа». Схема соединения к реле должна быть такой: Оставшийся контакт — автоматическая фокусировка. Мы решили его не использовать.

Готово! Теперь наш вращающийся столик выглядит вот так:

Исходный код

Демонстрация работы устройства

Что можно сделать ещё?

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

Мы не использовали автоматическую фокусировку. Фокусировка производилась перед началом съёмки и далее не менялась. Чтобы перед каждым снимком производилась автоматическая фокусировка, можно добавить ещё одно реле.

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Noncommercial-Share Alike 4.0 International

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