ByteScope

Phone Sensor Test

ジャイロがずれている? コンパスが狂う? GPS の精度は実際どのくらい? このページをスマホで開けば、加速度センサー・ジャイロセンサー・コンパス・GPS・バイブレーションをカードごとに確認でき、水平器とブラウザが実際に渡しているサンプリングレートも見られます。iPhone でも Android でも、アプリ不要、アップロードなし。

読み取った値も位置情報もこのタブの中だけ。どこにも送信しません。

タッチパネルも確認したい? タッチテストへ →

加速度センサー

確認中…

確認中…

水平器

確認中…

確認中…

ジャイロセンサー

確認中…

確認中…

コンパス

確認中…

確認中…

GPS

確認中…

確認中…

バイブレーション

確認中…

画面の向き

確認中…

スマホを回しても変わらない?画面の回転ロックがオンになっているかもしれません。クイック設定やコントロールセンターを見てください。

テストレポート

各カードの状態・判定・サンプリングレート。座標、高度、速度、生の値は含みません。

ブラウザ対応状況

まだ実機で確かめていません:? は「未確認」で、「非対応」ではありません。最後の列はいまこのブラウザで使えるものです。

機能Chrome AndroidSamsung InternetSafari iOSFirefox Androidこのブラウザ
加速度センサー/ジャイロ未確認未確認未確認許可が必要未確認…
コンパス(絶対方位)未確認未確認未確認webkitCompassHeading未確認…
GPS未確認未確認未確認未確認…
バイブレーション未確認未確認非対応未確認…

このツールについて

今どきのスマホには加速度センサー、ジャイロセンサー、磁気センサー、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 桁まで見るにはボタンを押します。コピーボタンで作られるレポートに入るのは判定、サンプリングレート、測位回数、初回測位までの時間、精度の数値だけで、緯度・経度・高度・速度・進行方向は決して含まれず、どこにも送信されません。アナリティクスに記録されるのはどのカードを開始したかだけで、値は記録しません。

よくある質問

iPhone で「許可」を求められるのはなぜ?

iOS 13 以降の Safari は、ページが DeviceMotionEvent.requestPermission() で求めたときにだけモーションと方向のデータを渡し、しかもその呼び出しはタップの中でしか許されていません。そのため加速度・水平器・ジャイロ・コンパスのカードには、最初に「モーションセンサーを許可」ボタンが出ます。一度タップすれば四つすべてに適用されます。「許可しない」を押してしまったら、タブを閉じてページを開き直してください。それでも Safari が拒否する場合は、設定アプリの Safari の項目で、モーションと画面の向きのアクセスに関するスイッチを確認してください。正確な場所は iOS のバージョンによって違います。

iPhone でバイブレーションのテストができないのはなぜ?

iOS の Safari がバイブレーション API(navigator.vibrate)を実装しておらず、iPhone の他のブラウザでも使えないからです。カードは震えるふりをせず、その事実をそのまま表示します。ここで鳴らないからといって、モーターが壊れているわけではありません。Android のブラウザはおおむね対応していますが、ページがバックグラウンドにあるときや、システム設定でバイブレーションを切っているときはブラウザが拒否することがあります。

コンパスが狂う。どうやって直す?

まず原因になりやすいものを取り除きます。磁石付きのフラップやリングが付いたケースから出し、スピーカー、ノートパソコン、車載ホルダーから離れ、大きな金属からも離れてください。次にスマホを 8 の字に数回動かし、すべての軸を通るように回します。カードにその動きの静止画があります。報告される精度が上がっていくのを確認してください。表示している方位は磁北であって真北ではないので、地図とのズレが数度で一定なら、それは地域の偏角であって誤差ではありません。

このページは私の位置を記録しますか?

いいえ。座標はページの中に留まり、どこにも送られません。地図もタイルの取得もログもありません。座標は小数点以下 3 桁(約 100 m)で表示され、フル精度にするかはあなたが選びます。コピーされるレポートからは緯度・経度・高度・速度・進行方向を意図的に外してあり、入るのは精度の数値、測位回数、時間だけです。アナリティクスには GPS カードを開始したことだけが記録され、値は記録されません。

Web ADB のセンサーページとは何が違う?

Web ADB のセンサーツールは、USB ケーブルと ADB を使ってパソコンから Android のセンサーを読むもので、開発者モードが必要な代わりに、システムが認識している全センサーの一覧が得られます。このページはスマホ自身のブラウザの中で Web API を通してセンサーを読むので、Android だけでなく iPhone でも動き、ケーブルも開発者モードも要りませんが、見えるのはブラウザが公開している範囲だけです。Android 端末を深く調べたいならあちら、手に持っているスマホをさっと確認したいならこちらです。

サンプリングレートがスマホのセンサー仕様より低いのはなぜ?

devicemotion イベントをページに何回渡すかはブラウザが決めていて、そのレートはセンサー自体が出せるレートより低いことがよくあるからです。タブがバックグラウンドにあるときや省電力中は、さらに下げられます。各カードの数字は「このブラウザで Web ページが受け取れる値」の実測で、Web アプリを作る人には役立ちますが、ハードウェアの仕様ではありません。

ノートパソコンやデスクトップでも使える?

開くことはできますし、スマホで続きができるように QR コードも出ますが、ほとんどのパソコンには加速度センサーもジャイロもコンパスもないので、それらのカードは「この端末からは値が取れなかった」と表示します。GPS は Wi-Fi 測位で大まかな位置が返ってくることがあり、バイブレーションのカードはこのブラウザにバイブレーション API がないことを表示します。