回答ありがとうございます。
結果は
「io has problem : 1, io6, io8」
となり、オブナイズの故障みたいです。
ありがとうございました。
当面は大丈夫そうなioピンへつないでしのぎます。
問題が解決して良かったです。
助かりました!
吉川 靖育さんの投稿
-
RE: サーボモーターを動かそうとすると。
-
サーボモーターを動かそうとすると。
ご教示をお願いします。
サーボモーターを動かそうとすると下記のメッセージが表示されて困っています。
「io1: heavy output. output voltage is too low when driving high」
今までは、問題なく動作していました。
突然上記のようなメッセージが出てくるようになりました。
io1以外に接続するとメッセージは表示されません。
オブナイズの故障でしょうか? -
RE: サーボモータ接続について
下記のようにbreakでwhileを抜けるように修正したところ遅延なくサーボを停止することができました。
やりたかったことは、サーボモーターをゆっくり動かして、HTML上に配置したボタンをタップしたら動きが止まるということをしたかったのです。おかげで、うまく制御できました。ご教示ありがとうございました。
async function move1() {sp1++; if(sp1==3){ sp1=1; } if(sp1==1){ while(i<=110){ if(sp1==2){ break; } i++; servo1.angle(i); await obniz.wait(speed); if(i==110){ while(i>=70){ if(sp1==2){ break; } i--; servo1.angle(i); await obniz.wait(speed); } } } } }
-
RE: サーボモータ接続について
早速のご助言ありがとうございます。
説明不足のところもあったかと思います。
下記のように、move1(),move2(),move3()という関数を作成しています。そして、順次動かすようにしています。
move1()を動かして、move2()まではうまく動作しますが、move3()になると動作が安定しません。
繰り返し処理のwhileの動作なのでしょうか?let speed=10; let p=0; let i=90; var servo1 = obniz.wired("ServoMotor", {gnd:2,vcc:1,signal:0}); servo1.angle(i); let m=90; var servo2 = obniz.wired("ServoMotor", {gnd:6,vcc:5,signal:4}); servo2.angle(m); let n=90; var servo3 = obniz.wired("ServoMotor", {gnd:10,vcc:9,signal:8}); servo3.angle(n);
async function move1() {
servo1.on();
servo2.off();
servo3.off();while(i<=110){ i++; servo1.angle(i); await obniz.wait(speed); if(i==110){ while(i>=70){ i--; servo1.angle(i); await obniz.wait(speed); } } } }
//******************************************************************************************
async function move2() {servo1.off(); servo2.on(); servo3.off(); if(p==1){ servo2.off(); return; } while(m<=110){ m++; servo2.angle(m); await obniz.wait(speed); if(m==110){ while(m>=80){ m--; servo2.angle(m); await obniz.wait(speed); } } } }
//******************************************************************************************
let t=0;
async function move3() {p++;
if(p==1){ servo1.off(); servo2.off(); servo3.on(); button1.style.backgroundColor = "red"; button2.style.backgroundColor = "blue"; //obniz.display.print("Stop") button3.style.backgroundColor = "blue"; document.getElementById("button3").innerText = "止まるまで待ってネ!"+p; servo3.angle(120); //} button3.style.backgroundColor = "red"; document.getElementById("button3").innerText = "ハイポーズ!!!!"+p; while(t<=2){ await obniz.wait(200); t++ obniz.display.print(t) servo3.angle(55); await obniz.wait(100); servo3.angle(90); } window.location.reload(); //await obniz.wait(500); }
}
-
サーボモータ接続について
サーボモーターSG90を3台(A、B、C)io0~io8までそれぞれ接続して動かそうとしています。
「Aを動かした後、Bを動かして、Cを動かす。」としていますが、Cを動かそうとした場合Bの動きがなかなか止まらず、Cの挙動が不安定です。
どのようにしたら安定して制御できるでしょうか?
ご教示よろしくお願いいたします。 -
RE: オブナイズとLINEの連携について
① 自分のPCにnode.jsを入れて動かす
② AWSなどのクラウド上のPCを借りて動かす
③ repl.itなど、一時的にnode.jsを動かせる環境を借りて動かすご助言通りに試行してみました。
①「自分のPCにnode.jsを入れて動かす」
→windows環境でしたが、うまく通知させることができました。
①の試行から、何かしらのPC上で動かしておかないとうまく動かないことが理解できました。
次に③「repl.itなど、一時的にnode.jsを動かせる環境を借りて動かす」
→ここでも、うまく動きました。しかし、ブラウザを閉じるとobnizがclosed。
当たり前といったら当たり前かということを再確認。②AWSなどのクラウド上のPCを借りて動かす
→AWSのアカウントを取得して試してみました。
しかし、最近iPhone12に変更したところSMSの通知が来なくて設定できない!!
困っていましたら、フッとずーっと動かしていない眠っているAndroidタブレットの存在に気づきました。
そこで、Termuxを使って設定して動かしたところうまくいきました。
当面はAndroidタブレットで24時間稼働させてみようと思います。ありがとうございました!
-
オブナイズとLINEの連携について
オブナイズにつけたスイッチを押すとLINEに通知が行くようなものを作りたいです。
https://blog.obniz.com/ja/make/notify-line-mail-arrives/
上記のアドレスに書かれてあるプログラムファイルをどの場所に置くといいのでしょうか?
ちなみに、LINEのアクセストークンは取得済みです。
どなたか教えていただくと嬉しいです。
よろしくお願いします。 -
JpegSerialCamの表示について
記載してあるJpegSerialCamの設定どおりにつないで画像を表示させよとしていますが、なにも表示されません。
何か設定がいけないのでしょうか?
一応、最初に読み込む
await cam.startWait({baud: 38400});
await cam.setBaudWait(115200);
で変更はしています。
ご教示お願いします。
<!-- HTML Example -->
<html>
<head>
<meta charset="utf-8">
<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@latest/obniz.js"></script>
</head>
<body><div id="obniz-debug"></div>
<img id="image"><script>
var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
obniz.io6.output(true);
obniz.io9.output(false);
var cam = obniz.wired("JpegSerialCam", {vcc:0, cam_tx:1, cam_rx:2, gnd:3});
await cam.startWait({baud: 115200});
await cam.setSizeWait(160x120");
const jpegData = await cam.takeWait();
document.getElementById("image").src = "data:image/jpeg;base64," + cam.arrayToBase64(jpegData);
}
</script>
</body>
</html>