キッズプロジェクト。振ってアニマル!

このエントリーをはてなブックマークに追加

振って振って動物を動かそう!

動画

作り方

材料

  • 紙コップ
  • モーター
  • 単4電池3本と電池ケース

紙コップのそこにモーターの軸を出すために小さな穴を開けます。

モーターに両面テープをつけて紙コップに固定します。

モーターの配線をobnizのio0とio1につなぎます。

また、単4電池3本を電池ケースに入れ、obnizのJ1にハンダ付けします。

紙コップの中でショートしないように気をつけましょう!

最後にもう1つの紙コップで動物を作ります。自由に作りましょう!

動かし方

プログラムを動かしてスマートフォンを振りましょう!激しく動かすほどカタカタと動きます!

Program

<!-- HTML Example -->
<html>
<head>
  <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
  <script src="https://unpkg.com/obniz@1.8.2/obniz.js"></script>
</head>
  
<body>
  <div id="obniz-debug"></div>
  <div id="print"></div>

<script>
  
var motor;
var obniz = new Obniz("OBNIZ_ID_HERE")
obniz.onconnect = async () => {

  motor = obniz.wired("DCMotor",  {forward:0, back:1});
  motor.power(0);
  motor.move(true);

}

var shakeCount = 0;
var x_last = 0;
var vx = 0;
var vx_last = 0;
var ax = 0;
var ax_avg = 0;
var timer;

window.addEventListener("devicemotion", (event) => {
  
  if (!motor)
    return;
  
  let x = event.accelerationIncludingGravity.x;
  let y = event.accelerationIncludingGravity.y;
  
  vx = x - x_last;
  x_last = x;
  ax = vx_last - vx;
  vx_last = vx;
  ax_avg = Math.abs(ax) * 0.2 + ax_avg * 0.8;
  
  if (!timer) {
    timer = setInterval(()=>{
      var value = ax_avg * 5;
      if(value > 50) {
        value = 50;
      }
      motor.power(value);
      timer = null;
    }, 50);
  }
}, true);


</script>
</body>
</html>

今すぐ実行

HTMLがブラウザで開かれて実行されます。