Pull to refresh

Онлайн-фотостудия своими руками

Reading time 4 min
Views 3.2K
Этот материал не ставит перед собой цели разжечь священную войну между людьми, которые считают, что на AS3 можно делать только мультимедийные штуки, и людьми, которых AS3 полностью устраивает. Скорее, это пост о том, как единая среда разработки может сэкономить время.

image

Сама мысль делать сервер на основе Adobe AIR и AS 3.0 можешь показаться кошмарной, но когда перед тобой стоит задача сделать не просто сайт, а целую платформу для создания фотографий, их хранения (во вселенских масштабах), общения людей и, что самое ужасное, для онлайн-управление роботами, то овчинка стоит выделки.

Итак, проект Touch Z-Distance (стартовал 1 сентября, работает до 15 октября). Задача — собрать фотостудию, в которой можно было бы фотографировать моделей через интернет, с помощью роботов, оснащенных камерами. Подобная студия запускается впервые. Что потребовалось для того, чтобы запустить этот амбициозный проект?

1. Спроектировать конструкции роботизированных штативов, которые будут управлять фотоаппаратами TZ20:
– разработка эргономичного дизайна штативов (Autocad, 2D-проектирование, раскладка, подготовка файлов к резке на лазере, фрезе, 43*8 деталей для cборки, 3D-проектирование, размещение электроники);

– подбор материалов для сборки: полистирол, ПВХ, алюминий (гибкий, легкий материал, мобильный);
– разработка механики в тестовых образцах (3 шт.), в каждом последующем устраняя проблемы предыдущего.

image

Проблема: механизмы сервоприводов при уходе в крайнее положение выламывались.
Решение: конструкция штатива позволяет уходить в крайнее положение.


Проблема: износ деталей.
Решение: замена.

2. Запрограммировать штативы (Arduino)
– прошивка плат, калибровка плат, связь с сервомашинами, калибровка серв;

– назначение com-портов, присвоение порядкового имени Arduino;


Проблема: сигнал не проходил через USB-удлинитель.
Решение: отдельное питание для каждого USB удлинителя.


Проблема: серва 24кг/1см давала помехи на Arduino при перегрузке.
Решение: уравновешивание нагрузки на серву.

3. Соединение деталей
– питание Arduino (8 шт.);

– питание сервомашин разной емкости (24 кг/1см, 10 кг/см, 3 кг/см; 64 шт.);

– питание, USB-удлинитель для Arduino (8 шт.).;

– питание контроллеров USB 15 шт.


Проблема: перезагрузка Arduino.
Решение: устранение недостатка питания, отдельное питание на Arduino (отдельный блок с сетевым фильтром), отдельное питание USB-кабеля.



Проблема: отсутствие штатного постоянного питания.
Решение: распака эмулятора аккумулятора от постоянного блока питания;
подключение веб-камер, назначение имени.

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

Требование: три степени свободы для штатива, три степени свободы для механики пальца (уникальный образец механики в данном масштабе (мини ЧПУ)), работа штативов и фотоаппаратов на протяжении 10 часов в течение 45 дней.

4. Сделать выгрузку фотографий с фотоаппаратов с помощью Wi-Fi флеш-карт
— настройка локальной сети wi-fi флешек, назначение имени флешек.

5. Связать три сервера с помощью AIR (на одном из серверов хранится 1,5 террабайта фотографий).

6. Девушки, макияж, одежда
Основная идея студии — модели, и их (моделей) нужно было запрограммировать на то, чтобы они фотографировались перед восемью механическими роботами:) Моделей, к слову, было 32.

image

7. Студия и свет (помещение sunlightstudio.ru)
– аренда фотостудии;
– установка студийного света.

image

Список оборудования, которое использовалось и закупалось в разных странах:
– Wi-Fi flash drive (Америка);

– закупка Arduino, сервомашин (Китай);

– комплектующие для сборки пластик, клеи и т. д. (Китай, Россия).

Итак, что касается студии, то всё разрабатывалось на языке ActionScript 3.0 в среде разработки FlashDevelop, так как это был самый быстрый способ, к тому же Adobe AIR включает в себя полный спектр по управлению медиа. Будь это другая среда или язык, то пришлось бы использовать множество разных технологий, и не факт что все это работало бы нормально.

image

Главными преимуществами AIR перед остальными средами разработки является скорость разработки и то, что не нужно переключаться между множеством программ — взаимодействие между модулями идет на «нативном» (интуитивном) уровне, не нужно каждый раз добиваться совместимости: все и так совместимо.

Возможно, мы бы столкнулись с какими-то ограничениями по производительности, будь у нас задача типа конвертации видео или задача обработки данных (медиа) в большом количестве (но даже в этом случае можно было бы просто использовать другие программы но в связке с AIR).

Из-за того, что нужно было разделить потоки пользователей (чтобы видели сайт все, но управляли — по-очереди), возникали проблемы в программной части с очередями фотографий и людей на съемку. Была переписана очередь, которая была изначально на сервере, также постоянно дорабатывались все модули приложения для повышения стабильности, для того чтобы учесть различные факторы (например, пропал интернет в студии или упал сервер).

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

image

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

Помимо программной части, возникали проблемы с железом, но это уже другая история…



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

Напоследок, небольшое руководство по проекту!


Вопросы, комментарии?


UPD!

ДА, КСТАТИ! КЛУБНИЧКА!

Сегодня и завтра с 00.00 мы будем немного шалить! Не буду раскрывать все карты. Но вот может быть словосочетание «легкий стриптиз за лайки» что-то кому-то скажет:) Не забудьте заглянуть ночью!

image
Tags:
Hubs:
+68
Comments 46
Comments Comments 46

Articles