このツールについて
今どきのスマホには加速度センサー、ジャイロセンサー、磁気センサー、GPS 受信機が入っていて、ブラウザは DeviceMotionEvent、DeviceOrientationEvent、watchPosition という標準の Web API でその値を読めます。このページはそれをアプリ不要のスマホセンサーテストにしたものです。センサーごとに一枚のカードがあり、それぞれに開始ボタン、単位付きの等幅数値、直近数秒のグラフ、そしてブラウザが実際にページへ渡しているサンプリングレートが表示されます。地図の向きがいつもおかしい、レースゲームの画面が勝手に流れる、ナビの位置が飛ぶ、中古スマホを買う前に動作確認したい——そんなときのためのページです。処理はすべてスマホの中だけで完結し、座標も測定値もレポートもブラウザの外に出ません。
各カードで測れること
加速度センサーのカードは、重力込みと重力抜きの x・y・z と、ブラウザが報告する interval を表示します。机の上で静止させたとき、重力ベクトルの長さは 9.81 m/s² に近いはずで、参考しきい値を超えてずれていると「要確認」と出ます。「故障」とは言いません。水平器は同じ重力ベクトルからピッチとロールを計算し、「今の姿勢をゼロにする」ボタンで信頼できる面を基準にできます。ジャイロセンサーのカードは三軸の角速度に加えて「平らに置いて 5 秒」の測定があり、静止時のオフセット(バイアス)とノイズを出します。バイアスが大きいと、スマホを動かしていないのに AR やゲームの画面が流れていきます。コンパスのカードは画面の回転を補正した磁北方位をコンパス図で示し、プラットフォームが報告する場合はその精度と、静止画の 8 の字キャリブレーション図を添えています。GPS のカードは緯度・経度、水平精度(m)、高度、速度、進行方向、初回測位までの時間、精度の推移グラフを表示します。バイブレーションのカードはいくつかのプリセットパターンと自由入力のパターンを鳴らします。小さな画面の向きカードで一式です。
5 秒静止テストと四つの判定
加速度センサーとジャイロセンサーには、スマホを置いて待つだけの短い測定があります。結果は四つのうちどれかです。「OK」は平均が参考しきい値の範囲に収まったということ。「要確認」は静止値がずれている——重力が 9.81 m/s² から大きく外れている、またはジャイロのバイアスが 1 °/s を超えている——ので、キャリブレーションが必要かもしれないという意味です。「動いています」は値のばらつきが大きすぎて判定できなかったということで、ほぼ必ずスマホを持ち上げたか机が揺れたのが原因です。もう一度やり直してください。「サンプル不足」は、その時間内にブラウザが 10 件未満しか値を渡さなかったということで、タブが抑制されているときや、許可が遅れたときに起こります。しきい値(重力 ±0.5 m/s²、ジャイロのバイアス 1 °/s)は控えめに選んだ参考値であって、メーカーの仕様ではありません。
このページで分からないこと
表示されるサンプリングレートは、ブラウザが Web ページに渡しているレートで、センサー自体が出せるレートより低いことがよくあります。つまり分かるのはブラウザの性質であって、ハードウェアの性能ではありません。コンパスの正体は磁気センサーで、スマホケースや車載ホルダーの磁石、近くの金属、スピーカーに簡単に狂わされます。方位がおかしいときはたいてい磁気の干渉で、センサーの故障ではありません。表示する方位は磁北で、真北とは地域ごとの偏角だけ違います。GPS は屋内や高いビルの間ではどのスマホでも精度が落ち、ブラウザが Wi-Fi や基地局による測位に切り替えることもあります。そのときは精度欄にずっと大きな数字が出ます。iPhone のブラウザにはバイブレーション API がないので、そのカードは iPhone では動きません。そして上の判定は参考しきい値と比べただけの単純な読み取りです。このページはハードウェアの故障診断はしませんし、「部品が壊れている」とも言いません。
パソコンで開いた場合
ノートパソコンやデスクトップにはたいていモーションセンサーがないので、パソコンでこのページを開くと、ページの URL とスマホで読み取るための QR コードが表示されます。カードはその下にそのまま残るので、それぞれが何を測るかは読めます。GPS だけは Wi-Fi 測位でノートパソコンでも動くことがありますが、精度はたいてい数十〜数百 m です。
位置情報はスマホの中に留まります
地図は表示しません。地図を描くには座標をタイルサーバーに送る必要があるからです。座標は初期状態では小数点以下 3 桁(おおよそ 100 m)で表示され、6 桁まで見るにはボタンを押します。コピーボタンで作られるレポートに入るのは判定、サンプリングレート、測位回数、初回測位までの時間、精度の数値だけで、緯度・経度・高度・速度・進行方向は決して含まれず、どこにも送信されません。アナリティクスに記録されるのはどのカードを開始したかだけで、値は記録しません。