(57)【要約】【課題】第１及び第２モジュールが着脱可能に取り付けられる電子機器において、第１モジュールが受光する光、又は第１モジュールが発光する光が、第２モジュールによって遮られることを抑制する。【解決手段】第１モジュールと第２モジュールとが電子機器本体に対して着脱可能に取り付けられ、第１モジュールが、所定の範囲からの光を受光する機能、又は所定の範囲に光を照射する機能を有する電子機器において、第１モジュールに関する情報を取得する第１取得手段と、第２モジュールに関する情報を取得する第２取得手段と、第１モジュールに関する情報、及び第２モジュールに関する情報に基づいて、第１モジュールが受光する光、又は第１モジュールが発光する光に、第２モジュールによって遮られる部分があるかどうかの判定を行う判定手段と、前記判定手段の判定結果に応じて所定の処理を行う処理手段と、を有する。【選択図】図１１
2019102972.tif 000002
【特許請求の範囲】
【請求項１】
第１モジュールと第２モジュールとが電子機器本体に対して着脱可能に取り付けられ、前記第１モジュールが、所定の範囲からの光を受光する機能、又は所定の範囲に光を照射する機能を有する電子機器において、
前記第１モジュールに関する情報を取得する第１取得手段と、
前記第２モジュールに関する情報を取得する第２取得手段と、
前記第１モジュールに関する情報、及び前記第２モジュールに関する情報に基づいて、前記第１モジュールが受光する光、又は前記第１モジュールが発光する光に、前記第２モジュールによって遮られる部分があるかどうかの判定を行う判定手段と、
前記判定手段の判定結果に応じて所定の処理を行う処理手段と、
を有することを特徴とする電子機器。
【請求項２】
前記判定手段は、
前記第１取得手段から前記第１モジュールの位置に関する情報を取得し、
前記第２取得手段から前記第２モジュールの位置に関する情報を取得し、
前記第１モジュールの位置と、前記第２モジュールの位置との間の距離の大きさが、閾値よりも大きいかどうかを判定し、否定判定の場合に、前記遮られる部分があると判定する
ことを特徴とする請求項１に記載の電子機器。
【請求項３】
前記閾値は、前記第１モジュールの種類に関する情報、又は前記第２モジュールの外形に関する情報に対応して予め設定されている
ことを特徴とする請求項２に記載の電子機器。
【請求項４】
前記閾値は、前記所定の範囲の大きさに対応して予め設定され、
前記電子機器本体からの距離が同じ位置では、前記所定の範囲の大きさが大きいほど、前記閾値は大きい
ことを特徴とする請求項２又は３に記載の電子機器。
【請求項５】
前記第１モジュールと前記第２モジュールとのうちいずれかは、光を受光して撮像を行う撮像モジュールであり、
前記撮像モジュールは、撮影可能範囲よりも小さな撮影範囲を切り出し、見かけの焦点距離を電子的に変更することが可能なトリミング手段、又は、光学素子を光軸方向に移動させて焦点距離を変更する変更手段を有し、
前記閾値は、前記撮像モジュールの焦点距離に対応して予め設定され、焦点距離が広角側であるほど、前記閾値は大きい
ことを特徴とする請求項２又は３に記載の電子機器。
【請求項６】
前記判定手段は、
前記第１取得手段から前記第１モジュールの位置及び種類に関する情報を取得し、
前記第２取得手段から前記第２モジュールの位置及び外形に関する情報を取得し、
前記第１モジュールの位置に関する情報と、前記第１モジュールの種類に対応する前記所定の範囲に関する情報と、前記第２モジュールの位置及び外形に関する情報とに基づいて、前記判定を行う
ことを特徴とする請求項１に記載の電子機器。
【請求項７】
前記第１モジュールは、光を受光して撮像を行う撮像モジュールであり、
前記所定の範囲に関する情報は、前記撮像モジュールの像面の位置に関する情報、前記撮像モジュールの焦点距離に関する情報、及び前記撮像モジュールの画角に関する情報を
含む
ことを特徴とする請求項１乃至６のいずれか１項に記載の電子機器。
【請求項８】
前記撮像モジュールと前記第２モジュールとのうちいずれかが前記電子機器本体に取り付けられたこと、又は、前記電子機器本体に取り付けられた前記撮像モジュールの状態が変化したことを検出する検出手段を有し、
前記判定手段は、前記検出手段による検出が行われたときに、前記判定を行う
ことを特徴とする請求項７に記載の電子機器。
【請求項９】
前記処理手段は、前記判定手段により前記遮られる部分があると判定された場合、前記遮られる部分をなくすために、前記撮像モジュールの撮影機能の調整を行う
ことを特徴とする請求項７又は８に記載の電子機器。
【請求項１０】
前記第２モジュールは、外部の接続端子と接続可能な接続手段を有し、
前記処理手段は、前記判定手段により前記遮られる部分があると判定された場合、又は、前記接続手段に前記外部の接続端子が接続されている場合、前記遮られる部分をなくすために、前記撮像モジュールの撮影機能の調整を行う
ことを特徴とする請求項７又は８に記載の電子機器。
【請求項１１】
前記第１モジュールは、光を発光する発光モジュールであり、
前記所定の範囲に関する情報は、前記発光モジュールの配光角に関する情報を含む
ことを特徴とする請求項１乃至６のいずれか１項に記載の電子機器。
【請求項１２】
前記第２モジュールは、光を受光して撮像を行う撮像モジュールであり、
前記発光モジュールと前記撮像モジュールとのうちいずれかが前記電子機器本体に取り付けられたこと、又は、前記電子機器本体に取り付けられた前記撮像モジュールの状態が変化したことを検出する検出手段を有し、
前記判定手段は、前記検出手段による検出が行われたときに、前記判定を行う
ことを特徴とする請求項１１に記載の電子機器。
【請求項１３】
前記発光モジュールは、
前記撮像モジュールの露光動作中に発光する第１の動作モードと、
前記撮像モジュールが露光動作を行っていないときに発光する第２の動作モードと
を切り替えて発光することができ、
前記発光モジュールと前記撮像モジュールとのうちいずれかが前記電子機器本体に取り付けられたこと、又は、前記電子機器本体に取り付けられた前記撮像モジュールの状態が変化したことを検出する検出手段を有し、
前記判定手段は、前記検出手段による検出が行われたときであって、前記発光モジュールが前記第１の動作モードで発光するときに、前記判定を行う
ことを特徴とする請求項１２に記載の電子機器。
【請求項１４】
前記第２モジュールは、光を受光して撮像を行う撮像モジュールであり、
前記処理手段は、前記判定手段により前記遮られる部分があると判定された場合、前記遮られる部分をなくすために、前記撮像モジュールの撮影機能の調整を行う
ことを特徴とする請求項１１乃至１３のいずれか１項に記載の電子機器。
【請求項１５】
前記撮像モジュールは、撮影可能範囲よりも小さな撮影範囲を切り出すことが可能なトリミング手段を有し、
前記処理手段は、前記撮像モジュールの撮影機能の調整を行う際、前記トリミング手段により前記撮影可能範囲よりも小さな撮影範囲を切り出す
ことを特徴とする請求項９，１０又は１４に記載の電子機器。
【請求項１６】
前記処理手段は、
前記第１取得手段から前記第１モジュールの位置及び種類に関する情報を取得し、
前記第２取得手段から前記第２モジュールの位置及び外形に関する情報を取得し、
前記第１モジュールの位置に関する情報と、前記第１モジュールの種類に対応する前記所定の範囲に関する情報と、前記第２モジュールの位置及び外形に関する情報とに基づいて、前記トリミング手段によって切り出す撮影範囲を計算する
ことを特徴とする請求項１５に記載の電子機器。
【請求項１７】
前記撮像モジュールは、光学素子を光軸方向に移動させて焦点距離を変更する変更手段を有し、
前記処理手段は、前記撮像モジュールの撮影機能の調整を行う際、前記変更手段により焦点距離を望遠側に変更する
ことを特徴とする請求項９，１０又は１４に記載の電子機器。
【請求項１８】
前記第１取得手段から前記第１モジュールの位置及び種類に関する情報を取得し、
前記第２取得手段から前記第２モジュールの位置及び外形に関する情報を取得し、
前記第１モジュールの位置に関する情報と、前記第１モジュールの種類に対応する前記所定の範囲に関する情報と、前記第２モジュールの位置及び外形に関する情報とに基づいて、前記変更手段によって変更する焦点距離を計算する
ことを特徴とする請求項１７に記載の電子機器。
【請求項１９】
前記第１モジュールと前記第２モジュールとのうちいずれ一方が、光を受光して撮像を行う撮像モジュールであり、
前記撮像モジュールは、光学素子を光軸方向に直交する方向に移動させる移動手段を有し、
前記処理手段は、前記撮像モジュールの撮影機能の調整を行う際、前記第１モジュールと前記第２モジュールとのうち他方のモジュールから離間する方向に前記所定の範囲を移動させるために、前記移動手段により前記光学素子を移動させる
ことを特徴とする請求項９，１０又は１４に記載の電子機器。
【請求項２０】
前記判定手段の判定結果に関する情報を通知する通知手段と、
ユーザによる入力を受け付ける入力手段と、
を有し、
前記処理手段は、前記判定手段により前記遮られる部分があると判定された場合に、前記遮られる部分があることを前記通知手段により通知した後、前記入力手段が受け付けた入力に応じた処理を行う
ことを特徴とする請求項１乃至８，１１乃至１３のいずれか１項に記載の電子機器。
【請求項２１】
第１モジュールと第２モジュールとが電子機器本体に対して着脱可能に取り付けられ、前記第１モジュールが、所定の範囲からの光を受光する機能、又は所定の範囲に光を照射する機能を有する電子機器の制御方法において、
前記第１モジュールに関する情報を取得するステップと、
前記第２モジュールに関する情報を取得するステップと、
前記第１モジュールに関する情報、及び前記第２モジュールに関する情報に基づいて、前記第１モジュールが受光する光、又は前記第１モジュールが発光する光に、前記第２モジュールによって遮られる部分があるかどうかの判定を行う判定ステップと、
前記判定ステップの判定結果に応じて所定の処理を行うステップと、
を含むことを特徴とする電子機器の制御方法。
【請求項２２】
請求項２１に記載の電子機器の制御方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器及びその制御方法に関するものである。
【背景技術】
【０００２】
機能単位でまとまりを持たせたモジュールをブロックの様に組み合わせることで、所望する様々な機能を実現させたスマートデバイスと呼ばれる電子機器が知られている。こうしたスマートデバイスは、複数のスロットが形成された本体と、異なる機能を持った複数のモジュールとで構成されており、これらの多種多様なモジュールは、それぞれ自由な組み合わせで本体のスロットに着脱される。このとき、例えば撮像機能を有するモジュールを本体のスロットに装着すれば、ＯＳ上にインストールされたアプリケーションプログラムの動作によって、撮影機能を利用することが可能となる。
こうしたスマートデバイスに対応する撮像モジュール自体もまた多種多様である。本体への着脱手段や通信手段など一定の規格を満足するものであれば、例えば光学レンズの焦点距離や撮像センサのサイズが異なっていてもよい。更に、これらの撮像モジュールを設計するメーカが特定の企業に限定される必要はなく、カメラメーカや電機メーカなど複数存在しても構わない。また撮像モジュール内においても、どこにどの構成部品を配置するかといった制約が少なく、設計の自由度は高い。そのため、撮像モジュールをそれぞれの仕様やメーカにとって都合のよい、最適なレイアウトで設計することができる。
【０００３】
ところで近年、よりワイドな画角で撮影できる広角レンズや、より明るい開放Ｆ値の大口径レンズを用いたカメラが、比較的小型な撮像モジュールにも搭載されるようになっている。そして、こうした電子機器に向けては、所謂魚眼レンズと呼ばれるような広角レンズの特性を活かした、広角撮影専用のアプリケーションプログラムが提供されている。このアプリケーションプログラムには、撮像モジュールの他に、比較的大容量な電源モジュールや記録モジュール、姿勢検知モジュールといった種類の、最低限必要となる機能モジュールの組み合わせが存在する。更に例えば、これらの該当モジュールをそれぞれ特定のスロットに装着した状態でのみ、広角撮影の機能を最大限に活かすことが出来るといった位置関係の制約が設けられている場合がある。
【０００４】
また、消費電力が少ないだけでなく、小型軽量でありながら、より遠くをより広範囲に照射することのできる高性能ＬＥＤが、発光モジュールに実装されるようになっている。そしてこうした電子機器に向けては、撮像モジュールの動作と同期して撮像センサの露光中に閃光を照射する、所謂フラッシュ撮影と呼ばれるような特に暗所や逆光での撮影に適したアプリケーションプログラムが提供されている。このアプリケーションプログラムには、撮像モジュールと発光モジュールとの他に、比較的大容量な電源モジュールや記録モジュール、姿勢検知モジュールといった種類の、最低限必要となる機能モジュールの組み合わせが存在する。更に例えば、これらの該当モジュールをそれぞれ特定のスロットに装着した状態でのみ、フラッシュ撮影の機能を最大限に活かすことが出来るといった位置関係の制約が設けられている場合がある。
【０００５】
しかしながら通常時は、撮影機能に関係のないモジュールも含め、ユーザが任意に選定したモジュールの自由な組み合わせで使用されることになる。このとき、既に装着されているモジュールの種類の組み合わせに問題がないか、所望の撮影機能を最大限に活かすことが出来るか等を電子機器が判定しなければ、前述のような広角撮影専用のアプリケーションプログラムを適正に動作させることはできない。
【０００６】
そこで、モジュールの種類の組み合わせによって所望の機能が実現できるかどうかを判
定する制御が、特許文献１によって公知となっている。特許文献１に記載の制御では、アプリケーションプログラムの起動の際、アプリケーションプログラムが使用するリソースと画像形成装置のリソースとの状態に応じて、画像形成装置の起動の可否を判断する。具体的には、アプリケーション名と、バージョンの情報と、メモリやシステム機器構成を含む使用リソース情報と、が記録されているアプリケーション管理ファイルから、アプリケーションプログラム実行中に使用する予定の機器構成リソースの情報を取得する。そして、電子機器に必要なリソースが全て備わっているかどうかを判定し、備わっていない場合には、ユーザにメッセージを通知すると共に、そのリソースを使わないモードで動作させるものである。
また特許文献２では、コンピュータシステムにおいて、アプリケーションプログラムを実行するために必要な機能モジュールのうち、いずれかが異常と判定された場合にアプリケーションプログラムの全ての動作を停止させる制御が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４５６５０２４号公報
【特許文献２】特開２００１−１４１７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、前述のスマートデバイスにおいては、モジュールの種類だけでなく、それらを装着するスロットの位置の組み合わせもまた比較的自由である。
例えば、広角の撮像モジュールに近接して、スマートデバイスの表面から特に一部が突出するような、標準的な外形とは異なるモジュールが装着されることも想定される。このような場合、レンズの画角が広いことから、撮影範囲の一部がこうした異型のモジュールによって遮られてしまうおそれがある。
また例えば配光角の比較的広い発光モジュールに近接して、スマートデバイスの表面から特にカメラ部が突出した撮像モジュールが装着されることも想定される。この場合、照射する範囲が広いことから、配光の一部がこうした撮像モジュールの外形によって遮られてしまうおそれがある。フラッシュ撮影においては、閃光が撮影範囲となる所定の空間内を、なるべく均一になるように照射されるのが好ましい。ところが、撮像モジュールの外形によって配光の一部が遮られると、被写体に意図しない影が発生するなどして、撮像モジュールによる撮影結果に影響を及ぼしてしまう。
【０００９】
これに対して、特許文献１，２に記載されている制御は、所望の機能を実現する上で不可欠なモジュールの種類が全て備わっているか、またそれらのモジュールに異常がないかを判定するものである。そのため、撮影範囲の一部、又は配光の一部が異型のモジュールに遮られるといった、装着されるスロットの位置関係に起因する不具合については検出することができない。
【００１０】
本発明は上記事情に鑑みてなされたものであり、第１及び第２モジュールが着脱可能に取り付けられる電子機器において、第１モジュールが受光する光、又は第１モジュールが発光する光が、第２モジュールによって遮られることを抑制することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１態様は、
第１モジュールと第２モジュールとが電子機器本体に対して着脱可能に取り付けられ、前記第１モジュールが、所定の範囲からの光を受光する機能、又は所定の範囲に光を照射する機能を有する電子機器において、
前記第１モジュールに関する情報を取得する第１取得手段と、
前記第２モジュールに関する情報を取得する第２取得手段と、
前記第１モジュールに関する情報、及び前記第２モジュールに関する情報に基づいて、前記第１モジュールが受光する光、又は前記第１モジュールが発光する光に、前記第２モジュールによって遮られる部分があるかどうかの判定を行う判定手段と、
前記判定手段の判定結果に応じて所定の処理を行う処理手段と、
を有することを特徴とする電子機器である。
【００１２】
本発明の第２態様は、
第１モジュールと第２モジュールとが電子機器本体に対して着脱可能に取り付けられ、前記第１モジュールが、所定の範囲からの光を受光する機能、又は所定の範囲に光を照射する機能を有する電子機器の制御方法において、
前記第１モジュールに関する情報を取得するステップと、
前記第２モジュールに関する情報を取得するステップと、
前記第１モジュールに関する情報、及び前記第２モジュールに関する情報に基づいて、前記第１モジュールが受光する光、又は前記第１モジュールが発光する光に、前記第２モジュールによって遮られる部分があるかどうかの判定を行う判定ステップと、
前記判定ステップの判定結果に応じて所定の処理を行うステップと、
を含むことを特徴とする電子機器の制御方法である。
本発明の第３態様は、上述した電子機器の制御方法の各ステップをコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１３】
本発明によれば、第１及び第２モジュールが着脱可能に取り付けられる電子機器において、第１モジュールが受光する光、又は第１モジュールが発光する光が、第２モジュールによって遮られることを抑制することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】実施例１に係る電子機器の一例であるスマートデバイスを示す概略図
【図２】実施例１のスマートデバイス本体に取り付けられるモジュールを示す概略図
【図３】実施例１のスマートデバイス本体にモジュールを取り付ける方法を説明する図
【図４】実施例１のＥＰＭと磁性体との磁力による結合を説明する模式図
【図５】実施例１のスマートデバイスの構成の一部を示すブロック図
【図６】アプリケーションプログラム制御モジュールの主ルーチンのフローチャート
【図７】実施例１のモジュールのリリース処理を示すフローチャート
【図８】実施例１のモジュール装着処理を示すフローチャート
【図９】実施例１の撮影アプリケーション実行処理を示すフローチャート
【図１０】実施例１の近接判定処理を示すフローチャート
【図１１】実施例１のカメラ光軸と外部Ｉ／Ｏモジュールの距離の計算方法の説明図
【図１２】実施例１のカメラの光軸と突出部との詳細な位置関係を説明する図
【図１３】実施例２のスマートデバイスの外観図
【図１４】実施例２のカメラの光軸と突出部との詳細な位置関係を説明する図
【図１５】実施例３の撮影アプリケーション実行処理を示すフローチャート
【図１６】実施例３の近接判定処理を示すフローチャート
【図１７】実施例３の発光モジュールが装着されたスマートデバイスを示す概略図
【図１８】実施例３のカメラの光軸と発光モジュールの発光中心の位置関係の説明図
【図１９】実施例３のカメラの光軸と発光モジュールの発光中心の位置関係の説明図
【図２０】実施例４のスマートデバイスの外観図
【図２１】実施例４のカメラの光軸と発光モジュールの発光中心の位置関係の説明図
【図２２】実施例４のカメラの光軸と発光モジュールの発光中心の位置関係の説明図
【発明を実施するための形態】
【００１５】
以下、この発明を実施するための形態を図面を参照して例示的に説明する。ただし、以下の実施形態に記載されている各部材の寸法、形状、その相対配置など、各種制御の手順、制御パラメータ、目標値などは、特に特定的な記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
（実施例１）
図１（ａ）〜１（ｄ）は、実施例１に係る電子機器の一例であるスマートデバイス５０を示す概略図である。
図１（ａ），１（ｂ）にはそれぞれ、スマートデバイス５０の本体であるスマートデバイス本体（電子機器本体）１００を、正面側から見たときの外観図と、背面側から見たときの外観図とを示す。なお、以下の説明において、「正面側」「背面側」とは、スマートデバイス本体１００を基準として、スマートデバイス本体１００の正面側、背面側をいうものとする。また、「左」「右」とは、図面上における左右をいうものとする。
【００１６】
図１（ａ）に示すように、スマートデバイス本体１００の正面側には、モジュールを取り付ける際のガイドと保持機能とを兼ね備えた複数のリブ１０１が形成されている。また、図１（ｂ）に示すように、スマートデバイス本体１００の背面側には、複数のリブ１０１が形成されると共に、スマートデバイス本体１００を左右の領域に分割するスパイン１０２が形成されている。リブ１０１とスパイン１０２とは、モジュールを取り付ける際のガイドと、着脱可能に保持する保持機能とを兼ね備えると同時に、スマートデバイス本体１００の剛性を高める機能をも有している。以下、リブ１０１とスパイン１０２とを合わせてフレーム構造と称することにする。スマートデバイス本体１００の正面側と背面側とは、リブ１０１とスパイン１０２とによって、複数のモジュールの取り付け領域（１０００、１１００、１２００、１３００、１４００、１５００、１６００、１７００、１８００、１９００）に分割されている。以下、これらのモジュールの取り付け領域をスロットと称する。
【００１７】
各スロット１０００、１１００、１２００、１３００、１４００、１５００、１６００、１７００、１８００、１９００には、電磁着脱機構を司るエレクトロパーマネントマグネット（以下、ＥＰＭと称する）１６０〜１６９が設けられている。尚、ＥＰＭについては、詳しくは後述する。各ＥＰＭ１６０〜１６９近傍には、スマートデバイス本体１００と各モジュールとがデータの送受信をするための本体側非接触通信手段（以下、本体側ＣＭＣと称する）１４０〜１４９が備えられている。つまり、各スロット１０００、１１００、１２００、１３００、１４００、１５００、１６００、１７００、１８００、１９００には、ＥＰＭ１６０〜１６９と本体側ＣＭＣ１４０〜１４９とが、それぞれ少なくとも一対設けられていることになる。尚、図１（ａ），１（ｂ）に示すように、ＥＰＭ１６０〜１６９と本体側ＣＭＣ１４０〜１４９とは、スロットの大きさに応じて、複数設けられていてもよい。
【００１８】
スマートデバイス本体１００の正面側には、図１（ａ）において左側の端部付近にＥＰＭ１６０、１６３が配置されており、そのＥＰＭ１６０、１６３の右側に本体側ＣＭＣ１４０、１４３が配置されている。スマートデバイス本体１００の背面側には、スパイン１０２に隣接するようにＥＰＭ１６１、１６２、１６４〜１６９が配置されている。図１（ｂ）においてスパイン１０２の左側の領域には、ＥＰＭ１６５、１６７〜１６９が設けられ、更にそのＥＰＭ１６５、１６７〜１６９の左側に本体側ＣＭＣ１４５、１４７〜１４９が配置されている。またスパイン１０２の右側の領域には、ＥＰＭ１６１、１６２、１６４、１６６が設けられ、更にそのＥＰＭ１６１、１６２、１６４、１６６の右側に本体側ＣＭＣ１４１、１４２、１４４、１４６が配置されている。
【００１９】
図１（ｃ），１（ｄ）にはそれぞれ、スマートデバイス５０の一例として、スマートデバイス本体１００にモジュールを取り付けた状態を正面側から見た外観図と、背面側から見た外観図とを示す。
図１（ｃ），１（ｄ）に示すように、スマートデバイス本体１００の正面側及び背面側には、各機能を備えたモジュール１５０、２００、３００、３５０、４００、５００、６００、７００、８００、９００が取り付けられる。スマートデバイス本体１００の正面側の下部のスロット１３００には、略全面にタッチ検知機能を有した表示部３１２から成るモジュール（以下、表示操作モジュールと称する）３００が装着されている。表示操作モジュール３００の右側面には、スマートデバイス５０の電源のＯＮとＯＦＦとを切り替える電源ボタン３１４ａが形成されており、同じく表示操作モジュール３００の左側面には、音量を調節する音量調節ボタン３１４ｂが形成されている。更に表示操作モジュール３００には、スマートデバイス５０が移動体無線通信機器として機能する際に、通話者の音声を検出するマイク部３１８が設けられている。マイク部３１８は、スマートデバイス５０がビデオカメラとして機能する際に、動画の音声を収集する役割も担う。また、スマートデバイス本体１００の正面側の上部のスロット１０００には、スピーカモジュール３５０が取り付けられている。スピーカモジュール３５０には、スマートデバイス５０が移動体無線通信機器として機能する際に、受信した音声を出力するスピーカ部３５１が設けられており、その他に音楽や操作音を出力する。
【００２０】
一方、スマートデバイス本体１００の背面側において、スパイン１０２の左側の上部のスロット１５００には、各種撮影機能を有する撮像モジュール５００が装着されている。前述のように、スマートデバイス本体１００への着脱手段であるＥＰＭと、通信手段であるＣＭＣとの一定の規格を満足していれば、異なる機能を持ったモジュールであっても、スロット１５００に対して装着することが可能である。
また本実施例では、代表的な一例として撮像モジュール５００について示すものであるが、これに限るものではなく、スマートデバイス５０に対応し得る撮像モジュールの仕様や形状等は多種多様である。そのため、例えば別の撮像モジュールとして、撮像モジュール５００よりも画角が狭く、焦点距離が望遠寄りに設定された撮像モジュールが、異なるモジュールメーカーから提供されることも想定される。
【００２１】
スロット１５００と近接して、スパイン１０２の右側の上部のスロット１６００には、外部と通信するコネクタを有した外部Ｉ／Ｏモジュール６００が装着されている。これによって図１（ｄ）に示すように、撮像モジュール５００と外部Ｉ／Ｏモジュール６００とがお互いに近接した位置関係となっている。
スロット１５００に対して、その下部に形成されたスロット１７００には、外部と無線でデータの送受信を行う無線ＬＡＮモジュール７００が装着されている。更にその下部のスロット１８００には、スマートデバイス５０の姿勢を検知する姿勢検知モジュール８００が取り付けられている。姿勢検知モジュール８００は、３軸のジャイロセンサから取得する角速度情報を利用することで、スマートデバイス５０の姿勢の変化を検知する。スパイン１０２の左側の下部のスロット１９００には、ＴＤＭＡ、ＣＤＭＡ、ＬＴＥ等の単数或いは複数の各種遠距離通信機能を有する移動体通信モジュール９００が装着されている。ここで、ＴＤＭＡは、Time Division Multiple Access、ＣＤＭＡは、Code Division Multiple Access、ＬＴＥは、Long Term Evolution である。スパイン１０２の右側の上部のスロット１６００に対して、その下部に形成されたスロット１２００には、スマートデバイス５０全体の制御を行うアプリケーションプログラム制御モジュール２００が装着されている。
【００２２】
前述のように、対応するアプリケーションプログラムがインストールされている場合は、アプリケーションプログラム制御モジュール２００を介することで、所望する様々な機能を利用できる。例えば、専用の通話アプリケーションであれば、アプリケーションプロ
グラム制御モジュール２００を介して移動体通信モジュール９００を動作させることで、通話機能が利用可能となる。同様に、専用のインターネット接続アプリケーションであれば、アプリケーションプログラム制御モジュール２００を介して無線ＬＡＮモジュール７００を動作させることで、インターネット接続によるウェブ閲覧機能が利用可能となる。また例えば、専用の撮影アプリケーションであれば、アプリケーションプログラム制御モジュール２００を介して撮像モジュール５００を動作させることで、各種の撮影機能を利用することができる。尚、このようなアプリケーションプログラムの機能は特に限定されるものではなく、またこれらの機能は公知であるため、個別の詳細な説明は省略する。
スロット１２００の下部のスロット１４００には、スマートデバイス５０に電力を供給する電源モジュール４００が装着されている。更にスパイン１０２の右側の下部のスロット１１００には、撮影した画像データなどの各種データを保存する記録モジュール１５０が取り付けられている。尚、スマートデバイス本体１００の背面側において、スロット１１００、１２００、１４００、１５００、１６００、１７００、１８００、１９００はいずれも略同一面となっている。
【００２３】
図２（ａ）〜２（ｄ）は、本実施例のスマートデバイス本体１００に取り付けられるモジュール１５０、２００、３００、３５０、４００、５００、６００、７００、８００、９００を示す概略図である。図２（ａ），２（ｂ）にはそれぞれ、スマートデバイス本体１００の正面側に取り付けられる表示操作モジュール３００、スピーカモジュール３５０を、正面側から見たときの外観図と、背面側から見たときの外観図とを示す。図２（ｃ），２（ｄ）にはそれぞれ、スマートデバイス本体１００の背面側に取り付けられる複数のモジュール（５００、６００、７００、８００、９００、２００、４００、１５０）を、正面側から見たときの外観図と、背面側から見たときの外観図とを示す。
【００２４】
図２（ｂ）に示すように、表示操作モジュール３００、スピーカモジュール３５０の背面には、スマートデバイス本体１００に設けられたＥＰＭ１６３、１６０と対向する位置に、磁性体３６０、３５６が設けられている。ここで用いられる磁性体３６０、３５６の材質としては、保磁力が小さく透磁率が大きい軟磁性体が好ましく、本実施例では鉄・コバルト・バナジウムの軟磁性合金であるＨＩＰＥＲＣＯ（登録商標）  ５０が採用されている。更に、スマートデバイス本体１００に設けられた本体側ＣＭＣ１４３、１４０と対向する位置には、スマートデバイス本体１００とデータの送受信を行うモジュール側非接触通信手段（以下、モジュール側ＣＭＣと称する）３４０、３５４が設けられている。磁性体３６０、３５６とモジュール側ＣＭＣ３４０、３５４とは、それぞれ隣接して一対ずつ設けられている。
【００２５】
一方、図２（ｃ）に示すように、撮像モジュール５００、外部Ｉ／Ｏモジュール６００の背面には、スマートデバイス本体１００に設けられたＥＰＭ１６５、１６６と対向する位置に、磁性体５６０、６６０が設けられている。ここで、図２（ｃ）には、撮像モジュール５００、外部Ｉ／Ｏモジュール６００の背面が示されているが、これは、スマートデバイス本体１００を基準にすると、スマートデバイス本体１００の正面側の図となる。同様に、無線ＬＡＮモジュール７００、姿勢検知モジュール８００、移動体通信モジュール９００の背面には、スマートデバイス本体１００に設けられたＥＰＭ１６７〜１６９と対向する位置に、磁性体７６０、８６０、９６０が設けられている。更に、アプリケーションプログラム制御モジュール２００、電源モジュール４００、記録モジュール１５０の背面には、スマートデバイス本体１００に設けられたＥＰＭ１６２、１６４、１６１と対向する位置に、磁性体２６０、４６０、１５６が設けられている。ここで用いられる磁性体５６０、６６０、７６０、８６０、９６０、２６０、４６０、１５６の材質としても、やはり軟磁性体が好ましい。
【００２６】
本体側ＣＭＣ１４５〜１４９、１４２、１４４、１４１と対向する位置には、スマート
デバイス本体１００とデータの送受信を行うモジュール側ＣＭＣ５４０、６４０、７４０、８４０、９４０、２４０、４４０、１５４が設けられている。磁性体５６０、６６０、７６０、８６０、９６０、２６０、４６０、１５６とモジュール側ＣＭＣ５４０、６４０、７４０、８４０、９４０、２４０、４４０、１５４とは、それぞれ隣接して設けられている。そして、磁性体とモジュール側ＣＭＣの対は、撮像モジュール５００、外部Ｉ／Ｏモジュール６００、無線ＬＡＮモジュール７００、姿勢検知モジュール８００、移動体通信モジュール９００、記録モジュール１５０ではそれぞれ一対ずつ設けられている。また、磁性体とモジュール側ＣＭＣの対は、アプリケーションプログラム制御モジュール２００、電源モジュール４００ではそれぞれ二対ずつ設けられている。
【００２７】
図３（ａ）、３（ｂ）は、本実施例のスマートデバイス本体１００に、複数のモジュール１５０、２００、３００、３５０、４００、５００、６００、７００、８００、９００を取り付ける方法を説明するための図である。図３（ａ）は、スマートデバイス本体１００の正面側に、モジュール３００、３５０を取り付ける方法を説明するための図である。図３（ｂ）は、スマートデバイス本体１００の背面側に、モジュール５００、６００、７００、８００、９００、２００、４００、１５０を取り付ける方法を説明するための図である。
図３（ａ）に示すように、表示操作モジュール３００及びスピーカモジュール３５０は、スマートデバイス本体１００に対して、リブ１０１に沿って側面方向からスライドさせて取り付けられる。このとき、表示操作モジュール３００及びスピーカモジュール３５０は、図３（ａ）において、スマートデバイス本体１００の左側面、或いは右側面のどちら側からでも挿入することができる。
【００２８】
図３（ｂ）に示すように、撮像モジュール５００、無線ＬＡＮモジュール７００、姿勢検知モジュール８００、移動体通信モジュール９００は、スマートデバイス本体１００に対して、左側面からスライドさせて取り付けられる。左側面から各モジュールをスパイン１０２に突き当てることにより、スマートデバイス本体１００に対してモジュール５００、７００、８００、９００の位置が決定する。また、外部Ｉ／Ｏモジュール６００、アプリケーションプログラム制御モジュール２００、電源モジュール４００、記録モジュール１５０は、図３（ｂ）において、スマートデバイス本体１００に対して右側面からスライドさせて取り付けられる。右側面から各モジュールをスパイン１０２に突き当てることにより、スマートデバイス本体１００に対してモジュール６００、２００、４００、１００の位置が決定する。
【００２９】
本実施例において、図３（ｂ）のようにスマートデバイス本体１００の背面側に設けられたスロットは、サイズによって３種類に大別される。まず、スロット１５００、１６００、１７００、１１００は同じ種類のスロットであり、例えば撮像モジュール５００はこの４箇所のうち、どのスロットを選択して装着しても構わない。また、最も大きいスロット１２００、１４００は同じ種類のスロットであり、例えばアプリケーションプログラム制御モジュール２００はこの２箇所のうち、どちらのスロットを選択して装着しても構わない。同様に、最も小さいスロット１８００、１９００は同じ種類のスロットであり、例えば姿勢検知モジュール８００はこの２箇所のうち、どちらのスロットを選択して装着しても構わない。
【００３０】
図４（ａ）、４（ｂ）は、本実施例のスマートデバイス本体１００に設けられたＥＰＭ１６５と、撮像モジュール５００に設けられた磁性体５６０との磁力による結合を説明するための模式図である。図４（ａ）は、スマートデバイス本体１００と撮像モジュール５００とが磁力による結合をしていない状態を示す部分拡大図である。図４（ｂ）は、スマートデバイス本体１００と撮像モジュール５００とが磁力による結合をしている状態を示す部分拡大図である。尚、図４（ａ）、４（ｂ）は、磁力による結合を示す例としてＥＰ
Ｍ１６５と磁性体５６０との組み合わせを示すものであるが、他のＥＰＭと磁性体との組み合わせについても同様である。
【００３１】
図４（ａ）に示すようにＥＰＭ１６５は、極性が固定された永久磁石１６５ａと、永電磁石１６５ｂとの両側面を、磁性体１６５ｃによって連結・保持した構造となっている。ここで用いる永久磁石１６５ａには、例えば磁束密度が非常に高いネオジム磁石などが適している。また永電磁石１６５ｂは、アルニコ等の硬磁性体からなる可逆性の永久磁石１６５ｄと、この永久磁石１６５ｄの周りに巻かれたコイル１６５ｅとから構成されている。コイル１６５ｅに電流を流すと、可逆性の永久磁石１６５ｄは一方向に着磁され、通電が終了した後もそのまま着磁状態を保持する。コイル１６５ｅに対する通電時間は１〜数秒程度であり、比較的短い時間である。こうして永電磁石１６５ｂは、コイル１６５ｅに流す電流の向きを変えることにより、極性が可変な永電磁石となる。
図４（ａ）に示す状態でコイル１６５ｅに対して通電すると、可逆性の永久磁石１６５ｄを着磁して、永電磁石１６５ｂは極性が固定された永久磁石１６５ａの磁力線の向きと引き合う向きの磁力線を発生させる。その結果、永電磁石１６５ｂの磁力線と永久磁石１６５ａの磁力線とが互いに閉じたループ形状となり、モジュール５００の磁性体５６０を吸着しようとする磁力は非常に弱くなる。そのためモジュール５００は、ＥＰＭ１６５から吸着力を受けずに解放される。
【００３２】
一方、図４（ｂ）に示すように、図４（ａ）とは逆方向にコイル１６５ｅに対して通電すると、可逆性の永久磁石１６５ｄを着磁して、永電磁石１６５ｂは極性が固定された永久磁石１６５ａの磁力線の向きと反発し合う向きの磁力線を発生させる。その結果、永電磁石１６５ｂの磁力線と永久磁石１６５ａの磁力線とが互いに強め合って、モジュール５００に設けられた磁性体５６０を吸着する磁力が非常に高まる。そのためモジュール５００は、ＥＰＭ１６５から吸着力を受けてスマートデバイス本体１００に固着される。このように本実施例では、着脱手段にＥＰＭを採用することで、各モジュールの着脱の作業性と信頼性との両立を実現している。
【００３３】
図５は、本実施例のスマートデバイス５０の構成の一部を示すブロック図である。以下、スマートデバイス本体１００、アプリケーションプログラム制御モジュール２００、表示操作モジュール３００、電源モジュール４００、撮像モジュール５００、外部Ｉ／Ｏモジュール６００、姿勢検知モジュール８００の各構成を説明する。尚、スマートデバイス本体１００に装着可能なモジュールは多種多様であり、またモジュールを装着するスロットもユーザにより自由に選択可能であり、図５に示す組み合わせは単なる一例に過ぎず、これに限定されるものではない。
【００３４】
＜スマートデバイス本体１００の構成＞
スマートデバイス本体１００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス本体１００に装着された各モジュールに関する制御を行う。スマートデバイス本体１００において、１１０はスマートデバイス本体１００全体を制御するシステム制御回路である。システム制御回路１１０は、カーネルやＯＳを実行させた環境で各種アプリケーションプログラムを実行する際、アプリケーションプログラム制御モジュール２００が備えるアプリケーションプログラム制御回路２１０の指示や要求に応じて、協調動作を行う。そしてシステム制御回路１１０は、スマートデバイス本体１００と各モジュールとを連携して動作させることが可能となっており、アプリケーションプログラム制御回路２１０が有する各種サービス、機能を実行することが可能である。
【００３５】
１１２は、システム制御回路１１０が直接アクセスして読み書きを行うメモリである。１１４は、システム制御回路１１０の動作用の定数、変数、プログラム、各スロットの位
置情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。各スロットの位置情報とは、スマートデバイス本体１００の背面側に設けられたスロット１１００、１２００、１４００、１５００、１６００、１７００、１８００、１９００のそれぞれ個別の位置情報を含んでいる。そして各スロットの位置情報は、各スロットにおいて、モジュールを装着した際にその位置を決定することになる、各リブ１０１やスパイン１０２の突き当て面の座標を特定するためのものである。尚、本実施例では、各モジュールの位置決めを、リブ１０１とスパイン１０２への突き当てにより行っているが、これに限定されるものではない。例えば、スマートデバイス本体１００に位置決め用の凸部を設け、各モジュールに凸部と嵌合する凹部を設けるなどの構成であってもよい。この場合、各スロットの位置情報には、位置決め用の凸部の位置情報が含まれることになる。
【００３６】
１１６は識別情報であり、スマートデバイス本体１００が各モジュールと通信を行う際に必要な各種識別情報が格納されている。１１８は、スマートデバイス本体１００の所定箇所の温度を計測するための単数或いは複数の温度センサである。１２０は、システム制御回路１１０を介してスマートデバイス本体１００の各部に必要な所定の電圧・電流を供給する電源制御回路である。
１２２は、スマートデバイス本体１００の電源制御回路１２０及びコネクタ１８２〜１８６、１８８の電源端子に接続される電源バスである。コネクタ１８２〜１８６、１８８の電源端子はそれぞれ、各モジュールのコネクタ２８０、３８０、４８０、５８０、６８０、８８０の電源端子を介して、各モジュールの電源制御回路２２０、３２０、５２０、６２０、８２０、電池制御回路４１０と接続する。
【００３７】
１３０はスイッチインタフェース回路であり、本体側ＣＭＣ１４２〜１４６、１４８を介して、各モジュールとのデータやメッセージの高速な通信を切り替え中継する。本体側ＣＭＣ１４２〜１４６、１４８は、誘導結合（インダクティブカップリング）方式により接触近接通信を行い、それぞれモジュール側ＣＭＣ２４０、３４０、４４０、５４０、６４０、８４０と高速通信を行う。尚、本体側ＣＭＣ１４２〜１４６、１４８と、これに近接するモジュール側ＣＭＣとの組み合わせは、ユーザの意図に応じて適宜変更されるものであり、図５のブロック図に示す組み合わせは単なる一例に過ぎない。
ＥＰＭ１６２〜１６６、１６８は、それぞれモジュールの磁性体２６０、３６０、４６０、５６０、６６０、８６０を磁力制御により吸着或いは非吸着する。これによりＥＰＭ１６２〜１６６、１６８は、各モジュールをスマートデバイス本体１００のフレーム構造と各モジュールとの接続箇所において、固定（ロック）或いは解放（リリース）する。尚、ＥＰＭ１６２〜１６６、１６８と、これに接続するモジュール側の磁性体との組み合わせは、ユーザの意図に応じて適宜変更されるものであり、図５のブロック図に示す組み合わせは単なる一例に過ぎない。
【００３８】
コネクタ１８２〜１８６、１８８は、それぞれモジュールのコネクタ２８０、３８０、４８０、５８０、６８０、８８０と接続する。このことにより、電源関係（パワーバス、グラウンド）の端子群を、スマートデバイス本体１００と各モジュール間で相互に使用可能とする。更に、モジュールの装着を示す検出（Ｄｅｔｅｃｔ）信号の端子、モジュールのスリープ解除を示す起動（Ｗａｋｅ）信号の端子、アンテナの配線をつなぐＲＦ信号の端子などの各機能についても同様に、相互に使用可能とするものである。ここで、本実施例におけるコネクタ１８２〜１８６、１８８は、スマートデバイス本体１００のリブ１０１やスパイン１０２の側面部に形成された一般的な小型の金属端子であるが、図１〜３に示す位置からは視認できないため不図示とする。尚、コネクタ１８２〜１８６、１８８と、これに接続するモジュール側のコネクタの組み合わせは、ユーザの意図に応じて適宜変更されるものであり、図５のブロック図に示す組み合わせは単なる一例に過ぎない。
【００３９】
＜アプリケーションプログラム制御モジュール２００の構成＞
アプリケーションプログラム制御モジュール２００は、アプリケーションプログラム制御回路２１０の動作により、スマートデバイス本体１００とこれに装着された各モジュールを含めた全体システムを統括制御する。例えば、アプリケーションプログラム制御回路２１０は、表示操作モジュール３００が備える表示操作制御回路３１０を介して、表示部３１２であるＬＣＤパネルを制御し、各種情報の表示（通知）を行うことが可能である。また、アプリケーションプログラム制御回路２１０は、表示操作モジュール３００が備える表示操作制御回路３１０を介して、操作入力手段３１４としてのタッチパネル又はボタンが受け付けた操作入力情報を取得することができる。そして、その操作入力内容に応じて、カーネルのサービスやＯＳのサービス、各種アプリケーションプログラムによる処理を実行させることが可能である。
【００４０】
２１２は、アプリケーションプログラム制御回路２１０が直接アクセスして読み書きを行うメモリである。２１４は、アプリケーションプログラム制御回路２１０の動作用の定数、変数、プログラム等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。２１６は識別情報であり、アプリケーションプログラム制御モジュール２００がスマートデバイス本体１００及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。２２０は、アプリケーションプログラム制御モジュール２００の各部に必要な所定の電圧・電流を供給する電源制御回路である。２２２は、アプリケーションプログラム制御モジュール２００の所定箇所の温度を計測するための単数或いは複数の温度センサである。２３０はインタフェース回路であり、モジュール側ＣＭＣ２４０を介して、スマートデバイス本体１００及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００４１】
２９０は、各専用アプリケーションプログラムを実行する上で必要となる複数の管理ファイルの情報を記憶した管理テーブルである。管理ファイルの情報には、各専用アプリケーションプログラムを実行する際に不可欠なモジュールの種類や、所望の機能を最大限に活用できる該当モジュールの組み合わせや、該当モジュールを装着するのに最適な各スロットの位置関係などが含まれる。また本実施例では、管理ファイルの情報として、各専用アプリケーションプログラムに必須ではないものの、機能追加に有効なモジュールの種類などを含んでおり、ユーザに多くの選択肢を提供することで利便性を高めている。こうした管理ファイルの情報は、本実施例では、アプリケーションプログラム制御回路２１０が、管理テーブル２９０から取得するものであるが、これに限定されるものではない。管理ファイルの情報はメモリ２１２や不揮発性メモリ２１４に記憶させてもよい。この場合の管理ファイルの情報は、アプリケーションプログラム制御回路２１０が、メモリ２１２や不揮発性メモリ２１４から取得することになる。
【００４２】
＜表示操作モジュール３００の構成＞
表示操作モジュール３００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス本体１００の制御により、各種情報の表示、操作入力の取得を行う。表示操作モジュール３００において、３１０は表示操作モジュール３００全体を制御する表示操作制御回路である。表示部３１２には、ＬＣＤ、ＯＬＥＤ、ＬＥＤ等の表示デバイスが該当するが、本実施例ではＬＣＤパネルを採用している。操作入力手段３１４には、タッチパネル（ＴＰ）、操作ボタン等の操作デバイスが該当し、タッチパネルと操作ボタンとは、独立して構成しても一体として構成してもいずれであっても構わない。尚、本実施例では、タッチパネルと操作ボタンとが独立して構成されている。
【００４３】
表示部３１２は、アプリケーションプログラム制御モジュール２００のアプリケーションプログラム制御回路２１０の指示に応じて、表示操作制御回路３１０によりユーザに対する各種情報の表示を行う。また、操作入力手段３１４へのユーザによるタッチパネル操
作やボタン操作等の入力操作と、マイク部３１８が検出した音声信号とは、表示操作制御回路３１０を介して、アプリケーションプログラム制御回路２１０に伝達される。
３１６は識別情報で、表示操作モジュール３００がスマートデバイス本体１００及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。３２０は、表示操作モジュール３００の各部に必要な所定の電圧・電流を供給する電源制御回路である。３２２は、表示操作モジュール３００の所定箇所の温度を計測するための単数或いは複数の温度センサである。３３０はインタフェース回路であり、モジュール側ＣＭＣ３４０を介して、スマートデバイス本体１００及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００４４】
＜電源モジュール４００の構成＞
電源モジュール４００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス本体１００の電源バスを介して電池４２０の放電・充電を行う。電源モジュール４００において、４１０は電池４２０の放電・充電制御を含め、電源モジュール４００全体を制御する電池制御回路であり、電源モジュール４００の各部に必要な所定の電圧・電流を供給する。４１６は識別情報であり、電源モジュール４００がスマートデバイス本体１００及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。
電池４２０には、Ｌｉ−ｉｏｎ電池、燃料電池等が該当する。電池４２０は、電池制御回路４１０によりコネクタ４８０を介して、スマートデバイス本体１００及び各モジュールに対して放電すると共に、スマートデバイス本体１００及び不図示の充電モジュールから充電される。４２２は、電源モジュール４００の所定箇所の温度を計測するための単数或いは複数の温度センサである。４３０はインタフェース回路であり、モジュール側ＣＭＣ４４０を介して、スマートデバイス本体１００及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００４５】
＜撮像モジュール５００の構成＞
撮像モジュール５００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス本体１００によって制御され、所定の範囲（撮影範囲）からの光を受光して所望の撮像処理を行う。撮像モジュール５００において５１０は、光軸上に光学レンズ（光学素子）を複数配置したカメラである。更にカメラ５１０は、通過する光量を調節する絞り機構と、光軸方向に少なくとも一枚のレンズを移動させて焦点調節を行うＡＦ機構と、これらの構成部品を内部に収納するレンズ鏡筒とで構成されている。またカメラ５１０は、光電変換により画像データを得る撮像センサと、画像データを処理する画像処理回路と、各機構を制御する駆動制御回路とを備える。
【００４６】
カメラ５１０は、絞りやシャッター速度や撮像センサの感度を最適に設定する自動露出調節（ＡＥ）、被写体距離に応じた自動焦点調節（ＡＦ）、色温度を調節して適正な色調を再現する自動ホワイトバランス（ＡＷＢ）などの制御を実現する。他にも本実施例では、姿勢検知モジュール８００で取得した角速度情報から手ブレを算出し、撮像センサ上で切り出した露光範囲を追従させることで、簡易的に手ブレ補正（ＩＳ）を行うことが可能である。尚、本実施例ではこうした撮像装置の一般的な制御方法を限定するものではなく、例えば手ブレ補正手段は、少なくとも１つのレンズを光軸と直交する方向に駆動する構成であってもよい。またこうした構成は公知であるため、個別の詳細な説明は省略する。
【００４７】
カメラ５１０への指示は、アプリケーションプログラム制御回路２１０で実行されるアプリケーションプログラムや、表示操作モジュール３００の操作入力手段３１４に対する入力に応じて行われる。カメラ５１０により取得した画像データは、アプリケーションプログラム制御回路２１０が、スマートデバイス本体１００と表示操作モジュール３００とを制御することで、表示部３１２に表示可能となる。
尚、カメラ５１０の仕様は多種多様であり、焦点距離や撮像センサのサイズ等は一律ではなく、更に所謂電動ズームと称されるような、変倍レンズを光軸方向に駆動するレンズ駆動手段を備えた構成であってもよい。この場合、アプリケーションプログラム制御回路２１０の指示に応じて、レンズ駆動手段がカメラ５１０の焦点距離を光学的に変更することが可能となる。また、カメラ５１０は、撮影可能範囲よりも小さな任意の撮影範囲を切り出すトリミング手段を備える構成であってもよい。この場合、アプリケーションプログラム制御回路２１０の指示に応じて、トリミング手段が撮像センサによって取り込まれた画像データの一部を切り出し、見かけの焦点距離を電子的に変更することが可能となる。
５１６は識別情報で、撮像モジュール５００がスマートデバイス本体１００及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。５２０は、撮像モジュール５００の各部に必要な所定の電圧・電流を供給する電源制御回路である。
【００４８】
５２２は、カメラ５１０の動作用の定数、変数、構成部品の位置情報、撮影範囲情報、光軸の誤差情報、レンズの誤差情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。ここで、構成部品の位置情報には、撮像モジュール５００の外部から見た光軸の座標情報が含まれる。前述のように、撮像モジュール５００は、スマートデバイス本体１００に対してその外形を突き当てることで位置が決定される。尚、本実施例では撮像モジュール５００の位置決めを、スマートデバイス本体１００のリブ１０１とスパイン１０２への突き当てにより行っているが、これに限定されるものではない。例えば、スマートデバイス本体１００に位置決め用の凸部を設け、撮像モジュール５００に凸部と嵌合する凹部を設けるなどしてもよい。この場合、構成部品の位置情報には、凸部と嵌合する凹部から見た光軸の座標情報が含まれることになる。
【００４９】
一方、撮影範囲情報には、撮像モジュール５００の外部から見た像面の座標情報と、レンズの焦点距離情報と、レンズの画角情報と、撮像センサの有効範囲情報と、が含まれている。この撮影範囲情報は、撮像モジュール５００の種類に対応するものであるとよい。カメラ５１０の撮影範囲は、撮像モジュール５００の外部から見た像面の高さＺ５００と、レンズの焦点距離ｆ５００と、水平方向における半画角θｘ５００と、垂直方向における半画角θｙ５００と、から幾何学的に算出されるものである。ここで、水平方向における半画角θｘ５００は撮影範囲の左端から右端までの全画角に対して片側のみの画角を示しており、垂直方向における半画角θｙ５００は撮影範囲の上端から下端までの全画角に対して片側のみの画角を示している。そして例えば、スロット１５００の表面から見て任意の距離Ｌだけ離れた位置では、カメラ５１０の光軸上における水平方向の撮影範囲Ｘ５００は、下記式１に示す計算式によって求められる。
［式１］
Ｘ５００＝（Ｌ−Ｚ５００−ｆ５００）×ＴＡＮ（θｘ５００）×２
これと同様に、カメラ５１０の光軸上における垂直方向の撮影範囲Ｙ５００は、下記式２に示す計算式によって求められる。
［式２］
Ｙ５００＝（Ｌ−Ｚ５００−ｆ５００）×ＴＡＮ（θｙ５００）×２
【００５０】
もし仮に、カメラ５１０が前述のレンズ駆動手段やトリミング手段を備える場合は、レンズの焦点距離ｆ５００と、水平方向における半画角θｘ５００と、垂直方向における半画角θｙ５００との数値を、焦点距離の変化に応じて変更する必要がある。これらの数値を変更する制御は、焦点距離の変化に応じて、その都度不図示の計算式を用いて算出するものでもよい。また、広角端から望遠端までのそれぞれの数値の組み合わせを予め管理テーブルとして不揮発性メモリ５２２に記憶させておき、焦点距離の変化に応じて、対応す
る組み合わせを取得する制御であってもよい。尚、本実施例はこうした撮像装置の一般的な制御方法を限定するものではなく、またこれらは公知であるため、個別の詳細な説明は省略する。
【００５１】
光軸の誤差情報には、例えば部品や組立の精度により製造誤差として生じる、カメラ５１０の光軸の傾きの誤差が含まれる。一方、レンズの誤差情報には、例えば製造誤差として生じる焦点距離の誤差やＦ値の誤差、歪曲、光軸を回転中心とする撮像センサの角度誤差などが含まれる。こうした製造誤差に関する情報を不揮発性メモリ５２２に記憶させることで、アプリケーションプログラム制御回路２１０の処理においてこれらの誤差を補正することが可能となる。
５３０はインタフェース回路であり、モジュール側ＣＭＣ５４０を介して、スマートデバイス本体１００及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００５２】
＜外部Ｉ／Ｏモジュール６００の構成＞
外部Ｉ／Ｏモジュール６００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス本体１００によって制御され、外部接続端子との通信を行う。
外部Ｉ／Ｏモジュール６００において６１０は、例えばコネクタ形状やピン配置が規格化されたＵＳＢ端子、ＨＤＭＩ（登録商標）端子、フォーン端子などの複数の外部接続端子に対応する（接続可能な）外部コネクタである。外部コネクタ６１０の制御は、アプリケーションプログラム制御回路２１０で実行されるアプリケーションプログラムや、表示操作モジュール３００の操作入力手段３１４に対する入力に応じて行われ、電気信号の入力と出力とを切り替えることが可能である。またアプリケーションプログラム制御回路２１０は、外部コネクタ６１０を介して外部接続端子の接続の有無を検知するものである。
６１６は識別情報で、外部Ｉ／Ｏモジュール６００がスマートデバイス本体１００及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。６２０は、外部Ｉ／Ｏモジュール６００の各部に必要な所定の電圧・電流を供給する電源制御回路である。
【００５３】
６２２は、外部Ｉ／Ｏモジュール６００の動作用の定数、変数、モジュールの外形情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。詳しくは後述するが、モジュールの外形情報には、外部Ｉ／Ｏモジュール６００の外部から見た突出部６９０の座標情報、特に外部Ｉ／Ｏモジュール６００の外部から見た突出部６９０の厚みＺ６００が含まれる。
外部Ｉ／Ｏモジュール６００は、他の標準的な外形のモジュールとは異なり、外部接続端子を挿入するために、本来であれば平坦となるスマートデバイス５０の表面から外部コネクタ６１０とその周囲の外装カバーが盛り上がっている。そのため、例えば図１（ｄ）に示すように、撮像モジュール５００と外部Ｉ／Ｏモジュール６００とが近接した位置関係にあった場合は、撮影範囲内に外部コネクタ６１０を含むこの突出部６９０が障害物として進入するおそれがある。このような場合には、出力される画像に突出部６９０の一部が写り込むなどして、撮影結果に影響を及ぼしてしまうことが懸念される。
【００５４】
撮像モジュール５００の撮影範囲は、前述の式１に示す計算式により求められる水平方向の撮影範囲Ｘ５００と、式２に示す計算式により求められる垂直方向の撮影範囲Ｙ５００と、で規定される。突出部６９０の厚みＺ６００はスロット１６００の表面から見た距離であり、詳しくは後述するが、前述の任意の距離Ｌに当てはめて計算すると、この突出部６９０によって撮像モジュール５００の撮影範囲が遮られるかどうかが判定できる。またこのとき、外部コネクタ６１０に対して外部接続端子が接続されているような場合には、外部接続端子の外形やケーブル等が撮影範囲内に進入しやすくなってしまうことが懸念される。そこで、外部接続端子の有無に応じて、撮影機能を調整して撮影機能の一部を制限する制御としてもよい。
【００５５】
外部Ｉ／Ｏモジュール６００は、スマートデバイス本体１００に対してその外形を突き当てることで位置が決定される。尚、本実施例では、外部Ｉ／Ｏモジュール６００の位置決めを、スマートデバイス本体１００のリブ１０１とスパイン１０２への突き当てにより行っているが、これに限定されるものではない。例えば、スマートデバイス本体１００に位置決め用の凸部を設け、外部Ｉ／Ｏモジュール６００に凸部と嵌合する凹部を設けるなどしてもよい。この場合、構成部品の位置情報には、凸部と嵌合する凹部から見た突出部の座標情報が含まれることになる。
６３０はインタフェース回路であり、モジュール側ＣＭＣ６４０を介して、スマートデバイス本体１００及び各モジュールとのデータやメッセージの高速な通信を中継する。
【００５６】
＜姿勢検知モジュール８００の構成＞
姿勢検知モジュール８００は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス本体１００によって制御され、スマートデバイス５０の姿勢の変化を検知する。姿勢検知モジュール８００において、８１０は３軸のジャイロセンサから角速度情報を取得するジャイロセンサである。８１６は識別情報であり、姿勢検知モジュール８００がスマートデバイス本体１００及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。８２０は、姿勢検知モジュール８００の各部に必要な所定の電圧・電流を供給する電源制御回路である。８２２は、姿勢検知モジュール８００の所定箇所の温度を計測するための単数或いは複数の温度センサである。
【００５７】
８３０はインタフェース回路であり、モジュール側ＣＭＣ８４０を介して、スマートデバイス本体１００及び各モジュールとのデータやメッセージの高速な通信を中継する。インタフェース回路８３０は、ジャイロセンサ８１０で取得した角速度情報を、スマートデバイス本体１００に送信する。そこから更に、スマートデバイス本体１００は、アプリケーションプログラム制御モジュール２００にデータを高速で転送する。こうして、姿勢検知モジュール８００の角速度情報は、表示操作モジュール３００における表示方向の切り替えや、撮像モジュール５００の手ブレ補正などに用いられる。
【００５８】
＜アプリケーションプログラム制御モジュール２００の動作説明＞
図６は、図５で説明したスマートデバイス５０の動作において、アプリケーションプログラム制御モジュール２００を中心とした主ルーチンの動作フローを示すフローチャートである。図５乃至図６を参照して、本実施例のアプリケーションプログラム制御モジュール２００の代表的な動作を説明する。アプリケーションプログラム制御モジュール２００の代表的な動作の１つは、次のような判定を行い、その判定結果に応じて所定の処理を行うことである。それは、撮像モジュール５００と外部Ｉ／Ｏモジュール６００に関する情報に基づいて、撮像モジュール５００が受光する光に、外部Ｉ／Ｏモジュール６００によって遮られる部分があるかどうかの判定である。
【００５９】
最初の電源ＯＦＦ状態において、アプリケーションプログラム制御モジュール２００とスマートデバイス本体１００と表示操作モジュール３００とは、低消費電力で動作する動作終了状態となっている。このとき、ユーザにより表示操作モジュール３００の電源ボタン３１４ａが操作されると、表示操作制御回路３１０は、アプリケーションプログラム制御回路２１０へ向けてスリープ解除を示す起動（Ｗａｋｅ）信号を送信する。アプリケーションプログラム制御回路２１０は、表示操作制御回路３１０からの起動（Ｗａｋｅ）信号を受信すると、Ｓ１１００において初期設定を実行する。また本実施例では、全てのモジュールのコネクタ部に検出（Ｄｅｔｅｃｔ）信号の端子が設けられており、例えば空いているスロットに対して新たなモジュールを装着した際も同様に、検出（Ｄｅｔｅｃｔ）信号が送信されてＳ１１００に移行するものである。
【００６０】
Ｓ１１００において、アプリケーションプログラム制御回路２１０は、所定のフラグや制御変数等をリセットして初期化すると共に、アプリケーションプログラム制御モジュール２００の各部の初期化を行う。続いて、アプリケーションプログラム制御回路２１０は、不揮発性メモリ２１４から読み出したソフトウェアプログラムを実行して、カーネル起動とＯＳ起動を順次行う。その後、インタフェース回路２３０、モジュール側ＣＭＣ２４０、本体側ＣＭＣ１４２、スイッチインタフェース回路１３０を介して、スマートデバイス本体１００のシステム制御回路１１０との通信の初期化を行う。システム制御回路１１０の初期化によって全てのモジュールは動作可能な状態となり、例えば表示操作モジュール３００において、表示操作制御回路３１０は、表示部３１２としてのＬＣＤパネルに所定の起動画面を表示させる。そして、表示操作モジュール３００は、タッチパネルやボタンなどの操作入力手段３１４に対するユーザの入力指示が可能な状態に至る。
Ｓ１１００を終えると、Ｓ１１０１に進む。ここで仮に、ユーザによって終了状態に移行する指示が入力されたならば、表示操作制御回路３１０は、アプリケーションプログラム制御回路２１０へ向けて終了メッセージを送信する。アプリケーションプログラム制御回路２１０は、終了メッセージを受信すると、スマートデバイス５０の終了状態への移行を判断する。
【００６１】
Ｓ１１０１で終了状態に移行する終了メッセージを受信したならば、Ｓ１１２０に進む。Ｓ１１２０で、アプリケーションプログラム制御回路２１０は、システム制御回路１１０に終了メッセージを送信した後、フラグや制御変数等を必要に応じて不揮発性メモリ２１４に退避する。それと共に、ＯＳ及びカーネルを低消費電力で動作する動作終了状態に移行する。そして、電源制御回路２２０を介したアプリケーションプログラム制御モジュール２００とスマートデバイス本体１００と表示操作モジュール３００とへの電力供給を、低消費電力の設定に変更する終了処理を行う。システム制御回路１１０は、終了メッセージを受信すると、アプリケーションプログラム制御モジュール２００とスマートデバイス本体１００、表示操作モジュール３００以外のモジュールの全ての動作を停止する処理を行う。Ｓ１１２０を終えたならば、アプリケーションプログラム制御回路２１０は、アプリケーションプログラム制御モジュール２００の主ルーチンを終了し、所謂電源ＯＦＦの状態に至る。
【００６２】
Ｓ１１０１で、終了状態に移行する終了メッセージを受信しなかった場合、Ｓ１１０２に進む。Ｓ１１０２において、アプリケーションプログラム制御回路２１０は、表示操作モジュール３００の表示操作制御回路３１０からスリープ状態に移行するスリープメッセージを受信したかどうかを判断する。表示操作制御回路３１０は、表示部３１２であるＬＣＤパネルにスリープ処理に関する情報を表示して、タッチパネルやボタンなどの操作入力手段３１４に対するユーザの入力指示を可能とする。ここで仮に、ユーザによってスリープ状態に移行する指示が入力されたならば、表示操作制御回路３１０は、アプリケーションプログラム制御回路２１０にスリープ状態に移行するスリープメッセージを送信する。
【００６３】
Ｓ１１０２で、スリープ状態に移行するスリープメッセージを受信したならば、Ｓ１１０３に進む。Ｓ１１０３において、アプリケーションプログラム制御回路２１０は、システム制御回路１１０にスリープメッセージを送信した後、フラグや制御変数等を必要に応じて不揮発性メモリ２１４に退避する。それと共に、ＯＳ及びカーネルを低消費電力で動作するスリープ動作状態に移行する。そしてシステム制御回路１１０は、スリープメッセージを受信すると、スマートデバイス５０の全てのモジュールの動作をスリープ状態に移行する処理を行う。
またこれと同様に、ユーザによる表示操作モジュール３００への入力指示や、各モジュールから送信される起動（Ｗａｋｅ）信号が所定の時間を経過しても受信されなかった場合、スリープメッセージを受信したのと同じようにＳ１１０３に進む。Ｓ１１０２におい
て、アプリケーションプログラム制御回路２１０は、最後に入力指示や起動（Ｗａｋｅ）信号が受信されたタイミングから経過した時間を積算し、所定値と比較した結果、積算時間のほうが長ければスリープ状態に移行する。その後のスリープ処理については、前述した通りである。
【００６４】
Ｓ１１０４において、アプリケーションプログラム制御回路２１０は、コネクタ２８０を介して、各モジュールから送信される起動（Ｗａｋｅ）信号を受信したかどうか判断する。Ｓ１１０４で起動（Ｗａｋｅ）信号を受信しなかったならば、起動（Ｗａｋｅ）信号を受信するまでスリープ動作状態を継続する。ここで、本実施例におけるスリープ動作状態は、前述した電源ＯＦＦの状態とは異なる。例えば、移動体通信モジュール９００が移動体通信の規格に準じた呼び出し信号を受信した際、アプリケーションプログラム制御回路２１０は、直ちにスマートデバイス５０をスリープ動作状態から所定のアプリ実行状態へと移行させる。尚、こうした移動体無線通信システムの一般的な制御については、既に公知であるため詳しい説明を省略する。
【００６５】
Ｓ１１０４で起動（Ｗａｋｅ）信号を受信したならば、Ｓ１１０５に進む。Ｓ１１０５において、アプリケーションプログラム制御回路２１０は、フラグや制御変数等を必要に応じて不揮発性メモリ２１４から戻す。それと共に、ＯＳ及びカーネルを通常消費電力で動作する通常動作状態に移行し、電源制御回路２２０を介したスマートデバイス５０の全てのモジュールへの電力供給を通常消費電力の設定に変更する復帰処理を行う。更にＳ１１０５において、アプリケーションプログラム制御回路２１０は、スマートデバイス本体１００のシステム制御回路１１０との通信の復帰処理を行う。このときシステム制御回路１１０は、アプリケーションプログラム制御モジュール２００以外の全てのモジュールに対して復帰処理を行い、スマートデバイス５０を通常動作状態に移行させて、Ｓ１１０１に戻る。
【００６６】
Ｓ１１０２でスリープ状態に移行するスリープメッセージを受信しなかった場合、Ｓ１１０６に進む。Ｓ１１０６において、アプリケーションプログラム制御回路２１０は、表示操作モジュール３００の表示操作制御回路３１０からリリースメッセージを受信したかどうかを判断する。表示操作制御回路３１０は、表示部３１２であるＬＣＤパネルにリリース処理に関する情報を表示して、タッチパネルやボタンなどの操作入力手段３１４に対するユーザの入力指示を可能とする。ここで仮に、ユーザによっていずれかのモジュールの取り外しを意図したリリース処理の指示が入力されたならば、表示操作制御回路３１０は、アプリケーションプログラム制御回路２１０にリリース状態に移行するリリースメッセージを送信するものである。
【００６７】
Ｓ１１０６でリリース状態に移行するリリースメッセージを受信したならば、Ｓ１１０７に進む。Ｓ１１０７において、アプリケーションプログラム制御回路２１０は、ユーザが取り外しを意図するモジュールに対して、正常に機能を終了させてＥＰＭを解放するためのリリース処理を実行する。リリース処理の詳細は、図７を用いて後述する。Ｓ１１０７を終了すると、Ｓ１１０１に戻る。
Ｓ１１０６で、リリース状態に移行するリリースメッセージを受信しなかったならば、Ｓ１１０８に進む。Ｓ１１０８において、アプリケーションプログラム制御回路２１０は、各モジュールの検出（Ｄｅｔｅｃｔ）信号を受信したかどうかを判断する。ここで、検出（Ｄｅｔｅｃｔ）信号とは、スマートデバイス本体１００に対して各モジュールが新たに装着されたことを検出するものであり、システム制御回路１１０がアプリケーションプログラム制御回路２１０に送信する電気信号のことをいう。
【００６８】
Ｓ１１０８で検出（Ｄｅｔｅｃｔ）信号を受信したならば、Ｓ１１０９に進む。Ｓ１１０９において、アプリケーションプログラム制御回路２１０は、スマートデバイス本体１
００に挿入された該当モジュールを固定し適切に機能させるためのモジュール設定処理を実行する。モジュール設定処理の詳細は、図８を用いて後述する。Ｓ１１０９を終了すると、Ｓ１１０１に戻る。
Ｓ１１０８で検出（Ｄｅｔｅｃｔ）信号を受信しなかったならば、Ｓ１１１０に進む。Ｓ１１１０において、アプリケーションプログラム制御回路２１０は、表示操作モジュール３００の表示操作制御回路３１０から、アプリケーションプログラム関係メッセージを受信したかどうかを判断する。表示操作モジュール３００において、表示操作制御回路３１０は、表示部３１２であるＬＣＤパネルにスリープ処理に関する情報を表示して、タッチパネルやボタンなどの操作入力手段３１４に対するユーザの入力指示を可能とする。そこでユーザによる、所定のアプリケーションプログラムに関する実行などの指示が入力されたならば、表示操作制御回路３１０は、アプリケーションプログラム制御回路２１０にアプリケーションプログラム関係メッセージを送信する。
【００６９】
Ｓ１１１０でアプリケーションプログラム関係メッセージを受信したならば、Ｓ１１１１に進み、アプリケーションプログラム制御回路２１０は、Ｓ１１１１でアプリケーションプログラム実行処理を実行する。本実施例で想定されるアプリケーションプログラムには、各モジュールの組み合わせによって実現され得る様々な機能が含まれる。例えば、移動体通信モジュール９００との組み合わせにより通話機能が可能となり、無線ＬＡＮモジュール７００との組み合わせによりインターネット接続を介したウェブ閲覧が可能となり、また撮像モジュール５００との組み合わせにより撮影機能が実現される。こうしたアプリケーションプログラムの一例である撮影アプリケーション実行処理の詳細は、図９を用いて後述する。Ｓ１１１１を終了すると、Ｓ１１０１に戻る。
Ｓ１１１０でアプリケーションプログラム関係メッセージを受信しなかったならば、Ｓ１１０１に戻って以下同様の動作を繰り返す。
【００７０】
図７は、図６のＳ１１０７において実行されるモジュールのリリース処理の動作フローを示すフローチャートである。
図７のＳ１２０１において、アプリケーションプログラム制御回路２１０は、システム制御回路１１０にモジュールの機能の終了を指示するメッセージを送信する。次にＳ１２０２に進み、アプリケーションプログラム制御回路２１０は、システム制御回路１１０から送信され、モジュール情報が更新されていることを通知する情報更新メッセージを受信したかどうかを判断する。
【００７１】
Ｓ１２０２で情報更新メッセージを受信しなかったならば、アプリケーションプログラム制御回路２１０は、Ｓ１２０３で所定のエラー処理を行う。その後、Ｓ１２０５においてＥＰＭを制御することにより、モジュールのロック状態を解除してリリース処理ルーチンを終了する。エラー処理では、表示操作モジュール３００などにエラー内容を表示してユーザに通知してもよい。
Ｓ１２０２で情報更新メッセージを受信したならば、Ｓ１２０４に進む。Ｓ１２０４において、アプリケーションプログラム制御回路２１０は、システム制御回路１１０から受信した内容に応じて、ＯＳ及びカーネルが管理する不揮発性メモリ２１４及びメモリ２１２の所定領域に格納された管理情報を更新する。ここで、管理情報は、モジュール管理情報、ＥＰＭ制御管理情報、ＲＦバス構成管理情報を含む。その後、Ｓ１２０５においてＥＰＭを制御することにより、モジュールのロック状態を解除してリリース処理ルーチンを終了する。
【００７２】
図８は、図６のＳ１１０９において実行されるモジュール装着処理の動作フローを示すフローチャートである。
図８のＳ１３０１において、アプリケーションプログラム制御回路２１０は、システム制御回路１１０と共にメッセージ通信のコネクションセットアップを行い、システム制御
回路１１０とのネットワークリンクを確立する。次にＳ１３０２に進み、アプリケーションプログラム制御回路２１０は、システム制御回路１１０を介して該当モジュールから初期化などのモジュール情報を取得する。更にＳ１３０３に進み、アプリケーションプログラム制御回路２１０は、Ｓ１３０２で取得したモジュール情報が、スマートデバイス５０において問題の無い内容かどうかを検証し判定する。例えば、安定した通信が可能か、既に装着されている電源モジュール４００の電圧で動作可能か、またその他にも、スマートデバイス５０に個別で設定されている規格がある場合にはそれを満足しているか等が検証される。
【００７３】
Ｓ１３０３で検証した結果に問題があれば、アプリケーションプログラム制御回路２１０は、Ｓ１３０４で所定のエラー処理を行った後、モジュールの装着処理ルーチンを終了する。エラー処理では、表示操作モジュール３００などにエラー内容などを表示してユーザに通知してもよい。
Ｓ１３０３で検証した結果に問題が無ければ、Ｓ１３０５に進む。Ｓ１３０５において、アプリケーションプログラム制御回路２１０は、初期化を行う該当モジュールのモジュール情報に基づき、不揮発性メモリ２１４及びメモリ２１２の所定領域に格納された管理情報を更新する。ここで、管理情報は、モジュール管理情報、ＥＰＭ制御管理情報、ＲＦバス構成管理情報を含む。
【００７４】
次にＳ１３０６において、アプリケーションプログラム制御回路２１０は、システム制御回路１１０に初期化を行う該当モジュールのＥＰＭロック指示メッセージを送信する。これにより、スマートデバイス本体１００と初期化を行う該当モジュールとが、ＥＰＭにより固定されてロック状態となる。
続いて、Ｓ１３０７でアプリケーションプログラム制御回路２１０は、システム制御回路１１０に向けて通信開始指示メッセージを送信し、一連の初期化処理を行った該当モジュールとのメッセージ通信が可能になったことを通知する。その後、Ｓ１３０８において、状態変化フラグをＯＮに切り替えて、モジュールの装着処理ルーチンを終了する。ここで、状態変化フラグとは、各モジュールに対応するように割り付けられ、各モジュールの状態変化の有無によりＯＮとＯＦＦとが切り替えられる再処理フラグのことをいう。状態変化フラグがＯＮとなるのは、各モジュールの状態変化フラグがＯＦＦの状態において、スマートデバイス本体１００に装着された各モジュールの状態が変化した時である。尚、状態の変化としては、各モジュールの装着の他に、電池残量の変化、故障、性能の劣化などが含まれる。更に例えば、撮像モジュール５００がレンズ駆動手段を備え、変倍レンズを光軸方向に移動させて焦点距離を変更した場合には、撮像モジュール５００の状態が変化したと見なして状態変化フラグをＯＮに切り替える制御としてもよい。
こうしてモジュールの装着処理ルーチンにより、スマートデバイス本体１００に対して正常なモジュールが取り付けられ、更にＥＰＭにより確実にロックされて、該当モジュールの機能を利用可能な状態となる。尚、その他にも各通信を安定させるため、ＥＰＭによるモジュールのロックをＳ１３０１の前に行う制御としても良く、その場合はＳ１３０４の後にロック解除を行うことになる。
【００７５】
図９は、図６のＳ１１１１において実行される専用アプリケーションプログラムの一例である撮影アプリケーション実行処理の動作フローを示すフローチャートである。
図９において、まずＳ１４０１で表示操作モジュール３００の操作入力により撮影アプリケーションを立ち上げると、アプリケーションプログラム制御回路２１０は、管理テーブル２９０から撮影アプリケーションの管理ファイルの情報を取得する。この撮影アプリケーションの管理ファイルの情報には、撮影アプリケーションを実行するのに不可欠なモジュールの種類や、撮影機能を最大限に活用できる該当モジュールの組み合わせや、該当モジュールを装着するのに最適な各スロットの位置関係が含まれる。
次にＳ１４０２に進み、アプリケーションプログラム制御回路２１０は、システム制御
回路１１０を介して各モジュールからモジュール情報を取得する。そしてＳ１４０３において、撮像アプリケーションの管理ファイルの情報に基づき、必要なモジュールが装着されているか、その組み合わせに問題がないか等を検証し判定する。
【００７６】
Ｓ１４０３で検証した結果に問題があれば、アプリケーションプログラム制御回路２１０は、Ｓ１４０４で所定のエラー処理を行った後、撮影アプリケーション実行処理ルーチンを終了する。エラー処理では、表示操作モジュール３００などにエラー内容などを表示してユーザに通知してもよい。例えば、Ｓ１４０２の時点でいずれのスロットにも撮像モジュール５００が装着されておらず、撮像アプリケーションを実行できない場合は、Ｓ１４０４のエラー処理においてエラー内容を通知し、撮影アプリケーション実行処理ルーチンを終了する。またその他に、装着された撮像モジュール５００に手ブレ補正（ＩＳ）の機能が備わっているにも関わらず、例えば姿勢検知モジュール８００が装着されていないために手ブレを検知できない場合は、Ｓ１４０４のエラー処理において撮影機能の一部を制限する。この場合は、撮影アプリケーション実行処理ルーチンを終了する必要はなく、エラー内容の通知に対してユーザの操作入力等があれば、状況に応じてＳ１４０７の撮影実行処理に移行してもよい。
Ｓ１４０３で検証した結果に問題が無ければ、Ｓ１４０５に進む。Ｓ１４０５においてアプリケーションプログラム制御回路２１０は、各モジュールの状態が変化したかどうかを検知するため、状態変化フラグがＯＮとなっているかどうかを判断する。このとき、状態変化フラグがＯＦＦであればＳ１４０７に進み、アプリケーションプログラム制御回路２１０が、各種の撮影実行処理を行う。
【００７７】
Ｓ１４０５で、状態変化フラグがＯＮとなっていたならば、Ｓ１４０６に進み、アプリケーションプログラム制御回路２１０は、近接判定処理を行う。近接判定処理の詳細は、図１０を用いて後述する。Ｓ１４０６を終了するとＳ１４０７に進み、アプリケーションプログラム制御回路２１０は各種の撮影実行処理を行う。ここで、各種の撮影実行処理とは、自動露出（ＡＥ）、自動焦点調節（ＡＦ）、自動ホワイトバランス（ＡＷＢ）、手ブレ補正（ＩＳ）等の制御を行いつつ、撮像センサから所望の画像データを取得することをいう。尚、本実施例はこうした撮像実行処理を限定するものではなく、またこれらは公知であるため、詳細な説明は省略する。
【００７８】
そしてＳ１４０８において、撮影アプリケーション終了メッセージを受信しなかったならば、再びＳ１４０７に戻って撮影実行処理を繰り返す。
Ｓ１４０８で、ユーザによって撮影アプリケーション実行処理に対する終了の指示が入力された場合、表示操作制御回路３１０は、アプリケーションプログラム制御回路２１０へ向けて撮影アプリケーション終了メッセージを送信する。アプリケーションプログラム制御回路２１０は、撮影アプリケーション終了メッセージを受信すると、専用アプリケーションプログラムの終了状態への移行を判断して該当モジュールの動作を停止し、撮影アプリケーション実行処理ルーチンを終了する。
【００７９】
図１０は、図９のＳ１４０６において実行される近接判定処理の動作フローを示すフローチャートである。
図１０のＳ１５０１で、アプリケーションプログラム制御回路２１０は、各スロットの位置情報と、撮像モジュール５００の種類に関する情報と、外部Ｉ／Ｏモジュール６００の外形に関する情報と、を取得する。本実施例では、撮像モジュール５００の種類に関する情報として、撮像モジュール５００の外部から見た光軸の座標情報を取得する。また、外部Ｉ／Ｏモジュール６００の外形に関する情報として、外部Ｉ／Ｏモジュール６００の外部から見た突出部６９０の厚み情報を取得する。各スロットの位置情報については、スマートデバイス本体１００の不揮発性メモリ１１４から取得する。同様に、光軸の座標情報については、撮像モジュール５００の不揮発性メモリ５２２から取得し、突出部６９０
の厚み情報については、外部Ｉ／Ｏモジュール６００の不揮発性メモリ６２２から取得する。
【００８０】
次にＳ１５０２において、Ｓ１５０１で取得したモジュール情報から、外部Ｉ／Ｏモジュール６００の外部から見た突出部６９０の厚みが、規格値よりも大きいかどうかを判断する。このとき、前述のように平坦なスマートデバイス５０の表面から一部が突出するような、標準的な外形とは異なるモジュールが装着される場合には、その厚みの距離において撮像モジュール５００の撮影範囲を計算する制御としてもよい。この点については後述する。もしこれとは逆に、外部Ｉ／Ｏモジュール６００の厚みと他の標準的な外形のモジュールの厚みとの間に大きな差がなければ、撮像モジュール５００の撮影範囲は遮られるおそれがないと判断できる。つまり、この規格値は、外部Ｉ／Ｏモジュール６００の外部から見た突出部６９０の厚みが、撮影機能に影響を及ぼす程度であるかどうかを簡易的に判定するため、事前に任意で設定される定数である。そして、突出部６９０の厚みがこの規格値以下であった場合はＳ１５０７に進み、アプリケーションプログラム制御回路２１０は、状態変化フラグをＯＦＦに切り替える処理を実行して近接判定処理ルーチンを終了する。
【００８１】
Ｓ１５０２で突出部６９０の厚みが規格値よりも大きいことを検出した場合は、Ｓ１５０３に進み、アプリケーションプログラム制御回路２１０は、カメラ５１０における光軸と外部Ｉ／Ｏモジュール６００との距離を計算する。カメラ５１０における光軸と外部Ｉ／Ｏモジュール６００との距離の計算方法の詳細については後述する。
更にＳ１５０４において、カメラ５１０における光軸と外部Ｉ／Ｏモジュール６００との距離が閾値よりも大きいかどうかを判断する。距離が閾値よりも大きい場合はＳ１５０７に進み、アプリケーションプログラム制御回路２１０は、状態変化フラグをＯＦＦに切り替える処理を実行して近接判定処理ルーチンを終了する。
【００８２】
ここで、閾値は、撮像モジュールの種類毎に設定される数値であり、特に広角端の焦点距離において、異型のモジュールが写り込んでしまう程に画角が広角であるかどうかを判定するために、事前に任意で設定される定数のことをいう。この閾値は、詳しくは後述するカメラ５１０における光軸と外部Ｉ／Ｏモジュール６００との水平方向の最短距離と、垂直方向の最短距離と、にそれぞれ対応するように、水平方向の閾値と垂直方向の閾値とが設定されると好ましい。
そして、水平方向と垂直方向とのいずれか一方でも最短距離が閾値以下となった場合は、Ｓ１５０５に進むことになる。
【００８３】
また、比較的広角な撮像モジュール５００と、撮像モジュール５００よりも画角が狭く望遠寄りの撮像モジュール（不図示）とでは、閾値が異なる。具体的には、撮像モジュール５００の画角に対して設定される第１の閾値は、撮像モジュール５００よりも画角が狭く望遠寄りの撮像モジュール（不図示）の画角に対して設定される第２の閾値よりも大きくなるように設定されている。このように、閾値は撮像モジュールの画角の大きさに対応して予め設定され、撮像モジュールの画角の大きさが大きいほど、閾値は大きくなるように設定されるとよい。また、閾値は撮影範囲の大きさに対応して予め設定され、スマートデバイス本体１００からの距離が同じ位置では、撮影範囲の大きさが大きいほど、閾値は大きく設定されるとよい。
【００８４】
また、同じ撮像モジュール５００であっても、変倍レンズを光軸方向に駆動するレンズ駆動手段を備える場合や、撮影可能範囲よりも小さな任意の撮影範囲を切り出すトリミング手段を備える場合には、それぞれの画角に応じて閾値を異ならせてもよい。具体的には、広角側の焦点距離に対して設定される第三の閾値は、望遠側の焦点距離に対して設定される第四の閾値よりも大きくなるように設定されると好適である。このように、閾値は、
撮像モジュールの焦点距離に対応して予め設定され、焦点距離が広角側であるほど、閾値は大きく設定されるとよい。そして、こうした撮像モジュールと焦点距離とのそれぞれの閾値の組み合わせを、予め管理テーブルとして撮像モジュールの不揮発性メモリに記憶させておき、焦点距離の変化に応じて、対応する組み合わせを取得する制御としてもよい。また、本実施例では、閾値は、撮像モジュール５００の種類毎に設定されるものであるが、これに限るものではなく、撮像モジュール５００の種類、及び／又は外部Ｉ／Ｏモジュール６００の種類に対応して予め設定されるものであるとよい。また、外部Ｉ／Ｏモジュール６００の種類は、外部Ｉ／Ｏモジュール６００の外形（外形形状、厚み等）で分類されるものであるとよい。
【００８５】
Ｓ１５０４で距離が閾値以下であると判定（否定判定）した場合は、Ｓ１５０５に進む。Ｓ１５０５では、アプリケーションプログラム制御回路２１０は、撮影機能を調整して撮影機能の一部を制限するか、もしくは表示操作モジュール３００などに情報を表示してユーザに通知する。尚、ユーザに通知する場合は、必ずしも撮影機能の一部を制限する必要はなく、通知に対してユーザの操作入力等があれば、ユーザの入力に応じた処理を行うものであればよい。ユーザの入力によっては、状況に応じてそのままＳ１５０６に移行してもよい。
また、表示操作モジュール３００などに情報を表示してユーザに通知する際には、エラーが生じたことを表示したり、警告を表示したりするとよい。このとき、さらに、エラーを解消するための方法に関するガイダンスを表示するとよい。
【００８６】
Ｓ１５０５において撮影機能の一部を制限する場合には、カメラ５１０における光軸と外部Ｉ／Ｏモジュール６００との距離と、突出部６９０の厚みと、に応じて、レンズの焦点距離を望遠寄りに変更する制御が好適である。具体的には、アプリケーションプログラム制御回路２１０が変倍レンズを駆動し、水平方向における画角と垂直方向における画角とを狭めて撮影範囲を光学的に限定することで、外部Ｉ／Ｏモジュール６００の突出部６９０の写り込みを回避することが可能となる。他にも、像振れ補正手段が少なくとも１つのレンズを光軸と直交する方向に駆動し、撮影範囲を外部Ｉ／Ｏモジュール６００（他方のモジュール）から離間する方向に光学的に移動させる構成であってもよい。またこうした制御は、前述のトリミング手段によって電子的に実行され、撮影可能範囲よりも小さな撮影範囲を切り出すことで、突出部６９０の写り込みを回避する構成であっても構わない。尚、このときの最適な焦点距離や、トリミング手段によって切り出す撮影範囲は、後述する、突出部６９０の厚みの距離において計算される撮影範囲から、比較的容易に導き出すこともできる。また、本実施例はこうした撮影機能の一部を制限する方法を限定するものではなく、またこれらは公知であるため、個別の詳細な説明は省略する。
【００８７】
続いてＳ１５０６において、アプリケーションプログラム制御回路２１０は、次に示す管理情報を更新する。それは、Ｓ１５０３で計算したカメラ５１０における光軸と外部Ｉ／Ｏモジュール６００との距離の管理情報と、不揮発性メモリ２１４及びメモリ２１２の所定領域に格納された管理情報である。ここで、管理情報は、Ｓ１５０３で新たに得た距離の管理情報の他に、モジュール管理情報、ＥＰＭ制御管理情報、ＲＦバス構成管理情報を含む。
その後、Ｓ１５０７へ進み、アプリケーションプログラム制御回路２１０は、状態変化フラグをＯＦＦに切り替える処理を実行する。ここで状態変化フラグをＯＮにするタイミングは、例えば図８に従って前述したモジュール設定処理の動作フローにおけるＳ１３０８のように、新たな該当モジュールをスマートデバイス本体１００に対して装着したときである。一方、状態変化フラグをＯＦＦにするタイミングは、例えば図１０に示すＳ１５０７のように、管理ファイルを最新の状態に更新した直後である。こうして本実施例では、適切なタイミングで状態変化フラグのＯＮとＯＦＦとを切り替えることにより、モジュールの状態変化を常に管理できるものである。
【００８８】
以上で、スマートデバイス５０の一連の動作フローの説明を終了する。尚、図５に示すアプリケーションプログラム制御モジュール２００に設けられた管理テーブル２９０は、無線ＬＡＮモジュール７００等により、アプリケーションプログラムのアップデートがされた時点で情報を更新することができる。そのため、図５における管理テーブル２９０は、各モジュールの種類や実現できる機能、その他必要となる情報を適宜変更したり追加したりすることが可能である。
【００８９】
また前述のように、突出部６９０の厚みの距離における撮影範囲を計算することも比較的容易である。そこで、閾値を用いることなく計算結果に基づいて、撮像モジュール５００の撮影範囲が突出部６９０によって遮られるかどうかを判定する制御を行ってもよい。この場合は、図１０のＳ１５０１で説明した制御と同様に、各スロットの位置情報と、撮像モジュール５００の外部から見た光軸の座標情報と、外部Ｉ／Ｏモジュール６００の外部から見た突出部６９０の厚み情報と、を取得する。更にこれらに加えて、前述の撮影範囲情報を撮像モジュール５００の不揮発性メモリ５２２から取得することで、水平方向の撮影範囲Ｘ５００と、垂直方向の撮影範囲Ｙ５００と、を計算する。
【００９０】
図１１は、図１０のＳ１５０３において実行されるカメラ５１０における光軸と外部Ｉ／Ｏモジュール６００との距離の計算方法を説明するための図である。また図１２（ａ）、１２（ｂ）は、カメラ５１０における光軸と突出部６９０との詳細な位置関係を説明するための図である。図１２（ａ）は、図１１のＳ１０１−Ｓ１０１断面図であり、図１１においてカメラ５１０の光軸を含む位置で撮像モジュール５００を水平方向に切断した際の断面図である。一方、図１２（ｂ）は、図１１のＳ１０２−Ｓ１０２断面図であり、図１１においてカメラ５１０の光軸を含む位置で撮像モジュール５００を垂直方向に切断した際の断面図である。
【００９１】
前述した図１０のＳ１５０１において、アプリケーションプログラム制御回路２１０は、スマートデバイス本体１００の不揮発性メモリ１１４から各スロットの位置情報を取得する。ここで本実施例における各スロットの位置情報とは、スロット１５００とスロット１６００との位置情報を含み、モジュールの位置を決定する各リブ１０１やスパイン１０２の突き当て面の位置を特定するものである。これと同時に、Ｓ１５０１においてアプリケーションプログラム制御回路２１０は、撮像モジュール５００の不揮発性メモリ５２２から、撮像モジュール５００の外部から見た光軸の座標Ｘ１０１・Ｙ１０１の数値を取得する。またアプリケーションプログラム制御回路２１０は、外部Ｉ／Ｏモジュール６００の不揮発性メモリ６２２から、外部Ｉ／Ｏモジュール６００の外部から見た突出部６９０の座標Ｘ１０３・Ｘ１０４・Ｙ１０２・Ｙ１０４と厚みＺ６００との数値を取得する。
【００９２】
このときＸ１０１は、撮像モジュール５００の突き当て面からカメラ５１０における光軸までの水平方向の長さを示しており、同じくＹ１０１は、垂直方向の長さを示している。Ｘ１０２は、スマートデバイス本体１００におけるスパイン１０２の水平方向の長さを示している。Ｘ１０３とＸ１０４とは、外部Ｉ／Ｏモジュール６００の突き当て面から突出部６９０までの水平方向の長さを示しており、同じくＹ１０２とＹ１０３とＹ１０４とは、垂直方向の長さを示している。ここでＹ１０３は、Ｙ１０２とＹ１０４との間の任意の座標である。そして、外部Ｉ／Ｏモジュール６００内における突出部６９０の範囲は、水平方向にＸ１０３〜Ｘ１０４、垂直方向にＹ１０２〜Ｙ１０４であると規定することができる。
【００９３】
カメラ５１０における光軸と突出部６９０との水平方向の最短距離Ｘ１００は、Ｘ１０１〜Ｘ１０３から幾何学的に算出されるものである。ここで本実施例における水平方向の最短距離Ｘ１００は、下記式３に示す計算式によって求められる。
［式３］
Ｘ１００＝｜Ｘ１０１＋Ｘ１０２＋Ｘ１０３｜
また同様に、カメラ５１０における光軸と突出部６９０との垂直方向の最短距離Ｙ１００は、Ｙ１０１〜Ｙ１０４から幾何学的に算出されるものである。ただし本実施例では図１１に示すように、下記式４に示す関係式が成り立っており、垂直方向の最短距離Ｙ１００は下記式５に示す計算式によって求められ、特にこの場合の垂直方向の最短距離Ｙ１００は０となる。これはつまり、垂直方向において、突出部６９０は、カメラ５１０における光軸と重なる位置にあり、お互いに近接した位置関係であることを示している。
［式４］
Ｙ１０２＜Ｙ１０１＝Ｙ１０３＜Ｙ１０４
［式５］
Ｙ１００＝｜Ｙ１０１−Ｙ１０３｜＝０
【００９４】
このようにして求められた最短距離Ｘ１００，Ｙ１００と、突出部６９０の厚みＺ６００の距離における撮像モジュール５００の撮影範囲Ｘ５００，Ｙ５００とから、撮像モジュール５００の撮影範囲が突出部６９０によって遮られるかどうかを判定できる。このとき、最短距離Ｘ１００の値が、撮影範囲Ｘ５００の値の１／２以下であり、最短距離Ｙ１００の値が、撮影範囲Ｙ５００の値の１／２以下であるときに、撮像モジュール５００の撮影範囲が突出部６９０によって遮られると判定する。
このように、前述した閾値を用いずに、カメラ５１０における光軸と突出部６９０との最短距離と、突出部６９０の厚みＺ６００の距離における撮像モジュール５００の撮影範囲を計算で求めることによっても、前述の判定を行うことができる。
この計算式自体は比較的単純であり、アプリケーションプログラム制御モジュール２００のメモリ２１２や不揮発性メモリ２１４に要求されるメモリ容量は比較的少ない。更に、アプリケーションプログラム制御回路２１０による処理速度は非常に高速であるため、撮影開始までにタイムラグを生じさせてしまうおそれはない。
【００９５】
以上、閾値を用いることなく計算結果に基づいて、撮像モジュール５００の撮影範囲が外部Ｉ／Ｏモジュール６００によって遮られるかどうかを判定する方法について説明した。
ここで、次のような方法により、撮像モジュール５００の撮影範囲が外部Ｉ／Ｏモジュール６００によって遮られるかどうかを判定してもよい。
まず、撮像モジュール５００に関する情報と、外部Ｉ／Ｏモジュール６００に関する情報と、閾値との関係を予め設定しておく。このとき、撮像モジュール５００に関する情報は、撮像モジュール５００の撮影範囲に関する情報であるとよく、この情報は撮像モジュール５００の種類毎に設定されるとよい。また、外部Ｉ／Ｏモジュール６００に関する情報は、外部Ｉ／Ｏモジュール６００の突出部６９０の厚みに関する情報であるとよく、この情報は、外部Ｉ／Ｏモジュール６００の種類毎に設定されるとよい。そして、撮像モジュール５００に関する情報と、外部Ｉ／Ｏモジュール６００に関する情報から当該閾値を取得し、撮像モジュール５００と外部Ｉ／Ｏモジュール６００との距離が、当該閾値より大きいかどうかを判定してもよい。この判定が否定判定のときに、遮られると判定できる。また当該閾値においても、図１０に示した閾値同様、撮像モジュール５００の種類、及び／又は外部Ｉ／Ｏモジュール６００の種類に対応して設定されるとよい。
また、撮像モジュール５００と外部Ｉ／Ｏモジュール６００がスマートデバイス本体１００のスロットに装着された場合に、撮像モジュール５００の撮影範囲が突出部６９０によって遮られるスロットの組み合わせが予め設定されていてもよい。そして撮像モジュール５００と外部Ｉ／Ｏモジュール６００がスマートデバイス本体１００に装着された場合
に、各モジュールが装着されたスロットの組合わせから、撮像モジュールの撮影範囲が外部Ｉ／Ｏモジュールによって遮られるかどうかを判定してもよい。
【００９６】
以上説明したように、本実施例では、撮像モジュール５００の撮影範囲が、外部Ｉ／Ｏモジュール６００の突出部６９０によって遮られるかどうかを判定し、判定結果に応じて所定の処理を行っている。これにより、撮像モジュール５００の撮影範囲が、突出部６９０によって遮られることを抑制することが可能となる。さらにスマートデバイス５０においては、所望の撮影機能を最大限に活かすことができるかどうかを判定でき、アプリケーションプログラムをより適正に動作させることが可能となる。
【００９７】
（実施例２）
以下に、実施例２について説明する。
本実施例では、前述した実施例１におけるスマートデバイス本体１００とモジュールは同じものを用い、実施例１に対して、モジュールを取り付けるスロットを変更（モジュールとスロットの組み合わせを変更）した。なお、以下では、実施例１と異なる構成や処理について説明し、実施例１と同様の構成や処理についての説明は省略する。
【００９８】
図１３は、本実施例のスマートデバイス５０の外観図であり、図１０のＳ１５０３において実行されるカメラ５１０における光軸と外部Ｉ／Ｏモジュール６００との距離の計算方法を説明するための図である。また図１４（ａ）、１４（ｂ）は、カメラ５１０における光軸と突出部６９０との詳細な位置関係を説明するための図である。図１４（ａ）は、図１３のＳ２０１−Ｓ２０１断面図であり、図１３においてカメラ５１０の光軸を含む位置で撮像モジュール５００を水平方向に切断した際の断面図である。一方、図１４（ｂ）は、図１３のＳ２０２−Ｓ２０２断面図であり、図１３においてカメラ５１０の光軸を含む位置で撮像モジュール５００を垂直方向に切断した際の断面図である。
【００９９】
本実施例は実施例１と異なり、スマートデバイス本体１００の背面側において、スロット１６００に撮像モジュール５００が装着され、またスロット１７００に外部Ｉ／Ｏモジュール６００が装着されている。そして、実施例１において撮像モジュール５００が装着されていたスロット１５００に対して、本実施例では無線ＬＡＮモジュール７００が取り付けられた状態となっている。このような構成によって、カメラ５１０における光軸と外部Ｉ／Ｏモジュール６００の突出部６９０とをより離して配置することができる。また、ユーザがスマートデバイス５０を使用する際の持ちやすさなどから、撮像モジュール５００と外部Ｉ／Ｏモジュール６００との位置関係は適宜変更されるとよい。
【０１００】
前述したように、図１０のＳ１５０１において、アプリケーションプログラム制御回路２１０は、スマートデバイス本体１００の不揮発性メモリ１１４から各スロットの位置情報を取得する。ここで本実施例における各スロットの位置情報とは、スロット１６００とスロット１７００との位置情報を含み、モジュールの位置を決定する各リブ１０１やスパイン１０２の突き当て面の位置を特定するものである。これと同時に、Ｓ１５０１においてアプリケーションプログラム制御回路２１０は、撮像モジュール５００の不揮発性メモリ５２２から、撮像モジュール５００の外部から見た光軸の座標Ｘ２０４・Ｙ２０３の数値を取得する。またアプリケーションプログラム制御回路２１０は、外部Ｉ／Ｏモジュール６００の不揮発性メモリ６２２から、外部Ｉ／Ｏモジュール６００の外部から見た突出部６９０の座標Ｘ２０１・Ｘ２０２・Ｙ２０１・Ｙ２０２と厚みＺ６００との数値を取得する。
【０１０１】
このときＸ２０４は、撮像モジュール５００の突き当て面からカメラ５１０における光軸までの水平方向の長さを示しており、同じくＹ２０３は、垂直方向の長さを示している。Ｘ２０３は、スマートデバイス本体１００におけるスパイン１０２の水平方向の長さを
示している。Ｘ２０１とＸ２０２とは、外部Ｉ／Ｏモジュール６００の突き当て面から突出部６９０までの水平方向の長さを示しており、同じくＹ２０１とＹ２０２とは、垂直方向の長さを示している。そして、外部Ｉ／Ｏモジュール６００内における突出部６９０の範囲は、水平方向にＸ２０１〜Ｘ２０２、垂直方向にＹ２０１〜Ｙ２０２であると規定することができる。
【０１０２】
カメラ５１０における光軸と突出部６９０との水平方向の最短距離Ｘ２００は、Ｘ２０２〜Ｘ２０４から幾何学的に算出されるものである。ここで本実施例における水平方向の最短距離Ｘ２００は、下記式６に示す計算式によって求められる。
［式６］
Ｘ２００＝｜Ｘ２０２＋Ｘ２０３＋Ｘ２０４｜
また同様に、カメラ５１０における光軸と突出部６９０との垂直方向の最短距離Ｙ２００は、Ｙ２０１、Ｙ２０３から幾何学的に算出されるものである。ここで本実施形態における垂直方向の最短距離Ｙ２００は、下記式７に示す計算式によって求められる。
［式７］
Ｙ２００＝｜Ｙ２０１−Ｙ２０３｜
【０１０３】
このようにして求められた最短距離Ｘ２００，Ｙ２００を用いることで、前述した実施例１同様、撮像モジュール５００の撮影範囲が突出部６９０によって遮られるかどうかを判定できる。
以上説明したように、本実施例においても実施例１同様、撮像モジュール５００の撮影範囲が、突出部６９０によって遮られることを抑制することが可能となる。
【０１０４】
（実施例３）
以下に、実施例３について説明する。
本実施例では、フラッシュ撮影にも対応する高性能ＬＥＤを実装した発光モジュール６０１が、スマートデバイス本体１００に装着されている例について説明する。前述した実施例１，２では、撮像モジュール５００の撮影範囲が、外部Ｉ／Ｏモジュール６００によって遮られないようにするものであった。これに対して、本実施例では、発光モジュール６０１が発光する光が、撮像モジュール５００によって遮られないようにするものである。なお、以下では、実施例１，２と異なる構成や処理について説明し、実施例１，２と同様の構成や処理についての説明は省略する。
【０１０５】
図１７は、本実施例において、発光モジュール６０１が装着されたスマートデバイス５０を示す概略図である。
実施例１では、スマートデバイス本体１００の背面側において、スパイン１０２の左側の上部のスロット１５００に、撮像モジュール５００が装着されていた。そして、スロット１５００と近接して、スパイン１０２の右側の上部のスロット１６００に、外部Ｉ／Ｏモジュール６００が装着されていた。
これに対して、本実施例では、スロット１５００に撮像モジュール５００が装着され、スロット１６００に発光モジュール６０１が装着されている。これによって図１７に示すように、撮像モジュール５００と発光モジュール６０１とがお互いに近接した位置関係となっている。
【０１０６】
ここで、発光モジュール６０１についても、前述した撮像モジュール５００と同様に、本実施例では代表的な一例を示すものであるが、これに限らず、スマートデバイス５０に対応し得る発光モジュールの仕様や形状等は多種多様である。
そのため、例えば別の発光モジュールとして、発光モジュール６０１よりも配光角の狭
い発光モジュール（不図示）が、異なるモジュールメーカーから提供されることも想定される。
また、前述のように、対応するアプリケーションプログラムがインストールされている場合は、アプリケーションプログラム制御モジュール２００を介することで、所望する様々な機能を利用できる。
例えば、専用の撮影アプリケーションであれば、アプリケーションプログラム制御モジュール２００を介して撮像モジュール５００と発光モジュール６０１とを連動させることで、フラッシュ撮影をはじめとする各種の撮影機能を利用することができる。
【０１０７】
以下に、本実施例のスマートデバイス５０の構成について説明する。本実施例のスマートデバイス５０の構成は、実施例１と同様である。このため、説明の便宜上、図５を用いて説明した実施例１のスマートデバイス５０の構成に対して、異なる構成部分について説明する。
本実施例において、撮像モジュール５００の不揮発性メモリ５２２には、カメラ５１０の動作用の定数、変数、構成部品の位置情報、撮像モジュール５００の外形情報、光軸の誤差情報、レンズの誤差情報等が記憶されている。
詳しくは後述するが、撮像モジュール５００の外形情報には、撮像モジュール５００の外部から見たカメラ５１０の外形情報、特にカメラ先端における水平方向の座標情報と、垂直方向の座標情報と、高さ方向の座標情報と、が含まれている。撮像モジュール５００は、他の標準的な外形のモジュールとは異なり、レンズ鏡筒を収納するために本来であれば平坦となるスマートデバイス５０の表面から、カメラ５１０が被写体方向に盛り上がっている。撮像モジュールの外形情報は、こうした撮像モジュール５００内におけるカメラ５１０の外形を、座標によって規定するものである。
【０１０８】
＜発光モジュール６０１＞
以下に、本実施例の発光モジュール６０１について説明する。
発光モジュール６０１は、アプリケーションプログラム制御モジュール２００による統括制御の下で、スマートデバイス本体１００によって制御され、撮像モジュール５００の動作と同期して露光動作中に発光を行う。またその他にも、自動焦点調節（ＡＦ）を補助する目的で、露光開始よりも前に被写体を照射することもでき、更に撮影機能とは関係なく、表示操作モジュール３００へのユーザの操作入力があれば、独立して持続的に点灯することも可能となっている。
本実施例の発光モジュール６０１の構成を示すブロック図は、実施例１で図５に示した外部Ｉ／Ｏモジュール６００の構成を示すブロック図と同様となる。すなわち、図５のスマートデバイス５０の構成を示すブロック図において、実施例１では外部Ｉ／Ｏモジュール６００が示されていた部分が、本実施例の発光モジュール６０１に相当する。このため、説明の便宜上、図５のブロック図を用い、外部Ｉ／Ｏモジュール６００の構成と同じ符号を用いて、発光モジュール６０１の構成について以下に説明する。
【０１０９】
発光モジュール６０１において６１０は、半導体素子の一種であり、電圧を加えることによって発光するＬＥＤである。ＬＥＤ６１０の制御は、アプリケーションプログラム制御回路２１０で実行されるアプリケーションプログラムや、表示操作モジュール３００へのユーザの操作入力に応じて行われ、発光のＯＮとＯＦＦとの切り替えだけでなく、発光量の微調整などが可能である。
６１６は識別情報で、発光モジュール６０１がスマートデバイス本体１００及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。６２０は、発光モジュール６０１の各部に必要な所定の電圧・電流を供給する電源制御回路である。
【０１１０】
６２２は、発光モジュール６０１の動作用の定数、変数、構成部品の位置情報、配光情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモ
リ等が用いられる。詳しくは後述するが、構成部品の位置情報には、発光モジュール６０１の外部から見た発光中心６９１の座標情報が含まれている。前述のように、発光モジュール６０１は、スマートデバイス本体１００に対してその外形を突き当てることで位置が決定される。尚、本実施例では発光モジュール６０１の位置決めを、スマートデバイス本体１００のリブ１０１とスパイン１０２への突き当てにより行っているが、これに限定されるものではない。例えば、スマートデバイス本体１００に位置決め用の凸部を設け、発光モジュール６０１に凸部と嵌合する凹部を設けるなどしてもよい。この場合、構成部品の位置情報には、凸部と嵌合する凹部から見た発光中心６９１の座標情報が含まれることになる。
【０１１１】
一方、配光情報には、発光モジュール６０１の外部から見た配光中心の座標情報と配光角情報とが含まれている。この配光情報は、発光モジュール６０１の種類に対応するものであるとよい。本実施例が示す発光モジュール６０１では、ＬＥＤから放射状に射出された閃光は、外装カバーに固定されたフレネルレンズによって一旦集光される。そしてこの閃光は、撮像モジュール５００による撮影可能範囲を包括した所定の空間内をなるべく均一に照射するように、フレネルレンズから特定の角度で射出される。ここで、配光は、所定の距離において一定以上の光量を確保した閃光の分布のことであり、水平方向の配光角とは、この分布の左端から右端までの角度であり、同様に垂直方向の配光角とは、この分布の上端から下端までの角度である。
【０１１２】
発光モジュール６０１の照射範囲は、発光モジュール６０１の外部から見た発光中心６９１の高さ座標Ｚ６０１と、水平方向における片側の配光角θｘ６０１と、垂直方向における片側の配光角θｙ６０１と、から幾何学的に算出されるものである。ここで、水平方向における片側の配光角θｘ６０１は設定された左端から右端までの配光角に対して片側のみの角度を示しており、垂直方向における片側の配光角θｙ６０１は設定された上端から下端までの配光角に対して片側のみの角度を示している。そして例えば、スロット１６００の表面から見て任意の距離Ｌだけ離れた位置では、発光中心６９１の中心線上における水平方向の照射範囲Ｘ６０１は、下記式８に示す計算式によって求められる。
［式８］
Ｘ６０１＝（Ｌ−Ｚ６０１）×ＴＡＮ（θｘ６０１）×２
これと同様に、発光中心６９１の中心線上における垂直方向の照射範囲Ｙ６０１は、下記式９に示す計算式によって求められる。
［式９］
Ｙ６０１＝（Ｌ−Ｚ６０１）×ＴＡＮ（θｙ６０１）×２
【０１１３】
前述のように撮像モジュール５００は、本来であれば平坦となるスマートデバイス５０の表面から、カメラ５１０が被写体方向に盛り上がっている。そのため、例えば図１７に示すように、撮像モジュール５００と発光モジュール６０１とが近接した位置関係にあった場合には、発光モジュール６０１の照射する範囲内にカメラ５１０が障害物として進入する恐れがある。こうなると、照射される被写体にカメラ５１０の影が発生するなどして、撮影結果に影響を及ぼしてしまう。
ここで発光モジュール６０１の照射範囲は、前述の式８に示す計算式により求められる水平方向の照射範囲Ｘ６０１と、式９に示す計算式により求められる垂直方向の照射範囲Ｙ６０１と、で規定される。カメラ５１０先端における高さＺ５０１はスロット１５００の表面から見た距離であり、詳しくは後述するが、前述の任意の距離Ｌに当てはめて計算すると、カメラ５１０によって発光モジュール６０１の照射範囲が遮られるかどうかが判定できる。
６３０はインタフェース回路であり、モジュール側ＣＭＣ６４０を介して、スマートデ
バイス本体１００及び各モジュールとのデータやメッセージの高速な通信を中継する。
【０１１４】
＜アプリケーションプログラム制御モジュール２００の動作説明＞
本実施例のアプリケーションプログラム制御モジュール２００の動作について説明する。
本実施例のアプリケーションプログラム制御モジュール２００においても、実施例１同様、図６に示すフローチャートにしたがい動作が行われる。このため本実施例においても、実施例１で図６を用いて説明した処理と異なる点について説明する。
図６のＳ１１１１では、アプリケーションプログラム制御回路２１０は、アプリケーションプログラム実行処理を実行する。
本実施例で想定されるアプリケーションプログラムには、撮像モジュール５００と発光モジュール６０１との組み合わせにより、フラッシュ撮影をはじめとする各種の撮影機能が実現される。
こうしたアプリケーションプログラムの一例である撮影アプリケーション実行処理の詳細について、図１５を用いて以下に説明する。
【０１１５】
図１５は、本実施例において、図６のＳ１１１１において実行される専用アプリケーションプログラムの一例である撮影アプリケーション実行処理の動作フローを示すフローチャートである。
図１５において、Ｓ１４０１〜Ｓ１４０５、Ｓ１４０７〜Ｓ１４０８の各ステップでの処理は、図９に示したＳ１４０１〜Ｓ１４０５、Ｓ１４０７〜Ｓ１４０８と同様であり、その説明は省略する。
Ｓ１４０５で、状態変化フラグがＯＮとなっていたならば、Ｓ１４０９に進む。Ｓ１４０９では、実行される撮影アプリケーションの動作モードが、撮像モジュール５００の露光中に発光する、所謂フラッシュ撮影の機能を利用する動作モードであるかどうかを判断する。本実施例では、撮像モジュール５００の動作と同期して露光中に発光する第１の動作モードの他にも、露光を行っていないとき、例えば自動焦点調節（ＡＦ）を補助する目的で、露光開始よりも前に被写体を照射する第２の動作モードに切り替えることができる。更にスマートデバイス５０は、撮影機能とは関係なく、表示操作モジュール３００へのユーザの操作入力等があれば、状況に応じて発光モジュール６０１のＬＥＤ６１０を持続的に点灯する第３の動作モードを備えていてもよい。そしてＳ１４０９において、撮影アプリケーションが第１の動作モード以外の、例えば露光開始よりも前に被写体を照射する第２の動作モードやユーザの操作入力等によって持続的に点灯する第３の動作モードであった場合は、Ｓ１４０７に進む。
【０１１６】
それとは逆にＳ１４０９において、撮影アプリケーションが撮像モジュール５００の動作と同期して露光中に発光する第１の動作モードであった場合は、Ｓ１４０６に進み、アプリケーションプログラム制御回路２１０が近接判定処理を行う。近接判定処理の詳細は、図１６を用いて後述する。Ｓ１４０６を終了するとＳ１４０７に進み、アプリケーションプログラム制御回路２１０は各種の撮影実行処理を行う。ここで、各種の撮影実行処理は、発光モジュール６０１との連動の有無も含め、自動露出（ＡＥ）、自動焦点調節（ＡＦ）、自動ホワイトバランス（ＡＷＢ）、手ブレ補正（ＩＳ）等の制御を行いつつ、撮像センサから所望の画像データを取得することである。
【０１１７】
図１６は、図１５のＳ１４０６において実行される近接判定処理の動作フローを示すフローチャートである。
図１０を用いて説明した実施例１の近接判定処理では、撮像モジュール５００と外部Ｉ／Ｏモジュール６００とが近接した位置関係にあるかどうかを判定するものであった。これに対して本実施例の近接判定処理では、撮像モジュール５００と発光モジュール６０１とが近接した位置関係にあるかどうかを判定するものである。
図１６のＳ１６０１で、アプリケーションプログラム制御回路２１０は、各スロットの位置情報と、発光モジュール６０１の種類に関する情報と、撮像モジュール５００の種類に関する情報と、を取得する。本実施例では、発光モジュール６０１の種類に関する情報として、発光モジュール６０１の外部から見た発光中心６９１の座標情報を取得する。また、撮像モジュール５００の種類に関する情報として、撮像モジュール５００の外部から見た光軸の座標情報と、カメラ５１０の外形に関する情報とを取得する。各スロットの位置情報については、スマートデバイス本体１００の不揮発性メモリ１１４から取得する。同様に、光軸の座標情報とカメラ５１０の外形情報とについては、撮像モジュール５００の不揮発性メモリ５２２から、発光中心６９１の座標情報については、発光モジュール６０１の不揮発性メモリ６２２から取得するものである。
【０１１８】
次にＳ１６０２において、Ｓ１６０１で取得したモジュール情報から、カメラ５１０先端の高さＺ５０１が、規格値よりも大きいかどうかを判断する。前述のように、平坦なスマートデバイス５０の表面から特に一部が突出するような、標準的な外形とは異なるモジュールが装着される場合には、その高さの距離において発光モジュール６０１の照射範囲を計算する制御としてもよい。もしこれとは逆に、カメラ５１０先端の高さＺ５０１と他の標準的な外形のモジュールの厚みとの間に大きな差がなければ、発光モジュール６０１の照射範囲は遮られるおそれがないと判断できる。つまり、この規格値とは、撮像モジュール５００の外部から見たカメラ５１０先端の高さＺ５０１が、フラッシュ撮影の機能に影響を及ぼす程度であるかどうかを簡易的に判定するため、事前に任意で設定される定数である。そして、カメラ５１０先端の高さＺ５０１がこの規格値以下であった場合はＳ１６０７に進み、アプリケーションプログラム制御回路２１０は、状態変化フラグをＯＦＦに切り替える処理を実行して近接判定処理ルーチンを終了する。
【０１１９】
Ｓ１６０２で、カメラ５１０先端の高さＺ５０１が規格値よりも大きいことを検出した場合は、Ｓ１６０３に進み、アプリケーションプログラム制御回路２１０は、カメラ５１０における光軸と発光モジュール６０１における発光中心６９１との距離を計算する。カメラ５１０における光軸と発光モジュール６０１における発光中心６９１との距離の計算方法の詳細については後述する。
更にＳ１６０４において、カメラ５１０における光軸と発光モジュール６０１における発光中心６９１との距離が閾値よりも大きいかどうかを判断する。距離が閾値よりも大きい場合はＳ１６０７に進み、アプリケーションプログラム制御回路２１０は、状態変化フラグをＯＦＦに切り替える処理を実行して近接判定処理ルーチンを終了する。
【０１２０】
ここで、閾値は、発光モジュールの種類毎に設定される数値であり、異型のモジュール（本実施例では撮像モジュール５００）が進入してしまう程に配光角が広いかどうかを判定するために、事前に任意で設定される定数である。この閾値は、詳しくは後述するカメラ５１０における光軸と発光モジュール６０１における発光中心６９１との水平方向の最短距離と、垂直方向の最短距離と、にそれぞれ対応するように、水平方向の閾値と垂直方向の閾値とが設定されると好ましい。そして、水平方向と垂直方向とのいずれか一方でも最短距離が閾値以下となった場合は、Ｓ１６０５に進むことになる。
【０１２１】
また、比較的配光角の広い発光モジュール６０１と、発光モジュール６０１よりも配光角の狭い発光モジュール（不図示）とでは、閾値が異なる。具体的には、発光モジュール６０１の配光角に対して設定される第１の閾値は、発光モジュール６０１よりも配光角の狭い発光モジュール（不図示）の配光角に対して設定される第２の閾値よりも大きくなるように設定されている。このように、閾値は発光モジュールの配光角の大きさに対応して予め設定され、発光モジュールの配光角の大きさが大きいほど、閾値は大きくなるように設定されるとよい。また、閾値は照射範囲の大きさに対応して予め設定され、スマートデバイス本体１００からの距離が同じ位置では、照射範囲の大きさが大きいほど、閾値は大
きく設定されるとよい。
【０１２２】
また、同じ撮像モジュール５００であっても、変倍レンズを光軸方向に駆動するレンズ駆動手段を備える場合や、撮影可能範囲よりも小さな任意の撮影範囲を切り出すトリミング手段を備える場合には、それぞれの画角に応じて閾値を異ならせてもよい。具体的には、広角側の焦点距離に対して設定される第３の閾値は、望遠側の焦点距離に対して設定される第４の閾値よりも大きくなるように設定されると好適である。そして、こうした撮像モジュールと焦点距離とのそれぞれの閾値の組み合わせを、予め管理テーブルとして撮像モジュール５００の不揮発性メモリに記憶させておき、焦点距離の変化に応じて、対応する組み合わせを取得する制御としてもよい。また、本実施例では、閾値は、発光モジュール６０１の種類毎に設定されるものであるが、これに限るものではなく、発光モジュール６０１の種類、及び／又は撮像モジュール５００の種類に対応して予め設定されるものであるとよい。また、撮像モジュール５００の種類は、撮像モジュール５００の外形（カメラ５１０の外形形状、カメラ５１０先端の高さ等）で分類されるものであるとよい。
【０１２３】
Ｓ１６０４で距離が閾値以下であることを検出した場合は、Ｓ１６０５に進み、アプリケーションプログラム制御回路２１０は、撮影機能を調整して撮影機能の一部を制限するか、もしくは表示操作モジュール３００などに情報を表示してユーザに通知する。尚、ユーザに通知する場合は、必ずしも撮影機能の一部を制限する必要はなく、通知に対してユーザの操作入力等があれば、ユーザの入力に応じた処理を行うものであればよい。ユーザの入力によっては、状況に応じてそのままＳ１６０６に移行してもよい。また、表示操作モジュール３００などに情報を表示してユーザに通知する際には、エラーが生じたことを表示したり、警告を表示したりするとよい。このとき、さらに、エラーを解消するための方法に関するガイダンスを表示するとよい。
【０１２４】
Ｓ１６０５において撮影機能の一部を制限する場合には、カメラ５１０における光軸と発光モジュール６０１における発光中心６９１との距離と、カメラ５１０の外形情報と、に応じて、レンズの焦点距離を望遠寄りに変更する制御が好適である。具体的には、アプリケーションプログラム制御回路２１０が変倍レンズを駆動し、水平方向における画角と垂直方向における画角とを狭めて撮影範囲を光学的に限定する。このことで、カメラ５１０によって発生する影が撮影範囲内に写り込むのを回避することが可能となる。他にも、像振れ補正手段が少なくとも１つのレンズを光軸と直交する方向に駆動し、撮影範囲を発光モジュール６０１から離間する方向に光学的に移動させる構成であってもよい。またこうした制御は、前述のトリミング手段によって電子的に実行され、撮影可能範囲よりも小さな撮影範囲を切り出すことで、カメラ５１０によって発生する影が撮影範囲内に写り込むのを回避する構成であっても構わない。尚、このときの最適な焦点距離や、トリミング手段によって切り出す撮影範囲は、後述する、カメラ５１０先端の高さＺ５０１の距離において計算される発光モジュール６０１の照射範囲から、比較的容易に導き出すこともできる。また、本実施例はこうした撮影機能の一部を制限する方法を限定するものではなく、またこれらは公知であるため、個別の詳細な説明は省略する。
【０１２５】
続いてＳ１６０６において、アプリケーションプログラム制御回路２１０は、次に示す管理情報を更新する。それは、Ｓ１６０３で計算したカメラ５１０における光軸と発光モジュール６０１における発光中心６９１との距離の管理情報と、不揮発性メモリ２１４及びメモリ２１２の所定領域に格納された管理情報である。ここで、管理情報は、Ｓ１６０３で新たに得た距離の管理情報の他に、モジュール管理情報、ＥＰＭ制御管理情報、ＲＦバス構成管理情報を含む。
その後、Ｓ１６０７へ進み、アプリケーションプログラム制御回路２１０は、状態変化フラグをＯＦＦに切り替える処理を実行する。ここで状態変化フラグをＯＮにするタイミングは、例えば実施例１で図８に従って前述したモジュール設定処理の動作フローにおけ
るＳ１３０８のように、新たな該当モジュールをスマートデバイス本体１００に対して装着した時である。
一方、状態変化フラグをＯＦＦにするタイミングは、例えば図１６に示すＳ１６０７のように、管理ファイルを最新の状態に更新した直後である。こうして本実施例では、適切なタイミングで状態変化フラグのＯＮとＯＦＦとを切り替えることにより、モジュールの状態変化を常に管理できる。
以上で、スマートデバイス５０の一連の動作フローの説明を終了する。
【０１２６】
また、本実施例においても前述のように、カメラ５１０先端の高さＺ５０１における発光モジュール６０１の照射範囲を計算することも比較的容易である。そこで、閾値を用いることなく計算結果に基づいて、発光モジュール６０１の照射範囲がカメラ５１０の外形によって遮られるかどうかを判定する制御を行ってもよい。この場合は、図１６のＳ１６０１で説明した制御と同様に、各スロットの位置情報と、撮像モジュール５００の外部から見た光軸の座標情報と、カメラ５１０の外形情報と、発光モジュール６０１の外部から見た発光中心６９１の座標情報と、を取得する。このときのカメラ５１０の外形情報には、カメラ５１０先端の高さＺ５０１の数値だけでなく、前述の水平方向の座標情報と、垂直方向の座標情報と、が含まれている。更にこれらに加えて、発光モジュール６０１の配光情報を発光モジュール６０１の不揮発性メモリ６２２から取得することで、水平方向の照射範囲Ｘ６０１と、垂直方向の照射範囲Ｙ６０１と、を計算する。
【０１２７】
図１７は、図１６のＳ１６０３において実行されるカメラ５１０における光軸と発光モジュール６０１における発光中心６９１との距離の計算方法を説明するための図である。また図１８（ａ）、１８（ｂ）と図１９（ａ）、１９（ｂ）とは、カメラ５１０における光軸と発光モジュール６０１における発光中心６９１との詳細な位置関係を説明するための図である。図１８（ａ）は、図１７のＳ３０１−Ｓ３０１断面図であり、図１７においてカメラ５１０の光軸を含む位置で撮像モジュール５００を水平方向に切断した際の断面図である。一方、図１８（ｂ）は、図１７のＳ３０２−Ｓ３０２断面図であり、図１７においてカメラ５１０の光軸を含む位置で撮像モジュール５００を垂直方向に切断した際の断面図である。図１９（ａ）は、図１７のＳ３０３−Ｓ３０３断面図であり、図１７において発光モジュール６０１の発光中心６９１を含む位置で発光モジュール６０１を水平方向に切断した際の断面図である。一方、図１９（ｂ）は、図１７のＳ３０４−Ｓ３０４断面図であり、図１７において発光モジュール６０１の発光中心６９１を含む位置で発光モジュール６０１を垂直方向に切断した際の断面図である。
【０１２８】
前述した図１６のＳ１６０１において、アプリケーションプログラム制御回路２１０は、スマートデバイス本体１００の不揮発性メモリ１１４から各スロットの位置情報を取得する。前述したように各スロットの位置情報とは、スロット１５００とスロット１６００との位置情報を含み、モジュールの位置を決定する各リブ１０１やスパイン１０２の突き当て面の位置を特定するものである。これと同時にＳ１６０１においてアプリケーションプログラム制御回路２１０は、撮像モジュール５００の不揮発性メモリ５２２から撮像モジュール５００の外部から見た光軸の座標Ｘ３０１・Ｙ３０１と、カメラ５１０先端の高さＺ５０１と、の数値を取得する。またアプリケーションプログラム制御回路２１０は、発光モジュール６０１の不揮発性メモリ６２２から発光モジュール６０１の外部から見た発光中心６９１の座標Ｘ３０３・Ｙ３０２の数値を取得する。
【０１２９】
このときＸ３０１は、撮像モジュール５００の突き当て面からカメラ５１０における光軸までの水平方向の長さを示しており、同じくＹ３０１は、垂直方向の長さを示している。Ｘ３０２は、スマートデバイス本体１００におけるスパイン１０２の水平方向の長さを示している。Ｘ３０３は、発光モジュール６０１の突き当て面から発光中心６９１までの水平方向の長さを示しており、同じくＹ３０２は、垂直方向の長さを示している。
【０１３０】
カメラ５１０における光軸と発光中心６９１との水平方向の最短距離Ｘ３００は、Ｘ３０１〜Ｘ３０３から幾何学的に算出されるものである。ここで本実施例における水平方向の最短距離Ｘ３００は、下記式１０に示す計算式によって求められる。
［式１０］
Ｘ３００＝｜Ｘ３０１＋Ｘ３０２＋Ｘ３０３｜
また同様に、カメラ５１０における光軸と発光中心６９１との垂直方向の最短距離Ｙ３００は、Ｙ３０１、Ｙ３０２から幾何学的に算出されるものである。ここで本実施例における垂直方向の最短距離Ｙ３００は、下記式１１に示す計算式によって求められる。
［式１１］
Ｙ３００＝｜Ｙ３０１−Ｙ３０２｜
【０１３１】
このようにして求められた最短距離Ｘ３００，Ｙ３００と、カメラ５１０先端の高さＺ５０１における発光モジュール６０１の照射範囲Ｘ６０１，Ｙ６０１とから、発光モジュール６０１の照射範囲がカメラ５１０の外形によって遮られるかどうかを判定できる。このとき、最短距離Ｘ３００の値が、照射範囲Ｘ６０１の値の１／２以下であり、最短距離Ｙ３００の値が、照射範囲Ｙ６０１の値の１／２以下であるときに、発光モジュール６０１の照射範囲がカメラ５１０の外形によって遮られると判定する。
このように、前述した閾値を用いずに、カメラ５１０における光軸と発光中心６９１との最短距離と、カメラ５１０先端の高さＺ５０１における発光モジュール６０１の照射範囲を計算で求めることによっても、前述の判定を行うことができる。
この計算式自体は比較的単純であり、アプリケーションプログラム制御モジュール２００のメモリ２１２や不揮発性メモリ２１４に要求されるメモリ容量は比較的少ない。更に、アプリケーションプログラム制御回路２１０による処理速度は非常に高速であるため、撮影開始までにタイムラグを生じさせてしまうおそれはない。
【０１３２】
以上、閾値を用いることなく計算結果に基づいて、発光モジュール６０１の照射範囲が撮像モジュール５００によって遮られるかどうかを判定する方法について説明した。
ここで、次のような方法により、発光モジュール６０１の照射範囲が撮像モジュール５００によって遮られるかどうかを判定してもよい。
まず、発光モジュール６０１に関する情報と、撮像モジュール５００に関する情報と、閾値との関係を予め設定しておく。このとき、発光モジュール６０１に関する情報は、発光モジュール６０１の照射範囲に関する情報であるとよく、この情報は発光モジュール６０１の種類毎に設定されるとよい。また、撮像モジュール５００に関する情報は、撮像モジュール５００のカメラ５１０の高さＺ５０１に関する情報であるとよく、この情報は、撮像モジュール５００の種類毎に設定されるとよい。そして、発光モジュール６０１に関する情報と、撮像モジュール５００に関する情報から当該閾値を取得し、発光モジュール６０１と撮像モジュール５００との距離が、当該閾値より大きいかどうかを判定してもよい。この判定が否定判定のときに、遮られると判定できる。また当該閾値においても、図１６に示した閾値同様、発光モジュール６０１の種類、及び／又は撮像モジュール５００の種類に対応して設定されるとよい。
また、発光モジュール６０１と撮像モジュール５００とがスマートデバイス本体１００のスロットに装着された場合に、発光モジュール６０１の照射範囲が撮像モジュール５００によって遮られるスロットの組み合わせが予め設定されていてもよい。そして、発光モジュール６０１と撮像モジュール５００とがスマートデバイス本体１００に装着された場合に、各モジュールが装着されたスロットの組み合わせから、発光モジュールの照射範囲が撮像モジュールによって遮られるかどうかを判定してもよい。
【０１３３】
以上説明したように、本実施例では、発光モジュール６０１の照射範囲が、撮像モジュール５００のカメラ５１０によって遮られるかどうかを判定し、判定結果に応じて所定の処理を行っている。これにより、発光モジュール６０１の照射範囲が、カメラ５１０によって遮られることを抑制することが可能となる。さらにスマートデバイス５０においては、所望の撮影機能を最大限に活かすことができるかどうかを判定でき、アプリケーションプログラムをより適正に動作させることが可能となる。
ここで、本実施例では、発光モジュール６０１の照射範囲が、撮像モジュール５００によって遮られることを抑制するものであったが、これに限るものではない。すなわち、発光モジュール６０１の照射範囲が、スマートデバイス本体１００に装着される他のモジュールによって遮られることを抑制するものであればよく、装着される他のモジュールは、撮像モジュール５００とは異なるモジュールであってもよい。
【０１３４】
（実施例４）
以下に、実施例４について説明する。
本実施例では、前述した実施例３におけるスマートデバイス本体１００とモジュールは同じものを用い、実施例３に対して、モジュールを取り付けるスロットを変更（モジュールとスロットの組み合わせを変更）した。なお、以下では、実施例３と異なる構成や処理について説明し、実施例３と同様の構成や処理についての説明は省略する。
【０１３５】
図２０は、本実施例のスマートデバイス５０の外観図であり、図１６のＳ１６０３において実行されるカメラ５１０における光軸と発光モジュール６０１における発光中心６９１との距離の計算方法を説明するための図である。また図２１（ａ）、２１（ｂ）と図２２（ａ）、２２（ｂ）とは、カメラ５１０における光軸と発光モジュール６０１における発光中心６９１との詳細な位置関係を説明するための図である。図２１（ａ）は、図２０のＳ４０１−Ｓ４０１断面図であり、図２０においてカメラ５１０の光軸を含む位置で撮像モジュール５００を水平方向に切断した際の断面図である。一方、図２１（ｂ）は、図２０のＳ４０２−Ｓ４０２断面図であり、図２０においてカメラ５１０の光軸を含む位置で撮像モジュール５００を垂直方向に切断した際の断面図である。
図２２（ａ）は、図２０のＳ４０３−Ｓ４０３断面図であり、図２０において発光モジュール６０１の発光中心６９１を含む位置で発光モジュール６０１を水平方向に切断した際の断面図である。一方、図２２（ｂ）は、図２０のＳ４０４−Ｓ４０４断面図であり、図２０において発光モジュール６０１の発光中心６９１を含む位置で発光モジュール６０１を垂直方向に切断した際の断面図である。
【０１３６】
本実施例では、実施例３と異なり、スマートデバイス本体１００の背面側において、スロット１６００に撮像モジュール５００が、またスロット１７００に発光モジュール６０１が装着されている。
また、実施例２と比べると、本実施例では、スロット１７００に装着されているモジュールが異なっている。すなわち、実施例２では、スロット１７００に外部Ｉ／Ｏモジュール６００が装着されていたのに対し、本実施例では、スロット１７００に発光モジュール６０１が装着されている。
このような構成によって、カメラ５１０における光軸と発光モジュール６０１における発光中心６９１とをより離して配置することができる。また、ユーザがスマートデバイス５０を使用する際の持ちやすさなどによっても、こうした撮像モジュール５００と発光モジュール６０１との位置関係は変更されるものである。
【０１３７】
前述したように、図１６のＳ１６０１において、アプリケーションプログラム制御回路２１０は、スマートデバイス本体１００の不揮発性メモリ１１４から各スロットの位置情報を取得する。これと同時に、Ｓ１６０１においてアプリケーションプログラム制御回路２１０は、撮像モジュール５００の不揮発性メモリ５２２から撮像モジュール５００の外
部から見た光軸の座標Ｘ４０３・Ｙ４０２と、カメラ５１０先端の高さＺ５０１の数値を取得する。またアプリケーションプログラム制御回路２１０は、発光モジュール６０１の不揮発性メモリ６２２から発光モジュール６０１の外部から見た発光中心６９１の座標Ｘ４０１・Ｙ４０１の数値を取得する。
このときＸ４０３は、撮像モジュール５００の突き当て面からカメラ５１０における光軸までの水平方向の長さを示しており、同じくＹ４０２は、垂直方向の長さを示している。Ｘ４０２は、スマートデバイス本体１００におけるスパイン１０２の水平方向の長さを示している。Ｘ４０１は、発光モジュール６０１の突き当て面から発光中心６９１までの水平方向の長さを示しており、同じくＹ４０１は、垂直方向の長さを示している。
【０１３８】
カメラ５１０における光軸と発光中心６９１との水平方向の最短距離Ｘ４００は、Ｘ４０１〜Ｘ４０３から幾何学的に算出されるものである。ここで本実施例における水平方向の最短距離Ｘ４００は、下記式１２に示す計算式によって求められる。
［式１２］
Ｘ４００＝｜Ｘ４０１＋Ｘ４０２＋Ｘ４０３｜
また同様に、カメラ５１０における光軸と発光中心６９１との垂直方向の最短距離Ｙ４００は、Ｙ４０１、Ｙ４０２から幾何学的に算出されるものである。ここで本実施形態における垂直方向の最短距離Ｙ４００は、下記式１３に示す計算式によって求められる。
［式１３］
Ｙ４００＝｜Ｙ４０１−Ｙ４０２｜
【０１３９】
このようにして求められた最短距離Ｘ４００，Ｙ４００を用いることで、前述した実施例３同様、発光モジュール６０１の照射範囲がカメラ５１０の外形によって遮られるかどうかを判定できる。
以上説明したように、本実施例においても実施例３同様、発光モジュール６０１の照射範囲が、カメラ５１０によって遮られることを抑制することが可能となる。
【０１４０】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１４１】
５０…スマートデバイス、１００…スマートデバイス本体、１１０…システム制御回路、２００…アプリケーションプログラム制御モジュール、５００…撮像モジュール、６００…外部Ｉ／Ｏモジュール
【図１】
2019102972.tif 000003
【図２】
2019102972.tif 000004
【図３】
2019102972.tif 000005
【図４】
2019102972.tif 000006
【図５】
2019102972.tif 000007
【図６】
2019102972.tif 000008
【図７】
2019102972.tif 000009
【図８】
2019102972.tif 000010
【図９】
2019102972.tif 000011
【図１０】
2019102972.tif 000012
【図１１】
2019102972.tif 000013
【図１２】
2019102972.tif 000014
【図１３】
2019102972.tif 000015
【図１４】
2019102972.tif 000016
【図１５】
2019102972.tif 000017
【図１６】
2019102972.tif 000018
【図１７】
2019102972.tif 000019
【図１８】
2019102972.tif 000020
【図１９】
2019102972.tif 000021
【図２０】
2019102972.tif 000022
【図２１】
2019102972.tif 000023
【図２２】
2019102972.tif 000024