以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
(実施例1)
図1は、本実施例に係る電子機器のとしてのスマートデバイス50の外観図である。
図1(a)は、スマートデバイス50の本体を正面側から見た外観図と、背面側から見た外観図である。
図1(a)に示すように、スマートデバイス50の本体の正面側には、複数のリブ101a〜cが形成されている。また、スマートデバイス50の本体の背面側には、複数のリブ101a,c〜hが形成されると共に、スマートデバイス50の本体を左右の領域に分割するスパイン102が形成されている。リブ101a〜hとスパイン102(ガイド部)とは、モジュールを取り付ける際のガイド機能と装着後のモジュールを保持する保持機能とを兼ね備えていると共に、スマートデバイス50の本体の剛性を高める機能も有している。以下、リブ101a〜hとスパイン102とを合わせてフレーム構造と称する。スマートデバイス50の本体の正面側と背面側とは、リブ101a〜hとスパイン102とによって、複数のモジュールの取り付け領域に分割されている。以下、これらの複数のモジュールの取り付け領域を、スロット1000,1100,1200,1300,1400,1500,1600,1700,1800,1900と称する。
各スロット1000〜1900には、電磁着脱機構を司るエレクトロパーマネントマグネット(EPM)160〜169が設けられている。尚、EPM160〜169については、詳しくは後述する。各EPM160〜169近傍には、これらと対となる、スマートデバイス50の本体と各モジュールとがデータの送受信をするための本体側非接触通信手段(以下、本体側CMCと称する)140〜149が備えられている。つまり、各スロット1000〜1900には、EPM160〜169と本体側CMC140〜149とが、それぞれ少なくとも一対設けられていることになる。尚、図1(a)に示すように、EPM160〜169と本体側CMC140〜149とは、各スロット1000〜1900の大きさに応じて複数設けられても良い。
スマートデバイス50の本体の正面側には、紙面向かって左側の端部付近にEPM160,163が配置されており、そのEPM160,163の右側に本体側CMC140,143が配置されている。スマートデバイス50の本体の背面側には、スパイン102に隣接するようにEPM161,162a,162b,164a,164b,165a,165b,166〜169が配置されている。紙面に向かってスパイン102の左側の領域には、EPM165a,165b,167a,167b,168,169が設けられ、更にその左側に本体側CMC145a,145b,147a,147b,148,149が配置されている。またスパイン102の右側の領域には、EPM161,162a,162b,164a,164b,166が設けられ、更にその右側に本体側CMC141、142a,142b,144a,144b,146が配置されている。
図1(b)は、スマートデバイス50の本体にモジュールを取り付けた状態を正面側から見た外観図と、背面側から見た外観図である。
図1(b)に示すように、スマートデバイス50の本体の正面側及び背面側には、各機能を備えたモジュール150,200,300,350,400,500,600,700,800,900が取り付けられる。スマートデバイス50の本体の正面側の下部のスロット1300には、略全面にタッチ検知機能を有したLCDパネル312から成るモジュール(以下、表示操作モジュールと称する)300が装着されている。表示操作モジュール300の右側面には、スマートデバイス50の電源のONとOFFとを切り替える電源ボタン314aが形成されており、同じく表示操作モジュール300の左側面には、音量を調節する音量調節ボタン314bが形成されている。更に表示操作モジュール300には、スマートデバイス50が移動体無線通信機器として機能する際に、通話者の音声を検出するマイク318が設けられている。マイク318は、スマートデバイス50がビデオカメラとして機能する際に、動画の音声を収集する役割も担う。また、スマートデバイス50の本体の正面側の上部のスロット1000には、スピーカモジュール350が取り付けられている。スピーカモジュール350には、スマートデバイス50が移動体無線通信機器として機能する際に、受信した音声を出力するスピーカ部351が設けられている。このスピーカ部351は、その他に音楽や操作音を出力する。
一方、スマートデバイス50の本体の背面側には、スパイン102の左側の上部のスロット1500に、各種撮影機能を有する撮像モジュール500が、またスパイン102の右側の上部のスロット1600に、撮像モジュール600が装着されている。撮像モジュール500,600が装着されるスロットが略同一平面であり、これらのスロットに装着した場合に撮像モジュール500,600の光軸が略平行である場合、後述する複眼モードがユーザ選択可能なモードに設定される。これによって、撮像モジュール500,600はそれぞれの撮影範囲に同一の被写体をフレーミングすることが可能となり、後述する視差を用いて被写体距離を測定したり略同時に撮影したりする構成となるからである。また前述した通り、撮像モジュール500,600は、スマートデバイス50の本体への着脱手段と通信手段とが一定の規格を満足するように共通化されてはいるものの、それぞれのモジュールにおいては構成部品の配置が異なっている。
スパイン102の左側の上部のスロット1500に対して、その下部に形成されたスロット1700には、外部と無線でデータの送受信を行う無線LANモジュール700が装着されている。更にその下部のスロット1800には、スマートデバイス50の姿勢を検知する姿勢検知モジュール800が取り付けられている。姿勢検知モジュール800は、3軸のジャイロセンサから取得する角速度情報を利用することで、スマートデバイス50の姿勢を検知する。スパイン102の左側の下部のスロット1900には、TDMA、CDMA、LTE等の単数或いは複数の各種遠距離通信機能を有する移動体通信モジュール900が装着されている。スパイン102の右側の上部のスロット1600に対して、その下部に形成されたスロット1200には、スマートデバイス50全体の制御を行うアプリケーションプログラム制御モジュール200が装着されている。
ユーザがスマートデバイス50において利用を所望する機能を動作させるには、装着中の所定のモジュール専用のアプリケーションプログラムをアプリケーションプログラム制御モジュール200にインストールする必要がある。これにより、アプリケーションプログラム制御モジュール200を介することでスマートデバイス50においてその所望する機能を利用できる。例えば、移動体通信モジュール900専用の通話アプリケーションがインストールされている場合、アプリケーションプログラム制御モジュール200を介して移動体通信モジュール900を動作させて通話機能が利用可能となる。また、無線LANモジュール700専用のインターネット接続アプリケーションがインストールされている場合がある。この場合、アプリケーションプログラム制御モジュール200を介して無線LANモジュール700を動作させてインターネット接続によるウェブ閲覧機能が利用可能となる。また例えば、撮像モジュール500,600専用の撮影アプリケーションがインストールされている場合、アプリケーションプログラム制御モジュール200を介して撮像モジュール500,600を動作させて複眼カメラの機能を利用することができる。ここで、複眼カメラの機能とは画像の合成機能や測定機能を指す。
複眼カメラに期待される画像の合成機能としては、前述の特許文献1に記載された立体視モード、パノラマモード、パンフォーカスモード、ダイナミックレンジ拡大モード、シャローフォーカスモード、マルチズーム(高解像度)モードが含まれる。そして専用の撮影アプリケーションは、撮像モジュール500,600のそれぞれで任意に設定可能である。これらの合成機能は、撮像モジュール500,600の夫々の撮影条件を一致もしくは異ならせて同時撮影を行い、得られた2枚の画像データから1枚の画像を合成するものである。
また上述の撮影アプリケーションでは、測定機能として、前述の特許文献2に記載された測距技術が適用される。この機能は、撮像モジュール500,600により被写体を同時に撮影し、得られたステレオ画像を処理することで、被写体を三次元的に認識したり、被写体までの距離を計測したりするものである。尚、本発明はこうした複眼カメラの機能を限定するものではなく、またこれらは既に先行技術文献等により公知であるため、詳細な個別の説明は省略する。
スロット1200の下部のスロット1400には、スマートデバイス50に電力を供給する電源モジュール400が装着されている。更にスパイン102の右側の下部のスロット1100には、撮影した画像データなどの各種データを保存する記録モジュール150が取り付けられている。
図2は、スマートデバイス50の本体に取り付けられるモジュール150,200,300,350,400,500,600,700,800,900の外観図である。図2(a)は、スマートデバイス50の本体の正面側に取り付けられる表示操作モジュール300及びスピーカモジュール350を正面側から見た外観図と背面側から見た外観図である。図2(b)は、スマートデバイス50の本体の背面側に取り付けられる各モジュールを正面側から見た外観図と背面側から見た外観図である。前述のとおり、スマートデバイス50の本体の背面側には、図1(b)に示すように、スパイン102の左側に、撮像モジュール500、無線LANモジュール700、姿勢検知モジュール800、及び移動体通信モジュール900が取り付けられている。また、スパイン102の右側に、撮像モジュール600、アプリケーションプログラム制御モジュール200、電源モジュール400、及び記録モジュール150が取り付けられている。
図2(a)に示すように、表示操作モジュール300及びスピーカモジュール350の背面には、スマートデバイス50の本体に設けられたEPM163,160と対向する位置に、磁性体360,356が設けられている。ここで用いられる磁性体360,356の材質としては、保磁力が小さく透磁率が大きい軟磁性体が好ましく、本実施例では鉄・コバルト・バナジウムの軟磁性合金であるHIPERCOTM50が採用されている。以下説明する各磁性体においても同様の材質が採用される。
更に、スマートデバイス50の本体に設けられた本体側CMC143,140と対向する位置には、スマートデバイス50の本体とデータの送受信を行うモジュール側非接触通信手段(以下、モジュール側CMCと称する)340,354が設けられている。磁性体360,356とモジュール側CMC340,354とは、それぞれ隣接して表示操作モジュール300及びスピーカモジュール350に一対ずつ設けられている。
一方、図2(b)に示すように、撮像モジュール500の背面には、スマートデバイス50の本体に設けられたEPM165a,165bと対向する位置に、磁性体560a,560bが設けられている。また、撮像モジュール600の背面には、スマートデバイス50の本体に設けられたEPM166と対向する位置に、磁性体660aが設けられている。尚、撮像モジュール600の背面には磁性体660bも設けられているが、スマートデバイス50の本体にはこれと対向する磁性体が存在しない。このため、撮像モジュール600では磁性体660bは用いず、磁性体660aがEPM166と磁力で結合することによりスマートデバイス50の本体に装着される。
同様に、無線LANモジュール700の背面には、スマートデバイス50の本体に設けられたEPM167a,167bと対向する位置に、磁性体760a,760bが設けられている。また、姿勢検知モジュール800及び移動体通信モジュール900の背面には、スマートデバイス50の本体に設けられたEPM168,169と対向する位置に、磁性体860,960が設けられている。
更に、アプリケーションプログラム制御モジュール200の背面には、スマートデバイス50の本体に設けられたEPM162a,162bと対向する位置に、磁性体260a,260bが設けられている。また、電源モジュール400、及び記録モジュール150の背面には、スマートデバイス50の本体に設けられたEPM,164a,164b,161と対向する位置に、磁性体,460a,460b,156aが設けられている。尚、記録モジュール150の背面には磁性体156bも設けられているが、スマートデバイス50の本体にはこれと対向する磁性体が存在しない。このため、記録モジュール150では磁性体156bは用いず、磁性体156aがEPM161と磁力で結合することによりスマートデバイス50の本体に装着される。
本体側CMC145b,146,147b,148,149,142a,142b,144a,144b,141と対向する位置にモジュール側CMC540,640,740,840,940,240a,240b,440a,440b,154が設けられる。これらのモジュール側CMCにより、各モジュールはスマートデバイス50の本体とデータの送受信を行う。磁性体560b,660a,760b,860,960,260a,260b,460a,460b,156aとモジュール側CMC540,640,740,840,940,240a,240b,440a,440b,154はそれぞれ隣接して設けられる。このように、撮像モジュール500,600、無線LANモジュール700、姿勢検知モジュール800、移動体通信モジュール900、記録モジュール150には、それぞれ一対の磁性体及びモジュール側CMCが設けられている。また、アプリケーションプログラム制御モジュール200及び電源モジュール400は、それぞれ二対の磁性体及びモジュール側CMCが設けられている。
図3は、スマートデバイス50の本体に、モジュール150,200,300,350,400,500,600,700,800,900を取り付ける方法を示した説明図である。
ここで、図3(a)は、スマートデバイス50の本体の正面側に、表示操作モジュール300及びスピーカモジュール350を取り付ける方法を示した説明図である。また、図3(b)は、スマートデバイス50の本体の背面側に、撮像モジュール500、無線LANモジュール700、姿勢検知モジュール800、及び移動体通信モジュール900を取り付ける方法を示した説明図である。また、図3(b)では、スパイン102の右側に、撮像モジュール600、アプリケーションプログラム制御モジュール200、電源モジュール400、及び記録モジュール150を取り付ける方法も併せて示す。
図3(a)に示すように、表示操作モジュール300及びスピーカモジュール350は、スマートデバイス50の本体に対して、リブ101a〜cに沿って側面方向からスライドさせて取り付けられる。このとき、表示操作モジュール300及びスピーカモジュール350は、スマートデバイス50の本体の左側面、或いは右側面のどちら側からでも挿入することができる。
図3(b)に示すように、撮像モジュール500、無線LANモジュール700、姿勢検知モジュール800、移動体通信モジュール900は、スマートデバイス50の本体に対して、左側面からスライドさせて取り付けられる。左側面から各モジュールをスパイン102に突き当てることにより、スマートデバイス50の本体に対してモジュール500,700,800,900の位置が決定する。また、撮像モジュール600、アプリケーションプログラム制御モジュール200、電源モジュール400、記録モジュール150は、スマートデバイス50の本体に対して、右側面からスライドさせて取り付けられる。右側面から各モジュールをスパイン102に突き当てることにより、スマートデバイス50の本体に対してモジュール600,200,400,150の位置が決定する。
本実施例において、図3(b)のようにスマートデバイス50の本体の背面側に設けられたスロットは、サイズによって3種類に大別される。まずスロット1500,1600,1700,1100が同じ種類であり、例えば撮像モジュール500はこの4箇所のうち、どのスロットを選択して装着しても構わない。また最も大きいスロット1200,1400が同じ種類であり、例えばアプリケーションプログラム制御モジュール200はこの2箇所のうち、どちらのスロットを選択して装着しても構わない。同様に最も小さいスロット1800,1900が同じ種類であり、例えば姿勢検知モジュール800はこの2箇所のうち、どちらのスロットを選択して装着しても構わない。
図4は、スマートデバイス50の本体に設けられたEPM165bと、撮像モジュール500に設けられた磁性体560bとの磁力による結合を説明する模式図である。
ここで、図4(a)は、スマートデバイス50の本体と撮像モジュール500とが磁力による結合をしていない状態の部分拡大図である。また、図4(b)は、スマートデバイス50の本体と撮像モジュール500とが磁力による結合をしている状態の部分拡大図である。尚、図4は例としてEPM165bと磁性体560bとの組み合わせを示すものであるが、他のEPMと磁性体との組み合わせについても図4と同様である。
図4(a)に示すようにEPM165bは、極性が固定された永久磁石1651と永電磁石1652との両側面を、磁性体1653a,1653bによって連結・保持した構造となっている。ここで用いる永久磁石1651には、例えば磁束密度が非常に高いネオジム磁石などが適している。また永電磁石1652は、アルニコ等の硬磁性体からなる可逆性の永久磁石1654と、可逆性の永久磁石1654の周りに巻かれたコイル1655とから構成されている。コイル1655に電流を流すと、可逆性の永久磁石1654は一方向に着磁され、通電が終了した後もそのまま着磁状態を保持する。コイル1655に対する通電時間は1〜数秒程度であり、比較的短い時間である。こうして永電磁石1652は、コイル1655(極性変更手段)に流す電流の向きを変えることにより、極性が可変な永電磁石となる。
図4(a)に示す状態でコイル1655に対して通電すると、可逆性の永久磁石1654を着磁して、永電磁石1652は極性が固定された永久磁石1651の磁力線の向きと引き合う向きの磁力線を発生させる。その結果、永電磁石1652の磁力線と永久磁石1651の磁力線とが互いに閉じたループ形状となり、撮像モジュール500の磁性体560bを吸着しようとする磁力は非常に弱くなる。そのため撮像モジュール500は、EPM165bから吸着力を受けずに解放される。
一方図4(b)に示すように、図4(a)とは逆方向にコイル1655に対して通電すると、可逆性の永久磁石1654を着磁して、永電磁石1652は極性が固定された永久磁石1651の磁力線の向きと反発し合う向きの磁力線を発生させる。その結果、永電磁石1652の磁力線と永久磁石1651の磁力線とが互いに強め合って、撮像モジュール500に設けられた磁性体560bを吸着する磁力が非常に高まる。そのため撮像モジュール500は、EPM165bから吸着力を受けてスマートデバイス50の本体に固着される。このように本実施例では、着脱手段にEPMを採用することで、各モジュールの着脱の作業性と信頼性との両立を実現している。
図5は、複数のモジュール200〜600,800及びこれらが装着されたスマートデバイス50のハードウェア構成を示すブロック図である。
以下、図5を用いて、スマートデバイス50の本体、アプリケーションプログラム制御モジュール200、表示操作モジュール300、電源モジュール400、撮像モジュール500,600、及び姿勢検知モジュール800の構成を説明する。尚、スマートデバイス50の本体に装着可能なモジュールは多種多様であり、図5に示す組み合わせは単なる一例に過ぎず、本発明はその組み合わせを限定するものではない。
<スマートデバイス50の本体の構成>
スマートデバイス50の本体は、アプリケーションプログラム制御モジュール200による統括制御の下で、スマートデバイス50の本体に装着された各モジュールに関する制御を行う。スマートデバイス50の本体において、110はスマートデバイス50の本体全体を制御するシステム制御回路である。システム制御回路110は、カーネルやOSを実行させた環境で各種アプリケーションプログラムを実行する際、アプリケーションプログラム制御モジュール200が備えるアプリケーション制御回路210の指示や要求に応じて、協調動作を行う。そしてシステム制御回路110は、スマートデバイス50の本体と各モジュールとを連携して動作させることが可能となっており、アプリケーション制御回路210を介して各種サービス、機能を実行することが可能である。
112は、システム制御回路110が直接アクセスして読み書きを行うメモリである。114は、システム制御回路110の動作用の定数、変数、プログラム、各スロットの位置情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。ここで、各スロットの位置情報には、スマートデバイス50の本体の背面側に設けられたスロット1100,1200,1400,1500,1600,1700,1800,1900のそれぞれの位置情報が含まれる。この各スロットの位置情報は、各スロットにおいて、モジュールを装着した際にその位置を決定することになる、各リブ101a,c〜hやスパイン102の突き当て面の座標を特定するものである。尚、本実施例は各モジュールの位置決めを、リブ101a,c〜hとスパイン102への突き当てにより行っているが、本発明はこれに限定されるものではない。例えば、スマートデバイス50の本体に位置決め用の凸部を設け、各モジュールに凸部と嵌合する凹部を設けるなどしても良い。この場合、各スロットの位置情報には、位置決め用の凸部の位置情報が含まれることになる。
116は識別情報メモリであり、スマートデバイス50の本体が各モジュールと通信を行う際に必要な各種識別情報が格納されている。118は、スマートデバイス50の本体の所定箇所の温度を計測するための単数或いは複数の温度センサである。120は、システム制御回路110を介してスマートデバイス50の本体の各部に必要な所定の電圧・電流を供給する電源制御回路である。
122は、スマートデバイス50の本体の電源制御回路120及びコネクタ182〜186,188の電源端子に接続される電源バスである。コネクタ182〜186,188の電源端子は、それぞれ、各モジュールのコネクタ280,380,480,580,680,880の電源端子を介して、各モジュールの電源制御回路220,320,410,520,620,820と接続されている。
130はスイッチインターフェース回路であり、図5に示すように、本体側CMC142a,142b(不図示),143,144a,144b(不図示),145b,146,148を介して、各モジュールと接続する。これにより、各モジュールとスマートデバイス50の本体の間でデータやメッセージの高速な通信を切り替え中継する。本体側CMC142a,143,144a,145b,146,148は、誘導結合(インダクティブカップリング)方式により接触近接通信を行う。これにより、それぞれがこれに近接するモジュール側CMC240a,340,440a,540,640,840と高速通信を行う。尚、本体側CMCとこれに近接するモジュール側CMCとの組み合わせは、ユーザの意図に応じて適宜変更されるものであり、図5に示す組み合わせは単なる一例に過ぎない。
図5に示すように、スマートデバイス50は、EPM162a,162b(不図示),163,164a,164b(不図示),165a,165b(不図示),166,168を備える。これは、それぞれモジュールの磁性体260a,260b(不図示),360,460a,460b(不図示),560a,560b(不図示),660a,860を磁力制御により吸着或いは非吸着する。これにより、各モジュールをスマートデバイス50の本体のフレーム構造と各モジュールとの接続箇所において、固定(ロック)或いは解放(リリース)する。尚、スマートデバイス50の本体側の各EPMとこれに接続するモジュール側の磁性体との組み合わせは、ユーザの意図に応じて適宜変更されるものであり、図5に示す組み合わせは単なる一例に過ぎない。
コネクタ182〜186,188は、それぞれモジュールのコネクタ280,380,480,580,680,880と接続する。これにより、電源関係(パワーバス、グラウンド)の端子群を、スマートデバイス50の本体と各モジュール間で相互に使用可能とする。更に、モジュールの装着を示す検出(Detect)信号の端子、モジュールのスリープ解除を示す起動(Wake)信号の端子、アンテナの配線をつなぐRF信号の端子などの各機能についても同様に、相互に使用可能とするものである。ここで本実施例におけるコネクタ182〜186,188は、スマートデバイス50の本体のリブ101a〜hやスパイン102の側面部に形成された一般的な小型の金属端子であるが、図1〜3に示す位置からは視認できないため不図示とする。尚、コネクタ182〜186,188と、これに接続するモジュール側のコネクタの組み合わせは、ユーザの意図に応じて適宜変更されるものであり、図5に示す組み合わせは単なる一例に過ぎない。
<アプリケーションプログラム制御モジュール200の構成>
アプリケーションプログラム制御モジュール200は、アプリケーション制御回路210の動作により、スマートデバイス50の本体とこれに装着された各モジュールを含めた全体システムを統括制御する。例えばアプリケーション制御回路210は、表示操作モジュール300が備える表示操作制御回路310を介して、表示部であるLCDパネル312を制御し、各種情報の表示を行うことが可能である。またアプリケーション制御回路210は、表示操作モジュール300が備える表示操作制御回路310を介して、操作入力手段であるタッチパネル及び操作ボタン(以下「TP/ボタン」という)314に対する操作入力情報を取得することができる。そして、その操作入力内容に応じて、カーネルのサービスやOSのサービス、各種アプリケーションプログラムによる処理を実行させることが可能である。
212は、アプリケーション制御回路210が直接アクセスして読み書きを行うメモリである。214は、アプリケーション制御回路210の動作用の定数、変数、プログラム等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。216は識別情報メモリであり、アプリケーションプログラム制御モジュール200がスマートデバイス50の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。220は、アプリケーションプログラム制御モジュール200の各部に必要な所定の電圧・電流を供給する電源制御回路である。222は、アプリケーションプログラム制御モジュール200の所定箇所の温度を計測するための単数或いは複数の温度センサである。230はインターフェース回路であり、モジュール側CMC240aを介して、スマートデバイス50の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
290は、各専用アプリケーションプログラムを実行する上で必要となる複数の管理ファイルの情報を記憶した管理テーブルである。管理ファイルの情報には、各専用アプリケーションプログラムを実行する際に不可欠なモジュールの種類や、所望の機能を最大限に活用できる該当モジュールの組み合わせや、該当モジュールを装着するのに最適な各スロットの位置関係などが含まれる。また本実施例は、管理ファイルの情報として、各専用アプリケーションプログラムに必須ではないものの、機能追加に有効なモジュールの種類などを含んでおり、ユーザに多くの選択肢を提供することで利便性を高めている。こうした管理ファイルの情報は、アプリケーション制御回路210が、管理テーブル290から取得する。尚、本発明はこの構成に限定されるものではなく、管理ファイルの情報はメモリ212や不揮発性メモリ214に記憶させても良い。この場合の管理ファイルの情報は、アプリケーション制御回路210が、メモリ212や不揮発性メモリ214から取得することになる。
<表示操作モジュール300の構成>
表示操作モジュール300は、アプリケーションプログラム制御モジュール200による統括制御の下で、スマートデバイス50の本体の制御により、各種情報の表示、操作入力の取得を行う。表示操作モジュール300において、310は表示操作モジュール300全体を制御する表示操作制御回路である。表示操作モジュール300の表示部としては、LCD、OLED、LED等の表示デバイスを採用することができるが、本実施例はLCDパネル312を採用している。表示操作モジュール300の操作入力手段としては、タッチパネル(TP)、操作ボタン等の操作デバイスを独立して構成しても一体として構成してもよいが、本実施例では、独立して構成されるTP/ボタン314を採用している。
LCDパネル312は、アプリケーションプログラム制御モジュール200のアプリケーション制御回路210の指示に応じて、表示操作制御回路310によりユーザに対する各種情報の表示を行う。また、TP/ボタン314へのユーザによるタッチパネル操作やボタン操作等の入力操作と、マイク318が検出した音声信号とは、表示操作制御回路310を介して、アプリケーション制御回路210に伝達される。
316は識別情報メモリで、表示操作モジュール300がスマートデバイス50の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。320は、表示操作モジュール300の各部に必要な所定の電圧・電流を供給する電源制御回路である。322は、表示操作モジュール300の所定箇所の温度を計測するための単数或いは複数の温度センサである。330はインターフェース回路であり、モジュール側CMC340を介して、スマートデバイス50の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
<電源モジュール400の構成>
電源モジュール400は、アプリケーションプログラム制御モジュール200による統括制御の下で、スマートデバイス50の本体の電源バス122を介して電池420の放電・充電を行う。電源モジュール400において、410は電池420の放電・充電制御を含め、電源モジュール400全体を制御する電池制御回路であり、電源モジュール400の各部に必要な所定の電圧・電流を供給する。416は識別情報メモリであり、電源モジュール400がスマートデバイス50の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。
電池420には、Li−ion電池、燃料電池等が該当する。電池420は、電池制御回路410によりコネクタ480を介して、スマートデバイス50の本体及び各モジュールに対して放電すると共に、スマートデバイス50の本体及び不図示の充電モジュールから充電される。422は、電源モジュール400の所定箇所の温度を計測するための単数或いは複数の温度センサである。430はインターフェース回路であり、モジュール側CMC440aを介して、スマートデバイス50の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
<撮像モジュール500の構成>
撮像モジュール500は、アプリケーションプログラム制御モジュール200による統括制御の下で、スマートデバイス50の本体によって制御され、所望の撮像処理を行うモジュールとしての撮像装置である。撮像モジュール500において510は、光軸上に光学レンズを複数配置したカメラである。更にカメラ510は、通過する光量を調節する絞り機構と、光軸方向に少なくとも一枚の光学レンズを移動させて焦点調節を行うAF機構と、これらの構成部品を内部に収納するレンズ鏡筒とで構成されている。またカメラ510は、光電変換により画像データを得る撮像センサと、画像データを処理する画像処理回路と、各機構を制御する駆動制御回路とを備える。
カメラ510は、絞りやシャッター速度や撮像センサの感度を最適に設定する自動露出調節(AE)、被写体距離に応じた自動焦点調節(AF)、色温度を調節して適正な色調を再現する自動ホワイトバランス(AWB)などの制御を実現する。他にも本実施例は、姿勢検知モジュール800で取得した角速度情報から手ブレを算出し、撮像センサ上で切り出した露光範囲を追従させることで、簡易的に手ブレ補正(IS)を行うことが可能である。尚、本発明はこうした撮像装置の一般的な制御方法を限定するものではなく、またこれらは既に先行技術文献等により公知であるため、詳細な個別の説明は省略する。
カメラ510への指示は、アプリケーション制御回路210で実行されるアプリケーションプログラムや、表示操作モジュール300の操作入力手段であるTP/ボタン314に対する入力に応じて行われる。カメラ510により取得した画像データは、アプリケーション制御回路210が、スマートデバイス50の本体と表示操作モジュール300とを制御することで、LCDパネル312に表示可能となる。
516は識別情報メモリで、撮像モジュール500がスマートデバイス50の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。520は、撮像モジュール500の各部に必要な所定の電圧・電流を供給する電源制御回路である。
522は、カメラ510の動作用の定数、変数、構成部品の位置情報、光軸の誤差情報、レンズの誤差情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。ここでいう構成部品の位置情報には、撮像モジュール500の外形から見た光軸の座標情報が含まれている。前述のように、撮像モジュール500は、スマートデバイス50の本体に対してその外形を突き当てることで位置が決定される。尚、本実施例は撮像モジュール500の位置決めを、スマートデバイス50の本体のリブ101a〜hとスパイン102への突き当てにより行っているが、本発明はこれに限定されるものではない。例えば、スマートデバイス50の本体に位置決め用の凸部を設け、撮像モジュール500に凸部と嵌合する凹部を設けるなどしても良い。この場合、構成部品の位置情報には、凸部と嵌合する凹部から見た光軸の座標情報が含まれることになる。
また光軸の誤差情報には、詳しくは後述するが、例えば部品や組立の精度により製造誤差として生じる、カメラ510の光軸の傾きの誤差が含まれる。一方レンズの誤差情報には、例えば製造誤差として生じる焦点距離の誤差やF値の誤差、歪曲、光軸を回転中心とする撮像センサの角度誤差などが含まれる。こうした製造誤差に関する情報を不揮発性メモリ522に記憶させることで、アプリケーション制御回路210の処理においてこれらの誤差を補正することが可能となる。ひいては、後述する複眼カメラの機能を利用する際に画像の合成機能や測定機能の精度を高めることができる。
530はインターフェース回路であり、モジュール側CMC540を介して、スマートデバイス50の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
<撮像モジュール600の構成>
撮像モジュール600は、アプリケーションプログラム制御モジュール200による統括制御の下で、スマートデバイス50の本体によって制御され、所望の撮像処理を行うモジュールとしての撮像装置である。撮像モジュール600において610は、光軸上に光学レンズを複数配置したカメラである。更にカメラ610は、通過する光量を調節する絞り機構と、光軸方向に少なくとも一枚の光学レンズを移動させて焦点調節を行うAF機構と、これらの構成部品を内部に収納するレンズ鏡筒とで構成されている。またカメラ610は、光電変換により画像データを得る撮像センサと、画像データを処理する画像処理回路と、各機構を制御する駆動制御回路とを備える。こうしたカメラ610の構成部品は、前述のカメラ510と同様である。しかしながら、撮像モジュール600におけるカメラ610の配置や形状は、撮像モジュール500におけるカメラ510の配置や形状とは異なっている。
カメラ610は、カメラ510と同様の制御を実現する。具体的には、絞りやシャッター速度や撮像センサの感度を最適に設定する自動露出調節(AE)、被写体距離に応じた自動焦点調節(AF)、色温度を調節して適正な色調を再現する自動ホワイトバランス(AWB)などの制御を実現する。他にも本実施例は、姿勢検知モジュール800で取得した角速度情報から手ブレを算出し、撮像センサ上で切り出した露光範囲を追従させることで、簡易的に手ブレ補正(IS)を行うことが可能である。尚、本発明はこうした撮像装置の一般的な制御方法を限定するものではなく、またこれらは既に先行技術文献等により公知であるため、詳細な個別の説明は省略する。
カメラ610への指示は、アプリケーション制御回路210で実行されるアプリケーションプログラムや、表示操作モジュール300の操作入力手段であるTP/ボタン314に対する入力に応じて行われる。カメラ610により取得した画像データは、アプリケーション制御回路210が、スマートデバイス50の本体と表示操作モジュール300とを制御することで、LCDパネル312に表示可能となる。
616は識別情報メモリで、撮像モジュール600がスマートデバイス50の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。620は、撮像モジュール600の各部に必要な所定の電圧・電流を供給する電源制御回路である。
622は、カメラ610の動作用の定数、変数、構成部品の位置情報、光軸の誤差情報、レンズの誤差情報等を記憶し、電気的に消去・記録可能な不揮発性メモリであり、例えばフラッシュメモリ等が用いられる。ここでいう構成部品の位置情報には、撮像モジュール600の外形から見た光軸の座標情報が含まれている。前述のように、撮像モジュール600は、スマートデバイス50の本体に対してその外形を突き当てることで位置が決定される。尚、本実施例は撮像モジュール600の位置決めを、スマートデバイス50の本体のリブ101a〜hとスパイン102への突き当てにより行っているが、本発明はこれに限定されるものではない。例えば、スマートデバイス50の本体に位置決め用の凸部を設け、撮像モジュール600に凸部と嵌合する凹部を設けるなどしても良い。この場合、構成部品の位置情報には、凸部と嵌合する凹部から見た光軸の座標情報が含まれることになる。
また光軸の誤差情報には、詳しくは後述するが、例えば部品や組立の精度により製造誤差として生じる、カメラ610の光軸の傾きの誤差が含まれる。一方レンズの誤差情報には、例えば製造誤差として生じる焦点距離の誤差やF値の誤差、歪曲、光軸を回転中心とする撮像センサの角度誤差などが含まれる。こうした製造誤差に関する情報を不揮発性メモリ622に記憶させることで、アプリケーション制御回路210の処理においてこれらの誤差を補正することが可能となる。ひいては、後述する複眼カメラの機能を利用する際に画像の合成機能や測定機能の精度を高めることができる。
630はインターフェース回路であり、モジュール側CMC640を介して、スマートデバイス50の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。
<姿勢検知モジュール800の構成>
姿勢検知モジュール800は、アプリケーションプログラム制御モジュール200による統括制御の下で、スマートデバイス50の本体によって制御され、スマートデバイス50の姿勢を検知する。姿勢検知モジュール800において、810は3軸のジャイロセンサから角速度情報を取得するジャイロセンサである。816は識別情報メモリであり、姿勢検知モジュール800がスマートデバイス50の本体及び各モジュールと通信を行う際に必要な各種識別情報が格納されている。820は、姿勢検知モジュール800の各部に必要な所定の電圧・電流を供給する電源制御回路である。822は、姿勢検知モジュール800の所定箇所の温度を計測するための単数或いは複数の温度センサである。
830はインターフェース回路であり、モジュール側CMC840を介して、スマートデバイス50の本体及び各モジュールとのデータやメッセージの高速な通信を中継する。インターフェース回路830は、ジャイロセンサ810で取得した角速度情報を、スマートデバイス50の本体に送信する。そこから更に、スマートデバイス50の本体は、アプリケーションプログラム制御モジュール200にデータを高速で転送する。こうして、姿勢検知モジュール800の角速度情報は、表示操作モジュール300における表示方向の切り替えや、撮像モジュール500,600に対する手ブレ補正などに用いられる。
<アプリケーションプログラム制御モジュール200の動作説明>
図6は、アプリケーションプログラム制御モジュール200により実行される、複数のモジュールが装着されたスマートデバイス50の動作制御処理の手順を示すフローチャートである。
図6の処理は、アプリケーションプログラム制御モジュール200とスマートデバイス50の本体と表示操作モジュール300とが低消費電力状態であって、表示操作モジュール300の電源ボタン314aへのユーザ操作があったときに開始する。
かかるユーザ操作があると、表示操作制御回路310は、アプリケーション制御回路210へ向けてスリープ解除を示す起動(Wake)信号を送信する。アプリケーション制御回路210は、表示操作制御回路310からの起動(Wake)信号を受信すると、ステップS1100において初期設定を実行する。また本実施例は、スマートデバイス50の本体に装着される全てのモジュールのコネクタ部に検出(Detect)信号の端子が設けられている。これにより、例えば空いているスロットに対して新たなモジュールを装着した際も同様に、検出(Detect)信号が送信されてステップS1100に移行する。
ステップS1100において、アプリケーション制御回路210は、所定のフラグや制御変数等をリセットして初期化すると共に、アプリケーションプログラム制御モジュール200の各部の初期化を行う。続いて、アプリケーション制御回路210は、不揮発性メモリ214から読み出したソフトウェアプログラムを実行して、カーネル起動とOS起動を順次行う。その後、インターフェース回路230、モジュール側CMC240a、本体側CMC142a、スイッチインターフェース回路130を介して、スマートデバイス50の本体のシステム制御回路110との通信の初期化を行う。システム制御回路110の初期化によってスマートデバイス50の本体に装着される全てのモジュールは動作可能な状態となる。これにより、例えば表示操作モジュール300において、表示操作制御回路310は、表示部であるLCDパネル312に所定の起動画面を表示させる。そして表示操作モジュール300は、操作入力手段であるTP/ボタン314に対するユーザの入力指示が可能な状態に至る。
ステップS1100を終えると、ステップS1101に進み、アプリケーション制御回路210は、ステップS1101において終了メッセージを受信したか否かを判断する。この終了メッセージは、表示操作制御回路310において以下のような形でアプリケーション制御回路210に送信される。まず、表示部であるLCDパネル312に終了ボタンを表示すると共に、この終了ボタンをTP/ボタン314でユーザ選択できる状態とする。その後、この終了ボタンがユーザ選択されたとき、表示操作制御回路310は、アプリケーション制御回路210に終了メッセージを送信する。
ステップS1101で終了メッセージを受信したと判断した場合、ステップS1120に進む。ステップS1120で、アプリケーション制御回路210は終了処理を行なう。具体的には、アプリケーション制御回路210は、システム制御回路110に終了メッセージを送信した後、フラグや制御変数等を必要に応じて不揮発性メモリ214に退避する。それと共に、OS及びカーネルを低消費電力で動作する動作終了状態に移行する。そして、電源制御回路220を介したアプリケーションプログラム制御モジュール200とスマートデバイス50の本体と表示操作モジュール300とへの電力供給を、低消費電力の設定に変更する。システム制御回路110は、終了メッセージを受信すると、アプリケーションプログラム制御モジュール200とスマートデバイス50の本体、表示操作モジュール300以外のモジュールの全ての動作を停止する処理を行う。
ステップS1120の終了処理を終えた後、アプリケーション制御回路210は、本処理を終了し、所謂電源OFFの状態に至る。
ステップS1101で、終了メッセージを受信しなかった場合、ステップS1102に進む。ステップS1102において、アプリケーション制御回路210は、表示操作モジュール300の表示操作制御回路310からスリープ状態に移行するスリープメッセージを受信したかどうかを判断する。このスリープメッセージは、表示操作制御回路310において以下のような形でアプリケーション制御回路210に送信される。まず、表示部であるLCDパネル312にスリープボタンを表示すると共に、このスリープボタンをTP/ボタン314でユーザ選択できる状態とする。その後、このスリープボタンがユーザ選択されたとき、表示操作制御回路310は、アプリケーション制御回路210にスリープ状態に移行するスリープメッセージを送信する。
ステップS1102で、スリープ状態に移行するスリープメッセージを受信したと判断した場合、ステップS1103に進む。ステップS1103において、アプリケーション制御回路210はスリープ処理を行なう。具体的には、アプリケーション制御回路210は、システム制御回路110にスリープメッセージを送信した後、フラグや制御変数等を必要に応じて不揮発性メモリ214に退避する。それと共に、OS及びカーネルを低消費電力で動作するスリープ動作状態に移行する。そしてシステム制御回路110は、スリープメッセージを受信すると、スマートデバイス50の全てのモジュールの動作をスリープ状態に移行する処理を行った後、ステップS1104に進む。
尚、ステップS1100で初期設定がされると、表示操作モジュール300のLCDパネル312には、上述した終了ボタン、スリープボタンの他、後述するリリースボタン、アプリ実行ボタンが表示される。これらのボタンのいずれもLCDパネル312に表示されてから所定時間が経過するまでにユーザ選択されない場合がある。また、本処理の開始時に表示操作モジュール300の電源ボタン314aへのユーザ操作があった後、表示操作制御回路310から送信される起動(Wake)信号が所定の時間を経過しても受信されない場合がある。このような場合、スリープメッセージを受信したのと同じようにステップS1103に進む。更に、ステップS1102において、アプリケーション制御回路210は、後述する処理による入力指示や起動(Wake)信号が最後に受信されたタイミングから経過した時間を積算する。この積算した時間を所定値と比較した結果、積算時間のほうが長ければスリープ状態に移行する。その後のスリープ処理については、前述した通りである。
ステップS1104において、アプリケーション制御回路210は、コネクタ280を介して、各モジュールから送信される起動(Wake)信号を受信したかどうか判断する。ステップS1104で起動(Wake)信号を受信しなかったならば、起動(Wake)信号を受信するまでスリープ動作状態を継続する。ここで、本実施例におけるスリープ動作状態とは、前述した電源OFFの状態とは異なる。例えば、移動体通信モジュール900が移動体通信の規格に準じた呼び出し信号を受信した際、アプリケーション制御回路210は、直ちにスマートデバイス50をスリープ動作状態から所定のアプリ実行状態へと移行させる。尚、こうした移動体無線通信システムの一般的な制御については、既に公知であるため詳しい説明を省略する。
ステップS1104で起動(Wake)信号を受信したならば、ステップS1105に進む。ステップS1105において、アプリケーション制御回路210は、フラグや制御変数等を必要に応じて不揮発性メモリ214から戻す。それと共に、OS及びカーネルを通常消費電力で動作する通常動作状態に移行し、電源制御回路220を介したスマートデバイス50の全てのモジュールへの電力供給を通常消費電力の設定に変更する復帰処理を行う。更にステップS1105において、アプリケーション制御回路210は、スマートデバイス50の本体のシステム制御回路110との通信の復帰処理を行う。このときシステム制御回路110は、アプリケーション制御回路210以外の全てのモジュールに対して復帰処理を行い、スマートデバイス50を通常動作状態に移行させて、ステップS1101に戻る。
ステップS1102でスリープ状態に移行するスリープメッセージを受信しなかった場合、ステップS1106に進む。ステップS1106において、アプリケーション制御回路210は、表示操作モジュール300の表示操作制御回路310からリリースメッセージを受信したかどうかを判断する。このリリースメッセージは、表示操作制御回路310において以下のような形でアプリケーション制御回路210に送信される。まず、表示操作制御回路310は、表示部であるLCDパネル312にリリースボタンを表示すると共に、このリリースボタンをTP/ボタン314でユーザ選択できる状態とする。その後、このリリースボタンがユーザ選択され、更に、どのモジュールの取り外しを行うかのユーザ指示が入力された場合、表示操作制御回路310は、アプリケーション制御回路210にリリース状態に移行するリリースメッセージを送信する。
ステップS1106でリリース状態に移行するリリースメッセージを受信したと判断した場合、ステップS1107に進む。ステップS1107において、アプリケーション制御回路210は、ユーザが取り外しを意図するモジュールに対して、正常に機能を終了させてEPMを解放するためのリリース処理を実行する。リリース処理の詳細は、図7を用いて後述する。ステップS1107を終了すると、ステップS1101に戻る。
ステップS1106で、リリース状態に移行するリリースメッセージを受信しなかった場合、ステップS1108に進む。ステップS1108において、アプリケーション制御回路210は、各モジュールの検出(Detect)信号を受信したかどうかを判断する。ここで検出(Detect)信号とは、スマートデバイス50の本体に対して新たにモジュールが装着されたことを検出する信号である。また、この検出信号は、その新たに装着されたモジュールからシステム制御回路110を介してアプリケーション制御回路210に送信される電気信号のことである。
ステップS1108で検出(Detect)信号を受信したならば、ステップS1109に進む。ステップS1109において、アプリケーション制御回路210は、スマートデバイス50の本体に挿入された該当モジュールを固定し適切に機能させるためのモジュール設定処理を実行する。モジュール設定処理の詳細は、図8を用いて後述する。ステップS1109を終了すると、ステップS1101に戻る。
ステップS1108で検出(Detect)信号を受信しなかったと判断した場合、ステップS1110に進む。ステップS1110において、アプリケーション制御回路210は、表示操作モジュール300の表示操作制御回路310から、アプリケーションプログラム関係メッセージを受信したかどうかを判断する。このアプリケーションプログラム関係メッセージは、表示操作制御回路310において以下のような形でアプリケーション制御回路210に送信される。まず、表示操作制御回路310は、表示部であるLCDパネル312にアプリ実行ボタンを表示すると共に、このアプリ実行ボタンをTP/ボタン314でユーザ選択できる状態とする。その後、このアプリ実行ボタンがユーザ選択され、更に、どのアプリケーションプログラムを実行するかユーザ入力された場合、表示操作制御回路310は、アプリケーション制御回路210にアプリケーションプログラム関係メッセージを送信する。
ステップS1110でアプリケーションプログラム関係メッセージを受信したと判断した場合、ステップS1111に進み、アプリケーション制御回路210は、ステップS1111でアプリケーションプログラム実行処理を実行する。本実施例で想定されるアプリケーションプログラムには、各モジュールの組み合わせによって実現され得る様々な機能が含まれる。例えば、移動体通信モジュール900と表示操作モジュール300の組み合わせにより通話機能が可能となり、無線LANモジュール700と表示操作モジュール300の組み合わせによりインターネット接続を介したウェブ閲覧が可能となる。また例えば、撮像モジュール500のみによって一般的な撮影機能が実現され、そこへ撮像モジュール600を組み合わせることによって複眼カメラの機能である画像の合成機能や測定機能が実現される。こうしたアプリケーションプログラムの一例である撮影アプリケーション実行処理の詳細は、図9を用いて後述する。ステップS1111を終了すると、ステップS1101に戻る。
ステップS1110でアプリケーションプログラム関係メッセージを受信しなかったと判断した場合、ステップS1101に戻る。
図7は、図6のステップS1107のリリース処理の詳細な手順を示すフローチャートである。
図7において、まずステップS1201で、アプリケーション制御回路210は、システム制御回路110にユーザにより取り外し指示を受けたモジュール(以下「リリース対象モジュール」という)の機能の終了を指示するメッセージを送信する。次にステップS1202に進み、アプリケーション制御回路210は、システム制御回路110から送信される、リリース対象モジュールのモジュール情報が更新されていることを通知する情報更新メッセージを受信したかどうかを判断する。
ステップS1202で情報更新メッセージを受信しなかったと判断した場合、アプリケーション制御回路210は、ステップS1203で所定のエラー処理を行う。その後、ステップS1205においてEPMを制御することにより、リリース対象モジュールのロック状態を解除して本処理を終了する。ステップS1203のエラー処理では、表示操作モジュール300などにエラー内容を表示してユーザに通知しても良い。
ステップS1202で情報更新メッセージを受信したと判断した場合、ステップS1204に進む。ステップS1204において、アプリケーション制御回路210は、受信した情報更新メッセージの内容に応じて、OS及びカーネルが管理する不揮発性メモリ214及びメモリ212の所定領域に格納された管理情報を更新する。ここでいう管理情報とは、モジュール管理情報、EPM制御管理情報、RFバス構成管理情報を含む。その後、ステップS1215においてEPMを制御することにより、リリース対象モジュールのロック状態を解除して本処理を終了する。
図8は、図6のステップS1109の装着処理の詳細な手順を示すフローチャートである。
図8において、まずステップS1301で、アプリケーション制御回路210は、システム制御回路110と共にメッセージ通信のコネクションセットアップを行い、システム制御回路110とのネットワークリンクを確立する。次にステップS1302に進み、アプリケーション制御回路210は、システム制御回路110を介してスマートデバイス50の本体に装着されたモジュール(以下「装着モジュール」という)から初期化などのモジュール情報を取得する。更にステップS1303に進み、アプリケーション制御回路210は、ステップS1302で取得したモジュール情報が、スマートデバイス50において問題の無い内容かどうかを検証する。例えば、安定した通信が可能か、既に装着されている電源モジュール400の電圧で動作可能か、またその他にも、スマートデバイス50に個別で設定されている規格がある場合にはそれを満足しているか等が検証される。
ステップS1303で検証した結果に問題があれば、アプリケーション制御回路210は、ステップS1304で所定のエラー処理を行った後、装着モジュールに対して本処理を終了する。エラー処理では、表示操作モジュール300などにエラー内容などを表示してユーザに通知しても良い。
一方、ステップS1303で検証した結果に問題が無ければ、装着モジュールが正常であると判断し、ステップS1305に進む。ステップS1305において、アプリケーション制御回路210は、初期化を行う装着モジュールのモジュール情報に基づき、不揮発性メモリ214及びメモリ212の所定領域に格納された管理情報を更新する。ここでいう管理情報とは、モジュール管理情報、EPM制御管理情報、RFバス構成管理情報を含む。
次にステップS1306において、アプリケーション制御回路210は、システム制御回路110に初期化を行う装着モジュールのEPMロック指示メッセージを送信する。これにより、スマートデバイス50の本体と初期化を行う装着モジュールとが、EPMにより固定されてロック状態となる。
続いて、ステップS1307でアプリケーション制御回路210は、システム制御回路110に向けて通信開始指示メッセージを送信し、一連の初期化処理を行った装着モジュールとのメッセージ通信が可能になったことを通知する。その後、ステップS1308において、状態変化フラグをONに切り替えて、本処理を終了する。ここでいう状態変化フラグとは、各モジュールに割り付けられて不揮発性メモリ214に保持されるフラグであり、各モジュールの状態変化の有無によりONとOFFとが切り替えられる再処理フラグである。状態変化フラグがONとなるのは、各モジュールの状態変化フラグがOFFの状態において、スマートデバイス50の本体に装着された各モジュールの状態が変化した時である。尚、状態の変化としては、各モジュールの装着の他に、外部からの衝撃、電池残量の変化、故障、性能の劣化などが含まれる。また、スマートデバイス50の本体にある温度センサ118により計測された温度変化が一定の閾値を超えた場合や、図5において不図示の湿度センサにより計測された湿度変化が一定の閾値を超えた場合は、すべてのモジュールの状態変化フラグがONとなる。
本処理の結果、装着モジュールが正常であり(ステップS1303でYES)、更に装着モジュールがロック状態となったときに(ステップS1306)、装着モジュールの機能がスマートデバイス50において利用可能な状態となる。
尚、本発明の装着処理は図8に示す手順に限定されるわけでない。例えば、各通信を安定させるため、EPMによる装着モジュールのロックをステップS1301の前に行っても良く、その場合はステップS1304の後にロック解除を行うことになる。
図9は、図6のステップS1111のアプリケーションプログラム実行処理の一例である撮影アプリケーション実行処理の動作フローを示すフローチャートである。
図9において、まずステップS1401で表示操作モジュール300の操作入力により撮影アプリケーションを立ち上げると、アプリケーション制御回路210は、管理テーブル290から撮影アプリケーションの管理ファイルの情報を取得する。この情報には、撮影アプリケーションを実行するのに不可欠なモジュールの種類や、撮影機能を最大限に活用できる該当モジュールの組み合わせや、該当モジュールを装着するのに最適な各スロットの位置関係が含まれる。
次にステップS1402に進み、アプリケーション制御回路210は、システム制御回路110を介して各モジュールからモジュール情報を取得する。そしてステップS1403において、撮像アプリケーションの管理ファイルの情報に基づき、必要なモジュールが装着されているか、その組み合わせに問題がないか等を検証する。
ステップS1403で検証した結果に問題があれば、アプリケーション制御回路210は、ステップS1404で所定のエラー処理を行った後、本撮影アプリケーション実行処理を終了する。エラー処理では、表示操作モジュール300などにエラー内容などを表示してユーザに通知しても良い。例えば、ステップS1402の時点でいずれのスロットにも撮像モジュールが装着されておらず、撮像アプリケーションを実行できない場合は、ステップS1404のエラー処理においてエラー内容を通知し、本撮影アプリケーション実行処理を終了する。またその他に、装着された撮像モジュール500に手ブレ補正(IS)の機能が備わっているにも関わらず、例えば姿勢検知モジュール800が装着されていないために手ブレを検知できない場合がある。この場合は、ステップS1404のエラー処理において撮影機能の一部を制限する。この場合は、本撮影アプリケーション実行処理を終了する必要はなく、エラー内容の通知に対してユーザの操作入力等があれば、状況に応じてステップS1405の撮影実行処理に移行しても良い。
ステップS1403で検証した結果に問題が無ければ、ステップS1405に進んで撮影実行処理を行う。その後、アプリケーション制御回路210は、撮像アプリケーションに必要な各モジュールの動作を停止し、本処理を終了する。撮影実行処理の詳細は、図10を用いて後述する。
図10は、図9のステップS1405において実行される撮影実行処理の手順を示すフローチャートである。
図10のステップS1501で、アプリケーション制御回路210は、モジュール起動指示のメッセージをシステム制御回路110に送信する。システム制御回路110を介してこの撮像モジュール起動指示のメッセージを受信すると、装着されている撮像モジュール(本実施例では、撮像モジュール500,600)はリセット動作を行って撮影準備を完了させる。
次にステップS1502において、図9のステップS1402で取得したモジュール情報から、アプリケーション制御回路210は、撮像モジュールが複数装着されているかどうかを判断する。撮像モジュールが一つのみであった場合はステップS1503に進む。例えば撮像モジュール500のみが装着されている場合、アプリケーション制御回路210が、そのカメラ510を利用して単眼モードの一般的な撮影を実行し、ステップS1510に進む。ここでいう一般的な撮影とは、自動露出(AE)、自動焦点調節(AF)、自動ホワイトバランス(AWB)、手ブレ補正(IS)等の制御を行いつつ、撮像センサから所望の画像データを取得することである。尚、本発明はこうした一般的な撮影の内容を限定するものではなく、またこれらは既に先行技術文献等により公知であるため、詳細な説明は省略する。
ステップS1502で、撮像モジュールが複数装着されていると判断した場合は、ステップS1504に進む。ステップS1504において、アプリケーション制御回路210は、装着されている各撮像モジュールの状態が変化したかどうかを検知するため、状態変化フラグがONとなっているかどうかを判断する。このとき、状態変化フラグが全てOFFであればステップS1508に進む。このとき、例えば撮像モジュール500,600が装着され、且つ複眼モードでの撮影のユーザ指示があった場合、ステップS1508のAF切り替え処理を行なう。その後、アプリケーション制御回路210が、そのカメラ510,610を介して複眼モードの撮影を実行した後、本処理を終了する。前述のように、複眼カメラの機能には、画像の合成機能や測定機能が含まれる。
ステップS1504の判断の結果、装着されている撮像モジュール(例えば撮像モジュール500,600)のいずれかの状態変化フラグがONとなっていた場合、ステップS1505に進む。
ステップS1505では、そのカメラ510,610の光軸間の距離である基線長の情報を取得する。具体的には、アプリケーションプログラム制御モジュール200に設けられた管理テーブル290から、撮像モジュール500,600が装着された各スロット1500、1600の位置関係に対応した値を基線長の情報として取得する。
続いてステップS1506において、アプリケーション制御回路210は、ステップS1505で取得した基線長の情報に基づき、不揮発性メモリ214及びメモリ212の所定領域に格納された管理情報を更新する。ここでいう管理情報とは、ステップS1505で新たに得た基線長の情報以外に、モジュール管理情報、EPM制御管理情報、RFバス構成管理情報を含む。
その後、ステップS1507へ進み、アプリケーション制御回路210はステップS1504でONとなっていると判断された状態変化フラグをOFFに切り替える。ここで状態変化フラグがONとなるタイミングとは、例えば図8の装着処理におけるステップS1308で新たなモジュールをスマートデバイス50の本体に対して装着した時である。一方、状態変化フラグがOFFとなるタイミングとは、例えば、ステップS1507のように、管理ファイルを最新の状態に更新した直後である。このように、適切なタイミングで状態変化フラグのONとOFFとを切り替えることにより、本実施例ではモジュールの状態変化が常に管理される。
続いてステップS1508に進み、アプリケーション制御回路210が、状況に応じてAF制御方式を位相差AF制御とコントラストAF制御かを選択するAF切り替え処理を実行する。AF切り替え処理の詳細は図11において説明する。尚、図11のAF切り替え処理は、複眼モードでの撮影のユーザ指示があった場合の処理である。
それぞれのAF制御方式については公知の技術であるため、具体的な制御に関してはここでは省略するが、概略、次のように動作する。
位相差AF制御は、カメラ510,610それぞれに撮像された画像の視差(視差情報)を元に、カメラ510,610間の基線長から三角測量によって奥行きを求めて被写体距離を計算し、焦点位置を検出する。尚、前述したように、基線長とは、少なくとも2つの撮像モジュールの視差情報を処理する目的で用いられる変数であって、2つの光軸間の距離を示しているが、先行技術文献によっては位置ずれ量や視差といった表現で記載されるものである。カメラ510,610間の基線長の算出方法については後述する。
一方、コントラストAF制御は、被写体像を撮像するための撮像素子から出力された信号のレベルがピークに向かう方向に、カメラ内部の焦点調節レンズを駆動させる。コントラストAF制御は、位相差AF制御のように合焦に必要な焦点調節レンズの駆動方向、駆動量を直接検知することはできないため、合焦動作に時間がかかってしまうという欠点がある。しかし、撮像素子からの出力信号に基づいて合焦判定を行っているので、高精度に焦点検出を行うことが出来るという特長をもつ。
次に、ステップS1509に進み、アプリケーション制御回路210が、例えばカメラ510,610を複眼カメラとして利用して複眼モードの撮影を実行した後、本処理を終了する。前述のように複眼カメラの機能には、画像の合成機能や測定機能が含まれる。
最後にステップS1510で、アプリケーション制御回路210は、撮像モジュール終了指示のメッセージをシステム制御回路110に送信し、本処理を終了する。システム制御回路110はこの撮像モジュール終了指示のメッセージを受信すると、電源制御回路220を介して撮像モジュール500,600への電源供給を、低消費電力の設定に変更する。
図11は、図10のステップS1508において行われるAF切り替え処理の手順を示すフローチャートである。上述のように、このAF切り替え処理は、複眼モードでの撮影指示がユーザからあった場合に行われる。
図11のステップS1601で、アプリケーション制御回路210により合焦指示のメッセージをシステム制御回路110に送信する。システム制御回路110を介してこの合焦指示のメッセージを受信すると、装着されている撮像モジュール(本実施例では、撮像モジュール500,600)はそのカメラ510,610の合焦動作を開始する。
ステップS1602でカメラ510,610の視差情報を利用した位相差AFによって撮影画面内所定位置の被写体に対する焦点検出を行う。
次にステップS1603へ進み、アプリケーション制御回路210によって、位相差AFによって位相差AFによって焦点検出(合焦)されたかどうか判定する。位相差AFによって焦点検出されなかった場合は、ステップS1606へ進み、位相差AFからコントラストAFに切り替える。
次にステップS1603において、位相差AF制御によって焦点検出された場合は、ステップS1604へ進み、あらかじめ設定された閾値を取得する。この閾値は距離を示す値であり、後述するステップS1605において位相差AF制御で測距された被写体距離と比較される。
なお、閾値は、基線長に応じて異なる。基線長が長い場合は、至近側での位相差AF制御での測距精度が低いため、閾値は大きく、基線長が短い場合は、至近側での位相差AF制御での測距に強いため閾値は小さい。
その後ステップS1605に進み、位相差AF制御により測距された被写体距離がステップS1604で得られた閾値で示す距離よりも遠い場合は合焦ができたと判断し、ステップS1609に進む。ステップS1609でアプリケーション制御回路210は、合焦結果を通知し、AF切り替え処理を終了する。
ステップS1605において、前期位相差AF制御により測距された被写体距離がステップS1604で得られた閾値で示す距離よりも近い場合は、ステップS1606へ進み、位相差AF制御からコントラストAF制御に切り替える(切替手段)。これは、カメラ510,610同士が遠くて基線長が長いと、望遠側では測距精度が高い反面、至近側では画像処理が困難となり正確に測距できない恐れがあるためである。
続いてステップS1607へ進み、ステップS1606のコントラストAFによって合焦できているかどうか判定する。コントラストAFによって合焦できない場合は、アプリケーション制御回路210は、ステップS1608で所定のエラー処理を行った後、本AF切り替え処理を終了する。
コントラストAFで合焦できた場合は、アプリケーション制御回路210は、ステップS1609で合焦結果を通知し、AF切り替え処理を終了する。
また、アプリケーション制御回路210は、マクロ撮影モードと望遠モードを備えている。これらのモードがユーザ選択された場合、図11とは異なるAF切り替え処理が行われる。具体的には、マクロ撮影モードがユーザにより選択された場合は、測距された被写体距離の値に関係なく、位相差AF制御による焦点検出をした後、コントラストAF制御に切り替えて焦点検出を行なう。この結果、より精度の高い合焦結果を得ることが可能となる。一方、望遠モードがユーザにより選択された場合、AF制御方式として位相差AF制御のみを有効にする。この結果、より高速で測距することが可能となる。
以上で、スマートデバイス50の一連の動作フローの説明を終了する。尚、図5に示すアプリケーションプログラム制御モジュール200に設けられた管理テーブル290は、無線LANモジュール700等により、アプリケーションプログラムのアップデートがされた時点で情報を更新することができる。そのため、図5における管理テーブル290は、各モジュールの種類や実現できる機能、その他必要となる情報を適宜変更したり追加したりすることが可能である。
図12は、図10のステップS1505において実行される基線長の算出方法を示した説明図である。
前述した図10のステップS1505において、アプリケーション制御回路210は、スマートデバイス50の本体のメモリ114から各スロットの位置情報を取得する。ここで本実施例における各スロットの位置情報とは、スロット1500,1600との位置情報を含み、モジュールの位置を決定する各リブ101a,c〜hやスパイン102の突き当て面の位置を特定するものである。これと同時に、ステップS1505においてアプリケーション制御回路210は、撮像モジュール500の不揮発性メモリ522からカメラ510における光軸の座標情報を取得する。またアプリケーション制御回路210は、撮像モジュール600の不揮発性メモリ622からカメラ610における光軸の座標情報を取得する。ここで本実施例における各光軸の座標情報とは、それぞれの撮像モジュール500,600の外形から見た各光軸の座標を特定するものである。
具体的にはこうした位置・座標情報を基にして、アプリケーション制御回路210は、図12に示すX101〜X103及びY101、Y102のそれぞれの数値を得る。X101は、撮像モジュール500の突き当て面からカメラ510における光軸までの水平方向の長さを示しており、同じくY101は、垂直方向の長さを示している。X102は、スマートデバイス50の本体におけるスパイン102の水平方向の長さを示している。X103は、撮像モジュール600の突き当て面からカメラ610における光軸までの水平方向の長さを示しており、同じくY102は、垂直方向の長さを示している。
図12に示すL100は、カメラ510における光軸とカメラ610における光軸とを結んだ中心線の長さを示しており、基線長に相当するものである。基線長L100は、X101〜X103とY101、Y102とから幾何学的に算出されるものである。ここで本実施例における基線長L100は、下記数1に示す計算式によって求められる。
[数1]
L100=√{(X101+X102+X103)2+(Y101−Y102)2}
上記に示すように、計算式自体は比較的単純であり、アプリケーションプログラム制御モジュール200のメモリ212や不揮発性メモリ214に要求とされるメモリ容量は比較的少ない。更に、アプリケーション制御回路210による処理速度は非常に高速であるため、合焦や露光開始までにタイムラグを生じさせてしまう恐れはない。
(実施例2)
ここまで本発明の好ましい実施の形態を、図1〜12に示す実施例1に従って説明してきた。ここから以下に、モジュールを取り付けるスロットの組み合わせのみを実施例1から変更する実施例2について説明する。
図13は、本実施例にかかる電子機器としてのスマートデバイス50の外観図であり、図10のステップS1505において実行される基線長の計算方法を示した説明図である。
本実施例は実施例1と異なり、スマートデバイス50の本体の背面側において、スロット1600に撮像モジュール500が、またスロット1100に撮像モジュール600が装着されている。そして、実施例1において撮像モジュール500が装着されていたスロット1500に対して、本実施例では記録モジュール150が取り付けられた状態となっている。こうすることによって、カメラ510における光軸とカメラ610における光軸とをより離して配置し、基線長を長くすることができる。一般的に基線長を長くすると、遠くの被写体を撮影する際、立体視モードにおいて立体感を得やすく、また測距精度を高めることが可能である。また、ユーザがスマートデバイス50を使用する際の持ちやすさなどによっても、こうした撮像モジュール500,600との位置関係は変更されるものである。
前述した図10のステップS1505においてアプリケーション制御回路210は、スマートデバイス50の本体のメモリ114から各スロットの位置情報を取得する。ここで本実施形態における各スロットの位置情報とは、スロット1500,1600,1800の位置情報を含み、モジュールの位置を決定する各リブ101a〜hやスパイン102の突き当て面の位置を特定するものである。これと同時に、ステップS1505においてアプリケーション制御回路210は、撮像モジュール500の不揮発性メモリ522からカメラ510における光軸の座標情報を取得する。またアプリケーション制御回路210は、撮像モジュール600の不揮発性メモリ622からカメラ610における光軸の座標情報を取得する。ここで本実施例における各光軸の座標情報とは、それぞれの撮像モジュール500,600の外形から見た各光軸の座標を特定するものである。
具体的にはこうした位置・座標情報を基にして、アプリケーション制御回路210は、図13に示すX201〜X203及びY201、Y202のそれぞれの数値を得る。X201は、撮像モジュール500の突き当て面からカメラ510における光軸までの水平方向の長さを示しており、同じくY201は、垂直方向の長さを示している。X202は、スマートデバイス50の本体におけるリブ101fとリブ101hの水平方向の長さを示している。X203は、撮像モジュール600の突き当て面からカメラ610における光軸までの水平方向の長さを示しており、同じくY202は、垂直方向の長さを示している。
図13に示すL200は、カメラ510における光軸とカメラ610における光軸とを結んだ中心線の長さを示しており、基線長に相当するものである。基線長L200は、X201〜X203とY201、Y202とから幾何学的に算出されるものである。ここで本実施例における基線長L200は、下記数2に示す計算式によって求められる。
[数2]
L200=√{(X201+X202+X203)2+(Y201−Y202)2}
上記に示すように、計算式自体は比較的単純であり、アプリケーションプログラム制御モジュール200のメモリ212や不揮発性メモリ214に要求とされるメモリ容量は比較的少ない。更に、アプリケーション制御回路210による処理速度は非常に高速であるため、合焦や露光開始までにタイムラグを生じさせてしまう恐れはない。
以上が、本実施例にかかる図10のステップS1506において実行される基線長Lの計算方法である。
また、前述のように、スマートデバイス50は装着されるモジュールの組み合わせが比較的自由であるため、複数の撮像モジュールをそれぞれ異なるスロットに装着することもできる。このため、それぞれのカメラの光軸を結ぶ中心線の長さ、すなわち基線長Lは一様ではない。
前述のように、カメラ510,610同士が遠く基線長が長い状態においては、望遠側では測距精度が高くなる半面、至近側では画像処理が困難となり正確に測距できなくなるなど、基線長の長さが測距性能の結果に寄与している。
このため、アプリケーションプログラム制御モジュール200は、撮像モジュール500,600の間隔の大きさに応じて設定される閾値を保持し、この閾値と測距される被写体距離とを比較する。
例えば、図12に示す撮像モジュール500,600の間隔が狭い第一の装着状態での基線長L100は、図13に示す撮像モジュール500,600の間隔が広い第二の装着状態での基線長L200よりも短い。
この時、第一の装着状態に応じて設定される閾値は、第二の装着状態に応じて設定される閾値よりも小さくなる。
以上、本発明の好ましい実施例1とは別の実施の形態を、図13に従って説明した。尚、スマートデバイス50の本体に装着可能なモジュールは多種多様であり、またモジュールを装着するスロットもユーザにより自由に選択可能であるため、図13に示す組み合わせは単なる一例に過ぎず、本発明はその組み合わせを限定するものではない。
(実施例3)
ここまで本発明の好ましい実施の形態を、図1〜13に示す実施例1,2に従って説明してきた。ここから以下に、複眼モードの撮影実行時におけるLCDパネル312のライブビュー画像の表示方法のみを実施例1及び実施例2から変更する実施例3について説明する。
本実施例に係るスマートデバイス50の本体とその他のモジュールとは実施例1と同じ構成であるため、本実施例においては実施例1と異なる部分のみを説明する。
図14(a)はスマートデバイス50の本体の、表示操作モジュール300側外観図、側面外観図、撮像モジュール500,600側外観図を示した図である。
図14(b)はマルチ表示モード時のLCDパネル312の外観図、図14(c)はシングル表示モード時のLCDパネル312の外観図を示している。
図14(b)に示すように、LCDパネル312は、撮像モジュール500から出力されるライブビュー画像511と、撮像モジュール600から出力されるライブビュー画像611をマルチ表示する事ができる。
また、マルチ表示モードでは、LCDパネル312の表示領域において、撮像モジュール500に近接する側にライブビュー画像511を、撮像モジュール600に近接する側にライブビュー画像611を表示する。
尚、本実施例では、ライブビュー画像511,611をそれぞれが出力される撮像モジュールに近接する側に表示しているが、本発明はこれに限定されるものではなくユーザ指定により任意に変更可能である。
図14(c)に示すように、LCDパネル312は、ライブビュー画像511,611のいずれかを選択して表示したり、画像の合成、または、複眼モードでの撮影を行った後、位相差AF制御により処理を行った画像をシングル表示することも可能である。
このように、LCDパネル312は、撮像モジュール500,600のそれぞれから出力されるライブビュー画像511,611に関して、シングル表示モード、または、マルチ表示モードのいずれかのモードに選択表示することが可能である。
また、以下の合焦処理において、LCDパネル312は、ライブビュー画像511,611の表示モードを、シングル表示モード、または、マルチ表示モードのいずれかに切り替えてもよい。
まず、アプリケーション制御回路210により合焦指示のメッセージをシステム制御回路110に送信する。システム制御回路110を介してこの合焦指示のメッセージを受信すると、撮像モジュール500,600はそのカメラ510,610の合焦動作を開始する。これにより、カメラ510,610の視差情報を利用した位相差AFによって撮影画面内所定位置の被写体に対する焦点検出を行う。
次に、アプリケーション制御回路210によって、位相差AFによって合焦できているかどうか判定する。位相差AF制御によって合焦できた場合は、画像処理を行い、LCDパネル312にメインカメラから出力されたライブビュー画像のみを表示するシングル表示モードとする。
一方、位相差AFによって合焦できていない場合や位相差AFにより測距された被写体距離が閾値で示す距離よりも近い場合は、位相差AFによる画像処理が不可能と判断する。この場合、LCDパネル312にライブビュー画像511,611がそれぞれ表示される、マルチ表示モードとする。
以上、本発明の好ましい別の実施の形態を、図14に従って説明した。尚、LCDパネル312の表示方法は多種多様であり、図14に示す表示方法は単なる一例に過ぎず、本発明はその表示方法を限定するものではない。
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。