(58)【調査した分野】(Int.Cl.,DB名)
前記時間間隔設定部は、当該時間間隔設定部が直近の時間間隔を設定してから、前記記憶処理部が当該直近で設定された時間間隔毎のデータを前記記憶部に記憶させたデータ数が前記所定のデータ数に達すると、前記時間間隔をより大きく設定することを特徴とする請求項1から5のうちいずれか一項に記載のウォッチ。
前記時間間隔設定部は、前記時間間隔が初期設定の時間間隔となっているときは、前記記憶処理部が当該初期設定の時間間隔毎のデータを前記記憶部に記憶させたデータ数が、前記所定のデータ数に所定値を乗算した値に達すると、前記時間間隔を前記所定値で乗算した時間間隔に再設定し、前記時間間隔が前記再設定された時間間隔となっているときは、前記記憶処理部が直近で設定された時間間隔毎のデータを前記記憶部に記憶させたデータ数が、前記所定のデータ数に達すると、前記時間間隔を、当該直近で設定された時間間隔をさらに前記所定値で乗算した時間間隔に再設定する、ことを特徴とする請求項1から6のうちいずれか一項に記載のウォッチ。
前記データ抽出部は、前記所定のデータ数に基づいて、データ間の時間間隔が等間隔となる場合の各データに対応する時刻を算出し、算出した時刻に最も近いサンプリング時刻のデータを、代表データとして前記記憶部から読み出す、ことを特徴とする請求項1から7のいずれか一項に記載のウォッチ。
前記データ抽出部は、前記所定のデータ数に基づいて、データ間の時間間隔が等間隔となる場合の各データに対応する時刻を算出し、前記代表データの中から、算出した時刻の前後で当該算出した時刻に最も近いサンプリング時刻のデータを1つずつ読み出し、読み出した2つのデータの平均値を新たな前記代表データの値とする、ことを特徴とする請求項1から7のいずれか一項に記載のウォッチ。
【発明を実施するための形態】
【0015】
<第1の実施形態>
以下、図面を参照して、本発明の第1の実施形態について説明する。
図1は、本発明の第1の実施形態におけるランニングウォッチシステムの装置構成を示す概略構成図である。同図において、ランニングウォッチシステム1は、チェストストラップ100と、ランニングウォッチ200とを具備する。
ランニングウォッチシステム1は、ランニングなどスポーツを行うユーザに対して心拍数(1分あたりの心拍数)やラップタイム等の情報を提供する。
【0016】
チェストストラップ100は、ユーザの胸部に装着され、ユーザの心拍を検出して心拍信号をランニングウォッチ200に無線送信する。
ランニングウォッチ200は、チェストストラップ100からの心拍信号を計数して定期的に心拍数(1分間あたりの心拍数)を算出し、記憶しておく。そして、ランニングウォッチ200は、ユーザ操作に応じて心拍数の履歴を表示する。ランニングウォッチ200は、本発明における電子機器の一例に該当する。
【0017】
但し、本発明の適用範囲は、ランニングウォッチシステムに限らない。例えば、測位を行って位置情報を定期的に記憶しておき、位置情報の履歴を軌跡として表示するカーナビゲーションシステムなど、定期的に情報を記憶する様々な電子機器に本発明を適用可能である。
【0018】
図2は、ランニングウォッチシステムの機能構成を示す概略ブロック図である。同図において、ランニングウォッチシステム1は、チェストストラップ100と、ランニングウォッチ200とを具備する。チェストストラップ100は、センサ部110と、送信部120とを具備する。ランニングウォッチ200は、受信部211と、時間間隔設定部220と、記憶処理部230と、記憶部240と、データ抽出部250と、表示制御部260と、表示部270とを具備する。
【0019】
センサ部110は、心拍センサを有し、ユーザの心拍を検出する毎に心拍信号を送信部120へ出力する。
送信部120は、センサ部110が出力した心拍信号を無線にて送信する。
【0020】
データ取得部210は、定期的にデータを取得する。特に、データ取得部210は、時間間隔設定部220が設定した時間間隔をサンプリング周期としてデータを取得する。
具体的には、データ取得部210において受信部211が、チェストストラップ100(センサ部110)の送信した心拍信号を検出する。そして、データ取得部210は、受信部211が検出した心拍信号を計数し、時間間隔設定部220が設定した時間間隔毎に心拍数(1分あたりの心拍数)を算出する。
【0021】
記憶部240は、記憶処理部230の制御に従って、データ取得部210が取得したデータのうち少なくとも一部を記憶する。
時間間隔設定部220は、記憶部240が記憶したデータ数に応じた時間間隔を設定する。この時間間隔は、記憶処理部230が記憶部240に記憶させるデータの時間間隔である。
【0022】
特に、時間間隔設定部220は、時間間隔設定部220自らが最新の時間間隔を設定してから、記憶処理部230が当該最新の時間間隔毎のデータを記憶部240に記憶させたデータ数が所定数に達すると、時間間隔をより大きく設定する。最新の時間間隔とは、特許請求の範囲における、直近で設定された時間間隔の一例である。このように、時間間隔設定部220は、記憶部240の記憶するデータ数の増加に応じて、記憶部240に記憶させるデータの時間間隔をより大きく設定することで、データ数の増加を緩やかにする。
【0023】
さらに、時間間隔設定部220は、時間間隔が初期設定の時間間隔となっているときは、記憶処理部230が当該初期設定の時間間隔毎のデータを記憶部240に記憶させたデータ数が表示データ数(例えば32個)の2倍に達すると、時間間隔を2倍した時間間隔に再設定する。ここでいう表示データ数は、表示部270が心拍数の履歴の表示画面にて表示するデータ数として予め設定されている定数である。
このように、時間間隔設定部220が、初期設定の時間間隔を維持して記憶部240に表示データ数以上のデータを記憶させることで、表示部270は、表示データ数のデータを表示することができる。また、時間間隔設定部220が、時間間隔を2倍した時間間隔に再設定した際、記憶部240は、再設定された時間間隔のデータを既に表示データ数だけ記憶している。従って、表示部270は、時間間隔の再設定後も表示データ数のデータを表示することができる。
【0024】
また、時間間隔設定部220は、時間間隔が再設定された時間間隔となっているときは、記憶処理部230が最新の時間間隔毎のデータを記憶部240に記憶させたデータ数が表示データ数に達すると、時間間隔を、最新の時間間隔をさらに2倍した時間間隔に再設定する。これにより、時間間隔設定部220が、時間間隔を2倍した時間間隔に再設定した際、記憶部240は、再設定された時間間隔のデータを既に表示データ数だけ記憶している。従って、表示部270は、時間間隔の再設定後も表示データ数のデータを表示することができる。
【0025】
記憶処理部230は、データ取得部210が取得したデータのうち、時間間隔設定部220が設定した時間間隔毎のデータを記憶部240に記憶させる。
データ抽出部250は、記憶部240が記憶したデータのうち、所定の表示データ数に応じたデータ数のデータを抽出する。例えば、データ抽出部250は記憶部240が記憶したデータから表示データ数のデータを抜き出して表示部270に表示させる。
【0026】
表示制御部260は、表示部270を制御してデータを表示させる。
表示部270は、表示制御部260の制御に従って、データ抽出部250が抽出したデータに基づいて表示データ数のデータを表示する。例えば、表示部270は、データ抽出部250が抜き出したデータを折れ線グラフなどのグラフにて表示する。
【0027】
次に、
図3を参照して、記憶部240が記憶するデータについて説明する。
図3は、記憶部240が記憶するデータの例を示す説明図である。同図(A)は、データ取得部210がデータを取得するタイミングの例を示している。また、同図(B)は、記憶部240が記憶するデータの例を示している。また、同図(C)は、表示部270が表示するデータの例を示している。
図3において、サンプリング周期Aのデータを黒丸、白丸および白三角にて示し、サンプリング周期A×2のデータを黒丸および白丸にて示し、サンプリング周期A×4のデータを黒丸にて示している。
【0028】
図3において、時間間隔設定部220は、時間間隔をAに初期設定している。そこで、データ取得部210は、時刻T11から時刻T12までの間、時間間隔Aをサンプリング周期としてデータを取得し、記憶部240が当該データを記憶している。
また、時間間隔設定部220は、時刻T12において、時間間隔を2倍してA×2に再設定している。そこで、データ取得部210は、時刻T12から時刻T13までの間、時間間隔A×2をサンプリング周期としてデータを取得している。そして、記憶部240は、当該データを、時刻T11から時刻T12までの間にデータ取得部210が取得したデータに続けて記憶している。
【0029】
また、時間間隔設定部220は、時刻T13において、時間間隔をさらに2倍してA×4に再設定している。そこで、データ取得部210は、時刻T13以降、時間間隔A×4をサンプリング周期としてデータを取得している。そして、記憶部240は、当該データを、時刻T12から時刻T13までの間にデータ取得部210が取得したデータに続けて記憶している。
これにより、
図3(B)に示すように、記憶部240の記憶するデータには、サンプリング周期Aのデータと、サンプリング周期A×2のデータと、サンプリング周期A×4のデータとが含まれている。
【0030】
そして、データ抽出部250は、記憶部240の記憶するデータのうち、最新の時間間隔A×4をサンプリング周期とするデータを表示データ数だけ読み出し、表示部270が当該データを表示する。
このように、データ抽出部250が記憶部240の記憶するデータのうち所定のサンプリング周期のデータを読み出すので、記憶部240は、複数のサンプリング周期のデータを記憶していてもよい。従って、時間間隔設定部220が時間間隔の再設定を行った際に、記憶部240が記憶しているデータに対して、データの間引きや圧縮等の処理を行う必要がない。この点においてランニングウォッチ200の負荷を抑制することができる。
【0031】
このデータ抽出部250が行うデータの抽出について、
図4〜
図7を参照してさらに詳細に説明する。
図4は、記憶部240が記憶しているデータの数が表示データ数より少ない場合に、データ抽出部250が抽出するデータの例を示す説明図である。
この場合、データ抽出部250は、記憶部240が記憶しているデータを全て読み出し、表示制御部260が当該データを表示部270に表示させる。
【0032】
その際、表示制御部260が当該データをそのまま(そのままのスケールで)表示部270に表示させるようにしてもよい。あるいは、表示制御部260が当該データをコピーするなどスケール変換処理し、表示データ数のデータにして表示部270に表示させるようにしてもよい。
【0033】
図5は、時間間隔設定部220が時間間隔を再設定する前の状態において、記憶部240が記憶しているデータの数が表示データ数以上である場合に、データ抽出部250が抽出するデータの例を示す説明図である。
この場合、データ抽出部250は、記憶部240が記憶しているデータのうち、表示データ数のデータを読み出し、表示制御部260が当該データを表示部270に表示させる。
【0034】
その際、データ抽出部250は、記憶部240が記憶している最も新しいデータのサンプリング時刻から最も古いデータのサンプリング時刻を減算した時間を、表示データ数−1で除算して、表示データ間の時間間隔が等間隔となる場合の時間間隔を算出する。そして、データ抽出部250は、算出した表示データ間の時間間隔に基づいて、各表示データに相当する時刻(表示データ間の時間間隔が等間隔となる場合の各表示データの時刻)を算出する。そして、データ抽出部250は、表示データ毎に、当該表示データに相当する時刻に最も近いサンプリング時刻のデータを、表示データとして記憶部240から読み出す。このようにして、データ抽出部250は、記憶部240が記憶しているデータのうち表示データ数のデータを、サンプリング周期がなるべく均等になるように抽出する。
【0035】
あるいは、データ抽出部250が、表示データ毎に、当該表示データに相当する時刻の前後で、表示データに相当する時刻に最も近いサンプリング時刻のデータを1つずつ読み出し、読み出した2つのデータの平均値を表示データの値とするようにしてもよい。
【0036】
図6は、時間間隔設定部220が時間間隔の再設定を1回行った状態において、データ抽出部250が抽出するデータの例を示す説明図である。同図において、時間間隔設定部220が再設定した時間間隔(従って、初期設定の時間間隔の2倍の時間間隔)をサンプリング周期とするデータを黒丸で示し、それ以外のデータを白丸で示している。
この場合、データ抽出部250は、まず、記憶部240が記憶しているデータのうち、時間間隔設定部220が再設定した時間間隔をサンプリング周期とするデータを抽出する。
【0037】
ここで、時間間隔設定部220は、記憶部240の記憶するデータの数が表示データ数の2倍になるまで初期設定の時間間隔を維持する。これにより、初期設定の2倍の時間間隔となった直後でも、当該時間間隔のデータ(黒丸で示されるデータ)を表示データ数だけ確保できるので、表示の欠け(データの表示されないデータ表示領域が生じること)を回避できる。
すなわち、データ抽出部250は、記憶部240から表示データ数以上のデータを読み出す。以下、データ抽出部250は、抽出したデータ(時間間隔設定部220が再設定した時間間隔をサンプリング周期とするデータ)のうち、
図5の場合と同様に表示データ数のデータを読み出し、表示制御部260が当該データを表示部270に表示させる。
【0038】
なお、データ抽出部250が、記憶部240の記憶しているデータのうち、時間間隔設定部220が再設定した時間間隔をサンプリング周期とするデータを抽出する方法として、様々な方法を用いることができる。
例えば、記憶部240は、まず、時間間隔設定部220が初期設定した時間間隔をサンプリング周期とするデータを表示データ数の2倍記憶し、続いて、時間間隔設定部220が再設定した時間間隔をサンプリング周期とするデータを記憶している。そこで、データ抽出部250は、初期設定の時間間隔の際のデータから1つおきにデータを抽出するなど、記憶部240におけるデータの並び順に基づいて、時間間隔設定部220が再設定した時間間隔をサンプリング周期とするデータを抽出することができる。
【0039】
あるいは、記憶部240が、データと、サンプリング時刻またはサンプリング周期とを対応付けて記憶しておくようにしてもよい。この場合、データ取得部210は、記憶部240の記憶しているサンプリング時刻またはサンプリング周期に基づいて、時間間隔設定部220が再設定した時間間隔をサンプリング周期とするデータを抽出することができる
【0040】
なお、データ抽出部250が、記憶部240の記憶している全データを対象として、
図5の場合と同様に、表示データ毎に、当該表示データに相当する時刻に最も近いサンプリング時刻のデータを記憶部240から読み出すようにしてもよい。
【0041】
図7は、時間間隔設定部220が時間間隔の再設定を2回行った状態において、データ抽出部250が抽出するデータの例を示す説明図である。同図において、時間間隔設定部220が再設定した最新の時間間隔(従って、初期設定の時間間隔の4倍の時間間隔)をサンプリング周期とするデータを黒丸で示し、それ以外のデータを白丸で示している。
【0042】
この場合も、
図6の場合と同様、データ抽出部250は、まず、記憶部240が記憶しているデータのうち、時間間隔設定部220が設定した最新の時間間隔をサンプリング周期とするデータを抽出する。そして、データ抽出部250は、抽出したデータのうち、表示データ数のデータを読み出し、表示制御部260が当該データを表示部270に表示させる。
【0043】
なお、データ抽出部250が、記憶部240の記憶している全データを対象として、
図5の場合と同様に、表示データ毎に、当該表示データに相当する時刻に最も近いサンプリング時刻のデータを記憶部240から読み出すようにしてもよい。
【0044】
次に、
図8〜
図10を参照して、ランニングウォッチ200の動作について説明する。
図8は、時間間隔設定部220が行う処理の手順を示すフローチャートである。時間間隔設定部220は、ランニングウォッチ200がユーザ操作に応じて心拍数を測定し記憶する際に、同図の処理を行う。
同図の処理において、時間間隔設定部220は、まず、時間間隔の初期設定を行う(ステップS101)。具体的には、時間間隔設定部220は、データ取得部210がデータを取得(算出)するサンプリング周期としての時間間隔を、予め定められている時間間隔初期値(例えば5秒)に設定する。
【0045】
次に、時間間隔設定部220は、データ取得部210が取得したデータ数が、表示データ数の2倍に達したか否かを判定する(ステップS102)。達していないと判定した場合(ステップS102:NO)、ステップS102へ戻る。すなわち、時間間隔設定部220は、データ数が表示データ数の2倍に達するのを待ち受ける。
【0046】
一方、データ取得部210が取得したデータ数が、表示データ数の2倍に達したと判定した場合(ステップS102:YES)、時間間隔設定部220は、時間間隔を2倍の間隔に再設定する(ステップS111)。
次に、時間間隔設定部220は、最新の時間間隔に設定してからデータ取得部210が取得したデータ数が、表示データ数に達したか否かを判定する(ステップS112)。達していないと判定した場合(ステップS112:NO)、ステップS112へ戻る。すなわち、時間間隔設定部220は、データ数が表示データ数に達するのを待ち受ける。
【0047】
一方、最新の時間間隔に設定してからデータ取得部210が取得したデータ数が、表示データ数に達したと判定した場合(ステップS112:YES)、ステップS111へ戻る。
このようにして、時間間隔設定部220は、心拍数の測定終了まで
図8の処理を行って、時間間隔の設定値を次第に大きくしていく。
【0048】
図9は、データ取得部210が行う処理の手順を示すフローチャートである。データ取得部210は、ランニングウォッチ200がユーザ操作に応じて心拍数を測定し記憶する際に、同図の処理を行う。
同図の処理において、データ取得部210は、まず、受信部211を起動して心拍信号を受信し、心拍数(心拍信号の受信回数)の計数を開始する(ステップS201)。
【0049】
次に、データ取得部210は、
図9の処理を開始してから、または、心拍数を前回算出してから、時間間隔設定部220の設定している時間間隔が経過したか否かを判定する(ステップS202)。
時間間隔が経過していないと判定した場合(ステップS202:NO)、ステップS202へ戻る。すなわち、データ取得部210は、時間間隔の経過を待ち受ける。
【0050】
一方、時間間隔が経過したと判定した場合(ステップS202:YES)、データ取得部210は、心拍数(1分間あたりの心拍数)を算出する(ステップS211)。
そして、データ取得部210は、算出した心拍数を、記憶処理部230を介して記憶部240に記憶させる(ステップS212)。
その後、ステップS202へ戻る。
このようにして、データ取得部210は、心拍数の測定終了まで
図9の処理を行って、時間間隔毎に心拍数を算出して記憶部240に記憶させる。
【0051】
図10は、データ抽出部250が行う処理の手順を示すフローチャートである。データ抽出部250は、心拍数の履歴表示を要求するユーザ操作が行われると、同図の処理を行う。
但し、データ抽出部250が同図の処理を行うタイミングは、ユーザ操作の行われたタイミングに限らない。例えば、ランニングウォッチ200が心拍数を測定しているときに、データ抽出部250が定期的に同図の処理を行い、表示部270が定期的に心拍数の履歴を表示するようにしてもよい。
【0052】
図10の処理において、データ抽出部250は、まず、記憶部240の記憶しているデータ数が表示データ数以上か否かを判定する(ステップS301)。
表示データ数以上であると判定した場合(ステップS301:YES)、データ抽出部250は、
図4〜
図7を参照して説明したように、時間間隔設定部220が設定している最新の時間間隔をサンプリング周期として、記憶部240の記憶しているデータを抽出する(ステップS311)。
【0053】
そして、データ抽出部250は、ステップS311で抽出したデータの期間を算出する(ステップS312)。具体的には、データ抽出部250は、ステップS311で抽出したデータのうち、最も新しい時刻のサンプリング時刻(データ取得部210が算出した時刻)から最も古いデータのサンプリング時刻を減算する。
【0054】
次に、データ抽出部250は、表示データ間の時間間隔を算出する(ステップS313)。具体的には、データ抽出部250は、ステップS312で算出した期間を、表示データ数−1で除算する。
そして、データ抽出部250は、各表示データに相当する時刻を算出する(ステップS314)。具体的には、ステップS311で抽出したデータのうち、最も古いデータを1番目のデータとし、最も新しいデータをN番目のデータとした場合、データ抽出部250は、i番目のデータ(iは、1≦i≦Nの整数)に相当する時刻T(i)を、式(1)に基づいて算出する。
【0056】
ここで、1番目のデータに相当する時刻T(1)は、1番目のデータのサンプリング時刻とする。また、時間Dは、ステップS313で算出した表示データ間の時間間隔を示す。
次に、データ抽出部250は、表示データ毎に、当該表示データに相当する時刻に最も近いサンプリング時刻のデータを、記憶処理部230を介して記憶部240から読み出す(ステップS315)。
【0057】
そして、データ抽出部250は、記憶部240から読み出したデータを表示制御部260へ出力して、表示部270に表示させる(ステップS316)。
その後、同図の処理を終了する。
一方、ステップS301において、記憶部240の記憶しているデータ数が表示データ数として予め設定されている所定のデータ数未満であると判定した場合(ステップS301:NO)、データ抽出部250は、記憶処理部230を介して記憶部240から全てのデータを読み出す(ステップS321)。
その後、ステップS316へ進む。
【0058】
次に、
図11を参照して、記憶部240に必要な記憶容量について説明する。
図11は、データ取得時間と記憶容量との関係の例を示す説明図である。同図は、時間間隔設定部220が設定する時間間隔の初期値が2秒であり、表示データ数が32であり、1つのデータを10バイトで記憶する場合における、データ取得時間と必要な記憶容量との関係を示している。
【0059】
同図の行L11を参照すると、記憶容量4000バイト弱にて1日分以上のデータを記憶できる。また、同図の行L12を参照すると、記憶容量4500バイト弱にて6日分以上のデータを記憶できる。
このように、ランニングウォッチ200では、長時間のデータを少ない記憶容量にて記憶できる。
【0060】
以上のように、時間間隔設定部220は、記憶部240が記憶したデータ数に応じた時間間隔を設定する。そして、記憶処理部230は、データ取得部210が取得したデータのうち、時間間隔設定部220が設定した時間間隔毎のデータを記憶部240に記憶させる。このようにして、記憶部240は、データ取得時間に応じた時間間隔でデータを保存する。
ここで、データ抽出部250は、記憶部240が記憶したデータのうち、所定の表示データ数に応じたデータ数のデータを抽出する。これにより、時間間隔設定部220が時間間隔を更新した際、記憶部240の記憶しているデータの間引きや圧縮を行う必要が無い。この点において、ランニングウォッチ200(記憶処理部230)は、より低い処理負荷にてデータ取得時間に応じた時間間隔でデータを保存することができる。
【0061】
また、記憶部240の記憶しているデータの間引きや圧縮を行う必要が無い点で、記憶部240が記憶するデータ数が増加した際にデータの間引きや圧縮のための処理にかかるCPU負荷やワークメモリ領域が増大することを防止できる。
さらに、記憶部240の記憶しているデータの間引きや圧縮を行う必要が無い点で、記憶部240へのデータの書き込み回数が少なくて済む。従って、記憶部240がEEPROM(Electrically Erasable Programmable Read-Only Memory)またはフラッシュメモリ(Flash Memory)を用いて実現されている場合でも、書き込み回数がすぐに制限回数に達してしまいランニングウォッチ200の製品寿命が短くなってしまうことを防止できる。
【0062】
また、時間間隔設定部220は、時間間隔設定部220自らが最新の時間間隔を設定してから、記憶処理部230が当該最新の時間間隔毎のデータを記憶部240に記憶させたデータ数が所定数に達すると、時間間隔をより大きく設定する。
このように、時間間隔設定部220が、記憶部240の記憶するデータ数の増加に応じて、記憶部240に記憶させるデータの時間間隔をより大きく設定することで、データ数の増加を緩やかにすることができる。
【0063】
また、時間間隔設定部220は、時間間隔が初期設定の時間間隔となっているときは、記憶処理部230が当該初期設定の時間間隔毎のデータを記憶部240に記憶させたデータ数が表示データ数の2倍に達すると、時間間隔を2倍した時間間隔に再設定する。
このように、時間間隔設定部220が、初期設定の時間間隔を維持して記憶部240に表示データ数以上のデータを記憶させることで、表示部270は、表示データ数のデータを表示することができる。また、時間間隔設定部220が、時間間隔を2倍した時間間隔に再設定した際、記憶部240は、再設定された時間間隔のデータを既に表示データ数だけ記憶している。従って、表示部270は、時間間隔の再設定後も表示データ数のデータを表示することができる。
【0064】
また、時間間隔設定部220は、時間間隔が再設定された時間間隔となっているときは、記憶処理部230が最新の時間間隔毎のデータを記憶部240に記憶させたデータ数が表示データ数に達すると、時間間隔を、最新の時間間隔をさらに2倍した時間間隔に再設定する。
これにより、時間間隔設定部220が、時間間隔を2倍した時間間隔に再設定した際、記憶部240は、再設定された時間間隔のデータを既に表示データ数だけ記憶している。
従って、表示部270は、時間間隔の再設定後も表示データ数のデータを表示することができる。
【0065】
また、データ抽出部250は、表示データ間の時間間隔が等間隔となる場合の各表示データの時刻を算出し、算出した時刻に最も近いサンプリング時刻のデータを、表示データとして記憶部250から読み出す。
これにより、データ抽出部250は、均等に近い時間間隔のデータを表示データとして抽出することができる。
【0066】
また、データ抽出部250は、表示データ間の時間間隔が等間隔となる場合の各表示データの時刻を算出し、表示データ毎に、算出した時刻の前後で当該算出した時刻に最も近いサンプリング時刻のデータを1つずつ読み出し、読み出した2つのデータの平均値を表示データの値とする。
これにより、データ抽出部250は、算出した時刻と、記憶部250が実際に記憶しているデータのサンプリング時刻との差が比較的大きい場合でも、平均にてデータを補間して、算出した時刻のデータに近いデータを取得し得る。
【0067】
また、データ取得部210は、時間間隔設定部220が設定した時間間隔をサンプリング周期としてデータを取得する。
このように、データ取得部210が時間間隔設定部220の設定した時間間隔に応じてデータを取得することで、記憶処理部230は、データ取得部210が取得したデータを全て記憶部240に記憶すればよく、データの間引きや圧縮を行う必要がない。この点において、記憶処理部230の処理負荷の増大を抑制できる。
【0068】
なお、データ取得部210が、時間間隔設定部220の時間間隔再設定にかかわらず一定のサンプリング周期で心拍数(1分間あたりの心拍数)を算出しておき、時間間隔設定部220の設定した時間間隔毎に所定時間の心拍数を平均することで、当該時間間隔毎のデータを取得するようにしてもよい。
この場合、チェストストラップ100(送信部120)からの心拍信号にノイズが混入するなどして、一時的に心拍数に誤差が生じても、データ取得部210が心拍数の平均を算出するので誤差の影響を低減させることができる。
【0069】
なお、第1の実施形態における表示データ及び表示データ数は、第2の実施形態における代表データ及び代表データ数の一例である。
【0070】
なお、本願発明者は、本発明を適用した場合に表示されるグラフの形が、生のデータのグラフの形に近いことをシミュレーションにて確認した。
図12は、本実施形態における心拍数の表示のシミュレーション結果を示すグラフである。
【0071】
同図において、線L21は、生の心拍数(1分あたりの心拍数)のシミュレーション値を示す。
また、線L22は、生の心拍数のシミュレーション値から5秒毎にサンプリングした値を示す。この線L22の示す値は、時間間隔設定部220が時間間隔を初期設定値の5秒としている状態での、表示部270の表示データの例に相当する。
【0072】
また、線L23は、生の心拍数のシミュレーション値から10秒毎にサンプリングした値を示す。この線L23の示す値は、時間間隔設定部220が時間間隔を初期設定の5秒から10秒に更新した状態での、表示部270の表示データの例に相当する。
また、線L24は、生の心拍数のシミュレーション値から20秒毎にサンプリングした値を示す。この線L24の示す値は、時間間隔設定部220が時間間隔を初期設定の5秒から2回更新して20秒とした状態での、表示部270の表示データの例に相当する。
【0073】
図12を参照すると、線L22〜L24のいずれも、全体的に見ると、線L21と同様の形を示している。これにより、本発明を適用した場合に表示されるグラフの形が、生のデータのグラフの形に近いことを確認できた。
【0074】
<第2の実施形態>
以下、第2の実施形態について詳細に説明する。
図13は、第2の実施形態におけるランニングウォッチシステム1の機能構成を示す概略ブロック図である。同図において、第1の実施形態と共通する構成については、
図2で示したものと同じ符号を用いて、説明を省略する。ランニングウォッチシステム1は、チェストストラップ100と、ランニングウォッチ200とを具備する。ランニングウォッチ200は、データ取得部210と、時間間隔設定部220aと、記憶処理部230と、記憶部240と、データ抽出部250aと、表示制御部260と、表示部270と、送信部280とを具備する。データ取得部210は、受信部211を具備する。データ抽出部250aは、抽出制御部251を具備する。
【0075】
時間間隔設定部220aは、時間間隔が初期設定の時間間隔となっているときは、記憶処理部230が当該初期設定の時間間隔毎のデータを記憶部240に記憶させたデータ数が代表データ数の所定の定数倍に達すると、時間間隔を所定の定数倍した時間間隔に再設定する。代表データとは、例えば、後述する解析サーバが行うデータの統計解析など、表示部270に表示させる以外に関しても利用可能な、当該データの傾向を表す代表的なデータの集まりである。具体的には、代表データは、例えば、第1の実施形態において
図3(C)で示したような、時間間隔設定部220が設定した最新の時間間隔をサンプリング周期としてデータを抽出したものが一例であり、他の例としては、サンプリング周期とは異なる所定の周期T1ごとに抽出されたデータや、データが心拍などだった場合に受信部211がデータを受信している期間のデータのみを抽出したデータなどが該当する。代表データ数とは、特許請求の範囲における所定のデータ数の一例である。代表データ数は、例えば、データ抽出部250aに予め設定されている定数であり、第2の実施形態における表示部270は、この代表データ数を表示データ数として読み込む。なお、所定の定数とは、例えば、2や3などの整数である。また、初期設定の時間間隔は、例えば、予め時間間隔設定部220aに登録されていてもよいし、あとからユーザが設定できるものとしてもよいし、記憶部240のデータ領域の空き容量に応じて算出されてもよい。
【0076】
データ抽出部250aは、記憶部240が記憶したデータから代表データを抽出する。そして、データ抽出部250aは、抽出した代表データを表示部270に表示させる。また、データ抽出部250aは、抽出した代表データを、記憶部240に記憶する。また、データ抽出部250aは、記憶部240の記憶領域が所定の閾値よりも小さくなったとき、ユーザに記憶領域が少なくなったということを通知し、通知によってユーザの操作に応じて後述する送信部280が代表データを外部の解析サーバやクラウドサーバに送信すると、送信した代表データを記憶部240から削除する。これによって、ランニングウォッチ200は、より長期にわたってユーザのデータを記録することができる。
【0077】
抽出制御部251は、所定のタイミングで、記憶部240が記憶したデータから、代表データを抽出するようにデータ抽出部250aを制御する。所定のタイミングとは、例えば、後述する送信部280が代表データを、統計解析を行う解析サーバや、クラウドサーバなどに送信する時や、所定の周期T2が経過した時や、受信部211が計測時間を経過したことによって受信を終了した時などである。抽出制御部251は、このようなタイミングでデータ抽出部250aに抽出を行わせることで、データを取得している最中でのCPUに掛かる負荷を変えることなく、計測終了後などのCPU稼働率が減少しているときに、代表データを抽出することができる。
【0078】
送信部280は、データ抽出部250aが抽出した代表データを、ユーザ操作に応じて、外部の解析サーバやクラウドサーバなどに無線にて送信する。なお、送信部280は、ユーザ操作に応じて送信することに代えて、所定の周期T3が経過するごとに送信してもよい。また、送信部280は、代表データに代えて、表示データを送信してもよい。また、送信するデータには、サンプリング間隔に関する情報や、データ数に関する情報が含まれてもよい。
【0079】
ここで、
図14を参照して、データ抽出部250aが代表データを記憶部240に記憶させる際の記憶領域内のデータについて説明する。
図14(a)に示すように、データ抽出部250aは、代表データを抽出するときに使った元のデータが記憶されている記憶部240の記憶領域に、代表データを上書きして記憶する。なお、データ抽出部250aは、代表データを記憶するのに代えて、表示部270に表示させる表示データを記憶部240に記憶してもよい。また、
図14(b)に示すように、データ抽出部250aは、代表データを上書きして記憶した後、代表データが記憶された領域を除いた記憶領域に、新たにデータ取得部210が取得したデータを記憶する。そして、データ抽出部250aは、新たに記憶したデータから、再び代表データを抽出して上書きして記憶することを繰り返す。なお、データ抽出部250aは、抽出した代表データを記憶部240に記憶する際、代表データを抽出するときに使った元のデータが記憶された記憶部240の記憶領域に、代表データを上書きして記憶することに代えて、元のデータを削除してから記憶してもよい。
【0080】
ここで、
図15を参照して、データ抽出部250aが、代表データを記憶するのに代えて、表示部270に表示させる表示データを記憶部240に記憶する際の記憶領域内のデータについて説明する。
図15(a)に示したように、データ抽出部250aは、代表データを抽出した後、表示部270に代表データを表示し、表示したデータを、元のデータが記憶された記憶領域に上書きして記憶する。また、
図15(b)に示したように、データ抽出部250aは、表示したデータを上書きして記憶した後、表示データが記憶された領域とは異なる記憶領域に、新たにデータ取得部210が取得したデータを記憶する。そして、データ抽出部250aは、新たに記憶したデータから、再び代表データを抽出して、表示したデータを上書きして記憶することを繰り返す。
【0081】
このように、第2の実施形態におけるランニングウォッチ200は、時間間隔設定部220aが、記憶処理部230が当該初期設定の時間間隔毎のデータを記憶部240に記憶させたデータ数が代表データ数の所定の定数倍に達すると、時間間隔を所定の定数倍した時間間隔に再設定することで、第1の実施形態と同様の効果を得ることができる。また、ランニングウォッチ200は、データ抽出部250aが、所定のタイミングで、記憶部240が記憶したデータから、代表データを抽出するようにデータ抽出部250aを制御する。従って、ランニングウォッチ200は、計測中のCPUに掛かる負荷を変えることなく、計測終了後などのCPU稼働率が減少しているときに、代表データを抽出することができる。これによって、第2の実施形態のランニングウォッチ200は、第1の実施形態のランニングウォッチ200と同様のCPU応答性を有することができ、ユーザの利便性を保つことができる。
【0082】
また、データ抽出部250aは、抽出された代表データを、記憶部240に記憶する。従って、ランニングウォッチ200は、代表データを記憶するために、データ取得部210が取得した元のデータとは別に記憶領域を確保する必要があるため、保存可能時間は徐々に減ってしまう。しかし、このことによって、ランニングウォッチ200は、複数のデータを保持したい場合には極めて効率よく、記憶領域を利用することができる。また、送信部280は、代表データを解析サーバやクラウドサーバに送信するので、データ取得部210が取得した元のデータを送信することに比べて、通信速度を向上させることができる。
【0083】
なお、データ取得部210と、時間間隔設定部220と、記憶処理部230と、データ抽出部250と、データ抽出部250aと、表示制御部260との全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0084】
以上、この発明の上述の各実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。