サーボモーター用の、サンプルを作ったよ。
プログラム内に少し コメント を入れたから、見やすいかな?
<html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" /> <link rel="stylesheet" href="/css/starter-sample.css"> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script src="https://unpkg.com/obniz@3.6.1/obniz.js" crossorigin="anonymous" ></script> </head> <body> <div id="obniz-debug"></div> <div class="wrap"> <!--角度指定--> <div class="print"> <h3 class="text-center">角度を設定しよう</h3> <div> <input type="text" id="text" value="" placeholder="ここに角度をいれてから設定→"> <button class="btn btn-primary" id="moveto">設定</button> </div> </div> <!--電源操作ボタン--> <div class="led"> <h3 class="text-center">電源</h3> <button class="btn btn-primary" id="on">電源 ON</button> <button class="btn btn-primary" id="off">電源 OFF</button> </div> </div> <script> var obniz = new Obniz("OBNIZ_ID_HERE"); obniz.onconnect = async function() { // サーボモーターに接続 var servo = obniz.wired("ServoMotor", {gnd:0, vcc:1, signal:2}); // ディスプレイの表示 obniz.display.clear(); obniz.display.print("Hello World"); // [電源 ON]がクリックされた時 $("#on").click(function() { servo.on(); }); // [電源 OFF]がクリックされた時 $("#off").click(function() { servo.off(); }); // [設定]がクリックされた時 $("#moveto").on("click", function() { // ディスプレイの表示 obniz.display.clear(); obniz.display.print("設定角度:"); obniz.display.print($("#text").val()); // サーボモーターの角度設定 servo.angle(parseInt($("#text").val())); // エラー処理は無し }); }; </script> </body> </html>
サーボモーターの使い方は、パーツライブラリを参考にすればできるよ。
角度の設定処理について、説明するよ。画面で角度を指定する部分は、HTML のこの部分だね。
【24行目:角度を入れるところ】
<input type="text" id="text" value="" placeholder="ここに角度をいれてから設定→">
この「<input….>」というのは、HTMLの「inputタグ」と呼ばれるもので、ブラウザ画面で入力するものになるんだよ。
【25行目:[設定]ボタン】
<button class="btn btn-primary" id="moveto">設定</button>
次の「<button…>…</button>」というのは、HTMLの「buttunタグ」と呼ばれるもので、名前の通り、ブラウザ画面でボタンになるのはわかるよね。
このボタンが押された時の、動作は下の方の、JavaScript の部分にあるよね。
【60行目~】
// [設定]がクリックされた時
$("#moveto").on("click", function() {
// ディスプレイの表示
obniz.display.clear();
obniz.display.print("設定角度:");
obniz.display.print($("#text").val());
// サーボモーターの角度設定
servo.angle(parseInt($("#text").val())); // エラー処理は無し
});
ボタンのidが、「moveto」だから、クリックされた時にここが実行されるんだ。
ディスプレイの表示部分については、一度、ディスプレイをクリア(きれいに)してから、printで文字を出しているね。
「角度設定」の次に出しているのは、「$(“#text”).val()」だね。
「$(“#text”)」というのは、24行目の「inputタグ」が「id=”text”」とあるから、この「inputタグ」のことで、「val」(value)だから、その入力した値のことなんだ。
最期の、サーボモーターの角度設定については、「servo.angle(角度)」で設定できるけど、角度の部分は、「parseInt($(“#text”).val())」となっているね。「$(“#text”).val()」は、「inputタグ」で入力した値だけど、それを「parseInt(…)」というもので、数字にしているんだ。これは、無くても大丈夫だけと、一応おまじないのようなものでつけてるんだよ。