Рассказываю опыт разработки сканера 35-мм киноплёнки со звуковой дорожкой за 150$ в картинках наглядно.
Приветствую Хабр! Первая статья в цикле статей об оцифровке киноплёнок. Сама тема работы с кинопленками уже была затронута раннее – пример с 8-мм плёнкой от автора TheCoreFactory. В своей статье я возьму более масштабный размах, так как оборудование для работы с 35-мм не такое доступное по сравнению с любительским 8-мм форматом.
В статье будет много практической части, потому что я сам человек от практики, гик-самоучка, и теория мне даётся плохо из-за уделения ей малого внимания. Сделаю небольшой спойлер – проект получился довольно успешен, и работает прекрасно (за исключением глюков подсветки, но об этом позже). Для подогрева интриги продемонстрирую оцифрованный сканером из шапки выпуск ералаша, в котором я уже упёрся в качество самой кинокопии (спасибо вам, киностудия Горького, за то что разрешили залить на ютуб!):
Немного истории формата 35мм
Формат 35 мм связывался с предпочтениями братьев Люмьер в их первых изобретениях, связанных с кино (тогда ещё была эпоха немого кино). Такой формат был получен разрезанием напополам неперфорированной роликовой фотоплёнки на плёнку шириной 1.375 дюйма (35 мм). Размер изображения был задан пропорциями 4:3(позже добавился защитный промежуток между кадрами), шаг перфорации в 1 дюйм, а частота кадров задана так, чтобы расход плёнки составлял 1 фут в секунду – всё подгонялось для избегания сложных арифметических расчётов. В 1909 году этот формат был утверждён уже в качестве стандарта. В немом кинематографе была принята частота кадров равной 16 кадрам в секунду, но на практике она могла отличаться. В конце 1920-х годов с появлением звука в кино частоту кадров подняли в полтора раза, но я считаю стандарт в 24 к/с морально устаревшим уже лет 50, и топлю за его «упокоение». Также были отличия и в перфорации – так во французском формате перфорация содержала одну пару отверстий вдоль кадра. В «американской» перфорации пар уже было 4, что позволило лучше стабилизировать кадр. Сейчас американская перфорация применяется везде, а французская вышла из употребления больше 100 лет назад.
Химический состав
Известно что плёнка состоит из фотоэмульсии, закреплённой желатином на полимерной основе. Поговорим про полимерную основу. До середины 20-го века основа производилась из нитроцеллюлозы (здесь и далее — нитратная). Главным преимуществом нитратной основы была её исключительная износоустойчивость (нет), но серьёзным и пожалуй, опасным её минусом была лёгкая воспламеняемость. Достаточно было нагреть основу до 150 градусов, чтобы получить высокие шансы на её самовоспламенение. Из-за таких крайне неприятных свойств нитратную киноплёнку невозможно потушить (под водой нитратная основа активно разлагается потребляя кислород из самой основы), но в теории можно отрезать горящую часть плёнки и таким образом сохранить остальной материал. Если вы не обладаете, например, стендом The World(JoJo), то горящую бобину вам уже не спасти и предыдущая рекомендация не более чем шутка =). В качестве наиболее красочного примера с пожаром, вызванным нитратной плёнкой можно взять пожар на складе студии Fox 9 июля 1937 года, который забрал с собой подавляющее большинство немых фильмов произведённых до 1932 года. Но сам по себе пожар не произойдёт — предпосылкой к этому является второе противное свойство — низкая температура самораспада, который в свою очередь является автокаталитическим процессом. Показательный пример подгнившей нитратной плёнки
Дальнейшая судьба — основа желтеет, эмульсия начинает обращаться в негатив, в дальнейшем плёнка становится липкой, “срастается” в единую массу, и наконец, рассыпается в порошок и пыль, переводя материал в категорию утраченных
С 1952 года Kodak выпустила багфикс начала выпускать киноплёнки на триацетилцеллюлозе (триацетат), которые уже портились по другому и более коварно. Последние несколько предложений и перехожу к теме статьи По началу, когда плёнка только сошла с конвейера, в её основе присутствуют длинные молекулярные цепочки целлюлозы которые задают прочность и форму основе. Со временем, при воздействии тепла и влаги данные цепочки распадаются с отрывом боковых групп выделяя при этом уксусную кислоту. Цепочки укорачиваются и становятся более хрупкими а уксусная кислота начинает воздействовать на соседние цепочки, которые тоже выделяют уксусную кислоту и далее, далее, далее по нарастающей. Этот процесс начинается практически сразу но в первое время он проходит внутри основы и только позже уже выходит на поверхность придавая плёнке запах уксуса. Одна такая «уксусная бобина» может заразить соседние. Чем сильнее запах уксуса тем активнее идёт процесс. У этого процесса есть переходная точка в графике скорости, до достижения этой точки распад идёт медленно, однако проходя эту точку процесс самоускоряется. В последующих этапах происходит усадка основы(известен случай когда 35мм киноплёнка «ужалась» до 17 мм), основа становится хрупкой и начинает рваться когда раньше при тех же усилиях сохраняла целостность. В дальнейшем пластификаторы которые добавляются в основу становятся несовместимыми с ней и мигрируют на поверхность порождая кристаллы на изображении или пузыри с жидкостью. Желатиновая эмульсия, которая не даёт ужиматься со временем отрывается от основы и изображение «ломается» и покрывается каналами. В некоторых случаях происходит окраска в голубые или розовые оттенки так как возросшая кислотность воздействует на невидимый антигаляционный слой восстанавливая его первоначальный цвет. Далее уже нет смысла расписывать кроме как упомянуть, что финалом процесса также как и с нитратной основой – плёнка превращается в пыль. Что-то я заболтался...
Часть первая. Поиск простого решения
Обзор полученного материала и осознание насколько всё плохо
С подводкой и предысторией закончено, теперь перейдём к телу. Моя история начинается с момента, когда мне в руки попали бобины с выпусками Ералаша развально-перестроечных времён (65,67-70, 1987-1988 гг.)
Первый осмотр бобин глазами человека, который впервые в своей жизни видит киноплёнку в реале сквозь вау-эффект показал неплохой износ оных а именно — царапины от многочисленных прогонов через проектор, уход в красноту из-за выжигания красителей лампой да и просто от времени (особенно досталось зелёному цвету), склейки, трещины по контурам дырок перфорации. Всё показывало на то что бобины списаны из-за их изношенности хотя внешне можно сказать что не сильно им досталось. Судя по наклейке, частично сохранившейся на одной из коробок, кинокопии были выпущены на новосибирской кинокопировальной фабрике предположительно где-то в конце 1989 года. Сама плёнка имеет разные даты полива — от весны 1988 до ноября 1989. Одна из бобин, к примеру, оказалась склеенной из 5 кусков — этакий Франкенштейн, так как даже степень красноты у кусков разная и дальнейшем эта бобина мне доставила наибольше всего хлопот.
Попытки найти готовые варианты для сканирования
Завершив осмотр и закончив любоваться я начал думать - как мне перевести пленку в цифровой формат, проще говоря — оцифровать. Я начал смотреть в сторону готовых решений пусть даже и в ушатанном состоянии — не страшно, я починю, руки из плеч как никак. Пошукав по авито пол дня я пришёл к выводу, что предложенный там антиквариат:
Немобильный и тяжёлый по весу
Имеет завышенные в несколько раз цены (40-60-80-100 тысяч рублей)
Результаты наблюдения меня не обрадовали (а если бы обрадовали — этой статьи бы тут не было), но из них я сделал вывод что недостатки первых и вторых можно попытаться компенсировать, если изобрести велосипед снова, только в более дешёвом исполнении. При закладывании идеи я выдвигал требования в небольшой цене — максимум 15-16 тысяч рублей (goal — 150$) и весе до 5-8 килограмм без учёта бобины. При этом необходимо, чтобы проектор имел хоть какую-то автоматизацию своей работы — как минимум он должен в автоматическом режиме сменять кадры плёнки, сматывать её и завершать свою работу по окончанию процесса. Также выдвигались требования к материалу, из которого должен состоять проектор — нельзя использовать металлы, так как оборудование для работы с металлическими заготовками просто не поместится в комнату размерами 5х4 метра, в которой я живу. Нужно что-то и правда простое, чтобы занимало не больше 2 столов, не было слишком вредным для здоровья и чтобы родственники не выносили мозги.
В итоге сформированная идея предложила просто напечатать проектор на 3D-принтере, а в качестве приводов различных механизмов — использовать популярные в DIY шаговые двигатели. В процессе разработки своей шайтан‑машинки я в целях ускорения процесса разработки думал использовать готовые STL‑модельки компонентов, какие находил в интернете, но потом поменял подход и уже старался не использовать чужих идей, за исключением идей в общих чертах — «вот там использовалось это и я должен придумать похожее сам», чтобы мозги не деревенели на использовании готового, ну и просто из‑за лени заниматься приспособлением готовых компонентов к проектируемой системе. В конце цикла разработки я уже полностью на собственные идеи перешёл, даже на заходя в интернет для изучения.
Этап мозгового штурма
Теперь, когда я сформировал идею от своих запросов, настал эпизод мозгового штурма и я поставил перед собой следующие вопросы:
Если я решил печатать на принтере, то какой пластик подойдёт лучше всего?
Как мне организовать лентопротяжный механизм?
Какой должен быть механизм, который определит нужный момент для съемки кадра?
На что делать снимки?
Как закрепить бобину чтобы не разматывать её руками?
Из чего должна быть собрана оптика для камеры? (нужна ли она вообще?!)
Как мне сделать подсветку кадра?
Каким должно быть управление — на логике или нужен будет контроллер?
Как всё автоматизировать по красоте?
Главный вопрос — какая будет долговечность работы моего сканера?
Скажу сразу что я не смог дать ответы на все эти вопросы на этапе мозгового штурма так как ещё ни разу не имел опыта в робототехнике а только смотрел видосики Boston Dynamics на YouTube раз в год‑полтора (те самые мемные, где ещё вставляется синтезированная фраза про «кожаных ублюдков»). За всё время разработки и из‑за своей лени я ни разу не смотрел гайдов по робототехнике, да и не было особого желания — всё как-то само придумывалось. Я сделал ставку на свою изобретательность, которая как окажется в дальнейшем, хорошо себя оправдает. Решая вопросы по мере поступления, я в первую очередь начал решать проблему чем мне прогонять плёнку. Рисунки из pbrush прилагаются далее и будут чередоваться с фотокарточками и скринами из Solidworks 2017.
Первая попытка отсканировать
В первые дни интерес к новой игрушке плёнке был настолько высоким, что я не удержался и с помощью книг организовал столик с окошком и канал для протаскивания плёнки. Суровое и беспощадное решение - как для времени, так и для глаз которые будут это смотреть.
Если вам не страшно - можете глянуть и это =)
Таким необычным образом я взглянул на плёнку «под микроскопом» и удовлетворив минутное любопытство, ещё сильнее разжёг желание сделать что‑то прикольное и крутое. И я начал думать...
Первым в расход проектирование пошла моделька с кадровым окном (на КДПВ узел слева от центра). К моему сильному сожалению, на тот момент я проявил недальновидность и не сохранил всех исходников с первых дней разработки, поэтому всю красоту не покажу. Итак, это первый вариант кадрового окна, STL моделька взята из интернета по какой-то ссылке (в истории браузера не сохранилось).

