Электронная хлопушка IMSLATE-1. Первый прототип
После формирования идеи решено было действовать. Какие-то детали я купил в городе. Многое заказал через интернет и до сих пор это едет разными посылками.
Электроника
Макет я решил собрать на базе Arduino. Микроконтроллер ATmega32U4 — 8-бит AVR.
В прототипе использовал Real Time Clock чип без TXCO, это такая штука термокопенсация — нужна чтобы кристалл при любой температуре выдавал стабильную частоту. А нам это невероятно важно, ведь мы считаем таймкод. Без этой штуки стабильная работа при перепадах не гарантируется. Зная как снимается кино, от -30 до +30 в среднем, было решено заменить его на чип с TXCO в следующей итерации.
ПО
Больше всего трудностей было с ПО. Меню и управление кнопками у меня не заняло много времени. А вот работа с таймерами, прерываниями и битами — для меня была в новинку, поэтому я потратил на это кучу времени. Сама отладка свелась к эмуляции использования макета хлопушки в условиях похожих на продакшн. Я попробовал поснимать тестовые сцены, а потом сверял таймкод и все ли получится так как хотел.
Полноценная отладка предстоит, когда соберу корпус.
Работа хлопушки
Датчик Холла реагирует на магнитное поле. На верхней доске будет магнит, а на корпусе, на верхней доске собственно сам датчик. Это намного надежнее электрического контакта.
В данный момент я вывел кнопку, нажимая на которую происходит «хлопок». Дубль прибавляется, все работает. В планах приладить датчик Холла.
Кроме того сейчас есть кнопки управления Roll, Scene (+ будет еще Take). И три кнопки относящиеся к настройке, это: Menu, ▲, ▼.
Некоторые решения #
Первоначально я хотел использовать семисегментные индикаторы для номера сцены и дубля. Но отсмотрев несколько бэкстейджей коллег, я понял, что многие используют буквенные индексы к сценам. Типа 12A или 101C. Конечно, в сегментный индикатор можно поместить и буквы, но список их будет ограничен: A, C, E, F, G, J, L, H, O, P, S. B не получается, потому что похожа на 8. R, потом что похожа на A. Таким образом пришлось от них отказаться.
Кроме того, это не сложности с буквенными индексами сцен. Большинство (в том числе и я) используют только цифры. Ими проще управлять, для этого на переднюю панель и вынесены кнопки. Я долго думал, как же сделать управление символами если будут буквы. Тем более, что у кого-то может быть свой хитрый код кодировки сцен. Решение пока такое:
Если нумерация сцен отличается от цифрового, нужно будет создать обычный текстовый файл format.txt и положить его на флешку хлопушки. В самом файле формат записи должен быть такой:
0.0A.0
Т. е. если идет цифра, нужно поставить 0, если еще и буква после цифры, то добавляем A. Управление сведется таким образом, что цифры будут управляться этими же кнопками на панели, а буквы боковыми кнопками (вверх-вниз) от A до Z. Собственно Roll, scene, take делится точкой.
Порядок дублей
Есть идея, которую я очень хочу реализовать. Каждый хлопок записывается в файл, типа лога. Это сам таймкод и полный номер дубля. Все в формате CSV, все в своей колонке.
Собственно поэтому у хлопушки есть SD карта. Сейчас все вот в таком виде:
TimeCode,Roll,Scene,Take
00:00:01;11,7,9,5
00:00:06;13,7,9,6
00:00:08;07,7,9,7
00:04:36;12,7,9,8
00:04:42;12,7,9,9
00:00:05;27,7,9,9
00:00:07;20,7,9,10
00:00:12;04,7,9,10
00:00:01;26,7,9,10
00:00:07;08,7,9,11
00:00:04;08,7,9,16
00:00:05;27,7,9,17
00:00:33;04,7,9,18
00:00:40;05,7,9,19
00:00:47;05,7,9,20
00:03:24;08,7,9,21
00:25:15;20,7,9,22
02:08:40;18,7,9,23
13:37:44;13,7,9,24
В каждом видеофайле есть таймкод, его возможно извлечь. Мы будем знать время начала записи и время конца записи. Используя время хлопка с SD-карты хлопушки мы можем проверить, входит ли данное время в промежуток записи. Если да — значит этот дубль и есть. Все это работает конечно при синхронизированном времени хлопушки и камеры.
Предполагается что будет программа, которой вы указываете папку с последним материалом и файл с хлопушки.
А теперь собственно следующие важные задачи.
Синхронизация таймкода. Как? Куда?
Без возможности хоть как-то указать таймкод хлопушки — никуда. Указывать вручную это конечно мучение. В данный момент она стартует всегда с 00:00:00:00. Поэтому провожу эксперименты считывания таймкода по линии. Изучаю формат данных SMPTE и то, как это устроено у всевозможных камер и генераторов/синхронизаторов. На моей C100 отдельного штекера под TC нет и это немного усложняет работу.
По формату, судя по всему, нужно слушать сигнал и ловить 1011111111111100 (sync word), а то что между ними и есть искомые данные.
Будет успех если получится синхронизироваться с разными устройства.
Дисплей
У хлопушки будет два дисплея, один для таймкода, второй для номера дубля. Дисплеи будут собраны на светодиодных матрицах 8x8. У меня есть одна такая матрица. Пока составляю символы и смотрю как они будут помещаться.
Дизайн хлопушки
Нужно все грамотно расположить внутри и снаружи. Рисую, пробую. Покажу в следующих постах.