В статье рассмотрена модернизация программного обеспечения открытого проекта поворотного предметного стола для 3D-фото Photopizza. 3D-фото-360— это фотографии предмета со всех сторон, которые пользователь может вращать. Я думаю многие видели такое на страницах продвинутых интернет-магазинов. Использовался открытый проект Photopizza.
Взяв за основу проект полностью изменив программу. По причине:
- использовалась другая элементная база (другая клавиатура, дисплей, драйвер двигателей);
- введен дополнительный функционал для режима снятия 3D-фото-360;
- введен режим калибровки;
- введены дополнительные режимы вращения при использовании платформы в качестве поворотной витрины.
Платформа изготавливалась из ПВХ, т.к. кусками найти нереально, а покупать лист 6 кв.м за 20000 руб это слишком дорого.
Внешний вид поворотной платформы после сборки.
Электрическая схема моего варианта поворотного стола
Функционал. Программы вращения хранятся в памяти EEPROM. Каждая программа имеет следующие настройки
- поворот платформы (угол поворота от начальной
- шаг (в градусах)
- скорость
- направление ( — влево,+ вправо, +-, -+)
- количество повторений поворота — если 0 — бесконечно
- съемка автомат на каждом шаге — yes,no
- пауза после каждого шага — yes,no
- резерв
- длительность паузы — мс
Каждый параметр в памяти EEPROM занимает 2 байта, на программу — 18 байт. 0 и 1 байты EEPROM — общее количество программ.
Была использована следующая клавиатура (используем 9 клавиш) и следующий ИК-пульт (также используем 9 клавиш)
Т.к. в программе 4 режима (просмотра программ, редактирования программ,выполнения программы и режим калибровки) приведу таблицу назначения клавиш в разных режимах.
Клавиша клавиатуры |
Клавиша ИК пульта |
Режим просмотра |
Режим редактирования |
Режим выполнения программы |
Режим калибровки |
---|---|---|---|---|---|
4 | R |
Смена режима |
Смена режима |
Смена режима |
|
5 | G |
Пред. программа |
Пред. программа |
||
6 | B |
След. программа |
След. программа |
||
7 | Добавить программу | Сохранить изменения в программе | |||
8 |
Пред. параметр |
Пред. параметр |
|||
9 |
След. параметр |
След. параметр |
|||
* | Удалить тек. программу | Не сохранять изменения в программе | |||
0 | Запуск калибровки | Декремент текущего параметра | |||
# | Запуск тек. программы | Инкремент текущего параметра |
Смена режима(просмотр) |
Прерывание калибровки |
Зеркальной камеры в наличие нет, поэтому для съемок использовалась видеокамера Sony HDR-SR10E
Снимок делаем либо программно отправкой IR-кода, с помощью инфракрасного светодиода, либо вручную с помощью с помощью проводного пульта.
На данный момент делаю вручную (код отправки ИК-кода задокументирован). Скетч программы можно скачать по ссылке ниже. Использовались библиотеки IRRemote, Keypad, AccelStepper.
Далее копируем фотографии на комп, обрабатываем в фотошоп или gimp (пока этот этап я пропустил).
Для вставки 3D-360 на сайт использую скрипт 3dreader.ru (ссылка последнее время неактивна). И результат можно посмотреть здесь (отменить блокирование всплывающих окон)
Что необходимо доделать, чтобы был более-менее приемлемый результат (непрофессиональный)
- переход на Bluetooth управление с телефона Android;
- автоматизировать калибровку (добавить датчики Холла);
- покупка простой зеркальной камеры и недорогого оборудования для съемки (прожектора, стойки);
- обработка фото в фотошопе.
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
Arduino | Плата Arduino | Arduino Nano 3.0 | 1 | |||
WH1602 | LCD-дисплей | WH1602 | 1 | |||
A4988 | Драйвер шагового двигателя | A4988 | 1 | |||
NEMA17 | Шаговый двигатель | NEMA17 | 1 | |||
Клавиатура | Клавиатура матричная 4×4 | 1 | ||||
Пульт ИК | 1 | |||||
TSOP3128 | ИК — приемник | TSOP3128 | 1 | |||
R1 | Резистор подстроечный | 10 кОм | 1 | |||
R2 | Резистор | 100 Ом | 1 | |||
R3 | Резистор | 1 | ||||
Конденсатор | 10 мкФ 16В | 2 | ||||
Конденсатор | 0.1 мкФ | 3 | ||||
T1 | Транзистор | 1 | ||||
DIR1 | Инфракрасный светодиод | 1 | ||||