Изначально эта конструкция предназначалась для сканирования 35мм фотоплёнок, но всё отличие фотоплёнки от киноплёнок в том что у них разный размер изображения, наличие звуковой дорожки и доп покрытие для сохранения эмульсии от царапин, ну и возможно основа лавсановая. По механическим свойствам фото- и кино- плёнка идентичны. Простенькая схема как выглядит процесс сканирования через такое изделие в поперечном разрезе ниже:

Серым отмечен прижим, сбоку от него есть выемки в которые можно вставить неодимовые магниты для более плотного прижатия плёнки. Довольно быстро у этой конструкции обнаружились недостатки, один из которых чуть не стал фатальным для одной из бобин, а пока я продолжаю пользоваться этим решением. На опыте печати этой детали я выяснил насколько сильным может быть погрешность печати 3D-принтера, и она может быть довольно заметной — зависит конечно же от детали. На примере напечатанной модельки - ширина канавок задумывалась в ~0.3 мм. На деле разумеется попа слиплась принтер эти 0.3 мм пропечатать не смог, и мне пришлось пропиливать канавки по бокам ножовкой прежде, чем плёнка с 2 слоями скотча смогла проходить через эти канавки свободно — я старался облегчить прохождение пленки везде, где это не занимало слишком много времени. Имея на руках только этот самодельный фильмовый канал с окном для кадра, я по новой организовал сканер (и снова колхоз из книг).
И я предпринял вторую и менее кринжовую попытку отсканировать кусок плёнки
Само окно давало довольно хороший обзор, и при возможности в нём можно разместить 2 кадра одновременно.
На обоих видео, и на снимке выше роль подсветки отыгрывал белый экран, который я сделал просто открыв paint и растянув холст на весь экран. Для устранения “пиксельности” картинки я использовал кусочек целлофана, невозбранно вырезанный из нагло стыренного из пятерочки пакета для продуктов. Баланс белого задавался уже на камере, в качестве которой я использовал свой смартфон Xperia 1 III (SOG-03). Параллельно с этим я осваивал работу с Davinci Resolve 19, которым в дальнейшем и буду пользоваться, но в начале своего пути я пользовался связкой Davinci Resolve + Vegas Pro 20. Во втором я проводил сборку фотографий формата JPEG в видеоряд, а в первом выполнял цветокоррекцию и стабилизацию кадра. Позже я познакомился с программой для сканирования звука AEO‑Light. Программа интересная, но требует внимания так как в ней нет защиты от дурака и поэтому её легко уронить. Для желающих поэкспериментировать со звуковой дорожкой — скан для вас (MediaFire, x264, 1440x1080@25, ~56 Мб).
В качестве бонуса покажу наличие на ракорде одной из плёнок QR-кодов Dolby Digital —матрицы размерами 74х74 пикселей. Но и по сей день мне нечем их читать, слишком уж мелко, хотя разобрать формат и написать декодер для него интересно (эх, жаль в сутках всего лишь 24 часа!).
Ну, вроде проблема с плюс-минус точным размещением плёнки перед камерой решена, можно двигаться дальше. Следующим вопросом стал способ расположения бобины так, чтобы механика с как можно меньшими затруднениями могла сматывать с неё плёнку для сканирования и при этом не быть слишком массивной и перегруженной в плане сложности разработки. Я не стал выжимать из своей шизы какие-то мозговыносящие конструкции и взял за пример простое колесо, которое могло уместить ~200 метровую бобину, на колесо бОльшего размера не хватило площади стола 3D-принтера:

