(57)【特許請求の範囲】
【請求項１】
地磁気とオフセット磁場とが合成された磁気を検知する磁気検知手段と、前記磁気検知手段によって検知された前記磁気に含まれるオフセット磁場を算出するための情報を記憶する記憶手段と、前記記憶手段に記憶された前記情報に基づいて、オフセット磁場を算出するオフセット磁場算出手段と、前記オフセット磁場算出手段によって算出された前記オフセット磁場を、前記磁気から減算することにより地磁気を求めるとともに、求められた前記地磁気から方位を算出する方位算出手段とを備えた方位計測装置において、
第１の時間間隔で、前記方位算出手段が算出した方位を表示する表示手段と、
前記第１の時間間隔よりも短い第２の時間間隔で前記オフセット磁場を算出するよう、前記オフセット磁場算出手段を制御する制御手段と、
を備えたことを特徴とする方位計測装置。
【請求項２】
地磁気とオフセット磁場とが合成された磁気を検知する磁気検知ステップと、前記磁気に含まれるオフセット磁場を算出するための情報を記憶する記憶手段から前記情報を読み出し、前記情報に基づいて、オフセット磁場を算出するオフセット磁場算出ステップと、前記オフセット磁場算出ステップで算出された前記オフセット磁場を、前記磁気から減算することにより地磁気を求めるとともに、求められた前記地磁気から方位を算出する方位算出ステップとを備えた方位計測方法において、
第１の時間間隔で、前記方位算出ステップで算出した方位を表示する表示ステップと、
前記第１の時間間隔よりも短い第２の時間間隔で前記オフセット磁場を算出するよう、前記オフセット磁場算出ステップを制御する制御ステップと、
を備えたことを特徴とする方位計測方法。
【請求項３】
磁気に含まれるオフセット磁場を算出するための情報を記憶する記憶手段を備えたコンピュータを、
地磁気とオフセット磁場とが合成された磁気を検知する磁気検知手段、前記記憶手段に記憶された前記情報に基づいて、オフセット磁場を算出するオフセット磁場算出手段、前記オフセット磁場算出手段によって算出された前記オフセット磁場を、前記磁気から減算することにより地磁気を求めるとともに、求められた前記地磁気から方位を算出する方位算出手段、として機能させる方位計測プログラムにおいて、
第１の時間間隔で、前記方位算出手段が算出した方位を表示する表示手段、
前記第１の時間間隔よりも短い第２の時間間隔で前記オフセット磁場を算出するよう、前記オフセット磁場算出手段を制御する制御手段、
として機能させることを特徴とする方位計測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オフセット補正により補正値を算出し、その補正値に基づいて方位を演算することにより方位計測をする方位計測装置、方位計測方法及び方位計測プログラムに関する。
【背景技術】
【０００２】
従来から、携帯電話等の小型電子機器に２軸の磁気センサーを備えさせ地磁気を測定し、電子機器が向いている方位を表示させたり、地図等に重畳して表示させる機能が開発されている。
【０００３】
また近年では、例えば、磁気センサーで取得する方向を３軸とし、計測磁場に異常がある時に機器本体を三次元に回転させることで当該機器に設けられた磁性体及び周囲環境による磁場の乱れをオフセット補正値として取得・記憶させ、実際に取得された磁気センサーの値とこのオフセット補正値から、正確な方位を演算する方法が開示されている（特許文献１、参照。）。
【０００４】
さらに、最近では、オフセット補正値の取得方法に関し、逐次取得される磁気センサーの値とオフセット補正値から正確な方位を演算するとともに、バックグラウンド処理としてこの計測時に取得した磁気センサーから新たなオフセット補正値を積算し、次に演算される方位に反映させる方位計測方法も考えられてきている。
【０００５】
このような磁気センサーによる方位計測は、一般的に、その方位計測を利用し表示させるアプリケーションプログラムに動作を依存している。従って、磁気センサーはプログラムよりコマンド信号を受けたドライバの制御により磁気の取得を開始するとともに、ドライバでは取得した磁気に基づいてオフセット値の補正を行っており、この処理はおよそ４０ｍｓ（０．０４秒）で行われる。
【特許文献１】特開２００４−２８６６１３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、一般的にオフセット補正値はその周囲環境を勘案した計測回数が多い程、信頼性が高く、また、３軸のセンサーにあっては、最低１７回の計測を契機にオフセット補正値を取得できないと、周囲環境を考慮した正確な方位は計算できない。これに対して従来より知られるプログラムからドライバへの要求は、その要求信号の出力間隔が１秒間隔ということもあり、少なくともプログラムの起動から１７秒を得ないと正確な方位が表示されないという問題があった。
【０００７】
本発明は、上述した課題に鑑みてなされたものであり、その目的とするところは、方位計測の実行開始から短時間に正確な方位演算を行うことである。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、第１の観点に係る方位計測装置は、地磁気とオフセット磁場とが合成された磁気を検知する磁気検知手段と、前記磁気検知手段によって検知された前記磁気に含まれるオフセット磁場を算出するための情報を記憶する記憶手段と、前記記憶手段に記憶された前記情報に基づいて、オフセット磁場を算出するオフセット磁場算出手段と、前記オフセット磁場算出手段によって算出された前記オフセット磁場を、前記磁気から減算することにより地磁気を求めるとともに、求められた前記地磁気から方位を算出する方位算出手段とを備えた方位計測装置において、第１の時間間隔で、前記方位算出手段が算出した方位を表示する表示手段と、前記第１の時間間隔よりも短い第２の時間間隔で前記オフセット磁場を算出するよう、前記オフセット磁場算出手段を制御する制御手段とを備えたことを特徴としている。
【０００９】
第２の観点に係る方位計測方法は、地磁気とオフセット磁場とが合成された磁気を検知する磁気検知ステップと、前記磁気に含まれるオフセット磁場を算出するための情報を記憶する記憶手段から前記情報を読み出し、前記情報に基づいて、オフセット磁場を算出するオフセット磁場算出ステップと、前記オフセット磁場算出ステップで算出された前記オフセット磁場を、前記磁気から減算することにより地磁気を求めるとともに、求められた前記地磁気から方位を算出する方位算出ステップとを備えた方位計測方法において、第１の時間間隔で、前記方位算出ステップで算出した方位を表示する表示ステップと、前記第１の時間間隔よりも短い第２の時間間隔で前記オフセット磁場を算出するよう、前記オフセット磁場算出ステップを制御する制御ステップとを備えたことを特徴とする。
【００１０】
第３の観点に係る方位計測プログラムは、磁気に含まれるオフセット磁場を算出するための情報を記憶する記憶手段を備えたコンピュータを、地磁気とオフセット磁場とが合成された磁気を検知する磁気検知手段、前記記憶手段に記憶された前記情報に基づいて、オフセット磁場を算出するオフセット磁場算出手段、前記オフセット磁場算出手段によって算出された前記オフセット磁場を、前記磁気から減算することにより地磁気を求めるとともに、求められた前記地磁気から方位を算出する方位算出手段、として機能させる方位計測プログラムにおいて、第１の時間間隔で、前記方位算出手段が算出した方位を表示する表示手段、前記第１の時間間隔よりも短い第２の時間間隔で前記オフセット磁場を算出するよう、前記オフセット磁場算出手段を制御する制御手段として機能させることを特徴としている。
【発明の効果】
【００１１】
本発明によれば、入力手段が第１の時間間隔で方位の取得を要求する要求信号を入力すると、この第１の時間間隔よりも短い第２の時間間隔で磁気取得手段を駆動させて周囲の磁気の取得と補正値の更新とを行い、この補正値の更新を逐次行うことにより、方位演算制御を行うようにしたので、方位計測の実行開始から短時間に正確に方位を演算することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、図を参照して、本実施形態について詳細に説明する。なお、折畳み式携帯情報端末に方位計測プログラムを搭載し、方位計測をさせる構成とするが、これに限定されない。その他、時計、自動車のカーナビゲーションに適用する構成としてもよい。
【００１３】
まず、図１に、折畳み式携帯情報端末１００（以下、携帯電話）の概略構成図を示し、（ａ）は平面図、（ｂ）は底面図である。携帯電話１００は、通話用スピーカ１、メイン表示部２、キー入力部３、通話用マイク４、サブ表示部５、カメラレンズ部６、充電池７、ステレオスピーカ８、９、着信報知用（兼撮影用ライト）ＬＥＤ１０、電源接続端子１２、コネクタカバー１３等により構成される。なお、通話用スピーカ１、メイン表示部２、サブ表示部５、カメラレンズ６、及び、着信報知用（兼撮影用ライト）ＬＥＤ１０は蓋部１０１に設けられ、キー入力部３、通話用マイク４、充電池７、ステレオスピーカ８、９、電源接続端子１２、コネクタカバー１３、及び、アンテナ１４（後述）は本体部１０２に設けられている。そして、蓋部１０１、本体部１０２はヒンジ１０３により折畳み可能に構成されている。
【００１４】
通話用スピーカ１は、携帯電話１００を介してユーザと通話する者の音声を出力する。
【００１５】
メイン表示部２は、ＬＣＤ（Liquid Crystal Display）等の表示画面を備え、すべての操作を行うための主要となる表示画面である。電話帳情報、メールの作成、受信した電話の受信先情報などが表示される。本実施形態では、方位計測のアプリケーションを起動させ、方位演算が行われた際には、その演算結果がメイン表示部２に表示される。
【００１６】
キー入力部３は、決定キー３１、カーソルキー３２、カメラキー３３、方位計測キー３４、３５、その他各種機能キーを備える。メールの送受信、メール作成、電話帳登録等を入力する際は各種機能キーを操作することにより各種指示を行う。また、カメラモードに切替られた際には、カメラキー３３によりホワイトバランスやズームなどの操作が入力される。そして、撮影対象とその他の設定が終了すると、決定キー３１により撮影が行われる。決定キー３１は、設定の決定ボタン機能及びシャッター機能を有する。  
【００１７】
さらに、本実施形態では、方位計測キー３４、３５が備えられている。方位計測キー３４は、携帯電話１００の蓋が開いている状態において使用され、方位計測キー３５は、携帯電話１００の蓋が閉じている状態において使用される。方位計測のアプリケーションを起動すると、ユーザは、方位計測キー３４又は３５を操作することにより、方位取得を要求する。制御部２０は、ユーザからの押下信号を受信すると、その受信信号に基づいて各部の動作を制御する。
【００１８】
通話用マイク４は、ユーザにより音声が入力される。
【００１９】
サブ表示部５は、メイン表示部２と同様の構成であり、携帯電話１００が閉じた状態である時、着信の通知、メール受信の通知、受信先情報等を表示する補助的な表示画面である。また、携帯電話１００が閉じた状態である時は、サブ表示部５に方位を表示する。
【００２０】
カメラレンズ部６は、携帯電話１００をカメラモードに切り替え、画像を撮影する際に、画像をメイン表示部２又はサブ表示部５に映し出す。
【００２１】
充電池７は、携帯電話１００を動作させる電源である。電源接続端子１２は、充電池７を充電する際に電源を接続する端子である。コネクタカバー１３は、充電池７を充電する際に接続されるコネクタ端子を保護するためのカバーである。
【００２２】
ステレオ−スピーカ８、９は、着信があったことをメロディを出力してユーザに通知する他、メディアプレーヤとして使用した場合には、オーディオファイルを展開することによる楽音情報をステレオ出力する。
【００２３】
着信報知用（兼撮影用ライト）ＬＥＤ１０は、着信があったことを発光によりユーザに通知する他、カメラモードの際は被写体を照射する光源としても用いられる。
【００２４】
次に、図２を参照して、携帯電話１００の主要部構成を示す。図に示すように、携帯電話１００は、図１に示す各部の他に、アンテナ１４、無線部１５、通信制御部１６、システムＲＯＭ（Read Only Memory）１７、ＲＡＭ（Random Access Memory）１８、アドレス・データバス処理部１９、制御部２０、記憶部２１、プログラムＲＯＭ２２、表示モジュール系ドライバ２３、ピエゾモータ２４、ＤＳＰ（Digital Signal Processor）２５、音源ＩＣ２７、センサーユニット２９、外部インターフェイスコントローラ３０等により構成される。また、ＤＳＰ２５は、メガピクセルＣＣＤ（Charge Coupled Devices）等の撮影モジュール２６を有し、音源ＩＣ２７はＡＭＰ２８を備えＡＭＰ２８によりアナログ変換した後ステレオスピーカ９を介して音声を出力する。
【００２５】
通信制御部１６は、通信データ処理部１６１及びオーディオインターフェイス１６２により構成される。通信データ処理部１６１は、ＣＥＬＰ（Code-Excited Linear Prediction）系ボコーダ回路、音声復号処理回路、パケットデータ生成回路及びパケットデータ復元回路を含み、通信プロトコルに沿ったデータ処理を実行する。
【００２６】
オーディオインターフェイス１６２は、通信データ処理部１６１で処理される音声信号の入出力を行う。
【００２７】
無線部１５は、通信データ処理部１６１により出力されたＣＥＬＰ系デジタル音声データをＰＳＫ（Phase Shift Keying）系方式に対応する信号に変調、及び拡散符号に変調するとともに、アンテナ１４を介して受信される符号変調された信号をＰＳＫ系方式、及び／又は、ＱＡＭ（Quadrature Amplitude Modulation）系方式のデジタル信号に復号する処理を行う。
【００２８】
具体的に無線部１５は、ユーザが通話する際に、通話用マイク４を介して入力され、通信データ処理部１６１で所定の圧縮符号化形式に変換された音声情報を、上述した方式にて変調してアンテナ１４を介して外部の基地局に送信する。一方で、アンテナ１４を介して基地局より受信された無線信号からデジタルデータへ復調し、音声通信ならばそのデジタルデータをオーディオインターフェイス１６２へ出力する。また、デジタルデータがパケットデータであれば、そのパケットデータより復元された各種データを制御部２０へ出力する処理を行う。
【００２９】
システムＲＯＭ１７は、基本ＯＳや携帯電話１００認証に必要な各種データを記憶し、また通信制御のための制御プログラムを格納する。
【００３０】
ＲＡＭ１８は、制御部２０によって実行される各種プログラムをプログラム格納エリアに展開する。また、ＲＡＭ１８は、各種プログラムの実行時に生じる処理結果等のデータをワークエリアに一時的に記憶する。例えば、ＲＡＭ１８は、データ通信処理や、音声通信において必要とされる各種データ（アドレス帳データ、メールデータ等）を記憶する。
【００３１】
アドレス・データバス処理部１９は、通信制御部１６及び制御部２０のアドレス制御及びバスのデータの流れにおける制御を行う。
【００３２】
ピエゾモータ１７０は、カメラレンズ６のズーム制御を行うためのモータである。カメラモードが選択され、キー入力部３のカメラキー３３の操作によりズーム調整指示が入力されると、制御部２０はその入力信号を受信し、入力信号に基づいてピエゾモータ２４の動作を制御する。
【００３３】
外部インターフェイスコントローラ３０は、例えば、１８芯コネクタの電源等であり、データの送受信を制御する。
【００３４】
ＤＳＰは、撮影モジュール２６により撮影された画像にデジタル信号処理を施すことにより、その処理データを制御部２０へ送信する。また、制御部２０の動作の一部を肩代わりする動作を実行する。
【００３５】
センサーユニット２９は、具体的に、方位を取得する磁気センサーであり、例えば、ホール素子やホールＩＣなどである。制御部２０からの指示を受信すると、磁気の測定を開始する。磁気の測定とは、地球の持つ磁気とそれによって生じる磁場である地磁気と、磁気センサーに対して位置と強さが一定の磁石からの磁場であるオフセット磁場の測定であり、これらの合成磁場ベクトルが方位として算出される。本実施形態において補正を行うオフセット磁場とは、具体的に、携帯電話１００内にあるスピーカ、バイブレータ、開閉検出磁石、メモリーカード等の影響により発生する磁場である。また、アプリケーション起動によりオフセット磁場が発生し、アプリケーション起動時には、オフセット磁場は頻繁に変動する。このオフセット磁場に対する補正が、オフセット補正値である（後述）。
【００３６】
記憶部２１は、撮影又は／及び編集された静止画像、動画像を含むマルチメディアデータを格納する。また、オフセット補正値テーブル２１１を記憶する。センサーユニット２９により磁気を取得すると、制御部２０は取得した磁気データに基づいてオフセット補正値を演算することによりオフセット補正値を算出し、オフセット補正値テーブル２１１を最新のデータに更新する。従って、このオフセット補正値テーブル２１１は、オフセット補正値演算毎に更新される、常に最新のデータである。
【００３７】
ここで、オフセット補正について説明する。オフセット磁場が発生する場合に算出される方位は、地磁気ベクトルとオフセット磁場ベクトルとの合成ベクトルであるため、本来算出されるべく方位とは誤差が発生する。従って、オフセット磁場が発生する場合は、オフセット磁場補正をしない限り、正しい方位を算出することが不可能である。一般的なオフセット磁場補正方法は、オフセット磁場を予め測定記憶する方法と、使用時に調整操作をする場合の２種類ある。本実施形態では、携帯電話１００のアプリケーションプログラムの一つに方位計測プログラムを搭載するため、アプリケーションプログラムの起動による磁場の変動や、起動時の通話着信、メール着信等の影響を受け、磁場が常に変動する。従って、その都度、補正をする必要があるため、使用時に調整をする補正方法を用いる。
【００３８】
まず、方位計測プログラムを起動し、ユーザからの操作信号を受信すると、センサーユニット２９の磁気センサーは、磁気測定データを取得する。そして、これらのデータからオフセット磁場を算出し、方位計測プログラムに基づいて自動的にオフセット補正値を算出する。この補正値に基づいて方位演算を実行し、方位を表示させるのである。従って、ユーザがアプリケーションを使用するときの自然な動作の際の測定値から、精度の良い方位演算を行える。
【００３９】
また、本実施形態では、方位計測プログラム起動中は、常に、短時間間隔で方位計測を実施する。この方位計測はユーザによる指示に関係なく実施され、ユーザからの方位取得要求コマンドを検出すると、検出したときに算出した方位を表示させる。詳しくは後述する。
【００４０】
制御部２０は、入力される指示に応じて、所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送を行う。具体的に制御部２０は、キー入力部３から入力される操作信号に応じて、プログラムＲＯＭ２２に格納されたプログラムを読み出し、当該プログラムに従った処理を実行する。そして、その処理結果を表示モジュール系ドライバ２３を介してメイン表示部２又はサブ表示部５に表示させる。また、制御部２０は、周辺機器を動作させるためのソフトウェアであるドライバ２０１を備える。
【００４１】
なお、本実施形態に係る携帯電話１００では、方位計測プログラム起動中は、上述したように、ドライバ側プロセスにより、常に方位演算が実行される。ユーザに方位計測キー３４が押下されることにより、プログラム側プロセスは、ドライバ側プロセスへ方位取得要求コマンドを出力する。ドライバ側プロセスは、最初のプログラム側プロセスからのコマンドを検出すると、４０ｍｓ経過後に、磁気センサーにより磁気を取得し、上述したオフセット補正値を算出する。そして、その算出したオフセット補正値に基づいて方位を演算し、その演算結果をプログラム側プロセルへ出力する。そして、最新の方位を、携帯電話１００のメイン表示部２又はサブ表示部５へ表示させる。
【００４２】
ユーザからの最初のキー操作の後、方位計測結果をメイン表示部２又はサブ表示部５に表示させると、方位計測は終了せず、本実施形態の携帯電話１００では、プログラム側プロセスは、１ｓごとに方位取得要求コマンドをドライバ側プロセスへ出力する。１ｓごとに出力されるコマンドは、ユーザの指示に関わらず繰り返される。この１ｓ間隔が、第１の時間間隔に相当する。
【００４３】
一方、ドライバ側プロセスでは、１００ｍｓ間隔で磁気を取得し、その取得した磁気に基づいてオフセット補正値を算出する。この１００ｍｓ間隔が第２の時間間隔に相当する。そして、常にオフセット補正値テーブルを更新し、そのオフセット補正値に基づいて方位を演算している。この１００ｍｓ間隔で方位計測を実行している間に、プログラム側プロセスからの方位方位取得要求コマンドを検出すると、当該コマンドを検出したときに演算した方位計測結果をメイン表示部２又はサブ表示部５に表示させる。従って、プログラム側処理としては、１ｓ間隔で常に方位取得要求コマンドを送信することにより、方位演算結果を取得し、ドライバ側処理としては、１００ｍｓ間隔で常に方位演算を実行し、その間に方位取得要求コマンドを検出すると、検出した時に演算した方位演算結果を表示するのである。この処理は、ユーザにより方位計測アプリケーション終了指示が送信されるまで繰り返される。
【００４４】
プログラムＲＯＭ２２は、携帯電話１００の動作に必要なプログラムやダウンロードを含むアプリケーションプログラムを記憶する。例えば、プログラムＲＯＭ２２は、方位計測プログラムを格納する。そして、制御部２０は、プログラムＲＯＭ２２に格納された方位計測プログラムを読み出し、そのプログラムに従って各部の動作を制御することにより方位を計測する。例えば、ユーザによるキー入力部３の操作により、方位取得要求指示が送信され、その信号を受信すると、制御部２０のドライバ側プロセスは、プログラムＲＯＭ２２が記憶する方位計測プログラムを読み出す。そして、センサーユニット２９の動作を制御することにより磁気を取得する。磁気を取得すると、方位計測プログラムに従って、オフセット補正値を演算し、新たなオフセット補正値を算出する。そして、オフセット補正値テーブルを最新のデータに更新すると、その補正値に基づいて方位を演算する。そして、演算結果により得た方位をメイン表示部２又はサブ表示部５に表示させる。
【００４５】
上述したように、プログラムＲＯＭ２２に記憶された方計測プログラムを読み出し動作を実行する制御部２０の動作であるプログラム側プロセスは、アプリケーション層周辺の処理を実行する。つまり、ネットワークアプリケーションのうちユーザが直接接する部分であり、ネットワーク経由での送受信を行うプログラムとユーザとの入出力を行うプログラムの間の通信を行う。
【００４６】
一方、制御部２０のドライバ２０１を介して実行するドライバ側プロセスは、ユーザ
インターフェイスとしてユーザに直接接するプログラム側プロセスのバックグランド
で逐次行われる処理であり、よりハードウェア（デバイス）に近い処理を実行する。
【００４７】
次に、図３のフローチャートを参照して、方位計測プログラムに基づいて携帯電話１００で実行される処理について説明する。
【００４８】
まず、ユーザによるキー入力部３操作により方位取得要求が行われると、制御部２０は、方位取得要求コマンドをドライバ２０１に送信する（ステップＰ１）。ステップＰ１により、制御部２０からドライバ２０１へ方位取得要求コマンドが送信されると、ドライバ２０１は、コマンド入力を検出したか否かを判定する（ステップＳ１）。ステップＳ１において、コマンド入力を検出しなかったと判定すると（ステップＳ１；ＮＯ）、処理は終了する。
【００４９】
ステップＳ１において、コマンド入力を検出したと判定すると（ステップＳ１；ＹＥＳ）、ドライバ２０１は、センサーユニット２９へ磁気センサーにより磁気を取得するよう指示を送信する（ステップＳ２）。ステップＳ２において、磁気センサーによる磁気取得の要求し指示を送信すると、４０ｍｓ経過したか否かを判定する（ステップＳ３）。
【００５０】
ステップＳ３において、４０ｍｓ経過していないと判定すると（ステップＳ３；ＮＯ）、再度、ステップＳ２の戻り、４０ｍｓ経過したか否かの判定を繰り返す。
【００５１】
ステップＳ３において、４０ｍｓ経過したと判定すると（ステップＳ３；ＹＥＳ）、各磁気センサーにより取得された磁気を取得する（ステップＳ４）。ステップＳ４において、各磁気センサーにより取得された磁気を取得すると、プログラムＲＯＭに記憶されたプログラムに基づいて、取得した磁気からオフセット補正値を演算する。そして、補正値を算出すると、記憶部２１に記憶されるオフセット補正値テーブル２１１を算出した補正値に更新する（ステップＳ５）。なお、ドライバ側プロセスは、ステップＳ４の処理により、磁気取得手段を実現する。また、ステップＳ５の処理により、補正値取得手段及び補正値更新手段を実現する。
【００５２】
ステップＳ５において、オフセット補正値を算出し、オフセット補正値テーブル２１１を更新すると、算出した補正値に基づいて方位を演算する（ステップＳ６）。ステップＳ６において、方位演算を実行すると、プログラム側処理を実行する制御部２０へ、算出した演算結果を出力する。なお、ドライバ側プロセスは、ステップＳ６の処理により、方位演算手段を実現する。
【００５３】
プログラム側処理を実行する制御部２０は、ステップＰ１において、方位取得要求コマンドをドライバ２０１へ送信したのち、待機状態であり（ステップＰ２）、計測結果を受信したか否かを判定する（ステップＰ３）。
【００５４】
ステップP３において、演算結果を受信していないと判定すると（ステップP３；ＮＯ）、再度、ステップＰ２に戻り、方位演算結果を受信するまで待機状態となる。そして、ステップＰ３の判定を繰り返す。
【００５５】
ステップＰ３において、演算結果を受信したと判定すると（ステップＰ３；ＹＥＳ）、受信した演算結果をメイン表示部２に表示する（ステップＰ４）。ここで、携帯電話１００の蓋が閉じた状態である場合は、演算結果をサブ表示部５に表示する。
【００５６】
ステップＰ４において、受信した演算結果をメイン表示部２又はサブ表示部５に表示すると、ステップＰ１の方位取得要求コマンド送信より１秒経過したか否かを判定する（ステップＰ５）。
【００５７】
ステップＰ５において、ステップＰ１の方位取得要求コマンド送信より１秒経過していないと判定すると（ステップＰ５；ＮＯ）、再度、ステップＰ４に戻り、ステップＰ３で取得した演算結果をメイン表示部２又はサブ表示部５に表示する。ステップＰ５において、ステップＰ１の方位取得要求コマンド送信より１秒経過したと判定すると（ステップＰ５；ＹＥＳ）、再度、方位取得要求コマンドを制御部２０へ送信する（ステップＰ６）。この、方位取得要求コマンドの送信は、ユーザの操作により実行されるのではなく、最初の方位取得要求コマンド送信から１秒経過したと判定すると、自動的に送信するのである。
【００５８】
一方、制御部２０は、ステップＳ７において、方位演算結果をメイン表示部２又はサブ表示部５へ表示する動作を実行するとともに、待機状態となる（ステップＳ８）。そして、１００ｍｓ経過したか否かを判定する（ステップＳ９）。
【００５９】
ステップＳ９において、１００ｍｓ経過していないと判定すると（ステップＳ９；ＮＯ）、再度、ステップＳ８に戻り、待機状態となる。ステップＳ９において、１００ｍｓ経過したと判定すると（ステップＳ９；ＹＥＳ）、制御部２０は、センサーユニット２９を構成する各磁気センサーを制御することにおり、磁気を取得する（ステップＳ１０）。
【００６０】
ステップＳ１０において、各磁気センサーにより取得された磁気を取得すると、プログラムＲＯＭに記憶されたプログラムに基づいて、取得した磁気からオフセット補正値を演算する。そして、補正値を算出すると、記憶部２１に記憶されたオフセット補正値テーブル２１１を算出した補正値に更新する（ステップＳ１１）。
【００６１】
ステップＳ１１において、オフセット補正値を算出し、オフセット補正値テーブル２１１を更新すると、算出した補正値に基づいて方位を演算する（ステップＳ１２）。ステップＳ１２において、算出した補正値に基づいて方位を演算すると、方位取得要求コマンドを検出したか否かを判定する（ステップＳ１３）。
【００６２】
ステップＳ１３において、方位取得要求コマンドを検出していないと判定すると（ステップＳ１３；ＮＯ）、再度、ステップＳ９に戻り、１００ｍｓ経過した否かを判定し、１００ｍｓ経過したと判定すると、ステップＳ１０〜Ｓ１３の処理を繰り返す。つまり、次の方位取得要求コマンドを検出するまで、何度もオフセット補正値テーグルを更新し、取得した補正値に基づいて方位演算を実行し、常に最新の方位を算出するのである。
【００６３】
ステップＰ６において、プログラム側プロセスにより、方位取得要求コマンドがドライバ側プロセスに送信されると、プログラム側プロセスは、待機状態となる（ステップＰ７）。一方、ステップＰ６において、プログラム側プロセスからドライバ側プロセスへ方位取得要求コマンドが送信されると、ドライバ側プロセスは方位取得要求コマンドを検出したと判定する（ステップＳ１３；ＹＥＳ）。
【００６４】
ステップＳ１３において、プログラム側プロセスからの方位取得要求コマンドを検出したと判定すると、演算結果をプログラム側プロセスへ出力する（ステップＳ１４）。ステップＳ１４において、ドライバ側プロセスは算出した方位演算結果をプログラム側プロセスへ出力すると、ステップＰ７において、待機状態であったプログラム側プロセスは、方位演算結果を受信したか否かを判定する（ステップＰ８）。
【００６５】
プログラム側プロセスは、ステップＰ８において、演算結果を受信したと判定すると（ステップＰ８；ＹＥＳ）、受信した演算結果である方位をメイン表示部２又はサブ表示部５に表示し、再度、ステップＰ５〜Ｐ８の処理を繰り返す。
【００６６】
ステップＰ８において、演算結果を受信していないと判定すると（ステップＰ８；ＮＯ）、プログラム動作停止コマンドを検出したか否かを判定する（ステップＰ９）。このプログラム動作停止コマンドは、ユーザにより入力される指示であり、ユーザは、方位計測アプリケーションの起動を終了させる場合は、キー入力部３の操作を行う。
【００６７】
ステップＰ９において、ユーザからの起動終了指示、つまり、プログラム動作停止コマンドを検出していないと判定すると（ステップＰ９；ＮＯ）、再度、ステップＰ５に戻り、ステップＰ５〜Ｐ９の処理を繰り返す。
【００６８】
ステップＰ９において、ユーザからの起動終了指示であるプログラム動作停止コマンドを検出したと判定すると（ステップＰ９；ＹＥＳ）、検出したプログラム動作停止コマンドをドライバ側プロセスへ送信し、方位計測アプリケーションを終了する。
【００６９】
一方、ドライバ側プロセスは、ステップＳ１４において、演算結果をプログラム側プロセスへ出力すると、プログラム動作停止コマンド入力を検出したか否かを判定する（ステップＳ１５）。ステップＳ１５において、プログラム動作停止コマンド入力を検出していないと判定すると（ステップＰ９；ＮＯ）、再度、ステップＳ９へ戻り、ステップＳ９〜Ｓ１５の処理を繰り返す。
【００７０】
ステップＳ１５において、プログラム側プロセスからプログラム動作停止コマンドが送信された旨を検出すると（ステップＳ１５；ＹＥＳ）、処理を終了する。
【００７１】
以上のように、携帯電話１００に搭載される方位計測プログラムはアプリケーションプログラムに動作を依存しているため、オフセット磁場が発生し、計測される方位に誤差が生じやすいが、ドライバ側プロセスによりオフセット補正を行い、その補正値に基づいて方位を演算することにより、正確な方位を表示することが可能となる。また、ユーザにより方位取得要求が行われなくても、ドライバ側プロセスにより、一定時間間隔ごとに方位演算を実行する。そして、プログラム側プロセスからの方位取得要求を検出すると、そのときの演算した方位を表示させることにより、正確な方位を、即時に提供することが可能となる。
【００７２】
さらに、プログラム側プロセスから送信される方位取得要求コマンドの時間間隔よりも、ドライバ側プロセスで実行される方位演算の時間間隔の方が短時間であるため、次の方位取得要求までの間に、複数回補正を実施することにより方位演算を行える。従って、誤差が微少となるため、より正確な方位を表示することが可能となる。
【図面の簡単な説明】
【００７３】
【図１】本発明を適用した携帯電話の（ａ）正面図、（ｂ）背面図の一例。
【図２】携帯電話の機能構成の一例を示すブロック図。
【図３】携帯電話の具体的な動作を説明するためのフローチャート。
【符号の説明】
【００７４】
１  通話用スピーカ
２  メイン表示部
３  キー入力部
３１  決定キー
３２  カーソルキー
３３  カメラキー
３４、３５  方位計測キー
４  通話用マイク
５  サブ表示部
６  カメラレンズ
７  充電池
８、９  ステレオスピーカ
１０  着信報知用（兼撮影用ライト）ＬＥＤ
１２  電源接続端子
１３  コネクタカバー
１４  アンテナ
１５  無線部
１６  通信制御部
１６１  通信データ処理部
１６２  オーディオインターフェイス
１７  システムＲＯＭ
１８  ＲＡＭ
１９  アドレス・データバス処理部
２０  制御部
２０１  ドライバ
２１  記憶部
２１１  オフセット補正値テーブル
２２  プログラムＲＯＭ
２３  表示モジュール系ドライバ
２４  ピエゾモータ
２５  ＤＳＰ
２６  撮影モジュール
２７  音源ＩＣ
２８  ＡＭＰ
２９  センサーユニット
３０  外部インターフェイスコントローラ
１００  折畳み式携帯情報端末
１０１  蓋部
１０２  本体部
１０３  ヒンジ部
【図１】
0004741888.tif 000002
【図２】
0004741888.tif 000003
【図３】
0004741888.tif 000004