(57)【要約】【課題】電子機器が有する所定の面（例えば、撮像面）が向けられている方位を高精度に検出できるようにする。【解決手段】自身の方位を検出可能な電子機器であって、前記電子機器を駆動する電源に関する情報である電源情報を取得する取得手段と、磁場を検出する検出手段と、前記電源情報に基づいて、前記電源に起因して生じた前記検出手段の検出値の変化が低減されるように、前記検出手段の検出値を補正する補正手段と、補正後の検出値に基づいて、前記電子機器の方位を決定する決定手段とを有する。【選択図】図１
2016061569.tif 000002
【特許請求の範囲】
【請求項１】
電子機器であって、
前記電子機器を駆動する電源に関する情報である電源情報を取得する取得手段と、
磁場を検出する検出手段と、
前記電源情報に基づいて、前記電源に起因して生じた前記検出手段の検出値の変化が低減されるように、前記検出手段の検出値を補正する補正手段と、
補正後の検出値に基づいて、前記電子機器の方位を決定する決定手段と
を有することを特徴とする電子機器。
【請求項２】
前記電源情報と、前記検出手段の検出値を補正する補正値と、の対応関係が予め定められており、
前記補正手段は、
前記対応関係に基づいて、前記取得手段で取得された電源情報に対応する補正値を取得し、
取得した補正値を用いて、前記検出手段の検出値を補正する
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記電子機器は、複数の動作モードを有し、
前記検出手段の検出値は、選択されている動作モードの変化に応じて変化し、
前記補正手段は、選択されている動作モードと、前記取得手段で取得された電源情報と、の組み合わせに基づいて、前記検出手段の検出値を補正する
ことを特徴とする請求項１に記載の電子機器。
【請求項４】
前記電源情報及び前記動作モードの組み合わせと、前記検出手段の検出値を補正する補正値と、の対応関係が予め定められており、
前記補正手段は、
前記対応関係に基づいて、選択されている動作モードと、前記取得手段で取得された電源情報と、の組み合わせに対応する補正値を取得し、
取得した補正値に基づいて、前記検出手段の検出値を補正する
ことを特徴とする請求項３に記載の電子機器。
【請求項５】
前記電源情報は、前記電源の接続方法、前記電源の種類、及び、前記電源の状態、の少なくとも１つを表す
ことを特徴とする請求項１から４のいずれか１項に記載の電子機器。
【請求項６】
前記電源は電池であり、
前記電源の状態は、前記電池の残容量、前記電池の電圧、及び、前記電池の劣化度合、の少なくとも１つを含む
ことを特徴とする請求項５に記載の電子機器。
【請求項７】
前記電源は、前記電源の種類を表す情報が予め格納された記憶媒体を有する電池であり、
前記取得手段は、前記電池が有する前記記憶媒体から前記情報を取得する
ことを特徴とする請求項１から６のいずれか１項に記載の電子機器。
【請求項８】
前記補正手段は、前記電源に起因して生じた磁場の歪みによる前記検出手段の検出値の変化が少なくとも低減されるように、前記検出手段の検出値を補正する
ことを特徴とする請求項１から７のいずれか１項に記載の電子機器。
【請求項９】
前記補正手段は、前記電源に起因して生じた磁場のシフトによる前記検出手段の検出値の変化が少なくとも低減されるように、前記検出手段の検出値を補正する
ことを特徴とする請求項１から８のいずれか１項に記載の電子機器。
【請求項１０】
前記補正手段は、前記電子機器の動作電流の変化によって生じた磁場のシフトによる前記検出手段の検出値の変化が少なくとも低減されるように、前記検出手段の検出値を補正する
ことを特徴とする請求項９に記載の電子機器。
【請求項１１】
前記取得手段が前記電源情報を取得できなかった場合に、前記電源情報が取得できなかったことに関する情報を、ユーザーに通知する通知手段、をさらに有する
ことを特徴とする請求項１から１０のいずれか１項に記載の電子機器。
【請求項１２】
前記通知手段は、前記取得手段が前記電源情報を取得できなかった場合に、前記電子機器の方位を検出できないこと、または、前記電子機器の方位の検出精度が低下すること、をユーザーに通知する
ことを特徴とする請求項１１に記載の電子機器。
【請求項１３】
前記取得手段が前記電源情報を取得できなかった場合に、前記決定手段は、前記電子機器の方位を決定する処理を実行しない
ことを特徴とする請求項１から１２のいずれか１項に記載の電子機器。
【請求項１４】
前記取得手段が前記電源情報を取得できなかった場合に、前記補正手段は、所定の方法で前記検出手段の検出値を補正する
ことを特徴とする請求項１から１３のいずれか１項に記載の電子機器。
【請求項１５】
前記取得手段は、前記電子機器が起動されたタイミングで、前記電源情報を取得する
ことを特徴とする請求項１から１４のいずれか１項に記載の電子機器。
【請求項１６】
電子機器の制御方法であって、
前記電子機器を駆動する電源に関する情報である電源情報を取得する取得ステップと、
磁場を検出する検出ステップと、
加速度を検出する検出ステップと、
前記電源情報に基づいて、前記電源に起因して生じた前記検出ステップの検出値の変化が低減されるように、前記検出ステップの検出値を補正する補正ステップと、
補正後の検出値に基づいて、前記電子機器の方位を決定する決定ステップと
を有することを特徴とする制御方法。
【請求項１７】
電子機器を駆動する電源に関する情報である電源情報を取得する取得手段と、
磁場を検出する検出手段と、
前記電源情報に基づいて、前記電源に起因して生じた前記検出手段の検出値の変化が低減されるように、前記検出手段の検出値を補正する補正手段と、
補正後の検出値に基づいて、前記電子機器の方位を決定する決定手段
としてコンピュータを動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、様々な電子機器において、電子機器が有する所定の面が向けられている方位を知りたいというニーズが高まってきている。このようなニーズに対応するため、電子機器が有する所定の面が向けられている方位を検出可能な装置（電子コンパスなどの方位検出装置）が実用化されている。例えば、電子コンパスは、磁場（地磁気）を検出する磁気センサの検出値と、加速度を検出する加速度センサの検出値とに基づいて、所定の面が向けられている方位を決定することができる。
【０００３】
特許文献１には、方位センサを有する電子カメラが記載されている。特許文献１に記載の電子カメラは、撮像方位情報と撮像画角情報とを撮像画像に関連付けることができる。特許文献２には、電気駆動部の状態が非駆動状態である期間に、地磁気センサの検出値に基づいて方位を決定する方法が記載されている。しかしながら、特許文献２に記載の方法では、方位を決定するタイミングが制限されてしまうという問題がある。特許文献３には、角速度の積分値を用いて方位を計算する方法が記載されている。しかしながら、特許文献３に記載の方法では、角速度の積分値が使用されるため、方位の検出精度が低下してしまうことがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−３２３７９号公報
【特許文献２】特開２０１２−９０１２４号公報
【特許文献３】特開２０１３−５７６０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
撮像装置（例えば、デジタル一眼レフカメラ）として動作する電子機器に、電子コンパスなどの方位検出装置を配置することを考える。電子機器の構成にもよるが、例えば、電池室の近傍は、方位検出装置に悪影響を与える磁界が発生しにくいと考えられる。そこで、方位検出装置を電池室の近辺に設置することを考える。電池室の近傍に方位検出装置を設定することは、引用文献１〜３のいずれにも記載されていない。
【０００６】
方位検出装置を電池室の近辺に設置することを考えた場合、電池室で生じる磁界の大きさは、電池室に接続される電源の種類に依存すると考えられる。例えば、電池室に接続されるべき電源が電源Ａであることを想定して方位検出装置を適切に調整したとしても、実際に電池室に接続された電源が電源Ａと異なる電源Ｂであった場合には、方位検出装置で検出される方位の検出精度が低下してしまう可能性がある。
【０００７】
また、動作電流が異なる複数の動作モードを電子機器が有している場合に、電池室に接続されている電源が電源Ａであったとしても、ある動作モードから他の動作モードに変更されると、方位検出装置で検出される方位の検出精度が低下してしまう可能性もある。
【０００８】
そのため、方位検出装置を電池室の近辺に設置した場合であっても、電子機器が有する所定の面（例えば、撮像面）が向けられている方位を高精度に検出できるようにするためには、方位検出装置の調整方法として新しい調整方法が必要となる。
【０００９】
そこで、本発明は、電子機器が有する所定の面（例えば、撮像面）が向けられている方位を高精度に検出できるようにすることを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る電子機器は、電子機器であって、前記電子機器を駆動する電源に関する情報である電源情報を取得する取得手段と、磁場を検出する検出手段と、前記電源情報に基づいて、前記電源に起因して生じた前記検出手段の検出値の変化が低減されるように、前記検出手段の検出値を補正する補正手段と、補正後の検出値に基づいて、前記電子機器の方位を決定する決定手段とを有する。
【００１１】
本発明に係る制御方法は、電子機器の制御方法であって、前記電子機器を駆動する電源に関する情報である電源情報を取得する取得ステップと、磁場を検出する検出ステップと、前記電源情報に基づいて、前記電源に起因して生じた前記検出ステップの検出値の変化が低減されるように、前記検出ステップの検出値を補正する補正ステップと、補正後の検出値に基づいて、前記電子機器の方位を決定する決定ステップとを有する。
【００１２】
本発明に係るプログラムは、電子機器を駆動する電源に関する情報である電源情報を取得する取得手段と、磁場を検出する検出手段と、前記電源情報に基づいて、前記電源に起因して生じた前記検出手段の検出値の変化が低減されるように、前記検出手段の検出値を補正する補正手段と、補正後の検出値に基づいて、前記電子機器の方位を決定する決定手段としてコンピュータを動作させるためのプログラムである。
【発明の効果】
【００１３】
本発明によれば、電子機器が有する所定の面（例えば、撮像面）が向けられている方位を高精度に検出することができる。
【図面の簡単な説明】
【００１４】
【図１】実施例１〜３に係る電子機器１００の構成の一例を説明するためのブロック図である。
【図２】撮像方位の決定方法の一例を説明するための図である。
【図３】実施例１〜３に係る電子機器１００の外観及び内部構造の一例を説明するための図である。
【図４】実施例１〜３に係る補正式の一例を説明するための図である。
【図５】実施例１〜３に係る補正値の生成方法の一例を説明するためのフローチャートである。
【図６】実施例１〜３に係る複数の電源情報の一例を説明するための図である。
【図７】実施例１に係る電子機器１００の動作の流れの一例を説明するためのフローチャートである。
【図８】実施例２に係る電子機器１００の動作の流れの一例を説明するためのフローチャートである。
【図９】実施例２に係る第１対応関係と第２対応関係の一例を説明するための図である。
【図１０】実施例３に係る電子機器１００の動作の流れの一例を説明するためのフローチャートである。
【図１１】実施例３に係る通知画像の一例を説明するための図である。
【図１２】実施例１〜３に係る電子機器１００の他の構成を説明するためのブロック図である。
【発明を実施するための形態】
【００１５】
＜実施例１＞
以下、実施例１に係る電子機器１００及びその制御方法について説明する。
電子機器１００は、電子機器１００が有する所定の面（例えば、撮像面）が向けられている方位を検出可能な方位検出装置（電子コンパス等）として動作する電子機器である。なお、実施例１〜３では、電子機器１００が撮像装置として動作する電子機器である場合の例を説明するが、電子機器１００は撮像装置として動作する電子機器に限るものではない。例えば、電子機器１００は、デジタル一眼レフカメラなどのデジタルカメラとして動作する電子機器であってもよい。例えば、電子機器１００は、デジタルビデオカメラとして動作する電子機器であってもよい。例えば、電子機器１００は、携帯電話又は携帯機器として動作する電子機器であってもよい。例えば、電子機器１００は、ユーザーを目的地まで誘導するナビゲーション装置として動作する電子機器であってもよい。
【００１６】
図１及び図１２は、実施例１〜３に係る電子機器１００の構成の一例を説明するためのブロック図である。図１に示す例では、電子機器１００は、レンズユニット１２０と接続される。また、図１２に示す例では、電子機器１００は、レンズユニット１２０及びグリップユニット１３０と接続される。
【００１７】
レンズユニット１２０は、フォーカス部１０１、ズーム部１０２、絞り部１０３、レンズマイコン１０４などを有する取り外し可能なユニットである。レンズユニット１２０は、電子機器１００が有する所定の接続部に接続される。レンズマイコン１０４は、フォーカス部１０１、ズーム部１０２、絞り部１０３などを制御するためのマイクロプロセッサを有する。フォーカス部１０１は、レンズマイコン１０４からの指示に従って、フォーカス機構を制御する。ズーム部１０２は、レンズマイコン１０４からの指示に従って、ズーム機構を制御する。絞り部１０３は、レンズマイコン１０４からの指示に従って、絞り機構を制御する。実施例１〜３では、レンズユニット１２０が取り外し可能なユニットである場合を説明するが、レンズユニット１２０は、電子機器１００と一体的に構成されているユニットに変更してもよい。
【００１８】
電子機器１００は、撮像センサ１０５、シャッター機構１０６、ミラー機構１０７、スイッチ１０８、電源回路１０９、第１電池室１１０、通信インターフェース部１１１（以下、通信Ｉ／Ｆ１１１）を有する。電子機器１００はさらに、第１のメモリ１１２、第２のメモリ１１３、第３のメモリ１１４、加速度センサ１１５、磁気センサ１１６、ストロボユニット１１７、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１８、表示部１１９などを有する。
【００１９】
第１電池室１１０には、電池、ＡＣアダプタ、グリップユニット１３０のいずれか一つが電子機器１００の電源として接続される。実施例１〜３では、グリップユニット１３０が第１電池室１１０に接続されている場合、電池及びＡＣアダプタを第１電池室１１０に接続することはできない。
【００２０】
グリップユニット１３０は、第２電池室１２１、第３電池室１２２などを有する取り外し可能なユニットである。グリップユニット１３０は、第１電池室１１０を介して電子機器１００に接続される。第２電池室１２１には、電池及びＡＣアダプタのいずれか一つが接続される。第３電池室１２２にも、電池及びＡＣアダプタのいずれか一つが接続される。実施例１〜３において用いられる電池は、一種類の電池に限るものではなく、どのような種類の電池であってもよい。例えば、リチウムイオン電池、ニッケル水素電池、乾電池、燃料電池などの様々な電池を用いることができる。実施例１〜３において用いられるＡＣアダプタは、ＡＣ電圧を所定のＤＣ電圧に変換する機能を有するものであればどのような種類のＡＣアダプタであってもよい。なお、第２電池室１２１に接続されるＡＣアダプタは、ＤＣカプラを介して第２電池室１２１に接続されるものであってもよい。第３電池
室１２２に接続されるＡＣアダプタも、ＤＣカプラを介して第３電池室１２２に接続されるものであってもよい。
【００２１】
上述したように、第１電池室１１０には、電池、ＡＣアダプタ、グリップユニット１３０のいずれか一つが電子機器１００の電源として接続される。そのため、電池が電子機器１００の電源として第１電池室１１０接続されている場合、第１電池室１１０に接続されている電源の種類は、当該電池がどのような種類の電池かによって変化することになる。ＡＣアダプタが電子機器１００の電源として第１電池室１１０接続されている場合、第１電池室１１０に接続されている電源の種類は、当該ＡＣアダプタがどのような種類のＡＣアダプタかによって変化することになる。グリップユニット１３０が第１電池室１１０接続されている場合、第１電池室１１０に接続されている電源の種類は、第２電池室１２１及び第３電池室１２２の少なくとも一つにどのような種類の電源が接続されているかによって変化することになる。したがって、実施例１〜３において、第１電池室１１０に接続される電源には、様々な種類の電源が想定される。
【００２２】
ＣＰＵ１１８は、電子機器１００に含まれるすべての構成要素と、レンズユニット１２０とを制御するためのマイクロプロセッサを有する制御部である。レンズユニット１２０が電子機器１００に接続された場合、ＣＰＵ１１８とレンズマイコン１０４とは通信可能に接続され、ＣＰＵ１１８はレンズマイコン１０４を制御することができる。その結果、ＣＰＵ１１８は、レンズユニット１２０を制御することができる。また、ＣＰＵ１１８は、電源検出部１１８ａ、補正値決定部１１８ｂ、検出値補正部１１８ｃ、方位決定部１１８ｄなどを有する。電源検出部１１８ａ、補正値決定部１１８ｂ、検出値補正部１１８ｃ及び方位決定部１１８ｄについては、後述する。
【００２３】
電源回路１０９は、第１電池室１１０に接続された電源からの電力を、電子機器１００の各構成要素に供給し、レンズユニット１２０の各構成要素に供給する。通信Ｉ／Ｆ１１１は、外部機器との通信を行う通信制御部である。表示部１１９は、ユーザインターフェースのための情報（メニュー画面等）を表示することができる。表示部１１９は、撮像センサ１０５によって撮像された撮像画像データから生成された画像を表示することもできる。表示部１１９は、第１のメモリ１１２が記憶している画像データから生成された画像を表示することもできる。表示部１１９は、電子ビューファインダ（ＥＶＦ）としても使用することができる。
【００２４】
第１のメモリ１１２は、撮像センサ１０５によって生成された画像データを記憶する記憶媒体である。第１のメモリ１１２は、電子機器１００から取り外し可能であってもよい。第２のメモリ１１３は、ＣＰＵ１１８によって実行されるプログラムであって、電子機器１００を制御するためのプログラムを記憶する記憶媒体である。ユーザインターフェースのための情報（メニュー画面等）も、第２のメモリ１１３に記憶されている。第３のメモリ１１４は、様々なデータを一時的に記憶する記憶媒体である。第３のメモリ１１４は、例えば、ＣＰＵ１１８のワークメモリとして使用される。
【００２５】
スイッチ１０８は、撮像を行うことを電子機器１００に指示するためのスイッチである。撮像センサ１０５は、レンズユニット１２０を介して入光された光を電気信号に変換し、当該電気信号から撮像画像データを生成する撮像センサである。撮像センサ１０５は、ＣＰＵ１１８からの指示に応じて駆動する。撮像センサ１０５としては、例えば、ＣＣＤやＣＭＯＳセンサを使用することができる。シャッター機構１０６は、ＣＰＵ１１８からの指示に従ってシャッターの開閉を制御する。例えば、撮像時に撮像センサ１０５に所定のタイミングで光が入光されるように、シャッター機構１０６はシャッターの開閉を制御する。ミラー機構１０７は、ＣＰＵ１１８からの指示にしたがってミラーの向きを制御する。例えば、ミラー機構１０７は、レンズユニット１２０を介して入光された光の経路が
所望の経路となるように、ミラーの向きを制御する。具体的には、非撮像時にファインダの側へ光が導かれ、撮像時にシャッター機構１０６及び撮像センサ１０５の側へ光が導かれるように、ミラー機構１０７は、ミラーの向きを制御する。ストロボ１１７は、光を発する発光部である。ストロボ１１７の発光は、ＣＰＵ１１８によって制御される。例えば、撮像時に必要に応じて発光が行われるように、ストロボ１１７の発光が制御される。
【００２６】
実施例１〜３では、ユーザーがスイッチ１０８を操作することによって撮像が行われる。スイッチ１０８が操作されたことをＣＰＵ１１８が検出した場合、ＣＰＵ１１８は、レンズマイコン１０４に、ＡＦ及びＡＥの実行を指示する。レンズマイコン１０４は、ＡＦ及びＡＥの実行の指示に応じてフォーカス部１０１、ズーム部１０２及び絞り部１０３等を制御することにより、フォーカス及び露出を自動で調整する（ＡＦ処理及びＡＥ処理）。その後、ＣＰＵ１１８は、ミラー機構１０７、シャッター機構１０６及び撮像センサ１０５を制御し、撮像センサ１０５に撮像画像データを生成させる。ＡＦ処理及びＡＥ処理の後に、撮像対象の領域が暗い判定された場合、ＣＰＵ１１８は、ストロボ１１７の充電制御を行い、撮像センサ１０５を駆動するタイミングでストロボ１１７を発光させる。
【００２７】
磁気センサ１１６は、地磁気を検出するための処理（第１の検出処理）を行う。加速度センサ１１５は、加速度センサ１１５に加わっている加速度を検出するための処理（第２の検出処理）を行う。実施例１〜３では、磁気センサ１１６及び加速度センサ１１５は、第１電池室１１０の近辺に配置されている。
【００２８】
ＣＰＵ１１８は、電子機器１００が有する所定の面（例えば、撮像面）が向けられている方位を検出する際に、磁気センサ１１６と加速度センサ１１５とを駆動させ、磁気センサ１１６から検出値を取得し、加速度センサ１１５からも検出値を取得する。以下、磁気センサ１１６の検出値を磁気検出値と呼び、加速度センサ１１５の検出値を加速度検出値と呼ぶ。
【００２９】
第１電池室１１０は、第１電池室１１０に接続されている電源の種類を電子機器１００を起動するための指示がＣＰＵ１１８に入力された場合に検出し、その検出結果を電源検出部１１８ａに通知する。第２電池室１２１も、第２電池室１２１に接続されている電源の種類を電子機器１００を起動するための指示がＣＰＵ１１８に入力された場合に検出し、その検出結果を電源検出部１１８ａに通知する。第３電池室１２２も、第３電池室１２２に接続されている電源の種類を電子機器１００を起動するための指示がＣＰＵ１１８に入力された場合に検出し、その検出結果を電源検出部１１８ａに通知する。電子機器１００は、例えば、電子機器１００を起動するための指示を、電子機器１００が有する電源スイッチが押された場合にＣＰＵ１１８に入力する。但し、電源検出部１１８ａが第１電池室１１０、第２電池室１２１及び第３電池室１２２のそれぞれから検出結果を取得するタイミングは、上記タイミングに限らない。
【００３０】
電源検出部１１８ａは、第１電池室１１０に接続されている電源の種類を、第１電池室１１０、第２電池室１２１及び第３電池室１２２のそれぞれから通知された検出結果に基づいて判定する。もちろん、電源検出部１１８ａは、電子機器１００にグリップユニット１３０が接続されているか否かを、第１電池室１１０、第２電池室１２１及び第３電池室１２２のそれぞれから通知された検出結果に基づいて判定することもできる。
【００３１】
なお、第１電池室１１０が第１電池室１１０に接続されている電源の種類を検出する方法は、様々な方法を用いることができる。第２電池室１２１が第２電池室１２１に接続されている電源の種類を検出する方法も、様々な方法を用いることができる。第３電池室１２２第３電池室１２２に接続されている電源の種類を検出する方法も、様々な方法を用いることができる。例えば、スイッチ等の機械的な方法によって電源の種類を検出してもよ
い。電源ごとに異なる抵抗値によって電源の種類を検出してもよい。電源が有するメモリにアクセスして電源の種類を検出してもよい。電源と通信することによって電源の種類を検出してもよい。
【００３２】
実施例１では、電子機器１００は、複数の動作モードを有する。複数の動作モードの一つは、例えば、静止画を撮像する静止画撮影モードである。複数の動作モードの一つは、例えば、動画を撮像する動画撮影モードである。複数の動作モードの一つは、表示部１１９を電子ビューファインダとして使用するライブビューモード（以下、ＬＶモードと呼ぶ）である。複数の動作モードの一つは、表示部１１９に撮像画像データを表示するＴＦＴオンモードである。
【００３３】
ＣＰＵ１１８は、選択されている動作モードと、第１電池室１１０に接続されている電源の種類との組み合わせに基づいて、磁気センサ１１６の磁気検出値を補正する。これにより、第１電池室１１０に接続されている電源に起因して生じた磁気検出値の変化が低減されるように、磁気検出値が補正される。この補正処理は、補正値決定部１１８ｂと検出値補正部１１８ｃとを用いて行われる。補正値決定部１１８ｂと検出値補正部１１８ｃとの詳細については、後述する。なお、選択されている動作モードを考慮せずに、第１電池室１１０に接続されている電源の種類に基づいて、磁気センサ１１６の磁気検出値が補正するように構成してもよい。
【００３４】
方位決定部１１８ｄは、補正後の磁気検出値と、加速度センサ１１５の加速度検出値とに基づいて、電子機器１００が有する所定の面（例えば、撮像面）が向けられている方位を決定する。実施例１では、撮像センサ１０５の受光面を撮像面と呼び、当該撮像面が向けられている方位を撮像方位と呼ぶ。なお、撮像方位は、補正後の磁気検出値を用いて精度よく撮像方位を決定できる方法であれば、どのような方法に従って撮像方位を決定してもよい。例えば、補正後の磁気検出値と加速度検出値以外の検出値とを用いて精度よく撮像方位を決定できる方法に従って撮像方位を決定してもよい。
【００３５】
図２は、撮像方位の決定方法の一例を表す模式図である。
磁気センサ１１６は、３次元的に磁場を検出することができ、加速度センサ１１５は、３次元的に加速度を検出することができる。磁気センサ１１６の磁気検出値は、３軸方向に対応する３つの値（ｘ値、ｙ値及びｚ値）の組み合わせ（３次元ベクトル）を含む。ｘ値はｘ軸方向に対応する値であり、ｙ値はｙ軸方向に対応する値であり、ｚ値はｚ軸方向に対応する値である。加速度センサ１１５の加速度検出値も、３軸方向に対応する３つの値（ｘ値、ｙ値及びｚ値）の組み合わせ（３次元ベクトル）を含む。加速度センサ１１５の加速度検出値に含まれる３つの方向の値は、それぞれ符号付きの多ビット値である。
【００３６】
実施例１では、加速度センサ１１５の加速度検出値が表す加速度の方向が、重力加速度の方向として検出される。そして、補正後の磁気検出値が表す磁場の方向を重力加速度の方向に垂直な平面（地面と水平な面）に投影して得られる方向が、地磁気の磁北の方向として検出される。具体的には、補正後の磁気検出値が表すベクトルが、重力加速度の方向のベクトル（第１のベクトル）と、重力加速度の方向に垂直な方向のベクトル（第２のベクトル）とに分割される。そして、第２のベクトルの方向が、地磁気の磁北の方向として検出される。
【００３７】
また、レンズユニット１２０の光軸の方向（撮像面が向いている方向に相当）を重力加速度の方向に垂直な平面に投影して得られる方向が、撮像方向として検出される。具体的には、光軸の方向を表すベクトルが、重力加速度の方向のベクトル（第３のベクトル）と、重力加速度の方向に垂直な方向のベクトル（第４のベクトル）とに分割される。そして、第４のベクトルの方向が、撮像方向として検出される。
【００３８】
そして、磁北の方向と撮像方向とに基づいて撮像方位が決定される。磁北の方向と撮像方向との関係は、例えば、磁北の方向と撮像方向との間の角度で表現することができる。具体的は、磁北の方向と撮像方向との関係は、第２のベクトルと第４のベクトルとの間の角度で表現することができる。
【００３９】
なお、撮像方位は、どのようなタイミングで検出されてもよい。例えば、撮像時に撮像方位が検出されてもよい。撮像画像データの撮像方位を示す情報は、撮像画像データと共に第１のメモリ１１２に記憶してもよい。そして、撮像画像データに対応する画像を表示するときに、当該撮像画像データの撮像方位を示す情報を当該画像と共に表示することができる。これにより、撮像画像データの撮像方位をユーザーに知らせることができる。撮像画像データは、静止画像であってもよいし、動画像であってもよい。動画像を撮像する場合には、Ｎ枚（Ｎは１以上の整数）のフレーム毎に撮像方位が検出されることが好ましい。それにより、Ｎ枚のフレーム毎に、撮像方位を示す情報をユーザーに通知することができる。また、撮像方位を検出する処理が常に繰り返し実行されてもよい。そして、最新の撮像方位を示す情報が表示部１１９にリアルタイムに表示されるようにしてもよい。これにより、最新の撮像方位を示す情報をリアルタイムにユーザーに通知することができる。
【００４０】
撮像が行われていない期間は、表示部１１９に最新の撮像範囲（被写体）を示す画像がさらに表示されてもよい。即ち、撮像が行われていない期間では、表示部１１９が電子ビューファインダとして使用されてもよい。
【００４１】
ＧＰＳ等を用いて撮像位置（電子機器１００の位置）が検出される場合には、磁北の向きが真北の向きとして使用されてもよい。
【００４２】
次に、補正値決定部１１８ｂと検出値補正部１１８ｃとについて説明する。
【００４３】
磁気センサ１１６の磁気検出値として、地磁気を表す磁気検出値が得られることが好ましい。しかしながら、磁気センサ１１６が検出する磁場は、様々な要因によって変化する。そして、磁気センサ１１６では、様々な要因によって変化した磁気検出値が得られてしまう。様々な要因による磁気検出値の変化は、「磁気検出値のノイズ」や「磁気検出値の誤差」と言うこともできる。
【００４４】
例えば、電子機器１００の内部には、シャッター機構１０６やミラー機構１０７を駆動するためのモーターが設けられている。そして、モーターの内部には、常に磁力線を発生させる永久磁石が設けられている。このような永久磁石の磁場は、磁気センサ１１６の磁気検出値を変化させる。即ち、このような永久磁石の磁場は、磁気センサ１１６の磁気検出値に悪影響を及ぼす。また、電子機器１００には、電子機器１００の動作電流に応じた電流磁場が発生する。このような電流磁場も、磁気センサ１１６の磁気検出値に悪影響を及ぼす。また、磁気センサ１１６の磁気検出値は、選択されている動作モードの変化に応じて変化することがある。具体的には、複数の動作モードの間で動作電流が互いに異なることがある。そのため、選択されている動作モードが他の動作モードに切り替えられると、電子機器１００に流れる動作電流が変化し、動作電流によって生じる電流磁場も変化することがある。このような磁場は、磁気センサ１１６が検出する磁場をシフトさせ、磁気センサ１１６の磁気検出値に悪影響を及ぼす。
【００４５】
そこで、実施例１〜３では、補正値決定部１１８ｂと検出値補正部１１８ｃとを用いて、磁場のシフトによる磁気検出値の変化（第１の変化）が低減されるように、磁気検出値を補正する。具体的には、磁気センサ１１６の磁気検出値に悪影響を及ぼす磁場に相当す
るオフセット値（第１の補正値）が、磁気センサ１１６の磁気検出値から減算される。それにより、部材から発生された磁場による磁気センサ１１６の磁気検出値の変化を低減することができる。
【００４６】
図３（ａ）は、電子機器１００の外観の一例を説明するための外観図である。図３（ｂ）は、図３（ａ）に示す電子機器１００の内部構造の一例を説明するための図である。図３（ａ）及び図３（ｂ）に示す例では、グリップ部分に第１電池室１１０が設けられており、第１電池室１１０に電池２０１が接続されている。
メイン基板２００は、電子機器１００の多くの機能部が配置されたメイン基板である。メイン基板２００は、電子機器１００の背面の大部分を占めるように設けられている。メイン基板２００の中央部分には、ＣＰＵ１１８、撮像センサ１０５、撮像センサ１０５の駆動回路などが設けられる。撮像センサ１０５及びその駆動回路などは、磁気センサ１１６の磁気検出値に悪影響を及ぼす可能性がある。そのため、磁気センサ１１６は、これらの部材による悪影響が低減されるように、これらの部材から離れた位置であり、且つ、第１電池室１１０の近辺に配置される。図３（ｂ）の例では、メイン基板２００の右下部分に、磁気センサ１１６が設けられている。なお、上述したように、第１電池室１１０には、電池２０１の他に、ＡＣアダプタを接続することができる。また、第１電池室１１０には、グリップユニット１３０を接続することもできる。
【００４７】
電池２０１の内部には、例えば、円筒形の２つの電池セル２０２が設けられている。電池セル２０２の外装部材は、鉄、ステンレスなどの磁性体によって構成されている。磁性体は、周囲の磁場に歪みを生じさせる。磁性体によって磁場が歪む現象は、「ソフトアイロン効果」と呼ばれる。ソフトアイロン効果は、磁気センサ１１６の磁気検出値に悪影響を及ぼす。ソフトアイロン効果は、磁気センサ１１６が検出する磁場を歪ませる。これにより、磁気センサ１１６が検出する磁場の方向が変化する可能性がある。
【００４８】
そこで、実施例１〜３では、補正値決定部１１８ｂと検出値補正部１１８ｃとを用いて、磁場の歪みによる磁気検出値の変化（第２の変化）が低減されるように、磁気検出値を補正する。具体的には、磁気センサ１１６の磁気検出値に含まれる３つの方向の値（ｘ値、ｙ値及びｚ値）が個別に補正される。より具体的には、磁気センサ１１６の磁気検出値に、ソフトアイロン効果による磁場の変化を低減する変換行列（第２の補正値）が乗算される。それにより、ソフトアイロン効果による磁気センサ１１６の磁気検出値の変化を低減することができる。
【００４９】
ソフトアイロン効果による磁場の歪みは、磁性体の種類、磁性体の大きさ、磁性体の形状、磁気センサ１１６から磁性体までの距離などに依存する。そのため、第１電池室１１０に接続されている電源の種類が変わると、ソフトアイロン効果による磁場の歪みも変化する。そこで、実施例１では、電源検出部１１８ａで判定された電源の種類に応じて、変換行列（第２の補正値）を変更する。
【００５０】
また、上述した第１の変化を招く磁場も、ソフトアイロン効果によって歪む。そのため、第１電池室１１０に接続されている電源の種類が変わると、磁気センサ１１６が検出する磁場のシフト量も変化する。そこで、実施例１では、電源検出部１１８ａで判定された電源の種類に応じて、磁気センサ１１６の磁気検出値に悪影響を及ぼす磁場に相当するオフセット値（第１の補正値）を切り替える。
【００５１】
なお、体積が大きい部材が磁気センサ１１６の近くに設けられている場合、当該部材がソフトアイロン効果に与える影響が非常に大きいため、他の部材がソフトアイロン効果に与える影響を無視しても問題はない。図３（ｂ）の例では、磁気センサ１１６の近くに第１電池室１１０が設けられている。そのため、第１電池室１１０に接続されている電源が
ソフトアイロン効果に与える影響が大きく、他の部材がソフトアイロン効果に与える影響を無視しても問題は無い。
【００５２】
補正値決定部１１８ｂは、選択されている動作モードと、第１電池室１１０に接続されている電源の種類とに基づいて、磁気センサ１１６の磁気検出値を補正するための第１の補正値（オフセット値）及び第２の補正値（変換行列）を決定する。検出値補正部１１８ｃは、補正値決定部１１８ｂで決定された第１の補正値（オフセット値）及び第２の補正値（変換行列）に基づいて、磁気センサ１１６の磁気検出値を補正する。
【００５３】
実施例１では、検出値補正部１１８ｃは、図４に示す数式（補正式）を用いて、磁気センサ１１６の磁気検出値を補正する。
図４において、符号２１１は、補正前の磁気検出値を示し、符号２１０は、補正後の磁気検出値を示す。補正後の磁気検出値２１０は、３軸方向に対応する３つの検出値（ｘ値、ｙ値及びｚ値）を有する３行１列の行列である。補正前の磁気検出値２１１も、３軸方向に対応する３つの検出値（ｘ値、ｙ値及びｚ値）を有する３行１列の行列である。
また、図４において、符号２１２は、補正値決定部１１８ｂで決定されたオフセット値（第１の補正値）を示し、符号２１３は、補正値決定部１１８ｂで決定された変換行列（第２の補正値）を示す。オフセット値２１２は、３軸方向に対応する３つの値（ｘ値、ｙ値及びｚ値）を有する３行１列の行列である。補正値決定部１１８ｂで決定された変換行列２１３は、３行３列の行列である。
図４に示すように、実施例１では、補正前の磁気検出値２１１からオフセット値２１２が減算され、減算結果（３行１列のベクトル）に補正値決定部１１８ｂで決定された変換行列２１３が乗算される。これにより、補正後の磁気検出値２１０が計算される。減算結果に補正値決定部１１８ｂで決定された変換行列２１３を乗算することにより、減算結果が表すベクトルを回転させたり、減算結果が表すベクトルを拡大／縮小したりすることができる。
【００５４】
補正値決定部１１８ｂで決定されたオフセット値２１２と補正値決定部１１８ｂで決定された変換行列２１３として適切な値を使用すれば、補正後の磁気検出値２１０として、地磁気をよく表す値を得ることができる。その結果、撮像方位を高精度に検出することができる。
【００５５】
実施例１では、第１電池室１１０に接続されている電源の種類と選択されている動作モードとの組み合わせと、第１の補正値（オフセット値）及び第２の補正値（変換行列）との対応関係が予め定められている。具体的には、当該対応関係を示す情報が第２のメモリ１１３（又は第１のメモリ１１２）に予め格納されている。当該対応関係を示す情報としては、関数やテーブルを使用することができる。そして、補正値決定部１１８ｂは、当該対応関係を示す情報を第２のメモリ１１３（又は第１のメモリ１１２）から読み出す。補正値決定部１１８ｂは、当該対応関係に基づいて、選択されている動作モードと、第１電池室１１０に接続されている電源の種類との組み合わせに対応する第１の補正値（オフセット値）及び第２の補正値（変換行列）を決定する。
【００５６】
なお、選択されている動作モードは考慮されずに、第１電池室１１０に接続されている電源の種類に基づいて、磁気センサ１１６の磁気検出値を補正する第１の補正値（オフセット値）及び第２の補正値（変換行列）が決定されてもよい。具体的には、第１電池室１１０に接続されている電源の種類と、第１の補正値（オフセット値）及び第２の補正値（変換行列）との対応関係が予め定められていてもよい。そして、当該対応関係に基づいて、第１電池室１１０に接続されている電源の種類に対応する第１の補正値（オフセット値）及び第２の補正値（変換行列）が決定されてもよい。
【００５７】
ソフトアイロン効果が部材の形状や大きさに依存するため、第１の補正値（オフセット値）及び第２の補正値（変換行列）をリアルタイムに計算することは困難である。しかしながら、第１の補正値（オフセット値）及び第２の補正値（変換行列）は予め決定することができる。例えば、変換行列は、第１電池室１１０に接続されている電源の種類ごとに予め決定しておけばよい。具体的には、各電源を第１電池室１１０に接続した状態でソフトアイロン効果を実測し、その実測結果に基づいて変換行列を高精度に決定しておけばよい。これにより、第１電池室１１０に接続されている電源の種類ごとに異なる適切な変換行列を予め用意することができる。
オフセット値も、変換行列と同様に、第１電池室１１０に接続されている電源の種類ごとに予め決定することができる。ここで、磁気センサ１１６が検出する磁場のシフト量は、選択されている動作モードにも依存する。そのため、第１電池室１１０に接続されている電源の種類と選択されている動作モードとの組み合わせごとに、適切なオフセット値を決定しておくことが好ましい。磁気センサ１１６が検出する磁場のシフト量は、電子機器１００の個体差があるため、オフセット値は電子機器１００を用いて決定することが好ましい。
【００５８】
図５は、電子機器１００が電池の種類ごとにオフセット値を決定する処理（オフセット値決定処理）の流れの一例を説明するためのフローチャートである。図５のフローチャートは、例えば、電子機器１００の製造時或いは出荷時に行われる。
【００５９】
まず、Ｓ１０１において、作業者が第１電池室１１０に基準電源を接続した後、作業者は、オフセット値決定処理の開始を電子機器１００に指示する。基準電源は、第１電池室１１０に接続された電池であっても、第１電池室１１０に接続されたＡＣアダプタであってもよい。
【００６０】
Ｓ１０２において、ＣＰＵ１１８は、電子機器１００の状態を基準状態（例えば、アイドル状態）に設定する。換言すれば、電子機器１００の動作モードが基準モードに設定される。なお、基準状態はアイドル状態に限らない。
Ｓ１０３において、ＣＰＵ１１８は、アイドル状態での磁気検出値を磁気センサ１１６から取得する。なお、磁気検出値が複数回サンプリングされ、サンプリングされた複数の磁気検出値の平均値が取得されてもよい。それにより、電源回路１０９などに起因する細かなノイズが取り除かれた磁気検出値（平均値）を得ることができる。
【００６１】
Ｓ１０４において、ＣＰＵ１１８は、電子機器１００の動作モードを静止画撮影モードに設定する。Ｓ１０５において、ＣＰＵ１１８は、電子機器１００の動作モードが静止画撮影モードに設定されているときの磁気検出値を、磁気センサ１１６から取得する。
Ｓ１０６において、ＣＰＵ１１８は、電子機器１００の動作モードが動画撮影モードに設定する。Ｓ１０７において、ＣＰＵ１１８は、電子機器１００の動作モードが動画撮影モードに設定されているときの磁気検出値を、磁気センサ１１６から取得する。
Ｓ１０８において、ＣＰＵ１１８は、電子機器１００の動作モードをＬＶモードに設定する。Ｓ１０９において、ＣＰＵ１１８は、電子機器１００の動作モードがＬＶモードに設定されているときの磁気検出値を、磁気センサ１１６から取得する。
Ｓ１１０において、ＣＰＵ１１８は、電子機器１００の状態を基準状態（例えば、アイドル状態）に戻す。なお、Ｓ１１０の処理は省略してもよい。
【００６２】
Ｓ１１１において、ＣＰＵ１１８は、Ｓ１０３で得られた磁気検出値とＳ１０５で得られた磁気検出値との差分に基づいて、基準電源と静止画撮影モードとの組み合わせに対応するオフセット値を計算する。ＣＰＵ１１８は、Ｓ１０３で得られた磁気検出値とＳ１０７で得られた磁気検出値との差分に基づいて、基準電源と動画撮影モードとの組み合わせに対応するオフセット値を計算する。ＣＰＵ１１８は、Ｓ１０３で得られた磁気検出値と
Ｓ１０９で得られた磁気検出値との差分に基づいて、基準電源とＬＶモードとの組み合わせに対応するオフセット値を計算する。
【００６３】
Ｓ１１２において、ＣＰＵ１１８は、Ｓ１１１で計算された各オフセット値に基づいて、他の全ての種類の電源と複数の動作モードとの組み合わせに対応するオフセット値に計算する（換算処理）。これにより、作業者の作業工数や作業時間を低減することができる。なお、図５では、１種類の電源と複数の動作モードとの組み合わせに対応するオフセット値を磁気検出値の測定結果を用いて計算し、他の全ての種類の電池と複数の動作モードとの組み合わせに対応するオフセット値を換算したが、これに限るものではない。他の全ての修理の電源と複数の動作モードとの組み合わせの全部または一部に対応するオフセット値を磁気検出値の測定結果を用いて計算してもよい。
【００６４】
そして、Ｓ１１３において、ＣＰＵ１１８は、Ｓ１１１及びＳ１１２で計算された全てのオフセット値を第２のメモリ１１３（又は第１のメモリ１１２）に格納する。
【００６５】
図６は、第２のメモリ１１３（又は第１のメモリ１１２）に予め格納されている複数の電源情報の一例を説明するための図である。図６の例では、第１電池室１１０に接続可能な電源の種類に応じて異なる８つの電源情報が想定されている。各電源情報は、異なる複数の電源ごとに用意された複数の第１の補正値（オフセット値）と、第２の補正値（変換行列）とを含む。
【００６６】
（１）第１の電源情報は、第１電池室１１０に接続されているリチウムイオン電池が第１電池室１１０に接続されている電源である場合に用いられる電源情報である。第１の電源情報は、この場合に適した複数の第１の補正値（オフセット値）と一つの第２の補正値（変換行列）とを含む。複数の第１の補正値（オフセット値）は、４つの動作モード（静止画撮影モード、動画撮影モード、ＬＶモード及びＴＦＴオンモード）ごとに適切な値が用意されている。
【００６７】
（２）第２の電源情報は、第１電池室１１０に接続されているＡＣアダプタが第１電池室１１０に接続されている電源である場合に用いられる電源情報である。第２の電源情報は、この場合に適した複数の第１の補正値（オフセット値）と一つの第２の補正値（変換行列）とを含む。複数の第１の補正値（オフセット値）は、４つの動作モード（静止画撮影モード、動画撮影モード、ＬＶモード及びＴＦＴオンモード）ごとに適切な値が用意されている。
【００６８】
（３）第３の電源情報は、第２電池室１２１に接続されているリチウムイオン電池が第１電池室１１０に接続されている電源である場合に用いられる電源情報である。第３の電源情報は、この場合に適した複数の第１の補正値（オフセット値）と一つの第２の補正値（変換行列）とを含む。複数の第１の補正値（オフセット値）は、４つの動作モード（静止画撮影モード、動画撮影モード、ＬＶモード及びＴＦＴオンモード）ごとに適切な値が用意されている。
【００６９】
（４）第４の電源情報は、第３電池室１２２に接続されているリチウムイオン電池が第１電池室１１０に接続されている電源である場合に用いられる電源情報である。第４の電源情報は、この場合に適した複数の第１の補正値（オフセット値）と一つの第２の補正値（変換行列）とを含む。複数の第１の補正値（オフセット値）は、４つの動作モード（静止画撮影モード、動画撮影モード、ＬＶモード及びＴＦＴオンモード）ごとに適切な値が用意されている。
【００７０】
（５）第５の電源情報は、第２電池室１２１と第３電池室１２２との両方に接続されて
いるリチウムイオン電池が第１電池室１１０に接続されている電源である場合に用いられる電源情報である。第５の電源情報は、この場合に適した複数の第１の補正値（オフセット値）と一つの第２の補正値（変換行列）とを含む。複数の第１の補正値（オフセット値）は、４つの動作モード（静止画撮影モード、動画撮影モード、ＬＶモード及びＴＦＴオンモード）ごとに適切な値が用意されている。
【００７１】
（６）第６の電源情報は、第２電池室１２１及び第３電池室１２２の少なくとも一つに接続されているＡＣアダプタが第１電池室１１０に接続されている電源である場合に用いられる電源情報である。第６の電源情報は、この場合に適した複数の第１の補正値（オフセット値）と一つの第２の補正値（変換行列）とを含む。複数の第１の補正値（オフセット値）は、４つの動作モード（静止画撮影モード、動画撮影モード、ＬＶモード及びＴＦＴオンモード）ごとに適切な値が用意されている。
【００７２】
（７）第７の電源情報は、第２電池室１２１及び第３電池室１２２の一方に接続されているＡＣアダプタと、他方にリチウムイオン電池が第１電池室１１０に接続されている電源である場合に用いられる電源情報である。第７の電源情報は、この場合に適した複数の第１の補正値（オフセット値）と一つの第２の補正値（変換行列）とを含む。複数の第１の補正値（オフセット値）は、４つの動作モード（静止画撮影モード、動画撮影モード、ＬＶモード及びＴＦＴオンモード）ごとに適切な値が用意されている。
【００７３】
（８）第８の電源情報は、第２電池室１２１及び第３電池室１２２の両方に接続されている乾電池が第１電池室１１０に接続されている電源である場合に用いられる電源情報である。第８の電源情報は、この場合に適した複数の第１の補正値（オフセット値）と一つの第２の補正値（変換行列）とを含む。複数の第１の補正値（オフセット値）は、４つの動作モード（静止画撮影モード、動画撮影モード、ＬＶモード及びＴＦＴオンモード）ごとに適切な値が用意されている。
【００７４】
なお、第２のメモリ１１３（又は第１のメモリ１１２）に予め格納されている複数の電源情報は、上記８つの電源情報に限らない。また、電子機器１００の動作モードは、上記４つの動作モードに限らない。想定される電源情報の数は８つより多くても少なくてもよい。また、想定される動作モードの数は４つより多くても少なくてもよい。
【００７５】
図７は、電子機器１００の動作の流れの一例を説明するためのフローチャートである。具体的には、図７は、電子機器１００が起動してから撮像方位が決定されるまでの動作の流れの一例を説明するためのフローチャートである。
【００７６】
まず、Ｓ２０１において、ＣＰＵ１１８は、電源スイッチの状態がＯＮ状態に切り替えられたか否かを判定する。電源スイッチの状態がＯＮ状態に切り替えられると、電子機器１００が起動し、ＣＰＵ１１８は、Ｓ２０１からＳ２０２に進む。
【００７７】
Ｓ２０２において、電源検出部１１８ａは、第１電池室１１０に接続されている電源の種類を判定する。
Ｓ２０３において、ＣＰＵ１１８は、第１電池室１１０に接続されている電源の種類に対応する電源情報を決定する。例えば、図６に示す８つの電源情報のうちの１つが、第１電池室１１０に接続されている電源の種類に対応する電源情報としてＣＰＵ１１８によって決定される。
Ｓ２０４において、補正値決定部１１８ｂは、Ｓ２０３で決定された電源情報に含まれるオフセット値（第１の補正値）と変換行列（第２の補正値）とを、第２のメモリ１１３（又は第１のメモリ１１２）から読み出す。ここで、第２のメモリ１１３（又は第１のメモリ１１２）から読み出されるオフセット値（第１の補正値）は、選択されている動作モ
ードに対応するものである。
【００７８】
Ｓ２０５において、ＣＰＵ１１８は、加速度センサ１１５と磁気センサ１１６とを駆動し、加速度センサ１１５から加速度検出値を取得し、磁気センサ１１６から磁気検出値を取得する。
Ｓ２０６において、検出値補正部１１８ｃは、Ｓ２０４で取得されたオフセット値（第１の補正値）と変換行列（第２の補正値）とを用いて、Ｓ２０６で取得された磁気検出値を補正する。
Ｓ２０７において、方位決定部１１８ｄは、補正後の磁気検出値と、Ｓ２０６で取得された加速度検出値とを用いて、撮像方位を決定する。選択されている動作モードが静止画撮影モード又は動画撮影モードである場合、ＣＰＵ１１８は、Ｓ２０７で決定された撮像方位を示す情報を撮像画像データとともに第１のメモリ１１２に格納する。
Ｓ２０８において、ＣＰＵ１１８は、選択されている動作モードを他の動作モードに変更するユーザー操作が行われたか否かを判定する。選択されている動作モードを他の動作モードに変更するユーザー操作が行われていない場合、ＣＰＵ１１８は、再び撮像方位を決定するために、Ｓ２０８からＳ２０７に戻る。選択されている動作モードを他の動作モードに変更するユーザー操作が行われた場合、ＣＰＵ１１８は、Ｓ２０８からＳ２０２に戻る。
【００７９】
以上述べたように、実施例１によれば、第１電池室１１０に接続されている電源の種類と、電子機器１００の動作モードとの組み合わせに基づいて、磁気センサ１１６の磁気検出値が補正される。そして、補正後の磁気検出値と、加速度センサの加速度検出値とに基づいて、撮像方位が決定される。これにより、決定された方位が電源の変化に依存して変化することを抑制することができ、撮像方位を高精度に決定することができる。
【００８０】
＜実施例２＞
以下、実施例２に係る電子機器１００及びその制御方法について説明する。
実施例１では、第１電池室１１０に接続されている電源の種類と、選択されている動作モードとに基づいて、磁気センサ１１６の磁気検出値を補正する例を説明した。
しかしながら、第１電池室１１０に接続されている電源の状態が変化することによって、磁気センサ１１６が検出する磁場のシフト量やソフトアイロン効果の度合いが変化することがある。第１電池室１１０に接続されている電源が電池である場合、電源の状態には、電池の残容量、電池の電圧、電池の劣化度合などがある。
具体的には、電池に保持されていた電力が消費されると、電池の内部で化学変化が生じ、電池の内部の物質の組成が次第に変化する。そして、電池の内部の物質が変化することによって、ソフトアイロン効果の度合いが変化することがある。電池が劣化した場合にも、同様に、ソフトアイロン効果の度合いが変化することがある。
また、電源回路１０９がスイッチング電源を用いた回路構成を有する場合、電池の電圧の変化前と後とで同じ動作を実現しようとすると、電池に流れる電流が変化する。そのため、電池の電圧が変化すると、磁気センサ１１６が検出する磁場のシフト量も変化する。
【００８１】
そこで、実施例２では、第１電池室１１０に接続されている電源の状態を考慮して磁気検出値を補正する例を説明する。第１電池室１１０に接続されている電源が電池である場合には、電源の状態として、電池の残容量、電池の電圧、電池の劣化度合の全て又は少なくとも一つが考慮される。
【００８２】
図８は、実施例２に係る電子機器１００の動作の一例を説明するためのフローチャートである。図８は、電源が電池であり、且つ、電源の状態として電池の残容量を考慮した場合の一例を説明するためのフローチャートである。
【００８３】
まず、Ｓ３０１において、ＣＰＵ１１８は、電源スイッチの状態がＯＮ状態に切り替えられたか否かを判定する。電源スイッチの状態がＯＮ状態に切り替えられると、電子機器１００が起動し、ＣＰＵ１１８は、Ｓ３０１からＳ３０２に進む。
【００８４】
Ｓ３０２において、電源検出部１１８ａは、第１電池室１１０に接続されている電源の種類を判定する。
Ｓ３０３において、ＣＰＵ１１８は、第１電池室１１０に接続されている電源の種類に対応する電源情報を決定する。例えば、図６に示す８つの電源情報のうちの１つが、第１電池室１１０に接続されている電源の種類に対応する電源情報としてＣＰＵ１１８によって決定される。
Ｓ３０４において、補正値決定部１１８ｂは、Ｓ２０３で決定された電源情報に含まれるオフセット値（第１の補正値）と変換行列（第２の補正値）とを、第２のメモリ１１３（又は第１のメモリ１１２）から読み出す。ここで、第２のメモリ１１３（又は第１のメモリ１１２）から読み出されるオフセット値（第１の補正値）は、選択されている動作モードに対応するものである。
【００８５】
Ｓ３０５において、ＣＰＵ１１８が、第１電池室１１０に接続されている電源の状態（例えば、電源の電圧）を検出する。第１電池室１１０に接続されている電源が電池である場合、第１電池室１１０に接続されている電源の電圧は、電池の残容量に相当する。
Ｓ３０６において、補正値決定部１１８ｂが、Ｓ３０５の検出結果に基づいて、Ｓ３０４で取得されたオフセット値（第１の補正値）を更新する。
【００８６】
図９（ａ）は、第１電池室１１０に接続されている電源の電圧と、磁気センサ１１６が検出する磁場のシフト量との対応関係（第１の対応関係）の一例を説明するための図である。図９（ａ）に示すように、第１電池室１１０に接続されている電源の電圧が変化すると、シフト量も変化する。電圧とシフト量の対応関係は、第１電池室１１０に接続されている電源の種類や接続方法に依存する。
図９（ｂ）は、第１電池室１１０に接続されている電源の電圧と、使用すべきオフセット値との対応関係（第２の対応関係）の一例を説明するための図である。図９（ｂ）には、３つの電源ｂ０〜ｂ２のそれぞれについて、電圧とオフセット値の対応関係が示されている。実施例２では、第１電池室１１０に接続されている電源の種類と電源の接続方法との組み合わせごとに、電圧とオフセット値の対応関係を表す情報が第２のメモリ１１３（又は第１のメモリ１１２）に予め用意されている。
【００８７】
なお、第１電池室１１０に接続されている電源がＡＣアダプタである場合には、通常、電源の状態（電源の電圧）が時間とともに変化することはない。そのため、第１電池室１１０に接続されている電源がＡＣアダプタである場合には、Ｓ３０５とＳ３０６の処理は省略されてもよい。第１電池室１１０に接続されている電源が電池である場合には、電源の状態（電源の電圧）が時間とともに変化する可能性が高い。そのため、第１電池室１１０に接続されている電源が電池である場合には、Ｓ３０５とＳ３０６の処理を行うことが好ましい。時間とともに電源の状態が変化する可能性があり、電源状態の変化に応じて補正を行う必要がある。
【００８８】
Ｓ３０７において、ＣＰＵ１１８は、加速度センサ１１５と磁気センサ１１６とを駆動し、加速度センサ１１５から加速度検出値を取得し、磁気センサ１１６から磁気検出値を取得する。検出値補正部１１８ｃは、Ｓ３０４で取得された変換行列（第２の補正値）とＳ３０６で更新されたオフセット値（第１の補正情報）とを用いて、磁気センサ１１６から取得された磁気検出値を補正する。磁気センサ１１６から取得された磁気検出値が補正された後、方位決定部１１８ｄは、補正後の磁気検出値と、Ｓ３０７で取得された加速度検出値とを用いて、撮像方位を決定する。選択されている動作モードが静止画撮影モード
又は動画撮影モードである場合、ＣＰＵ１１８は、Ｓ３０７で決定された撮像方位を示す情報を撮像画像データとともに第１のメモリ１１２に格納する。
Ｓ３０８において、ＣＰＵ１１８は、選択されている動作モードを他の動作モードに変更するユーザー操作が行われたか否かを判定する。選択されている動作モードを他の動作モードに変更するユーザー操作が行われていない場合、ＣＰＵ１１８は、再び撮像方位を決定するために、Ｓ３０８からＳ３０５に戻る。選択されている動作モードを他の動作モードに変更するユーザー操作が行われた場合、ＣＰＵ１１８は、Ｓ３０８からＳ３０２に戻る。
【００８９】
以上述べたように、実施例２によれば、第１電池室１１０に接続されている電源の状態を考慮して磁気検出値が補正される。それにより、実施例１よりも高精度に撮像方位を決定することができる。
【００９０】
なお、実施例２では、図８のＳ３０５において電源の電圧が、第１電池室１１０に接続されている電源の状態として検出される例を説明したが、これに限らない。例えば、Ｓ３０５において、電源の残容量や電源の劣化度合いが、第１電池室１１０に接続されている電源の状態として検出されてもよい。電池の残容量、電池の電圧、電池の劣化度合などは、例えば、動作モードごとに電子機器１００の駆動時間を計測するタイマーの計測結果に基づいて決定することができる。また、電池の電圧は、電圧器を用いて計測することもできる。
【００９１】
なお、実施例２では、図８のＳ３０６においてオフセット値を更新する例を説明したが、これに限らない。例えば、第１電池室１１０に接続されている電源の状態に基づいて、変換行列（第２の補正値）が更新されてもよい。また、例えば、第１電池室１１０に接続されている電源の状態に基づいて、オフセット値（第１の補正値）と変換行列（第２の補正値）との両方が更新されてもよい。
【００９２】
＜実施例３＞
以下、実施例３に係る電子機器１００及びその制御方法について説明する。
実施例１及び２では、第１電池室１１０に接続されている電源の種類を検出する例を説明した。
実施例３では、第１電池室１１０に接続されている電源の種類に対応する電源情報が、第２のメモリ１１３（又は第１のメモリ１１２）から取得できなかった場合に特別な処理を行う例を説明する。
【００９３】
図１０は、実施例３に係る電子機器１００の動作の一例を説明するためのフローチャートである。
【００９４】
まず、Ｓ４０１において、ＣＰＵ１１８は、電源スイッチの状態がＯＮ状態に切り替えられたか否かを判定する。電源スイッチの状態がＯＮ状態に切り替えられると、電子機器１００が起動し、ＣＰＵ１１８は、Ｓ４０１からＳ４０２に進む。
Ｓ４０２において、電源検出部１１８ａは、第１電池室１１０に接続されている電源の種類を判定する。
Ｓ４０３において、電源検出部１１８ａは、Ｓ４０２で判定された電源の種類に対応する電源情報を第２のメモリ１１３（又は第１のメモリ１１２）から取得できたか否かを判定する。ここでは、「電源情報の一部が取得できなかった場合」も「電源情報が取得できなかった場合」に該当する。電源情報が取得できた場合、ＣＰＵ１１８は、Ｓ４０３からＳ４１０に進む。電源情報が取得できなかった場合、ＣＰＵ１１８は、Ｓ４０３からＳ４０４に進む。
Ｓ４１０において、電子機器１００の撮像方位は、実施例１及び２の何れかにおいて説
明した方法に従って決定される。そして、本フローチャートは終了する。
【００９５】
Ｓ４０４において、ＣＰＵ１１８が有する通知部が、電源情報が取得できなかったことに関する情報をユーザーに通知する。電源情報が取得できなかった場合、撮像方位を高精度に検出することはできない。そこで、実施例３では、通知部は、撮像方位の検出精度が低下することを、ユーザーに通知する。ユーザーへの通知は、画面に通知画像（アイコン、メッセージなど）を表示することで実現することができる。また、画面とは別の発光部からの光を用いてユーザーへの通知を行うこともできるし、スピーカ等からの音或いは音声を用いてユーザーへの通知を行うこともできる。
【００９６】
Ｓ４０４において、例えば、図１１（ａ）に示すような通知画像が表示される。
図１１（ａ）の通知画像には、撮像方位の検出精度が低下することを表すメッセージ「電源が不明であるため方位の検出精度が低下します。」が記載されている。また、図１１（ａ）の通知画像には、撮像方位の検出を行うか否かをユーザーに確認するメッセージ「電子コンパス機能を使いますか？」が記載されている。そして、図１１（ａ）の通知画像は、方位の検出を行う場合にユーザーが操作する実行ボタン（「はい」が記載されているボタン）と、撮像方位の検出を行わない場合にユーザーが操作する非実行ボタン（「いいえ」が記載されているボタン）と、を有する。
【００９７】
Ｓ４０５において、ＣＰＵ１１８は、電子機器１００の方位の検出精度が低下するにもかかわらず撮像方位の検出をユーザーが望んでいるか否かを判定する。具体的には、図１１（ａ）の実行ボタンと非実行ボタンのどちらが選択されたのかが判定される。実行ボタンが選択された場合には、撮像方位の検出をユーザーが望んでいると判定され、ＣＰＵ１１８は、Ｓ４０５からＳ４０６に進む。非実行ボタンが選択された場合には、撮像方位の検出をユーザーが望んでいないと判定され、撮像方位を決定する処理が実行されずに、本フローチャートは終了する。
【００９８】
Ｓ４０６において、補正値決定部１１８ｂは、例えば、第１の種類の電源情報に含まれるオフセット値（第１の補正値）と変換行列（第２の補正値）とを、第２のメモリ１１３（又は第１のメモリ１１２）から読み出す。ここで、第２のメモリ１１３（又は第１のメモリ１１２）から読み出されるオフセット値（第１の補正値）は、選択されている動作モードに対応するものである。
Ｓ４０７において、ＣＰＵ１１８は、加速度センサ１１５と磁気センサ１１６とを駆動し、加速度センサ１１５から加速度検出値を取得し、磁気センサ１１６から磁気検出値を取得する。
Ｓ４０８において、検出値補正部１１８ｃは、Ｓ４０６で取得されたオフセット値（第１の補正値）と変換行列（第２の補正値）とを用いて、Ｓ４０７で取得された磁気検出値を補正する。方位決定部１１８ｄは、補正後の磁気検出値と、Ｓ４０７で取得された加速度検出値とを用いて、撮像方位を決定する。選択されている動作モードが静止画撮影モード又は動画撮影モードである場合、ＣＰＵ１１８は、Ｓ４０８で決定された撮像方位を示す情報を撮像画像データとともに第１のメモリ１１２に格納する。このように、実施例３では、撮像方位の検出精度が低下するにもかかわらず撮像方位の検出を行う場合に、所定の方法で磁気検出値が補正される。
【００９９】
Ｓ４０９において、ＣＰＵ１１８は、選択されている動作モードを他の動作モードに変更するユーザー操作が行われたか否かを判定する。選択されている動作モードを他の動作モードに変更するユーザー操作が行われていない場合、ＣＰＵ１１８は、再び撮像方位を決定するために、Ｓ４０９からＳ４０８に戻る。選択されている動作モードを他の動作モードに変更するユーザー操作が行われた場合、ＣＰＵ１１８は、Ｓ４０９からＳ４０２に戻る。
【０１００】
以上述べたように、実施例３によれば、電源情報が取得できなかった場合に、電源情報が取得できなかったことに関する情報が、ユーザーに通知される。それにより、撮像方位が高精度に実行できないことを、ユーザーに把握させることができる。
また、実施例３によれば、撮像方位が高精度に実行できないにもかかわらず撮像方位の検出をユーザーが望んでいる場合に、所定の方法で磁気検出値が補正され、補正後の磁気検出値を用いて撮像方位が決定される。それにより、ユーザーの要望に応えることができる。
【０１０１】
なお、電源情報が取得できなかったことに関する情報は、撮像方位の検出精度が低下することを表す情報に限らない。例えば、電源情報が取得できなかったことに関する情報として、撮像方位を検出できないことを表す情報が通知されてもよい。そのような情報が通知された場合には、撮像方位を決定する処理は実行されない。
撮像方位を検出できないことを表す情報は、例えば、図１１（ｂ）に示す通知画像を画面に表示することにより、ユーザーに通知することができる。図１１（ｂ）の通知画像には、撮像方位を検出できないことを表すメッセージ「電源が不明であるため電子コンパス機能は使えません。」が記載されている。
【０１０２】
なお、ユーザーへの通知は行われなくてもよい。例えば、電源情報が取得できなかった場合に、所定の方法で磁気検出値が補正され、補正後の磁気検出値を用いて撮像方位が決定されてもよい。また、電源情報が取得できなかった場合に、撮像方位を決定する処理が実行されずに、他の処理（動作モードに応じた処理、ユーザー操作に応じた処理など）が実行されてもよい。
【０１０３】
＜実施例４＞
実施例１〜３で説明した様々な機能、処理及び方法は、パーソナルコンピュータ、マイクロコンピュータ、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などがプログラムを用いて実現することもできる。以下、実施例４では、パーソナルコンピュータ、マイクロコンピュータ、ＣＰＵなどを「コンピュータＸ」と呼ぶ。また、実施例４では、コンピュータＸを制御するためのプログラムであって、実施例１〜３で説明した様々な機能、処理及び方法を実現するためのプログラムを「プログラムＹ」と呼ぶ。
【０１０４】
実施例１〜３で説明した様々な機能、処理及び方法は、コンピュータＸがプログラムＹを実行することによって実現される。この場合において、プログラムＹは、コンピュータ読み取り可能な記憶媒体を介してコンピュータＸに供給される。実施例４におけるコンピュータ読み取り可能な記憶媒体は、ハードディスク装置、光ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＲＯＭ、ＲＡＭなどの少なくとも一つを含む。実施例４におけるコンピュータ読み取り可能な記憶媒体は、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ（非一時的）な記憶媒体である。
【符号の説明】
【０１０５】
１００：電子機器
１１５：加速度センサ
１１６：磁気センサ
１１８ａ：電源検出部
１１８ｂ：補正値決定部
１１８ｃ：検出値補正部
１１８ｄ：方位決定部
【図１】
2016061569.tif 000003
【図２】
2016061569.tif 000004
【図３】
2016061569.tif 000005
【図４】
2016061569.tif 000006
【図５】
2016061569.tif 000007
【図６】
2016061569.tif 000008
【図７】
2016061569.tif 000009
【図８】
2016061569.tif 000010
【図９】
2016061569.tif 000011
【図１０】
2016061569.tif 000012
【図１１】
2016061569.tif 000013
【図１２】
2016061569.tif 000014