На практике же бобина выглядывала за пределы колеса, но в этом нет ничего страшного, главное чтобы плёнка наматывалась плюс-минус ровно, а при упаковке в коробку её можно будет выровнять руками. При этом вал колеса имел две сквозные прорези – я предполагал что в нормальных кинопроекторах плёнка для крепления как-то продевалась сквозь вал, из-за чего плёнка ракорда во всех бобинах в центре была согнута в букву S - я это учёл, что в дальнейшем только облегчило улучшение этого механизма.
При этом тогда ещё у меня не было сформировано окончательное представление о том, каким должен быть привод и поэтому я «на всякий случай» прилепил снаружи по шпинделю с каждой стороны, на случай если в будущем какие-то мысли взбредут. Идея с первого раза получилась удачной, конструкция без проблем удерживала плёнку:
Не самым удобным остался способ сборки колеса при каждой смене бобины с плёнкой, но я оставил это как есть и просто разработал отверстия, чтобы винтики лучше проходили в них. За исключением этого недостатка колесо получилось удобным в обращении. Теперь колесо должно быть расположено так, чтобы обеспечить полную свободу вращения, следовательно колесо нужно расположить так чтобы оно опиралось только на шпиндели, которые размещены снаружи колеса. Первые мысли появились практически сразу:
Предполагалось что при смене бобины, колесо просто будет вложено шпинделями в стойки, что таким образом существенно упростит смену плёнки (ведь у меня большие планы на мой проект!) и главное — ускорит его и уменьшит риск сломать что-нибудь в процессе. Создавая первую в своём проекте раскоряку, я сразу заложил возможность крепления блоков к ней с одной из сторон колеса. Размеры и геометрию крепежного узла я придумывал на ходу. Параллельно с печатью узла на принтере я по быстрому замоделил стойки, сделав их настолько длинными, насколько позволил стол 3D-принтера. К вечеру пошёл первый брак 3D-печати:
Досадно, но меня это не остановило, и я сразу забраковал используемую на тот момент марку клея-карандаша. Да, здесь ещё надо покритиковать себя за то что я не купил стекло и пользовался стоковым ковриком Creality, который после примерно 40-й печати начал рваться, и только тогда я подумал и заказал стекло. Кстати, для АБС моя личная рекомендация — клей-карандаш Berlingo, особенно тот который пахнет какао-бобами или шоколадом. Данный клей я использовал в дальнейшем. К сожалению я не помню марки “плохого” клея-карандаша, он был настолько плох что моя память блокирует воспоминания связанные с ним, а может просто сказывается моя плохая память на имена. Когда с печатью стоек и крепёжных узлов было покончено, я накинул все детали на свои места, скрепив их тем что было под рукой чтобы посмотреть что в итоге получается:
Я не мог тогда сказать хорошо ли всё идёт или плохо. Повторюсь, проект я придумывал на ходу (пару раз мне снились решения по некоторым мелочам), никаких диздоков, эскизов, зарисовок никто конечно же не делал — всё оставалось у меня в голове. Кстати, одна бобина плёнки Свема ЦП-8Р весила в районе 2 Кг, но я закладывал запас прочности до 15 Кг — опять таки никаких расчётов, всё делалось по интуиции так как теория это моё слабое место (я на расчётах опор бобины мог подвиснуть на несколько недель), но нагрузку конструкция выдерживала, если не шатать её. При шатании с боков запас прочности составлял до 5 Кг веса.
Проблемы сделали вид что решились, я сделал вид что не замечаю проблем и двигаюсь дальше. Шла вторая неделя разработки и мне уже было чем похвастаться, но нужно идти вперёд и я снова обратился к своей шизе по вопросам протаскивания плёнки через все механизмы и узлы. И первые мысли появились практически сразу, но окончательная идея сформировалась на следующий день. На идею можно посмотреть ниже

