(57)【要約】【構成】ジャイロセンサユニット１００はコネクタ１０６および１０８ならびにジャイロセンサ１０４を含む。コネクタ１０６は第１コントローラ３４のコネクタ４２に物理的および電気的に接続可能な第１の形状を有し、ジャイロセンサユニット１００はコネクタ４２および１０６を介して第１コントローラ３４に接続される。コネクタ１０８は、第１の形状を有するコネクタが接続可能な第２の形状を有し、従来コネクタ４２に接続されていた第２コントローラ３６のコネクタ４０はコネクタ１０８にも接続可能である。したがって、コネクタ４２にコネクタ１０６が接続された状態で、コネクタ４０にコネクタ１０８を接続すれば、第２コントローラ３６は、ジャイロセンサユニット１００を介して第１コントローラ３４に接続される結果となる。【効果】従来第１コントローラに接続されていた第２コントローラをそのまま使用しながら、第１コントローラにジャイロセンサを追加できる。【選択図】図１１
2010017387.tif 000002
【特許請求の範囲】
【請求項１】
操作装置にコネクタを介して接続されることによって、当該操作装置と一体で用いられる拡張操作装置であって、
ハウジングと、
前記操作装置に設けられたコネクタに物理的および電気的に接続可能な第１の形状を有する第１のコネクタと、
前記第１の形状を有するコネクタが接続可能な第２の形状を有する第２のコネクタと、
センサとを備える、拡張操作装置。
【請求項２】
前記センサは、自身の動きを検出するモーションセンサである、請求項１記載の拡張操作装置。
【請求項３】
前記モーションセンサは、３軸のジャイロセンサである、請求項２記載の拡張操作装置。
【請求項４】
前記操作装置の前記コネクタが設けられている面には、少なくとも１つの孔部が設けられ、
当該孔部に嵌合可能な突起部材を更に備える、請求項２記載の拡張操作装置。
【請求項５】
前記突起部材は開閉可能な爪状部材であって、当該開閉をロックする突起ロック機構を更に備える、請求項４記載の拡張操作装置。
【請求項６】
前記ハウジングの、前記第１のコネクタ側の面から底面にかけて凹部をさらに備える、請求項２記載の拡張操作装置。
【請求項７】
前記第２のコネクタを塞ぐことができ、外した際にも前記ハウジングに係留される蓋をさらに備える、請求項２記載の拡張操作装置。
【請求項８】
前記第２のコネクタを通じて外部の装置からデータを取得し、当該外部の装置からのデータと前記モーションセンサからのデータとを前記第１のコネクタを通じて前記操作装置へ出力する、請求項２記載の拡張操作装置。
【請求項９】
前記センサからのデータを含む出力データを制御する出力データ制御手段と、
前記第２のコネクタ側の配線を前記第１のコネクタ側へ直接接続するためのバススイッチと、
前記バススイッチの接続のオン／オフを切り替えるバススイッチ制御手段とをさらに備え、
前記バススイッチがオフのときには前記第２のコネクタ側の配線が前記出力データ制御手段を介して前記第１のコネクタ側に接続される、請求項８記載の拡張操作装置。
【請求項１０】
前記センサへの電源供給のオン／オフを切り替えるセンサ電源管理手段をさらに備え、
前記バススイッチ制御手段は、前記センサの電源がオフにされているときに、前記バススイッチの接続をオンにする、請求項９記載の拡張操作装置。
【請求項１１】
前記第２のコネクタに所定の装置が接続されているか否かを検出する接続検出手段をさらに備え、
前記出力データ制御手段は、前記バススイッチの接続がオフであって、かつ前記第２のコネクタに前記所定の装置が接続されているとき、当該所定の装置から入力される第１のデータと、前記センサの出力に基づいた第２のデータとを前記第１のコネクタから交互に出力させる、請求項１０記載の拡張操作装置。
【請求項１２】
前記ジャイロセンサの各軸の検出する角速度の大きさを判定する角速度判定手段と、
前記角速度の大きさが大きい場合に、精度の低い第１の角速度データを出力させ、前記角速度の大きさが小さい場合には、前記第１の角速度データと同じデータ量であって精度が高い第２の角速度データを出力させる、角速度データ出力制御手段とをさらに備える、請求項３記載の拡張操作装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、拡張操作装置に関し、特にたとえば、操作装置にコネクタを介して接続されることによって、当該操作装置と一体で用いられる、拡張操作装置に関する。
【背景技術】
【０００２】
この種の装置の一例が、非特許文献１に開示されている。この背景技術では、「Ｗｉｉリモコン」（Ｗｉｉ：登録商標）は、自身の傾きや動きの変化を検出する３軸のモーションセンサを備えている。「ヌンチャク」もまた、３軸のモーションセンサを備えている。メインのコントローラであるＷｉｉリモコンには拡張コネクタが設けられており、拡張コントローラであるヌンチャクは、この拡張コネクタを介してＷｉｉリモコンに接続される。
【０００３】
プレイヤは、あるゲームでは、Ｗｉｉリモコンを片方の手で把持して、Ｗｉｉリモコンを動かすことにより操作を行う。別のゲームでは、Ｗｉｉリモコンを片方の手で、ヌンチャクをもう片方の手でそれぞれ把持して、Ｗｉｉリモコンおよびヌンチャクをそれぞれ動かすことにより操作を行う。
【非特許文献１】http://www.nintendo.co.jp/wii/controllers/index.html
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、Ｗｉｉリモコンやヌンチャクには、モーションセンサとして加速度センサしか搭載されていないため、回転を伴う動きの検出が容易でない。具体的には、たとえばテニスゲームにおいてスライスショットを実現しようとすると、Ｗｉｉリモコンの軸周りの角速度ないし回転角を高い精度で検出する必要がある。これらの変数は、加速度センサによって検出された３軸方向の加速度から計算可能ではあるが、３軸方向の加速度の各々が重力による加速度成分も含むため、角速度ないし回転角を高精度で算出するには、複雑な計算が必要となる。
【０００５】
したがって、個々のゲームプログラムにこのような計算のためのルーチンを組み込む必要があり、開発者にとって負担が大きい。また、このような計算を繰り返し実行することで、ゲーム装置のＣＰＵに大きな処理負荷がかかる。そこで、角速度を検出するジャイロセンサを、拡張コネクタを介してＷｉｉリモコンに接続することが考えられる。
【０００６】
しかし、ジャイロセンサを接続した状態では、ヌンチャクの使用が不可能となり、Ｗｉｉリモコンとヌンチャクとを使うゲームをプレイできない。
【０００７】
それゆえに、この発明の主たる目的は、新規な、拡張操作装置を提供することである。
【０００８】
この発明の他の目的は、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置にセンサを追加できる、拡張操作装置を提供することである。
【課題を解決するための手段】
【０００９】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために後述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【００１０】
第１の発明は、操作装置にコネクタを介して接続されることによって、当該操作装置と一体で用いられる拡張操作装置であって、ハウジングと、操作装置に設けられたコネクタに物理的および電気的に接続可能な第１の形状を有する第１のコネクタと、第１の形状を有するコネクタが接続可能な第２の形状を有する第２のコネクタと、センサとを備える。
【００１１】
第１の発明では、拡張操作装置（１００）は、ハウジング（１１０）、第１のコネクタ（１０６）、第２のコネクタ（１０８）およびセンサ（１０４）を備える。第１のコネクタは、操作装置に設けられたコネクタ（４２）に物理的および電気的に接続可能な第１の形状を有する。このため、第１のコネクタを操作装置のコネクタに接続することで、拡張操作装置は、これら２つのコネクタを介して操作装置に物理的および電気的に接続され、したがって、拡張操作装置を操作装置と一体で用いることが可能となって、操作装置にセンサが追加される結果となる。
【００１２】
一方、第２のコネクタは、第１の形状を有するコネクタが接続可能な第２の形状を有する。このため、従来操作装置のコネクタに接続されていた他の装置のコネクタ（たとえば第２コントローラ３６のコネクタ４０）は、第２のコネクタにも接続可能である。したがって、操作装置のコネクタに第１コネクタが接続された状態で、他の装置のコネクタを第２のコネクタに接続すれば、他の装置は、拡張操作装置を介して操作装置に接続される結果となる。
【００１３】
第１の発明によれば、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置にセンサを追加することができる。
【００１４】
なお、センサは、好ましい実施例ではジャイロセンサ（角速度センサ）であるが、たとえば加速度センサ、速度センサ、変位センサ、回転角センサなど、他のモーションセンサでもよい。モーションセンサ以外にも、傾斜センサ、イメージセンサ、光センサ、圧力センサ、磁気センサ、温度センサなどがあり、いずれのセンサを追加する場合でも、センサの検出対象を利用した操作が可能となる。
【００１５】
また、実施例のジャイロセンサは３軸センサであるが、２軸センサでも、１軸センサでもよい。他のモーションセンサの場合も、３軸センサが好ましいが、２軸センサまたは１軸センサでもよい。さらに、実施例の３軸ジャイロセンサは、２軸センサおよび１軸センサの２チップで構成されるが、３軸１チップで構成されても、１軸３チップで構成されてもよい。
【００１６】
第２の発明は、第１の発明に従属する拡張操作装置であって、センサは、自身の動きを検出するモーションセンサである。
【００１７】
第２の発明では、モーションセンサによって、センサ自身ひいては拡張操作装置およびこれと一体化された操作装置の動きが検出される。
【００１８】
第２の発明によれば、モーションセンサが追加されることで、操作装置自体の動きによる操作が可能になる。
【００１９】
第３の発明は、第２の発明に従属する拡張操作装置であって、モーションセンサは、３軸のジャイロセンサである。
【００２０】
第３の発明では、３軸のジャイロセンサによって、３軸周りの角速度が検出される。なお、好ましい実施例では、操作装置が３軸の加速度センサを備えており、これにより検出される３軸方向の加速度から３軸周りの角速度を求めることは原理的には可能であるが、煩雑な計算を要する。３軸のジャイロセンサが追加されたことで、このような計算は不要となる。
【００２１】
第３の発明によれば、操作装置を利用するアプリケーションの開発が容易となり、また、操作装置からの操作データを処理するマイコンの処理負荷が軽減される。
【００２２】
第４の発明は、第２の発明に従属する拡張操作装置であって、操作装置のコネクタが設けられている面には、少なくとも１つの孔部が設けられ、当該孔部に嵌合可能な突起部材を更に備える。
【００２３】
第４の発明では、操作装置のコネクタが設けられている面に、少なくとも１つの孔部（８２ａ、８２ｂ）が設けられ、拡張操作装置は、当該孔部に嵌合可能な突起部材（１１２Ｆａ、１１２Ｆｂ）を更に備える。突起部材が孔部に嵌合されることで、操作中であっても拡張操作装置が操作装置にしっかり固定された状態を保つことができる。
【００２４】
第５の発明は、第４の発明に従属する拡張操作装置であって、突起部材は開閉可能な爪状部材であって、当該開閉をロックする突起ロック機構を更に備える。
【００２５】
第５の発明では、開閉可能な爪状部材が孔部に嵌合される。爪状部材の開閉は、突起ロック機構（１１４）によってロックされる。
【００２６】
第５の発明によれば、爪状部材が孔部に嵌合した状態でロックされるので、よりしっかり固定することができる。
【００２７】
第６の発明は、第２の発明に従属する拡張操作装置であって、ハウジングの、第１のコネクタ側の面から底面にかけて凹部をさらに備える。
【００２８】
好ましい実施例では、操作装置は、ハウジング（７８）と、このハウジングの、コネクタ側の面から底面にかけて、ストラップ（２４）の通すための孔（８２ｃ）とを備えており、第６の発明では、拡張操作装置のハウジングの、第１のコネクタ側の面から底面にかけて凹部（１１０ａ）があるので、拡張操作装置を操作装置に接続した状態で、ストラップ用の孔が凹部から露見する。
【００２９】
第６の発明によれば、拡張操作装置を操作装置に接続した状態でも、ストラップの付け外しが行える。  
【００３０】
第７の発明は、第２の発明に従属する拡張操作装置であって、第２のコネクタを塞ぐことができ、外した際にもハウジングに係留される蓋をさらに備える。
【００３１】
第７の発明では、第２のコネクタ塞ぐための蓋（１１６）は、第２のコネクタから外した際にも、拡張操作装置のハウジングに係留される。
【００３２】
第７の発明によれば、蓋の紛失を防ぐことができる。
【００３３】
第８の発明は、第２の発明に従属する拡張操作装置であって、第２のコネクタを通じて外部の装置からデータを取得し、当該外部の装置からのデータとモーションセンサからのデータとを第１のコネクタを通じて操作装置へ出力する。
【００３４】
第８の発明では、外部の装置（３６）からのデータは、第２のコネクタを通じて拡張操作装置に取り込まれた後、拡張操作装置内のモーションセンサからのデータと同様に、第１のコネクタを通じて操作装置へと出力される。
【００３５】
第８の発明によれば、外部の装置からのデータは、拡張操作装置を介して操作装置に出力されるので、モーションセンサを追加しても、外部の装置をそのまま利用できる。
【００３６】
第９の発明は、第８の発明に従属する拡張操作装置であって、センサからのデータを含む出力データを制御する出力データ制御手段と、第２のコネクタ側の配線を第１のコネクタ側へ直接接続するためのバススイッチと、バススイッチの接続のオン／オフを切り替えるバススイッチ制御手段とをさらに備え、バススイッチがオフのときには第２のコネクタ側の配線が出力データ制御手段を介して第１のコネクタ側に接続される。
【００３７】
第９の発明では、センサからのデータを含む出力データは、出力データ制御手段（１０２）によって制御される。第２のコネクタ側の配線は、バススイッチ（ＳＷ）を介して第１のコネクタ側へ直接接続可能であり、このバススイッチによる接続のオン／オフは、バススイッチ制御手段（１０２）によって切り替えられる。バススイッチがオフのときには、第２のコネクタ側の配線は、出力データ制御手段を介して第１のコネクタ側に接続される。
【００３８】
第９の発明によれば、バススイッチがオンされると、第２のコネクタに接続された外部の装置からのデータは、出力データ制御手段の制御を受けることなく、第１のコネクタに接続された操作装置に出力されるようになる。一方、バススイッチがオフされると、外部の装置からのデータは、センサからのデータと共に出力データ制御手段の制御下に置かれるので、これら２種類のデータを出力する際の競合を回避できる。
【００３９】
なお、好ましい実施例では、出力データ制御手段は、アプリケーションがジャイロセンサからのデータを利用しないときバススイッチをオンし、ジャイロセンサからのデータを利用するときバススイッチをオフする。出力データ制御手段は、外部の装置からのデータをセンサからのデータと交互に出力する。
【００４０】
第１０の発明は、第９の発明に従属する拡張操作装置であって、センサへの電源供給のオン／オフを切り替えるセンサ電源管理手段をさらに備え、バススイッチ制御手段は、センサの電源がオフにされているときに、バススイッチの接続をオンにする。
【００４１】
第１０の発明では、センサ電源管理手段（１０２）がセンサへの電源供給のオン／オフを切り替える。バススイッチの接続は、センサの電源がオフにされているときに、バススイッチ制御手段によってオンにされる。したがって、センサの電源をオフにすると、バススイッチの接続がオンになり、外部の装置からのデータは、拡張操作装置をスルーして操作装置に到達するようになる。
【００４２】
第１０の発明によれば、センサからのデータを利用しないときにセンサの電源をオフすることで、消費電力を抑制できる。
【００４３】
第１１の発明は、第１０の発明に従属する拡張操作装置であって、第２のコネクタに対して、さらに所定の装置が接続されているか否かを検出する接続検出手段をさらに備え、出力データ制御手段は、バススイッチの接続がオフであって、かつ第２のコネクタにさらに所定の装置が接続されているとき、当該所定の装置から入力される第１のデータと、センサの出力に基づいた第２のデータとを第１のコネクタから交互に出力させる。
【００４４】
第１１の発明では、第２のコネクタに所定の装置（３６）が接続されているか否かが、接続検出手段（１０２）によって検出される。バススイッチの接続がオフであって、かつ第２のコネクタに所定の装置が接続されていれば、出力データ制御手段の制御の結果、当該所定の装置から入力される第１のデータと、センサの出力に基づいた第２のデータとが第１のコネクタから交互に出力される（Ｓ３１）。
【００４５】
第１１の発明によれば、第１のデータおよび第２のデータの間の競合を防止できる。
【００４６】
第１２の発明は、第３の発明に従属する拡張操作装置であって、ジャイロセンサの各軸の検出する角速度の大きさを判定する角速度判定手段と、角速度の大きさが大きい場合に、精度の低い第１の角速度データを出力させ、角速度の大きさが小さい場合には、第１の角速度データと同じデータ量であって精度が高い第２の角速度データを出力させる、角速度データ出力制御手段とをさらに備える。
【００４７】
第１２の発明では、ジャイロセンサの各軸の検出する角速度の大きさが、角速度判定手段（１０２）によって判定される。角速度データ出力制御手段（１０２）は、角速度の大きさが大きいと判定された場合に、精度の低い第１の角速度データを出力させ、角速度の大きさが小さいと判定された場合には、第１の角速度データと同じデータ量であって精度が高い第２の角速度データを出力させる。
【００４８】
第１２の発明によれば、角速度が大きいときには角速度データの精度を落とし、角速度が小さいときは角速度データの精度を上げることで、角速度データのデータ量を増やすことなく、角速度の検出精度の向上と、角速度の検出範囲の拡大とが共に図れる。
【発明の効果】
【００４９】
この発明によれば、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置にセンサを追加することができる。
【００５０】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００５１】
図１を参照して、この発明の一実施例であるゲームシステム１０は、ゲーム装置１２およびコントローラ１４を含む。ゲーム装置１２は据置型ゲーム装置である。コントローラ１４は、ユーザないしプレイヤの入力装置ないし操作装置である。ゲーム装置１２とコントローラ１４とは無線によって接続される。
【００５２】
ゲーム装置１２は、略直方体のハウジング１６を含み、ハウジング１６の前面にはディスクスロット１８およびメモリカードスロットカバー２０が設けられる。ディスクスロット１８から、ゲームプログラムおよびデータを記憶した情報記憶媒体の一例である光ディスク６６（図１０）が挿入されて、ハウジング１６内のディスクドライブ５４（図１０）に装着される。メモリカードスロットカバー２０の内側には外部メモリカード用コネクタ６２（図１０）が設けられており、外部メモリカード（図示せず）が挿入される。外部メモリカードは、光ディスク６６（図１０）から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム１０を利用してプレイされたゲームのゲームデータ（結果データまたは途中データ）を保存（セーブ）しておいたりするために利用される。また、上記ゲームデータの保存は、外部メモリカードに代えて、たとえばフラッシュメモリ等の内部メモリに対して行うようにしてもよい。
【００５３】
ゲーム装置１２のハウジング１６の後面には、ＡＶケーブルコネクタ（図示せず）が設けられ、当該コネクタを用いて、ゲーム装置１２はＡＶケーブル２８を介してモニタ（ディスプレイ）３０に接続される。このモニタ３０は典型的にはカラーテレビジョン受像機であり、ＡＶケーブル２８は、ゲーム装置１２からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ（モニタ）３０の画面上にたとえば３Ｄビデオゲームのゲーム画像が表示され、内蔵されるスピーカ３２からゲーム音楽や効果音などのステレオゲーム音声が出力される。
【００５４】
また、モニタ３０の周辺（この実施例では、モニタ３０の上側）には、２つの赤外ＬＥＤ（マーカ）２２ａおよび２２ｂを備えるマーカ部２２が設けられる。マーカ２２ａおよび２２ｂは、それぞれモニタ３０の前方に向けて赤外光を出力する。
【００５５】
なお、ゲーム装置１２の電源は、一般的なＡＣアダプタ（図示せず）によって与えられる。ＡＣアダプタは家庭用の標準的な壁ソケットに接続され、家庭用電源を、ゲーム装置１２を駆動するのに適した低いＤＣ電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。マーカ部２２は、図示しない電源線を通してゲーム装置１２に接続されており、ゲーム装置１２から電源の供給を受ける。
【００５６】
コントローラ１４は、詳細は後述されるが、それぞれが片手で把持可能な第１コントローラ３４および第２コントローラ３６と、第１コントローラ３４に装着されるジャイロセンサユニット１００とを含む。第１コントローラ３４の後端面にはコネクタ４２（図２（Ａ）、図１１）が設けられ、第２コントローラ３６の後端から延びるケーブル３８の先端にはコネクタ４０（図４（Ａ）、図１１）が設けられ、そしてジャイロセンサユニット１００の先端面および後端面にはコネクタ１０６および１０８（図６（Ａ）、図６（Ｂ）、図７および図１１）がそれぞれ設けられる。ジャイロセンサユニット１００の先端面側のコネクタ１０６は第１コントローラ３４のコネクタ４２と接続可能であり、第２コントローラ３６のコネクタ４０は第１コントローラ３４のコネクタ４２またはジャイロセンサユニット１００の後端面側のコネクタ１０８と接続可能である。
【００５７】
コネクタ１０６をコネクタ４２に接続することで、ジャイロセンサユニット１００は、第１コントローラ３４と物理的および電気的に結合される。こうして第１コントローラ３４に装着（一体化）されたジャイロセンサユニット１００からは、第１コントローラ３４の角速度を示す角速度データが出力される。
【００５８】
こうして第１コントローラ３４にジャイロセンサユニット１００が装着された場合、第２コントローラ３６のコネクタ４０は、ジャイロセンサユニット１００の後端面側のコネクタ１０８に接続される。すなわち、コネクタ４２は、コネクタ１０６とコネクタ４０の両者を選択的に接続可能な構造であって、コネクタ４０は、コネクタ４２とコネクタ１０８の両者に選択的に接続可能な構造である。したがって、ジャイロセンサユニット１００に設けられるコネクタ１０６とコネクタ１０８とは、同一のハウジングに設けられるため実際は接続できないが、コネクタの形状としては互いに接続可能な形状をしていることになる。第２コントローラ３６の入力データは、ケーブル３８およびジャイロセンサユニット１００を介して第１コントローラ３４に与えられる。第１コントローラ３４は、第１コントローラ３４自身の入力データと、ジャイロセンサユニット１００からの角速度データと、第２コントローラ３６の入力データとを含むコントローラデータをゲーム装置１２に送信する。
【００５９】
なお、コネクタ４０をコネクタ４２に接続した場合には、第２コントローラ３６の操作データないし入力データはケーブル３８を介して第１コントローラ３４に与えられ、第１コントローラ３４は、第１コントローラ３４自身の入力データと第２コントローラ３６の入力データとを含むコントローラデータをゲーム装置１２に送信する。
【００６０】
このとき、第１コントローラ３４の入力データと、第２コントローラ３６の入力データを送信するシステムにおいて、一度に送信するデータ量を追加することができないように設計されている場合もあるが、ジャイロユニット１００を追加した場合に、ジャイロユニット１００からの角速度データと、第２コントローラ３６からの入力データとを交互に第１コントローラ３６へ出力することによって、両者のデータを送信することができる。このデータ制御はジャイロユニット１００で行うことができるので、第１コントローラ３４や第２コントローラ３６には何ら設計の変更をする必要がない。
【００６１】
このように、ジャイロセンサユニット１００は、既存の第１コントローラ３４および第２コントローラ３６をそのまま利用しながら、第１コントローラ３４にジャイロ機能を付加するための拡張ユニットである。
【００６２】
このゲームシステム１０において、ゲーム（または他のアプリケーション）をプレイするために、ユーザはまずゲーム装置１２の電源をオンし、次いで、ユーザはビデオゲーム（もしくは実行したいと思う他のアプリケーション）を記憶している適宜の光ディスク６６を選択し、その光ディスク６６をゲーム装置１２のディスクスロット１８からディスクドライブ５４にローディングする。これに応じて、ゲーム装置１２がその光ディスク６６に記憶されているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置１２に入力を与えるためにコントローラ１４を操作する。
【００６３】
図２には第１コントローラ３４の外観の一例が示される。図２（Ａ）は、第１コントローラ３４を上面後方から見た斜視図であり、図２（Ｂ）は、第１コントローラ３４を下面前方から見た斜視図である。
【００６４】
第１コントローラ３４は、たとえばプラスチック成型によって形成されたハウジング７８を有している。ハウジング７８は、その前後方向（Ｚ軸方向）を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング７８は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、第１コントローラ３４を用いて、それに設けられたボタンを押下することと、第１コントローラ３４自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００６５】
ハウジング７８には、複数の操作ボタンが設けられる。すなわち、ハウジング７８の上面には、十字キー８０ａ、Ｘボタン８０ｂ、Ｙボタン８０ｃ、Ａボタン８０ｄ、セレクトスイッチ８０ｅ、メニュースイッチ８０ｆ、およびスタートスイッチ８０ｇが設けられる。一方、ハウジング７８の下面には凹部が形成されており、当該凹部の後方側傾斜面にはＢボタン８０ｈが設けられる。これら各ボタン（スイッチ）８０ａ−８０ｈには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング７８の上面には、遠隔からゲーム装置１２本体の電源をオン／オフするための電源スイッチ８０ｉが設けられる。第１コントローラ３４に設けられる各ボタン（スイッチ）は、包括的に参照符号８０を用いて示されることもある。
【００６６】
ハウジング７８内には、図２に示すＸ、ＹおよびＺの３軸方向（すなわち左右方向、上下方向および前後方向）の加速度を検出する加速度センサ８４（図１１）が設けられる。なお、加速度センサ８４としては、ハウジング７８の形状または第１コントローラ３４の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか２方向の加速度を検出する２軸加速度センサが用いられてもよい。場合によっては１軸加速度センサが用いられてもよい。
【００６７】
ハウジング７８の前面には光入射口７８ｂが形成され、ハウジング７８内には撮像情報演算部８１がさらに設けられる。撮像情報演算部８１は、赤外線を撮像するカメラと撮像対象の画像内での座標を算出する演算部とによって構成され、上述のマーカ２２ａおよび２２ｂを含む被写界を赤外線で捉えて、マーカ２２ａおよび２２ｂの被写界内における位置座標を算出する。
【００６８】
また、ハウジング７８の後面には、上述のコネクタ４２が設けられている。コネクタ４２は、第１コントローラ３４に他の機器を接続するために利用される。この実施例では、コネクタ４２には第２コントローラ３６のコネクタ４０またはジャイロセンサユニット１００のコネクタ１０６が接続される。
【００６９】
ハウジング７８の後面にはまた、コネクタ４２を左右（Ｘ軸方向）に挟んで対向する位置に、一対の孔８２ａおよび８２ｂが形成されている。この一対の孔８２ａおよび８２ｂは、ジャイロセンサユニット１００をハウジング７８の後面に固定するためのフック１１２Ｆａおよび１１２Ｆｂ（図６（Ａ））が挿入される。ハウジング７８の後面にはさらに、ストラップ２４（図４（Ｂ））を装着するための孔８２ｃも形成されている。
【００７０】
図３には第２コントローラ３６の本体の外観の一例が示される。図３（Ａ）は、第２コントローラ３６を上面後方から見た斜視図であり、図３（Ｂ）は、第２コントローラ３６を下面前方から見た斜視図である。なお、図３では、第２コントローラ３６のケーブル３８は省略されている。
【００７１】
第２コントローラ３６は、たとえばプラスチック成型によって形成されたハウジング８６を有している。ハウジング８６は、平面視では、前後方向（Ｚ軸方向）に略細長い楕円形状を有し、後端側の左右方向（Ｘ軸方向）の幅が先端側のそれよりも狭くされている。また、ハウジング８６は、側面視では、全体として湾曲した形状を有しており、先端側の水平部分から後端側に向かって下がるように湾曲している。ハウジング８６は、第１コントローラ３４と同様に、全体として大人や子供の片手で把持可能な大きさであるが、長手方向（Ｚ軸方向）の長さは、第１コントローラ３４のハウジング７８よりもやや短くされている。この第２コントローラ３６でも、プレイヤは、ボタンやスティックを操作することと、コントローラ自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
【００７２】
ハウジング８６の上面の先端側には、アナログジョイスティック８８ａが設けられる。ハウジング８６の先端には、後方にやや傾斜する先端面が設けられており、この先端面には、上下方向（図３に示すＹ軸方向）に並べて、Ｃボタン８８ｂおよびＺボタン８８ｃが設けられる。アナログジョイスティック８８ａおよび各ボタン８８ｂ，８８ｃには、ゲーム装置１２が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。第２コントローラ３６に設けられるアナログジョイスティック８８ａおよび各ボタン８８ｂ，８８ｃは、包括的に参照符号８８を用いて示されることもある。
【００７３】
また、第２コントローラ３６のハウジング８６内には加速度センサ９０（図１１）が設けられている。この加速度センサ９０としては、第１コントローラ３４の加速度センサ８４と同様の加速度センサが適用される。具体的には、この実施例では３軸加速度センサが適用され、第２コントローラ３６の上下方向（Ｙ軸方向）、左右方向（Ｘ軸方向）および前後方向（Ｚ軸方向）の３軸方向のそれぞれで加速度を検知する。したがって、第１コントローラ３４の場合と同様に、検出された加速度に適宜な演算処理を施すことによって、第２コントローラ３６の傾きや回転、重力方向に対する加速度センサ９０の姿勢などを算出することができる。また、振り等によって第１コントローラ３４に加えられた動きについても同様に算出することができる。
【００７４】
図４には第２コントローラ３６のコネクタ４０の外観の一例が示される。図４は、コネクタ４０を下面前方から見た斜視図である。なお、ここでもケーブル３８は省略されている。コネクタ４０は、たとえばプラスチック成型によって形成されたハウジング１４２を有する。ハウジング１４２の下面にはフック１４４が設けられている。このフック１４４は、本来的には、図５に示すように、コネクタ４０を第１コントローラ３４（のコネクタ４２）と直に接続した場合に、第１コントローラ３４に装着されたストラップ２４のひもを掛け止めるためのものである。ストラップ２４のひもをフック１４４に掛け止めることによって、コネクタがよりしっかり固定される。
【００７５】
図６にはジャイロセンサユニット１００の外観の一例が示される。図６（Ａ）は、ジャイロセンサユニット１００を上面前方から見た斜視図であり、図６（Ｂ）は、ジャイロセンサユニット１００を下面後方から見た斜視図である。
【００７６】
ジャイロセンサユニット１００は、たとえばプラスチック成型によって形成されたハウジング１１０を有している。ハウジング１１０は、略直方体形状を有しており、その長さは第１コントローラ３４のハウジング７８の長さのおよそ１／５、その幅および厚みはハウジング７８の幅および厚みとほぼ同じである。プレイヤは、第１コントローラ３４にジャイロセンサユニット１００を装着した状態でも、第１コントローラ３４自体の位置や向きを変えることによって、ゲーム操作を行うことができる。
【００７７】
ハウジング１１０の前面および後面には上述のコネクタ１０６および１０８が、ハウジング１１０の両側面には一対のリリースボタン１１２ａおよび１１２ｂが、そしてハウジング１１０の下面にはロックスイッチ１１４が、それぞれ設けられている。ハウジング１１０の前面下端から下面先端にかけては、第１コントローラ３４にジャイロセンサユニット１００を装着した状態でストラップ２４用の孔８２ｃが露見するように（図８）、略球面状の凹部１１０ａが設けられている。
【００７８】
ハウジング１１０の前面にはまた、コネクタ１０６を挟んで横方向（Ｘ軸方向）に対向する位置に、一対のリリースボタン１１２ａおよび１１２ｂとそれぞれ連繋する一対のフック１１２Ｆａおよび１１２Ｆｂが設けられている。ジャイロセンサユニット１００を第１コントローラ３４に装着するべく、コネクタ１０６をコネクタ４２に接続すると、一対のフック１１２Ｆａおよび１１２Ｆｂはハウジング７８後面の一対の孔８２ａおよび８２ｂ（図２（Ａ））に挿入され、フック１１２Ｆａおよび１１２Ｆｂの爪がハウジング７８の内壁に引っ掛かる。これによって、ジャイロセンサユニット１００は、第１コントローラ３４の後面に固定される。
【００７９】
こうして第１コントローラ３４に装着されたジャイロセンサユニット１００が図８に示される。この状態で一対のリリースボタン１１２ａおよび１１２ｂを押せば、爪の引っ掛かりは解け、ジャイロセンサユニット１００を第１コントローラ３４から取り外せるようになる。
【００８０】
ロックスイッチ１１４は、このようなリリースボタン１１２ａおよび１１２ｂにロックをかけるためのスライドスイッチである。リリースボタン１１２ａおよび１１２ｂは、ロックスイッチ１１４が第１位置（たとえば後ろ寄り）にあるとき押下不能（ロック状態）であり、ロックスイッチ１１４が第２位置（たとえば前寄り）にあるとき押下可能（解除状態）である。ハウジング１１０内には、ロックバネ１１８ａおよび１１８ｂ（図７）が設けられ、リリースボタン１１２ａおよび１１２ｂを押下すると反発するように構成され、押下されていないときは爪が引っ掛かった状態を維持するように構成されている。このため、ジャイロセンサユニット１００を取り外すには、ユーザは、ロックスイッチ１１４を第１位置から第２位置にスライドさせたうえで、リリースボタン１１２ａおよび１１２ｂを押す必要がある。
【００８１】
このように、ジャイロセンサユニット１００は、第１コントローラ３４の後面に装着されるため、ゲーム操作中にジャイロセンサユニット１００に加わる遠心力は専ら、ジャイロセンサユニット１００を第１コントローラ３４に押し付けるように作用する。また、ジャイロセンサユニット１００をフック１１２Ｆａおよび１１２Ｆｂで第１コントローラ３４の後面に固定する一方、フック１１２Ｆａおよび１１２Ｆｂを開放するためリリースボタン１１２ａおよび１１２ｂにはロックスイッチ１１４を設けたため、ゲーム操作中であってもジャイロセンサユニット１００と第１コントローラ３４とがしっかり固定された状態にすることができる。
【００８２】
ハウジング１１０の後面にはまた、コネクタ１０８に装着されるコネクタカバー１１６を収納可能な凹部１１０ｂが、このコネクタ１０８の周囲に形成される。コネクタカバー１１６は、その主面の一方端部に、前後（Ｚ軸方向）に長細い薄手の（すなわち曲折容易な）突起１１６ａを有する。この突起１１６ａの先端部分がハウジング１１０と係合されており、コネクタカバー１１６は、コネクタ１０８から取り外された状態でもハウジング１１０に係留される。
【００８３】
コネクタカバー１１６はまた、その主面の他方端部に、左右（Ｘ軸方向）に長細い厚手の（すなわち曲折困難な）突起１１６ｂを有する。突起１１６ｂの厚み（Ｚ軸方向の高さ）は、第２コントローラ３６のコネクタ４０に設けられたフック１４４（図４）の厚み（Ｙ軸方向の高さ）とほぼ同じである。第１コントローラ３４にジャイロセンサユニット１００を介して第２コントローラ３６が接続された場合、コネクタカバー１１６は、図９に示すように、その主面が水平となって、突起１１６ｂがフック１４４の側面と係合される。コネクタ１０８から取り外されたコネクタカバー１１６をこうしてコネクタ４０と一体化することで、操作性や見た目が改善されるだけでなく、コネクタ４０がジャイロセンサユニット１００にしっかりと固定される。
【００８４】
図７にはジャイロセンサユニット１００の構成の一例が示される。ジャイロセンサユニット１００は、上述したハウジング１１０、コネクタ１０６および１０８、リリースボタン１１２ａおよび１１２ｂ、フック１１２Ｆａおよび１１２Ｆｂ、ロックスイッチ１１４、コネクタカバー１１６ならびにロックバネ１１８ａおよび１１８ｂに加え、ジャイロ基板１２０および支持部材１２２を備える。ジャイロ基板１２０はコネクタ１０６および１０８の各々と信号線で接続され、支持部材１２２はジャイロ基板１２０ならびにコネクタ１０６および１０８を支持する。
ジャイロ基板１２０にはジャイロセンサ１０４が設けられる。ジャイロセンサ１０４は、１軸のジャイロセンサ１０４ａおよび２軸のジャイロセンサ１０４ｂの２チップで構成される。ジャイロセンサ１０４ａはヨー角に関する角速度（Ｙ軸周りの角速度）を検出するためのものであり、ジャイロセンサ１０４ｂはロール角およびピッチ角に関する２つの角速度（Ｚ軸周りの角速度およびＸ軸周りの角速度）を検出するためのものである。ジャイロセンサ１０４ａおよび１０４ｂは、ジャイロ基板１２０の上面１２０ａに水平に並べて設けられる。
【００８５】
なお、ジャイロセンサ１０４ａおよび１０４ｂの配置は、図７に示されたものに限らない。他の実施例では、ジャイロセンサ１０４ａは、ジャイロ基板１２０の上面１２０ａおよび下面１２０ｂの一方に水平に設けられ、ジャイロセンサ１０４ｂは、ジャイロ基板１２０の上面１２０ａおよび下面１２０ｂの他方に水平に、ジャイロ基板１２０を挟んでジャイロセンサ１０４ａと対向するように設けられる。その他の実施例では、ジャイロセンサ１０４ａはジャイロ基板１２０の上面１２０ａおよび下面１２０ｂの一方に垂直に設けられ、ジャイロセンサ１０４ｂはジャイロ基板１２０の上面１２０ａおよび下面１２０ｂの他方に水平に設けられる。
【００８６】
また、ジャイロセンサ１０４は、２チップ構成とは限らず、３個の１軸ジャイロセンサ（３チップ）で構成してもよく、１個の３軸ジャイロセンサ（１チップ）で構成してもよい。いずれの場合も、上述の３つの角速度を適正に検出できるように、各チップの位置や向きが決定される。さらにまた、場合によっては、ジャイロセンサ１０４は、１個の２軸ジャイロセンサで構成しても、２個または１個の１軸ジャイロセンサで構成してもよい。
【００８７】
なお、図２に示した第１コントローラ３４、図３および図４に示した第２コントローラ３６、および図６に示したジャイロセンサユニット１００の形状や、ボタン（スイッチまたはスティック等）の形状、数および設置位置等は単なる一例に過ぎず、他の形状、数および設置位置等に適宜変更され得る。
【００８８】
なお、センサは、好ましい実施例ではジャイロセンサ（角速度センサ）であるが、たとえば加速度センサ、速度センサ、変位センサ、回転角センサなど、他のモーションセンサでもよい。モーションセンサ以外にも、傾斜センサ、イメージセンサ、光センサ、圧力センサ、磁気センサ、温度センサなどがあり、いずれのセンサを追加する場合でも、センサの検出対象を利用した操作が可能となる。いずれのセンサを用いた場合でも、従来操作装置に接続されていた他の装置をそのまま使用しながら、操作装置に当該センサを追加することができる。
【００８９】
また、コントローラ１４の電源は、第１コントローラ３４内に取替可能に収容されるバッテリ（図示せず）によって与えられる。第２コントローラ３６には、コネクタ４０およびケーブル３８を介してこの電源が供給される。第１コントローラ３４にジャイロセンサユニット１００が接続されている場合、ジャイロセンサユニット１００にはコネクタ４２および１０６を介してこの電源が供給される。さらにジャイロセンサユニット１００に第２コントローラ３６が接続されていれば、第１コントローラ３４からジャイロセンサユニット１００に供給された電源の一部は、コネクタ１０８、コネクタ４０およびケーブル３８を介して第２コントローラ３６にも与えられる。
【００９０】
図１０にはゲームシステム１０の電気的な構成が示される。図示は省略するが、ハウジング１６内の各コンポーネントは、プリント基板に実装される。図１０に示すように、ゲーム装置１２には、ＣＰＵ４４が設けられ、ゲームプロセッサとして機能する。また、ＣＰＵ４４には、システムＬＳＩ６４が接続される。このシステムＬＳＩ６４には、外部メインメモリ４６、ＲＯＭ／ＲＴＣ４８、ディスクドライブ５４およびＡＶ  ＩＣ５６が接続される。
【００９１】
外部メインメモリ４６は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりして、ＣＰＵ４４のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ４８は、いわゆるブートＲＯＭであり、ゲーム装置１２の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ５４は、光ディスク６６からプログラムやテクスチャデータ等を読み出し、ＣＰＵ４４の制御の下で、後述する内部メインメモリ６４ｅまたは外部メインメモリ４６に書き込む。
【００９２】
システムＬＳＩ６４には、入出力プロセッサ６４ａ、ＧＰＵ(Graphics Processor Unit)６４ｂ，ＤＳＰ(Digital Signal Processor)６４ｃ，ＶＲＡＭ６４ｄおよび内部メインメモリ４２ｅが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
【００９３】
入出力プロセッサ（Ｉ／Ｏプロセッサ）４２ａは、データの送受信を実行したり、データのダウンロードを実行したりする。
【００９４】
ＧＰＵ６４は、描画手段の一部を形成し、ＣＰＵ４４からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、ＣＰＵ４０は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをＧＰＵ６４に与える。
【００９５】
図示は省略するが、上述したように、ＧＰＵ６４にはＶＲＡＭ６４ｄが接続される。ＧＰＵ６４が作画命令を実行するにあたって必要なデータ（画像データ：ポリゴンデータやテクスチャデータなどのデータ）は、ＧＰＵ６４がＶＲＡＭ６４ｄにアクセスして取得する。ただし、ＣＰＵ４４は、描画に必要な画像データを、ＧＰＵ６４を介してＶＲＡＭ６４ｄに書き込む。ＧＰＵ６４は、ＶＲＡＭ６４ｄにアクセスして描画のためのゲーム画像データを作成する。
【００９６】
なお、この実施例では、ＧＰＵ６４がゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、ＧＰＵ６４は当該任意のアプリケーションについての画像データを生成する。
【００９７】
また、ＤＳＰ６４ｃは、オーディオプロセッサとして機能し、内部メインメモリ６４ｅや外部メインメモリ４６に記憶されるサウンドデータや音波形（音色）データを用いて、スピーカ３２から出力する音、音声或いは音楽に対応するオーディオデータを生成する。
【００９８】
上述のように生成されたゲーム画像データおよびオーディオデータは、ＡＶ  ＩＣ５６によって読み出され、ＡＶコネクタ５８を介してモニタ３０およびスピーカ３２に出力される。したがって、ゲーム画面がモニタ３０に表示され、ゲームに必要な音（音楽）がスピーカ３２から出力される。
【００９９】
また、入出力プロセッサ６４ａには、フラッシュメモリ４３、無線通信モジュール５０および無線コントローラモジュール５２が接続されるとともに、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。また、無線通信モジュール５０にはアンテナ５０ａが接続され、無線コントローラモジュール５２にはアンテナ５２ａが接続される。
【０１００】
入出力プロセッサ６４ａは、無線通信モジュール５０を介して、ネットワーク（図示せず）に接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ６４ａは、定期的にフラッシュメモリ４３にアクセスし、ネットワークへ送信する必要があるデータ（「送信データ」とする）の有無を検出し、当該送信データが有る場合には、無線通信モジュール５０およびアンテナ５０ａを介してネットワークに送信する。また、入出力プロセッサ６４ａは、他のゲーム装置から送信されるデータ（「受信データ」とする）を、ネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、当該受信データをフラッシュメモリ４３に記憶する。ただし、受信データが一定の条件を満たさない場合には、当該受信データはそのまま破棄される。さらに、入出力プロセッサ６４ａは、ダウンロードサーバ（図示せず）からダウンロードしたデータ（ダウンロードデータとする）をネットワーク、アンテナ５０ａおよび無線通信モジュール５０を介して受信し、そのダウンロードデータをフラッシュメモリ４３に記憶することもできる。
【０１０１】
また、入出力プロセッサ６４ａは、コントローラ１４から送信される入力データをアンテナ５２ａおよび無線コントローラモジュール５２を介して受信し、内部メインメモリ６４ｅまたは外部メインメモリ４６のバッファ領域に記憶（一時記憶）する。入力データは、ＣＰＵ４４の処理（たとえば、ゲーム処理）によって利用された後、バッファ領域から消去される。
【０１０２】
なお、この実施例では、上述したように、無線コントローラモジュール５２は、Ｂｌｕｅｔｏｏｔｈ規格に従ってコントローラ１４との間で通信を行う。このため、コントローラ１４からデータを取得するだけでなく、ゲーム装置１２からコントローラ１４に所定の命令を送信し、コントローラ１４の動作をゲーム装置１２から制御することもできる。
【０１０３】
さらに、入出力プロセッサ６４ａには、拡張コネクタ６０およびメモリカード用コネクタ６２が接続される。拡張コネクタ６０は、ＵＳＢやＳＣＳＩのようなインタフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、コントローラ１４とは異なる他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ６０に有線ＬＡＮアダプタを接続し、無線通信モジュール５０に代えて当該有線ＬＡＮを利用することもできる。メモリカード用コネクタ６２には、メモリカード３８のような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ６４ａは、拡張コネクタ６０やメモリカード用コネクタ６２を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【０１０４】
詳細な説明は省略するが、図１にも示したように、ゲーム装置１２（ハウジング１６）には、電源ボタン２０ａ，リセットボタン２０ｂおよびイジェクトボタン２０ｃが設けられる。電源ボタン２０ａは、システムＬＳＩ６４に接続される。この電源ボタン２０ａがオンされると、システムＬＳＩ６４には、ゲーム装置１２の各コンポーネントに図示しないＡＣアダプタを経て電源が供給され、通電状態となるモードが設定される。
【０１０５】
リセットボタン２０ｂもまた、システムＬＳＩ６４に接続される。リセットボタン２０ｂが押されると、システムＬＳＩ６４は、ゲーム装置１２の起動プログラムを再起動する。イジェクトボタン２０ｃは、ディスクドライブ５４に接続される。イジェクトボタン２０ｃが押されると、ディスクドライブ５４から光ディスク６６が排出される。
【０１０６】
図１１には、第１コントローラ３４と第２コントローラ３６とがジャイロセンサユニット１００を介して接続されたときのコントローラ１４全体の電気的構成の一例が示される。
【０１０７】
第１コントローラ３４は、その内部に通信部９２を備え、通信部９２には、操作部８０、撮像情報演算部８１、加速度センサ８４およびコネクタ４２が接続される。操作部８０は、上述の操作ボタンないし操作スイッチ８０ａ‐８０ｉを示す。操作部８０が操作されると、その操作を示すデータが通信部９２に出力される。撮像情報演算部８１からは、マーカ２２ａおよび２２ｂの被写界内における位置座標を示すデータが通信部９２に出力される。加速度センサ８４が検出した加速度を示すデータもまた、通信部９２へ出力される。加速度センサ８４は、たとえば最大２００フレーム／秒程度のサンプリング周期を有する。
【０１０８】
コネクタ４２には、ジャイロセンサユニットのコネクタ１０６が接続される。ジャイロセンサユニット１００は、その内部にマイコン１０２およびジャイロセンサ１０４を含む。ジャイロセンサ１０４は、上述のジャイロセンサ１０４ａおよび１０４ｂを示しており、たとえば加速度センサ８４と同様のサンプリング周期を有する。マイコン１０２は、ジャイロセンサ１０４が検出した角速度を示すデータをコネクタ１０６およびコネクタ４２を介して通信部９２に出力する。
【０１０９】
ジャイロセンサユニット１００のコネクタ１０８には、第２コントローラ３６から延びるケーブル３８のコネクタ４０が接続される。コネクタ４０には、第２コントローラ３６の操作部８８および加速度センサ９０が接続される。操作部８８は、上述のスティック８８ａおよび操作ボタン８８ｂ、８８ｃを示す。操作部８８が操作されると、その操作を示すデータがケーブル３８、コネクタ４０およびコネクタ４２を介してジャイロセンサユニット１００のマイコン１０２に与えられる。マイコン１０２は、このデータをコネクタ１０６、コネクタ４２を介して通信部９２に出力する。また、加速度センサ９０も、加速度センサ８４と同様のサンプリング周期を有しており、これにより検出された加速度を示すデータもまた、マイコン１０２によって通信部９２に出力される。
【０１１０】
なお、上述した通信部９２への各出力は、たとえば１／２００秒周期で実行される。したがって、任意の１／２００秒間に、操作部８０からの操作データと、撮像情報演算部８１のからの位置座標データと、加速度センサ８４からの加速度データと、ジャイロセンサ１０４からの角速度データと、操作部８８からの操作データと、加速度センサ９０からの加速度データとが、１回ずつ通信部９２に出力される。
【０１１１】
図１２には、図１１に示した全体構成のうちジャイロセンサユニット１００の要部構成が示される。上述のコネクタ４２、コネクタ１０６、コネクタ１０８およびコネクタ４０は、それぞれたとえば６ピンのコネクタであり、この６ピンの中に、コネクタ間の接続状態を示す変数“Ａｔｔａｃｈ”を制御するためのＡｔｔａｃｈピンが含まれている。Ａｔｔａｃｈは、コネクタ間が切断されていることを示す“Ｌｏｗ”と、コネクタ間が接続されていることを示す“Ｈｉｇｈ”との間で変化する。以下では特に、コネクタ４２・コネクタ１０６間つまり第１コントローラ３４・ジャイロセンサユニット１００間のＡｔｔａｃｈを“Ａｔｔａｃｈ１”と呼び、コネクタ１０８・コネクタ４０間つまりジャイロセンサユニット１００・第２コントローラ３６間のＡｔｔａｃｈを“Ａｔｔａｃｈ２”と呼ぶ。
【０１１２】
Ａｔｔａｃｈ１は、第１コントローラ３４にジャイロセンサユニット１００が装着されていても、アプリケーションがジャイロ非対応型であり、かつジャイロセンサユニット１００に第２コントローラ３６が接続されていない場合には、このジャイロ非対応アプリからジャイロセンサユニット１００が見えなくなるように、ジャイロセンサユニット１００のマイコン１０２によって“Ｌｏｗ”に制御される（スタンバイモード：図１４参照）。スタンバイモードでは、ジャイロセンサ１０４への電源供給は停止され、ジャイロ機能は停止状態となる。マイコン１０２は専ら、Ａｔｔａｃｈ２に基づくモード切り替えと、ジャイロ対応アプリからの指示に基づく電源管理とを行う。
【０１１３】
上記６ピンのうち他の２つにはＩ２Ｃバスが割り当てられており、ジャイロセンサユニット１００は、第１コントローラ３４側のＩ２Ｃバスと第２コントローラ３６側のＩ２Ｃバスとを互いに接続／分離するためのバススイッチＳＷをさらに含む。バススイッチＳＷは、第２コントローラ３６がジャイロセンサユニット１００を介して第１コントローラ３４に接続された状態で、ジャイロ非対応アプリが実行されるときに、マイコン１０２によりオンされる。以降、第２コントローラ３６からのデータは、マイコン１０２を経由することなく、Ｉ２Ｃバスを通じて通信部９２に出力されるようになる（バイパスモード：図１４参照）。したがって、マイコン１０２は、スタンバイモードと同様、モード切り替えと電源管理とを行えばよく、消費電力が抑制される。また、ジャイロセンサユニット１００を装着したままでも、ジャイロ非対応アプリを実行できる。バススイッチＳＷがオフのときは、バスはマイコン１０２に接続され、第１コントローラ３４に出力するデータは、マイコン１０２によって制御される。
【０１１４】
バススイッチＳＷはまた、スタンバイモードでもオンされる。これによって、ジャイロ対応型のアプリケーションは、上述のようにＡｔｔａｃｈ１が“Ｌｏｗ”に制御されていても、Ｉ２Ｃバスの特別なアドレスを参照することで、第１コントローラ３４にジャイロセンサユニット１００が装着されているかどうかを確認できる。
【０１１５】
なお、ジャイロセンサユニット１００には、上述した“スタンバイ”および“バイパス”に加え、“ジャイロ”および“ジャイロ＆第２コントローラ”の計４モードが準備されている。後の２つのモードでは、バススイッチＳＷはオフされる。
【０１１６】
ジャイロセンサユニット１００のマイコン１０２は、２種類のＡ／Ｄ変換回路１０２ａおよび１０２ｂを含んでおり、ジャイロセンサ１０４から出力される３軸周りの角速度信号は、これらＡ／Ｄ変換回路１０２ａおよび１０２ｂの各々に与えられる。Ａ／Ｄ変換回路１０２ａでは、ジャイロセンサ１０４の検出範囲の全部（たとえば±３６０度／秒）を対象とする高角速度モードのＡ／Ｄ変換処理が実行され、Ａ／Ｄ変換回路１０２ｂでは、ジャイロセンサ１０４の検出範囲の一部（たとえば±９０度／秒）を対象とする低角速度モードのＡ／Ｄ変換処理が実行される。マイコン１０２は、これら２種類のＡ／Ｄ変換結果のいずれか一方を角速度データとして出力する。
【０１１７】
具体的には、Ａ／Ｄ変換回路１０２ａおよび１０２ｂからある時刻に対応する２種類の角速度データが出力されると、マイコン１０２は最初、このうち低角速度モードの角速度データについて、その値Ａが第１閾値Ｔｈ１から第２閾値Ｔｈ２（＞Ｔｈ１）までの範囲内にあるかどうか、すなわち条件“Ｔｈ１≦Ａ≦Ｔｈ２”が満足されるか否かを、軸毎に、つまりヨー、ロールおよびピッチの各々について判定する。次に、これら３つの判定結果に基づいて、低角速度モードおよび高角速度モードのいずれか１つを選択する。たとえば、３つの判定結果それぞれに関して、ＹＥＳであれば低角速度モードを選択し、ＮＯであれば高角速度モードを軸ごとに選択する。そして、軸ごとに選択されたモードに従う角速度データを、選択されたモードを示すモード情報と共にそれぞれ出力する。つまり、角速度に応じてデータの精度を変えることによって、同じデータ量であっても、低速のときにはより精度の高いデータを出力することができる。
【０１１８】
図１３には、ジャイロセンサユニット１００が取り扱うデータのフォーマットが示される。図１３（Ａ）はジャイロセンサユニット１００用データのフォーマットを示し、図１３（Ｂ）は第２コントローラ３６用データのフォーマットを示す。ジャイロセンサユニット１００用のデータは、ヨー角速度データ、ロール角速度データおよびピッチ角速度データと、ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報と、第２コネクタ接続情報と、ジャイロ・第２コントローラ識別情報とを含む。
【０１１９】
ヨー角速度データ、ロール角速度データおよびピッチ角速度データは、ジャイロセンサ１０４から出力されるヨー角速度信号、ロール角速度信号およびピッチ角速度信号をＡ／Ｄ変換して得られる、たとえば各１４ビットのデータである。ヨー角速度モード情報、ロール角速度モード情報およびピッチ角速度モード情報は、それぞれ対応する角速度データのモードを示す各１ビットの情報であり、高角速度モードに対応する“０”と、低角速度モードに対応する“１”との間で変化する。
【０１２０】
第２コントローラ接続情報は、コネクタ１０６に第２コントローラ３６が接続されているか否かを示す１ビットの情報であり、非接続を示す“０”と、接続を示す“１”との間で変化する。ジャイロ・第２コントローラ識別情報は、当該データがジャイロセンサユニット１００から出力されたデータであるか第２コントローラ３６から出力されたデータであるかを識別する１ビットの情報であり、ジャイロセンサユニット１００からのデータであることを示す“１”と、第２コントローラ３６からのデータであることを示す“０”との間で変化する。
【０１２１】
一方、第２コントローラ３６用のデータは、左右方向（Ｘ軸方向）のスティック操作および前後方向（Ｚ軸方向）のスティック操作をそれぞれ示すＸスティック操作データおよびＹスティック操作データと、Ｘ軸方向の加速度、Ｙ軸方向の加速度およびＺ軸方向の加速度をそれぞれ示すＸ加速度データ、Ｙ加速度データおよびＺ加速度データと、ボタン操作データと、第２コネクタ接続情報と、ジャイロ・第２コントローラ識別情報とを含む。
【０１２２】
ジャイロセンサユニット１００は通信部９２に、図１３（Ａ）のフォーマットに従うジャイロ用データと、図１３（Ｂ）のフォーマットに従う第２コントローラ用データとを、それぞれたとえば１／２００秒周期で交互に出力する。したがって、片方のフォーマットに関しては、１／１００秒周期で出力されることになるが、これはゲームの処理等で一般的な処理期間である１／６０秒周期よりも十分短いことから、データを交互に出力してもゲーム処理で両方のデータを１フレームで同時に利用することができる。
【０１２３】
通信部９２は、マイクロコンピュータ（マイコン）９４、メモリ９６、無線モジュール７６およびアンテナ９８を含む。マイコン９４は、処理の際にメモリ９６を記憶領域（作業領域やバッファ領域）として用いながら、無線モジュール７６を制御して、取得したデータをゲーム装置１２に送信したりゲーム装置１２からのデータを受信したりする。
【０１２４】
ジャイロセンサユニット１００から通信部９２に出力されたデータは、マイコン９４を経て一時的にメモリ９６に格納される。第１コントローラ３４内の操作部８０、撮像情報演算部８１および加速度センサ８４から通信部９２に出力されたデータもまた、メモリ９６に一時的に格納される。マイコン９４は、ゲーム装置１２への送信タイミングが到来すると、メモリ９６に格納されているデータをコントローラデータとして無線モジュール７６へ出力する。コントローラデータには、図１３（Ａ）および図１３（Ｂ）に示したジャイロ用データおよび／または第２コントローラ用データに加えて、第１コントローラ用データが含まれる。第１コントローラ用データには、加速度センサ８４の出力に基づくＸ加速度データ、Ｙ加速度データおよびＺ加速度データと、撮像情報演算部８１の出力に基づく位置座標データと、操作部８０の出力に基づくボタン操作データとが含まれる。
【０１２５】
無線モジュール７６は、Ｂｌｕｅｔｏｏｔｈ（ブルートゥース）（登録商標）のような近距離無線通信技術を用いて、所定周波数の搬送波をコントローラデータで変調し、その微弱電波信号をアンテナ９８から放射する。つまり、コントローラデータは、無線モジュール７６で微弱電波信号に変調されて第１コントローラ３４から送信される。微弱電波信号はゲーム装置１２側のＢｌｕｅｔｏｏｔｈ通信ユニット７４で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置１２はコントローラデータを取得することができる。ゲーム装置１２のＣＰＵ４４は、コントローラ１４から取得したコントローラデータに基づいてゲーム処理を行う。なお、第１コントローラ３４とゲーム装置１２との無線通信は、無線ＬＡＮなど他の規格に従って実行されてもよい。
【０１２６】
このゲームシステム１０では、ボタン操作だけでなく、コントローラ１４自体を動かすことによっても、ゲームなどのアプリケーションに対する入力を行うことができる。ゲームをプレイする際には、たとえば図１８に示すように、プレイヤは、その右手で第１コントローラ３４（具体的にはハウジング７８の把持部７８ａ：図２）を持ち、その左手で第２コントローラ３６を持つ。上述のように、第１コントローラ３４には３軸方向の加速度を検出する加速度センサ８４が内蔵され、第２コントローラ３６にも同様の加速度センサ９０が内蔵されている。第１コントローラ３４および第２コントローラ３６がそれぞれプレイヤによって動かされると、加速度センサ８４および加速度センサ９０によって、それぞれのコントローラ自身の動きを示す３軸方向の加速度値が検出される。第１コントローラ３４にジャイロセンサユニット１００が装着されている場合には、第１コントローラ３４自身の動きを示す３軸周りの角速度値がさらに検出される。
【０１２７】
これらの検出値は、先述したコントローラデータの態様でゲーム装置１２に送信される。ゲーム装置１２（図１０）では、コントローラ１４からのコントローラデータは、入出力プロセッサ６４ａによってアンテナ５２ａおよび無線コントローラモジュール５２を介して受信され、受信されたコントローラデータは、内部メインメモリ６４ｅまたは外部メインメモリ４６のバッファ領域に書き込まれる。ＣＰＵ４４は、内部メインメモリ６４ｅまたは外部メインメモリ４６のバッファ領域に格納されたコントローラデータを読み出し、このコントローラデータから検出値つまりコントローラ１４によって検出された加速度および／または角速度の値を復元する。
【０１２８】
なお、角速度データには高角速度および低角速度の２つのモードがあるため、これら２つのモードにそれぞれ対応する２種類の角速度復元アルゴリズムが準備される。角速度データから角速度の値を復元するにあたっては、当該角速度データのモードに対応する角速度復元アルゴリズムが、角速度モード情報に基づいて選択される。
【０１２９】
ＣＰＵ４４はまた、このような復元処理と並行して、復元された加速度からコントローラ１４の速度を計算する処理を実行してもよい。さらに並行して、計算された速度からコントローラ１４の移動距離ないし位置を求めることもできる。一方、復元された角速度からは、コントローラ１４の回転角が求まる。なお、加速度を積算して速度を求めたり、角速度を積算して回転角を求めたりする際の初期値（積分定数）は、たとえば、撮像情報演算部８１のからの位置座標データに基づいて計算できる。位置座標データはまた、積算によって蓄積されていく誤差の修正にも用いることができる。
【０１３０】
ゲーム処理は、こうして求められた加速度、速度、移動距離、角速度および回転角などの変数に基づいて実行される。したがって、上記の処理は全てを行わなくともよく、ゲーム処理に必要な変数を適宜算出すればよい。なお、角速度や回転角も、原理的には加速度から計算し得るが、そのためには、ゲームプログラムに複雑なルーチンが必要で、ＣＰＵ４４にも重い処理負荷がかかる。ジャイロセンサユニット１００を利用することで、プログラム開発が容易になり、ＣＰＵ４４の処理負荷も軽減される。
【０１３１】
ところで、ゲームには、第１コントローラ３４しか利用しない１コントローラ用ゲームと、第１コントローラ３４および第２コントローラ３６を利用する２コントローラ用ゲームとがあり、そして各ゲームは、ジャイロ対応およびジャイロ非対応のいずれかに分類される。メインコントローラである第１コントローラ３４は、どのゲームをプレイする場合にも必要である。また、拡張コントローラである第２コントローラ３６は、２コントローラ用ゲームをプレイするときジャイロセンサユニット１００を介して、または直に第１コントローラ３４に接続され、１コントローラゲームをプレイするときには通常取り外される。
【０１３２】
一方、拡張センサないし拡張コントローラであるジャイロセンサユニット１００は、ジャイロ非対応ゲームをプレイする場合には不要であるが、わざわざ取り外さなくてもよい。このため、ジャイロセンサユニット１００は通常、第１コントローラ３４に装着したままにされ、第１コントローラ３４と一体で取り扱われる。第２コントローラ３６は、コネクタ４０の接続先がコネクタ４２からコネクタ１０８に変わる点を除けば、ジャイロセンサユニット１００が介在しない場合と同様に着脱される。
【０１３３】
図１４には、ジャイロセンサユニット１００のマイコン１０２による制御がモード毎に記載したテーブルが示される。ジャイロセンサユニット１００に準備されているモードは、先述した“スタンバイ”、“バイパス”、“ジャイロ”および“ジャイロ＆第２コントローラ”の４種類であり、マイコン１０２の制御対象は、“ジャイロ機能”、“ジャイロ
電源”、“バススイッチ”、“拡張コネクタ”、“Ａｔｔａｃｈ１”および“Ｉ２Ｃアドレス”の６項目に及ぶ。
【０１３４】
ジャイロ機能は、スタンバイおよびバイパスの各モードでは停止状態（Ｎｏ Ａｃｔｉｖｅ）に置かれる一方、ジャイロおよびジャイロ＆第２コントローラの各モードでは起動状態（Ａｃｔｉｖｅ）に置かれる。ジャイロ電源つまりジャイロセンサ１０４への電源供給は、スタンバイおよびバイパスの各モードで停止（ＯＦＦ）され、ジャイロおよびジャイロ＆第２コントローラの各モードでは実行（ＯＮ）される。バススイッチＳＷは、スタンバイおよびバイパスの各モードで接続（Ｃｏｎｎｅｃｔ）され、ジャイロおよびジャイロ＆第２コントローラの各モードでは切断（Ｄｉｓｃｏｎｎｅｃｔ）される。
【０１３５】
拡張コネクタつまりコネクタ１０８は、バイパスおよびジャイロ＆第２コントローラの各モードで起動状態に置かれ、スタンバイおよびジャイロの各モードでは停止状態に置かれる。Ａｔｔａｃｈ１は、スタンバイモードで非接続状態を示す“Ｌｏｗ”に制御され、バイパス、ジャイロおよびジャイロ＆第２コントローラの各モードでは接続状態を示す“Ｈｉｇｈ”に制御される。Ｉ２Ｃアドレスに関しては、スタンバイおよびバイパスの各モードに限って、特別なアドレスが注目される。
【０１３６】
モード間の切り換えは、図１５に示す要領で行われる。図１５（Ａ）にはアプリケーションがジャイロ対応である場合の切り換え処理が、図１５（Ｂ）にはアプリケーションがジャイロ非対応である場合の切り換え処理が、それぞれ示される。図１５（Ａ）および図１５（Ｂ）に共通して、すなわちジャイロ対応アプリかジャイロ非対応アプリかによらず、ジャイロセンサユニット１００は、ジャイロセンサユニット１００自身が第１コントローラ３４に接続されるのに応答して起動し、初期モードであるスタンバイモードに入る。ここで第２コントローラ３６が接続されると、スタンバイモードからバイパスモードに移行し、その後に第２コントローラ３６が取り外されると、バイパスモードからスタンバイモードに復帰する。
【０１３７】
ここで、ジャイロ対応アプリは、必要に応じて角速度データを取得するべく、ジャイロセンサユニット１００に対して呼び出しおよびリセットをかける。上述のように、本実施例では、通信によってゲーム機からコントローラを制御することが可能であるので、アプリケーションによってジャイロセンサユニット１００を制御することが可能である。このため、図１５（Ａ）に示すように、ジャイロセンサユニット１００は、スタンバイモードでアプリケーションから呼び出しを受けるとジャイロモードに移行し、ジャイロモードでアプリケーションからリセットを受けるとスタンバイモードに復帰する。ジャイロセンサユニット１００はまた、ジャイロモードで第２コントローラ３６が接続されるとジャイロ＆第２コントローラモードに移行し、ジャイロ＆第２コントローラモードで第２コントローラ３６が取り外されるとジャイロモードに復帰する。ジャイロセンサユニット１００はさらにまた、ジャイロ＆第２コントローラモードでアプリケーションからリセットを受けるとバイパスモードに移行し、バイパスモードでアプリケーションから呼び出しを受けるとジャイロ＆第２コントローラモードに復帰する。
【０１３８】
一方、ジャイロ非対応アプリは、ジャイロセンサユニット１００に対して呼び出しやリセットといった働きかけを行う機能がない。このため、ジャイロ非対応アプリを実行する際には、図１５（Ｂ）に示すように、ジャイロセンサユニット１００のモードは、スタンバイモードおよびバイパスモードの間で切り換わるに止まる。
【０１３９】
ジャイロセンサユニット１００のこのようなモード切り替えは、マイコン１０２が、図１４に示したテーブルを参照して、図１６および図１７のフローチャートに示す処理を実行することにより実現される。なお、このフローチャートに対応するプログラムと、図１４のテーブルとは、不揮発性のメモリ１０２ｃ（図１２）に格納されている。
【０１４０】
ユーザがジャイロセンサユニット１００を第１コントローラ３４に装着すると、マイコン１０２は、第１コントローラ３４から電源の供給を受けて起動し、図１６および図１７のフローチャートに示す処理を実行する。この処理は、ジャイロセンサユニット１００が第１コントローラ３４から取り外されるまでの期間に渡って実行される。
【０１４１】
図１６を参照して、起動が完了すると、マイコン１０２は、最初、ステップＳ１でスタンバイモードへのモード更新を行う。具体的には、マイコン１０２は、メモリ１０２ｃ内のテーブル（図１４）に記述された“スタンバイ”の規定に従って、ジャイロ機能を休止させ、ジャイロセンサへ１０４の電源供給を停止し、バススイッチＳＷを接続し、コネクタ１０８を休止させ、Ａｔｔａｃｈ１を“Ｌｏｗ”に制御し、そしてＩ２Ｃバスの特別なアドレスへの注目を開始する。こうしてジャイロセンサユニット１００がスタンバイモードに移行すると、処理はステップＳ３およびＳ５のループに入る。
【０１４２】
すなわち、マイコン１０２は、Ａｔｔａｃｈ２が“１”であるか否かをステップＳ３で判別し、ここでＮＯであれば、アプリケーションから呼び出しがかかったか否かをステップＳ５でさらに判別する。ここでもＮＯであれば、処理はステップＳ３に戻る。なお、このモードにおいては、ジャイロを使用しないことになるので、第１コントローラ３４へは操作データが何も出力されないか、操作データが無い旨のみが出力されることになる。第１コントローラ３４にジャイロセンサユニット１００を介して第２コントローラ３６が接続されるのに応じてＡｔｔａｃｈ２が“０”から“１”に変化すると、ステップＳ３の判別結果がＹＥＳとなって、処理はステップＳ１７に移る。一方、アプリケーションからジャイロセンサユニット１００に呼び出しがかかると、ステップＳ５の判別結果がＹＥＳとなって、処理はステップＳ７に移る。
【０１４３】
ステップＳ７では、ジャイロモードへのモード更新が行われる。具体的には、マイコン１０２は、テーブル（図１４）に記述された“ジャイロ”の規定に従って、ジャイロ機能を起動させ、ジャイロセンサへの電源供給を開始し、バススイッチＳＷを切断し、コネクタ１０８を停止させ、Ａｔｔａｃｈ１を“Ｈｉｇｈ”に制御する。こうしてジャイロセンサユニット１００がジャイロモードに移行すると、処理はステップＳ９〜Ｓ１３のループに入る。
【０１４４】
ステップＳ９ではＡｔｔａｃｈ２が“１”であるか否かが、ステップＳ１１ではアプリケーションからリセットがかかったか否かが、そしてステップＳ１３では現時刻がデータ出力タイミングに該当するか否かが、それぞれ判別される。Ａｔｔａｃｈ２が“０”から“１”に変化すると、ステップＳ９の判別結果がＹＥＳとなり、処理はステップＳ２３に移る。アプリケーションからジャイロセンサ１００にリセットがかかると、ステップＳ１１の判別結果がＹＥＳとなって、処理はステップＳ１に戻る。前回のデータ出力から既定時間が経過すると、ステップＳ１３の判別結果がＹＥＳとなり、処理はステップＳ１５に移る。ステップＳ１５では、マイコン１０２は、ジャイロ用データ（図１３（Ａ））を第１コントローラ３４側に出力する。出力後、処理はステップＳ９〜Ｓ１３のループに戻る。
【０１４５】
図１７を参照して、ステップＳ１７では、バイパスモードへのモード更新が行われる。具体的には、マイコン１０２は、メモリ１０２ｃ内のテーブル（図１４）に記述された“バイパス”の規定に従って、ジャイロセンサ１０４への電源供給を停止し、ジャイロ機能を停止させ、バススイッチＳＷを接続し、コネクタ１０８を起動させ、そしてＡｔｔａｃｈ１を“Ｈｉｇｈ”とする。Ｉ２Ｃバスの特別なアドレスへの注目は停止される。こうしてジャイロセンサユニット１００がバイパスモードに移行すると、処理はステップＳ１９およびＳ２１のループに入る。
【０１４６】
ステップＳ１９ではＡｔｔａｃｈ２が“０”であるか否かが、ステップＳ２１ではアプリケーションから呼び出しがかかったか否かが、それぞれ判別される。Ａｔｔａｃｈ２が“１”から“０”に変化すると、ステップＳ１９の判別結果がＹＥＳとなり、処理はステップＳ１に戻る。アプリケーションからジャイロセンサユニット１００に呼び出しがかかると、ステップＳ２１の判別結果がＹＥＳとなって、処理はステップＳ２３に移る。ここで、バイパスモードでは、第２コントローラ３６から第２コントローラ用データ（図１３（ｂ））が直接第１コントローラ３４へ出力されるので、マイコン１０２からは何も出力されないことになる。
【０１４７】
ステップＳ２３では、ジャイロ＆第２コントローラモードへのモード更新が行われる。具体的には、マイコン１０２は、メモリ１０２ｃ内のテーブル（図１４）に記述された“ジャイロ＆第２コントローラ”の規定に従って、ジャイロセンサ１０４への電源供給を開始し、ジャイロ機能を起動させ、バススイッチＳＷを切断し、コネクタ１０８を起動させ、そしてＡｔｔａｃｈ１を“Ｈｉｇｈ”に制御する。Ｉ２Ｃバスの特別なアドレスへの注目は停止される。こうしてジャイロセンサユニット１００がジャイロ＆第２コントローラモードに移行すると、処理はステップＳ２５〜Ｓ２９のループに入る。
【０１４８】
ステップＳ２５ではＡｔｔａｃｈ２が“０”であるか否かが、ステップＳ２７ではアプリケーションからリセットがかかったか否かが、そしてステップＳ２９では現時刻がデータ出力タイミングに該当するか否かが、それぞれ判別される。Ａｔｔａｃｈ２が“１”から“０”に変化すると、ステップＳ２５の判別結果がＹＥＳとなり、処理はステップＳ７に戻る。アプリケーションからジャイロセンサ１００にリセットがかかると、ステップＳ２７の判別結果がＹＥＳとなって、処理はステップＳ１７に戻る。前回のデータ出力から既定時間が経過すると、ステップＳ２９の判別結果がＹＥＳとなり、処理はステップＳ３１に移る。ステップＳ３１では、マイコン１０２は、ジャイロ用データ（図１３（Ａ））および第２コントローラ用データ（図１３（Ｂ））を交互に第１コントローラ３４側に出力する。出力後、処理はステップＳ２５〜Ｓ２９のループに戻る。
【０１４９】
以上から明らかなように、この実施例では、ジャイロセンサユニット１００は、ハウジング１１０、コネクタ１０６および１０８ならびにジャイロセンサ１０４を備える。コネクタ１０６は、第１コントローラ３４に設けられたコネクタ４２に物理的および電気的に接続可能な第１の形状を有する。このため、コネクタ１０６を第１コントローラ３４のコネクタ４２に接続することで、ジャイロセンサユニット１００は、これら２つのコネクタ４２および１０６を介して第１コントローラ３４に物理的および電気的に接続され、ジャイロセンサユニット１００を第１コントローラ３４と一体で用いることが可能となる。すなわち、第１コントローラ３４にジャイロセンサ１０４が追加される結果となる。
【０１５０】
一方、コネクタ１０８は、第１の形状を有するコネクタが接続可能な第２の形状を有する。このため、従来コネクタ４２に接続されていた他の装置のコネクタ、たとえば第２コントローラ３６のコネクタ４０は、コネクタ１０８にも接続可能である。したがって、コネクタ４２にコネクタ１０６が接続された状態で、コネクタ４０をコネクタ１０８に接続すれば、第２コントローラ３６は、ジャイロセンサユニット１００を介して第１コントローラ３４に接続される結果となる。
【０１５１】
これにより、従来第１コントローラ３４に接続されていた第２コントローラ３６などの他の装置をそのまま使用しながら、第１コントローラ３４にジャイロセンサ１０４を追加することができる。角速度を検出する手段としてのジャイロセンサが手首付近に位置するので、角速度は多くの場合に回転軸の近くで検出されることとなり、角速度が検出しやすく、加速度センサは手首よりも前方に位置するので、遠心力の検出が容易になる。つまり、操作装置全体からみたとき、加速度センサが前方にジャイロセンサが後方にあるので、プレイヤの手の動きをより正確に検出することが可能な操作システムを提供することができる。角速度を検出するジャイロセンサ１０４を追加したことで、個々のゲームプログラムに角速度ないし回転角を計算するためのルーチンを組み込む必要がなくなり、開発者の負担が軽減される。また、ゲーム装置１２のＣＰＵ４４への処理負荷も軽減される。
【０１５２】
また、この実施例では、第１コントローラ３４は、片手で把持可能な太さを有する長手形状のハウジング７８を備える。ハウジング７８の上面には、片手の親指で操作可能な位置に第１操作部（操作ボタン８０ａ，８０ｄなど）が設けられ、ハウジング７８の下面には、第１操作部に片手の親指を置いたとき当該片手の人差し指で操作可能な位置に第２操作部（操作ボタン８０ｈ）が設けられる。ハウジング７８にはまた、第１操作部に親指を置き第２操作部に人差し指を置いたとき片手の手のひらとその他の指とによって把持可能な位置に把持部７８ａが形成される。したがって、第１操作部および第２操作部はハウジング７８の先端側に、把持部７８ａはハウジング７８の後端側に、それぞれ位置しており、ユーザは、ハウジング７８を片手で把持するにあたって、その上面の第１操作部に親指を置き、その下面の第２操作部に人差し指を置き、そしてその把持部７８ａを手のひらと他の指とで把持することになる。
【０１５３】
また、第１コントローラ３４は、加速度センサ８４をさらに備え、ハウジング７８にはさらに、把持部７８ａとは反対側の端部に撮像情報演算部８１が、把持部７８ａ側の端部にはコネクタ４２が、それぞれ設けられる。一方、ジャイロセンサユニット１００は、ハウジング１１０と、コネクタ４２に接続可能なコネクタ１０６と、ジャイロセンサ１０４とを備える。したがって、ユーザがコネクタ１０６をコネクタ４２に接続することで、ジャイロセンサユニット１００は、第１コントローラ３４に接続される。こうして第１コントローラ３４に接続されたジャイロセンサユニット１００は、第１コントローラ３４の後端側すなわち第１コントローラ３４を把持する手の手首付近に位置する（図１８）。加速度センサ８４およびジャイロセンサ１０４から出力される加速度値および角速度値は、第１コントローラ３４およびジャイロセンサユニット１００の加速度および角速度をそれぞれ示す。
【０１５４】
このように、ジャイロセンサユニット１００を第１コントローラ３４の後端側に配置したことで、この一体化されたコントローラの重心の位置は後方に移動して手のひらの位置に近づく。このため、第１コントローラ３４にジャイロセンサユニット１００を接続したことによる遠心力の増大は、ジャイロセンサユニット１００を第１コントローラ３４の先端側に配置した場合と比べて少なくて済む。また、ジャイロセンサユニット１００に働く遠心力は、これを第１コントローラ３４に押し付けるように作用するので、ジャイロセンサユニット１００と第１コントローラ３４とがしっかりと固定される。また、ジャイロセンサ１０４が手首付近に位置するので、角速度は多くの場合に回転軸の近くで検出されることとなり、角速度の検出精度が高まる。一方、加速度センサ８４は手首よりも前方に位置するので、回転に起因する加速度の検出が容易になる。
【０１５５】
また、この実施例では、第１コントローラ３４はストラップ装着部（孔８２ｃ）をさらに備え、ここにストラップ２４が装着される。ジャイロセンサユニット１００は、蓋１１６をさらに備え、この蓋１１６によってコネクタ１０８が塞がれる。蓋１１６は、コネクタ１０８から取り外された状態でも、ジャイロセンサユニット１００に係留される。第２コントローラ３６は、コネクタ４０近傍に設けられるフック１４４をさらに備え、このフック１４４には、第２コントローラ３６を第１コントローラ３４に接続した場合は第１コントローラ３４に装着されたストラップ２４が、第２コントローラ３６をジャイロセンサユニット１００に接続した場合はジャイロセンサユニット１００に係留された蓋１１６が、それぞれ掛け止めされる。
【０１５６】
したがって、ストラップ２４を当該第１コントローラ３４を把持する手の手首に掛けることができる。また、第１コントローラ３４および第２コントローラ３６の間にジャイロセンサユニット１００を追加する場合には、従来ストラップ２４を掛け止めしていたフック１４４に、コネクタ１０８から取り外されてジャイロセンサユニット１００に係留されている蓋１１６を掛け止めすることで、コネクタ４０がコネクタ１０８から外れ難くなる。これにより、従来第１コントローラ３４に接続されていた第２コントローラ３６をそのまま使用しながら、第１コントローラ３４にジャイロセンサユニット１００を追加することができる。
【０１５７】
なお、この実施例では、ジャイロセンサユニット１００と第２コントローラ３６との間はケーブル３８で接続されたが、無線通信により接続されてもよい。一例を図１９に示す。図１９の実施例では、ジャイロセンサユニット１００は、先述のコネクタ１０８に代えて無線モジュール１０８ａおよびアンテナ１０８ｂを備え、第２コントローラ３６は、先述のコネクタ４０に代えて無線モジュール４０ａおよびアンテナ４０ｂを備える。無線モジュール４０ａおよび１０８ａは、Ｂｌｕｅｔｏｏｔｈ（登録商標）や無線ＬＡＮ、赤外線通信などの近距離無線通信技術を用いて、アンテナ４０ｂおよび１０８ｂを通してデータを送信および受信する。図１９の実施例においては、第１コントローラ３６は従来のままで、ジャイロセンサユニット１００と、無線を用いた第２コントローラ３６を追加することで、第２コントローラ３６と第１コントローラ３４を完全に独立して動かせるので、より自由度の高い操作を行うことができる。また、ジャイロセンサユニット１００は、ジャイロを追加できるだけでなく、無線によりより多様な拡張コントローラを接続可能なアダプタとしても機能することになる。
【０１５８】
以上では、一例として、ゲームシステム１０を用いて説明したが、この発明は、操作装置自体の動きに基づいて、ゲームなどのアプリケーションに従う処理を実行する、コンピュータシステムに適用できる。
【図面の簡単な説明】
【０１５９】
【図１】この発明の一実施例の構成を示すブロック図である。
【図２】図１実施例に適用される第１コントローラの外観を示す図解図であり、図２（Ａ）は第１コントローラを上面後方から見た斜視図であり、図２（Ｂ）は第１コントローラを下面前方から見た斜視図である。
【図３】図１実施例に適用される第２コントローラの本体の外観を示す図解図であり、図３（Ａ）は第２コントローラ本体を上面後方から見た斜視図であり、図３（Ｂ）は第１コントローラ本体を下面前方から見た斜視図である。
【図４】第２コントローラのコネクタの外観を示す図解図である。
【図５】第１コントローラに第２コントローラのコネクタを接続した状態で、第１コントローラに装着されたストラップのひもをコネクタのフックに掛け止めた様子を示す図解図である。
【図６】図１実施例に適用されるジャイロセンサユニットの外観を示す図解図であり、図６（Ａ）はジャイロセンサユニットを上面前方から見た斜視図であり、図６（Ｂ）はジャイロセンサユニットを下面後方から見た斜視図である。
【図７】ジャイロセンサユニットの構成を示す図解図である。
【図８】第１コントローラにジャイロセンサユニットを接続した状態を示す図解図である。
【図９】第１コントローラにジャイロセンサユニット介して第２コントローラを接続した状態を示す図解図である。
【図１０】図１実施例の電気的な構成を示すブロック図である。
【図１１】図１実施例に適用されるコントローラ全体の電気的な構成を示すブロック図である。
【図１２】図１１のコントローラにおいて、第１コントローラおよび第２コントローラの間に介在するジャイロセンサユニットの電気的な構成を示すブロック図である。
【図１３】ジャイロセンサユニットが取り扱うデータのフォーマットを示す図解図であり、図１３（Ａ）はジャイロ用データのフォーマットを示す図解図であり、図１３（Ｂ）は第２コントローラ用データのフォーマットを示す図解図である。
【図１４】ジャイロセンサユニットのマイコンによる制御をモード毎に記載したテーブルを示す図解図である。
【図１５】ジャイロセンサユニットに適用されるモード切り替えを示す図解図であり、図１５（Ａ）はアプリケーションがジャイロ対応型である場合のモード切り替えを示す図解図であり、図１５（Ｂ）はアプリケーションがジャイロ非対応型である場合のモード切り替えを示す図解図である。
【図１６】ジャイロセンサユニットのマイコン動作の一部を示すフロー図である。
【図１７】ジャイロセンサユニットのマイコン動作の他の一部を示すフロー図である。
【図１８】プレイヤがコントローラを操作する様子を示す図解図である。
【図１９】他の実施例に適用されるコントローラ全体の電気的な構成を示すブロック図である。
【符号の説明】
【０１６０】
１０  …ゲームシステム
１２  …ゲーム装置
１４  …コントローラ
３４  …第１コントローラ
３６  …第２コントローラ
４０，４２，１０６，１０８  …コネクタ
８０，８８  …操作部
８４，９０  …加速度センサ
９２  …通信部
９４，１０２  …マイコン
１００  …ジャイロセンサユニット
１０４  …ジャイロセンサ
【図１】
2010017387.tif 000003
【図２】
2010017387.tif 000004
【図３】
2010017387.tif 000005
【図４】
2010017387.tif 000006
【図５】
2010017387.tif 000007
【図６】
2010017387.tif 000008
【図７】
2010017387.tif 000009
【図８】
2010017387.tif 000010
【図９】
2010017387.tif 000011
【図１０】
2010017387.tif 000012
【図１１】
2010017387.tif 000013
【図１２】
2010017387.tif 000014
【図１３】
2010017387.tif 000015
【図１４】
2010017387.tif 000016
【図１５】
2010017387.tif 000017
【図１６】
2010017387.tif 000018
【図１７】
2010017387.tif 000019
【図１８】
2010017387.tif 000020
【図１９】
2010017387.tif 000021