こんにちは、Habr!
私の趣味の1つは、どんなに汚い写真であってもです。 半年前、タイムラプスの作成について考えました。 タイムラプスを作成するには、カメラのシャッタースピードを設定できるタイマーが必要です。 既製の安価なソリューションを探して、ebayでデバイスを注文する試みがありましたが、Russian Postが待望のタイマーを2回失ったため、自分で作ることにしました。

コンセプト開発
このデバイスの考え方はシンプルです。ポテンショメーターからの信号はコントローラーのADCに供給され、それによってカメラへの出力信号の間隔が設定されます。 この間隔は2つのインジケーターに表示され、3番目のインジケーターは間隔の測定単位(秒または分)を示し、ポテンショメーターの値が1秒以上変化していない場合はポイントを点灯します。 この指示は、以下で説明する1つの問題を解決するために必要でしたが、最終的には不必要ではありませんでした。 また、デバイスには、シャッターとフォーカスに手動で信号を適用するためのボタンがいくつか用意されています。
7つのセグメントインジケータの管理は非常に簡単です。

デバイスの概略図

彼は
Eagle-Cadでボードを広げました。 当然、SMDエレメント上ですべてを行い、箔に印刷し、塩化第二鉄でエッチングできる限りコンパクトにしようとしました。 その結果、5x5 cmのボードが登場しました。

ライブ。

その後、彼は図面をテキソライトに転写し、エッチングして錫メッキしました。 写真の結果。

私は初めてマスクを適用しようとしましたが、最初のパンケーキはゴツゴツしていました。

ファームウェア
ほとんどのコンポーネントをはんだ付けした後、ファームウェアを使用する番になりました。 まず、
Arduino NGブートローダーを
ATmega8Lに追加します。 次に、プログラムコードを記述します。
Arduino NGは
ATmega8に基づいており、8 MHzのクォーツで動作する
ATmega8Lとは異なり、16 MHzのクォーツで動作するため、すでに最初の段階で、タスクはそれほど単純ではないことに
気付きました 。 しかし、インターネット上の利点は、このトピックに関する多くの情報です。たとえば、8Lの8 MHzクォーツで
Arduinoを作成するのに役立つブートローダー
(ブートローダーへのリンク)です。 Arduino IDEからアップロードしました。 悲しいかな、最初のスケッチをフラッシュした後、ブートローダーは常にクラッシュしました。 この問題を修正できなかったため、再入力する必要がありました。 適切にロックする方法を知っている人がいれば、喜んで手伝います。
その後、スケッチコードの作成を開始しましたが、プログラミングの知識は新入生のPascalとSTM8の簡単な例に限られているため
、ftp27の同僚に助けを求めました。
主な問題は、写真を撮るためにタイマーをカウントダウンしながら、動的な表示サイクルを維持することでした。 幸いなことに、
Arduinoは見事な
mills()関数を提供し、デバイスがオンになってからのミリ秒数を返します。 デバイスを1日以上使用することを意図していないため、この機能はタイミングに最適です。
このプログラムはADCから値を読み取り、タイミングが変更されたかどうかを確認し、変更された場合は新しいタイマーで写真を撮ります。 ポテンショメータに触れなくてもADCの値は非常に顕著に動作するため、16回以内にとることが決定されました。
さらに節約するために、ポテンショメータ値の最後の変更の10秒後にディスプレイをオフにすることにしました。 30 mAを節約-些細なことですが、素晴らしい。
すべてのファームウェアおよび回路ファイルはここで見つけることができます
(リンク) 。
デバイスの組み立て
一連のテストと最終ファームウェアの注入の後、残りの要素がはんだ付けされました。 次のタスクは、この奇跡をすべてコンパクトなケースに収めることでした。 ケースとしては、靴箱のスポンジボックスが理想的でした。 それを黒く塗り、必要な穴を開けた後、信頼性のためにボードを取り付け、接着剤で密封しました。
に

後

その結果、200ルーブルのコストで適切なデバイスが出てきました。


もちろん、
荒れ果てた道に沿って
NE555ですべてを行うこともできますが、タイマー時間の表示とより便利な選択が本当に必要でした。
同じ日に、彼らは職場の
gif 8Mbの窓から最初の
微速度撮影を直接撮影しました。