EFレンズのArduinoによる制御
Canon EFレンズのArduino制御
冷却CCDカメラのカメラレンズを取り付けて、パトロールを行うことを考えた時に、キャノンEFレンズの場合は、そのままでは絞りが制御できないので困ってしまいます。またせっかく合焦モータが内蔵されているのにそれを使わない手はないと思います。そうなると、カメラボディーなしで独立してレンズを制御したくなります。
そこで、手軽にソフト開発が出来るので有名なワンチップマイコンボードの一つであるAruduinoを使って、EFレンズの焦点や絞りを制御するために、情報を集めてみました。
- 大元のロシア語のWebぺージ(Google翻訳を利用すると何が書いてあるかくらいはわかりました)
http://www.ixbt.com/digimage/canonautosonyl.shtml EFレンズをSonyのミラーレスカメラボディに取り付けて絞りを制御する工作でした。 Arduinoのスケッチのソースも公開されていて、大変参考になりました。
- そこに掲げてある接続図
- こちらは英語ですが、直接レンズを制御するのではなくて、EOSボディ経由でAruduinoから制御するもののようです。ニコンやオリンパスの情報も書いてある。
http://www.circuitsathome.com/camera-control/arduino-based-controller-for-canon-eos-cameras
- そのプログラムソースでGithub上に置いてある。
https://github.com/felis/Arduino_Camera_Control
EOS Kissモデル名 日欧対照表(欧米のWebサイトを参考にする際に必要)
EOS Kissでは日本語の機種名と外国でのモデル名は異なるので以下の対照表を用いる
日本機種名 | ヨーロッパモデル名 |
EOS Kiss デジタル | Canon EOS 300D |
EOS Kiss デジタル N | Canon EOS 350D |
EOS Kiss デジタル X | Canon EOS 400D |
EOS Kiss X2 | Canon EOS 450D |
EOS Kiss X3 | Canon EOS 500D |
EOS Kiss X4 | Canon EOS 550D |
EOS Kiss X5 | Canon EOS 600D |
EOS Kiss X6i | Canon EOS 650D |
EOS Kiss X7i | Canon EOS 700D |
Arduinoとは
Arduino[発音はアルドゥイーノとかアルデュイーノくらいでしょうか]の概要をつかむには
http://pc.watch.impress.co.jp/docs/2008/1218/musashino023.htm
とか
http://n.mtng.org/ele/arduino/
とか
がよいでしょう。
EFレンズ SPI通信コマンド
https://pickandplace.wordpress.com/2011/10/05/canon-ef-s-protocol-and-electronic-follow-focus/ より
コマンド(16進) | (10進) | レンズの応答 | 内容 |
$97$01(または$CA) | 151+01 | 7bytes | レンズの情報を問う: レンズID;Min/Max zoom; Protocol version; ブランド名 |
$B0 | 177 | 4bytes | 絞りの最大/最小値 |
$A0 | 160 | 2bytes | 現在のズーム値 |
$07$13+$xx | 07+19+yy | 1byte($11=17) | $xx段まで絞りを開ける/閉じる。Sxxは開放値からの段数 |
$13$80 | 19+128 | 1byte($11=17) | 再び開放にする |
$0A | 10 | レンズはビジーか(レンズの応答は$AA=170) | |
$C0 | 192 | USMモータのカウント値(相対値) | |
$05 | 05 | 焦点リングをAFの最小へ回す | |
$06 | 06 | 焦点リングをAFの最大へ回す | |
$44+$xx+$xx | 68+yy+yy | 焦点リングをSxxxxステップ回す(現在の値からの正値あるいは負値。1's complements) |
技術的な覚書きへ戻る
10189
Keyword(s):[CanonEFレンズ] [マイコン制御] [Aruduino]
References:[技術的な覚書き]