IRセンサの`wired()`エラーについて



  • 最新バージョン(ver2.2.0)のnpmパッケージにてIRModuleおよびIRSensorwired()を行うと以下のエラーが発生します。

    throw new Error('recv is not valid io');
    

    ひとつ前のバージョン(ver2.1.0)ですとエラーは発生しませんが、obnizのディスプレイに表示されるPIN ASSIGNが何も割り当てられてない状態となり、動作もしません。

    以下の環境での状況となります。
    OS: Windows10
    Node.js: v10.16.0

    なおWebのパーツライブラリページからは動作しています。

    対処法がありましたらご教示頂けますと幸いです。
    以上、よろしくお願い致します。


  • administrators

    @田中みそ さん

    エラー内容としてはrecvピンが指定されていない という内容のようです。
    obniz.wiredでのピンの指定を教えてもらってもいいでしょうか。

    下記のように書いた場合、エラーは確認できませんでした。

    var module = obniz.wired('IRModule', { vcc: 0, send: 1, recv: 2, gnd: 3 });
    
    var sensor = obniz.wired('IRSensor', {vcc:0, gnd:1, output: 2});
    


  • @kido さん
    ご返信ありがとうございます。

    ピン指定はご記載頂いた内容と同じでした。

    コードはIRModuleのドキュメントページのstart(callback(array))のコードをそのままjsにコピーしnodeより実行しています。
    https://obniz.io/ja/sdk/parts/IRModule/README.md

    const Obniz = require("obniz")
    const obnizId = "xxxx-xxxx"
    const obniz = new Obniz(obnizId)
    var module = obniz.wired('IRModule', { vcc: 0, send: 1, recv: 2, gnd: 3 });
    module.start(function (arr) {
      console.log('detected!!')
      console.log(JSON.stringify(arr));
    })
    

    なお同コードをhtmlにて実行した場合は問題なく動作しております。


  • administrators

    @田中みそ さん

    プログラムありがとうございます!確認しました。

    obniz.onconnect = async function(){ ... } が抜けているようです。
    下記のように、obniz.onconnectで囲んで記載いただけるようお願いいたします。

    const Obniz = require("obniz")
    const obnizId = "xxxx-xxxx"
    const obniz = new Obniz(obnizId)
    obniz.onconnect = async function() {
      var module = obniz.wired('IRModule', { vcc: 0, send: 1, recv: 2, gnd: 3 });
      module.start(function (arr) {
        console.log('detected!!')
        console.log(JSON.stringify(arr));
      })
    };
    

    HTMLやobniz.js2.1.0で正常動作していたのは、
    const obniz = new Obniz(obnizId)var module = obniz.wired(...)の間でたまたまobnizとの接続が確立してしまっていたからかと思われます。
    どのタイミングでobnizとの接続が確立できるかは状況次第(PCやブラウザに依存もします)ですので、onconnectを使用いただけるようお願いいたします。



  • @kido さん

    解決方法をご教示頂きありがとうございます!
    onconnectを行えば問題なく動作しました。
    初歩的な問題で大変恐縮です…
    ありがとうございました!


 

Recent Projects

  • @nak435 かしこまりました。よろしくお願いします。

    read more
  • @Yuki-Sato さん、

    外部の3.3vを使うとはいえ普通にvccやgndを供給して問題なくうごくのであれば、弊社での動作確認後Flick Hatのライブラリとして公開できればと思っているのですがいかがでしょう。

    今週末に確認しますので、お待ちください。

    read more
  • @nak435 時間がかかってすいません、

    なんとか3.3vをgndにつないでFlick Largeを動かしたかったのですが、うまく動かすことができなかったです。
    3.3vをgndを繋がずに接続するというのはライブラリで推奨して伝えることは難しいと思ってます。

    Flick LargeでなくFlick Hatの方で、外部の3.3vを使うとはいえ普通にvccやgndを供給して問題なくうごくのであれば、弊社での動作確認後Flick Hatのライブラリとして公開できればと思っているのですがいかがでしょう。

    よろしくお願い致します。

    read more
  • @nak435 ありがとうございます。
    接続は3.3vのgnd以外同じでした。
    エラーはそのせいかもしれませんが、しかし電気的にはgndを繋がない場合3.3vとしてうまく供給できないはずなのでそこが不思議です。

    教えていただいたプログラムの部分を修正して試してみたいと思います。
    また少し時間がかかりそうなのですが、早めに試したいと思います。

    引き続きよろしくお願い致します。

    read more