Как стать автором
Обновить

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

Время на прочтение4 мин
Количество просмотров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
Теги:
Хабы:
Всего голосов 82: ↑75 и ↓7+68
Комментарии46

Публикации