Оглавление:

Контроллер Arduino для автоматизированной фотографии продукта на 360 °: 5 шагов (с изображениями)
Контроллер Arduino для автоматизированной фотографии продукта на 360 °: 5 шагов (с изображениями)

Видео: Контроллер Arduino для автоматизированной фотографии продукта на 360 °: 5 шагов (с изображениями)

Видео: Контроллер Arduino для автоматизированной фотографии продукта на 360 °: 5 шагов (с изображениями)
Видео: #ArduBlock 2.0 - Фото товара в 360 градусов, поворотный стол на Arduino 2024, Июль
Anonim
Image
Image
Соберите детали и файлы
Соберите детали и файлы

Давайте создадим контроллер на базе Arduino, который управляет шаговым двигателем и затвором камеры. Вместе с поворотным столом с приводом от шагового двигателя это мощная и недорогая система для автоматизированной фотосъемки или фотограмметрии продуктов на 360 °. Автоматический затвор камеры основан на отличной библиотеке от «Себастьяна Сетца» и работает с инфракрасными камерами Nikon, Canon, Minolta, Olympus, Pentax, Sony.

Я подготовил две версии контроллера:

  • Базовая версия, управляемая простой кнопкой и индикатором состояния.
  • Расширенная версия, которая использует экран 16x2 LCD + клавиатура и, следовательно, имеет меню для изменения переменных «на лету», а не только в исходном коде.

Что делает контроллер?

Если вы запускаете «фотосъемку» нажатием кнопки, поворотный стол совершает полный оборот, разделенный на заранее определенное количество шагов. После каждого шага поворота контроллер делает небольшой перерыв, а затем запускает камеру. Вы сможете изменить переменные скорости вращения, времени задержки и количества шагов в исходном коде (для простой версии контроллера) или в меню дисплея (расширенная версия контроллера).

Шаг 1: Соберите детали и файлы

Соберите детали и файлы
Соберите детали и файлы
Соберите детали и файлы
Соберите детали и файлы

Части:

  • Arduino Uno (или аналогичный)
  • Макетная плата (подходит для макета половинного размера)
  • Драйвер шагового двигателя Easydriver
  • 2X радиатор для Easydriver (необязательно, но НАСТОЯТЕЛЬНО рекомендуется) https://www.sparkfun.com/products/11510 Вам понадобится термолента, чтобы прикрепить радиатор к микросхеме. Если вы заказываете радиатор, убедитесь, что термолента включена в комплект или может быть заказана отдельно.
  • Инфракрасный светодиод 950 нм (для запуска ИК-камеры)
  • Резистор 220 Ом (предварительные резисторы для инфракрасного светодиода)
  • Пьезо-звуковой элемент (необязательно, если вы хотите иметь звуки обратной связи)
  • Некоторые перемычки
  • Внешний источник питания для шагового двигателя. Я получил хороший опыт с адаптером питания 12 В 1 А для управления шаговым двигателем 1 А NEMA 17 от Trinamic. Еще у меня был адаптер питания 24V 3A. Плата Easydriver поддерживает до 30 В и 750 мА на фазу. Подробнее о характеристиках easydriver здесь:
  • Разъем для внешнего источника питания шагового двигателя
  • Биполярный шаговый двигатель NEMA 17 и поворотный стол, например FluxGarage «Автоматический поворотный стол с шаговым двигателем» Ссылка:

Добавить для базового кнопочного контроллера…

  • Нажать кнопку
  • Резистор 10кОм (для кнопки)
  • LED (индикатор состояния)
  • Резистор 220 Ом (предварительные резисторы для светодиода состояния)

… ИЛИ добавьте для расширенного контроллера с меню дисплея + клавиатуры:

Комплект Adafruit LCD Shield с дисплеем 16x2 символов, например

Загрузите коды Arduino и диаграммы Fritzing для базового и расширенного контроллера:

