banner
Lar / Notícias / Como fazer um scanner automático de filme de 35 mm com Arduino Nano e Python
Notícias

Como fazer um scanner automático de filme de 35 mm com Arduino Nano e Python

Mar 09, 2024Mar 09, 2024

Esperar enquanto os scanners de mesa digitalizam um filme negativo colorido não é motivo de entusiasmo. Este processo e a subsequente pré-correção de cores podem levar de uma a duas horas.

Uma configuração típica de digitalização de câmera digital inclui uma câmera digital, um tripé (ou suporte de cópia) e um suporte de filme. Entre os 3, imagino que o item mais escasso seja o porta-filme. Felizmente, empresas como a Negative Supply começaram a fabricar esses tão necessários suportes de filmes. Mas estes também podem ser bastante caros. Felizmente, qualquer porta-filme DIY feito de papelão que seja capaz de empurrar e puxar um filme não cortado de formato 135 (35 mm) por meio de um sistema de eixo simples funcionará muito bem. Mais sobre isso mais tarde!

Um pouco de histórico. De cara, devo dizer que não sou afiliado ao Negative Supply, Capture One ou Negative Lab Pro. Acontece que possuo seus produtos e gosto de usá-los (por enquanto). Antes, eu operava o venerável Epson V600 para digitalizar filmes. Isso foi muito bom, pois me permitiu digitalizar meus próprios filmes, mas a velocidade não estava lá. Além disso, eu não estava gostando completamente dos grãos que recebia.

Dito isto, as minhas razões pelas quais decidi fazer este projeto são mais multifacetadas. Gosto de apoiar a comunidade cinematográfica e empresas centradas no cinema, como Negative Supply, Lomography e Negative Lab Pro. Também gosto da ideia de impulsionar ligeiramente a comunidade DIY em direção a esse nicho de domínio. Por último, eu também queria programar um microcontrolador pela primeira vez. Assumir este projeto me trouxe tantas coisas. Admito que há apenas um mês não sabia a diferença entre um Arduino e um Raspberry Pi.

Depois de escolher aleatoriamente um Arduino, principalmente por causa de seu preço, precisei encontrar um problema para resolver.

Isso NÃO demorou muito! Primeiro resolvi meu problema de desenvolvedor UniRoller, que foi resultado do uso de um tanque especialista JOBO 3010. E então me concentrei em regar automaticamente meus tomates durante as caminhadas. E meu projeto final e atual foi corrigir esse problema que tive com a digitalização de filmes. Isso também me deu uma desculpa para praticar alguma programação em Python.

Até hoje, concluí dois programas separados de digitalização de filmes. Um escrito em linguagem Python e outro escrito em C++ (também conhecido como esboço do Arduino). Ambos usam o mesmo hardware, mas existem grandes diferenças na forma como funcionam. Um é habilitado pela visão computacional Python e é totalmente autônomo (posicionamento automatizado, captura de fotos e passagem para o próximo quadro). O outro apenas mecaniza a progressão do filme. O usuário faz as correções necessárias na posição do filme e depois tira a foto usando os botões do controlador.

Para implementar este projeto conhecer Python (C/C++ para Arduino) seria o ideal, mas não é necessário clicar no botão executar em um navegador que roda Jupyter Notebook (encontrado no Anaconda). Dito isto, o usuário é obrigado a baixar Python e 4 bibliotecas. Eu sugiro fortemente o pacote Anaconda porque é uma solução única, com uma comunidade online muito rica.

Após esta instalação, as bibliotecas Python, Numpy, pyFirmata, SciPy e cv2 também são necessárias. Você pode instalar essas bibliotecas Python usando o Anaconda-Navigator ou PIP install em do terminal. A internet está repleta de tutoriais sobre isso. Dito isto, usei a interface web Jupyter para criar e executar o código Python. Esses programas terão uma extensão ipynb. No entanto, seria melhor começar instalando o IDE do Arduino, pois é aqui que tudo começa (os scripts do Arduino têm uma extensão .ino). Haverá mais detalhes sobre isso mais tarde.

Ok, vamos passar para a configuração incrível:

Vamos ver essa configuração em ação!

Modo 1: Somente Arduino e usando correção manual de posição:

Modo 2: Correção automática com Python:

Modo 3: Arduino mais Python em ação em um porta-filme de papelão DIY: