趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。※サイト移転しました(tomono.eleho.net ⇒ tomono.tokyo)
RSS icon
  • TimeLapse用タイマーの製作

    投稿日 2012年 6月 2日 コメントはありません

    金環日食を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が必要になってしまっています。これを無しにする方法は考えようかな、と思っています。


    コメントをどうぞ(日本語のみ/Only in Japanese)

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