Электронная хлопушка IMSLATE-1. Про чтение таймкода
Типы штекеров для синхронизации таймкода
Оказалось, что существует несколько видов штекера для синхронизации таймкода. Вот что мне удалось найти:
- 3-Pin LEMO Connectors
- 4-Pin LEMO Connectors
- 5-Pin LEMO Connectors
- BNC Female
- BNC Male
В принципе все сводится к BNC и LEMO.
Другие хлопушки
Betso WTCS-1 имеет на борту 5-Pin LEMO коннектор с такой вот распиновкой
Amibient Lockit Slate ACN-LS имеет 5-Pin LEMO с такой вот распиновкой
Denecke dcode TS-TCB имеет 5-Pin LEMO. В описании сказано pin 4+ 6/14V DC, pin 1 GND — полной распиновки не нашел. Т. е. питание идет на 4 и 1 пин. Все как у Betso. Тайм код заводится по этому же гнезду, значит можно предположить что все же какой-никакой стандарт имеется.
То же самое по сути подтверждает картинка с сайта SoundDevices (без учета питания)
Значит можно ставить разъем 5-Pin LEMO и заводить таймкод на 2 пин, а пин 1 использовать как землю.
Вот еще с сайта Denecke
На чип и дип посмотрел цены на коннекторы.
На Али в целом ситуация радужнее.
Камеры
Arri
Использует 5-Pin LEMO
Canon
Почти все BNC
Sony
Почти все BNC
Red
LEMO 4-Pin
Камеры что я видел в основном имеют BNC коннектор. И такой же разъем используют аудиорекордеры. И в этом случае поможет переходник между разъемами.
Чтение таймкода
У меня неоткуда было взять тестовый сигнал, поэтому я сгенерировал его на компьютере используя эту программу.
И есть еще замечательный сайт, где можно сгенерировать аудиофайл с таймкодом.
Прежде чем переносить код и схемы на основной проект — все тестирую на отдельном контроллере. Как было с кнопками например и дисплеями. Ридер таймкода собрал на Arduino Uno.
Т. к. сигнал SMPTE использует двухфазную маркировку (Bi-Phase Mark), то единицу или ноль нужно считать по длине импульса. Ноль всегда длинее.
Протокол:
Т. к. по сути таймкод это набор имульсов, то сигнал можно прослушать. Похоже на среднее между электроникой и шумом. Но сигнал этот в пределах -V...+V, а нам нужен 0..+V. Преобразовать его в удобный для чтения можно с помощью схемы (в сети полно схем и все они однотипные, на транзисторе) — гуглится SMPTE Interface.
По формату таймкода есть наикрутейшая статья, вот она. Про историю этого всего там тоже написано.
И так, вот он формат сигнала.
В предыдущем посте я писал, что фактически нам нужно слушать сигнал и ловить там комбинацию 1011111111111100 (sync word). Длина его составляет 80 бит.
Здесь нагляднее. Если появилось 12 единичек, значит это sync word.
И уже от него считаем. Так нужно, потому что мы не знаем с какого момента к нам идет передача, ведь провод могут воткнуть в середине передачи. Поэтому проще вычленить эти 12 единиц и читать дальше. Как видно из таблицы, если 10 бит — единица, значит это drop frame.
Макет для чтения
Я взял обычный аудиокабель, штекер вставил в гнездо наушников компьютера и завел сигнал на схему. От количества FPS зависит длина бита.
24 кадра
29.97 кадров (30000/1001, т. е. drop frame)
30 кадров
Вычисляя среднюю длина бита я могу переключать режим работы. Это довольно легко сделать между 24 и 30 кадрами, а вот между 29.97/30 и 24/25 сделать сложнее, т. к. сигнал с помехами и точности не хватает, хотя закономерность есть.
Автоматическое определение частоты кадров сделал, что называется, джаст фо фан, т. к. режим работы хлопушки выбирается заранее.
Была идея сделать автопереключение режима в зависимости от типа синхронизируемого сигнала, но подумав, — решил, что скорее всего это не нужно.
Теперь надо интегрировать схему и код в саму хлопушку.