Если вы хотите открыть документ Fritzing для расширенного контроллера, обязательно загрузите и установите элементы adafruit:

Обратите внимание: на фотографиях я использую FluxGarage «Основание мастера» и FluxGarage «Переднюю пластину для ЖК-дисплея 16x2 + экран клавиатуры». Использование этих элементов не является обязательным, если вы также хотите их использовать, нажмите на ссылки для соответствующих инструкций.

Шаг 2: соберите схему

Собрать схему
Собрать схему
Собрать схему
Собрать схему
Собрать схему
Собрать схему

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

Подключение: Подключите детали, как показано на графике Fritzing для базового или расширенного контроллера. Загрузите диаграммы Фиртзинга на github, найдите ссылки на шаге 1.

Дважды проверьте, все ли подключено следующим образом:

  • Цифровой вывод 02 Arduino = вывод Easydriver
  • Цифровой вывод Arduino 03 = шаговый вывод Easydriver
  • Цифровой вывод Arduino 09 = выход для пьезо
  • Цифровой контакт 12 Arduino = выход для инфракрасного светодиода (поместите предварительный резистор 220 Ом перед светодиодом)

+ для базового контроллера:

  • Цифровой вывод Arduino 04 = вход для кнопки (поместите резистор 10 кОм перед заземлением кнопки)
  • Цифровой вывод 13 Arduino = выход для светодиода состояния (поместите предварительный резистор 220 Ом перед светодиодом)

+ для Advanced Controller:

Сложите экран дисплея + клавиатуры на Arduino, на самом деле используются эти контакты: аналоговый контакт Arduino A4 + A5 и 5V + GND

Подключение шагового двигателя: Подключение биполярных шаговых двигателей (4 провода) связано с подключением двух катушек (A и B) двигателя к правым контактам платы easydriver. Взгляните на рисунок в середине этой страницы и на спецификации вашего конкретного шагового двигателя:

Вы также можете найти дополнительную информацию о подключении вашего шагового двигателя и Easydriver здесь:

Подключение внешнего источника питания Плата Easydriver имеет два отдельных контакта питания в правом верхнем углу (M + и заземление). В то время как сама плата получает питание от Arduino, отдельный вход обеспечивает питание для шагового двигателя. Если вы используете стандартный адаптер питания и розетку, вам следует подключить провод «+» к контакту «M +» easydriver, а провод «-» - к контакту «GND» easydriver. Обычно «+» находится на внутренней стороне, а «-» - на внешней стороне вилки. Но будьте осторожны, некоторые адаптеры питания позволяют переключать полярность! Помните об этом, если вы подключите easydriver неправильно, он может и, вероятно, будет поврежден.

Шаг 3. Загрузите исходный код в Arduino

Загрузить исходный код в Arduino
Загрузить исходный код в Arduino

Загрузите исходный код Arduino на Github:

Скачать Arduino IDE:

www.arduino.cc/en/Main/Software

Загрузите сторонние библиотеки и скопируйте их в папку библиотеки вашей IDE:… для шторки камеры: https://github.com/dharmapurikar/Arduino/tree/mast…… для дисплея Adafruit 16x2 + Keypad Shield: https:// github.com/adafruit/Adafruit-RGB-LCD-Shiel…

Код протестирован и отлично работает с последней версией Arduino IDE (1.8.7 для Windows) и Arduino Uno + драйвер шагового двигателя Easydriver + дисплей Adafruit 16x2 + экран клавиатуры, + шаговый двигатель Trinamic и камера Nikon D60.

Настройте код для работы с вашей конкретной камерой: Как уже упоминалось, я использовал библиотеку «multiCameraIrControl.h» Себастьяна Сетца. Чтобы это работало для вашей камеры, вы должны удалить косые черты в комментариях перед названием производителя камеры и, конечно же, добавить косые черты перед названиями всех других производителей:

// Установка типа камеры Nikon D5000 (12); // Canon D5 (12); // Minolta A900 (12); // Olympus E5 (12); // Pentax K7 (12); // Sony A900 (12);

