キッズプロジェクト。スマホでぴよぴよ

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

モーターやスピーカーで作った鳥をスマホで動かします。

動画

作り方

材料

  • サーボモーター SG5010
  • ピエゾスピーカー
  • 紙コップ
  • 厚紙

まずは鳥の土台を作ります。
厚紙を丸く切り、モーターの穴が出るように小さな穴も開けます。

次にサーボモーターに両面テープをつけ先ほどの厚紙を取り付けます。

サーボモーター付属のホーンを取り付けます。

紙コップに色紙などを使って鳥を作ります。
自由に作って下さい!

できたら厚紙に取り付けます

サーボモーターから伸びたケーブルはこのようにするときれいに伸ばすことができます。

配線

ピエゾスピーカーをio0とio4に。
サーボモーターを信号io9,vccをio10, gndをio11に接続しHTMLを開きます。

動かし方

スマートフォンの左右傾きに合わせて鳥が動きます。
上下の動きで鳥の鳴き声が変わります。

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 speaker;
var servo;
var lastbeta;
var obniz = new Obniz("OBNIZ_ID_HERE")
obniz.onconnect = async () => {

  speaker = obniz.wired("Speaker", {signal:0, gnd:4});
  servo = obniz.wired("ServoMotor", {signal:9,vcc:10, gnd:11});
}

window.addEventListener("deviceorientation", (event) => {
  if (!speaker) return;
  const beta = event.beta;
  const gamma = event.gamma;
  const alpha = event.alpha;
  
  console.log(gamma);
  if (beta > lastbeta + 1 || beta < lastbeta - 1 ){
    speaker.play(parseInt((beta - 0) * (7000 - 4000) / (90 - 0) + 4000));
  } else {
    speaker.stop();
  }
  lastbeta = beta;
  servo.angle(parseInt((gamma - (-80)) * (180 - 0) / (80 - (-80)) + 0));
})

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

今すぐ実行

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