自己レスです。
リポジトリ開いたらできるようになってました。
お騒がせしました。
門脇 勇
@門脇 勇
門脇 勇のベストな投稿
Latest posts made by 門脇 勇
-
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>
-
パーツライブラリを作りたい
新しいセンサーをつなぐためにパーツライブラリを作りたいのですが、
入り口が分かりません。
どうやったら登録できますか? -
RE: ブロックプログラムのプログラム間コピー
回答有り難うございます。
プログラム間のコピーが出来ないとなるとかなり不便ですね。
コピペで再利用は普通の使い方だと思いますが、
皆さんどうなさっているんでしょうかねぇ。 -
RE: ブロックプログラムでIRモジュールのオプションを渡したい
回答有り難うございます。
下記の設定をしたいのですが、ブロックから設定できるのでしょうか?
irmodule.duration = 1000; -
ブロックプログラムのプログラム間コピー
ブロックプログラムのプログラム間コピーのやり方を教えてください。
例えば、温度を測るプロクラムAとリモコン操作できるプログラムBを使って、温度を見てリモコン操作できるプログラムCを作りたい場合、これをブロックプログラムでやる方法はありますか?
ページをいくつか表示させてコピペでできるかと思ったのですが、ページを複数表示させる方法が分かりません。
どなたかご教示お願いします。 -
ブロックプログラムでIRモジュールのオプションを渡したい
IRModule の検出オプションをブロックプログラムで設定する方法を教えてください。
Javascript だと下記のようなことをしたい。
irmodule = obniz.wired("IRModule",{"vcc":0, "send":1, "recv":2, "gnd":3});
irmodule.duration = 1000;ご教示よろしくおねがいします。