Не берусь утверждать что все поняли мою идею, и поэтому я просто обязан разъяснить. На рисунке представлено устройство привода (в дальнейшем я буду его именовать приводом ЛПМ — насколько это верно или неверно пусть подскажут в комментариях, а я человек попроще буду). Ведущий валик оснащён зубчиками, которые цепляют перфорацию плёнки с двух сторон и тянут её в направление, показанное на рисунке стрелочкой. Два направляющих валика с краёв нужны чтобы плёнка не слетала с приводящего валика. Чтобы мне было проще продумывать механизм и способ разместить его в слайсере, да и меньше испытывать риск разломить деталь при снятии “страховочных” элементов я решил с этого момента и в дальнейшем вместо одной сложной детали создавать набор простых, которые в свою очередь соберутся в сложную. Забегая вперёд скажу что значительно позже (когда проект был готов на 70%) я освоил способ ацетоновой “спайки” деталей, но до конца разработки так и не начал им активно пользоваться, в основном из-за вони которую источал ацетон, да и сама эта смесь довольно люто воняет. Я не биолог и про токсичность умничать не буду — просто скажу что это воняет мерзко. Вернусь к описанию механизма. Ведущий валик соединялся штырём с квадратным сечением с шестерёнкой, которая в свою очередь приводилась от шагового двигателя. На тот момент я не особо представлял, насколько сильным может быть трение между деталями, сделанными из АБС, поэтому всё казалось просто как два пальца... Время я не тянул, и практически в тот же день же начал проектирование. Здесь я снова позаимствовал детальку из интернета, которой пользовался ¾ времени разработки проекта, и теперь я могу её показать отдельно так как тогда уже думал что возможно мне удастся опубликоваться здесь

Думать говорить о хрупкости этого соединения не нужно, но тем не менее скручивающую нагрузку да ещё и вдоль слоёв без ацетоновой обработки соединение держало, хотя я в сумме за всё время разработки напечатал где-то 7 пар валик-шестерня. Первыми мыслями было прицепить звёздочку прямо в фильмовый канал, но уродовать красиво получившуюся поделку не хотелось, да и я никак не мог придумать, как мне совместить механизм и крепление камеры. Было решено вынести этот контент в отдельное место что открывало перспективу свободной замены узла и его улучшение при этом не трогая другие узлы, что в общем замысле повышает гибкость обслуживания и модификации устройства. Самую первую модель я не сохранил кроме фотографий, но именно тогда меня в край задолбала плохая адгезия АБС к стоковой подложке Creality
Когда механизм напечатался я немного поиграв в симулятор слесаря уральского похабного мелкосерийного производства, привёл механизм в более-менее пригодное состояние, после прикрепил шаговичок, и вот моя урода готова. Для экономии филамента я постарался не раздувать размеры блока и сделать компактным. По началу я не собирался включать это в статью, чтобы не показывать как сильно я нагадил в штаны, но поразмыслив, пришёл к выводу что не ошибается только тот, кто ничего не делает и поэтому показываю результат подхода «и так сойдёт!»:
Управление шаговиком можно было сделать по красоте на контроллере, но я тогда надеялся что смогу обойтись без него (наивный, хаха!), в следующих частях статьи уже будет затронута тема написания прошивки, а пока я на логике К155 накидал управление шаговиком. Исторически для меня сложилось так, что собрать схему на логике для меня быстрее чем писать прошивку для контроллера — из-за некоторых сложностей создания и настройки проекта в Keil

В дополнение к контроллеру я также соорудил на логике счётчик импульсов, позволяющий по нажатию кнопки совершать ровно один оборот. Наглядная работа электронной части:
После сборки на макетной плате я стал выяснять какие пределы по скорости у моего блочка. Предел скорости протяжки нашёлся сразу, и меня он не удовлетворил - двигатель протаскивает один кадр секунд за 6-7, и с такими скоростями сканирование примерно 15 тысяч кадров даже при условии, что кадр будет сниматься быстро, растянулось бы на несколько суток а моя слабая терпелка нанесла бы ущерб и без того моей покалеченной психике. Разгонять движок не вариант — слабеет крутящий момент и я подложу свинью самому себе. Также не вариант поднимать ток на обмотках, так как сам шаговик слабый, и нужен новый, с более мощными магнитами. К тому же я заметил, что плёнка всё таки соскакивает с валиков — тому виной кривизна плохо напечатанного блока из-за чего вращение валиков затрудняется в следствие сильно возросшего трения. Но главное я понял, что сама идея с выносом механики протаскивания плёнки в отдельный блок — наилучшая идея и сюжет развился в следующий вывод что 5 вольтовый шаговик — ни о чём, слишком медленно — я сойду с ума ждать, а быстро никак — будет буксовать либо слишком сильно греться. Шаговик отправляется в коробочку до лучших времён а я уже заказал жирный и мощный Nema 17, который окончательно решил все проблемы в жизни. В перерывах между проектированием я всё не прекращал попыток оценить детализацию кинокопий ералаша, которые есть у меня в наличии (и по сей день но уже хранятся на холоде):
К сожалению, камера соньки не могла фокусироваться слишком близко, а снимать издалека не позволило малое количество мегапикселей в ней, но всё же мне получилось разглядеть и понять что здесь что-то не так — литера (С) выглядит расплывчатой, хотя ЦП-8Р киноплёнка обладает разрешающей способностью до 300 линий на мм(аналог 6600х5100 пикселей при соотношении 1.85) и способна выдать 4K, следовательно надпись и литера должны быть предельно чёткими, но это не так. Я тогда не мог определить — либо камера у меня плохая, либо это кинокопия косячная. Позже я определю что все мои кинокопии косячные. Вернусь к своим баранам. Новый шаговик позволяет крутить горы на Кавказе прикладывать бОльшую силу, и главное скорость. Я тогда питал иллюзию что смогу втопить 25 кадров/сек (ха-ха-ха!), ну может бы и втопил, но с другой конструкцией.
Я учёл предыдущий неудачный опыт, который привёл к смерти от кринжа показал что плёнке всё же нужно “навязывать” проход через звёздочки в добровольно-принудительном порядке иначе это будет дохлый номер. По сделанному выводу я доработал конструкцию, заполнив пустоты внутри и сделав сверху окна для контроля прохождения плёнки через механизм, да и просто чтобы паранойя не сильно донимала

При этом заполнитель с нижней стороны я сделал отдельным компонентом так как жаба люто-бешено душила расходовать пластик на печать по новой когда можно доработать (оптимизация, чо). Напечатанный компонент вышёл на уровне «с пивом сойдёт», но тем не менее прослужил недолгую но хорошую службу, совмещая при этом должность сборщика всякого мусора, что набрался на трудяге‑плёнке до меня
Чего я не стал менять, так это количества и конфигурацию приводящих валиков - приводящий валик по прежнему один несмотря на тревожные звоночки насчёт прочности того тоненького штырька 4х4 мм. Новый привод ЛПМ в сборе с моим примитивным контроллером жутко вибрировал, и при определённых условиях можно было порадовать соседей звуками перфоратора и затем при личной встрече делать искренние глаза спрашивая какой ещё перфоратор. Хотя в принципе хватит для такого перфоманса одного только движка:
Однако теперь можно снова провести испытание на скорость. С первых секунд меня порадовала высокая скорость протяжки плёнки в моем приводе ЛПМ, чего с 5 вольтовым шаговиком достичь, разумеется не получилось бы. Скорость поднялась до хорошей и твёрдой пятёрочки кадров в секунду и теперь попадание в психдиспансер от долго ожидания завершения сканирования мне больше не грозит. Но это ещё не всё, теперь надо решать вопрос с драйвером. Драйвер на LM298 конечно внушает, но то, что для него нужно отдельно придумывать ШИМ-управление полушагами и четверть-шагами меня не устроило, да и греется он мама не балуй. При работе с LM298 приходилось использовать активное воздушное охлаждение, так как без него нагрев был настолько сильным, что драйвер уходил в защиту по перегреву. Выходит, вторым важным вопросом было КПД нового драйвера. Далеко в лес я не пошёл и разжился драйвером A4988 в комплекте с кроваткой, про который ещё говорят что он шумный, но мне это не только не доставит проблем, а наоборот решит некоторые текущие — двигатель перестанет вибрировать, а скорость поднимется ещё выше - я горел желанием выжать 25 кадров/сек (однако нет).
Такое и показывать не зазорно =) Хоть и заветных 25 кадров/сек я так и не достиг, но это была лишь побочная приятная цель, и я навряд-ли стал бы эксплуатировать механизм на таких высоких скоростях в будущем из-за высокой вероятности поломки. Также теперь надо рассмотреть более компактный вариант подсветки. В последний раз я подсвечивал кадр с помощью монитора, но этот вариант отпадает однозначно и нужно что-то поменьше. Снова включаю воображение и в качестве лайфхака использую монохромный дисплей Winstar с разрешением 160х160. Его подсветка довольно мощная для годного просвета кадра и при этом не видно пикселей. Из этого вытекает побочная миссия разработать стойки для размещения конструкции с окошком, чтобы под него засунуть дисплей
А что там насчёт размещения всех этих узлов? Я быстро сообразил использовать для этого обычную доску:
Теперь, когда появилась возможность дробления шага двигателя, я переделал генератор импульсов чтобы он мог генерировать пачку из 3200 импульсов и затем выключал драйвер. Но прямо сейчас сканировать нельзя, так как у меня бобина находится выше канала с окошком, и плёнка будет заламываться на входе в блок с окном, что недопустимо — мой сканер должен сканировать плёнку и не превращать её в утильсырьё. Проблема быстро решается установкой направляющего ролика между бобиной и фильмовым каналом с окошком(на фото выше справа с краю). И вот теперь можно ещё раз провести оцифровку (в третий раз), но уже в полуавтоматическом режиме
Подведу итог, что в сумме улучшилось:
Подсветка кадра стала более компактной и лишилась недостатка из сетки пикселей
Бобина теперь держится на индивидуальной для себя подставке, облегчая работу для механики
Новый драйвер улучшил плавность подачи плёнки и устранил вибрацию двигателя
Всё это в сумме крайне положительно сказалось на качестве картинки за исключением геометрических искажений и расфокуса, но к этому вернусь позже. Как можно видеть на фото выше, окошки через которые можно контролировать прохождение плёнки также являются вспомогательными при зарядке плёнки в блок — через них я пальцем придерживаю плёнку чтобы она не задралась и не упёрлась концом во что-нибудь. Окошки эти неудобны, да и сама доработка предназначалась как хотфикс, на постоянной основе её держать несколько рискованно — можно разодрать себе пальцы если просовывать их в окошки. Из всего сказанного понятно, что требуется решение получше и конструкция привода ЛПМ претерпевает небольшие изменения:

Окошки объединяются в одно большое окно, и при этом пространство над перфорацией заполняется, оставляя более узкое свободное место. Также меняется конфигурация валиков – все три становятся приводящими, что позволит несколько распределить нагрузку на соединения валиков. Изменяется и узел соединения валика с шестерёнкой со “штырька” на звёздочку и бонусом к приводу ЛПМ добавляется новый цвет
Чёрточки на шестерне проведены для выставления такого положения шестерни, при которой уменьшается вертикальная тряска изображения, которая временами становится довольно сильной. Этот побочный эффект уже связан с изначально неудачно заданными размерами валика, их расположением и подходом “и так сойдёт!”. Далее будет разбор более серьёзных последствий такого подхода и дальнейшее развитие проекта – переделка подсветки, кадрового окна, переход на микроконтроллер и подключение зеркалки и прочей юзер-френдли аттрибутики. Текущий прогресс был достигнут уже ближе к концу 2-го месяца работы над проектом
Продолжение следует...
Если вам понравилась статья, вы можете отблагодарить автора:
ЮМани 410012072475999
Если у вас есть какие-то вопросы насчёт проекта, или идеи напишите пожалуйста в комментариях.
UPD Я поправил грамматику и оформление, благодарю за замечания по этому поводу!
Комментарии (27)
sim2q
17.01.2025 13:47С интересом прочитал!
Исторически для меня сложилось так что собрать схему на логике для меня быстрее чем писать прошивку контроллера
Знакомо!
Бъю себя по рукам за такое, потому что всё равно потом на МК переделывать :)IamJiva
17.01.2025 13:47Знакомо, бью по ложному эго(избегая попаданий по телу) всех ардуинщиков, не понимающих работу повторителя эмиттерного(а также истокового, катодного ≈ "КРЕН5 (7805) выходового(где опорный пин аналог "сетки" триода))
voldemar_d
17.01.2025 13:47Разве тема сканирования кинопленок не была закрыта уже лет 20 назад?
PereslavlFoto
17.01.2025 13:47Вот сейчас, в 2025 году, тема дешёвого сканирования киноплёнок и фотоплёнок до сих пор не раскрыта. Представленные на рынке устройства остаются чудовищно дорогими, а простой технологии по-прежнему нету.
Например, каждый знает, что для борьбы с царапинами надо сканировать, помещая плёнку в иммерсионную жидкость. А какая именно это жидкость? И где её продают задёшево? И как потом её легко отмывать? — Не даёт ответа.
svema0705 Автор
17.01.2025 13:47Представленные на рынке устройства остаются чудовищно дорогими, а простой технологии по-прежнему нету
Я подпишусь здесь под каждым словом. Вы кратко и доступно описали цель моего проекта - сделать технологию сканирования киноплёнок чуточку доступнее для простых людей
IamJiva
17.01.2025 13:47точно, вон уж тема пистолетов насколько в мире раскрыта и сблёвана сотни раз, а всёравно - когда доступности нету, - энтузиаст одинна 3D принтере напечатал пластиковый пистолет для настоящих патронов, единственная металлическая деталь в котором - кусочек жестяной консервной банки,вставляемый в острие бойка для накола металлического капсюля патрона(поскольку металл пластиком не прокалывается), конструкция была срисована с серийного настоящего пистолета, разве что нарезной ствол был напечатан со стенками с увеличеной толщиной, почти сантиметровой. В магазин вмещается 10патронов, ствол разрывает после 15выстрелов, чел выложил образ печати в сеть, когда 2000 анонимов его скачали с форума 3D принтерщиков, к челу пришли... срочно изьяли как могли раздачу, и обещают на 4года в тюрьму теперь посадить :-|
engine9
17.01.2025 13:47Классный проект. Жаль, что статью обделили вниманием.
Мне как-то пришлось быстро "сколхозить" и перефотографировать несколько коробочек слайдов. Сделал приспособление из обувной коробки и потолочной лампы 220В на светодиодах, которую установил на противоположный край коробки. А на лицевой грани вырезал кадровое окно. Камеру закрепил на штативе. Для скорости важно иметь помощника или лучше пару. Один доставал слайд и ориентировал его эмульсией вниз (либо эмульсией вверх, важно чтобы все были в одну сторону), пока я снимал. Другой укладывал.PereslavlFoto
17.01.2025 13:47О чём были слайды?
engine9
17.01.2025 13:47Бытовуха, свадьбы, дни рождения, работа пилотом ГА. Фотки самолётов, фотки из кабины.
PereslavlFoto
17.01.2025 13:47Фотки самолётов, фотки из кабины.
Вот это очень ценный контент для википедии. Да и бытовуха — не праздники, а интерьеры, — тоже интересна.
svema0705 Автор
17.01.2025 13:47Два ролика с интрошкой примерно так и были переведены в цифру :)
Лично для меня такие стадии колхоза наиболее увлекательны - фантазия работает на полную катушку
you_been_pwn3d
17.01.2025 13:47Прочитал статью: невероятно, сколько же у вас упорства, чтобы так долго все подбирать))
Из мыслей по улучшению, пришедших в голову:
Зеркалка на штативе с ручной установкой фокусного расстояния, диафрагмы, выдержки и т.д.
сделать механизм автоспуска (на многих зеркалках есть выносная кнопка для этого, но можно и при помощи МК ее эмулировать) (один проход кадра -> остановка двигателя -> автоспуск камеры -> старт двигателя -> один проход кадра)
а в качестве зубьев неплохо работают диски для протяжки лент в старых фотоаппаратах (по личному опыту могу сказать, что так лучше для ленты, чем мини-валики, напечатанные на принтере)
svema0705 Автор
17.01.2025 13:47Выскажу своё мнение по поводу 1 и 2 пункта. Знали бы вы, насколько точно вы попали в цель. Ваш комментарий можно использовать как спойлер к следующим частям :)
а в качестве зубьев неплохо работают диски для протяжки лент в старых фотоаппаратах
А вот здесь я и правда не задумывался об этой идее! Вот это вы очень верно подметили. Напечатанные валики с зубчиками немного небрежно обходятся с плёнкой создавая риск разрыва основы в области отверстий
Javian
17.01.2025 13:47Зеркалка может через чур дорого при её отсутствии. Часто видел использование цифровых мыльниц -на ярком источнике они дают хорошую картинку. И автоспуск у многих есть.
aruslantsev
17.01.2025 13:47По поводу пункта 1 я бы очень сильно задумался о ресурсе. Или использовать что-то с электронным затвором. Потому что 1 минута видео - это 1440 кадров. Если считать ресурс затвора около 500к кадров, то этого хватит примерно на 6 часов видео.
Dm_Dm
17.01.2025 13:47Пробовал переснять айфоном 30-летние негативы кодак голд. Получился лютый трэш :(
aMster1
17.01.2025 13:47Читал статью, все эти "напечатал" и терзала меня мысль - а неужели нельзя найти старый проектор, выкинуть из него все ненужное и прикрутить "сканер"? Там ведь чистая механика, причём разработанная инженерами ( а не "я прикинул - и так сойдет" Вовка_и_так_сойдет.jpg), расчитанная на долговременную работу...
Или например камеру?
svema0705 Автор
17.01.2025 13:47Поначалу я так и хотел сделать. Но если вы зайдёте, например — на авито или мешок, то по запросу 35мм кинопроектор/кинокамера увидите очень высокие цены на имеющиеся предложения. В текущее время эта техника представляет собой куда больше коллекционную ценность
Если смотреть только со стороны финансовых затрат, то печатать проектор дешевле чем покупать и адаптировать готовые решения
phlykov
17.01.2025 13:47Спасибо, очень увлекательно написано.
Позволю себе поделиться опытом по печати АБС.
1. Стекло для стола принтера можно взять сдвижное от старой советской книжной полки. Их время от времени выбрасывают на помойку. Такое стекло достаточно ровное, его легко отрезать стеклорезом.
2. Вместо клея-карандаша можно использовать лак для волос.
svema0705 Автор
17.01.2025 13:47А можете, пожалуйста, подсказать примеры какой лак можно использовать? Я попробую при следующих печатях
safari2012
Интересно, можно ли избавиться от характерного биения кадров более точной механикой, меньшими люфтами (или замедлением) или само по себе расположение кадров на плёнке имеют это биение?
vvbob
Думаю это проще пофиксить обработкой на компе.
svema0705 Автор
Я уверен что можно, и даже нужно. Например одна из идей, которая как-то поселялась в голове предлагала покрасить основу в области перфорации с одной стороны в чёрный цвет и с помощью фотодатчика искать границы дырок и когда оная будет найдена - останавливать. Вторым вариантом, без окрашивания, является вариант с "лапкой"
Второй вариант предлагает использовать АЦП. Заранее известно, что чтобы сменить кадр нужно протащить плёнку ровно на 5 дырок перфорации и при этом известно что для этого нужно совершить 3200 микрошагов. Так вот, второй вариант предлагает внести некоторую гибкость в поведении привода ЛПМ - первые 4 дырки(~2560 микрошагов) тащить плёнку в слепую, а уже на 5й дырке проводить "доводку" по показаниям АЦП и таким образом скорость двигателя сначала замедлится слегка, а затем остановится когда будет достигнуто нужное значение с АЦП. Уровень на делителе прямо привязан к положению дырки в плоскости, что позволит даже составить карту расположения перфорации - обычная задача с прямоугольным треугольником где известна гипотенуза - лапка, и катет - высота между плёнкой и осью, найти второй катет вопрос на одну минуту =)
Я хотел осуществить такую идею, но подумал что это излишне усложнит конструкцию
you_been_pwn3d
А если поиск по границам кадра организовать? (что-то вроде rpi+камера для неё+cv2?)
Насколько я помню, часть плёнки с кадром всегда светлее, чем буферная часть между кадрами. То есть или при помощи фотодиода (но тогда нужно делать механическую штангу для считывания (как у считывающих головок в hdd, точка А <-> точка Б)), или при помощи той же камеры с rpi и cv2 можно просто по цвету отличать, где сам кадр, а где буфкр.
Ну и плёнку можно в реверс крутить (только с фотодиода алгоритм придётся несколько изменить).
PereslavlFoto
В специальных сканерах для фотоплёнки сделан поиск по границам кадра и подача плёнки точно по границе кадра. Получается примерно в 3/4 случаев.
svema0705 Автор
Я стабилизацию по итогу проводил трекая дырку перфорации в Davinci Resolve, и потом при возможности трекал границу дырок, которые перенеслись с плохо приложенного контратипа. Но работа в Resolve довольно душная т.к некоторые алгоритмы работы с изображением не оптимизированы под видеокарту(там всё пишется на python)