CC2650STKの加速度計、x,y,z軸のデータ(ベクトル)の絶対値が どうも 2Gになる。
これは bluepy を使った場合にだけ発生しているようで、iOSのアプリではちゃんと 1.0G 程度の値になる。
CC2650STKのTIの wikiの 当該の場所を見るとGATTの設定で、rangeを 2G,4G,8G,16G の4通りが選択できるようになっている。またおのおのの軸は2byte=16bitで、-32767 ~ 32768 (sigined int?) の間の値が返ってくるようだ。
bluepy 附属の sensortag.py では、144行あたりでinit しているところで、
def __init__(self, sensor_):
self.sensor = sensor_
self.bits = self.sensor.ACCEL_XYZ | self.sensor.ACCEL_RANGE_4G
self.scale = 8.0/32768.0 # TODO: why not 4.0, as documented?
と、self.bits で rangeは 4Gの設定をしているつもりになっている。
でもって、データをdecodeするところでは、8.0/32768 の係数をかけている。
wikiには、range 4Gの場合には、
case ACC_RANGE_4G:
//-- calculate acceleration, unit G, range -4, +4
v = (rawData * 1.0) / (32768/4);
break;
となっている。こちらが正しいような。
bluepy でも
# TODO: why not 4.0, as documented?
と書いているけど修正していないようだ。
勝手に修正して
self.scale = 4.0/32768.0
で利用することに・・・
CC2650STKの加速度計、x,y,z軸のデータ(ベクトル)の絶対値が どうも 2Gになる。
これは bluepy を使った場合にだけ発生しているようで、iOSのアプリではちゃんと 1.0G 程度の値になる。
CC2650STKのTIの wikiの 当該の場所を見るとGATTの設定で、rangeを 2G,4G,8G,16G の4通りが選択できるようになっている。またおのおのの軸は2byte=16bitで、-32767 ~ 32768 (sigined int?) の間の値が返ってくるようだ。
bluepy 附属の sensortag.py では、144行あたりでinit しているところで、
def __init__(self, sensor_):
self.sensor = sensor_
self.bits = self.sensor.ACCEL_XYZ | self.sensor.ACCEL_RANGE_4G
self.scale = 8.0/32768.0 # TODO: why not 4.0, as documented?
と、self.bits で rangeは 4Gの設定をしているつもりになっている。
でもって、データをdecodeするところでは、8.0/32768 の係数をかけている。
wikiには、range 4Gの場合には、
case ACC_RANGE_4G:
//-- calculate acceleration, unit G, range -4, +4
v = (rawData * 1.0) / (32768/4);
break;
となっている。こちらが正しいような。
bluepy でも
# TODO: why not 4.0, as documented?
と書いているけど修正していないようだ。
勝手に修正して
self.scale = 4.0/32768.0
で利用することに・・・
CC2650STKを新規のCR2032電池で連続稼働してみた。cactiでグラフ化。
- CC2650STKから取得したデータは 30秒毎に取得、redisに送る。
- cactiは redis に5分毎にpolling してデータ取得、グラフ化。
- 各センサーは init時に enableにしてずっとそのまま。
バッテリーは 当初 91%の値から、すぐに70%台に落ちて最後は57%になると、応答が無くなる。連続稼働は1日。
IRtemerature は ambient(周辺温度?)のほうがコンスタントに高い(室内に普通に置いたとき)。
照度計はそこそこ動いているよう。
気圧計、他のセンサーに比べて早く応答しなくなるように見える。
湿度計はバッテリーに比べて早くおかしくなっている。バッテリーが70%を切って落ちてくるとこちらの値は100%ではりついていている。
CC2650STKは単に置きっぱなしなのに、ジャイロスコープの値が出る。1.0 degree/s は5分で 300度回転しているということ?キャリブレ-ションをちゃんとやらないとおかしな値が出る?あと、やはりバッテリーがへたってくると値が固定値になるように見える。
磁力計。静置しているのでまあこんなもんか?
加速度計。数値がおかしい。定常時で 2G ? 地球重力で 1Gじゃないの? あと電池がへたると 4Gの固定値。たぶんrangeいっぱいのデータになっている(湿度計と同じような挙動)。
CC2650STKには、温度計が4つあるのでそれを表示。IRtemparatureのtarget だけが低い値でその他はほぼ同じ。湿度計の温度計は電源落ち始めるところくらいで異常値?になりその後復帰。これはなんだろう?
これはセンサーが出す情報じゃないけれど、CT2650STKのデータを取得した時刻(utime)を取得。データが取得出来ないときにはこのデータが 0 になる(通常は cactiは5分ポーリングなので300 sec 程度の時間)。
CC2650STKを新規のCR2032電池で連続稼働してみた。cactiでグラフ化。
- CC2650STKから取得したデータは 30秒毎に取得、redisに送る。
- cactiは redis に5分毎にpolling してデータ取得、グラフ化。
- 各センサーは init時に enableにしてずっとそのまま。
バッテリーは 当初 91%の値から、すぐに70%台に落ちて最後は57%になると、応答が無くなる。連続稼働は1日。
IRtemerature は ambient(周辺温度?)のほうがコンスタントに高い(室内に普通に置いたとき)。
照度計はそこそこ動いているよう。
気圧計、他のセンサーに比べて早く応答しなくなるように見える。
湿度計はバッテリーに比べて早くおかしくなっている。バッテリーが70%を切って落ちてくるとこちらの値は100%ではりついていている。
CC2650STKは単に置きっぱなしなのに、ジャイロスコープの値が出る。1.0 degree/s は5分で 300度回転しているということ?キャリブレ-ションをちゃんとやらないとおかしな値が出る?あと、やはりバッテリーがへたってくると値が固定値になるように見える。
磁力計。静置しているのでまあこんなもんか?
加速度計。数値がおかしい。定常時で 2G ? 地球重力で 1Gじゃないの? あと電池がへたると 4Gの固定値。たぶんrangeいっぱいのデータになっている(湿度計と同じような挙動)。
CC2650STKには、温度計が4つあるのでそれを表示。IRtemparatureのtarget だけが低い値でその他はほぼ同じ。湿度計の温度計は電源落ち始めるところくらいで異常値?になりその後復帰。これはなんだろう?
これはセンサーが出す情報じゃないけれど、CT2650STKのデータを取得した時刻(utime)を取得。データが取得出来ないときにはこのデータが 0 になる(通常は cactiは5分ポーリングなので300 sec 程度の時間)。