【課題】ユーザが横になって携帯型情報処理装置を使用する場合でも、ユーザを煩わせることなく、画面に適正な表示方向で表示することが可能な携帯型情報処理装置、その表示制御方法、及びコンピュータが実行可能なプログラムを提供する。
【解決手段】少なくとも一方の面側に設けられた表示部10を備えると共に、表示部10の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置1であって、表示部10の画面の向きを検出する検出手段と、表示部10の画面表示の回転を制御する制御手段と、を備える。制御手段は、表示部10の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を表示部10の画面の向きに応じて選択的に実行する。
少なくとも一方の面側に設けられた表示部を備えると共に、前記表示部の画面の向きに応じて前記表示部の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置であって、
前記表示部の画面の向きを検出する検出手段と、
前記表示部の画面表示の回転を制御する制御手段と、
を備え、
前記制御手段は、前記表示部の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を前記表示部の画面の向きに応じて選択的に実行することを特徴とする携帯型情報処理装置。
前記制御手段は、前記検出手段で前記表示部の画面が所定の向きであると検出された場合に、前記第2の動作モードを実行することを特徴とする請求項1に記載の携帯型情報処理装置。
前記検出手段は、デカルト座標系において、前記表示部の画面に平行で、かつ、互いに直交する方向をそれぞれX、Y軸方向とし、X軸方向及びY軸方向に直交する鉛直上向き方向をZ軸方向とした場合に、X、Y、Z軸方向の加速度x、y、zを検出する加速度センサを含むことを特徴とする請求項1又は請求項2に記載の携帯型情報処理装置。
前記検出手段は、前記加速度zが所定値より大きくなった場合に、前記表示部の画面が前記所定の向きであると判定することを特徴とする請求項3に記載の携帯型情報処理装置。
前記第2の動作モードは、所定の条件において前記表示部の画面表示の回転を行わない動作を実行する状態を含むことを特徴とする請求項1〜請求項4のいずれか1つに記載の携帯型情報処理装置。
前記第2の動作モードは、所定の条件において前記表示部の画面表示の回転を行わない動作を実行する状態と、前記所定の条件とは異なる条件おいて前記表示部の画面表示の回転を前記第1の動作モードと異なる回転で実行する状態と、を含むことを特徴とする請求項1〜請求項4のいずれか1つに記載の携帯型情報処理装置。
前記第2の動作モードでは、前記加速度x、yが第1の範囲にある場合は、前記表示部の画面表示の回転を行なわず、前記加速度x、yが第2の範囲にある場合は、前記第1の動作モードに対して、オフセットを90度として前記表示部の画面表示の回転を行ない、前記加速度x、yが第3の範囲にある場合は、前記第1の動作モードに対して、オフセットを270度として前記表示部の画面表示の回転を行なうことを特徴とする請求項3又は請求項4に記載の携帯型情報処理装置。
さらに、前記検出手段で前記表示部の画面が前記所定の向きであると検出された場合に、前記表示部の画面に、画面の向きが前記所定の向きである旨を表示するUI通知手段を備えたことを特徴とする請求項1〜請求項7のいずれか1つに記載の携帯型情報処理装置。
さらに、前記第2の動作モードを実行している場合に、前記表示部の画面に、前記第2の動作モードを実行している旨を表示するUI通知手段を備えたことを特徴とする請求項1〜請求項8のいずれか1つに記載の携帯型情報処理装置。
前記制御手段は、前記第2の回転動作モードによる制御のユーザによる選択を受け付けたときに、第1の回転動作モードによる制御を禁止して、前記第2の回転動作モードによって前記表示部の画面表示を回転制御することを特徴とする請求項11に記載の携帯型情報処理装置。
前記第2の回転動作モードによる制御を実行している場合に、前記第2の回転動作モードによって前記表示部の画面表示を回転制御している旨を前記表示部の画面に表示するUI通知手段を備えたことを特徴とする請求項11又は請求項12に記載の携帯型情報処理装置。
少なくとも一方の面側に設けられた表示部を備えると共に、前記表示部の画面の向きに応じて前記表示部の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置の表示制御方法であって、
前記表示部の画面の向きを検出する工程と、
前記表示部の画面表示の回転を制御する工程と、
を含み、
前記制御する工程では、前記表示部の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を前記表示部の画面の向きに応じて選択的に実行することを特徴とする携帯型情報処理装置の表示制御方法。
少なくとも一方の面側に設けられた表示部を備えると共に、前記表示部の画面の向きに応じて前記表示部の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置に搭載されるプログラムであって、
前記表示部の画面の向きを検出する工程と、
前記表示部の画面表示の回転を制御する工程と、
をコンピュータに実行させ、
前記制御する工程では、前記表示部の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を前記表示部の画面の向きに応じて選択的に実行することを特徴とするコンピュータが実行可能なプログラム。
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、画面回転機能を有効にした状態で、ユーザが横になって(寝転がって)携帯型情報処理装置を使用する場合は、画面の表示方向がユーザにとって望ましくないものとなる場合がある。
図13は、ユーザが横になって携帯型情報処理装置を使用する場合の画面の表示方向を説明するための図である。
図13において、例えば、201に示すように、ユーザが体を仰向けにして、携帯型情報処理装置の画面を下にして横表示で見ているものとする。この状態からユーザが体の向きを横向きに変更し、この体の向きに合わせて携帯型情報処理装置を回転させると、202に示すように、画面表示が回転して縦表示となってしまうため、ユーザにとって見にくいものとなってしまう。
【0006】
この回転を防止するためには、ユーザがUIを操作して、画面ロック機能を有効にする必要がある。しかしながら、ユーザが体を起こした状態で使用する場合は、画面ロック機能を無効に、体を横にした状態で使用する場合は、画面ロック機能を有効にというように、ユーザが、その都度、UIを操作して切り替えるのはユーザにとって煩わしい操作となる。
【0007】
本発明は、上記に鑑みてなされたものであり、ユーザが横になって携帯型情報処理装置を使用する場合でも、ユーザを煩わせることなく、画面に適正な表示方向で情報を表示することが可能な携帯型情報処理装置、その表示制御方法、及びコンピュータが実行可能なプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決し、目的を達成するために、本発明は、少なくとも一方の面側に設けられた表示部を備えると共に、前記表示部の画面の向きに応じて前記表示部の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置であって、前記表示部の画面の向きを検出する検出手段と、前記表示部の画面表示の回転を制御する制御手段と、を備え、前記制御手段は、前記表示部の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を前記表示部の画面の向きに応じて選択的に実行することを特徴とする。
【0009】
また、本発明の好ましい態様によれば、前記制御手段は、前記検出手段で前記表示部の画面が所定の向きであると検出された場合に、前記第2の動作モードを実行することが望ましい。
【0010】
また、本発明の好ましい態様によれば、前記検出手段は、デカルト座標系において、前記表示部の画面に平行で、かつ、互いに直交する方向をそれぞれX、Y軸方向とし、X軸方向及びY軸方向に直交する鉛直上向き方向をZ軸方向とした場合に、X、Y、Z軸方向の加速度x、y、zを検出する加速度センサを含むことが望ましい。
【0011】
また、本発明の好ましい態様によれば、前記検出手段は、前記加速度zが所定値より大きくなった場合に、前記表示部の画面が前記所定の向きであると判定することが望ましい。
【0012】
また、本発明の好ましい態様によれば、前記第2の動作モードは、所定の条件において前記表示部の画面表示の回転を行わない動作を実行する状態を含むことが望ましい。
【0013】
また、本発明の好ましい態様によれば、前記第2の動作モードは、所定の条件において前記表示部の画面表示の回転を行わない動作を実行する状態と、前記所定の条件とは異なる条件おいて前記表示部の画面表示の回転を前記第1の動作モードと異なる回転で実行する状態と、を含むことが望ましい。
【0014】
また、本発明の好ましい態様によれば、前記第2の動作モードでは、前記加速度x、yが第1の範囲にある場合は、前記表示部の画面表示の回転を行なわず、前記加速度x、yが第2の範囲にある場合は、前記第1の動作モードに対して、オフセットを90度として前記表示部の画面表示の回転を行ない、前記加速度x、yが第3の範囲にある場合は、前記第1の動作モードに対して、オフセットを270度として前記表示部の画面表示の回転を行なうことが望ましい。
【0015】
また、本発明の好ましい態様によれば、さらに、前記検出手段で前記表示部の画面が前記所定の向きであると検出された場合に、前記表示部の画面に、画面の向きが前記所定の向きである旨を表示するUI通知手段を備えることが望ましい。
【0016】
また、本発明の好ましい態様によれば、さらに、前記第2の動作モードを実行している場合に、前記表示部の画面に、前記第2の動作モードを実行している旨を表示するUI通知手段を備えることが望ましい。
【0017】
また、本発明の好ましい態様によれば、さらに、付加機能部を備え、前記制御手段は、前記付加機能部による付加機能の実行中である場合は、前記第2の動作モードを実行しないことが望ましい。
【0018】
また、上述した課題を解決し、目的を達成するために、本発明は、少なくとも一方の面側に設けられた表示部と、前記表示部の画面表示を回転させる第1の回転動作モードによる制御と、当該第1の回転動作モードとは異なる回転動作で前記表示部の画面表示を回転させる第2の回転動作モードによる制御と、を選択的に実行する制御手段と、を備えたことを特徴とする。
【0019】
また、本発明の好ましい態様によれば、前記制御手段は、前記第2の回転動作モードによる制御のユーザによる選択を受け付けたときに、第1の回転動作モードによる制御を禁止して、前記第2の回転動作モードによって前記表示部の画面表示を回転制御することが望ましい。
【0020】
また、本発明の好ましい態様によれば、前記第2の回転動作モードによる制御を実行している場合に、前記第2の回転動作モードによって前記表示部の画面表示を回転制御している旨を前記表示部の画面に表示するUI通知手段を備えることが望ましい。
【0021】
また、上述した課題を解決し、目的を達成するために、本発明は、少なくとも一方の面側に設けられた表示部を備えると共に、前記表示部の画面の向きに応じて前記表示部の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置の表示制御方法であって、前記表示部の画面の向きを検出する工程と、前記表示部の画面表示の回転を制御する工程と、を含み、前記制御する工程では、前記表示部の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を前記表示部の画面の向きに応じて選択的に実行することを特徴とする。
【0022】
また、上述した課題を解決し、目的を達成するために、本発明は、少なくとも一方の面側に設けられた表示部を備えると共に、前記表示部の画面の向きに応じて前記表示部の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置に搭載されるプログラムであって、前記表示部の画面の向きを検出する工程と、前記表示部の画面表示の回転を制御する工程と、をコンピュータに実行させ、前記制御する工程では、前記表示部の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を前記表示部の画面の向きに応じて選択的に実行することを特徴とする。
【発明の効果】
【0023】
本発明によれば、ユーザが横になって携帯型情報処理装置を使用する場合でも、ユーザを煩わせることなく、画面に適正な表示方向で情報を表示することが可能な携帯型情報処理装置、を提供することが可能になるという効果を奏する。
【発明を実施するための形態】
【0025】
以下、本実施の形態に係る携帯型情報処理装置、その表示制御方法、およびコンピュータが実行可能なプログラムの実施の形態について説明する。本発明の構成要素は、本明細書の図面に一般に示してあるが、様々な構成で広く多様に配置し設計してもよいことは容易に理解できる。したがって、本発明の装置、方法、及びプログラムの実施の形態についての以下のより詳細な説明は、特許請求の範囲に示す本発明の範囲を限定するものではなく、単に本発明の選択した実施の形態の一例を示すものであって、本明細書の特許請求の範囲に示す本発明と矛盾無く装置、システム及び方法についての選択した実施の形態を単に示すものである。当業者は、特定の細目の1つ以上が無くても、又は他の方法、部品、材料でも本発明を実現できることが理解できる。
【0026】
(実施の形態)
図1は、実施の形態に係る携帯型情報処理装置の模式図である。本実施の形態に係る携帯型情報処理装置は、例えば、片手又は両手で把持可能な、タブレット、スマートフォン、携帯電話端末、及びゲーム機等である。
図1に示すように、携帯型情報処理装置1は、少なくとも一方の面側に設けられた表示部10を備えると共に、表示部10の画面の向きに応じて、表示部10の画面の表示を回転させる画面回転機能を備えており、表示部10の画面の向き(携帯型情報処理装置1の姿勢)を検出する検出手段12と、表示部10の画面表示の回転を制御する制御手段13を備えている。
【0027】
制御手段13は、携帯型情報処理装置1の全体の動作を制御する。制御手段13は、表示部10の画面表示を回転させる第1のモードによる制御と、第1のモードとは異なる第2のモードによる制御とを含む制御とを、表示部10の画面の向きに応じて選択的に実行する。例えば、制御手段13は、検出手段12で表示部10の画面が上向きであると検出された場合に、第1のモードを実行し、検出手段12で表示部10の画面が所定の向き(例えば、下向き、すなわち重力方向)であると検出された場合に、第2のモードを実行する。
【0028】
表示部10は、例えば、LCD、有機ELデバイス等の表示デバイスで構成することができる。また、表示部10は、表示デバイスとタッチセンサ等のタッチ入力デバイスとで構成されたタッチパネル表示部で構成してもよい。
【0029】
検出手段12は、デカルト座標系において、表示部10の画面に平行で、かつ、互いに直交する方向をそれぞれX、Y軸方向とし、X軸方向及びY軸方向に直交する鉛直上向き方向をZ軸方向とした場合に、X、Y、Z軸方向の加速度x、y、zを検出する加速度センサを含むことにしてもよい。また、検出手段12は、加速度zが第1の所定値より大きくなった場合に、表示部10の画面が下向きであると判定することにしてもよい。また、検出手段12は、加速度zが第2の所定値(但し、第1の所定値>第2の所定値)より小さくなった場合に、表示部10の画面が上向きであると判定してもよい。
【0030】
第2のモードの第1の例では、表示部10の画面表示の回転を行わないことにしてもよい。
図2は、制御手段13により実行される第2のモードの第1の例を説明するための説明図である。
図2において、制御手段13は、表示部10の画面が上向きである場合(S2)には、第1のモードを実行し、表示部10の画面の向きに応じて、画面を回転させる(画面回転ロックを解除)。また、制御手段13は、表示部10の画面が下向きである場合(S2)には、表示部10の画面の表示方向を維持し(画面回転ロック)、携帯型情報処理装置1を右又は左に回転させても表示部10の画面表示を回転させない。
【0031】
これにより、ユーザは、例えば、仰向けで寝ながら表示部10の画面を下向きにして画面を見ている場合に、寝ながら右又は左に体の向きを変えて、携帯型情報処理装置1を右又は左に回転させても、表示部10の画面の向きが変わらないため、ユーザは煩わしい操作をしなくても(UIで画面回転ロックのON/OFFを切り替えなくても)、ユーザにとって好適な表示方向で画面を見ることが可能となる。
【0032】
第2のモードの第2の例では、所定の条件において表示部10の画面表示の回転を行わない第1の状態と、他の所定の条件において表示部10の画面表示の回転を第1のモードと異なる回転を行う第2の状態と、さらに他の所定の条件において表示部10の画面表示の回転を第1のモードや第2の状態と異なる回転を行う第3の状態とを備えていてもよい。例えば、加速度x、yが第1の範囲にある場合は、表示部10の画面表示の回転を行わない第1の状態と、加速度x、yが第2の範囲にある場合は、第1のモードに対して、オフセットを90度として表示部10の画面表示の回転を行なう第2の状態と、加速度x、yが第3の範囲にある場合は、第1のモードに対して、オフセットを270度として表示部10の画面表示の回転を行う第3の状態とを備えていてもよい。
【0033】
図3は、制御手段13により実行される第2のモードの第2の例を説明するための説明図である。
図3において、制御手段13は、表示部10の画面が上向きである場合には、第1のモードを実行し、表示部10の画面の向きに応じて、画面表示を回転させる。また、制御手段13は、表示部10の画面が下向きである場合には、第2のモードを実行する。制御手段13は、第2のモードにおいて、加速度x、yが第1の範囲にある場合は、表示部10の画面表示の回転を行わない第1の状態に移行し、加速度x、yが第2の範囲にある場合は、第1のモードに対して、オフセットを90度として表示部10の画面表示の回転を行なう第2の状態に移行し、加速度x、yが第3の範囲にある場合は、第1のモードに対して、オフセットを270度として表示部10の画面表示の回転を行う第3の状態に移行する。
【0034】
これにより、ユーザは、体を仰向けにした状態及び体を右又は左向きにした状態で寝たままで画面を見る場合に、ユーザの頭を上とした方向に沿って情報を表示することができ、ユーザは煩わしい操作をしなくても、ユーザにとって好適な表示方向で画面を見ることが可能となる。
【0035】
図1に戻り、携帯型情報処理装置1は、検出手段12で表示部10の画面が下向きであると検出された場合に、表示部10の画面に、画面が下向きである旨を表示するUI通知手段14を備えていてもよい(
図9−A参照)。
【0036】
また、UI通知手段14は、検出手段12で表示部10の画面が下向きであると検出された場合に、表示部10の画面に、画面が下向きである旨を表示すると共に、第2のモードを実行するか否かをユーザに確認するメッセージを表示してもよい(
図9−B参照)。
【0037】
また、UI通知手段14は、第2のモードを実行している場合に、表示部10の画面に第2のモードを実行している旨をアイコン等で表示してもよい(
図8参照)。
【0038】
また、携帯型情報処理装置1は、ユーザが特定の付加的な機能を実行するために携帯型情報処理装置1を操作したことを検出したことを条件に、第2のモードを実行しないように制御してもよい。例えば、被写体を撮影して画像データを入力するカメラ15を付加機能として備えていている場合に、制御手段13は、カメラ15が起動されたことを、カメラ15をコントロールするアプリケーションソフトウェアの実行によって検出し、カメラ15が起動している場合は、表示部10の画面が下向きになっても、第2のモードを実行しないことにしてもよい。これは、ユーザがカメラ15を使用している場合は、携帯型情報処理装置1を回転させながら被写体を所望の表示方向で撮影したい場合が多いためである。第2のモードを実行しない付加機能の例としては、被写体の撮影以外にも、水準器による垂直水平の検出や、充電装置との接続を検出したときの充電操作等がある。
【0039】
検出手段12、制御手段13、及びUI通知手段14は、ハードウェアやソフトウェア(OS、API、サービス、ユーティリティ、ライブラリ、ドライバ、及びアプリケーション等のプログラム)のモジュール、又は、その組み合わせで構成することができる。また、コンピュータがプログラムを実行することにより、検出手段12、制御手段13、及びUI通知手段14の機能を実現することにしてもよい。
【0040】
本実施の形態によれば、少なくとも一方の面側に設けられた表示部10を備えると共に、表示部10の画面の向きに応じて表示部10の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置1であって、表示部10の画面の向きを検出する検出手段12と、表示部10の画面表示の回転を制御する制御手段13と、を備え、制御手段13は、表示部10の画面表示を回転させる第1のモードによる制御と、当該第1のモードとは異なる第2のモードによる制御と、を表示部10の画面の向きに応じて選択的に実行することにしたので、ユーザが横になって携帯型情報処理装置を使用する場合でも、ユーザを煩わせることなく、画面に適正な表示方向で情報を表示することが可能となる。
【0041】
また、本実施の形態によれば、制御手段13は、検出手段12で表示部10の画面が所定の向き(例えば、下向き)であると検出された場合に、第2のモードを実行することとしたので、表示部10の画面が所定の向きである場合に、第2のモードを実行することが可能となる。
【0042】
また、本実施の形態によれば、検出手段12は、デカルト座標系において、表示部10の画面に平行で、かつ、互いに直交する方向をそれぞれX、Y軸方向とし、X軸方向及びY軸方向に直交する鉛直上向き方向をZ軸方向とした場合に、X、Y、Z軸方向の加速度x、y、zを検出する加速度センサを含むことにしたので、簡単な構成で表示部の画面の向きを検出することが可能となる。
【0043】
また、本実施の形態によれば、検出手段12は、加速度zが所定値より大きくなった場合に、表示部10の画面が上述の所定の向きであると判定することにしたので、表示部の画面が下向きであることを簡単に検出することが可能となる。
【0044】
また、本実施の形態によれば、第2のモードでは、表示部の画面表示の回転を行わないこととしたので、ユーザが横になって寝たままで表示部の画面を見る場合に、ユーザは煩わしい操作をしなくても、ユーザにとって好適な表示方向で画面を見ることが可能となる。
【0045】
また、本実施の形態によれば、第2のモードでは、加速度x、yが第1の範囲にある場合は、表示部10の画面表示の回転を行わず、加速度x、yが第2の範囲にある場合は、通常の動作に対して、オフセットを90度として表示部の画面表示の回転を行ない、加速度x、yが第3の範囲にある場合は、通常の動作に対して、オフセットを270度として表示部10の画面表示の回転を行なうこととしたので、ユーザが体を仰向けにした状態及び体を右又は左向きにした状態で寝たままで表示部の画面を見る場合に、ユーザは煩わしい操作をしなくても、ユーザにとって好適な表示方向で画面を見ることが可能となる。
【0046】
また、本実施の形態によれば、UI通知手段14は、検出手段12で表示部10の画面が上述の所定の向きであると検出された場合に、表示部10の画面に、画面の向きが所定の向きである旨を通知することとしたので、ユーザに画面が所定の向きとなったことを通知することが可能となる。
【0047】
また、本実施の形態によれば、UI通知手段14は、第2のモードを実行している場合に、表示部10の画面に第2のモードを実行している旨を表示することとしたので、ユーザに第2のモードを実行していることを通知することが可能となる。
【0048】
また、本実施の形態によれば、制御手段13は、カメラ15等の特定の付加的な機能が実行されている場合は、第2のモードを実行しないこととしたので、ユーザによるカメラ15等の特定の付加的な機能の操作の邪魔にならないようにすることが可能となる。
【0049】
また、上述の実施の形態では、第1のモードによる制御と第2のモードによる制御とを含む制御を、表示部10の画面の向きに応じて選択的に実行しているが、ユーザの選択に応じて第1のモードによる制御と第2のモードによる制御とを選択的に実行してもよい。例えば、表示部10に表示させた選択ボタンへのユーザの選択操作を受け付けて、この選択操作にしたがって第1のモードによる制御と第2のモードによる制御とを、選択的に制御するようにしてもよい。又は、携帯型情報処理装置1の位置を検出して、この検出した位置に応じて、第1のモードによる制御と第2のモードによる制御とを選択的に実行してもよい。例えば、携帯型情報処理装置1の位置をGPSやビーコンのような位置検出手段で検出したり、他の機器との相対位置を近接センサで検出したり、ユーザ(すなわち携帯型情報処理装置1)の位置をカメラで検出したりすることで検出し、検出した位置に応じて、第1のモードによる制御と第2のモードによる制御とを選択的に実行してもよい。
【0050】
(実施例)
図4−
図12−Bを参照して、上記実施の形態に係る携帯型情報処理装置を、タブレットに適用した一実施例を説明する。
図4−Aは、実施例に係る携帯型情報処理装置の外観を示す斜視図である。
図4−Bは、実施例に係る携帯型情報処理装置の外観を示す前面図(z=−1.0の場合)である。
図4−Cは、実施例に係る携帯型情報処理装置の外観を示す背面図(z=1.0の場合)である。
図4−Dは、実施例に係る携帯型情報処理装置の外観を示す斜視図(z=0の場合)である。実施例に係る携帯型情報処理装置は、片手又は両手で把持できる程度のサイズとなっている。
【0051】
図4−A〜
図4−Dに示すように、実施例にかかる携帯型情報処理装置20は、略長方体形状の筐体21を備えている。筐体21の表面のうち一方側の面を前面21A、前面21Aに対向する他方側の面を背面21B、筐体21の表面のうち前面21Aと背面21Bに挟まれた面を側面とする。携帯型情報処理装置20は、筐体21の前面21Aの略中央に、タッチセンサ22A及び表示部22Bで構成されるタッチ表示部22が配置されている。
【0052】
タッチ表示部22は、文字、図形、画像等の情報を表示するとともに、指、スタイラス、ペン等(以下、「指示体」と称する)を用いてタッチセンサ22Aに対して行われる各種操作を検出する。タッチセンサ22Aが各種操作を検出する方式は、静電容量式、感圧式等の方式を採用することができる。表示部22には、アイコン、バー、文字、及び画像等の各種情報が表示される。
【0053】
また、筐体21の前面21Aの上方に、カメラ23が配置される。カメラ23は、ユーザの操作に応じて撮像処理を実行し、画像データや動画データを生成する。筐体21の内部には、各種電気部品や加速度センサ24等のセンサが搭載される基板及びバッテリ等が収納されている。
【0054】
図4−Aにおいて、デカルト座標系に従い、タッチ表示部22(前面21A)に対してその短手方向に平行な方向をX軸方向、タッチ表示部22に対してその長手方向に平行でかつX軸方向に平行な方向をY軸方向、X軸方向及びY軸方向に垂直でタッチ表示部22に対して鉛直方向上向きの方向をZ軸方向とする。X軸方向の加速度をx、Y軸方向の加速度をy、Z軸方向の加速度をzとし、以下、その単位(=g)の記載を省略する。加速度センサ24は、加速度x、y、zを検出して制御部100(
図5参照)に出力する。携帯型情報処理装置20が静止した状態では、x=−1.0〜1.0、y=−1.0〜1.0、z=−1.0〜1.0となる。
【0055】
例えば、携帯型情報処理装置20が
図4−Aに示すような姿勢の場合には、加速度センサ24で検出されるx、y、zは、x=−0.30、y=−0.60、z=−0.75となる。
図4−Bに示すように、例えば、携帯型情報処理装置20のタッチ表示部22(前面21A)を上にしてテーブル(地面)に置いた姿勢では、x=0.0、y=0.0、z=−1.0となる。また、
図4−Cに示すように、例えば、携帯型情報処理装置20の背面21Bを上にして(タッチ表示部22を下にして)テーブルに置いた姿勢では、x=0.0、y=0.0、z=1.0となる。
図4−D に示すように、地面に対して携帯型情報処理装置20のZ軸方向を平行にした状態で、少し左側に傾けた姿勢では、x=−0.30、y=−0.95、z=0.0となる。制御部100(
図5参照)は、加速度センサ24のx、y、zの検出結果に基づいて、タッチ表示部22の画面表示を回転させる。
【0056】
図5は、携帯型情報処理装置20の概略のブロック図である。携帯型情報処理装置20は、
図5に示すように、タッチ表示部22と、カメラ23と、加速度センサ24と、制御部100と、メモリ101と、記憶部102と、通信部103と、電源部104と、を備えている。
【0057】
タッチ表示部22は、表示部22Bと、表示部22Bに重畳されたタッチセンサ22Aとを有する。タッチセンサ22Bは、指やペン等の指示体を用いてタッチセンサ22Aに対して行われた各種操作を、操作が行われた場所のタッチセンサ22A上での位置とともに検出し、制御部100に通知する。タッチセンサ22Aによって検出される操作には、タッチ操作、スライド操作、及びピッチ操作が含まれる。表示部22Bは、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機EL(Organic Electro−Luminescence)パネルなどで構成され、制御部100の制御に従って文字や画像等の情報を表示する。
【0058】
カメラ23は、被写体を撮像して得られる画像データを制御部100に出力する。通信部103は、制御部100の制御に従って、ネットワークを介して又は直接、無線又は有線で外部とデータ通信を行うためのものである。電源部104は、制御部100の制御に従って、蓄電池又はACアダプタから得られる電力を、制御部100を含む携帯型情報処理装置20の各部へ供給する。
【0059】
加速度センサ24は、X軸方向、Y軸方向、及びZ軸方向の加速度x、y、zを検出して、制御部100に出力する。
【0060】
メモリ101は、例えば、RAMやDRAM等で構成されており、制御部100によって実行されるプログラム、制御部100が参照するデータ、制御部100の演算結果等が一時的に記憶されるワークエリアとして使用される。
【0061】
記憶部102は、制御部100によって実行されるプログラムやデータを保持するコンピュータで読み取り可能な記憶媒体であり、例えば、EEPROM、フラッシュメモリ、及びSSD等の不揮発性メモリである。記憶部102は、例えば、携帯型情報処理装置20全体の制御を行うためのOS、周辺機器類をハードウェア操作するための各種デバイスドライバ、カメラアプリ、メールアプリ、ブラウザアプリ、電子書籍閲覧用アプリ等の各種アプリを記憶する機能を有する。各種デバイスドライバ及び各種アプリ間のデータの転送には全てOSが介在する。
【0062】
制御部100は、例えば、CPU(Central Processing Unit)、マイクロプロセッサ、DSP等であり、携帯型情報処理装置20の動作を統括的に制御して各種の機能を実現する。具体的には、制御部100は、記憶部102に記憶されているデータやメモリ101に展開したデータを必要に応じて参照しつつ、記憶部102に記憶されているプログラムに含まれる命令を実行して、通信機能、入力機能、カメラ機能、メール機能、Webブラウジング機能、及び表示機能(画面表示の回転機能を含む)等の各種機能を実現する。
【0063】
また、制御部100は、加速度センサ24の加速度x、y、zの検出結果に基づいて、タッチ表示部22の画面表示の回転を制御する。以下、制御部100によるタッチ表示部22の画面表示を回転させる処理について詳細に説明する。
【0064】
図6は、タッチ表示部22の画面の表示方向を説明するための図である。
図6において、携帯型情報処理装置20のカメラ23が配置されている方向を上方向とし、タッチ表示部22の長辺と平行に情報を表示する場合を縦方向表示、タッチ表示部22の短辺と平行に情報を表示する場合を横方向表示と規定する。
図6(A)に示すように、カメラ23が配置されている方向を上として、縦方向に表示する場合を「上向き表示(上向き縦表示)」とする。
図6(B)に示すように、上向き表示から時計回りに90度回転させた場合を「右向き表示(右向き横表示)」とする。
図6(C)に示すように、上向き表示から時計回りに180度回転させた場合を「下向き表示(下向き縦表示)」とする。
図6(D)に示すように、上向き表示から時計回りに270度回転させた場合を「左向き表示(左向き横表示)」とする。
【0065】
制御部100は、タッチ表示部22の画面の向きに応じて、タッチ表示部22の画面の表示を回転させるノーマルモード(第1のモード)と、タッチ表示部22の画面が下向きになった場合に、ノーマルモードと異なる動作を行う第2のモードと、を切り替える。第2のモードは、例えば、ユーザが寝た姿勢で携帯型情報処理装置20を操作するのに適したモードである(以下、「寝モバモード」と称する。)。寝モバモードは、ユーザが横になった状態(寝転がった状態)で携帯型情報処理装置20を使用する場合に、ユーザを煩わせることなく、画面に適正な表示方向で情報を表示するためのモードである。以下に説明する状態遷移や画面表示の回転で使用する加速度x、y、zの値(閾値)は一例であり、ヒステリシスやトレランスを考慮して、加速度x、y、zの値を設定してもよい。
【0066】
制御部100は、加速度zに基づいて、ノーマルモードと寝モバモードを切り替え、加速度x、yに基づいて、ノーマルモード及び寝モバモードにおける画面表示の回転を行う。制御部100は、加速度センサ24で検出される加速度zが第1の所定値より大きくなった場合に(例えば、z>0.7)、タッチ表示部22の画面が下向きになったと判断することができる。
【0067】
また、制御部100は、加速度センサ24で検出される加速度zが第2の所定値より小さくなった場合に(例えば、z<−0.3)、タッチ表示部22の画面が上向きになったと判断することができる。
【0068】
制御部100は、タッチ表示部22の画面が下向きになった場合は、寝モバモードを実行し、タッチ表示部22の画面が上向きになった場合は、ノーマルモードを実行してもよい。また、寝モバモードは、さらに、3つのモード(3つの状態)を有する。
【0069】
x、yが第1の範囲(上向き表示の場合に−0.6≦x≦0.6、右向き表示の場合に−0.6≦y≦0.6、下向き表示の場合に−0.6≦x≦0.6、左向き表示の場合に−0.6≦y≦0.6)にある場合を、準備モード(第1の状態)とする。x、yが第2の範囲(上向き表示の場合にx>0.6、右向き表示の場合にy<−0.6、下向き表示の場合にx<−0.6、左向き表示の場合にy>0.6)にある場合を右向きモード(第2の状態)とする。x、yが第3の範囲(上向き表示の場合にx<−0.6、右向き表示の場合にy>0.6、下向き表示の場合にx>0.6、左向き表示の場合にy<−0.6)にある場合を左向きモード(第3の状態)とする。
【0070】
制御部100は、準備モードでは、画面の表示の回転を行わず、右向きモードでは、ノーマルモードに対してオフセットを90度として回転させ、左向きモードでは、ノーマルモードに対してオフセットを270度として回転させる。
【0071】
図7〜
図9−Bは、寝モバモードに関して、制御部100がタッチ表示部22に表示する画面の表示例の一例を示す図である。
【0072】
図7は、制御部100がタッチ表示部22に表示する設定画面の一例を示す図である。同図に示す設定画面では、ユーザは寝モバモードのON/OFFと、画面の回転ロックのON/OFFを、画面に表示された選択ボタンによって設定することができる。制御部100は、回転ロックがONに設定されている場合は、タッチ表示部22の画面の表示の回転を禁止して回転させない。制御部100は、回転ロックがOFFに設定されている場合は、ノーマルモード又は寝モバモードを実行する。なお、設定画面に、ユーザの選択によって、常時寝モバモードを実行させる選択ボタンを別途設けるようにしてもよい。この選択ボタンで常時寝モバモードでの制御が選択されたことを検出した場合には、ノーマルモードでの制御を禁止して、常に、寝モバモードを実行する。
【0073】
制御部100は、回転ロックがOFFに設定されている場合において、寝モバモードのOFFが設定されている場合は、ノーマルモードを実行する。制御部100は、回転ロックがOFFに設定されている場合において、寝モバモードのONが設定されている場合は、タッチ表示部22の画面が上向きである場合は、ノーマルモードを実行し、タッチ表示部22の画面が下向きである場合は、寝モバモードを実行する。
【0074】
図8は、寝モバモードを実行中に、制御部100がタッチ表示部22に表示する画面の一例を示す図である。制御部100は、例えば、
図8に示すように、寝モバモードを実行している場合は、寝モバモードを実行中である旨をタッチ表示部22の画面に表示してもよい。
図8に示す例では、寝モバモードを実行中である旨を示すアイコン25が表示されている。
【0075】
図9−Aは、寝モバモードを実行する際に、制御部100がタッチ表示部22に表示する画面の一例を示す図である。制御部100は、例えば、
図9−Aに示すように、タッチ表示部22の画面が下向きになった場合は、タッチ表示部22の画面が下向きになった旨を表示してもよい。
図9−Aに示す例では、「画面の下向きを検出しました。寝モバモードを実行します」と表示されている。
【0076】
図9−Bは、寝モバモードを実行する際に、制御部100がタッチ表示部22に表示する画面の他の例を示す図である。制御部100は、例えば、
図9−Bに示すように、タッチ表示部22の画面が下向きになった場合は、その旨を表示すると共に、寝モバモードを実行するか否かをユーザに確認するメッセージを表示してもよい。
図9−Bに示す例では、「画面の下向きを検出しました。寝モバモードを実行しますか?」というメッセージと、ユーザが寝モバモードを実行するか否かを選択するための「Yes」と「No」のボタンが表示されている。制御部100は、ユーザにより「Yes」ボタンが選択された場合は、寝モバモードを実行し、ユーザにより「Yes」ボタンが選択された場合は、寝モバモードを実行しないで、ノーマルモードを実行することができる。
【0077】
図10〜
図12を参照して、寝モバモードの詳細な処理を説明する。
図10は、制御部100により実行されるタッチ表示部22の画面表示の回転に関する処理の一例を説明するためのフローチャートである。
図11は、ノーマルモードと寝モバモード間の状態遷移を説明するための説明図、
図12−A及び
図12−Bは、ノーマルモードと寝モバモードの画面の表示の回転を説明するための図である。
【0078】
図10において、
図7で示した設定画面で寝モバモードのON、画面の回転ロックのOOFFを設定されている場合において、最初にノーマルモードにある場合を例として説明する。
【0079】
図10において、まず、ノーマルモードでは、制御部100は、y<−0.7の場合は、上向き表示に回転、x<−0.7の場合は右向き表示に回転、y>0.7の場合は下向き表示に回転、y>0.7の場合は左向き表示に回転させる(ステップS11)。
【0080】
次に、制御部100は、z>0.7であるか否かを判断し(ステップS12)、z>0.7でない場合には(ステップS12の「No」)、ステップS11に戻り、ノーマルモードを維持し、z>0.7である場合には(ステップS12の「Yes」)、寝モバモードの準備モードに移行する(ステップS13)。
【0081】
制御部100は、寝モバモードの準備モードでは、画面表示の回転を行わない。次に、制御部100は、z<−0.3であるか否かを判断し(ステップS14)、z<−0.3の場合には(ステップS14の「Yes」)、ステップS11に戻り、ノーマルモードに移行する。他方、z<−0.3でない場合は(ステップS14の「No」)、制御部100は、上向き表示の場合にx>0.6、右向き表示の場合にy<−0.6、下向き表示の場合にx<−0.6、左向き表示の場合にy>0.6であるか否かを判断する(ステップS15)。
【0082】
上向き表示の場合にx>0.6、右向き表示の場合にy<−0.6、下向き表示の場合にx<−0.6、左向き表示の場合にy>0.6である場合には(ステップS14の「Yes」)、制御部100は、寝モバモードの右向きモードに移行する(ステップS17)。
【0083】
制御部100は、寝モバモードの右向きモードでは、ノーマルモードに対して画面の回転角度のオフセットを90度として、y<−0.7の場合は右向き表示に回転、x<−0.7の場合は下向き表示に回転、y>0.7の場合は左向き表示に回転、x>0.7の場合は上向き表示に回転する。続いて、制御部100は、z>0.7であるか否かを判断し(ステップS18)、z>0.7である場合には(ステップS18の「Yes」)、ステップS13に戻り、寝モバの準備モードに移行する。z>0.7でない場合には(ステップS18の「No」)、制御部100は、z<−0.3であるか否かを判断する(ステップS19)。z<−0.3である場合には(ステップS19の「Yes」)、ステップS11に戻り、ノーマルモードに移行する。他方、z<−0.3でない場合には(ステップS19の「No」)、ステップS17に戻り、寝モバモードの右向きモードを維持する。
【0084】
他方、上記ステップS15において、上向き表示の場合にx>0.6、右向き表示の場合にy<−0.6、下向き表示の場合にx<−0.6、左向き表示の場合にy>0.6でない場合には(ステップS15の「No」)、制御部100は、上向き表示の場合にx<−0.6、右向き表示の場合にy>0.6、下向き表示の場合にx>0.6、左向き表示の場合にy<−0.6であるか否かを判断する(ステップS16)。上向き表示の場合にx<−0.6、右向き表示の場合にy>0.6、下向き表示の場合にx>0.6、左向き表示の場合にy<−0.6でない場合には(ステップS16の「No」)、ステップS13に戻り、寝モバモードの準備モードを維持する。上向き表示の場合にx<−0.6、右向き表示の場合にy>0.6、下向き表示の場合にx>0.6、左向き表示の場合にy<−0.6である場合には(ステップS16の「Yes」)、制御部100は、寝モバモードの左向きモードに移行する(ステップS20)。
【0085】
制御部100は、寝モバモードの左向きモードでは、ノーマルモードに対して回転のオフセットを270度として、y<−0.7の場合は左向き表示に回転、x<−0.7の場合は上向き表示に回転、y>0.7の場合は右向き表示に回転、x>0.7の場合は下向き表示に回転する。続いて、制御部100は、z>0.7であるか否かを判断し(ステップS21)、z>0.7である場合には(ステップS21の「Yes」)ステップS13に戻り、寝モバモードの準備モードに移行する。z>0.7でない場合には(ステップS21の「No」)、制御部100は、z<−0.3であるか否かを判断する(ステップS22)。z<−0.3である場合には(ステップS22の「Yes」)、ステップS11に戻り、制御部100は、ノーマルモードに移行する。他方、z<−0.3でない場合には(ステップS22の「No」)、ステップS20に戻り、寝モバモードの左向きモードを維持する。
【0086】
図11を参照して、上記10のフローチャートに関して、ノーマルモードと寝モバモード間の状態遷移を説明する。
図11において、ノーマルモードにある場合に、制御部100は、z>0.7となった場合は、画面が下向きであると判断して、寝モバモードの準備モードに移行する。この準備モードは、仰向けで寝ながら携帯型情報処理装置20を使用する場合を想定している。
【0087】
制御部100は、寝モバモードの準備モードにおいて、上向き表示の場合にx>0.6、右向き表示の場合にy<−0.6、下向き表示の場合にx<−0.6、左向き表示の場合にy>0.6となった場合は(携帯型情報処理装置20を右回りに回転させた場合)、寝モバモードの右向きモードに移行する。この右向きモードは、体を右向きにして寝たままで携帯型情報処理装置20を使用する場合を想定している。
【0088】
また、制御部100は、寝モバモードの準備モードにおいて、上向き表示の場合にx<−0.6、右向き表示の場合にy>0.6、下向き表示の場合にx>0.6、左向き表示の場合にy<−0.6となった場合は(携帯型情報処理装置20を左回りに回転させた場合)、寝モバモードの左向きモードに移行する。この左向きモードは、体を左向きにして寝たままで携帯型情報処理装置20を使用する場合を想定している。
【0089】
制御部100は、右向きモード又は左向きモードにおいて、z>0.7となった場合は、準備モードに移行する。これは、z>0.7となり画面が下向きになった状態では、ユーザが体を右向き又は左向きにして寝たままで携帯型情報処理装置20を使用する場合は考えにくいため、仰向けで使用することを想定して準備モードに移行することにしている。また、制御部100は、寝モバモードにおいて、z<−0.3となった場合は、画面が上向きになったと判断して、ノーマルモードに移行する。
【0090】
図12−A及び
図12−Bを参照して、上記
図10のフローチャートに関して、ノーマルモードと寝モバモードの画面の表示の回転を説明する。
図12−Aにおいて、制御部100は、ノーマルモードでは、y<−0.7の場合は上向き表示に回転、x<−0.7の場合は右向き表示に回転、y>0.7の場合は下向き表示に回転、x>0.7の場合は左向き表示に回転させる。寝モバモードの準備モードでは、画面表示を回転させない。これは、仰向けで寝ながら見ている場合は、一般にユーザは画面表示を回転させることを望まないためである。
【0091】
寝モバモードの右向きモードでは、ノーマルモードに対して回転のオフセットを90度として、y<−0.7の場合は右向き表示に回転、x<−0.7の場合は下向き表示に回転、y>0.7の場合は左向き表示に回転、x>0.7の場合は上向き表示に回転する。これにより、右向きモードでは、
図12−Bに示すように、体を右向きにして寝たままで携帯型情報処理装置20を使用する場合に、タッチ表示部22には、縦表示及び横表示に拘わらず、ユーザの頭を上とした方向に沿って情報が表示されるため、ユーザにとって見易い表示となる。
【0092】
寝モバモードの左向きモードでは、ノーマルモードに対して回転のオフセットを270度として、y<−0.7の場合は左向き表示に回転、x<−0.7の場合は上向き表示に回転、y>0.7の場合は右向き表示に回転、x>0.7の場合は下向き表示に回転する。これにより、左向きモードでは、
図12−Bに示すように、体を左向きにして寝たままで携帯型情報処理装置20を使用する場合に、タッチ表示部22には、縦表示及び横表示に拘わらず、ユーザの頭を上とした方向に沿って情報が表示されるため、ユーザにとって見易い表示となる。
少なくとも一方の面側に設けられた表示部を備えると共に、前記表示部の画面の向きに応じて前記表示部の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置であって、
前記表示部の画面の向きを検出する検出手段と、
前記表示部の画面表示の回転を制御する制御手段と、
を備え、
前記制御手段は、前記表示部の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を前記表示部の画面の向きに応じて選択的に実行し、
前記第2の動作モードは、所定の条件において前記表示部の画面表示の回転を行わない動作を実行する状態と、前記所定の条件とは異なる条件おいて前記表示部の画面表示の回転を前記第1の動作モードと異なるオフセットの角度で回転を実行する状態と、を含むことを特徴とする携帯型情報処理装置。
前記制御手段は、前記検出手段で前記表示部の画面が所定の向きであると検出された場合に、前記第2の動作モードを実行することを特徴とする請求項1に記載の携帯型情報処理装置。
前記検出手段は、デカルト座標系において、前記表示部の画面に平行で、かつ、互いに直交する方向をそれぞれX、Y軸方向とし、X軸方向及びY軸方向に直交する鉛直上向き方向をZ軸方向とした場合に、X、Y、Z軸方向の加速度x、y、zを検出する加速度センサを含むことを特徴とする請求項1又は請求項2に記載の携帯型情報処理装置。
前記検出手段は、前記加速度zが所定値より大きくなった場合に、前記表示部の画面が前記所定の向きであると判定することを特徴とする請求項3に記載の携帯型情報処理装置。
前記第2の動作モードでは、前記加速度x、yが第1の範囲にある場合は、前記表示部の画面表示の回転を行なわず、前記加速度x、yが第2の範囲にある場合は、前記第1の動作モードに対して、オフセットを90度として前記表示部の画面表示の回転を行ない、前記加速度x、yが第3の範囲にある場合は、前記第1の動作モードに対して、オフセットを270度として前記表示部の画面表示の回転を行なうことを特徴とする請求項3又は請求項4に記載の携帯型情報処理装置。
さらに、前記検出手段で前記表示部の画面が前記所定の向きであると検出された場合に、前記表示部の画面に、画面の向きが前記所定の向きである旨を表示するUI通知手段を備えたことを特徴とする請求項1〜請求項5のいずれか1つに記載の携帯型情報処理装置。
さらに、前記第2の動作モードを実行している場合に、前記表示部の画面に、前記第2の動作モードを実行している旨を表示するUI通知手段を備えたことを特徴とする請求項1〜請求項6のいずれか1つに記載の携帯型情報処理装置。
少なくとも一方の面側に設けられた表示部を備えると共に、前記表示部の画面の向きに応じて前記表示部の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置の表示制御方法であって、
前記表示部の画面の向きを検出する工程と、
前記表示部の画面表示の回転を制御する工程と、
を含み、
前記制御する工程では、前記表示部の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を前記表示部の画面の向きに応じて選択的に実行し、
前記第2の動作モードは、所定の条件において前記表示部の画面表示の回転を行わない動作を実行する状態と、前記所定の条件とは異なる条件おいて前記表示部の画面表示の回転を前記第1の動作モードと異なるオフセットの角度で回転を実行する状態と、を含むことを特徴とする携帯型情報処理装置の表示制御方法。
少なくとも一方の面側に設けられた表示部を備えると共に、前記表示部の画面の向きに応じて前記表示部の画面表示を回転させる画面回転機能を備えた携帯型情報処理装置に搭載されるプログラムであって、
前記表示部の画面の向きを検出する工程と、
前記表示部の画面表示の回転を制御する工程と、
をコンピュータに実行させ、
前記制御する工程では、前記表示部の画面表示を回転させる第1の動作モードによる制御と、当該第1の動作モードとは異なる第2の動作モードによる制御と、を前記表示部の画面の向きに応じて選択的に実行し、
前記第2の動作モードは、所定の条件において前記表示部の画面表示の回転を行わない動作を実行する状態と、前記所定の条件とは異なる条件おいて前記表示部の画面表示の回転を前記第1の動作モードと異なるオフセットの角度で回転を実行する状態と、を含むことを特徴とするコンピュータが実行可能なプログラム。