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

    Этот материал не ставит перед собой цели разжечь священную войну между людьми, которые считают, что на 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
    Поделиться публикацией

    Комментарии 46

      +2
      зеркалку собираетесь прикручивать?
        +4
        Пока нет, поскольку спонсором выступает Панасоник и беззеркальные фотоаппараты Lumix TZ20.

        К тому же, у них сенсорный экран, и наши роботы могут водить по нему пальцами — это было дополнительным челленджем:) Так что оставим их!
          –1
          Зеркалка накроется быстро, всё-таки механический затвор
            0
            Я ошибаюсь? Хоть бы пояснили. Насколько я помню, ресурс затвора (гарантированый) для непрофессиональных зеркалок — 50000 срабатываний. Может и дольше проработать это но уже гарантировано. В онлайн-фотостудии щёлкают примерно раз в 5-10 секунд. Получается где-то 300 часов протянет, а это достаточно немного при ежедневном функционировании.
          +3
          Чумовой сервис, мне очень понравился! Буду всем советовать.
            +2
            Спасибо! Мы старались:)
            +1
            Очень круто. А от моделей какие отзывы?
              +1
              примерно вот такие:) www.youtube.com/watch?v=31eZ6coQTW4
                +1
                Несобственные какие-то :)
                  0
                  Просто они привыкли работать на камеру)
              0
              На всякий случай положу сюда ссылку на предыдущий топик об этом сервисе.
                0
                Спасибо. Это писал человек, не имеющий никакого отношения к проекту, кстати. Но все равно, спасибо ему:)
                +1
                Почему сервис будет работать ещё всего 2 дня? Не будет постоянной работы сервиса?
                  0
                  Ну, достаточно дорог проект в ежедневном обслуживании. Мы сейчас обсуждаем возможное продолжение проекта в каком-либо виде.
                    0
                    Очевидно, наверное, но: покупаем «кредиты», которые тратим на время на сервере. +реклама. +платное участие в фотостудии в качестве модели.
                      +11
                      Интересные мысли, спасибо!

                      Порностудию платную по ночам еще можно открыть!:)
                        0
                        Монетизация, чую, будет бешеная :) Но ночью тогда кредиты должны стоить в 3 раза дороже
                      +3
                      Как вариант — собрат робота-модель и пустить управление с инета )))
                      При определенной надежности всей конструкции будет практически полная автономность )
                        +1
                        Это ОК!

                        Кииииборги! Они заполоняют планету!:)
                          +1
                          А уж если совместить с мыслью об порностудии, то полет фантазии вообще безграничный :)
                            +1
                            ОК, Онлайн-порностудия своими руками

                            Как это сделано:
                            1. habrahabr.ru/blogs/crazydev/130399/
                            2. habrahabr.ru/blogs/robot/123658/
                              0
                              Точно, почти полное руководство уже есть на хабре, осталось только собрать все и всех вместе :) Думаю коммерческий успех обеспечен.
                      +2
                      Круто) даешь прошивку моделей
                        +4
                        ДА, КСТАТИ! КЛУБНИЧКА!

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

                        image
                          +5
                          Вот это я понимаю интерактив!
                            0
                            А чего, в два часа ночи уже всё, все баиньки? :)
                            0
                            Нет слов! А монетизация?
                              0
                              Это же спонсируемый проект. То есть рекламный. Монетизация = рекламный бюджет.
                              +1
                              Можно брать плату за то чтобы встать в начало очереди. Например: кто больше внес — тот первый в очереди. Никаких тарифов, не хочешь ждать — плати, не хочешь долго ждать — плати, но поменьше.
                                0
                                Класс! А что потом? Не планируется все запаковать в «удаленная студия своими руками», чтобы можно было купить и собрать что-то подобное?
                                  0
                                  Ваш сервис глючит (на нажатие кнопок не отзывается), не отдаёт фотографии.
                                    0
                                    Безууумие)) Не, заниматься прикольной фигнёй за финансирование — это круто. Но вот как вы сумели объяснить Панасонику, чтобы они вам всё это проспонсировали?)))
                                      0
                                      Ну движуха-то пошла отличная, а для спонсора именно это и требуется
                                        0
                                        Гипотеза. Сначала была идея сделать нечто столь значительное и интересное с беззеркальными фотоаппаратами Lumix TZ20, как для людей — так и для хабралюдей в особенности. Нашли команду, придумавшую (предложившую) чудесный проект. И вот мы видим результат.
                                          0
                                          Эээх, жаль нас не нашли :-) Немного завидую коллегам
                                      0
                                      Молодцы! Повезло вам со спонсором :-) Я вот примерно таким же занимаюсь (управление через инет всякими железками) но вечная проблема — железо всё самому закупать приходится, в итоге бюджет семейный трещит жена нервничает и всё такое. Если не секрет, сколько человек занято было для реализации этого проекта? Я вот фактически один, плюс второй человек иногда советом помогает. Вечная проблема с оформлением так как дизайнера нет… Эх. А насчёт «выпускников МГУ» — у меня незаконченное высшее (правда, очень подходящее), однако делу это не мешает :-)
                                        0
                                        Вот это не понял «Проблема: компьютер не поддерживает одновременно более одной веб-камеры.» У нас один комп одновременно 4 usb-вебки обрабатывает, питания USB хватает. Абсолютно безо всяких ухищрений. Наши вебки такие же как у вас (судя по фото №2 — Logitech Pro 9000) две штуки и две Logitech C910. Почему у вас не заработало? Логитековский софт из коробки сразу несколько камер позволяет настраивать, тут тоже проблемы нет.
                                          0
                                          Фон очень напоминает пандору (которая pandora.com)
                                            +2
                                            Стриптиз онлайн! Только сейчас, только для вас! Не пропусти, Хабр! www.touchz.ru
                                              +2
                                              И главное не наврали про клубничку! Я тут немного натырыл, пока вроде ролики ещё не запилены www.g0l.ru/blog/n3106 Устроителям зачот полный.
                                                0
                                                Мы честны как пионеры
                                              0
                                              Это не «беззеркальная камера». Некорректно так называть обычную Travel Zoom мыльницу.
                                                0
                                                Проект чудесный, а вот реализация мне как-то не понравилась. Мне абсолютно плевать, на какой там технологии вы что делали, но у меня на двухядерном процессоре и с GeForce 8600GT (которая хоть уже и не очень новая, но чудесно тянет, например, FullHD-видео) на вашем сайте адски тормозит даже скроллинг страницы.
                                                  0
                                                  Ах, да, и ещё: умоляю вас и всех остальных разработчиков любых приложений, интегрированных с Facebook: либо не запрашивайте разрешение постить на стену, либо прямо рядом с кнопкой поясняйте, зачем оно вам вообще нужно.
                                                  В идеале, вы должны подробно описать, что и когда (и спрашивая ли у меня разрешения) вы будете постить и поставить рядом чекбокс «да, я действительно этого хочу». Если чекбокс не установлен, разрешение запрашивать не нужно и, соответственно, предлагать мне функционал, связанный с постингом на стену, тоже.
                                                  0
                                                  А можно поинтересоваться — чьи сервоприводы использовали? Кто производитель?
                                                    0
                                                    Уточню чуть позже

                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                  Самое читаемое