TimeLapse用タイマーの製作

金環日食をEOS Utilityで連続撮影したものをAvidemuxでつないでみたら面白かったのに味をしめて、TimeLapse撮影用のタイマーを製作してみました。

必要要件は、

  • 電池で動作すること
  • 現地では単体で動作可能なこと
  • きめ細かい設定ができること
  • 製作が簡単なこと
  • 手持ちのカメラであるCanon EOS Kiss X2およびオリンパスSP-560UZで動作すること
    (SP-560UZはレリーズケーブルはつくし、マニュアルモードはあるしで、多分TimeLapseに向いていると思う・・・)

などを考えました。これらの要件を以下のような設計仕様に落とします。

  • 電池はなるべく小型化することを考えて単4電池1本の構成とし、HT7733Aによるステップアップレギュレータで3.3Vを生成することにしました。
  • きめ細かい設定については、制御はワンチップマイコン(PIC16F1823)で行い、設定は115.2kbpsのシリアルUART経由で行うことにしました。シリアル接続は秋月電子の新製品のケーブルを使えるようにしました。
  • 設定情報はPIC16F1823の内部のEEPROMに保存することとします。
  • 現地の状況に応じて設定を変える際にPCを必要としないように、設定は16種類をあらかじめEEPROMに保存しておき、ロータリーDIPSWで選択するようにします。
  • 動作状況がわかるようにLEDを一つ取り付けて、状態に応じてLEDを点滅、点灯させます。

で、適当に回路図を引きます。ちゃちゃっと試してみる版の回路図なので、デジタルトランジスタのDTC123Aをはじめとして、適当なシンボルを使っています。

そして、ちゃちゃっと秋月ユニバーサル基板で製作しました。ケースは100円ショップで見つけたポリプロピレンのケースにハンダごてでケーブルを通すための溝をつけました。

カメラ側は2.5mmのステレオミニプラグになっていて、 EOS KissX2につなぐ場合はそのまま接続(まだ試してません)、SP-560UZにつなぐ方は以前改造したリモートレリーズに接続します。

接続するとこんな感じになります。

HITECH-Cでソフトを作って動作させてみると、電池の消費電流は撮影直前のLEDの点灯が多い時間帯で20mA程度、撮影の合間の待ち時間では10mA程度でした。単4のエネループの容量は700mAhですから、1回の充電で20時間程度は動作しそうです。プログラムの内容としてはもう少し機能を追加したい所でしたが、ROMもRAMもケチケチで作っても95%程度使ってしまっており拡張の余地はありません。

8bitのPICではスタックポインタがない(正確にはスタックフレームが作れない)ので、ローカル変数も静的にメモリ割り当てされてしまうように見えます。そのために、メモリを減らそうと思うとコードサイズが増えてしまいます。PIC12F1822/16F1823は32MHz動作するようになったため、外付けデバイス無しでUARTで115.2kbpsが使えて、いろいろ便利な面はあるのですが、所詮アーキテクチャが・・・・なので、簡単な用途にしか使いにくいところです。

拡張の余地があれば、FusionPCBで専用基板を作ってみようかとも思っていたのですが、拡張の余地がないのでは面白くないので、専用基板を作るのはやめにしました。(ライブラリを作る手間もかかる割りに、面白いことができないのでは・・・ね)

ただ、今回の製作では設定にPCが必要になってしまっています。これを無しにする方法は考えようかな、と思っています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)