Автозапуск для видеокамеры

logo lanc

Предисловие. Хвостик Иа

Эта увлекательная и познавательная история началась, как обычно, очень безобидно. Подошел ко мне как-то один из наших руководителей и сказал, что хочет поставить в студии ещё одну камеру на технический план. Кто не знает: это когда в кадре общий вид студии с проводами, камерами, фонарями и прочими атрибутами студии, которые обычно скрыты от глаз. «В общем дел то на полдня» подумал я тогда…
У нас в загашнике лежала маленькая, но очень удобная камера Canon XA10 с HDMI выходом, её и решили повесить на ферму освещения, на поворотный механизм от софита.
И, казалось бы, подключаем к HDMI-SDI конвертеру, подаём питание и радуемся. И вот начались приключения, когда не ждали. Подать питание на камеру оказалось мало. Что бы её включить, нужно нажать на кнопку POWER. «И че такого?» спросишь ты, дорогой читатель. А проблема в том, что эта драная кнопка на корпусе камеры, которая подвешена на высоте 3,5 – 4 метра, и каждый раз лезть на стремянку… в общем дежурный инженер меня бы за такие задачи подвесил бы на той самой ферме освещения, воспользовавшись той самой стремянкой. И я бы даже не стал его винить за это. Можно конечно же использовать пульт ДУ из комплекта камеры, но проблема в том, что он был безвременно утерян. Ну что ж, надо решать ребус.
И тут, внезапно обнаружился на камере скучный и почти бесполезный (ох и глупая мысль) разъем TRS 2,5 mm, он же Tip Ring Sleeve, он же в простонародье jack 2,5 мм.

камера canon xa10

И подпись на нём такая скромная «remote». Разъем этот для проводного дистанционного управления камерой. Покурив немного гугл, оказалось, что это протокол LANC (Logic Application Control Bus). Через эту шину можно подавать камере команды управления. В том числе «спать» и «просыпаться». Но нам то нужно не выводить камеру из «stand by», а именно включать её (да! кто не в курсе, это оказались разные состояния). Что там с включением? Порывшись ещё немного, я понял, что такой команды нет. А всё потому, что питание на разъем lanc приходит (внимание) ТОЛЬКО когда камера включена! «Блин, разрабы, вы серьёзно?» подумал уже я, и почитав далее, как бы услышал ответ разработчиков «ДА, бл*ь, серьёзно. Рукожоп ты наш, читай описание LANC до конца!». А там человеческим по белому написано:

хочешь включать камеру? Просто замкни кратковременно lanc на землю, и будет тебе счастье!

И вот он ответ: взял я разъем этот, припаял к нему шнур пару метров и кнопку на другом конце. Вуа ля! Работает! Но я был бы не я, если бы история на этом закончилась.

Решение то топорное, колхозное, бесявое в общем. Ходил я вокруг этого хвоста и что-то меня коробило от него. Последней каплей был тот самый руководитель, который пришел принимать работу. Посмотрел он, посмеялся и предложил «повесить на конец кисточку. «Получится как хвостик ослика Иа». Мы все поржали, но мысль о том, что кто-то усомнился в моей мощи можно и нужно сделать лучше, меня доконала. Смеркалось…

Глава 1. Стрельба из пушки по воробьям

Следующим утром я решил полностью автоматизировать включение. Но собрать простое устройство, которое будет прижимать шину данных lanc к земле, пока не придёт питание на камеру, недостаточно. Дело в том, что при подаче питания камере нужно пару секунд что бы загрузиться, считать все начальные состояния портов и т.д. А это значит, что шину нужно замыкать на землю уже после того как камера это сделает. Иначе она не отреагирует на наши танцы с бубном. Значит нам в устройстве нужна линия задержки. Т.е. помимо микросхем элементарной логики, потребуется микросхема таймера. И не будем забывать, что это устройство должно питаться от отдельного источника т.к. питание на разъем lanc не поступает пока камера не включится. А это означает, что не плохо было бы гальванически развязать наш девайс с камерой. Иначе говоря, ещё и оптрон нужен. «Т.е. что бы включить долбаную камеру, мне придется строить девайс из трех микросхем? да ещё и блок питания отдельный?» Ну нет. Я хочу миниатюризацию. Что бы устройство в тот самый разъем TRS влезало! Значит пришло время…

Нет! Не Нанка на изнанку! Нет, не Arduino! Да я сам в шоке, но сегодня у нас на завтрак PIC12F629. Контроллер очень простой и маленький, в корпусе SO8. К нему подбираем самую маленькую оптопару и получаем такую вот схему:

схема

Конечно, мощности даже этого контроллера для нашей задачи с лихвой, но меня не покидала маниакальная мысль уместить всё в разъем. А поскольку рядом с камерой необходимо было поставить HDMI-SDI конвертер, который питается через USB-C, решено было использовать один блок питания 5 вольт с разветвителем на всех страждущих.

Глава 2. Время творить

Набираем рассыпухи:

набор элементов

Разъемы и микроконтроллер куплены в магазине, а вот оптрон PS2761 бы найден в мёртвом заряднике от ноутбука. кусочек стеклотекстолита раскопал в запасах (лучше брать как можно тоньше). Монетка для оценки масштаба.

Рисуем, пожалуй, «самую большую плату» в моей жизни. Размер 14х7 мм:

макет платы

подготавливаем стеклотекстолит и методом лазерного утюга накатываем рисунок:

подготовка текстолита

далее разводим «самую большую порцию» раствора для травки плат и кидаем туда нашу заготовку платы:

ингридиенты для раствора

травление pcb

Я использую раствор лимонной кислоты с солью в перекиси водорода. Это безопасней и проще. И результат более предсказуемый:

pcbМонетка для масштаба.

После травки плату лудим / паяем и на разъем примеряем:

микроплата

устройство в разъеме

Что бы провод корпуса разъема не мешался, пришлось проточить паз в плате надфилем.

Глава 3. Время кодить

Для программирования контроллера нам потребуется среда разработки MPLAB, компилятор XC и программатор (у меня давным давно был куплен PicKit 3) Или, если ты не хочешь лезть в программирование, мой дорогой любитель миниатюризации:

в архиве проекта ты найдешь готовый скомпилированный файл прошивки. Чем и как его залить в микроконтроллер – дело каждого индивидуальное.

Код до безумия примитивный:

все #pragma и #define задают начальную конфигурацию контроллера и определяют понятие задержки в миллисекундах. Далее в main мы задаем калибровочную константу для калибровки внутреннего генератора, разворачиваем все порты контроллера на выход, что бы не ловили помехи всякие, задаем на всех выходах 0 и отключаем компаратор (не нужен он нам).

А далее просто ждем 5 секунд (этого должно хватить с запасом, что бы любая камера успела загрузиться), даем сигнал на оптрон через порт GPIO5 на 1 сек (ну что бы даже самая тормозная камера поняла, что мы от неё хотим) и после этого отправляем наш микроконтроллер спать, что бы он вообще ничего не потреблял.
Как любит говорить тот самый руководитель «Всё просто, как газета “гудок”».

Прошиваем этот код в контроллер и собираем всю конструкцию:

разъем trs

Наш «аппаратный инжектор микропрограммного кода» готов. Похоже, что внутри такой сложный девайс?
Пихаем наше чудо устройство в разъем камеры, подаём питание одновременно на камеру, конвертер и наш девайс и через 5 секунд радуемся как дети.

Заключение

Вот такой вот агрегат в итоге висит у нас в студии для съемки технических планов:

камера на подвесе

В очередной раз убеждаюсь, что задачи типа «просто включить», «просто посчитать время», и другие с приставкой «просто» – это чистой воды обман и манипуляция. Ни черта — это не просто! Из таких вот «просто», как правило, рождаются шахтёрские ребусы, которые обычные люди предпочитают обходить стороной и идти более простым, но от этого ни фига не правильным путём. В общем, пользуйся своими мозгами правильно, дорогой читатель.

ИСХОДНИКИ ПРОЕКТА

Добавить комментарий

Ваш адрес электронной почты не будет опубликован.Обязательные поля помечены *

* Все комментарии проходят предмодерацию.