みかづきブログ・カスタム

基本的にはちょちょいのほいです。

緊急モーションセンサにアクセスしてノートパソコンの本体向き、加速度を取得する 💻

いまからざっと10年前、そう2010年にFirefoxをつかって、MacBookの緊急モーションセンサ(加速度センサ)にアクセスした記憶があるのですが、ふと、「そういえば、最近はMacBookのブラウザでDeviceMotionEventにアクセスしても値が入ってこないな」と思ったので調べてみました。




結論

  1. HDDが入ったMacBookならChromeから加速度センサの値にアクセスできる!
  2. そもそもSSDのMacBookには加速度センサが入ってない!
  3. Firefoxではdevicemotion、deviceorientation共に非推奨!



DEMO

自分のノートパソコンで加速度センサにアクセスできるか気になる方は下記ページにアクセスするとわかります。(加速度センサにアクセスできる場合は値が更新されます)

develop.kimizuka.org
develop.kimizuka.org


詳細情報

HDDが入ったMacBookならChromeから加速度センサの値にアクセスできる!

MacBook Pro(13-inch, Mid 2009)、OS X El Capitan(10.11.6)の Chrome(83.0.4103.61)にて確認しました。

ただし、

  • DeviceOrientaionEventのalphaが常にnull
  • DeviceMotionEventのaccelerationのx、y、zがすべてnull(accelerationIncludingGravityは値が入っている)

となっていました。

Safari(11.1.2)、Firefox(44.0)は共に動きませんでした。


そもそもSSDのMacBookには加速度センサが入ってない!

HDD保護のためにはいっていた加速度センサ。HDDが入っていないパソコンにはそもそも備え付けられていないようです。
Macが落下したときにHDDを一時的に停止するために使われていたみたいですね。すごい。
なので、SSDのMacには加速度センサが入っておらず、当然アクセスもできないわけです。無い袖は振れぬ。


Firefoxではdevicemotion、deviceorientation共に非推奨!

Firefoxで動かないのが意外でして、一応mozOrientationEventも試してみたんですが、やはり動きませんでした。

Firefox(76.0.1)で確認すると、

devicemotion

deviceaorientation

という感じでワーニングが表示されますので、いつぞやかのバージョンからデフォルト設定では取得できないようになったんだと思います。

なぜ、デフォルト設定では取得できない、つまり設定によっては取得できるであろうと思ったかというと、

vr

と、設定にVRの項目があるので、おそらくどうにかすれば加速度センサの値が取れるんじゃ無いかと思った次第です。ただ、現状はこれ以上は深追いしません。



調査としては以上です。MacBookから加速度センサにアクセスしたい!というニーズは少ないと思いますが、どこかで誰かのお役に立てたら幸いです。
Windows機についても調べようと思ったのですが、手元にHDD搭載のWindows機がなかった為、未検証です。