obnizのフォーラムは新しいシステムに移行しております。
新しいフォーラムはこちらになりますobniz.oncloseでのサーボモータを初期角度にしたい
-
obnizにサーボモータを接続しています
ゴミ箱の蓋の開け閉めを想定し、以下のような動作を実装したいです- 初期は0度
- ボタンを押すと90度
- 終了時は0度に戻る
「3」を実装するため、oncloseでservo.angle(0)としていますが、サーボモータの応答の遅延のせいか、0度に戻りません。
obnizのプログラムの工夫などで、0度に戻す方法はございますでしょうか?
-
oncloseはobnizとの接続が切れた直"後"に呼ばれますので、そこでobnizに対する指示(サーボモーターの角度変更)を行うことはできません。
たとえば、Closeボタンを作り、そこが押されたときに終了処理(サーボモーターを0度にする)を行い、obnizとの接続を切る というのはいかがでしょうか。
サプルプログラム
<!-- HTML Example --> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script> <script src="https://unpkg.com/obniz@2.0.3/obniz.js"></script> </head> <body> <div id="obniz-debug"></div> <button id="close">close</button> <script> var obniz = new Obniz("obniz_id"); obniz.onconnect = async function () { var servo = obniz.wired("ServoMotor", {gnd:0, vcc:1, signal:2}); servo.angle(90); $("#close").on("click",async function(){ servo.angle(0); await obniz.wait(100);//応答待ち obniz.close(); }) }; </script> </body> </html>