以下、図面を参照して、本発明の実施形態を説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態である撮像システムを構成するデジタル一眼レフカメラ及びデジタル一眼レフカメラのカメラ本体に装着された発光装置の一例としてのストロボ装置を示す概略側面図である。図2は、図1に示す撮像システムの制御系を説明するブロック図である。なお、本実施形態では、撮像装置としてデジタル一眼レフカメラを例示するが、これに限定されない。
本実施形態の撮像システムは、図1及び図2に示すように、デジタル一眼レフカメラのカメラ本体100の正面側(被写体側)に交換式のレンズユニット200が着脱可能に装着されている。また、カメラ本体100の上面部には、ストロボ装置300が着脱可能に装着されている。
まず、カメラ本体100の構成について説明する。図1及び図2において、カメラ制御部101は、撮像システム全体を司る。カメラ制御部101は、例えばCPU、ROM、RAM、入出力制御回路(I/Oコントロール回路)、マルチプレクサ、タイマー回路、EEPROM、A/D、D/Aコンバータ等を含むマイコン内蔵ワンチップIC回路構成となっている。
撮像素子102は、赤外カットフィルタやローパスフィルタ等を含むCCDセンサ、CMOSセンサ等で構成され、レンズユニット200のレンズ群202を通過した被写体像が結像される。シャッタ103は、撮像素子102を遮光する位置と撮像素子102を露光する位置とに移動する。
メインミラー104は、ハーフミラーで形成され、サブミラー115とともに、ミラーユニットを構成する。ミラーユニットは、ファインダ観察時に撮影光路に進入し、撮影時に撮影光路から退避する。そして、ファインダ観察時には、レンズ群202を通過した光束の一部はメインミラー104で反射されてピント板105に導かれ、メインミラー104を透過した光は焦点検出回路(AF回路)107の測距センサへ導かれる。一方、撮影時には、レンズ群202を通過した光束は、撮像素子102に導かれて結像する。
ピント板105には、被写体像が結像し、結像した被写体像はペンタプリズム114を介して測光回路(AE回路)106の測光センサ及び不図示の光学ファインダに導かれ、これにより、ファインダ像を観察することができる。なお、図2では、ミラーユニット、ピント板105及びペンタプリズム114の図示は省略している。
AE回路106は、測光センサを備え、ペンタプリズム114を介して導かれた被写体像を複数の領域に分割し、それぞれの領域で測光を行う。AF回路107は、複数の測距ポイントを有する測距センサを備え、各測距点のデフォーカス量などの焦点検出情報を出力する。
ゲイン切り換え回路108は、撮像素子102から出力される信号を増幅させる。ゲイン切り換え回路108によるゲインの切り換えは、撮影の条件やユーザ操作等に応じてカメラ制御部101により行われる。A/D変換部109は、撮像素子102から出力される増幅されたアナログ信号をデジタル信号に変換する。タイミングジェネレータ(TG)110は、撮像素子102の増幅されたアナログ信号の入力とA/D変換部109の変換タイミングを同期させる。信号処理回路111は、A/D変換部109でデジタル信号に変換された画像データに対して信号処理を行う。
通信ラインSCは、カメラ本体100とレンズユニット200及びストロボ装置300とのインタフェースとしての信号ラインであり、例えば、カメラ制御部101をホストとしてデータの交換やコマンドの伝達などの情報の通信を相互に行う。
本実施形態では、通信ラインSCの一例として、図2に示す端子120及び端子130により3端子式のシリアル通信を行う。端子120は、カメラ本体100とレンズユニット200の通信の同期をとるためのSCLK_L端子、レンズユニット200にデータを送信するMOSI_L端子、レンズユニット200から送信されたデータを受信するMISO_L端子を含む。また、端子120は、カメラ本体100とレンズユニット200との両方を接続するGND端子も含む。
端子130は、カメラ本体100とストロボ装置300の通信の同期をとるためのSCLK_S端子、カメラ本体100からストロボ装置300にデータを送信するMOSI_S端子、ストロボ装置300から送信されたデータを受信するMISO_S端子を含む。また、端子130は、カメラ本体100とストロボ装置300との両方を接続するGND端子も含む。
図3に、端子130を介したデータ通信例を示す。図3(a)は、データ通信のタイミングを示す図である。図3(a)に示すように、カメラ制御部101からストロボ制御部310にデータを送信する際には、SCK_S端子の8ビットのクロックに同期してMOSI_S端子より各ビットを0,1とすることでデータをシリアルで送信する。
また、ストロボ制御部310からカメラ制御部101にデータを送信する際には、カメラ制御部101は、SCK_S端子の8ビットのクロックに同期してMISO_S端子より各ビットを0,1とするデータをシリアル受信する。なお、図3(a)は、8ビット(1バイト)通信でSCLK_S信号の立ち上がりで信号の読み書きを行っているが、この8ビット通信をコマンド、コマンドデータ、データと複数回連続で送信を行う。
図3(b)〜図3(e)は、通信される情報の具体例を示す図であり、後述のコマンドリスト(図4)に従い、カメラ制御部101からストロボ制御部310に送信される。
一例として、「カメラからストロボへオートバウンス設定/解除」については、1バイト目にCS通信の80H、2バイト目にコマンド番号011(0BH)、3バイト目にデータ(内容)の01(設定)を16進数から2進数に変換して送信する。
そして、1バイト目には、カメラ本体100からストロボ装置300に情報を送信するとき、コマンドCS:80Hを送信する。カメラ本体100がストロボ装置300から情報を取得するとき、コマンドSC:01Hをカメラ本体100からストロボ装置300へ送信する。
また、2バイト目には、コマンド番号でSC、CSに続く番号(送信時は16進数に変換される)、3バイト目もしくは4バイト目には、設定項目データを、それぞれカメラ本体100及びストロボ装置300の一方が他方に送信する。その他の情報の通信については、図4及び図5に示すコマンドリストの一例を用いて随時説明する。
入力部112は、不図示の電源ボタン、レリーズボタン、設定ボタンなどの操作部を含み、カメラ制御部101は、入力部112への入力操作に応じて各種処理を実行する。レリーズボタンが1段階操作(半押し)されると、レリーズスイッチ(SW1)がオンとなり、カメラ制御部101は、焦点調節や測光などの撮影準備動作を開始する。また、レリーズボタンが2段階操作(全押し)されると、レリーズスイッチ(SW2)がオンとなり、カメラ制御部101は、露光や現像処理などの撮影動作を開始する。
また、入力部112の設定ボタンなどを操作することで、カメラ本体100に装着されるストロボ装置300の各種設定を行うこともできる。液晶装置や発光素子を有する表示部113は、各種設定されたモードやその他の撮影情報などを表示する。
姿勢検出回路140は、姿勢差を検出する回路であり、水平方向の姿勢差を検出する姿勢H検出部140a、垂直方向の姿勢差を検出する姿勢V検出部140b、及び前後方向(Z方向)の姿勢差を検出する姿勢Z検出部140cを有する。姿勢検出回路140には、例えば、角速度センサやジャイロセンサが用いられ、姿勢検出回路140により検出された各方向の姿勢差に関する姿勢情報は、カメラ制御部101に出力される。
次に、レンズユニット200について説明する。レンズ制御部201は、レンズユニット200の各部を制御する。レンズ制御部201は、例えばCPU、ROM、RAM、入出力制御回路(I/Oコントロール回路)、マルチプレクサ、タイマー回路、EEPROM、A/D、D/Aコンバータ等を含むマイコン内蔵ワンチップIC回路構成となっている。
レンズ群202は、フォーカスレンズやズームレンズなどを含む複数枚のレンズで構成されている。なお、レンズ群202には、ズームレンズは含まれなくてもよい。レンズ駆動部203は、レンズ群202に含まれるレンズを駆動する。レンズ群202の駆動量は、カメラ本体100のAF回路107の出力に基づいてカメラ制御部101により演算され、演算された駆動量は、カメラ制御部101からレンズ制御部201に送信される。
エンコーダ204は、レンズ群202の位置を検出し駆動情報をレンズ制御部201に出力する。レンズ制御部201は、エンコーダ204からの駆動情報に基づき、駆動量分だけレンズ駆動部203によりレンズ群202を光軸方向に移動させて焦点調節を行う。絞り205は、絞り制御回路206を介してレンズ制御部201により制御され、レンズ群202を通過する光量を調節する。
次に、ストロボ装置300について説明する。ストロボ装置300は、カメラ本体100に着脱可能に装着されるストロボ本体300aと、ストロボ本体300aに対して上下方向及び左右方向に回動可能に保持される可動部300bとを有する。なお、本実施形態では、ストロボ本体300aの可動部300bが連結される側を上側として可動部300bの回動方向を定義している。ストロボ本体300aは、本発明の装置本体の一例に相当する。
ストロボ制御部310は、ストロボ装置300の各部を制御する。ストロボ制御部310は、例えばCPU、ROM、RAM、入出力制御回路(I/Oコントロール回路)、マルチプレクサ、タイマー回路、EEPROM、A/D、D/Aコンバータ等を含むマイコン内蔵ワンチップIC回路構成となっている。
電池301は、ストロボ装置300の電源(VBAT)として機能する。昇圧回路ブロック302は、昇圧部302a、電圧検出に用いる抵抗302b,302c、及びメインコンデンサ302dを有する。昇圧回路ブロック302は、電池301の電圧を昇圧部302aにより数百Vに昇圧してメインコンデンサ302dに発光のための電気エネルギーを充電させる。メインコンデンサ302dの充電電圧は、抵抗302b,302cにより分圧され、分圧された電圧は、ストロボ制御部310のA/D変換端子に出力される。
トリガー回路303は、放電管305を励起させためのパルス電圧を放電管305に印加する。発光制御回路304は、放電管305の発光の開始及び停止を制御する。放電管305は、トリガー回路303から印加される数KVのパルス電圧を受けて励起し、メインコンデンサ302dに充電された電気エネルギーを用いて発光する。
測距ユニット308は、対象物(被写体や天井等)までの距離を検出するもので、例えば、受光センサを有し、放電管305から照射されて照射方向の対象物で反射された光を受光センサで受光して、対象物までの距離を検出する。あるいは、測距ユニット308は、測距用の光源をさらに有し、測距用の光源から照射されて照射方向の対象物で反射された光を受光センサで受光して、対象物までの距離を検出する。
積分回路309は、フォトダイオード314の受光電流を積分し、その積分結果をコンパレータ315の反転入力端子とストロボ制御部310のA/Dコンバータ端子に出力する。コンパレータ315の非反転入力端子は、ストロボ制御部310のD/Aコンバータ端子に接続され、コンパレータ315の出力は、ANDゲート311の入力端子に接続される。
ANDゲート311のもう一方の入力は、ストロボ制御部310の発光制御端子と接続され、ANDゲート311の出力は、発光制御回路304に入力される。フォトダイオード314は、放電管305から発せられる光を受光するセンサであり、直接またはグラスファイバーなどを介して放電管305から発せられる光を受光する。
反射傘306は、放電管305から発せられる光を反射させて所定の方向へ導く。ズーム光学系307は、光学パネルなどを含み、放電管305との相対位置を変更可能に保持されている。放電管305とズーム光学系307との相対位置を変更することにより、ストロボ装置300のガイドナンバー及び照射範囲を変化させることができる。
入力部312は、電源ボタン、ストロボ装置300の動作モードを設定するモード設定スイッチや各種パラメータを設定する設定ボタンなどの操作部を含み、ストロボ制御部310は、入力部312への入力操作に応じて各種処理を実行する。表示部313は、液晶装置や発光素子を有し、ストロボ装置300の各状態を表示する。
ズーム駆動回路330は、放電管305とズーム光学系307との相対位置に関する情報をエンコーダなどにより検出するズーム検出部330aと、ズーム光学系307を移動させるためのモータを含むズーム駆動部330bとを有する。ズーム光学系307の駆動量は、ストロボ制御部310がレンズ制御部201から出力される焦点距離情報をカメラ制御部101を介して取得し、取得した焦点距離情報に基づき、ストロボ制御部310によって演算される。
バウンス回路340は、ストロボ本体300aに対する可動部300bの左右方向の駆動量(回動角度)を検出するバウンスH検出部340a、及びストロボ本体300aに対する可動部300bの上下方向の駆動量を検出するバウンスV検出部340cを有する。可動部300bの左右方向及び上下方向の駆動量は、ロータリーエンコーダやアブソリュートエンコーダを用いて検出する。また、バウンス回路340は、可動部300bを左右方向に駆動するバウンスH駆動部340b、及び可動部300bを上下方向に駆動するバウンスV駆動部340dを有する。ここで、バウンスV駆動部340dは、本発明の第1駆動手段の一例に相当し、バウンスH駆動部340bは、本発明の第2駆動手段の一例に相当する。
姿勢検出回路360は、ストロボ装置300の姿勢差を検出する回路であり、水平方向の姿勢差を検出する姿勢H検出部360a、垂直方向の姿勢差を検出する姿勢V検出部360b、及び前後方向(Z方向)の姿勢差を検出する姿勢Z検出部360cを有する。姿勢検出回路360には、例えば、角速度センサやジャイロセンサが用いられる。
ストロボ装置300の発光部は、主に、放電管305、反射傘306、及びズーム光学系307で構成され、発光部の照射範囲は、ズーム光学系307の移動により変化し、発光部の照射方向は、可動部300bの上下方向及び左右方向の回動により変化する。
次に、図6乃至図8を参照して、ストロボ装置300の可動部300bの回動範囲及び駆動量の検出例について説明する。
図6は、可動部300bの上下方向及び左右方向の回動動作を説明する図である。図7は、可動部300bが上下方向及び左右方向に回動した際のロータリーエンコーダの出力を示す図である。図8は、ロータリーエンコーダのグレーコードと可動部300bの回動角度の割り振りを示す図である。
図6(a)に示すように、可動部300bは、ストロボ本体300aに対して第1軸を中心として上下方向(第1方向)に回動可能に支持されている。また、図6(b)に示すように、可動部300bは、ストロボ本体300aに対して第2軸を中心として左右方向(第1方向と略直交する第2方向)に回動可能に支持されている。
なお、可動部300bの上下方向の位置が図6(a)の0度の状態で、かつ、左右方向の位置が図6(b)の0度の状態を、可動部300bの基準位置とする。この状態では、可動部300bの発光部は、正面側(被写体側)を指向している。また、図6(a)では、可動部300bの上下方向の回動角度を30度、左右方向の回動角度を180度とすることで可動部300bの上下方向の位置を150度の状態にしている。図6の各状態において、円形と線で示す指標は、図7に示すロータリーエンコーダの位置に対応している。
図7(a)及び図7(c)は、可動部300bの上下方向の回動角度を4ビットのグレーコードを使用したロータリーエンコーダで検出する構成を示す図である。図7(b)及び図7(d)は、可動部300bの左右方向の回動角度を4ビットのグレーコードを使用したロータリーエンコーダで検出する構成を示す図である。
可動部300bの上下方向の回動を検出するロータリーエンコーダ及び可動部300bの左右方向の回動を検出するロータリーエンコーダの検出部分は、フォトリフレクタやフォトインタラプタなどを用いる。本実施形態では、ロータリーエンコーダは、図7に示す白い部分を0、黒い部分を1と出力する。また、可動部300bの回動動作時はビット変化の立ち上がりで判別し、停止時はパターンデータを読み込む。
図7及び図8に示すように、ロータリーエンコーダは、可動部300bの回動角度に応じて異なる信号を出力する。このため、バウンスH検出部340a及びバウンスV検出部340cは、可動部300bの駆動量を検出することができる。
次に、図9及び図10を参照して、オートバウンス発光撮影時におけるカメラ本体100の動作を説明する。図9及び図10に示す処理は、カメラ制御部101のROM等に記憶されたプログラムがRAMに展開されて、CPU等により実行される。
図9において、ステップS901では、カメラ制御部101は、電源ボタンがオンされると、自身のメモリやポートの初期化を行う。また、カメラ制御部101は、各種スイッチの状態や予め設定された入力情報を読み込み、シャッタスピードの決め方や絞りの決め方等様々な撮影モードの設定を行い、ステップS902に進む。
ステップS902では、カメラ制御部101は、レリーズボタンが半押し操作されてSW1がオンされると、ステップS903に進む。ステップS903では、カメラ制御部101は、レンズユニット200のレンズ制御部201と通信ラインSCを介して通信してレンズユニット200の焦点距離情報や焦点調節や測光に必要な光学情報を取得し、ステップS904に進む。
ステップS904では、カメラ制御部101は、カメラ本体100にストロボ装置300が装着されているか否かを判定し、カメラ本体100にストロボ装置300が装着されていれば、ステップS905に進み、そうでなければ、ステップS916に進む。
ステップS905では、カメラ制御部101は、ストロボ装置300のストロボ制御部310と通信ラインSCを介して通信し、ストロボIDやメインコンデンサ302dの充電状態を示す充電情報などのストロボ情報をストロボ制御部310から取得する。また、カメラ制御部101は、ストロボ制御部310と通信ラインSCを介して通信し、ステップS903で取得した焦点距離情報をストロボ制御部310に送信して、ステップS906に進む。
これにより、ストロボ制御部310は、受信した焦点距離情報に基づいてズーム光学系307の駆動量を演算し、演算した駆動量に基づいてズーム光学系307を移動させてストロボ装置300の照射範囲を焦点距離に合わせた範囲に変更する。
ステップS906では、カメラ制御部101は、入力部112を介して入力されたストロボ装置300に関する情報をストロボ制御部310に送信する準備をし、ステップS907に進む。ここでは、カメラ制御部101は、入力部112を介して入力されたストロボ装置300に関する情報を判断してコマンド送信に変換する。なお、ステップS906の情報送信準備の詳細については図11を用いて後述する。
ステップS907では、カメラ制御部101は、ステップS906で情報送信準備をしたストロボ装置300に関する情報をストロボ制御部310に送信し、ステップS908に進む。なお、ステップS907の情報送信処理の詳細については図12を用いて後述する。
ステップS908では、カメラ制御部101は、設定されている焦点調節モードが自動焦点調節(AF)モードであるか否かを判定する。そして、カメラ制御部101は、自動焦点調節(AF)モードであれば、ステップS909に進み、手動焦点調節(MF)モードであれば、ステップS911に進む。
ステップS909では、カメラ制御部101は、AF回路107を駆動して位相差検出法による焦点検出動作を行う。また、カメラ制御部101は、焦点調節において複数の測距点から焦点を合わせる測距点(測距ポイント)を公知の自動選択アルゴリズムや入力部112へのユーザ操作などに応じて決定し、ステップS910に進む。
ステップS910では、カメラ制御部101は、ステップS909で決定された測距ポイントをRAMに記憶し、また、AF回路107からの焦点検出情報に基づきレンズ群202の駆動量を演算する。そして、カメラ制御部101は、レンズユニット200のレンズ制御部201と通信ラインSCを介して通信し、演算した駆動量に基づいてレンズ群202を光軸方向に移動させ、ステップS911に進む。
ステップS911では、カメラ制御部101は、バウンス発光撮影時の照射方向を自動的に決定するための動作(以下、オートバウンス動作という)を行うか否かを判定する。オートバウンス動作を行うか否かは、カメラ本体100の入力部112あるいはストロボ装置300の入力部312に含まれるオートバウンス動作を行うか否かを切り換える切り換えスイッチの状態やその他のカメラ本体100の状態などに基づいて判定される。そして、カメラ制御部101は、オートバウンス動作を行う場合は、ステップS912に進み、オートバウンス動作を行わない場合は、ステップS919に進む。
ステップS912では、カメラ制御部101は、オートバウンス動作に関する処理(以下、バウンス処理という)を実行し、ステップS913に進む。なお、バウンス処理の詳細については図13を用いて後述する。ステップS913では、カメラ制御部101は、オートバウンス処理にエラーが生じたか否かを判定する。そして、カメラ制御部101は、オートバウンス処理でエラーが生じた場合は、ステップS914に進み、そうでない場合は、ステップS919に進む。なお、オートバウンス処理にエラーが生じた場合、ステップS912のバウンス処理においてストロボ制御部310からオートバウンス処理にエラーが生じたことを示す情報が送信される。
ステップS914では、カメラ制御部101は、バウンス処理でエラーが生じたことを示す情報を表示部113へ表示して警告し、ステップS915に進む。なお、カメラ制御部101がストロボ制御部310と通信し、ストロボ制御部310によりストロボ装置300の表示部313にバウンス処理でエラーが生じたことを示す情報を表示してもよい。ステップS915では、カメラ制御部101は、発光撮影を行わない設定(非発光設定)に切り換えてステップS919に進む。
一方、ステップS916では、カメラ制御部101は、設定されている焦点調節モードがAFモードであるか否かを判定し、AFモードであれば、ステップS917に進み、MFモードであれば、ステップS919に進む。ステップS917では、カメラ制御部101は、ステップS909と同様の処理を実行してステップS918に進み、ステップS918では、カメラ制御部101は、ステップS910と同様の処理を実行して、ステップS919に進む。
ステップS919では、カメラ制御部101は、AE回路106により測光を行い、測光結果を取得して、ステップS920に進む。ここでは、例えば、AE回路106の測光センサが6つに分割された領域のそれぞれで測光を行う場合、カメラ制御部101は、取得した測光結果としての各領域の輝度値をEVb(i)(i=0〜5)としてRAMに記憶する。
ステップS920では、カメラ制御部101は、ゲイン切り換え回路108により入力部112から入力されたゲイン設定に応じてゲインの切り換えを行う。ゲイン設定とは、例えばISO感度設定である。また、カメラ制御部101は、ストロボ制御部310と通信ラインSCを介して通信して、例えば、切り換え後のゲインを示すゲイン設定情報をストロボ制御部310に送信し、ステップS921に進む。
ステップS921では、カメラ制御部101は、ステップS919にて取得した測光結果(RAMに記憶されている各領域の輝度値)に基づいて、公知のアルゴリズムにより露出演算して露出値(EVs)を決定し、ステップS922に進む。ステップS922では、カメラ制御部101は、ストロボ制御部310から充電完了信号を受信したか否かを判定し、充電完了信号を受信していれば、ステップS923に進み、受信していなければ、ステップS924に進む。
ステップS923では、カメラ制御部101は、ステップS921で演算した露出値に基づいて発光撮影に適した露出制御値(シャッタ速度(Tv)と絞り値(Av))を決定し、ステップS925に進む。一方、ステップS924では、カメラ制御部101は、ステップS921で演算した露出値に基づいてストロボ装置300を発光させない撮影(非発光撮影)に適した露出制御値を決定し、ステップS925に進む。
ステップS925では、カメラ制御部101は、レリーズボタンが全押し操作されてSW2がオンされたか否かを判定し、オンであれば、図10のステップS1001に進み、オンされていなければ、ステップS902に戻る。
図10において、ステップS1001では、カメラ制御部101は、AE回路106によりストロボ装置300が発光していない状態で測光を行い、非発光時の測光結果(非発光時輝度値)を取得して、ステップS1002に進む。このとき、カメラ制御部101は、取得した測光結果としての各領域の非発光時輝度値をEVa(i)(i=0〜5)として、RAMに記憶する。
ステップS1002では、カメラ制御部101は、ストロボ制御部310に対して通信ラインSCを介してプリ発光を命令し、ステップS1003に進む。ストロボ制御部310は、この命令に従って、トリガー回路303と発光制御回路304とを制御して、所定光量でのプリ発光を行う。
ステップS1003では、カメラ制御部101は、AE回路106によりストロボ装置300がプリ発光している状態で測光を行い、プリ発光時の測光結果(プリ発光時輝度値)を取得して、ステップS1004に進む。このとき、カメラ制御部101は、取得した測光結果としての各領域のプリ発光時輝度値をEVf(i)(i=0〜5)として、RAMに記憶する。
ステップS1004では、カメラ制御部101は、露光に先立ってミラーユニットをアップさせて撮影光路から退避させ、ステップS1005に進む。ステップS1005では、カメラ制御部101は、次式のようにして非発光時輝度値EVa(i)とプリ発光時輝度値EVf(i)とに基づいてプリ発光の反射光成分のみの輝度値EVdf(i)を次式を用いて抽出し、ステップS1006に進む。ここでの抽出は、6つの領域ごとに行われる。
EVdf(i)←LN2(2^EVf(i)−2^EVa(i))(i=0〜5)
ステップS1006では、カメラ制御部101は、通信ラインSCを介してストロボ制御部310からプリ発光時の発光量を示すプリ発光情報(Qpre)を取得し、ステップS1007に進む。ステップS1007では、カメラ制御部101は、測距ポイント、焦点距離情報、プリ発光情報(Qpre)およびバウンス通信内容から、6つの領域のうち、どの領域の被写体に対して適正な発光量とするか選択して本発光量を演算し、ステップS1008に進む。
本発光量の演算では、選択した領域(P)の被写体について、露出値(EVs)、被写体輝度(EVb)、及びプリ発光反射光分のみの輝度値EVdf(p)に基づいて、プリ発光量に対して適正となる本発光量の相対比(r)を次式を用いて求める。
r←LN2(2^EVs−2^EVb(p))−EVdf(p)
ここで、露出値(EVs)から被写体輝度(EVb)の伸張したものの差分をとっているのは、ストロボ光を照射したときの露出が外光分にストロボ光を加えて適正となるように制御するためである。
ステップS1008では、カメラ制御部101は、次式により、発光撮影時のシャッタ速度(Tv)、プリ発光の発光時間(t_pre)及び入力部112により予め設定された補正係数(c)を用いて相対比(r)を補正する。そして、カメラ制御部101は、新たな相対比rを演算し、ステップS1009に進む。
r←r+Tv−t_pre+c
ここで、シャッタ速度(Tv)とプリ発光の発光時間(t_pre)を用いて補正するのは、プリ発光時の測光積分値(INTp)と本発光の測光積分値(INTm)とを正しく比較するためである。
ステップS1009では、カメラ制御部101は、通信ラインSCを介してストロボ制御部310へ本発光量を決定するための相対比(r)に関する情報を送信し、ステップS1010に進む。ステップS1010では、カメラ制御部101は、図9のステップS923で決定した絞り値(Av)になるように、レンズ制御部201に指令を出すとともに、決定したシャッタ速度(Tv)になるように、シャッタ103を制御し、ステップS1011に進む。
ステップS1011では、カメラ制御部101は通信ラインSCを介してストロボ制御部310に本発光の命令を行い、ステップS1012に進む。このとき、ストロボ制御部310は、ステップS1009でカメラ制御部101から送信された相対比(r)に基づいて本発光を行う。
ステップS1012では、カメラ制御部101は、ミラーユニットをダウンさせて撮影光路に進入させ、ステップS1013に進む。ステップS1013では、カメラ制御部101は、撮像素子102から出力される信号をゲイン切り換え回路108で設定されたゲインで増幅した後、A/D変換部109でデジタル信号に変換する。そして、カメラ制御部101は、信号処理回路111により、デジタル信号に変換された画像データに対してホワイトバランスなど所定の信号処理を行い、ステップS1014に進む。
ステップS1014では、カメラ制御部101は、ステップS1013で信号処理が施された画像データを不図示のメモリに記録して撮影に関する一連の処理を終了し、ステップS1015に進む。ステップS1015では、カメラ制御部101は、レリーズボタンが半押し操作されてSW1がオンの状態か否かを判定し、SW1がオンであれば、図9のステップS925に進み、SW1がオフであれば、図9のステップS902進む。
なお、図10は、発光撮影に関する処理であり、非発光撮影に関する処理については、ステップS1001以降の処理中で本発光を行うための処理を省略したものとなる。
次に、図11を参照して、図9のステップS906における処理の詳細について説明する。図11に示す処理の設定コマンドの詳細は、図4及び図5に記載されている。
図11において、ステップS1101では、カメラ制御部101は、自身がオートバウンス動作を実行可能なカメラか否かを判定し、実行可能なカメラであれば、ステップS1102に進み、そうでなければ、ステップS1103に進む。
ステップS1102では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS001コマンド:01」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1104に進む。一方、ステップS1103では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS001コマンド:00」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1104に進む。
ステップS1104では、カメラ制御部101は、オートバウンス動作を実行する設定が行われているか解除されているかを判定し、設定が行われていれば、ステップS1105に進み、解除されていれば、ステップS1106に進む。
ステップS1105では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS011コマンド:01」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1107に進む。一方、ステップS1106では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS011コマンド:00」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1107に進む。
ステップS1107では、カメラ制御部101は、カメラ本体100がバウンス発光撮影に最適な照射方向を決定するための情報である対象物との距離を求める方式(測距方式)を設定しているか否かを判定する。そして、カメラ制御部101は、測距方式を設定している場合は、ステップS1108に進み、設定していない場合は、ステップS1109に進む。
ここでの対象物とは、撮影対象となる被写体と、バウンス発光撮影時にストロボ光を反射させる反射物(天井、壁など)である。測距方式の例としては、プリ発光して対象物の反射光量により対象物との距離を測定する「プリ発光方式」、ストロボ装置300の測距ユニット308を用いて対象物との距離を測定する「ストロボ測距方式」などが挙げられる。その他、カメラ本体100とレンズユニット200の焦点調節の結果を用いて対象物との距離を測定する「カメラ測距方式」などがあるが、特に限定されない。
ステップS1108では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS091コマンド」を測距方式の設定内容に応じてカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1109に進む。
一例として、「被写体」、「天井」の区別を上位4ビットに割り当て、順に0,1とし「プリ発光」、「ストロボ測距」、「カメラ測距」の区別を下位4ビットに割り当て、順に0,1,2として組み合わせて表現する。被写体及び天井共に「プリ発光」の設定であれば、「CS091コマンド:データ00 10」をカメラ制御部101の不図示の内蔵メモリに格納する。
同様に、被写体及び天井共に「ストロボ測距」であれば、「CS091コマンドでデータ01 11」をカメラ制御部101の不図示の内蔵メモリに格納する。また、被写体「カメラ測距」、天井「プリ発光」であれば、「CS091コマンド:データ02 10」をカメラ制御部101の不図示の内蔵メモリに格納する。
ステップS1109では、カメラ制御部101は、SW1,SW2の状態を判定し、SW1,SW2がともにオフであれば、ステップS1110に進み、SW1がオンであれば、ステップS1111に進み、SW2がオンであれば、ステップS1112に進む。
ステップS1110では、カメラ制御部101は、「CS151コマンド:データ00」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1113に進む。ステップS1111では、カメラ制御部101は、「CS151コマンド:データ01」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1113に進む。ステップS1112では、カメラ制御部101は、「CS151コマンド:データ02」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1113に進む。
ここで、バウンス角制限について説明する。ここでは、あらかじめストロボ本体300aに対する可動部300bの第1軸を中心とした上下方向の回動動作(上下バウンス)の角度制限を設定するスイッチを設ける。もしくはカメラ制御部101のEEPROMに上下バウンスの角度制限情報を入力して記憶させておく。上下バウンスの角度制限情報の記憶処理は、カメラ制御部101だけではなく、ストロボ制御部310で行ってもよい。また、カメラ制御部101から通信でストロボ制御部310のEEPROMに上下バウンスの角度制限情報を記憶させてもよい。
例として、上下バウンスの角度制限情報(バウンス角制限情報)を「0:90°、1:120°、2:150°」と設定し記憶させておく。また、機構上の制約で可動部300bの第1軸を中心とした上下方向の限界回動角度を120°とする。ここでは、最適なバウンス角度が可動部300bの第1軸を中心とした上下方向の限界回動角度120°までは可動部300bの第2軸を中心とした左右方向の回動動作(左右バウンス)を行う必要がない。また、最適なバウンス角度が可動部300bの上下方向の限界回動角度120°を超えると、可動部300bの第2軸を中心とした左右方向の回動動作を行うか否かを判断する。
ステップS1113では、カメラ制御部101は、EEPROMに記録されたバウンス角制限情報が0:90°、1:120°、2:150°のいずれであるかを判定して、切り替えバウンス角度を決める。ここでの切り替えバウンス角度は、可動部300bの回動動作が第1軸(上下方向)から第2軸(左右方向)に切り替わる可動部300bの第1軸を中心とした上下方向の回動角度のことである。そして、カメラ制御部101は、バウンス角制限情報が0:90°の場合は、ステップS1114に進み、1:120°の場合は、ステップS1115に進み、2:150°の場合は、ステップS1116に進む。
ステップS1114では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS221コマンド:データ03」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1117に進む。ここでは、バウンス角制限情報が「0:90°」であるため、切り替えバウンス角度:禁止とし、可動部300bの第1軸を中心とした上下方向の回動から第2軸を中心とした左右方向の回動への切り替えは行われない(図4及び図5のコマンドリスト参照)。
ステップS1115では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS221コマンド:データ03」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1117に進む。ここでは、バウンス角制限情報が「1:120°」であるため、ステップS1114と同様に、切り替えバウンス角度:禁止とし、可動部300bの第1軸を中心とした上下方向の回動から第2軸を中心とした左右方向の回動への切り替えは行われない。
ステップS1116では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS221コマンド:データ01」をカメラ制御部101の不図示の内蔵メモリに格納し、ステップS1117に進む。ここでは、バウンス角制限情報が「1:150°」であるため、切り替えバウンス角度:120°とし、可動部300bの第1軸を中心とした上下方向の回動角度が120°に達した時点で第2軸を中心とした左右方向の回動への切り替えが行われる。
ステップS1117では、カメラ制御部101は、カメラIDやセンサ情報、その他のストロボ設定情報をカメラ制御部101の内蔵メモリに格納し、図9のステップS907に進む。その他のストロボ設定情報としては、例えば、カメラがライブビュー撮影を行っているか否かを示す情報が挙げられる。この場合、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS231コマンド:データXX」をカメラ制御部101の内蔵メモリに格納する。ここで、データXX:00は、ファインダ使用、データXX:01は、ライブビュー使用とする。
また、その他のストロボ設定情報として、カメラの表示部113がバリアングル動作を行っているか否かを示す情報が挙げられる。この場合、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS241コマンド:データXX」をカメラ制御部101の不図示の内蔵メモリに格納する。ここで、データXX:00は、未使用(バリアングル動作を行っていない)、データXX:01は、使用(バリアングル動作を行っている)とする。
次に、図12を参照して、図9のステップS907における情報送信処理の詳細について説明する。なお、ここでの設定コマンドの詳細は、図4及び図5に記載されている。また、図12の各処理では、図3に示すカメラストロボ間通信のシリアル通信を用いる。更に、図12では、カメラ本体100の処理をステップS1201〜S1209に示し、対応するストロボ装置300の処理をステップS1210,S1211に示している。
まず、カメラ本体100の処理を説明する。図12において、ステップS1201では、カメラ制御部101は、図11のステップS1101の判定結果に応じたデータをストロボ制御部310に送信してステップS1202に進む。ステップS1202では、カメラ制御部101は、図11のステップS1104の判定結果に応じたデータをストロボ制御部310に送信してステップS1203に進む。
ステップS1203では、カメラ制御部101は、図11のステップS1107の判定結果に応じたデータをストロボ制御部310に送信してステップS1204に進む。ステップS1204では、カメラ制御部101は、図11のステップS1109の判定結果に応じたデータをストロボ制御部310に送信してステップS1205に進む。
ステップS1205では、カメラ制御部101は、図11のステップS1113の判定結果であるステップS1114〜S1116に応じたバウンス角制限情報をストロボ制御部310に送信してステップS1206に進む。ステップS1206では、カメラ制御部101は、ステップS1113の判定結果であるステップS1114〜S1116に応じた第1軸切り替えバウンス角情報をストロボ制御部310に送信してステップS1207に進む。
ステップS1207では、カメラ制御部101は、図11のステップS1117で内蔵メモリに格納したライブビュー情報をストロボ制御部310に送信してステップS1208に進む。ステップS1208では、カメラ制御部101は、図11のステップS1117で内蔵メモリに格納したバリアングル動作情報をストロボ制御部310に送信してステップS1209に進む。ステップS1209では、カメラ制御部101は、図11のステップS1117で内蔵メモリに格納したカメラID情報やセンサ情報をストロボ制御部310に送信して図9のステップS908に進む。
次に、ストロボ装置300の処理を説明する。ステップS1210では、ストロボ制御部310は、通信割り込みされると、カメラ制御部101から送信されるデータを受信してステップS1211に進む。ステップS1211では、ストロボ制御部310は、受信したデータをストロボ制御部310の内蔵メモリに格納して処理を終了する。
次に、図13を参照して、図9のステップS912におけるバウンス処理の詳細について説明する。図13に示すバウンス処理は、カメラ制御部101とストロボ制御部310の処理が含まれる。
図13において、ステップS1301では、カメラ制御部101は、ストロボ制御部310からオートバウンスデータを受信してステップS1302に進む。なお、ステップS1301の処理の詳細は図14を用いて後述する。ステップS1302では、カメラ制御部101は、オートバウンス動作が可能か否かを判定し、オートバウンス動作が可能な場合は、ステップS1303に進み、オートバウンス動作が可能でない場合は、バウンス処理を行うことなく図9のステップS913に進む。
ここでは、カメラ制御部101は、カメラ本体100のオートバウンス動作の設定、及び受信したオートバウンスデータに基づくストロボ装置300のオートバウンス動作の可否に基づいてオートバウンス動作が可能か否かを判定する。
ステップS1303では、カメラ制御部101は、バウンス動作の実行指示を送信する準備を行い、ステップS1304に進む。ステップS1304では、カメラ制御部101は、バウンス動作の実行指示をストロボ制御部310に送信し、ステップS1305に進む。なお、ステップS1304の処理の詳細については図15を用いて後述する。
ステップS1305では、カメラ制御部101又はストロボ制御部310は、バウンス発光撮影に最適な照射方向を決定するために被写体までの距離を算出し、ステップS1306に進む。なお、ステップS1305の処理の詳細は図16を用いて後述する。ステップS1306では、カメラ制御部101又はストロボ制御部310は、バウンス発光撮影に最適な照射方向を決定するために天井(壁)までの距離を算出し、ステップS1307に進む。なお、ステップS1306の詳細については図17を用いて後述する。
ここで、ステップS1305及びS1306において、被写体までの距離及び天井(壁)までの距離をカメラ制御部101とストロボ制御部310のどちらで算出するかは、設定した測距方式に基づいて決定される。
その後、カメラ制御部101又はストロボ制御部310は、ステップS1307でバウンス発光撮影に最適な照射方向を決定し、ステップS1308及びステップS1309でバウンス角制限情報及び切り替えバウンス角情報を参照して、ステップS1310に進む。なお、ステップS1307の処理の詳細については図18を用いて後述する。
ステップS1310では、カメラ制御部101又はストロボ制御部310は、最適な照射方向となるようにバウンス駆動制御を行い、ステップS1311に進む。なお、ステップS1310の処理の詳細については図20乃至図22を用いて後述する。ステップS1311では、カメラ制御部101は、バウンス動作の終了指示をストロボ制御部310へ送信し、図9のステップS913に進む。
次に、図14を参照して、図13のステップS1301におけるオートバウンスデータ取得処理について説明する。図14では、カメラ本体100の処理をステップS1401〜S1407に示し、対応するストロボ装置300の処理をステップS1408〜S1426に示している。
まず、カメラ本体100の処理を説明する。図14において、ステップS1401では、カメラ制御部101は、ストロボ制御部310にストロボ装置300がオートバウンス可能か否かを確認するコマンドを送信し、ステップS1402に進む。ステップS1402では、カメラ制御部101は、ストロボ制御部310から送信されるオートバウンス可能か否かの確認に対する返答を受信し、ステップS1403に進む。
ステップS1403では、カメラ制御部101は、ストロボ制御部310にオートバウンスにおける駆動範囲を確認するコマンドを送信し、ステップS1404に進む。ステップS1404では、カメラ制御部101は、ストロボ制御部310から送信されるオートバウンスにおける駆動範囲の確認に対する返答を受信し、ステップS1405に進む。
ステップS1405では、カメラ制御部101は、ストロボ制御部310にオートバウンスにおける対象物の距離を算出するための測距方式を確認するコマンドを送信し、ステップS1406に進む。ステップS1406では、カメラ制御部101は、ストロボ制御部310から送信される測距方式の確認に対する返答を受信し、ステップS1407に進む。ステップS1407では、カメラ制御部101は、ステップS1402、S1404、S1406で受信したデータをカメラ制御部101の内蔵メモリに格納して処理を終了する。
次に、ストロボ装置300の処理を説明する。ステップS1408では、ストロボ制御部310は、通信割り込みされると、カメラ制御部101から送信されるコマンドを受信してステップS1409に進む。ステップS1409では、ストロボ制御部310は、受信したコマンドの内容を判定する。具体的には、ストロボ制御部310は、受信したコマンドの内容が「オートバウンス可能確認」であれば、ステップS1410に進み、「オートバウンス駆動範囲確認」であれば、ステップS1414に進み、「測距方式確認」であれば、ステップS1424に進む。
ステップS1410では、ストロボ制御部310は、オートバウンス可能か否かを判定し、オートバウンス可能であれば、ステップS1411に進み、可能でなければ、ステップS1412に進む。ステップS1411では、ストロボ制御部310は、カメラストロボ間通信(S→C)の「SC001コマンド:01」をストロボ制御部310の内蔵メモリに格納しステップS1413に進む。
一方、ステップS1412では、ストロボ制御部310は、カメラストロボ間通信(S→C)の「SC001コマンド:00」をストロボ制御部310の内蔵メモリに格納しステップS1413に進む。ステップS1413では、ストロボ制御部310は、オートバウンス可能確認の返答としてステップS1411あるいはステップS1412にて内蔵メモリに格納したデータをカメラ制御部101に送信し、処理を終了する。
ステップS1414では、ストロボ制御部310は、オートバウンスの可動部300bの駆動範囲として第1軸を中心とした上下方向及び第2軸を中心とした左右方向の両方が可能か否かを判定する。そして、ストロボ制御部310は、両方可能であれば、ステップS1415に進み、一方のみ可能であれば、ステップS1419に進む。ステップS1419では、ストロボ制御部310は、左右方向のみ可能かを判定し、左右方向のみ可能であれば、ステップS1420に進み、上下方向のみ可能であれば、ステップS1422に進む。
ステップS1415では、ストロボ制御部310は、カメラストロボ間通信(S→C)の「SC020コマンド:データ00」をストロボ制御部310の内蔵メモリに格納しステップS1416に進む。ステップS1416では、ストロボ制御部310は、左右方向の駆動範囲としてカメラストロボ間通信(S→C)の「SC030コマンド:データXX(開始)XX(終了)」をストロボ制御部310の内蔵メモリに格納しステップS1417に進む。
ステップS1417では、ストロボ制御部310は、上下方向の駆動範囲としてカメラストロボ間通信(S→C)の「SC040コマンド:データXX(開始)XX(終了)」をストロボ制御部310の内蔵メモリに格納しステップS1418に進む。
一方、ステップS1420では、ストロボ制御部310は、カメラストロボ間通信(S→C)の「SC020コマンド:データ01」をストロボ制御部310の内蔵メモリに格納しステップS1421に進む。ステップS1421では、ストロボ制御部310は、可動部300bの左右方向の駆動範囲としてカメラストロボ間通信(S→C)の「SC030コマンド:データXX(開始)XX(終了)」をストロボ制御部310の内蔵メモリに格納しステップS1418に進む。
ステップS1422では、ストロボ制御部310は、カメラストロボ間通信(S→C)の「SC020コマンド:データ02」をストロボ制御部310の内蔵メモリに格納しステップS1423に進む。ステップS1423では、ストロボ制御部310は、上下方向の駆動範囲としてカメラストロボ間通信(S→C)の「SC030コマンド:データXX(開始)XX(終了)」をストロボ制御部310の内蔵メモリに格納しステップS1418に進む。
ステップS1418では、ストロボ制御部310は、オートバウンス駆動範囲確認の返答としてステップS1415〜S1417、S1420〜S1423で内蔵メモリに格納したデータをカメラ制御部101に送信し、処理を終了する。
ステップS1424では、ストロボ制御部310は、ストロボ制御部310に対するオートバウンスにおける対象物の距離を算出するための測距方式を判定する。具体的には、ストロボ制御部310は、測距方式が設定されていれば、ステップS1425に進み、測距方式が設定されていなければ、ステップ1426に進む。
ステップS1425では、ストロボ制御部310は、測距方式と対象物の設定内容に応じた「SC090コマンド:XX XX」をストロボ制御部310の内蔵メモリに格納しステップS1426に進む。ステップS1426では、ストロボ制御部310は、測距方式の返答としてステップS1425で内蔵メモリに格納したデータ又は測距方式が設定されていないこと示すデータを送信し、処理を終了する。これにより、カメラ制御部101は、オートバウンスデータを取得する。
次に、図15を参照して、図13のステップS1304におけるバウンス動作実行指示送信処理について説明する。ここでの設定コマンドの詳細は、図4及び図5に記載されている。なお、図15では、カメラ本体100の処理をステップS1501〜S1505に示し、対応するストロボ装置300の処理をステップS1506,S1507に示している。
まず、カメラ本体100の処理を説明する。図15において、ステップS1501では、カメラ制御部101は、バウンス動作時の左右方向の駆動範囲を設定するために「CS031コマンド:データXX XX」をストロボ制御部310に送信してステップS1502に進む。なお、左右方向の駆動範囲を設定しない場合、本ステップは省略される。
ステップS1502では、カメラ制御部101は、バウンス動作時の上下方向の駆動範囲を設定するために「CS041コマンド:データXX XX」をストロボ制御部310に送信してステップS1503に進む。なお、上下方向の駆動範囲を設定しない場合、本ステップは省略される。
ステップS1503では、カメラ制御部101は、姿勢V検出部140a、姿勢H検出部140b、姿勢Z検出部140cの検出結果を示す姿勢差情報として「CS121コマンド:データXX XX XX」をストロボ制御部310に送信する。そして、送信後、ステップS1504に進む。
ステップS1504では、カメラ制御部101は、その他のストロボ設定情報をストロボ制御部310に送信してステップS1505に進む。ステップS1505では、カメラ制御部101は、バウンス動作の実行指示をストロボ制御部310に送信して図13のステップS1305に進む。
次に、ストロボ装置300の処理を説明する。ステップS1506では、ストロボ制御部310は、通信割り込みされると、カメラ制御部101から送信されるデータを受信してステップS1507に進む。ステップS1507では、ストロボ制御部310は、受信したデータをストロボ制御部310の内蔵メモリに格納してバウンス動作を開始する。これにより、カメラ制御部101は、ストロボ制御部310にバウンス動作の実行指示を送信する。
次に、図16を参照して、図13のステップS1305における被写体距離算出処理について説明する。ここでの設定コマンドの詳細は、図4及び図5に記載されている。なお、図16では、カメラ本体100の処理をステップS1601〜S1606に示し、対応するストロボ装置300の処理をステップS1607〜S1613に示している。
まず、カメラ本体100の処理を説明する。図16において、ステップS1601では、カメラ制御部101は、被写体距離を算出するための測距方式を決定し、ステップS1602に進む。ステップS1602では、カメラ制御部101は、測距方式がプリ発光方式か否かを判定し、プリ発光方式と異なる場合は、ステップS1603に進み、プリ発光方式の場合は、ステップS1604に進む。
ステップS1603では、カメラ制御部101は、測距方式がプリ発光方式ではないので、被写体距離情報として「CS111コマンド:データXX」をストロボ制御部310に送信して図13のステップS1306に進む。なお、オートバウンスデータにより測距方式がストロボ測距方式であることを受信している場合には、本ステップは省略される。
ステップS1604では、カメラ制御部101は、プリ発光許可として「CS131コマンド:データ00」をストロボ制御部310に送信してステップS1605に進む。ステップS1605では、カメラ制御部101は、プリ発光命令をストロボ制御部310に送信してステップS1606に進む。
ステップS1606では、カメラ制御部101は、ストロボ制御部310から被写体距離情報を受信し、受信したデータをカメラ制御部101の内蔵メモリに格納して図13のステップS1306に進む。
次に、ストロボ装置300の処理について説明する。ステップS1607では、ストロボ制御部310は、通信割り込みされると、カメラ制御部101から送信されるデータを受信してステップS1608に進む。ステップS1608では、ストロボ制御部310は、受信したデータをストロボ制御部310の内蔵メモリに格納してステップS1609に進む。
ステップS1609では、ストロボ制御部310は、照射方向が被写体方向となるようにバウンス回路340により可動部300bを回動させ、ステップS1610に進む。ステップS1610では、ストロボ制御部310は、プリ発光命令に従って発光制御回路304へプリ発光指示を行い、ステップS1611に進む。ステップS1611では、ストロボ制御部310は、発光制御回路304により放電管305をプリ発光させ、ステップS1612に進む。
ステップS1612では、ストロボ制御部310は、対象物で反射されたプリ発光の反射光を測距ユニット308の受光センサで受光して、受光した反射光の積分値に基づいて被写体距離を算出し、ステップS1613に進む。ステップS1613では、ストロボ制御部310は、算出された被写体距離を示す被写体距離情報として「SC110コマンド:データXX」をカメラ制御部101に送信して処理を終了する。このようにして、バウンス発光撮影に最適な照射方向を決定するための被写体距離を算出する。
次に、図17を参照して、図13のステップS1306における天井(壁)距離算出処理について説明する。ここでの設定コマンドの詳細は、図4及び図5に記載されている。なお、図17では、カメラ本体100の処理をステップS1701〜S1706に示し、対応するストロボ装置300の処理をステップS1707〜S1713に示している。
まず、カメラ本体100の処理を説明する。図17において、ステップS1701では、カメラ制御部101は、天井(壁)距離を算出するための測距方式を決定し、ステップS1702に進む。ステップS1702では、カメラ制御部101は、測距方式がプリ発光方式か否かを判定し、プリ発光方式と異なる場合は、ステップS1703に進み、プリ発光方式の場合は、ステップS1704に進む。
ステップS1703では、カメラ制御部101は、測距方式がプリ発光方式ではないので、天井距離情報として「CS101コマンド:データXX」をストロボ制御部310に送信して図13のステップS1307に進む。なお、オートバウンスデータにより測距方式がストロボ測距方式であることを受信している場合には、本ステップは省略される。
ステップS1704では、カメラ制御部101は、プリ発光許可として「CS131コマンド:データ00」をストロボ制御部310に送信してステップS1705に進む。ステップS1705では、カメラ制御部101は、プリ発光命令をストロボ制御部310に送信してステップS1706に進む。
ステップS1706では、カメラ制御部101は、ストロボ制御部310から被写体距離情報を受信し、受信したデータをカメラ制御部101の内蔵メモリに格納して図13のステップS1307に進む。
次に、ストロボ装置300の処理について説明する。ステップS1707では、ストロボ制御部310は、通信割り込みされると、カメラ制御部101から送信されるデータを受信してステップS1708に進む。ステップS1708では、ストロボ制御部310は、受信したデータをストロボ制御部310の内蔵メモリに格納してステップS1709に進む。
ステップS1709では、ストロボ制御部310は、照射方向が天井方向となるようにバウンス回路340により可動部300bを回動させ、ステップS1710に進む。ステップS1710では、ストロボ制御部310は、プリ発光命令に従って発光制御回路304へプリ発光指示を行い、ステップS1711に進む。
ステップS1711では、ストロボ制御部310は、発光制御回路304により放電管305をプリ発光させ、ステップS1712に進む。ステップS1712では、ストロボ制御部310は、対象物に反射されたプリ発光の反射光を測距ユニット308の受光センサで受光して、受光した反射光の積分値に基づいて天井距離を算出し、ステップS1713に進む。
ステップS1713では、ストロボ制御部310は、算出された天井距離を示す天井距離情報として「SC100コマンド:データXX」をカメラ制御部101に送信して処理を終了する。このようにして、バウンス発光撮影に最適な照射方向を決定するための天井(壁)距離を算出する。
次に、図18を参照して、図13のステップS1307における照射方向決定処理について説明する。ここでの設定コマンドの詳細は、図4及び図5に記載されている。なお、図18では、カメラ本体100の処理をステップS1801〜S1806に示し、対応するストロボ装置300の処理をステップS1807〜S1812に示している。
まず、カメラ本体100の処理を説明する。図18において、ステップS1801では、カメラ制御部101は、カメラ本体100で照射方向を決定する場合は、ステップS1802に進み、ストロボ装置300で照射方向を決定する場合は、ステップS1805に進む。なお、カメラ本体100及びストロボ装置300のいずれも照射方向を決定できる場合は、入力部112を操作してカメラ本体100及びストロボ装置300のどちらで照射方向を決定するかを設定できるようにしてもよい。また、カメラ本体100及びストロボ装置300のいずれか一方しか照射方向を決定できない場合は、どちらで照射方向を決定するかが自動的に設定されるようにしてもよい。
ステップS1802では、カメラ制御部101は、照射方向を決定するため、図13のステップS1305で算出した被写体距離を示す被写体距離情報及びステップS1306で算出した天井(壁)距離を示す天井距離情報を参照し、ステップS1803に進む。
ステップS1803では、カメラ制御部101は、ステップS1802で参照した被写体距離情報、及び天井距離情報に基づいて、バウンス発光撮影に最適な照射方向を決定する。具体的には、最適な照射方向となる可動部300bの回動角度(最適バウンス角)を演算する。回動角度の演算方法については、被写体距離及び天井距離に基づいて演算する方法であれば特に限定されない。
図19は、バウンス発光撮影シーンの一例を説明する図である。図19において、ストロボ装置300のストロボ光の射出面を起点とした被写体までの距離をd0、地面からカメラの光軸までの距離をhc、カメラの光軸からストロボ装置300の可動部300bまでの距離をh0とする。また、ステップS1306で算出したストロボの可動部300bから天井までの距離をh1とすると、地面から天井までの距離hsは、次式(1)で求めることができる。
天井距離hs=h1+h0+hc …(1)
また、被写体に対して最適な反射光が得られる被写体の入射角をθdi0=X°とすると、動作バウンス角θsは、次式(2)より求めることができる。
θs=arctan(h1/b2)=arctan(h1/[{(h1+h0)/tan(θdi0)}−d0]) …(2)
ここで、正面方向を0°とする最適バウンス角θs0は、次式(3)を用いて求めることができる。
θs0=180−θs …(3)
最適バウンス角の角度演算が終了すると、カメラ制御部101は、演算された最適バウンス角を示す角度情報をカメラ制御部101の内蔵メモリに格納してステップS1804に進む。
ステップS1804では、カメラ制御部101は、演算された最適バウンス角を示す角度情報として「CS071:上下データXX」、「CS081:左右データXX」をストロボ制御部310に送信して図13のステップS1308に進む。
一方、ステップS1805では、カメラ制御部101は、角度演算指示として「CS171:00」をストロボ制御部310に送信してステップS1806に進む。ステップ1806では、カメラ制御部101は、ストロボ制御部310から角度情報を受信し、受信したデータをカメラ制御部101の内蔵メモリに格納して図13のステップS1308に進む。
次に、ストロボ装置300の処理について説明する。ステップS1807では、ストロボ制御部310は、通信割り込みされると、カメラ制御部101から送信されるデータを受信してステップS1808に進む。ステップS1808では、ストロボ制御部310は、受信したデータをストロボ制御部310の内蔵メモリに格納してステップS1809に進む。
ステップS1809では、ストロボ制御部310は、照射方向の決定をストロボ装置300で行うか否かを判定し、ストロボ装置300で行う場合は、ステップS1810に進み、ストロボ装置300で行わない場合は、処理を終了する。
ステップS1810では、ストロボ制御部310は、照射方向を決定するため、図13のステップS1305で算出した被写体距離を示す被写体距離情報及びステップS1306で算出した天井(壁)距離を示す天井距離情報を参照し、ステップS1811に進む。
ステップS1811では、ストロボ制御部310は、ステップS1810で参照した被写体距離情報及び天井距離情報に基づいて、バウンス発光撮影に最適な照射方向を決定すし、ステップS1812に進む。なお、照射方向の決定方法については、カメラ本体100側で決定する場合と同様であるため、その説明を省略する。また、オートバウンスに関する通信がないカメラでは、ストロボ装置300側で図18のステップS1803で説明した決定方法により照射方向を決める。
ステップS1812では、ストロボ制御部310は、演算された最適バウンス角を示す角度情報として「SC070:上下データXX」、「SC080:左右データXX」をカメラ制御部101に送信して処理を終了する。このようにして、バウンス発光撮影に最適な照射方向を決定する。なお、バウンス発光撮影に最適な照射方向を決定する方法は上記の方法に限らない。例えば、撮影者による入力部112や入力部312への入力操作に応じて決定してもよい。
次に、図20乃至図22を参照して、図13のステップS1310のバウンス駆動制御処理について説明する。ここでの設定コマンドの詳細は図4及び図5に記載されている。なお、図20乃至図22では、カメラ本体100の処理をステップS2001〜S2013、S2068、S2069に示し、対応するストロボ装置300の処理をステップS2014〜S2067に示している。
まず、カメラ本体100の処理を説明する。図20において、ステップS2001では、カメラ制御部101は、カメラ本体100側でバウンス駆動指示を行うか否かを判定し、カメラ本体100側で行う場合は、ステップS2002に進み、ストロボ装置300側で行う場合は、ステップS2068に進む。ステップS2002では、カメラ制御部101は、図13のステップS1307で算出された最適バウンス角の角度情報を参照し、ステップS2003に進む。
ステップS2003では、カメラ制御部101は、カメラ本体100側でバウンス駆動指示を行うことを伝えるため「CS181コマンド:データ01」をストロボ制御部310に送信してステップS2004に進む。ステップS2004では、カメラ制御部101は、オートバウンス設定として「CS011コマンド:データ01」をストロボ制御部310に送信してステップS2005に進む。
ステップS2005では、カメラ制御部101は、オートバウンスの駆動条件として「CS011コマンド:データXX」をストロボ制御部310に送信してステップS2005に進む。ここでのデータは、「左右、上下の両方は00」、「左右のみは01」、「上下のみは02」とする。ステップS2006では、カメラ制御部101は、可動部300bの左右方向の駆動範囲として「CS031コマンド:データXX XX」をストロボ制御部310に送信してステップS2007に進む。ステップS2007では、カメラ制御部101は、可動部300bの上下方向の駆動範囲として「CS041コマンド:データXX XX」をストロボ制御部310に送信してステップS2008に進む。
ステップS2008では、カメラ制御部101は、姿勢差情報として「CS121コマンド:データXX XX XX」をストロボ制御部310に送信してステップS2009に進む。ステップS2009では、カメラ制御部101は、可動部300bの回動速度(バウンス駆動回路340のモータの駆動速度)を示す動作スピード情報として「CS0161コマンド:データXX」をストロボ制御部310に送信し、ステップS2010に進む。ここでのデータは「ノーマル(基準速度)は00」、「低速(基準速度の50%)は01」、「高速(基準速度の150%)は02」としているが、更に細かく設定してもよい。
このように、可動部300bの回動速度を変更可能にすることで、可動部300bを回動させるためのモータの動作音をシーンに合わせて設定できる。可動部300bの回動速度は、入力部112でのユーザ操作により変更される。
ステップS2010では、カメラ制御部101は、可動部300bの上下方向への駆動指示として「CS051コマンド:データ01」、「CS071コマンド:データXX」をストロボ制御部310に送信してステップS2011に進む。ステップS2011では、カメラ制御部101は、可動部300bの左右方向への駆動指示として「CS051コマンド:データ02」、「CS081コマンド:データXX」をストロボ制御部310に送信してステップS2012に進む。
ステップS2012では、カメラ制御部101は、バウンス駆動終了後、バウンス駆動の停止指示として「CS051コマンド:データ00」、「CS011コマンド:データ00」をストロボ制御部310に送信してステップS2013に進む。
一方、ステップS2068では、カメラ制御部101は、ストロボ装置300側でバウンス駆動指示を行うことを伝えるため「CS181コマンド:データ00」をストロボ制御部310に送信してステップS2069に進む。ステップS2069では、カメラ制御部101は、ステップS2009と同様に、動作スピード情報として「CS0161コマンド:データXX」をストロボ制御部310に送信してステップS2013に進む。
ステップS2013では、カメラ制御部101は、ストロボ制御部310から現在位置情報を受信し、受信したデータをカメラ制御部101の内蔵メモリに格納して図13のステップS1311に進む。
次に、ストロボ装置300の処理について説明する。ステップS2014では、ストロボ制御部310は、通信割り込みされると、カメラ制御部101から送信されるデータを受信してステップS2015に進む。ステップS2015では、ストロボ制御部310は、受信したデータをストロボ制御部310の内蔵メモリに格納してステップS2016に進む。
ステップS2016では、ストロボ制御部310は、バウンス駆動時に可動部300bの突き当りや可動部300bを強制的に手で押さえた場合等の駆動エラーが起きているか否かを判定する。そして、ストロボ制御部310は、駆動エラーがなければ、ステップS2018に進み、駆動エラーがあれば、ステップS2017に進む。
ステップS2017では、ストロボ制御部310は、駆動エラーであることを伝えるため「SC060コマンド:データ01」をカメラ制御部101に送信してステップS2043に進む。ステップS2018では、ストロボ制御部310は、駆動エラーがないことを伝えるため「SC060コマンド:データ00」をカメラ制御部101に送信してステップS2019に進む。
ステップS2019では、ストロボ制御部310は、カメラ本体100側でバウンス駆動指示を行うか否かを判定し、ストロボ装置300側で行う場合は、ステップS2020に進み、カメラ本体100側で行う場合は、図22のステップS2044に進む。ステップS2020では、ストロボ制御部310は、ストロボ装置300側の指示でバウンス駆動を行う準備をしてステップS2021に進む。
ステップS2021では、ストロボ制御部310は、図13のステップS1307にて演算された可動部300bの上下方向の角度情報を参照しステップS2022に進む。ステップS2022では、ストロボ制御部310は、図13のステップS1308のバウンス角度制限情報を参照しステップS2023に進む。ステップS2023では、ストロボ制御部310は、図12のステップS1207でカメラ制御部101から送信されたライブビューモード情報を参照しステップS2024に進む。
ステップS2024では、ストロボ制御部310は、図12のステップS1208でカメラ制御部101から送信されたバリアングル動作情報を参照しステップS2025に進む。ステップS2025では、ストロボ制御部310は、図13のステップS1309の切り替えバウンス角度情報を参照し図21のステップS2026に進む。
図21において、ステップS2026では、ストロボ制御部310は、バウンスV駆動部340dのモータを駆動して、可動部300bを図13のステップS1307にて演算された角度に上下方向に回動させ、ステップS2027に進む。ステップS2027では、ストロボ制御部310は、可動部300bが上下方向の駆動中であることを伝えるために「SC050コマンド:データ01」をカメラ制御部101に送信してステップS2028に進む。
ステップS2028では、ストロボ制御部310は、ステップS2016と同様に、駆動エラーが起きているか否かを判定し、駆動エラーがなければ、ステップS2029に進み、駆動エラーがあれば、ステップS2017に進む。ステップS2029では、ストロボ制御部310は、可動部300bの上下方向の回動角度がステップS2025の切り替えバウンス角度aを超えているか否かを判定し、超えている場合は、ステップS2030に進み、超えていなければ、ステップS2038に進む。
ここでの切り替えバウンス角度aは、図11のステップS1116が選択されている場合は、a=120°を超えると、ステップS2030へ進む。また、図11のステップS1114,S1115が選択されている場合は、切り替え禁止(a=360°)となり、ステップS2038に進むことになる。
ステップS2030では、ストロボ制御部310は、カメラ制御部101又はストロボ制御部310のEEPROMに記憶されたバウンス角度制限情報を参照し、可動部300bの上下方向の回動角度がバウンス角度制限を超えているか否かを判定する。そして、ストロボ制御部310は、可動部300bの上下方向の回動角度がバウンス角度制限を超えている場合は、ステップS2067に進み、超えていない場合は、ステップS2031に進む。
ステップS2031では、ストロボ制御部310は、バウンスH駆動部340bのモータを駆動して、可動部300bを第2軸を中心に左右方向に180°回動させ、ステップS2032に進む(図6(b)参照)。ステップS2032では、ストロボ制御部310は、可動部300bが左右方向に駆動中であることを伝えるために「SC050コマンド:データ02」をカメラ制御部101に送信してステップS2033に進む。
ステップS2067では、ストロボ制御部310は、適正バウンス角が切り替えバウンス角度を超えているにも関わらず、第2軸を中心とした可動部300bの左右方向の回動動作を行わなかったため、表示や音声等で警告を行い、ステップS2038に進む。ステップS2033では、ストロボ制御部310は、ステップS2016と同様に、駆動エラーが起きているか否かを判別し、駆動エラーがなければステップS2034へ進み、駆動エラーがあれば、ステップS2017に進む。
ステップS2034では、ストロボ制御部310は、バウンスH駆動部340bのモータを停止させ、ステップS2035に進む。ステップS2035では、ストロボ制御部310は、バウンスV駆動部340dのモータを駆動して、再度、可動部300bを図13のステップS1307にて演算された角度に上下方向に回動させ、ステップS2036に進む。
ステップS2036では、ストロボ制御部310は、可動部300aが上下方向に駆動中であることを伝えるために「SC050コマンド:データ01」をカメラ制御部101に送信してステップS2037に進む。ステップS2037では、ストロボ制御部310は、ステップS2016と同様に、駆動エラーが起きているか否かを判定し、駆動エラーがなければ、ステップS2038に進み、駆動エラーがあれば、ステップS2017に進む。
ステップS2038では、ストロボ制御部310は、図13のステップS1307にて演算された可動部300bの左右方向の角度情報を参照しステップS2039に進む。ステップS2039では、ストロボ制御部310は、バウンスH駆動部340bのモータを駆動し、可動部300bをステップS2038で参照した左右方向の角度情報に基づき回動させ、ステップS2040に進む。
ステップS2040では、ストロボ制御部310は、可動部300bが左右方向に駆動中であることを伝えるために「SC050コマンド:データ02」をカメラ制御部101に送信してステップS2041に進む。ステップS2041では、ストロボ制御部310は、ステップS2016と同様に、駆動エラーが起きているか否かを判定し、駆動エラーがなければ、ステップS2042に進み、駆動エラーがあれば、ステップS2017に進む。
ステップS2042では、ストロボ制御部310は、可動部300bの上下左右方向の駆動の終了後、駆動停止情報として「SC051コマンド:データ00」、「SC011コマンド:データ00」をカメラ制御部101に送信してステップS2043に進む。ステップS2043では、ストロボ制御部310は、可動部300bの回動角度を示す現在位置情報として「SC070コマンド:データXX」、「SC080コマンド:データXX」をカメラ制御部101に送信して処理を終了する。
一方、図22において、ステップS2044では、ストロボ制御部310は、カメラ本体100の指示でバウンス駆動を行う準備をしてステップS2045に進む。以降、ストロボ制御部310は、ステップS2045〜S2066において、ステップS2021〜S2041、S2067と同様の処理を実行する。このようにして、バウンス発光撮影に最適な照射方向となるように、可動部300bを上下方向及び左右方向に自動的に回動させる。
次に、図23を参照して、バウンス発光撮影時におけるストロボ装置300の発光処理について説明する。
図23において、ステップS2301では、ストロボ制御部310は、自身のメモリやポートの初期化を行う。また、ストロボ制御部310は、入力部312に含まれるスイッチの状態や予め設定された設定情報を読み込み、発光量の決め方や発光タイミング等の様々な発光モードの設定を行い、ステップS2302に進む。ステップS2302では、ストロボ制御部310は、昇圧回路ブロック302の動作を開始させてメインコンデンサ302dの充電を行い、ステップS2303に進む。
ステップS2303では、ストロボ制御部310は、カメラ制御部101から通信ラインSCを介して取得した焦点距離情報をストロボ制御部310の内蔵メモリに格納し、ステップS2304に進む。なお、以前に焦点距離情報を格納していた場合には、新たな焦点距離情報に更新する。
ステップS2304では、ストロボ制御部310は、入力部312で設定された発光モードに関する画像や取得した焦点距離情報に関する画像などを表示部313に表示し、ステップS2305に進む。ステップS2305では、ストロボ制御部310は、ストロボ光の照射範囲が取得した焦点距離情報に応じた範囲となるように、ズーム駆動回路330によりズーム光学系307を移動させ、ステップS2306に進む。
ステップS2306では、ストロボ制御部310は、バウンスH検出部340a、バウンスV検出部340cにより可動部300bのストロボ本体300aに対する回動角度を検出し、ステップS2307に進む。ステップS2307では、ストロボ制御部310は、バウンス動作の実行指示があるか否かを判定し、指示があれば、ステップS2308に進み、指示がなければ、ステップS2309に進む。ステップS2308では、ストロボ制御部310は、前述のバウンス駆動(図20乃至図22参照)を行い、ステップS2309に進む。
ステップS2309では、ストロボ制御部310は、バウンス駆動後の可動部300bのストロボ本体300aに対する回動角度を示す現在位置情報を前述のようにカメラ制御部101へ送信して(図21のステップS2143)ステップS2310に進む。ステップS2310では、ストロボ制御部310は、メインコンデンサ302dの充電電圧が所定値以上(充電完了)か否かを判定し、所定値以上であれば、ステップS2311に進み、所定値未満であれば、ステップS2314に進む。ステップS2314では、ストロボ制御部310は、充電未完信号をカメラ制御部101へ送信し、ステップS2302に戻る。
ステップS2311では、ストロボ制御部310は、充電完了信号をカメラ制御部101へ送信し、ステップS2312に進む。ステップS2312では、ストロボ制御部310は、発光命令として発光開始信号を受信したか否かを判定し、受信していれば、ステップS2313に進み、受信していなければ、ステップS2302に戻る。
ステップS2313では、ストロボ制御部310は、受信した発光開始信号に応じて発光制御回路304に発光指示を行い、発光制御回路304により放電管305を発光させて、発光終了後、ステップS2302に戻る。なお、ステップS2313では、調光用のプリ発光と本発光の一連の発光を行う場合は、一連の発光が終了した後、ステップS2302に戻る。
以上説明したように、本実施形態では、バウンス発光撮影に最適な照射方向となるように発光部を有する可動部300bを回動させても、不用意に可動部300bが障害物に干渉したり、発光部が撮影者の目の方向に向いたりするのを回避することができる。
(第2の実施形態)
次に、図24乃至図28を参照して、本発明の第2の実施形態である撮像システムを説明する。なお、本実施形態では、上記第1の実施形態と重複する部分については、図及び符号を流用しつつ、その詳細な説明は省略する。
本実施形態では、上記第1の実施形態に対して、カメラがライブビュー撮影中あるいはバリアングル撮影中は、可動部300bの第1軸回りの切り替えバウンス角度を変更する点が相違する。具体的には、図11の情報送信準備処理において、ステップS1114、S1115、S1116以降の処理が変更されている。なお、本実施形態では、表示部113がカメラ本体100に対して開閉方向に回動可能に支持されて、バリアングル動作が可能になっている。
図24は、図11のステップS1114、S1115、S1116以降の処理を説明するフローチャート図である。図24において、ステップS2401では、カメラ制御部101は、ライブビュー(LV)撮影しているかファインダ撮影をしているか否かを判定する。そして、カメラ制御部101は、ファインダ撮影の場合は、ステップS2402に進み、ライブビュー(LV)撮影の場合は、ステップS2405に進む。ファインダ撮影か否かの判断は、不図示のファインダ接眼センサを用いて判断する。
ステップS2402では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS231コマンド:データ00」をカメラ制御部101の内蔵メモリに格納しステップS2403に進む。ここでは、ファインダ使用として、バウンス角制限情報は変更されない。
ステップS2405では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS231コマンド:データ01」をカメラ制御部101の内蔵メモリに格納しステップS2406に進む。ステップS2406では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS211コマンド:データ00」を不図示のカメラ制御部101の内蔵メモリに格納しステップS2407に進む。ここでは、バウンス角制限情報を90°に変更する。
ステップS2407では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS221コマンド:データ03」を不図示のカメラ制御部101の内蔵メモリに格納しステップS2422に進む。ここでは、切り替えバウンス角度を切り替え禁止にする。
ステップS2403では、カメラ制御部101は、撮影画像表示のバリアングル動作をしているか否かを判定し、バリアングル動作をしている場合は、ステップS2408に進み、バリアングル動作をしていない場合は、ステップS2404に進む。ここで、撮影画像表示のバリアングル動作をしているか否かの判断は表示部の回動動作を検知する不図示のセンサを用いて判断する。
ステップS2404では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS241コマンド:データ00」を不図示のカメラ制御部101の内蔵メモリに格納しステップS2411に進む。ここでは、バリアングル動作をしていないため、バウンス制限角情報の変更はない。
ステップS2408では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS241コマンド:データ01」をカメラ制御部101の内蔵メモリに格納しステップS2409に進む。ステップS2409では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS211コマンド:データ00」をカメラ制御部101の内蔵メモリに格納しステップS2410に進む。ここでは、バリアングル動作使用のため、バウンス角制限情報を90°に変更する。
ステップS2410では、カメラ制御部101は、カメラストロボ間通信(C→S)の準備として「CS221コマンド:データ03」を不図示のカメラ制御部101の内蔵メモリに格納しステップS2411に進む。ここでは、切り替えバウンス角度を切り替え禁止とする。ステップS2411では、図11のステップS1117と同様に、カメラ制御部101は、カメラIDやセンサ情報、その他のストロボ設定情報をカメラ制御部101の内蔵メモリに格納し、図9のステップS907に進む。
図25及び図26は、図24のカメラ制御部101側のステップS2401の処理の追加に伴うストロボ制御部310側での図20(b)、図21及び図22の処理の変更点を説明するフローチャート図である。なお、図25のステップS2501〜S2512、及びステップS2502〜S2525は、それぞれ図20(b)のステップS2014〜S2025、及び図22のステップS2044〜S2049と同様であるため、その説明を省略する。
図25において、ステップS2513では、ストロボ制御部310は、図12のステップS1207のライブビューモード情報を参照し、ライブビュー使用時である場合は、ステップS2517に進み、ファインダ使用時の場合は、ステップS2514に進む。
なお、ステップS2514〜S2316は、図21のステップS2026〜S2028の処理と同様であるので、その説明を省略する。また、ステップS2517〜S2519は、ステップS2514〜S2316の処理と同様であり、さらに、ステップS2526〜S2532は、ステップS2513〜S2519の処理を同様であるため、その説明を省略する。
図26において、ステップS2616では、ストロボ制御部310は、ライブビュー時の切り替えバウンス角度bを超えているか否かを判定し、超えている場合は、ステップSS2602に進み、超えていなければ、ステップS2610に進む。
ここで、切り替えバウンス角度bは、図24のステップS2402が選択された場合は、図25のステップS2512で参照した切り替えバウンス角度となる。図24のステップS2405が選択された場合は、切り替え禁止(a=360°)となり、ステップS2610に進んで、バウンス角制限で可動部300bの回動を停止する。なお、ステップS2631の処理は、ステップS2616と同様である。また、図26のステップS2601〜S2615,S2632は、図21のステップS2029〜S2043,S2067と同様であるので、その説明を省略する。
図27及び図28は、図24のカメラ制御部101側のステップS2403の処理の追加に伴うストロボ制御部310側での図20(b)、図21及び図22の処理の変更点を説明するフローチャート図である。なお、図27のステップS2701〜S2712、及びステップS2714〜S2719は、それぞれ図25のステップS2501〜S2512、及びステップS2515〜S2519と同様であるため、その説明を省略する。また、図27のステップS2720〜S2725、及びステップS2727〜S2732は、図25のステップS2520〜S2525、及びステップS2527〜S2532と同様であるので、その説明を省略する。
図27において、ステップS2713では、ストロボ制御部310は、図12のステップS1208のバリアングル動作情報を参照し、バリアングル動作中であれば、ステップS2717に進み、バリアングル未使用時は、ステップS2714に進む。また、図28のステップS2816での切り替えバウンス角度bは、図24のステップS2404が選択された場合は、図25のステップS2512で参照した切り替えバウンス角度となる。図24のステップS2408が選択された場合は、切り替え禁止(a=360°)となり、ステップS2810に進んで、バウンス角制限で可動部300bの回動を停止する。
なお、ステップS2831の処理は、ステップS2816と同様である。また、図28のステップS2801〜S2815,S2832,S2817〜S2830は、図26のステップS2601〜S2615,S2632,S2617〜S2630の処理と同様であるので、その説明を省略する。
本実施形態では、バリアングル動作中やライブビュー撮影中であっても、不用意に可動部300bが表示部113に干渉したり、発光部が撮影者の目の方向に向いたりするのを回避することができる。その他の構成、及び作用効果は、上記第1の実施形態と同様である。
(第3の実施形態)
次に、図29を参照して、本発明の第3の実施形態である撮像システムを説明する。なお、本実施形態では、上記第1の実施形態と重複する部分については、図及び符号を流用しつつ、その詳細な説明は省略する。
図29は、図16のステップS1609における可動部300bの駆動時のストロボ制御部310によるバウンス駆動制御を説明するフローチャート図である。
図29において、ステップS2901では、ストロボ制御部310は、現在停止している可動部300bのバウンス角度(位置)をバウンスH検出部340a、及びバウンスV検出部340cにより検出し、ステップS2902に進む。ステップS2902では、ストロボ制御部310は、ステップS2901での検出結果を基に、可動部300b(発光部)が正面側(バウンス角度0°)を向く位置にあるかを判定する。そして、ストロボ制御部310は、可動部300bが正面側を向いていれば、ステップS2905に進み、そうでなければ、ステップS2903に進む。
ステップS2903では、ストロボ制御部310は、可動部300bの位置が第1軸回りの限界回動角度(上記第1の実施形態では、120°に設定)を超えているか否かを判定する。そして、ストロボ制御部310は、可動部300bの位置が第1軸回りの限界回動角度を超えていれば、可動部300bが背面側を向いているものとしてステップS2904に進み、超えていなければ、ステップS2905に進む。
ステップS2904では、ストロボ制御部310は、バウンスV駆動部340dのモータを駆動して、発光部が天井を向くように可動部300bを第1軸回りに上下方向に90°まで回動させ、ステップS2905に進む。ステップS2905では、ストロボ制御部310は、カメラの被写体測距情報の有無を判定し、カメラの測距情報があれば、図13のステップS1306の天井測距処理に進み、カメラの被写体測距情報がなければ、ステップS2906に進む。
ステップS2906では、ストロボ制御部310は、図21のステップS2031と同様に、バウンスH駆動部340bのモータを駆動して、可動部300bを第2軸回りに左右方向に180°回動させ、ステップS2907に進む。ステップS2907では、ストロボ制御部310は、図21のステップS2026と同様に、バウンスV駆動部340dのモータを駆動して可動部300bを第1軸回りに上下方向に回動させ、ステップS2908に進む。ステップS2908では、ストロボ制御部310は、可動部300bの発光部が正面側(被写体側)を向く位置に戻ると、図16のステップS1610に進む。
そして、可動部300bを正面側に戻した後、図13のステップS1305での被写体の測距結果及びステップS1306の天井の測距結果を基に、ステップS1307で最適なバウンス角を算出し、ステップS1308以降のバウンス動作を行う。
本実施形態では、発光部を天井に向けた状態で可動部300bを一旦停止させ、カメラの測距情報(被写体距離)があれば、図13のステップS1306で天井を測距し、その測距結果と測距情報を用いて最適なバウンス角を算出してバウンス駆動を行う。
また、カメラの測距情報がなければ、可動部300bを発光部を天井に向けた状態で第2軸回りに左右方向に回動させた後、図13のステップS1305〜ステップS1311の処理を行う。これにより、可動部300b左右方向の回動時に不用意に障害物に干渉するのを回避することができる。その他の構成、及び作用効果は、上記第1の実施形態と同様である。
なお、本発明は、上記各実施形態に例示したものに限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
例えば、上記各実施形態では、可動部300bを第1軸回りに上下方向に回動させ、第2軸回りに左右方向に回動させているが、ストロボ装置300が光軸に対してロール方向に90°回転して姿勢が変化した場合は、第1軸と第2軸を入れ替える。
これにより、可動部300bを第2軸回りに上下方向に回動させ、第1軸回りに左右方向に回動させて、同様の効果を得ることができる。この場合の姿勢の変化は、カメラ本体100側の姿勢検出回路140又はストロボ装置300側の姿勢検出回路360で検出する。
また、本発明は、以下の処理を実行することによっても実現される。即ち、本発明は、上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。