obnizのフォーラムは新しいシステムに移行しております。
新しいフォーラムはこちらになりますIRModule の start と send
-
kido 様
前スレ誤って消してしまいました。すみません。アドバイスありがとうございます。
原因がわかりました。
使用している IRmodule の構造とロジック・アナライザの仕様から、
起こるべくして起こる現象でした^^;
アドバイスいただくまで、自分の信号を受信しているとは思ってもみなかったです。使用している IRmodule は
https://obniz.com/ja/sdk/parts/IRModule/README.md
の写真にあるのものです。
この構造だと自分が発した赤外線を自分も受ける形になります。
IRmodule のライブラリは受信データの処理にロジック・アナライザを使っているみたいで、ロジック・アナライザはトリガーを検出してデータ収録が終わっても、すぐに次のトリガーを待つようですので、自分が発光していると同時に受信もしています。
ちょうど、シリアル通信の半二重と同じです。
ですので、簡単な解決策としては、自分の信号を一度捨て読みをしてやれば良いと言うことがわかりました。もっと良い方法はいくつか思いつきますが、とりあえずこの方法で正常に動作してくれました。
コードは下記です。<script> $("#bploading").text("RUNNING..."); (async function(){ var obniz, irmodule, ir_rcv_col; obniz = new Obniz('xxxx-xxxx'); await obniz.connectWait(); irmodule = obniz.wired("IRModule",{"vcc":0, "send":1, "recv":2, "gnd":3}); irmodule.duration = 800; irmodule.start(); while(1){ ir_rcv_col = (await new Promise(resolve=>{ irmodule.ondetect = resolve; })); console.log('rcvd'); console.log(ir_rcv_col); await obniz.wait(4000); ir_send = ir_rcv_col; if ( ir_rcv_col.length != 0 ){ console.log('send'); console.log( ir_send ); irmodule.send( ir_send ); } // 自分が送信しているときに受信したデータを捨て読みする ir_rcv_col = (await new Promise(resolve=>{ irmodule.ondetect = resolve; })); } })(); </script>
SUGGESTED TOPICS
-
Error: Error module=4 func=2 err0=0 returned=3
Beginner Questions/Discussion • 2021年7月28日 10:53 • Hola 2021年7月31日 3:20 -
パーツライブラリを作りたい
Beginner Questions/Discussion • 2021年10月4日 12:30 • 門脇 勇 2021年10月9日 12:09 -
自分のパーツライブラリが作成できない
Beginner Questions/Discussion • 2021年7月8日 9:04 • Hola 2021年7月28日 10:45 -
group29khoinghiep
Beginner Questions/Discussion • 2021年10月19日 7:32 • lamtrancl123456 2021年10月19日 7:32 -
obniz 1Y のスリープ状態解除
Beginner Questions/Discussion • 2021年7月24日 7:20 • Eiichi 2021年7月26日 14:43 -
サーボモーターを動かそうとすると。
Beginner Questions/Discussion • 2021年10月11日 23:20 • 吉川 靖育 2021年11月1日 9:51 -
ブロックプログラムでIRモジュールのオプションを渡したい
Beginner Questions/Discussion • 2021年9月11日 12:49 • 門脇 勇 2021年9月13日 13:40 -
ブロックプログラムのプログラム間コピー
Beginner Questions/Discussion • 2021年9月11日 23:20 • 門脇 勇 2021年9月13日 13:47