Электронная хлопушка 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 коннектор с такой вот распиновкой

betso Pin out

Amibient Lockit Slate ACN-LS имеет 5-Pin LEMO с такой вот распиновкой

ambient Pin out

Denecke dcode TS-TCB имеет 5-Pin LEMO. В описании сказано pin 4+ 6/14V DC, pin 1 GND — полной распиновки не нашел. Т. е. питание идет на 4 и 1 пин. Все как у Betso. Тайм код заводится по этому же гнезду, значит можно предположить что все же какой-никакой стандарт имеется.

То же самое по сути подтверждает картинка с сайта SoundDevices (без учета питания)

SoundDevices Pin out

Значит можно ставить разъем 5-Pin LEMO и заводить таймкод на 2 пин, а пин 1 использовать как землю.

Вот еще с сайта Denecke

Denecke Pin out

На чип и дип посмотрел цены на коннекторы.

Lemo 5-pin

На Али в целом ситуация радужнее.

Lemo 5-pin

Камеры

Arri
Использует 5-Pin LEMO

Canon
Почти все BNC

Sony
Почти все BNC

Red
LEMO 4-Pin

Камеры что я видел в основном имеют BNC коннектор. И такой же разъем используют аудиорекордеры. И в этом случае поможет переходник между разъемами.

Чтение таймкода

У меня неоткуда было взять тестовый сигнал, поэтому я сгенерировал его на компьютере используя эту программу.

TimeCode generator mac os

И есть еще замечательный сайт, где можно сгенерировать аудиофайл с таймкодом.

Прежде чем переносить код и схемы на основной проект — все тестирую на отдельном контроллере. Как было с кнопками например и дисплеями. Ридер таймкода собрал на Arduino Uno.

Т. к. сигнал SMPTE использует двухфазную маркировку (Bi-Phase Mark), то единицу или ноль нужно считать по длине импульса. Ноль всегда длинее.

Протокол:

Timecode Specification

Т. к. по сути таймкод это набор имульсов, то сигнал можно прослушать. Похоже на среднее между электроникой и шумом. Но сигнал этот в пределах -V...+V, а нам нужен 0..+V. Преобразовать его в удобный для чтения можно с помощью схемы (в сети полно схем и все они однотипные, на транзисторе) — гуглится SMPTE Interface.

По формату таймкода есть наикрутейшая статья, вот она. Про историю этого всего там тоже написано.

И так, вот он формат сигнала.

SMPTE Format Signal

В предыдущем посте я писал, что фактически нам нужно слушать сигнал и ловить там комбинацию 1011111111111100 (sync word). Длина его составляет 80 бит.

Здесь нагляднее. Если появилось 12 единичек, значит это sync word.

SMPTE

И уже от него считаем. Так нужно, потому что мы не знаем с какого момента к нам идет передача, ведь провод могут воткнуть в середине передачи. Поэтому проще вычленить эти 12 единиц и читать дальше. Как видно из таблицы, если 10 бит — единица, значит это drop frame.

Макет для чтения

Я взял обычный аудиокабель, штекер вставил в гнездо наушников компьютера и завел сигнал на схему. От количества FPS зависит длина бита.

24 кадра

Arduino SMPTE Reader Arduino SMPTE Reader

29.97 кадров (30000/1001, т. е. drop frame)

Arduino SMPTE Reader Arduino SMPTE Reader

30 кадров

Arduino SMPTE Reader Arduino SMPTE Reader

Вычисляя среднюю длина бита я могу переключать режим работы. Это довольно легко сделать между 24 и 30 кадрами, а вот между 29.97/30 и 24/25 сделать сложнее, т. к. сигнал с помехами и точности не хватает, хотя закономерность есть.

Автоматическое определение частоты кадров сделал, что называется, джаст фо фан, т. к. режим работы хлопушки выбирается заранее.
Была идея сделать автопереключение режима в зависимости от типа синхронизируемого сигнала, но подумав, — решил, что скорее всего это не нужно.

Теперь надо интегрировать схему и код в саму хлопушку.

Поделиться
Отправить
Запинить
8 мес   Arduino   IMSLATE-1   SMPTE   Timecode   Таймкод
Популярное