Сделайте аналогичную настройку в функции «привязка»:

// Сделать снимок без снимка () {D5000.shotNow (); // D5.shotNow (); // A900.shotNow (); // E5.shotNow (); // K7.shotNow (); // A900.shotNow ();}

Обратите внимание: к сожалению, я еще не смог протестировать другие камеры с ИК-датчиком, кроме моего собственного Nikon D60. Библиотека затвора камеры должна работать с несколькими камерами разных производителей, а не только с конкретными моделями камер, упомянутыми в коде. Было бы здорово, если бы вы оставили комментарий о своем опыте работы с камерой Canon, Minolta, Olympus, Pentax или Sony.

Шаг 4: Управляйте контроллером

Управляйте контроллером
Управляйте контроллером
Управляйте контроллером
Управляйте контроллером

Что делает код или контроллер? Если нажать кнопку, запускается «фотосъемка». Каждая фотосессия представляет собой конечный цикл следующей последовательности:

  1. Камера срабатывает
  2. Короткая задержка
  3. Шаговый двигатель будет вращаться на заданное количество градусов
  4. Короткая задержка

Фотосъемка основана на наборе переменных, которые определяют ее точное поведение. Вы можете изменить эти переменные в исходном коде (для простой версии контроллера) или в меню дисплея (расширенная версия контроллера).

Управление базовым контроллером:

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

Переменные фотосъемки можно найти в верхней части кода, и их можно изменить, чтобы изменить фотосъемку. Ниже вы можете увидеть начальные значения:

int shootingsteps = 20; // количество шагов для полного оборота должно быть 10, 20 или 40 float shootingspeed = 0,01; // скорость вращения: любое число от.01 -> 1, где 1 - самая быстрая - чем медленнее, тем сильнее (медленнее = лучше для «тяжелых» объектов) int Shootingdelay = 1000; // разрыв в миллисекундах до и после каждого поворота

Управление расширенным контроллером:

При включении расширенного контроллера на 4 секунды отображается логотип FluxGarage. После этого контроллер готов к работе и показывает список настраиваемого набора переменных:

  • ST = количество шагов, может быть 10, 20 или 40
  • SP = скорость вращения, может быть от 1 до 5, а 1 - самый медленный.
  • DE = Задержка до и после каждого шага в десятые доли секунды, может быть 5, 10, 25, 50.
  • LI = определяет, включена или выключена фоновая подсветка дисплея во время съемки. Может быть 1 = включено или 0 = выключено

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

Шаг 5: начните съемку

Начать съемку
Начать съемку

Если вы создали свой собственный контроллер + проигрыватель винила и ваша камера на месте, вы готовы приступить к съемке… почти. Позвольте мне поделиться некоторыми выводами из моих собственных экспериментов:

  • Используйте легкую палатку, чтобы равномерно освещать объекты. На сайте Instructables.com вы можете найти множество хороших руководств, в которых показано, как создать лайтбокс своими руками. Также есть недорогие текстильные легкие палатки, которые можно купить во многих интернет-магазинах.
  • Используйте лампочки с одинаковой цветовой температурой (Кельвин).
  • Сфокусируйте объект на поворотном столе вручную, отключите автофокус камеры
  • Выключите стабилизатор изображения камеры, если работаете со штативом.
  • Выберите диапазон измерения на заднем плане, где снимаемый объект не появится. Таким образом вы избежите мерцания в последовательности изображений. Другой способ - вручную установить время экспозиции камеры и т. Д.
  • Если вы хотите добавить свои 360-градусные изображения на свой веб-сайт, используйте плагины javascript, такие как «Jquery Reel Plugin» от Петра Вострела, псевдоним «PISI» → https://jquery.vostrel.cz/reel less360 Degrees Product Viewer »от« Codyhouse «→

Это результат одной из моих съемок (созданной с использованием настроек выше):

Рекомендуемые: