banner
ホームページ / ニュース / Arduino NanoとPythonで自動35mmフィルムスキャナを作る方法
ニュース

Arduino NanoとPythonで自動35mmフィルムスキャナを作る方法

Mar 09, 2024Mar 09, 2024

フラットベッド スキャナーがカラー ネガ フィルムをスキャンしている間、待つのは楽しいことではありません。 このプロセスとその後の色事前補正には 1 時間から 2 時間かかる場合があります。

一般的なデジタル カメラのスキャン設定には、デジタル カメラ、三脚 (またはコピー スタンド)、およびフィルム キャリアが含まれます。 3つの中で最も希少なアイテムはフィルムキャリアではないでしょうか。 幸いなことに、Negative Supply などの企業が、これらの切望されていたフィルムキャリアの製造を開始しました。 しかし、これらはかなり高価になる可能性もあります。 幸いなことに、シンプルなシャフト システムを介してノーカット 135 フォーマット (35mm) フィルムを押したり引いたりできる、厚紙で作られた DIY フィルム キャリアがうまく機能します。 それについては後で詳しく説明します。

背景について少し説明します。 初めに言っておきますが、私は Negative Supply、Capture One、Negative Lab Pro とは無関係です。 私はたまたま彼らの製品を所有しており、(今のところ)それを使用するのが好きです。 以前は、フィルムのスキャンに由緒正しい Epson V600 を使用していました。 これは自分のフィルムをスキャンできるので非常に便利でしたが、速度はそこまでではありませんでした。 さらに、私は自分が得ている穀物を完全に楽しんでいませんでした。

そうは言っても、私がこのプロジェクトを作ろうと思った理由はもっと多面的です。 私は映画コミュニティや、Negative Supply、Lomography、Negative Lab Pro などの映画中心の企業をサポートすることを楽しんでいます。 DIY コミュニティをこのニッチな領域に向けて少し揺さぶるというアイデアも気に入っています。 最後に、私も初めてマイクロコントローラーをプログラミングしてみたかったのです。 このプロジェクトに参加して、本当にたくさんのことを考えました。 正直、ほんの 1 か月前までは、Arduino と Raspberry Pi の違いがわかりませんでした。

主に価格のせいで、ランダムに Arduino に落ち着いた後、解決すべき問題を見つける必要がありました。

それほど時間はかかりませんでした。 私はまず、JOBO エキスパート タンク 3010 の使用に起因する UniRoller 開発者の問題を解決しました。次に、ハイキングに行くときにトマトの苗に自動的に水をやることに重点を置きました。 私の最後の現在のプロジェクトは、フィルムのスキャンで発生したこの問題を解決することでした。 これは、Python プログラミングを練習する口実にもなりました。

今日の時点で、2 つの別々のフィルム スキャン プログラムを完了しました。 1 つは Python 言語で書かれ、もう 1 つは C++ で書かれています (Arduino スケッチとも呼ばれます)。 どちらも同じハードウェアを使用しますが、機能には大きな違いがあります。 1 つは Python コンピューター ビジョンによって実現され、完全に自律的です (自動位置決め、写真撮影、次のフレームへの移動)。 もう 1 つは、映画の進行を機械化するだけです。 ユーザーはフィルムの位置を必要に応じて修正し、コントローラーのボタンを使用して写真を撮影します。

このプロジェクトを実装するには、Python (Arduino の場合は C/C++) を知っていることが理想的ですが、Jupyter Notebook (Anaconda にあります) を実行するブラウザーで実行ボタンをクリックする必要はありません。 ただし、ユーザーは Python と 4 つのライブラリをダウンロードする必要があります。 Anaconda バンドルは、非常に豊富なオンライン コミュニティを備えたワンショップ ソリューションであるため、強くお勧めします。

このインストール後、Python ライブラリ、Numpy、pyFirmata、SciPy、および cv2 も必要になります。 これらの Python ライブラリは、Anaconda-Navigator を使用するか、ターミナルから PIP インストールを使用してインストールできます。 インターネットには、これに関するハウツー チュートリアルがたくさんあります。 そうは言っても、Python コードの作成と実行には Jupyter Web インターフェイスを使用しました。 これらのプログラムには ipynb 拡張子が付いています。 ただし、ここからすべてが始まるため、Arduino IDE をインストールすることから始めることをお勧めします (Arduino スクリプトの拡張子は .ino です)。 これについては後ほど詳しく説明します。

さて、実際の素晴らしいセットアップに移りましょう:

この設定が実際に動作する様子を見てみましょう。

モード1: Arduino のみ、手動で位置を修正する場合:

モード2: Pythonによる自動修正:

モード3: DIY 段ボールフィルムキャリア上で動作する Arduino と Python: