加速度センサの傾きでWebの要素を傾ける
コンテンツ
今回やること
加速度センサを傾けると、画像や文章・ボタンなどのWebの要素が傾きます。
用意するもの
- 加速度センサ KXR94-2050
- obniz Board
- モバイルバッテリーなど
- ブラウザを開くためのPC or スマートフォン
組み立て方
加速度センサのパーツライブラリを参考に、図のようにobniz Boardと加速度センサを接続します。
obniz | 加速度センサ KXR94-2050 |
---|---|
0 | Vdd(1番) |
1 | GND(3番) |
2 | X軸(6番) |
3 | Y軸(7番) |
4 | Z軸(8番) |
5 | Enable(2番) |
6 | Self Test(5番) |
プログラム
任意の画像を2枚用意し、ファイル名を「img1.jpg」 「img2.jpg」 として、プログラムと同じフォルダ階層に置いてください。
Webの要素を傾けるには、CSSのtransformプロパティでrotateに角度を指定します。
$("#img-1").css({ transform: "rotate(" + angle + "deg)" }); $("#button-1").css({ transform: "rotate(" + angle + "deg)" }); $("#sentence-1").css({ transform: "rotate(" + angle + "deg)" });
最初の状態と今の状態での加速度を比較し、その差から傾きの大きさを調べます。
このとき、Math.abs関数を使うと絶対値で差を比較することができます。
if (Math.abs(currentAccelVals.y - initAccelVals.y) > 0.7) { //傾き大きめ } else if (Math.abs(currentAccelVals.y - initAccelVals.y) > 0.5) { //傾き中くらい } else if (Math.abs(currentAccelVals.y - initAccelVals.y) > 0.3) { //傾き小さめ } else { //まっすぐに戻す }
完成したプログラム
うごかす
図の向きに動かしてY軸を回転させると、Webの要素が左右3段階ずつ傾きます。