(57)【要約】  【構成】歩数計測システム１０００は互いに通信可能な歩数計１００と歩数管理装置１０を含む。歩数計１００では、単位時間ごとに順次検出された歩数値が記憶されるとともに歩数計１００で計時される時刻が歩数値に関連付けて第１時刻データとして記憶される。歩数計１００で電池が交換されると、リセットがかかり初期化処理が起動され、第１時刻データとして記憶されていた時刻が、区別可能な第２時刻データとして記憶される。第１時刻データに関連付けられた初期化処理後の各歩数値の記録時刻は、歩数管理装置１０の計時する時刻に基づいて設定され、第２時刻データに関連付けられた初期化処理前の各歩数値の記録時刻は、第２時刻データに基づいて設定される。  【効果】歩数の記録時刻の精度を向上することができる。歩数計の電池交換の有無に応じて、歩数の記録時刻を適切に設定することができる。【選択図】図１
2010009328.tif 000002
【特許請求の範囲】
【請求項１】
互いに通信可能な歩数計と歩数管理装置とを含む歩数計測システムであって、
前記歩数計は、
時刻を計時する第１計時手段と、
単位時間ごとの歩数値を検出する検出手段と、
前記検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段と、
前記歩数データ記憶手段によって記憶される歩数値に関連付けて前記第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段と、
リセットに応じて起動される初期化処理において、前記第１時刻データ記憶手段によって前記第１時刻データとして記憶されていた前記時刻を、前記第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段とを備え、
前記歩数管理装置は、時刻を計時する第２計時手段を備え、
前記第１時刻データに関連付けられた各歩数値の記録時刻を、前記第２計時手段によって計時された時刻に基づいて設定する第１記録時刻設定手段、および
前記第２時刻データに関連付けられた各歩数値の記録時刻を前記第２時刻データに基づいて設定する第２記録時刻設定手段をさらに備える、歩数計測システム。
【請求項２】
前記歩数管理装置は、少なくとも前記歩数データ記憶手段によって記憶された歩数値および前記第２時刻データ記憶手段によって記憶された前記第２時刻データを前記歩数計から取得するデータ取得手段をさらに備え、
前記第１記録時刻設定手段および前記第２記録時刻設定手段は、前記歩数管理装置に備えられていて、前記データ取得手段によって取得したデータに基づいて、前記記録時刻の設定を行う、請求項１記載の歩数計測システム。
【請求項３】
前記歩数計は、前記初期化処理が実行されたか否かを示すフラグを記憶する初期化フラグ記憶手段をさらに備え、
前記歩数管理装置は、前記歩数計から取得した前記フラグによって前記歩数計で前記初期化処理が実行されたか否かを判定する第１判定手段をさらに備え、
前記データ取得手段は、前記第１判定手段によって前記初期化処理が実行されたと判定されるとき、前記第２時刻データおよび前記第２時刻データに関連付けられた前記歩数値を前記歩数計から取得する、請求項２記載の歩数計測システム。
【請求項４】
前記歩数管理装置は、前記第１記録時刻設定手段によって前記第１時刻データに関連付けられた前記歩数値の記録時刻を設定したとき、前記第２計時手段によって計時された時刻を、前回取得時刻として記憶する前回取得時刻記憶手段をさらに備え、
前記歩数計は、前記歩数管理装置から取得した前記前回取得時刻から現在までの期間に記憶された歩数値の数を検出する数検出手段をさらに備え、
前記歩数管理装置は、前記歩数計から取得した前記歩数値の数に基づいて前記歩数計で前記初期化処理が実行されたか否かを判定する第２判定手段をさらに備え、
前記データ取得手段は、前記第２判定手段によって前記初期化処理が実行されたと判定されるとき、前記第２時刻データおよび前記第２時刻データに関連付けられた前記歩数値を前記歩数計から取得する、請求項２または３記載の歩数計測システム。
【請求項５】
前記歩数データ記憶手段は、各歩数値をアドレス順に記憶し、
前記第１時刻データ記憶手段は、１つの歩数値に対応する時刻を前記第１時刻データとして記憶し、
前記第１記録時刻設定手段は、前記第１時刻データに関連付けられた前記各歩数値の記録時刻を、アドレス順と前記第２計時手段によって計時された時刻に基づいて設定し、
前記第２記録時刻設定手段は、前記第２時刻データに関連付けられた前記各歩数値の記録時刻を、アドレス順と前記第２時刻データに基づいて設定する、請求項１ないし４のいずれかに記載の歩数計測システム。
【請求項６】
前記第１時刻データ記憶手段は、所定タイミング毎に前記第１計時手段によって計時された時刻を記憶位置を変えて記憶する、請求項１ないし５のいずれかに記載の歩数計測システム。
【請求項７】
前記歩数管理装置は、前記第２計時手段によって計時された時刻を前記歩数計に送信する時刻送信手段をさらに備え、
前記歩数計は、前記時刻送信手段によって送信された前記時刻を受信したとき、前記第１計時手段によって計時される時刻を、受信した前記時刻に設定する時刻設定手段をさらに備える、請求項１ないし６のいずれかに記載の歩数計測システム。
【請求項８】
前記第１時刻データ記憶手段は、前記時刻が、前記時刻設定手段による設定済みの時刻であるか否かを示すフラグをさらに記憶し、
前記第２記録時刻設定手段は、前記フラグによって前記第２時刻データが前記時刻設定手段による設定済みの時刻でないと判別されるとき、前記第２時刻データに関連付けられた各歩数値の記録時刻の設定を行わない、請求項７記載の歩数計測システム。
【請求項９】
複数の前記歩数計を含み、
前記第１記録時刻設定手段は、前記第１時刻データに関連付けられた各歩数計の各歩数値の記録時刻を、前記第２計時手段によって計時された時刻に基づいて設定し、
前記第２記録時刻設定手段は、前記第２時刻データに関連付けられた各歩数計の各歩数値の記録時刻を、各歩数計の前記第２時刻データに基づいて設定する、請求項１ないし８のいずれかに記載の歩数計測システム。
【請求項１０】
歩数計測システムにおいて歩数の記録時刻を設定する歩数管理装置と通信可能な歩数計であって、
時刻を計時する第１計時手段、
単位時間ごとの歩数値を検出する検出手段、
前記検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段、
前記歩数データ記憶手段によって記憶される歩数値に関連付けて前記第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段、
リセットに応じて起動される初期化処理において、前記第１時刻データ記憶手段によって前記第１時刻データとして記憶されていた前記時刻を、前記第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段、および
少なくとも前記歩数データ記憶手段によって記憶された歩数値および前記第２時刻データ記憶手段によって記憶された前記第２時刻データを前記歩数管理装置に送信するデータ送信手段を備える、歩数計。
【請求項１１】
歩数計測システムにおいて歩数の記録時刻を設定する歩数管理装置と通信可能な歩数計のプログラムであって、
前記歩数計のコンピュータを、
時刻を計時する第１計時手段、
単位時間ごとの歩数値を検出する検出手段、
前記検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段、
前記歩数データ記憶手段によって記憶される歩数値に関連付けて前記第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段、
リセットに応じて起動される初期化処理において、前記第１時刻データ記憶手段によって前記第１時刻データとして記憶されていた前記時刻を、前記第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段、および
少なくとも前記歩数データ記憶手段によって記憶された歩数値および前記第２時刻データ記憶手段によって記憶された前記第２時刻データを前記歩数管理装置に送信するデータ送信手段として機能させる、プログラム。
【請求項１２】
歩数計測システムにおいて歩数計で検出された歩数の記録時刻を設定する歩数管理装置であって、
前記歩数計は、
時刻を計時する第１計時手段と、
単位時間ごとの歩数値を検出する検出手段と、
前記検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段と、
前記歩数データ記憶手段によって記憶される歩数値に関連付けて前記第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段と、
リセットに応じて起動される初期化処理において、前記第１時刻データ記憶手段によって前記第１時刻データとして記憶されていた前記時刻を、前記第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段とを備えていて、
時刻を計時する第２計時手段、
少なくとも前記歩数データ記憶手段によって記憶された歩数値および前記第２時刻データ記憶手段によって記憶された前記第２時刻データを、前記歩数計から取得するデータ取得手段、
前記第１時刻データに関連付けられた各歩数値の記録時刻を、前記第２計時手段によって計時された時刻に基づいて設定する第１記録時刻設定手段、および
前記第２時刻データに関連付けられた各歩数値の記録時刻を前記第２時刻データに基づいて設定する第２記録時刻設定手段を備える、歩数管理装置。
【請求項１３】
歩数計測システムにおいて歩数計で検出された歩数の記録時刻を設定する歩数管理装置のプログラムであって、
前記歩数計は、
時刻を計時する第１計時手段と、
単位時間ごとの歩数値を検出する検出手段と、
前記検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段と、
前記歩数データ記憶手段によって記憶される歩数値に関連付けて前記第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段と、
リセットに応じて起動される初期化処理において、前記第１時刻データ記憶手段によって前記第１時刻データとして記憶されていた前記時刻を、前記第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段とを備えていて、
前記歩数管理装置のコンピュータを、
時刻を計時する第２計時手段、
前記歩数データ記憶手段によって記憶された歩数値および前記第２時刻データ記憶手段によって記憶された前記第２時刻データを前記歩数計から取得するデータ取得手段、
前記第１時刻データに関連付けられた各歩数値の記録時刻を前記第２計時手段によって計時された時刻に基づいて設定する第１記録時刻設定手段、および
前記第２時刻データに関連付けられた各歩数値の記録時刻を前記第２時刻データに基づいて設定する記録時刻設定手段として機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は歩数計測システムに関し、特にたとえば、互いに通信可能な歩数計と歩数管理装置とを含む歩数計測システムに関する。
【背景技術】
【０００２】
従来、歩数計により検出された歩数を外部端末に送信し、外部端末で歩数計から受信した歩数データを管理するシステムが知られている。
【０００３】
たとえば特許文献１に開示されるシステムでは、歩数計で検出された所定の時間単位（例えば、１分）毎の歩数がメモリに記憶される。外部端末に送信する際に、歩数計のクロック部により計時される現在時刻に基づいて、メモリに記憶されている時間単位の歩数にそれぞれ記録時刻が付加される。また、歩数に記録時刻を付加する処理は、外部端末が計時している時刻に基づいて行われてもよいことが開示されている。
【０００４】
また、特許文献２でも同様であり、携帯電話からサーバに送信されるデータ登録メールに付された日時を基準として、所定の時間単位毎の歩数の遡及を行うことによってカウント開始時刻が算出され、カウント開始時刻を基にして所定の時間単位ごとの歩数と時刻とが対応付けられる。また、歩数計により時刻と歩数とが対応付けられてよいことも開示されている。
【特許文献１】特開２００３−３０７４３１号公報[G01C 22/00, A63B 69/00, G06F 17/60, G06M 7/00, G08C 19/00]
【特許文献２】特開２００４−２２６０７６号公報[G01C 22/00]
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記特許文献１および２によれば、歩数計の時刻または外部端末の時刻のいずれか一方の時刻を基準にして歩数に記録時刻が付加されるので、歩数計の電池が交換された場合、電池交換前後の歩数に、正確な記録時刻を付加することができないという問題があった。すなわち、電池が切れる前の歩数の記録時刻と電池が交換された後の歩数の記録時刻との間には時刻の空白期間があるが、上記特許文献１および２の方法ではその空白期間をなかったものとして記録時刻を付加することになるので、電池を交換する前（あるいは電池を交換した後）の歩数の記録時刻が実際の時刻とは大きく異なってしまうという問題があった。
【０００６】
それゆえに、この発明の主たる目的は、新規な、歩数計測システム、歩数計およびそのプログラム、ならびに歩数管理装置およびそのプログラムを提供することである。
【０００７】
この発明の他の目的は、歩数の記録時刻の精度を向上させることのできる、歩数計測システム、歩数計およびそのプログラム、ならびに歩数管理装置およびそのプログラムを提供することである。
【０００８】
また、この発明の他の目的は、歩数計の電池交換の有無に応じて、歩数の記録時刻を適切に設定することのできる、歩数計測システム、歩数計およびそのプログラム、ならびに歩数管理装置およびそのプログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【００１０】
第１の発明は、互いに通信可能な歩数計と歩数管理装置とを含む歩数計測システムである。歩数計は、時刻を計時する第１計時手段と、単位時間ごとの歩数値を検出する検出手段と、検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段と、歩数データ記憶手段によって記憶される歩数値に関連付けて第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段と、リセットに応じて起動される初期化処理において、第１時刻データ記憶手段によって第１時刻データとして記憶されていた時刻を、第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段とを備える。歩数管理装置は、時刻を計時する第２計時手段を備える。歩数計測システムは、第１時刻データに関連付けられた各歩数値の記録時刻を、第２計時手段によって計時された時刻に基づいて設定する第１記録時刻設定手段、および第２時刻データに関連付けられた各歩数値の記録時刻を第２時刻データに基づいて設定する第２記録時刻設定手段をさらに備える。
【００１１】
第１の発明では、歩数計測システム（１０００）は、互いに通信可能な歩数計（１００）と歩数管理装置（１０）とを含む。歩数計は、時刻（ｔ２）を計時する第１計時手段（１１０，３１２）を有しており、単位時間（たとえば１分）ごとの歩数値が検出手段（１１０，１１４）によって検出される。歩数データ記憶手段（１１０，１１６，３１４，Ｓ５）は、検出手段によって順次検出された歩数値を記憶する。第１時刻データ記憶手段（１１０，１１６，３１４，Ｓ３）は、記憶される歩数値に関連付けて第１計時手段によって計時された時刻を第１時刻データとして記憶する。この歩数計において、電池交換や誤動作等によってリセットがかかると、初期化処理が起動される。この初期化処理において、第２時刻データ記憶手段（１１０，１１６，Ｓ１７）は、第１時刻データとして記憶されていた時刻を、第１時刻データと区別可能な第２時刻データとして記憶する。つまり、リセットがかかると、第１時刻データに関連付けて記憶されていた各歩数値は、第２時刻データに関連付けて記憶されることとなる。一方、歩数管理装置は、時刻（ｔ１）を計時する第２計時手段（３４，２１０）を有している。歩数計測システムは、各歩数値に対応する時刻を設定するために、第１記録時刻設定手段および第２記録時刻設定手段をさらに備えており、第１記録時刻設定手段および第２記録時刻設定手段は、歩数計および歩数管理装置のどちらかに備えられる。つまり、第１記録時刻設定手段は、歩数計または歩数管理装置のどちらかに設けられ、また、第２記録時刻設定手段は、歩数計または歩数管理装置のどちらかに設けられる。第１記録時刻設定手段（３４，１１０，Ｓ１３７）は、第１時刻データに関連付けられた各歩数値の記録時刻を第２計時手段によって計時された時刻に基づいて設定する。第２記録時刻設定手段（３４，１１０，Ｓ１２３）は、第２時刻データに関連付けられた各歩数値の記録時刻を第２時刻データの時刻に基づいて設定する。
【００１２】
第１の発明によれば、初期化処理において、初期化前に記憶されていた歩数値に関連付けられた第１時刻データを、区別可能な第２時刻データとして記憶するようにしたので、初期化処理の前後に記憶された歩数値および時刻を区別することができる。したがって、初期化処理の後に記憶された各歩数値の記録時刻を、歩数管理装置の時刻に基づいて設定することができ、初期化処理の前に記憶された各歩数値の記録時刻を、歩数計の時刻に基づいて設定することができる。すなわち、現在検出中の歩数値と連続的に記憶されている歩数値すなわち最近の（現在記録中の）歩数値については、歩数管理装置の現在時刻に基づいて、記録時刻を設定できる。一方、現在記録中の歩数値とは連続していない歩数値すなわち初期化処理前に記憶された歩数値については、第２時刻データとして記憶されていた歩数計側の時刻に基づいて、記録時刻を設定できる。したがって、歩数の記録時刻の精度を向上させることができる。また、歩数計における電池交換等によって生じる初期化処理の有無に応じて適切な記録時刻を設定することができる。さらに、歩数計の時刻の精度をあまり気にしなくても良いので、安価な歩数計を使用でき、歩数計測システムのコストを低減することができる。
【００１３】
第２の発明は、第１の発明に従属し、歩数管理装置は、少なくとも歩数データ記憶手段によって記憶された歩数値および第２時刻データ記憶手段によって記憶された第２時刻データを歩数計から取得するデータ取得手段をさらに備え、第１記録時刻設定手段および第２記録時刻設定手段は、歩数管理装置に備えられていて、データ取得手段によって取得したデータに基づいて、記録時刻の設定を行う。
【００１４】
第２の発明では、歩数管理装置に第１記録時刻設定手段および第２記録時刻設定手段が備えられており、歩数管理装置側で記録時刻の設定が行われる。歩数管理装置のデータ取得手段（３４，Ｓ１１５−Ｓ１１７，Ｓ１２９−Ｓ１３５）によって、記録時刻の設定に必要な歩数値および第２時刻データが歩数計から取得される。歩数管理装置で各歩数値の記録時刻の設定を行うことができるので、歩数計の処理負荷を減らすことができる。
【００１５】
第３の発明は、第２の発明に従属し、歩数計は、初期化処理が実行されたか否かを示すフラグを記憶する初期化フラグ記憶手段をさらに備え、歩数管理装置は、歩数計から取得したフラグによって歩数計で初期化処理が実行されたか否かを判定する第１判定手段をさらに備え、データ取得手段は、第１判定手段によって初期化処理が実行されたと判定されるとき、第２時刻データおよび第２時刻データに関連付けられた歩数値を歩数計から取得する。
【００１６】
第３の発明では、歩数計において、初期化フラグ記憶手段（１１０，１１６，Ｓ２５）によって初期化処理が実行されたか否かを示すフラグが記憶される。歩数管理装置の第１判定手段（３４，Ｓ１１１，Ｓ１６１−Ｓ１６３，Ｓ１７１，Ｓ１１３）は、取得した当該フラグよって歩数計で初期化処理が実行されたか否かを判定する。データ取得手段は、歩数計で初期化処理が実行されたと判定されるときに、初期化処理前に記憶された歩数値の記録時刻の設定のために必要な第２時刻データおよび当該歩数値を取得する。したがって、初期化処理が実行されたときだけ、初期化処理前に記憶されたデータ（歩数値および第２時刻データ）を歩数計に要求することができ、歩数計においては初期化処理前に記憶されたデータを探して送信するような処理を必要なときだけ実行すればよいので、処理負担を減らすことができる。また、歩数計に記憶されているデータのすべてをいつも歩数管理装置に送信して歩数管理装置で初期化処理前のデータを探すような処理を実行するのではなく、必要なデータだけを歩数計から送信する処理を実行するので、通信量を減らすことができる。
【００１７】
第４の発明は、第２または第３の発明に従属し、歩数管理装置は、第１記録時刻設定手段によって第１時刻データに関連付けられた歩数値の記録時刻を設定したとき、第２計時手段によって計時された時刻を、前回取得時刻として記憶する前回取得時刻記憶手段をさらに備え、歩数計は、歩数管理装置から取得した前回取得時刻から現在までの期間に記憶された歩数値の数を検出する数検出手段をさらに備え、歩数管理装置は、歩数計から取得した歩数値の数に基づいて歩数計で初期化処理が実行されたか否かを判定する第２判定手段をさらに備え、データ取得手段は、第２判定手段によって初期化処理が実行されたと判定されるとき、第２時刻データおよび第２時刻データに関連付けられた歩数値を歩数計から取得する。
【００１８】
第４の発明では、歩数管理装置において、第１時刻データに関連付けられた歩数値の記録時刻を設定したとき、つまり、最近の歩数値について第２計時手段によって計時された時刻に基づく記録時刻の設定を実行したとき、前回取得時刻記憶手段（３４，Ｓ１４９）によって、第２計時手段によって計時された時刻が前回取得時刻（ｔ３）として記憶される。前回取得時刻を記憶しておくことにより、前回取得時刻から現在までの期間に歩数計で初期化処理が実行されたか否かを判定することができる。具体的には、歩数計において、数検出手段（１１０，Ｓ６３）が、歩数管理装置から取得した前回取得時刻から現在までの期間に記憶された歩数値の数を検出し、歩数管理装置の第２判定手段（３４，Ｓ１１１，Ｓ１６７−Ｓ１７１，Ｓ１１３）が、歩数計から取得した歩数値の数に基づいて、歩数計で初期化処理が実行されたか否かを判定する。そして、データ取得手段は、歩数計で初期化処理が実行されたと判定されるときに、初期化処理前に記憶された歩数値の記録時刻の設定のために必要な第２時刻データおよび当該歩数値を取得する。したがって、上述の発明と同様に、必要なデータを必要なときだけ取得するようにしているので、処理負担を減らすことができるし、通信量を減らすことができる。さらに、前回取得時刻から現在までの期間に記憶された歩数値の数に基づいて初期化処理の実行を判定するようにしているので、複数のソフトウェアで歩数計を共用する場合にも、各ソフトウェアの処理において、歩数計で初期化処理が実行されたことを検出することができる。たとえば、初期化処理の実行に応じてオンされかつ歩数データ送信処理に応じてオフされるようなフラグを歩数計に記憶しておくような場合には、各ソフトウェアの処理において上記フラグが切り替えられるので、先に他のソフトウェアの処理で歩数管理装置に歩数データが取得されていると、後から実行されたソフトウェアでは、初期化処理が実行されたことが検出できなくなる。しかし、前回取得時刻から現在までの歩数値の数を検出する場合には、他のソフトウェアが先に実行されても、歩数値の数が変更されないので、後から実行されるソフトウェアでも初期化処理の実行を検出することができる。
【００１９】
第５の発明は、第１ないし第４の発明のいずれかに従属し、歩数データ記憶手段は、各歩数値をアドレス順に記憶し、第１時刻データ記憶手段は、１つの歩数値に対応する時刻を第１時刻データとして記憶し、第１記録時刻設定手段は、第１時刻データに関連付けられた各歩数値の記録時刻を、アドレス順と第２計時手段によって計時された時刻に基づいて設定し、第２記録時刻設定手段は、第２時刻データに関連付けられた各歩数値の記録時刻を、アドレス順と第２時刻データに基づいて設定する。
【００２０】
第５の発明では、歩数データ記憶手段は、順次検出される各歩数値をアドレス順に記憶する。このため、１つの歩数値に対応する時刻のみを記憶しておけば、当該時刻を基に各歩数値の時刻を算出することが可能である。したがって、第１時刻データ記憶手段は、１つの歩数値に対応する時刻を第１時刻データとして記憶する。そして、第１時刻データに関連付けられた各歩数値の記録時刻は、アドレス順と第２計時手段によって計時された時刻に基づいて設定され、第２時刻データに関連付けられた各歩数値の記録時刻は、アドレス順と第２時刻データに基づいて設定される。したがって、歩数値ごとに時刻を記憶する必要がないので、歩数データを記憶しておくメモリの容量を節約することができる。
【００２１】
第６の発明は、第１ないし第５の発明のいずれかに従属し、第１時刻データ記憶手段は、所定タイミング毎に第１計時手段によって計時された時刻を記憶位置を変えて記憶する。
【００２２】
第６の発明では、第１時刻データ記憶手段（Ｓ１−Ｓ３）によって、第１時刻データは所定のタイミング毎に更新され、当該更新時には、記憶位置を変えて第１計時手段によって計時された時刻が記憶される。したがって、メモリの特定箇所のみが頻繁に書き換えられるのを防止でき、メモリの書換寿命が低下するのを防止することが出来る。
【００２３】
第７の発明は、第１ないし第６の発明のいずれかに従属し、歩数管理装置は、第２計時手段によって計時された時刻を歩数計に送信する時刻送信手段をさらに備え、歩数計は、時刻送信手段によって送信された時刻を受信したとき、第１計時手段によって計時される時刻を、受信した時刻に設定する時刻設定手段をさらに備える。
【００２４】
第７の発明では、歩数管理装置の時刻送信手段（３４，Ｓ１６５）によって、第２計時手段によって計時された時刻が歩数計に送信される。歩数計では、時刻設定手段（１１０，Ｓ４１−Ｓ４５）によって、第１計時手段によって計時される時刻が、受信した時刻に設定される。したがって、歩数計側の時刻を歩数管理装置側の時刻に修正するので、歩数計の時計の精度が低くてもよく、歩数計の製造コストを抑えることが出来る。
【００２５】
第８の発明は、第７の発明に従属し、第１時刻データ記憶手段は、時刻が、時刻設定手段による設定済みの時刻であるか否かを示すフラグをさらに記憶し、第２記録時刻設定手段は、フラグによって第２時刻データが時刻設定手段による設定済みの時刻でないと判別されるとき、第２時刻データに関連付けられた各歩数値の記録時刻の設定を行わない。
【００２６】
第８の発明では、第１時刻データ記憶手段（１１０，Ｓ２５，Ｓ４９）は、時刻が、時刻設定手段による設定済みの時刻であるか否かを示すフラグをさらに記憶する。当該フラグによって第２時刻データが歩数管理装置の時刻に基づく設定済みの時刻でないと判別されるとき、第２記録時刻設定手段（３４，Ｓ１２１−Ｓ１２３）は、第２時刻データに関連付けられた各歩数値の記録時刻の設定を行わない。歩数計の時刻が歩数管理装置の時刻に設定されていない場合には、初期化処理前に記憶された歩数値の時刻が不明なので、当該歩数値を無効にすることができる。たとえば、電池交換がうまくいかずに電池が何度か出し入れされた場合や残量のほとんどない電池に交換された場合などに記憶された、時刻情報の不正確な歩数データを取り除くことができる。
【００２７】
第９の発明は、第１ないし第８の発明のいずれかに従属し、複数の前記歩数計を含み、第１記録時刻設定手段は、第１時刻データに関連付けられた各歩数計の各歩数値の記録時刻を、第２計時手段によって計時された時刻に基づいて設定し、第２記録時刻設定手段は、第２時刻データに関連付けられた各歩数計の各歩数値の記録時刻を、各歩数計の第２時刻データに基づいて設定する。
【００２８】
第９の発明では、歩数計測システムは複数の歩数計を含み、複数の歩数計の歩数データが歩数管理装置によって管理される。第１時刻データに関連付けられた各歩数計の各歩数値の記録時刻は、歩数管理装置の時刻に基づいて設定され、第２時刻データに関連付けられた各歩数計の各歩数値の記録時刻は、各歩数計の第２時刻データに基づいて設定される。したがって、歩数計の電池が交換されても電池交換前の歩数と電池交換後の歩数それぞれの記録時刻を適切に設定することができる。特に、電池交換前の歩数については、各歩数計に記憶された時刻に基づいて記録時刻を設定するので、歩数の記録時刻の精度を保つことができる。また、電池交換後の歩数については、歩数管理装置の時刻に基づいて設定するので、複数の歩数計の時計がそれぞれ異なる時刻を刻んでいたとしても、時刻の整合性を取って各歩数計の時刻を容易に同期させることができる。複数の歩数計を含むシステムが構成されても、歩数の記録時刻の精度を向上させることができる。
【００２９】
第１０の発明は、歩数計測システムにおいて歩数の記録時刻を設定する歩数管理装置と通信可能な歩数計である。歩数計は、時刻を計時する第１計時手段、単位時間ごとの歩数値を検出する検出手段、検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段、歩数データ記憶手段によって記憶される歩数値に関連付けて第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段、リセットに応じて起動される初期化処理において、第１時刻データ記憶手段によって第１時刻データとして記憶されていた時刻を、第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段、および少なくとも歩数データ記憶手段によって記憶された歩数値および第２時刻データ記憶手段によって記憶された第２時刻データを歩数管理装置に送信するデータ送信手段を備える。
【００３０】
第１１の発明は、歩数計測システムにおいて歩数の記録時刻を設定する歩数管理装置と通信可能な歩数計のプログラムである。このプログラムは、歩数計のコンピュータを、時刻を計時する第１計時手段、単位時間ごとの歩数値を検出する検出手段、検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段、歩数データ記憶手段によって記憶される歩数値に関連付けて第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段、リセットに応じて起動される初期化処理において、第１時刻データ記憶手段によって第１時刻データとして記憶されていた時刻を、第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段、および少なくとも歩数データ記憶手段によって記憶された歩数値および第２時刻データ記憶手段によって記憶された第２時刻データを歩数管理装置に送信するデータ送信手段として機能させる。
【００３１】
第１０および第１１の発明では、上述の歩数計測システムで用いられる歩数計およびそのプログラムを提供することができる。
【００３２】
第１２の発明は、歩数計測システムにおいて歩数計で検出された歩数の記録時刻を設定する歩数管理装置である。歩数計は、時刻を計時する第１計時手段と、単位時間ごとの歩数値を検出する検出手段と、検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段と、歩数データ記憶手段によって記憶される歩数値に関連付けて第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段と、リセットに応じて起動される初期化処理において、第１時刻データ記憶手段によって第１時刻データとして記憶されていた時刻を、第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段とを備えている。歩数管理装置は、時刻を計時する第２計時手段、少なくとも歩数データ記憶手段によって記憶された歩数値および第２時刻データ記憶手段によって記憶された第２時刻データを、歩数計から取得するデータ取得手段、第１時刻データに関連付けられた各歩数値の記録時刻を、第２計時手段によって計時された時刻に基づいて設定する第１記録時刻設定手段、および第２時刻データに関連付けられた各歩数値の記録時刻を第２時刻データに基づいて設定する第２記録時刻設定手段を備える。
【００３３】
第１３の発明は、歩数計測システムにおいて歩数計で検出された歩数の記録時刻を設定する歩数管理装置のプログラムである。歩数計は、時刻を計時する第１計時手段と、単位時間ごとの歩数値を検出する検出手段と、検出手段によって順次検出された歩数値を記憶する歩数データ記憶手段と、歩数データ記憶手段によって記憶される歩数値に関連付けて第１計時手段によって計時された時刻を第１時刻データとして記憶する第１時刻データ記憶手段と、リセットに応じて起動される初期化処理において、第１時刻データ記憶手段によって第１時刻データとして記憶されていた時刻を、第１時刻データと区別可能な第２時刻データとして記憶する第２時刻データ記憶手段とを備えている。このプログラムは、歩数管理装置のコンピュータを、時刻を計時する第２計時手段、歩数データ記憶手段によって記憶された歩数値および第２時刻データ記憶手段によって記憶された第２時刻データを歩数計から取得するデータ取得手段、第１時刻データに関連付けられた各歩数値の記録時刻を第２計時手段によって計時された時刻に基づいて設定する第１記録時刻設定手段、および第２時刻データに関連付けられた各歩数値の記録時刻を第２時刻データに基づいて設定する記録時刻設定手段として機能させる。
【００３４】
第１２および第１３の発明では、上述の歩数計測システムで用いられる歩数管理装置およびそのプログラムを提供することができる。
【発明の効果】
【００３５】
この発明によれば、初期化処理後の歩数値については、記録時刻を歩数管理装置の時刻に基づいて設定し、初期化処理前の歩数値については、記録時刻を歩数計の時刻に基づいて設定することができるので、歩数の記録時刻の精度を向上することができる。また、歩数計の電池交換の有無に応じて、すなわち、初期化処理の前後で、歩数の記録時刻の設定を使い分けることができるので、歩数の記録時刻を適切に設定することができる。
【００３６】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００３７】
図１を参照して、この発明の実施例の歩数計測システム１０００は、歩数計１００および歩数管理装置１０を含む。歩数計１００は、使用者の歩行に応じて歩数を計測するためのものである。歩数管理装置１０は、歩数計１００によって計測された歩数データの管理をするためのものである。歩数管理装置１０と歩数計１００とは、たとえばＩｒＤＡのような近距離無線通信により互いにデータを送受信する。
【００３８】
なお、図１では、１つの歩数計１００のみが示されるが、歩数計測システム１０００は複数の歩数計１００を含んでよい。つまり、歩数管理装置１０では、複数の歩数計１００のそれぞれの歩数データが管理されるようにしてよい。
【００３９】
歩数管理装置１０は、一例として携帯型のゲーム装置の形態で実現される。ただし、歩数管理装置１０の形態は任意であり、たとえば、据置型のゲーム装置、パーソナルコンピュータ、携帯情報端末、携帯電話機であってもよい。
【００４０】
ゲーム装置１０は、第１の液晶表示器（ＬＣＤ）１２および第２のＬＣＤ１４を含む。ＬＣＤ１２およびＬＣＤ１４は、所定の配置位置となるようにハウジング１６に収納される。この実施例では、ハウジング１６は、上側ハウジング１６ａと下側ハウジング１６ｂとによって構成され、ＬＣＤ１２は上側ハウジング１６ａに収納され、ＬＣＤ１４は下側ハウジング１６ｂに収納される。したがって、ＬＣＤ１２とＬＣＤ１４とは縦（上下）に並ぶように近接して配置される。
【００４１】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【００４２】
図１からも分かるように、上側ハウジング１６ａは、ＬＣＤ１２の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１２の表示面を露出するように開口部が形成される。一方、下側ハウジング１６ｂの平面形状およびサイズも上側ハウジング１６ａと同等に選ばれ、横方向の中央部にＬＣＤ１４の表示面を露出するように開口部が形成される。下側ハウジング１６ｂの右側面には電源スイッチ１８が設けられる。
【００４３】
また、上側ハウジング１６ａには、ＬＣＤ１２を挟んで左右に、スピーカ３６ａおよび３６ｂ（図２参照）のための音抜き孔２０ａおよび２０ｂが形成される。
【００４４】
上側ハウジング１６ａと下側ハウジング１６ｂとは、上側ハウジング１６ａの下辺（下端）と下側ハウジング１６ｂの上辺（上端）の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、ＬＣＤ１２の表示面とＬＣＤ１４の表示面とが対面するように、上側ハウジング１６ａを回動させて折りたたんでおけば、ＬＣＤ１２の表示面およびＬＣＤ１４の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング１６ａと下側ハウジング１６ｂとは、回動可能に連結せずに、それらを一体的（固定的）に設けたハウジング１６を形成するようにしてもよい。
【００４５】
そして、上側ハウジング１６ａと下側ハウジング１６ｂとの連結部の中央には、マイク（図示せず）のためのマイク孔２０ｃが形成される。マイクから取り込んだ音、音声または息などによる音声信号に基づいてゲーム処理を行うことが可能である。
【００４６】
また、下側ハウジング１６ｂには、操作スイッチ２２（２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２ｆ，２２ｇ，２２Ｌおよび２２Ｒ）が設けられる。
【００４７】
操作スイッチ２２は、方向指示スイッチ（十字スイッチ）２２ａ，スタートスイッチ２２ｂ、セレクトスイッチ２２ｃ、動作スイッチ（Ａボタン）２２ｄ、動作スイッチ（Ｂボタン）２２ｅ、動作スイッチ（Ｘボタン）２２ｆ、動作スイッチ（Ｙボタン）２２ｇ、動作スイッチ（Ｌボタン）２２Ｌおよび動作スイッチ（Ｒボタン）２２Ｒを含む。スイッチ２２ａは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の左側に配置される。その他のスイッチ２２ｂ−２２ｇは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の右側に配置される。さらに、動作スイッチ２２Ｌおよび２２Ｒは、それぞれ下側ハウジング１６ｂの上端面の左右角部に配置される。なお、動作スイッチ２２Ｌおよび２２Ｒは下側ハウジング１６ｂの背面に設けられており、図１のような正面視では連結部の背後に隠れているので破線で示されている。
【００４８】
方向指示スイッチ２２ａは、ディジタルジョイスティックとして機能し、４つの押圧部の１つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤオブジェクト(またはプレイヤキャラクタ)の進行方向（移動方向）を指示したり、カーソルの進行方向を指示したりする等のために用いられる。また、各押圧部には、特定の役割を割り当てることができ、４つの押圧部の１つを操作することによって、割り当てられた役割を指示（指定）することができる。
【００４９】
スタートスイッチ２２ｂは、プッシュボタンで構成され、ゲームを開始（再開）したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ２２ｃは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【００５０】
動作スイッチ２２ｄすなわちＡボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤオブジェクトに打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(ＲＰＧ)やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ２２ｅすなわちＢボタンは、プッシュボタンで構成され、セレクトスイッチ２２ｃで選択したゲームモードの変更やＡボタン２２ｄで決定したアクションの取り消し等のために用いられる。
【００５１】
動作スイッチ２２ｆすなわちＸボタン、および動作スイッチ２２ｇすなわちＹボタンは、プッシュボタンで構成され、Ａボタン２２ｄとＢボタン２２ｅだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Ｘボタン２２ｆおよびＹボタン２２ｇは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてＸボタン２２ｆとＹボタン２２ｇとを必ずしも使用しなくてよい。
【００５２】
動作スイッチ２２Ｌ（左押しボタン）および動作スイッチ２２Ｒ（右押しボタン）は、プッシュボタンで構成され、左押しボタン（Ｌボタン）２２Ｌおよび右押しボタン（Ｒボタン）２２Ｒは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることができ、また、Ａボタン２２ｄおよびＢボタン２２ｅの補助的な操作に用いることができる。さらに、Ｌボタン２２ＬおよびＲボタン２２Ｒは、方向スイッチ２２ａ，Ａボタン２２ｄ，Ｂボタン２２ｅ，Ｘボタン２２ｆ，Ｙボタン２２ｇに割り当てられた役割を、他の役割に変更することができる。
【００５３】
また、ＬＣＤ１４の上面には、タッチパネル２４が装着される。タッチパネル２４としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。タッチパネル２４はＬＣＤ１４の画面内の任意の位置（座標）をユーザが指示するためのポインティングデバイスである。タッチパネル２４は、その上面をスティック２６ないしはペン（スタイラスペン）或いは指（以下、これらを「スティック２６等」という場合がある。）で、押圧したり、撫でたり、触れたりすることにより操作（タッチ入力）すると、スティック２６等の操作位置の座標を検出して、当該検出座標に対応する座標データを出力する。
【００５４】
なお、この実施例では、ＬＣＤ１４（ＬＣＤ１２も同じ、または略同じ。）の表示面の解像度は２５６ｄｏｔ×１９２ｄｏｔである。タッチパネル２４の検出精度も表示画面に対応して２５６ｄｏｔ×１９２ｄｏｔとしてあるが、タッチパネル２４の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【００５５】
ＬＣＤ１２およびＬＣＤ１４には異なるゲーム画面を表示することができる。たとえば、レースゲームでは一方のＬＣＤに運転席からの視点による画面を表示し、他方のＬＣＤにレース（コース）全体の画面を表示することができる。また、ＲＰＧでは、一方のＬＣＤにマップやプレイヤオブジェクト等のキャラクタを表示し、他方のＬＣＤにプレイヤオブジェクトが所有するアイテムを表示することができる。さらに、一方のＬＣＤにプレイヤオブジェクトやノンプレイヤオブジェクトなどを含むゲーム画面を表示し、他方のＬＣＤに当該プレイヤオブジェクトやノンプレイヤオブジェクトに関する情報を含む他のゲーム画面または当該プレイヤオブジェクトを操作するための操作画面を表示することができる。さらには、２つのＬＣＤ１２およびＬＣＤ１４を合わせて１つの画面として用いることにより、プレイヤオブジェクトが倒さなければならない巨大な怪物（敵オブジェクト）を表示することもできる。
【００５６】
したがって、プレイヤはスティック２６等でタッチパネル２４を操作することにより、ＬＣＤ１４の画面に表示されるプレイヤオブジェクト、敵オブジェクト、アイテムオブジェクト、操作オブジェクトなどの画像を指示（操作）したり、コマンドを選択（入力）したりすることができる。また、仮想ゲーム空間（３次元ゲーム空間）に設けられる仮想カメラ（視点）の方向（視線の向き）を変化させたり、ゲーム画面（マップ）のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【００５７】
なお、ゲームの種類によっては、タッチパネル２４を用いることにより、その他の入力指示も可能である。たとえば、ＬＣＤ１４上のタッチパネル２４において文字，数字，記号等を手書き入力することができる。
【００５８】
このように、ゲーム装置１０は、２画面分の表示部となるＬＣＤ１２およびＬＣＤ１４を有し、いずれか一方（この実施例では、ＬＣＤ１４）の上面にタッチパネル２４が設けられるので、２画面（１２，１４）と２系統の操作部（２２，２４）とを有する構成になっている。
【００５９】
なお、この実施例では、第１のＬＣＤ１２と第２のＬＣＤ１４とを縦方向に並べて配置するようにしているが、２つのＬＣＤの配置は適宜に変更され得る。他の実施例では、第１のＬＣＤ１２と第２のＬＣＤ１４とを横方向に並べて配置するようにしてもよい。
【００６０】
また、この実施例では、２つのＬＣＤを設けるようにしているが、表示手段としてのＬＣＤの数は適宜変更され得る。他の実施例では、縦長形状の１つのＬＣＤを設けて、表示領域を上下に分けて、２つのゲーム画面をそれぞれの表示領域に表示するようにしてもよいし、あるいは、横長形状の１つのＬＣＤを設けて、表示領域を左右に分割し、２つゲーム画面をそれぞれの表示領域に表示するようにしてもよい。
【００６１】
また、スティック２６は、たとえば下側ハウジング１６ｂに設けられる収納部（図示せず）に収納することができ、必要に応じて取り出される。ただし、スティック２６を設けない場合には、その収納部も設ける必要はない。
【００６２】
さらに、ゲーム装置１０はメモリカード（またはカートリッジ）２８を含み、このメモリカード２８は着脱自在であり、下側ハウジング１６ｂの上端面に設けられる挿入部３０（図１では点線で示す）に挿入される。図１では省略するが、挿入部３０の奥部には、メモリカード２８の挿入方向先端部に設けられるコネクタ６０と接合するためのコネクタ３２（図２参照）が設けられており、したがって、メモリカード２８が挿入部３０に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア３４（図２参照）がメモリカード２８にアクセス可能となる。
【００６３】
なお、図１では省略するが、たとえば、下側ハウジング１６ｂにおいて、その裏面には電池収容ボックスが設けられ、下端面（底面）には、音量スイッチおよびイヤフォンジャックなどが設けられ、上端面（天面）には、外部拡張コネクタなどが設けられる。
【００６４】
図２はゲーム装置１０の電気的な構成を示すブロック図である。この図２を参照して、ゲーム装置１０は電子回路基板３８を含み、この電子回路基板３８には上述のＣＰＵコア３４等の回路コンポーネントが実装される。ＣＰＵコア３４は、バス４０を介して前述のコネクタ３２に接続されるととともに、ＲＡＭ４２、第１のグラフィック処理ユニット（ＧＰＵ）４４、第２のＧＰＵ４６、入出カインターフェース回路（以下、「Ｉ／Ｆ回路」という。）４８、ＬＣＤコントローラ５０および無線通信部５８に接続される。
【００６５】
コネクタ３２には、上述したように、メモリカード２８が着脱自在に接続される。メモリカード２８は、コネクタ３２と接合されるコネクタ６０を含み、コネクタ６０には、バス６２を介してＲＯＭ６４およびマイコン６６が接続される。マイコン６６には、バックアップ用メモリ６８およびＩｒ通信用回路７０が接続される。
【００６６】
マイコン６６は、ＣＰＵコア３４の制御下で、バックアップ用メモリ６８の書込みおよび読出し、ならびにＩｒ通信用回路７０を用いた赤外線通信（Ｉｒ通信）を制御する。つまり、ＣＰＵコア３４は、マイコン６６を介してバックアップ用メモリ６８にデータを書き込み、バックアップ用メモリ６８からデータを読み出す。また、ＣＰＵコア３４は、マイコン６６およびＩｒ通信用回路７０を介して、歩数計１００とデータを送受信する。なお、図１では見えないが、Ｉｒ通信用回路７０の通信ポートが、メモリカード２８が挿入部３０に装着されたときに露出する部分（たとえば上端面）に設けられている。
【００６７】
ＲＯＭ６４は、ゲーム装置１０で実行すべきゲームのためのゲームプログラム、画像データ（文字やオブジェクトの画像、背景画像、アイテム画像、アイコン（ボタン）画像、メッセージ画像など）およびゲームに必要な音（音楽）のデータ（音データ）等を予め記憶する。バックアップ用メモリ６８は、そのゲームの途中データやゲームの結果データなどを記憶（セーブ）するためのものである。バックアップ用メモリ６８としては、フラッシュメモリのような不揮発性メモリ、または電池から電源が供給されるＳＲＡＭなどが用いられ得る。
【００６８】
ＲＡＭ４２は、バッファメモリないしはワーキングメモリとして使用される。つまり、ＣＰＵコア３４は、メモリカード２８のＲＯＭ６４に記憶されたゲームプログラム、画像データおよび音データ等をＲＡＭ４２にロードし、ロードしたゲームプログラムに従って処理を実行する。また、ＣＰＵコア３４は、ゲームの進行に応じて一時的に生成するデータ（ゲームデータやフラグデータ等）をＲＡＭ４２に記憶しつつゲーム処理を実行する。
【００６９】
ＧＰＵ４４およびＧＰＵ４６は、それぞれ、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、ＣＰＵコア３４からのグラフィックスコマンド（作画命令）を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、ＣＰＵコア３４は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム（ゲームプログラムに含まれる。）をＧＰＵ４４およびＧＰＵ４６のそれぞれに与える。
【００７０】
また、ＧＰＵ４４には、第１のビデオＲＡＭ（以下、「ＶＲＡＭ」という。）５２が接続され、ＧＰＵ４６には、第２のＶＲＡＭ５４が接続される。ＧＰＵ４４およびＧＰＵ４６が作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンやテクスチャ等のデータ）は、ＧＰＵ４４およびＧＰＵ４６が、それぞれ、第１のＶＲＡＭ５２および第２のＶＲＡＭ５４にアクセスして取得する。
【００７１】
なお、ＣＰＵコア３４は、描画に必要な画像データをＧＰＵ４４およびＧＰＵ４６を介して第１のＶＲＡＭ５２および第２のＶＲＡＭ５４に書き込む。ＧＰＵ４４はＶＲＡＭ５２にアクセスして描画のための画像データを作成し、その画像データをＶＲＡＭ５２の描画バッファに記憶する。ＧＰＵ４６はＶＲＡＭ５４にアクセスして描画のための画像データを作成し、その画像データをＶＲＡＭ５４の描画バッファに記憶する。描画バッファとしてはフレームバッファまたはラインバッファ等が採用されてよい。
【００７２】
ＶＲＡＭ５２およびＶＲＡＭ５４は、ＬＣＤコントローラ５０に接続される。ＬＣＤコントローラ５０はレジスタ５６を含み、レジスタ５６はたとえば１ビットで構成され、ＣＰＵコア３４の指示によって「０」または「１」の値（データ値）を記憶する。ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「０」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１２に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１４に出力する。また、ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「１」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１４に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１２に出力する。
【００７３】
なお、ＬＣＤコントローラ５０は、ＶＲＡＭ５２およびＶＲＡＭ５４から直接画像データを読み出したり、ＧＰＵ４４およびＧＰＵ４６を介してＶＲＡＭ５２およびＶＲＡＭ５４から画像データを読み出したりする。
【００７４】
また、ＶＲＡＭ５２およびＶＲＡＭ５４はＲＡＭ４２に設けられてもよいし、あるいはその描画バッファおよびＺバッファがＲＡＭ４２に設けられてもよい。
【００７５】
Ｉ／Ｆ回路４８には、操作スイッチ２２，タッチパネル２４およびスピーカ３６ａ，３６ｂが接続される。ここで、操作スイッチ２２は、上述したスイッチ２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２ｆ，２２ｇ，２２Ｌおよび２２Ｒであり、操作スイッチ２２が操作されると、対応する操作信号（操作データ）がＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。また、タッチパネル２４からの座標データがＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。さらに、ＣＰＵコア３４は、ゲーム音楽（ＢＧＭ）、効果音またはゲームキャラクタの音声（擬制音）などのゲームに必要な音データをＲＡＭ４２から読み出し、Ｉ／Ｆ回路４８を介してスピーカ３６ａ，３６ｂから当該音を出力する。
【００７６】
無線通信部５８は他のゲーム装置１０や通信機器との間で無線によってデータを送受信するための通信手段である。なお、ゲーム装置１０が送受信する微弱電波は、電波法による規制のかからない強度に設定されている。ＣＰＵコア３４がゲームデータやコマンドなどのデータを無線通信部５８に与えると、無線通信部５８は、相手方へのデータを無線信号に変調してアンテナから送信する。また、無線通信部５８は、相手方からの無線信号を同じアンテナで受信してデータに復調し、当該データをＣＰＵコア３４に与える。この無線通信部５８を介して、ゲーム装置１０は、他のゲーム装置１０との間でデータを通信して通信ゲームを実行することが可能である。また、ゲーム装置１０は、この無線通信部５８を介してネットワークに接続することができ、ネットワーク上のサーバからプログラムやデータをダウンロードしたり、サーバにデータをアップロードしたり、ネットワークを介して他のゲーム装置１０と通信したりすることが可能である。
【００７７】
図３は歩数計１００の一例を示す斜視図である。歩数計１００は、略直方体形状のハウジング１０２を有し、ハウジング１０２は、ユーザのポケット等に簡単に収容可能なように小型化されており、一例として、縦横の長さは３〜４ｃｍ程度、厚さは１ｃｍ程度である。ハウジング１０２の一方主面（上面）には押しボタン１０４が設けられる。メモリカード２８のＩｒ通信用回路７０が通信待機状態にある場合に、ユーザによってこの押しボタン１０４が押されると、歩数計１００はメモリカード２８すなわちゲーム装置１０と通信を開始する。また、押しボタン１０４の端部にはＬＥＤ１０６が設けられる。ＬＥＤ１０６は、たとえば２色ＬＥＤであり、色や点滅パターンによって、歩数計１００の動作状態を表現する。また、ハウジング１０２の側面（先端面）には、赤外線通信ポート１０８が設けられる。なお、歩数計１００の動作電源としては、たとえばコイン型リチウム電池（ＣＲ２０３２）が使用され、ハウジング１０２の他方主面（下面）には電池蓋が取り外し可能に設けられている。
【００７８】
図４は、歩数計１００の電気的な構成の一例を示すブロック図である。歩数計１００はマイコン１１０を含み、マイコン１１０には、増幅回路１１２を介してショックセンサ１１４が接続される。また、マイコン１１０には、押しボタン１０４、ＬＥＤ１０６、ＥＥＰＲＯＭ１１６およびＩｒ通信用回路１１８が接続される。
【００７９】
マイコン１１０は、歩数計アルゴリズムを内蔵した低消費電力マイコンであり、ショックセンサ１１４からの出力データの検出、ＥＥＰＲＯＭ１１６の書込みおよび読出し、ＬＥＤ１０６の点滅、Ｉｒ通信用回路１１８を用いた赤外線通信など、歩数計１００の全体動作を制御する。
【００８０】
ショックセンサ１１４は、ユーザの歩行に応じた動きを検出するためのセンサであり、たとえばＨＤＤの衝撃検知に用いられるショックセンサ（加速度センサ）が適用され得る。ショックセンサ１１４は、この実施例では２軸に配置され、これによって、歩数計１００をポケットや鞄等に入れた状態で歩数を計測または検出することが可能になっている。ショックセンサ１１４の出力は増幅回路１１２で増幅されてマイコン１１０に入力される。マイコン１１０にはＡＤコンバータが内蔵されているので、マイコン１１０はショックセンサ１１４の出力をサンプリングして出力データ（加速度データ）を取得する。マイコン１１０は、出力データと歩数計アルゴリズムに基づいて歩数をカウントし、単位時間ごとに歩数の累計値（カウント数）を順次ＥＥＰＲＯＭ１１６に記憶する。つまり、ＥＥＰＲＯＭ１１６には歩数データとして単位時間ごとの歩数値の履歴が保存される。
【００８１】
ただし、ＥＥＰＲＯＭ１１６の歩数データの保存領域には限りがあり、つまり、歩数データには保存期間がある。たとえば、１分単位ごとに歩数値を記憶する場合には、ＥＥＰＲＯＭ１１６には約７日分の歩数履歴を保存することができる。保存領域が一杯になった場合には、最も古く記憶された歩数値が上書きされる。また、この実施例では、歩数値の記録の単位時間は１分に設定されるが、たとえば１時間、１日などに適宜変更可能である。
【００８２】
マイコン１１０は、動作状態に応じてＬＥＤ１０６の色や点滅パターンを制御する。たとえば、当日の歩数が予め設定しておいた歩数を超えたときには、ＬＥＤ１０６の色が赤から黄緑に変更される。また、押しボタン１０４が押されたときには、マイコン１１０は、Ｉｒ通信用回路１１８を用いてゲーム装置１０（メモリカード２８）との通信を開始するとともに、当該通信開始確認と動作確認のためにＬＥＤ１０６を点滅させる。
【００８３】
押しボタン１０４が押されることによって通信を開始すると、マイコン１１０は、歩数計１００のＩＤ（識別情報）を内蔵ＲＯＭまたはＥＥＰＲＯＭ１１６から読み出し、当該ＩＤを含むデータをＩｒ通信用回路１１８を介してゲーム装置１０に送信する。歩数計１００とゲーム装置１０は、必要なデータを送受信する。たとえば、ゲーム装置１０から歩数データの要求を受信すると、マイコン１１０は、ＥＥＰＲＯＭ１１６から必要な歩数データを読み出してゲーム装置１０に送信する。なお、ゲーム装置１０は、前回歩数計１００から歩数データを受信したときの時刻情報を記憶しており、必要な期間または個数の歩数値を要求することができ、その場合、マイコン１１０は、現在の歩数値から過去に遡って、必要な期間または個数の歩数値を読み出して、ゲーム装置１０に送信することができる。
【００８４】
図５にはゲーム装置１０のメモリマップの一例が示される。メモリマップはプログラム記憶領域２００およびデータ記憶領域２０２を含む。なお、図５はメモリマップの一部を示しており、プログラム記憶領域２００およびデータ記憶領域２０２には、画像生成表示プログラム、操作データ取得プログラム、歩数データ保存プログラム、歩数データを所定の処理に使用するプログラムおよび画像データなど、処理の実行に必要な他のプログラムおよびデータも記憶されている。
【００８５】
記憶領域２０４には、電池交換検出プログラムが記憶されている。このプログラムは、歩数計１００において電池交換があったか否かを検出するためのものである。なお、電池交換だけでなく、歩数計１００に強い静電気のような衝撃が加わって誤って歩数計１００がリセットされたことも検出する。つまり、このプログラムにより、歩数計１００で初期化があったか否かを検出する。初期化があったか否かは、歩数計１００から取得した所定のデータに基づいて判定される。歩数計１００でリセットがかかり、つまり、初期化処理が実行されたときに、所定のデータとして当該初期化があったことを示す情報が記憶されてよく、その場合、当該情報によって初期化が判定される。また、歩数計１００に記憶されている歩数値の数に基づいて、判定を行うようにしてもよい。その場合、ゲーム装置１０に歩数計１００から歩数データを取得したときの時刻情報を示す前回取得時刻を記憶しておく。そして、歩数計１００に前回取得時刻から現在時刻までの期間に記憶されている歩数値の数が当該期間に記憶されるべき数よりも小さければ、初期化があったことが分かる。
【００８６】
記憶領域２０６には、歩数データ受信プログラムが記憶されている。このプログラムは、歩数計１００から必要な歩数値を取得するためのものである。これにより、前回取得時刻から現在時刻までの期間の歩数データが取得される。また、初期化があった場合、初期化前に計測された歩数データが取得される。
【００８７】
記憶領域２０８には時刻設定プログラムが記憶されている。このプログラムは、単位時間ごとの歩数値のそれぞれに、記録時刻を設定するためのものである。初期化前に記憶された各歩数値については、各記録時刻が歩数計１００の時刻に基づいて設定される。初期化後に記憶された各歩数値については、各記録時刻がゲーム装置１０の時刻に基づいて設定される。
【００８８】
記憶領域２１０には、ゲーム装置１０の現在の時刻情報を示す現在時刻ｔ１が記憶される。時刻情報は年月日時分秒を含む。ゲーム装置１０の電子回路基板３８には、図示しない時計回路が設けられており、ＣＰＵコア３４は、当該時計回路から時刻を取得して現在時刻ｔ１をカウントする。
【００８９】
記憶領域２１２には前回取得時刻ｔ３が記憶される。前回取得時刻ｔ３は、歩数計１００から前回歩数データを取得したときの時刻情報、つまり、最後に歩数データの取得処理を行って歩数データを受信した際の時刻情報を示す。ゲーム装置１０が複数の歩数計１００から歩数データを取得する場合、各歩数計１００のＩＤに対応付けて、それぞれのｔ３を記憶する。前回取得時刻ｔ３は、バックアップ用メモリ６８に保存される。
【００９０】
記憶領域２１４には歩数計１００から取得した歩数データが記憶される。ゲーム装置１０が複数の歩数計１００から歩数データを取得する場合、各歩数計１００のＩＤに対応付けて、それぞれの歩数データを記憶する。歩数データはバックアップ用メモリ６８に保存される。
【００９１】
図６には歩数計１００のメモリマップの一例が示される。メモリマップはプログラム記憶領域３００およびデータ記憶領域３０２を含む。なお、図６はメモリマップの一部を示しており、プログラム記憶領域３００およびデータ記憶領域３０２には、処理の実行に必要な他のプログラムおよびデータも記憶されている。
【００９２】
記憶領域３０４には、歩数データ記録プログラムが記憶されている。このプログラムは、単位時間ごとの歩数値を検出し記録するためのものである。
【００９３】
記憶領域３０６には初期化プログラムが記憶されている。この初期化プログラムは、電池交換などに応じてリセットがかかったときに実行される。この初期化処理において、計測中の歩数データが記憶されていると判断されるとき、当該データは過去のデータすなわち初期化前に計測されたデータとして記憶される。
【００９４】
記憶領域３０８には時刻設定プログラムが記憶されている。このプログラムは、歩数計１００の時刻をゲーム装置１０の時刻に設定するためのものである。
【００９５】
記憶領域３１０には歩数データ送信プログラムが記憶されている。このプログラムは、必要な歩数値をゲーム装置１０に送信するためのものである。
【００９６】
記憶領域３１２には歩数計１００の現在の時刻情報を示す現在時刻ｔ２が記憶される。時刻情報は年月日時分秒を含む。歩数計１００のマイコン１１０は時計回路を内蔵しており、現在時刻ｔ２をカウントする。初期化時には現在時刻ｔ２は初期値にリセットされる。初期値は、たとえば「２００１／０１／０１  ００：００：００」である。また、記憶領域３０８の時刻設定プログラムによって時刻設定が行われるときには、現在時刻ｔ２は、ゲーム装置１０から受信した時刻に設定される。
【００９７】
記憶領域３１４は歩数ログバッファすなわち歩数データバッファである。この歩数ログバッファはＥＥＰＲＯＭ１１６の特定の範囲に設けられており、したがって、電池が切れた場合であってもデータは保存される。このバッファには、歩数ログすなわち単位時間ごとの歩数値が記憶される。歩数データだけでなく、さらに、少なくとも１つの歩数値に対応する（検出）時刻情報、時刻設定済みフラグなどの日時データも記憶される。時刻設定済みフラグは、歩数計１００の時刻がゲーム装置１０から受信した時刻に基づいて計時されたか否かを示す。
【００９８】
図７−図９を参照して、この実施例の歩数データの記録方式について説明する。歩数計１００では、ＥＥＰＲＯＭ１１６に設けた歩数ログバッファ３１４に日時と歩数とが混ぜて格納される。つまり、歩数バッファ、日時バッファと分かれていない。たとえば特定の記憶領域を日時バッファとして固定してしまうと、当該記憶領域を単位時間ごとに書き換えることになり、このような記録方法では、ＥＥＰＲＯＭの書換寿命で問題がある。そこで、この実施例では、歩数データと日時データを移動させながら記録することによって、メモリの書換寿命が低下するのを防止するようにした。
【００９９】
具体的には、歩数ログバッファ３１４には、現在有効な日付ブロックが作成され、当該現在有効な日付ブロックに、現在計測中の歩数データに関する時刻情報が記憶される。図７は現在有効な日付ブロックを説明するための図解図である。図７において、黒菱形印「◆」４００が現在有効な日付ブロックを示す。また、二重丸印「◎」４０２は、日付ブロックの指す歩数値の記憶領域を示し、星印「＊」４０４は、歩数値１個分の記憶領域を示す。
【０１００】
現在有効な日付ブロック「◆」４００は、必ず規定長前に記憶される歩数値の検出時刻を示している。つまり、現在有効な日付ブロック「◆」４００に記憶される時刻情報は、規定長前の歩数値すなわち二重丸印「◎」４０２の記憶領域に記憶された歩数値の検出時刻を示す。最初、歩数ログバッファ３１４の先頭を基準にして規定長後のアドレスに現在有効な日付ブロック「◆」４００が作成され、この現在有効な日付ブロック「◆」４００に歩数計１００の時刻が記憶される。また、当該歩数計１００の時刻がゲーム装置１０の時刻に基づいて設定された時刻であるか否かを示す時刻設定済みフラグも記憶される。所定の単位時間ごとに検出される歩数値は、歩数ログバッファ３１４の先頭の記憶領域「◎」４０２から順次記憶される。このように、歩数ログバッファ３１４では、単位時間毎に順次検出されて記憶される歩数値に関連付けて時刻情報が記憶されている。
【０１０１】
時間経過に伴って歩数値が記憶領域「＊」４０４に順次記憶されていくことにより、書込み位置が現在有効な日付ブロック「◆」４００に迫ると、現在有効な日付ブロック「◆」４００を移動する。図８は現在有効な日付ブロックの移動を説明するための図解図である。図８において、丸印「○」４０６は、歩数値が既に記憶された記憶領域を示す。また、上向き矢印４０８は、書込みポインタの示す書込み位置、つまり、次に歩数値が書込まれる記憶領域または記憶位置を示す。
【０１０２】
図８の上部に示すように、この実施例では、書込み位置４０８が現在有効な日付ブロック「◆」４００を示すとき、この現在有効な日付ブロックが移動される。具体的には、図８の下部に示すように、現在有効な日付ブロックは規定長先に移動され、当該移動後の現在有効な日付ブロック「◆」４００に、歩数計１００の時刻および時刻設定済みフラグが記憶される。したがって、書込みポインタの指す記憶領域（書込み位置４０８）、すなわち、そのときまで現在有効な日付ブロックであった記憶領域（図８上部の「◆」４００）は、日付ブロックの指す記憶領域「◎」４０２（図８下部）となり、当該領域４０２に、検出された歩数値が記憶されることとなる。なお、そのときまで日付ブロックの指す歩数値の記憶領域「◎」４０２であった記憶領域（図８上部）は、歩数値が既に記憶された記憶領域「○」４０６（図８下部）となっている。
【０１０３】
このようにして、歩数ログバッファ３１４では、現在有効な日付ブロック「◆」４００を移動させつつ歩数値が記憶される。また、検出順序が分かるように各歩数値を記憶すれば、少なくとも１つの歩数値に対応する時刻のみを記憶しておくことで、各歩数値の時刻を算出できる。つまり、現在有効な日付ブロック「◆」４００に規定長前の記憶領域「◎」４０２の歩数値の時刻情報が記憶され、かつ、単位時間ごとに順次検出された各歩数値がアドレス順に記憶されるので、現在有効な日付ブロック「◆」４００の時刻情報とアドレス順に基づいて、各歩数値の時刻を算出することができる。したがって、歩数値ごとに時刻を記憶する必要がなく、順次検出されて記憶される歩数値に関連付けて少なくとも１つの時刻を記憶しておけばよいので、歩数データを記憶しておくメモリの容量を節約することができる。
【０１０４】
また、歩数ログバッファ３１４はリングバッファとして構成されており、当該歩数ログバッファ３１４の末尾の記憶領域の次に書込まれる記憶領域は、当該歩数ログバッファ３１４の先頭である。したがって、歩数値の記録が歩数ログバッファ３１４の末尾の記憶領域まで達したときは、次の記録は歩数ログバッファ３１４の先頭から上書きにより続けられる。
【０１０５】
歩数計１００において電池切れが起こると、歩数値の記録が停止する。歩数ログバッファ３１４は電池切れ直前の記憶状態で保持される。その後、ユーザによって電池が交換されたとき、歩数計１００のマイコン１１０にリセットがかかり初期化処理が実行されるようにする。このリセットに応じて起動される初期化処理によって、歩数ログバッファ３１４に記憶されていた歩数値に関連付けられた時刻を、歩数ログバッファ３１４にこれから記憶される歩数値に関連付けられる時刻と区別可能なデータとして記憶する。
【０１０６】
具体的には、図９に示すような初期化処理が実行される。図９の上部に示す歩数ログバッファ３１４の状態で電池が切れたとする。電池交換後の初期化処理では、マイコン１１０は、歩数ログバッファ３１４をサーチし、現在有効な日付ブロック「◆」４００を探す。現在有効な日付ブロック「◆」４００が見つかると、マイコン１１０は、当該現在有効な日付ブロック「◆」４００を、過去の日付ブロックに変更する。図９の下部に示すように、白菱形印「◇」４１０が過去の日付ブロックを示す。ただし、日付ブロックが現在有効な日付ブロックから過去の日付ブロックに変更されても、当該ブロックに記憶されていた時刻およびその時刻設定済みフラグは変更されない。つまり、この過去の日付ブロック「◇」４１０は、規定長前の記憶領域「◎」４０２に記憶された歩数値の時刻情報を記憶している。したがって、この過去の日付ブロック「◇」４１０の前に記憶された各歩数値の時刻を、当該過去の日付ブロック「◇」４１０の時刻とアドレス順に基づいて算出することができる。
【０１０７】
さらに、マイコン１１０は、過去の日付ブロック「◇」４１０の直後のアドレスを基準にして、新たに現在有効な日付ブロック「◆」４００を作成する。つまり、過去の日付ブロック「◇」４１０の直後の記憶領域の規定長後に現在有効な日付ブロック「◆」４００を作成する。したがって、過去の日付ブロック「◇」４１０の直後の記憶領域は、現在有効な日付ブロック「◆」４００の規定長前の記憶領域であり、つまり、現在有効な日付ブロック「◆」４００の指す歩数値の記憶領域「◎」４０２となる。なお、現在有効な日付ブロック「◆」４００には、初期値にリセットされた歩数計１００の時刻が記憶されるとともに、当該時刻に対応する時刻設定済みフラグはオフにされる。また、書込みポインタの書込み位置４０８は、過去の日付ブロック「◇」４１０の直後のアドレスに変更される。このようにして、電池交換後には、過去の日付ブロック「◇」４１０の直後から歩数値の記録が行われることとなる。
【０１０８】
なお、ここでは、電池切れ後の電池交換による初期化の場合を例に説明を行ったが、強い静電気などの衝撃により誤ってリセットがかかるなど、他の理由によって初期化が行われる場合も同様である。
【０１０９】
このようにして歩数計１００の歩数ログバッファ３１４に記憶された歩数データは、現在有効な日付ブロックと過去の日付ブロックによって、電池切れ以前に記憶された歩数ログであるかまたは最近の（現在記録中である）歩数ログであるか区別可能になっている。したがって、電池切れ以前に記憶された歩数ログの各歩数値については、過去の日付ブロックによって各時刻を算出することができ、最近の歩数ログの各歩数値については、現在の日付ブロックによって各時刻を算出することができる。
【０１１０】
図１０には、電池切れ以前の歩数ログの取得を説明するための図解図を示す。書込みポインタの書込み位置４０８は、現在の歩数ログの記録の最先端の記憶領域であるから、この書込み位置４０８から逆方向（記録を進める方向とは逆の方向）に過去の日付ブロック「◇」４１０または現在有効な日付ブロック「◆」４００をサーチする。なお、歩数ログバッファ３１４は上述のようにリングバッファであるから、歩数ログバッファ３１４の先頭までサーチがなされると、次は末尾からサーチが続けられる。また、電池切れ以前の歩数ログが存在しない場合、過去の日付ブロック「◇」４１０が発見されずに、現在有効な日付ブロック「◆」４００が発見される。なお、過去の日付ブロック「◇」４１０が発見されないのは、電池交換が行われていないためであり、あるいは、歩数ログの保存期間内に電池切れが起こらずに過去の日付ブロック「◇」４１０が上書きされたためである。
【０１１１】
直前（すなわち１回前）の電池切れ以前の歩数ログを取得する際には、書込み位置４０８から逆方向に１個目の過去の日付ブロック「◇」４１０をサーチする。過去の日付ブロック「◇」４１０を発見した場合、そこからさらに逆方向に別の過去の日付ブロック「◇」４１０または現在有効な日付ブロック「◆」４００のサーチを行う。１個目の過去の日付ブロックから次に発見された日付ブロックまでのデータが、直前の電池切れ以前の歩数データとして取得される。図１０の場合、サーチにより、書込み位置４０８から左方向に３つ隣にある過去の日付ブロック「◇」４１０が１個目の過去の日付ブロックとして発見される。さらに、歩数ログバッファ３１４の末尾にある現在有効な日付ブロック「◆」４００が発見される。そして、それらの間の歩数データが１回前の電池切れ以前の歩数ログとして取得される。
【０１１２】
２回前の電池切れ以前の歩数ログの取得、さらにそれ以前の歩数ログの取得も同様にして行われる。電池切れ以前の歩数ログの取得について包括的に表現すると、（ｎ＋１）回前の歩数ログを取得する際には、書込み位置４０８から逆方向に（ｎ＋１）個目の過去の日付ブロック「◇」４１０をサーチする。ただし、ｎは、電池交換回数をカウントするための変数ｎであり、０以上の整数である。（ｎ＋１）個目の過去の日付ブロック「◇」４１０を発見した場合、そこからさらに逆方向に別の過去の日付ブロック「◇」４１０または現在有効な日付ブロック「◆」４００のサーチを行って、発見された日付ブロック間のデータが（ｎ＋１）回前の電池切れ以前の歩数ログとして取得される。
【０１１３】
図１１には、最近の歩数ログの取得を説明するための図解図を示す。最近の歩数ログを取得する際には、書込み位置４０８から逆方向（記録を進める方向とは逆の方向）に過去の日付ブロック「◇」４１０または現在有効な日付ブロック「◆」４００をサーチする。書込み位置４０８から発見された日付ブロックまでの歩数データが最近の歩数ログとして取得される。図１１の場合、サーチにより、書込み位置４０８から左方向に３つ隣にある過去の日付ブロック「◇」４１０が発見される。そして、書込み位置４０８と発見された過去の日付ブロック「◇」４１０間の歩数データが最近の歩数ログとして取得される。
【０１１４】
歩数ログの各歩数値には時刻が設定される。電池切れ以前の歩数ログについては、歩数計１００で計時されて過去の日付ブロック「◇」４１０に記憶された時刻に基づいて設定される。具体的には、各歩数値の時刻は、当該歩数ログの後の過去の日付ブロック「◇」４１０と当該過去の日付ブロック「◇」４１０の規定長前の記憶領域「◎」４０２とから算出される。つまり、日付ブロックの指す記憶領域「◎」４０２の歩数値の時刻が、過去の日付ブロック「◇」４１０に記憶された時刻であるから、歩数ログの他の歩数値の時刻は、そのアドレスと記録の単位時間（この実施例では１分）に基づいて設定される。過去の日付ブロック「◇」４１０の指す記憶領域「◎」４０２よりも前に記憶された歩数値については、記憶領域「◎」４０２からアドレスが減るごとに単位時間だけ記憶領域「◎」４０２の時刻から減算した時刻が設定され、記憶領域「◎」４０２よりも後に記憶された歩数値については、記憶領域「◎」４０２からアドレスが増えるごとに単位時間だけ記憶領域「◎」４０２の時刻から加算した時刻が設定される。たとえば、日付ブロックの指す記憶領域「◎」４０２の２つ前の記憶領域「○」４０６の歩数値の時刻は、過去の日付ブロック「◇」４１０に記憶された時刻から（単位時間×２）だけ減算した時刻に設定される。
【０１１５】
また、最近の歩数ログについては、各歩数値の時刻は、現在有効な日付ブロック「◆」４００に記憶された時刻に基づいて設定されるのではなく、ゲーム装置（歩数管理装置）１０で計時される時刻に基づいて設定される。具体的には、書込み位置４０８の１つ前の記憶領域「○」４０６に記憶された歩数値が、最近に記憶された歩数値であるから、当該歩数値の時刻が、歩数ログを受信したときの時刻すなわちゲーム装置１０で計時される現在時刻ｔ１に設定される。歩数ログの他の歩数値の時刻は、そのアドレスと記録の単位時間に基づいて設定される。つまり、他の歩数値は、最近に記憶された歩数値よりも前に記憶された歩数値であるから、その時刻は、アドレスが減るごとに単位時間だけ現在時刻ｔ１から減算した時刻に設定される。
【０１１６】
このようにして、電池交換後に記憶された歩数値の時刻をゲーム装置１０側の時刻で設定し、歩数計１００の電池切れまでに記録された歩数値の時刻を歩数計１００側の時刻で設定することができる。つまり、歩数計１００が現在計時している時刻と連続している歩数値すなわち最近の歩数値については、ゲーム装置１０の現在時刻に基づいて時刻を設定でき、一方、歩数計１００が現在計時している時刻と連続していない歩数値すなわち初期化以前の歩数値については、歩数計１００に記憶しておいた時刻に基づいて時刻を設定できる。したがって、初期化（電池交換など）の有無に応じて、歩数値の時刻を適切に設定することができ、また、歩数の記録時刻の精度を向上させることができる。
【０１１７】
また、歩数計１００からの歩数データの取得をまめに行うようにすれば、歩数計１００の時刻に基づいて時刻設定される歩数値の量を減らし、ゲーム装置１０の精度の良い時刻に基づいて時刻設定される歩数値の量を増やすことができ、したがって、歩数計１００の時刻の精度をあまり気にしなくても良いので、安価な歩数計１００を提供することができる。なお、歩数計１００は電池切れで計時を停止し、その後電池交換により計時を開始しても、時計が初期値に設定されるので、この実施例では、ゲーム装置１０の時刻が設定されるまでは、正確な時刻が分からないが、歩数計１００に別電池を有する時計回路をさらに持たせるのはコスト面で問題がある。
【０１１８】
また、たとえば、歩数計１００が複数あって、複数の歩数計１００で検出される歩数値を１つのゲーム装置１０で管理するようなシステム１０００を構成する場合、ゲーム装置１０で計時される時刻によって、各歩数計１００で計測された歩数値の記録時刻が設定されるので、各歩数計１００の時刻を容易に同期させることができるとともに、複数の歩数計１００がそれぞれ異なる時刻を計時していたとしても、時刻の整合性を取ることができ、歩数値の記録時刻の精度を向上させることができる。
【０１１９】
この歩数計測システム１０００の動作の一例をフロー図に基づいて説明する。まず、歩数計１００の歩数ログの記録について説明する。図１２は歩数計１００の分ログ記録処理の動作の一例を示す。ここで分ログとは、１分を単位時間として検出された歩数値が記録された歩数ログを意味する。分ログ記録処理は、単位時間ごと（この実施例では１分ごと）に実行される。
【０１２０】
図１２のステップＳ１で、歩数計１００のマイコン１１０は、次のメモリ領域は日付ブロックであるか否かを判断する。つまり、マイコン１１０は、書込みポインタの示す書込み位置が、ＥＥＰＲＯＭ１１６の歩数ログバッファ３１４に記憶された現在有効な日付ブロック「◆」４００の記憶位置を示すかどうか判断する。このステップＳ１で“ＹＥＳ”の場合、マイコン１１０は、ステップＳ３で、現在有効な日付ブロック「◆」４００の時刻を現在時刻ｔ２に変更し、当該現在有効な日付ブロックを、歩数ログバッファ３１４において書込み位置から一定長先へ移動させる。一方、ステップＳ１で“ＮＯ”の場合には、処理はそのままステップＳ３に進む。
【０１２１】
ステップＳ３で、マイコン１１０は、次のメモリ領域に分ログを追加する。つまり、マイコン１１０は、書込みポインタの示す書込み位置に、単位時間の間に検出またはカウントされた歩数値を記憶する。ステップＳ３を終了すると、この分ログ記録処理を終了する。
【０１２２】
図１３は歩数計１００の初期化処理の動作の一例を示す。初期化処理は、電池交換が行われた場合、強い静電気により衝撃が加わった場合などに、リセットがかかることによって実行される。
【０１２３】
初期化処理を開始すると、マイコン１１０は、まず、ステップＳ１１でＥＥＰＲＯＭ１１６の歩数ログバッファ３１４から現在有効な日付ブロック「◆」４００を検索する。歩数ログの記録中に電池切れが起こった場合には、歩数ログバッファ３１４に現在有効な日付ブロック「◆」４００が記憶されているが、工場で出荷前に最初に初期化処理が起動される場合には、歩数ログバッファ３１４には現在有効な日付ブロック「◆」４００が記憶されていない。したがって、現在有効な日付ブロック「◆」４００を検索することによって、電池交換や誤動作等によって起動された初期化処理であるか否かを判断する。
【０１２４】
次に、ステップＳ１３で、マイコン１１０は、現在有効な日付ブロック「◆」４００を発見したか否かを判断する。ステップＳ１３で“ＮＯ”の場合、つまり、最初の初期化処理と判断される場合には、マイコン１１０は、ステップＳ１５で、バッファ先頭を基準にしたアドレスに現在有効な日付ブロック「◆」４００を新規に作成する。具体的には、ＥＥＰＲＯＭ１１６の歩数ログバッファ３１４の先頭アドレスから規定長先に、現在有効な日付ブロック「◆」４００を作成する。
【０１２５】
一方、ステップＳ１３で“ＹＥＳ”の場合、つまり、電池交換や誤動作等によって起動された初期化処理であると判断される場合には、マイコンは、ステップＳ１７で、発見した現在有効な日付ブロック「◆」４００を過去の日付ブロック「◇」４１０に変更する。また、ステップＳ１９で、マイコン１１０は、当該過去の日付ブロック「◇」４１０の直後のアドレスを基準にして、現在有効な日付ブロック「◆」４００を新規に作成する。具体的には、過去の日付ブロック「◇」４１０の直後のアドレスから規定長先に、現在有効な日付ブロック「◆」４００を作成する。
【０１２６】
続くステップＳ２１では、マイコン１１０は、歩数計１００の時刻ｔ２を初期値にリセットする。つまり、記憶領域３１２に現在時刻ｔ２として所定の初期値を記憶する。歩数計１００の現在時刻ｔ２は、この初期値から単位時間毎に一定値加算することによって計時される。
【０１２７】
また、ステップＳ２３では、マイコン１１０は、現在有効な日付ブロック「◆」４００に初期値すなわち現在時刻ｔ２を記録する。さらに、ステップＳ２５で、マイコン１１０は、現在有効な日付ブロック「◆」４００に記憶される時刻設定済みフラグをオフにする。時刻設定済みフラグは、現在有効な日付ブロック「◆」４００に記憶されている時刻がゲーム装置１０の計時する時刻に基づいて設定されたものであるか否かを示す。この初期化処理が実行されると、時刻設定済みフラグはオフにされ、後述されるように、歩数計１００がゲーム装置１０の計時する時刻ｔ１を受信して時刻ｔ２に時刻ｔ１を設定したとき、時刻設定済みフラグはオンにされる。このゲーム装置１０からの時刻ｔ１の受信は、歩数計１００の歩数データをゲーム装置１０に送信するための通信の際に実行される。したがって、時刻設定済みフラグがオフである場合、歩数計１００が、初期化処理を実行し、かつ、その後ゲーム装置１０と通信をしていない状態（初期状態）であることが分かる。つまり、時刻設定済みフラグがオフである場合には、歩数計１００では、電池交換や誤動作等によって初期化処理が実行されており、歩数ログバッファ３１４に過去の歩数ログ（初期化以前に記録された歩数ログ）が記憶されている可能性があることが分かる。ステップＳ２５を終了すると、この初期化処理を終了する。
【０１２８】
図１４は、歩数計１００の時刻設定処理の動作の一例を示す。ゲーム装置１０と通信中にゲーム装置１０から時刻設定コマンドを受信したときに実行される。具体的には、歩数計１００のマイコン１１０は、ステップＳ４１で、時刻設定コマンドをゲーム装置１０から受信したか否かを判断する。時刻設定コマンドは、後述されるように、歩数計１００の時刻設定済みフラグがオフである場合にゲーム装置１０から送信される。マイコン１１０は、このステップＳ４１の処理を一定時間ごとに実行し、“ＹＥＳ”と判断される場合に、続くステップＳ４３−Ｓ４９の処理を実行する。時刻設定済みコマンドを受信していない場合、そのままこの時刻設定処理を終了する。
【０１２９】
ステップＳ４３では、マイコン１１０は時刻ｔ１を取得する。時刻設定コマンドには、ゲーム装置１０で計時される現在の時刻ｔ１が含まれているので、この時刻ｔ１を時刻設定コマンドから抽出する。そして、ステップＳ４５で、マイコン１１０は、時刻ｔ１を歩数計１００の時刻ｔ２に設定する。具体的には、記憶領域３１２の現在時刻ｔ２として、受信した時刻ｔ１を記憶する。
【０１３０】
続いて、ステップＳ４７で、マイコン１１０は、時刻ｔ２を調整した時刻を、現在有効な日付ブロック「◆」４００の時刻に設定する。現在時刻ｔ２は、記録中の最先端の記憶領域、すなわち、書込みポインタの書込み位置４０８に対応し、一方、現在有効な日付ブロック「◆」４００の時刻は、規定長前の記憶領域「◎」４０２に対応する。したがって、現在時刻ｔ２、書込み位置４０８および規定長前の記憶領域「◎」４０２のアドレスに基づいて、記憶領域「◎」４０２の歩数値の検出時刻を算出し、当該検出時刻を現在有効な日付ブロック「◆」４００に記憶する。
【０１３１】
さらに、ステップＳ４９で、マイコン１１０は、現在有効な日付ブロック「◆」４００の時刻設定済みフラグをオンにする。これにより、現在有効な日付ブロック「◆」４００の時刻がゲーム装置１０の時刻ｔ１に基づいて設定されたことを記録する。ステップＳ４９を終了すると、この時刻設定処理を終了する。
【０１３２】
このように、この実施例では、歩数計１００側の時刻をゲーム装置１０側の時刻に修正することができるので、歩数計１００の時計の精度が低くてもよく、したがって、歩数計１００の製造コストを抑えることが出来る。また、歩数計１００の時刻をユーザに設定させる必要もないので、ユーザの手を煩わせることがなく、歩数計１００の操作性を簡略化することが出来る。
【０１３３】
図１５および図１６は歩数計１００の歩数ログ送信処理の動作の一例を示す。歩数計１００は、押しボタン１０４が押されると、ゲーム装置１０に通信を開始するための所定のデータを送信し、ゲーム装置１０との通信を開始する。歩数ログ送信処理は、ゲーム装置１０と通信を開始した後に、一定時間ごとに実行される。
【０１３４】
マイコン１１０は、ステップＳ６１で、ゲーム装置１０から歩数ログの数を要求されたか否かを判断する。ゲーム装置１０は、後述されるように、時刻設定済みフラグがオンである場合に歩数計１００で電池交換があったか否かを判断するために、歩数計１００に歩数ログの数を要求する。ここで要求される歩数ログの数は、前回取得時刻ｔ３から現在までに記録された歩数値の数である。
【０１３５】
ステップＳ６１で“ＹＥＳ”の場合、マイコン１１０は、ステップＳ６３で、要求された歩数ログの数を検出して、ゲーム装置１０に送信する。現在有効な日付ブロック「◆」４００に記憶された時刻が規定長前の記憶領域「◎」４０２の歩数値の時刻を示すので、マイコン１００は、各歩数値の検出時刻を特定することができる。したがって、マイコン１００は、歩数ログバッファ３１４を書込み位置４０８から逆方向に遡って調査することによって、現在から前回取得時刻ｔ３までの間に記録されている歩数値の数を検出することができる。現在時刻から前回取得時刻ｔ３までの間に初期化処理が実行されていた場合には、歩数値の記録が中断し、記録されている歩数値の数が、現在時刻から前回取得時刻ｔ３の期間に本来記録されているべき歩数値の数よりも少なくなる。一方、ステップＳ６１で“ＮＯ”の場合には、処理はそのままステップＳ６５に進む。
【０１３６】
ステップＳ６５では、マイコン１１０は、（ｎ＋１）回前の電池切れ以前の歩数ログを要求されたか否かを判断する。ゲーム装置１０は、後述されるように、歩数計１００で電池交換があったと判断されるときに、（ｎ＋１）回前の電池切れ以前の歩数ログを要求する。
【０１３７】
ステップＳ６５で“ＹＥＳ”の場合、マイコン１１０は、ステップＳ６７で、書込み位置４０８から逆方向に（ｎ＋１）個目の過去の日付ブロック「◇」４１０を探す。（ｎ＋１）回前の電池切れ以前の歩数ログが記憶されている場合、歩数ログバッファ３１４には（ｎ＋１）個の過去の日付ブロック「◇」４１０が記憶されている。
【０１３８】
そして、ステップＳ６９で、マイコンは当該過去の日付ブロック「◇」４１０を発見したか否かを判断する。ステップＳ６９で“ＮＯ”の場合、つまり、書込み位置４０８から１周するまでに（ｎ＋１）個目の過去の日付ブロック「◇」４１０を発見できなかった場合には、マイコン１１０は、ステップＳ７１で、歩数ログ存在フラグをオフにする。なお、歩数ログ存在フラグは、（ｎ＋１）回前の電池切れ以前の歩数ログが存在したかどうかを示すフラグであり、ゲーム装置１０に返送するデータに含められるデータである。ステップＳ７１を終了すると、処理はステップＳ７９に進む。
【０１３９】
一方、ステップＳ６９で“ＹＥＳ”の場合、つまり、（ｎ＋１）個目の過去の日付ブロック「◇」４１０が存在する場合には、マイコン１１０は、ステップＳ７３で、歩数ログ存在フラグをオンにする。
【０１４０】
続いて、ステップＳ７５で、マイコン１１０は、当該過去の日付ブロック「◇」４１０に設定された時刻および時刻設定済みフラグを読み出す。この時刻は、電池が切れたときの歩数計１００の時刻を示す。また、時刻設定済みフラグは、当該時刻に関する時刻設定済みフラグであり、つまり、当該時刻がゲーム装置１０の時刻に基づいて設定された時刻であるか否かを示す。これら時刻および時刻設定済みフラグは、ゲーム装置１０に返送するデータに含められるデータである。
【０１４１】
また、ステップＳ７７で、マイコン１１０は、当該過去の日付ブロック「◇」４１０から逆方向の次の日付ブロックまでの歩数ログを歩数ログバッファ３１４から読み出す。次の日付ブロックは、過去の日付ブロック「◇」４１０または現在有効な日付ブロック「◆」４００である。この読み出した歩数ログが、（ｎ＋１）回前の電池切れ以前の歩数ログである。
【０１４２】
そして、ステップＳ７９で、マイコン１１０は、歩数ログ存在フラグ、（ｎ＋１）回前の電池切れ以前の歩数ログ、電池が切れたときの歩数計１００の時刻および時刻設定済みフラグをゲーム装置１０に送信する。なお、ステップＳ６９で“ＮＯ”と判断される場合には、歩数ログ存在フラグのみを含むデータが返送される。
【０１４３】
一方、ステップＳ６５で“ＮＯ”の場合には、処理はそのまま図１６のステップＳ８１に進む。なお、この実施例のゲーム装置１０は、後述されるように、（ｎ＋１）回前の電池切れ以前の歩数ログが存在しないと判断されるまで、１回の電池切れごとの歩数ログを要求するようになっているので、ステップＳ７９で歩数ログ存在フラグがオフであるデータがゲーム装置１０に送信されるまで、歩数ログの要求に応じてステップＳ６５からＳ７９の処理が繰り返し実行されることとなる。
【０１４４】
図１６のステップＳ８１では、マイコン１１０は、最近の歩数ログを要求されたか否かを判断する。ゲーム装置１０は、後述されるように、歩数計１００に最近の歩数ログを要求する。また、ゲーム装置１０は、前回取得時間ｔ３から現在時刻ｔ１までの期間分の歩数ログを要求する。ただし、前回取得時間ｔ３から現在時刻ｔ１までの期間が、歩数ログバッファ３１４に記録可能な最大数に対応する期間を超える場合には、最近の歩数ログのすべてが要求される。
【０１４５】
ステップＳ８１で“ＹＥＳ”の場合、マイコン１１０は、ステップＳ８３で、（ｔ１−ｔ３）期間の指定があるか否かを判断する。ステップＳ８３で“ＮＯ”の場合、つまり、最近の歩数ログのすべてを要求された場合には、マイコン１１０は、ステップＳ８５で、歩数ログのすべてを歩数ログバッファ３１４から読み出す。前回取得時刻ｔ３から現在時刻ｔ１までの経過時間が、歩数ログバッファ３１４に記録可能な最大数に対応する期間を超えているので、歩数ログバッファ３１４には、最近の歩数ログ、すなわち現在記録中の歩数ログのみが記憶されており、１回前の電池切れ以前の歩数ログは記憶されていない。したがって、歩数ログのすべてが読み出される。ステップＳ８５を終了すると、処理はステップＳ９３に進む。
【０１４６】
一方、ステップＳ８３で“ＹＥＳ”の場合、つまり、現在時刻ｔ１から前回取得時刻ｔ３までの期間の指定データが要求データに含まれている場合には、マイコン１１０は、ステップＳ８７で、（ｔ１−ｔ３）期間に日付ブロックがあるか否かを判断する。前回取得時刻ｔ３から現在時刻ｔ１までの間に歩数計１００で電池交換等により初期化があったときには、書込み位置４０８から逆方向に前回取得時刻ｔ３に対応する歩数値の記憶領域までの間に過去の日付ブロック「◇」４１０が存在することになり、したがって、書込み位置４０８から当該過去の日付ブロック「◇」４１０までの歩数ログが最近の歩数ログとなる。ステップＳ８７で“ＹＥＳ”の場合には、マイコン１１０は、ステップＳ８９で、現在時刻ｔ１から過去の日付ブロック「◇」４１０までの歩数ログを読み出す。一方、ステップＳ８７で“ＮＯ”の場合には、マイコン１１０は、ステップＳ９１で、（ｔ１−ｔ３）期間分の歩数ログ、すなわち、書込み位置４０８から前回取得時刻ｔ３に対応する歩数値の記憶領域までの歩数ログを読み出す。
【０１４７】
続いて、ステップＳ９３で、マイコン１１０は、読み出した最近の歩数ログをゲーム装置１０に送信する。なお、ステップＳ８１で“ＮＯ”の場合には、そのままこの歩数ログ送信処理を終了する。
【０１４８】
図１７−図１９は、ゲーム装置１０の歩数データ取得処理の動作の一例を示す。この歩数データ取得処理は、所定のタイミングでまたは操作スイッチ２２の所定の操作に応じて実行される。
【０１４９】
歩数データ取得処理を開始すると、ステップＳ１０１で、ＣＰＵコア３４は通信待ち処理を実行する。メモリカード２８のマイコン６６によってＩｒ通信用回路７０が通信待ち状態になる。なお、この際、第１のＬＣＤ１２または第２のＬＣＤ１４に、歩数計１００をゲーム装置１０に向けて押しボタン１０４を押すことによって通信を開始するようにユーザに促すテキストを含む画面を表示するようにしてよい。
【０１５０】
ＣＰＵコア３４は、ステップＳ１０３で歩数計１００からデータを受信したか否かを判断する。このステップＳ１０３の処理は、歩数計１００からデータを受信するまで一定時間ごとに実行される。当該データは、歩数計１００で押しボタン１０４が押されることによって送信され、歩数計１００の識別情報（ＩＤ）を含んでいる。ゲーム装置１０で管理する歩数計１００のＩＤを登録する処理を初期設定により予め行って、バックアップ用メモリ６８に当該ＩＤを記憶しておくことにより、歩数計１００からのデータを判別することができる。ステップＳ１０３で“ＹＥＳ”の場合、ＣＰＵコア３４は、ステップＳ１０５で当該歩数計１００との通信を開始する。
【０１５１】
続いて、ステップＳ１０７で、ＣＰＵコア３４は、電池が交換された回数をカウントするための変数（電池交換数カウンタ）ｎに初期値０を設定する。また、ステップＳ１０９で、ＣＰＵコア３４は、電池切れ以前の有効な歩数ログ存在数をカウントするための変数ｍに初期値０を設定する。
【０１５２】
続くステップＳ１１１で、ＣＰＵコア３４は、電池交換検出処理を実行する。この電池交換検出処理は、歩数計１００で電池交換があったか否か、つまり、歩数計１００で初期化処理が実行されたか否かを検出するための処理である。電池交換検出処理の動作の一例が図２０に示される。
【０１５３】
電池交換検出処理を開始すると、図２０の最初のステップＳ１６１で、ＣＰＵコア３４は、歩数計１００の時刻ｔ２と時刻設定済みフラグを歩数計１００から取得する。具体的には、ＣＰＵコア３４は、時刻ｔ２と時刻設定済みフラグの要求を歩数計１００に送信する。歩数計１００のマイコン１１０は、この要求を受信すると、歩数ログバッファ３１４の現在有効な日付ブロック「◆」４００に記憶された時刻設定済みフラグと記憶領域３１２の現在時刻ｔ２とを読み出して、時刻設定済みフラグと時刻ｔ２をゲーム装置１０に送信する。ＣＰＵコア３４は、時刻設定済みフラグと時刻ｔ２を歩数計１００から受信してＲＡＭ４２に記憶する。
【０１５４】
ステップＳ１６３で、ＣＰＵコア３４は、時刻ｔ２に関連する時刻設定済みフラグがオンであるか否か、つまり、歩数計１００の現在時刻ｔ２が、ゲーム装置１０の時刻に基づいて設定されて計時されたものであるか否かが判断される。歩数計１００で初期化処理が実行された場合、上述のように、歩数計１００の現在時刻ｔ２は初期値にリセットされてから計時され、かつ、時刻設定済みフラグはオフになっている。したがって、このステップＳ１６３では、歩数計１００が初期状態にないのか否かを判断している。
【０１５５】
ステップＳ１６３で“ＮＯ”の場合、つまり、歩数計１００が初期状態にある場合には、ＣＰＵコア３４は、ステップＳ１６５で、現在時刻ｔ１を含む時刻設定コマンドを歩数計１００に送信する。この時刻設定コマンドに応じて、歩数計１００では、上述のように時刻設定処理（図１４）が実行され、歩数計１００の時刻ｔ２がゲーム装置１０の時刻ｔ１に設定されるとともに、当該時刻に関連する時刻設定済みフラグがオンにされる。ステップＳ１６５を終了すると、処理はステップＳ１７１に進む。
【０１５６】
一方、ステップＳ１６３で“ＹＥＳ”の場合、つまり、歩数計１００が初期状態ではない場合には、処理はステップＳ１６７に進む。歩数計１００で初期化処理が実行されたときには、時刻設定済みフラグがオフにされているので、ステップＳ１６３で時刻設定済みフラグの判定を行うことによって、本来、歩数計１００の電池交換または誤動作等による初期化を検出することができる。しかし、歩数計１００が複数のソフトウェアで使用される場合、たとえばソフトウェアＡを実行しているときのゲーム装置１０によって時刻設定済みフラグを設定されてしまうと、ソフトウェアＢを実行しているときのゲーム装置１０では、初期化を検出できないということが起こる。そこで、さらに、ステップＳ１６７およびＳ１６９の処理によって、歩数計１００における初期化の検出を試みる。
【０１５７】
具体的には、ステップＳ１６７で、ＣＰＵコア３４は、歩数ログの数を歩数計１００から取得する。具体的には、ＣＰＵコア３４は、歩数ログの数の要求を歩数計１００に送信する。前回取得時刻ｔ３から現在までの歩数ログの数（歩数値の数）を取得したいので、要求データは前回取得時刻ｔ３を含む。歩数計１００のマイコン１１０は、この要求を受信すると、上述の歩数ログ送信処理（図１５のステップＳ６１−Ｓ６３）で、歩数ログの数を検出してゲーム装置１０に送信する。ＣＰＵコア３４は、歩数ログの数を受信してＲＡＭ４２に記憶する。
【０１５８】
続くステップＳ１６９で、ＣＰＵコア３４は、歩数ログの数が、現在時刻ｔ１から前回取得時刻ｔ３までの期間分の歩数ログの数よりも小さいか否かを判断する。前回取得時刻ｔ３から現在までの間に歩数計１００で電池切れが生じ電池交換が行われた場合、歩数値の記録が途切れることにより、歩数ログの数が、前回取得時刻ｔ３から現在時刻ｔ１までの期間に記録されるべき歩数ログの数（歩数値の数）よりも小さくなる。なお、前回取得時刻ｔ３から現在時刻ｔ１までの経過時間が歩数ログバッファ３１４に記録可能な最大の期間を超える場合には、前回取得時刻ｔ３から現在時刻ｔ１までの期間にされるべき歩数ログの数は、当該最大の期間に記録されるべき歩数ログの数である。
【０１５９】
ステップＳ１６９で“ＹＥＳ”の場合、つまり、前回取得時刻ｔ３から現在までの間に歩数計１００で電池交換が行われた可能性がある場合には、処理はステップＳ１７１に進む。
【０１６０】
このように、前回取得時刻ｔ３から現在時刻ｔ１までの期間に記憶された歩数値の数に基づいて電池交換（初期化処理）の実行を判定するようにしているので、複数のソフトウェアで歩数計１００を共用する場合にも、各ソフトウェアの処理において、歩数計１００で初期化処理が実行されたことを検出することができる。この実施例のように、初期化処理の実行に応じてオフされかつ歩数データ送信処理に応じてオンされるようなフラグ（時刻設定済みフラグ）を歩数計１００に記憶しておくような場合には、各ソフトウェアの処理において上記フラグが切り替えられるので、先に他のソフトウェアの処理でゲーム装置１０に歩数データが取得されると、後から実行されたソフトウェアでは、初期化処理が実行されたことが検出できなくなる。しかし、前回取得時刻ｔ３から現在までの歩数値の数を検出する場合には、他のソフトウェアが先に実行されても、歩数値の数が変更されないので、後から実行されるソフトウェアでも初期化処理の実行を検出することができる。
【０１６１】
なお、上述のように、１つの歩数計１００を複数のソフトウェアで共用する場合、時刻設定済みフラグは初期化があったか否かを示すフラグとして機能しないときがある。しかし、１つのソフトウェアのみで歩数計１００を使用する場合には、時刻設定済みフラグは、初期化があったかどうかを示すフラグとなるので、その場合、ステップＳ１６７およびＳ１６９の処理は省略されてよい。
【０１６２】
ステップＳ１７１では、ＣＰＵコア３４は、電池交換フラグをオンにする。電池交換フラグは、歩数計１００で電池交換（初期化処理）が行われたか否かを示すフラグであり、この電池交換フラグは、歩数計１００に過去の歩数ログが記録されているか否かも示す。一方、ステップＳ１６９で“ＮＯ”の場合には、ＣＰＵコア３４は、ステップＳ１７３で電池交換フラグをオフにする。ステップＳ１７１またはＳ１７３を終了すると、この電池交換検出処理を終了し、処理は図７のステップＳ１１３に戻る。
【０１６３】
ステップＳ１１３では、ＣＰＵコア３４は、電池交換が検出されたか否か、つまり、電池交換フラグがオンであるか否かを判断する。ステップＳ１１３で“ＹＥＳ”の場合、処理は図１８のステップＳ１１５に進み、過去の歩数ログ（電池切れ以前の歩数ログ）の取得を行う。一方、ステップＳ１１３で“ＮＯ”の場合、処理はそのまま図１９のステップＳ１２９に進む。
【０１６４】
図１８のステップＳ１１５では、ＣＰＵコア３４は、（ｎ＋１）回前の電池切れ以前の歩数ログを歩数計１００に要求する。最初の要求時には、変数ｎには初期値０が設定されているので、１回前の電池切れ以前の歩数ログが要求される。この要求に応じて、歩数計１００では、上述の歩数ログ送信処理（図１５のステップＳ６５−Ｓ７９）が実行されて、歩数ログ存在フラグ、（ｎ＋１）回前の電池切れ以前の歩数ログ、電池が切れたときの歩数計１００の時刻および当該時刻に関連する時刻設定済みフラグを含むデータがゲーム装置１０に送信される。
【０１６５】
これに応じて、ステップＳ１１７で、ＣＰＵコア３４は、歩数ログ存在フラグ、（ｎ＋１）回前の電池切れ以前の歩数ログ、電池が切れたときの歩数計１００の時刻および当該時刻に関連する時刻設定済みフラグを含むデータを歩数計１００から受信し、ＲＡＭ４２に記憶する。
【０１６６】
そして、ステップＳ１１９で、ＣＰＵコア３４は当該歩数ログが存在するか否か、つまり、歩数ログ存在フラグがオンであるか否かを判断する。
【０１６７】
ステップＳ１１９で“ＹＥＳ”の場合、ＣＰＵコア３４は、ステップＳ１２１で、当該歩数ログが有効なデータであるか否かを判断する。具体的には、時刻設定済みフラグがオンであるか否かを判断する。ここで、有効なデータとは、歩数ログの各歩数値の検出時刻として適切な時刻を設定可能なデータを意味する。もし受信した時刻設定済みフラグがオフであれば、受信した電池が切れたときの歩数計１００の時刻は、初期値に基づいて計時された時刻であり、ゲーム装置１０の時刻に基づいて設定されたものではなく、つまり、正確ではない。したがって、歩数値に関連付けられた時刻が不明であり、当該歩数ログの各歩数値には適切な時刻を設定することができないので、当該歩数ログは無効なデータとして扱う。たとえば、電池交換がうまくいかずに電池が何度か出し入れされた場合や残量のほとんどない電池に交換された場合などに記憶された、時刻情報の不正確な歩数データを取り除くことができる。
【０１６８】
ステップＳ１２１で“ＹＥＳ”の場合には、ＣＰＵコア３４は、ステップＳ１２３で、電池が切れたときの時刻とアドレス順に基づいて、電池切れ以前の歩数ログの各歩数値に時刻を設定し、各歩数値と時刻をメモリ（ＲＡＭ４２）に保持する。なお、上述のように、電池が切れたときの時刻は過去の日付ブロック「◇」４１０に記憶された時刻であり、当該過去の日付ブロック「◇」４１０の指す記憶領域「◎」４０２の歩数値の検出時刻である。また、歩数ログの各歩数値は、単位時間ごとにアドレス順に記憶されている。したがって、歩数ログにおけるアドレス順と電池が切れたときの時刻に基づいて、各歩数値の検出時刻を算出し、各歩数値と時刻とを対応付けることができる。
【０１６９】
このようにして、有効な歩数ログの各歩数値に時刻を設定することができたので、ＣＰＵコア３４は、ステップＳ１２５で、有効な歩数ログの数をカウントする変数ｍを１だけインクリメントする。一方、ステップＳ１２１で“ＮＯ”の場合、つまり、時刻設定済みフラグがオフであった場合には、適切な時刻設定が行えないので、処理はそのままステップＳ１２７に進む。
【０１７０】
ステップＳ１２７では、ＣＰＵコア３４は、電池交換回数をカウントする変数ｎを１だけインクリメントする。つまり、（ｎ＋１）回前の歩数ログが存在したので、電池交換回数をカウントする。ステップＳ１２７を終了すると、処理はステップＳ１１５に戻る。したがって、もう１回前の電池切れ以前の歩数ログの取得が試みられる。
【０１７１】
この実施例では、電池交換検出処理を行って電池交換（初期化処理）が実行されたことが検出されたときだけ、初期化処理前に記憶されたデータを歩数計１００から取得するようにしている。したがって、歩数計１００においては初期化処理前に記憶されたデータを探して送信する処理を必要なときだけ実行すればよいので、処理負担を減らすことができる。また、歩数計１００の歩数ログバッファ３１４に記憶されているデータのすべてをいつもゲーム装置１０に送信してゲーム装置１０で初期化処理前のデータを探すような処理を実行するのではなく、必要なデータだけを歩数計１００から送信する処理を実行するので、通信量を減らすことができる。
【０１７２】
一方、ステップＳ１１９で“ＮＯ”の場合には、（ｎ＋１）回前の歩数ログがもはや歩数計１００に記憶されていないので、この過去の歩数ログの取得を終了し、処理は図１９のステップＳ１２９に進む。
【０１７３】
図１９のステップＳ１２９では、ＣＰＵコア３４は、前回取得時刻ｔ３から現在時刻ｔ１までの経過時間が歩数ログ保存期間よりも長いか否かを判断する。歩数ログ保存期間は、歩数ログバッファ３１４に保存可能な最大数の歩数値の記録にかかる時間に相当する。このステップＳ１２９では、前回取得時刻ｔ３から歩数ログ保存期間を超える時間が経過したかどうかが判断されている。
【０１７４】
ステップＳ１２９で“ＹＥＳ”の場合、つまり、前回取得時刻ｔ３からの経過時間が歩数ログ保存期間を超えた場合には、歩数計１００の歩数ログバッファ３１４には最近の歩数ログのみが記録されているものと判断できる。したがって、ステップＳ１３１で、ＣＰＵコア３４は、最近の歩数ログのすべてを歩数計１００に要求する。上述の図１６に示すように、歩数計１００は、この要求に応じて歩数ログのすべてを読み出して、ゲーム装置１０に送信する。
【０１７５】
一方、ステップＳ１２９で“ＮＯ”の場合、つまり、前回取得時刻ｔ３からの経過時間が歩数ログ保存期間内である場合には、ＣＰＵコア３４は、ステップＳ１３３で、（ｔ１−ｔ３）期間分の最近の歩数ログを歩数計１００に要求する。この要求データは、少なくとも前回取得時刻ｔ３を含み、つまり、要求データは、現在時刻ｔ１から前回取得時刻ｔ３までの期間の指定を含む。上述の図１６に示すように、歩数計１００は、この要求に応じて、当該期間における最近の歩数ログを読み出して、ゲーム装置１０に送信する。
【０１７６】
続くステップＳ１３５で、ＣＰＵコア３４は、最近の歩数ログを歩数計１００から受信してＲＡＭ４２に記憶する。ステップＳ１３７で、ＣＰＵコア３４は、現在時刻ｔ１とアドレス順に基づいて、最近の歩数ログの各歩数値に時刻を設定し、各歩数値と時刻をメモリ（ＲＡＭ４２）に保持する。なお、上述の図１１に示すように、書込み位置４０８が記録の最先端メモリであり、書込み位置４０８が現在時刻ｔ１に対応する。最近の歩数ログにおける各歩数値のアドレスが書込み位置４０８から一定長減るごとに、時刻を現在時刻ｔ１から単位時間減算することによって、各歩数値の検出時刻を算出し、各歩数値と時刻とを対応付ける。ステップＳ１３９では、ＣＰＵコア３４は、歩数計１００との通信を終了する。
【０１７７】
続いて、ステップＳ１４１で、ＣＰＵコア３４は、メモリ（ＲＡＭ４２）上の最近の歩数ログを歩数計１００のＩＤに対応付けてバックアップ用メモリ６８に保存する。
【０１７８】
ステップＳ１４３で、ＣＰＵコア３４は、電池切れ以前の有効な歩数ログ存在数をカウントする変数ｍが０より大きいか否かを判断する。ステップＳ１４３で“ＹＥＳ”の場合、ＣＰＵコア３４は、ステップＳ１４５で、メモリ（ＲＡＭ４２）上の電池切れ以前の歩数ログを歩数計１００のＩＤに対応付けてバックアップ用メモリ６８に保存する。
【０１７９】
ステップＳ１４７で、ＣＰＵコア３４は、変数ｍを１だけディクリメントする。そして、処理はステップＳ１４３に戻る。したがって、有効な歩数ログのすべてがバックアップ用メモリ６８に保存される。ステップＳ１４１およびステップＳ１４５では、歩数データを歩数計１００のＩＤに対応付けて保存するようにしたので、システム１０００が複数の歩数計１００を含む場合、歩数管理装置１０が複数の歩数計１００の歩数データを管理することができる。また、電池交換前の歩数データについては、各歩数値の時刻を各歩数計１００に記憶された時刻に基づいて設定するので、各歩数値の時刻の精度を保つことができ、また、電池交換後の歩数データについては、各歩数値の時刻を歩数管理装置１０の時刻に基づいて設定するので、複数の歩数計１００の時計がそれぞれ異なる時刻を刻んでいたとしても、時刻の整合性を取ることができる。したがって、歩数の記録時刻の精度を向上させることができる。
【０１８０】
一方、ステップＳ１４３で“ＮＯ”の場合、つまり、有効な歩数ログの保存が終わった場合には、ＣＰＵコア３４は、ステップＳ１４９で、現在時刻ｔ１を前回取得時刻ｔ３とし、当該前回取得時刻ｔ３を歩数計１００のＩＤに対応付けてバックアップ用メモリ６８に保存する。前回取得時刻ｔ３についても歩数計１００のＩＤに対応付けて保存するようにしたので、歩数管理装置１０は複数の歩数計１００を管理することができる。ステップＳ１４９を終了すると、この歩数データ取得処理を終了する。
【０１８１】
この実施例によれば、初期化処理において、初期化前に記憶されていた歩数値に関連付けられた現在有効な日付ブロック（第１時刻データ）の時刻を、過去の日付ブロック（第１時刻データと区別可能な第２時刻データ）として記憶するようにしたので、初期化処理の前後に記憶された歩数値および時刻を区別することができる。したがって、初期化処理の後に記憶された各歩数値の記録時刻を、歩数管理装置１０の時刻に基づいて設定することができ、初期化処理の前に記憶された各歩数値の記録時刻を、歩数計１００の時刻に基づいて設定することができる。したがって、歩数の記録時刻の精度を向上させることができる。また、歩数計１００における電池交換等によって生じる初期化処理の有無に応じて適切な記録時刻を設定することができる。さらに、歩数計１００の時刻の精度をあまり気にしなくても良いので、安価な歩数計１００を使用でき、歩数計測システム１０００のコストを低減することができる。
【０１８２】
また、この実施例では、歩数管理装置１０で各歩数値の記録時刻の設定を行うようにしたので、歩数計１００の処理負荷を減らすことができる。
【０１８３】
なお、上述の実施例では、ゲーム装置１０において、各歩数値の時刻を算出し、各歩数値と時刻とを対応付けるようにしていた。しかし、他の実施例では、初期化処理以前に記憶された各歩数値、つまり、電池切れ以前の歩数ログの各歩数値に対しては、過去の日付ブロック「◇」４１０に記憶された時刻に基づいて歩数計１００で記録時刻を設定し、各歩数値と時刻とを対応付けたデータをゲーム装置１０に送信するようにしてもよい。また、初期化処理後に記録された各歩数値、つまり、最近の歩数ログの各歩数値に対しては、ゲーム装置１０から現在時刻ｔ１を送信し、当該時刻ｔ１に基づいて歩数計１００で各歩数値の時刻を設定し、各歩数値と時刻とを対応付けたデータをゲーム装置１０に送信するようにしてもよい。
【０１８４】
また、この実施例では、１つの歩数値に対応する時刻を記憶しておき、当該時刻を基に各歩数値の時刻をアドレス順に基づいて算出するようにしていた。しかし、他の実施例では、メモリの容量を気にしなくてよいのであれば、各歩数値に対応してそれぞれ検出（記録）時刻を記憶するようにしてもよい。このようにすれば、各歩数値の時刻をアドレス順に基づいて算出する処理が不要になるので、処理負担を軽減することができる。
【図面の簡単な説明】
【０１８５】
【図１】図１はこの発明の歩数計測システムの一実施例を示す図解図である。
【図２】図２はゲーム装置の電気的構成の一例を示すブロック図である。
【図３】図３は歩数計の外観の一例を示す斜視図である。
【図４】図４は歩数計の電気的構成の一例を示すブロック図である。
【図５】図５はゲーム装置のメモリマップの一例を示す図解図である。
【図６】図６は歩数計のメモリマップの一例を示す図解図である。
【図７】図７は歩数ログバッファに記憶される現在有効な日付ブロックを説明するための図解図である。
【図８】図８は現在有効な日付ブロックの移動を説明するための図解図である。
【図９】図９は初期化処理を説明するための図解図である。
【図１０】図１０は電池切れ以前の歩数ログの取得を説明するための図解図である。
【図１１】図１０は最近の歩数ログの取得を説明するための図解図である。
【図１２】図１２は歩数計の分ログ記録処理の動作の一例を示すフロー図である。
【図１３】図１３は歩数計の初期化処理の動作の一例を示すフロー図である。
【図１４】図１４は歩数計の時刻設定処理の動作の一例を示すフロー図である。
【図１５】図１５は歩数計の歩数ログ送信処理の動作の一例の一部を示すフロー図である。
【図１６】図１６は図１５の続きを示すフロー図である。
【図１７】図１７はゲーム装置の歩数データ取得処理の動作の一例の一部を示すフロー図である。
【図１８】図１８は図１７の続きを示すフロー図である。
【図１９】図１９は図１７および図１８の続きを示すフロー図である。
【図２０】図２０は図１７の電池交換検出処理の動作の一例を示すフロー図である。
【符号の説明】
【０１８６】
１０  …ゲーム装置（歩数管理装置）
１２，１４  …ＬＣＤ
２２  …操作スイッチ
２４  …タッチパネル
２８  …メモリカード
３４  …ＣＰＵコア
４２  …ＲＡＭ
４４，４６  …ＧＰＵ
５０  …ＬＣＤコントローラ
５２，５４  …ＶＲＡＭ
５８  …無線通信部
６４  …ＲＯＭ
６６  …マイコン
６８  …バックアップ用メモリ
７０  …Ｉｒ通信用回路
１００  …歩数計
１１０  …マイコン
１１４  …ショックセンサ
１１６  …ＥＥＰＲＯＭ
１１８  …Ｉｒ通信用回路
１０００  …ゲームシステム（歩数計測システム）
【図１】
2010009328.tif 000003
【図２】
2010009328.tif 000004
【図３】
2010009328.tif 000005
【図４】
2010009328.tif 000006
【図５】
2010009328.tif 000007
【図６】
2010009328.tif 000008
【図７】
2010009328.tif 000009
【図８】
2010009328.tif 000010
【図９】
2010009328.tif 000011
【図１０】
2010009328.tif 000012
【図１１】
2010009328.tif 000013
【図１２】
2010009328.tif 000014
【図１３】
2010009328.tif 000015
【図１４】
2010009328.tif 000016
【図１５】
2010009328.tif 000017
【図１６】
2010009328.tif 000018
【図１７】
2010009328.tif 000019
【図１８】
2010009328.tif 000020
【図１９】
2010009328.tif 000021
【図２０】
2010009328.tif 000022