obnizのフォーラムは新しいシステムに移行しております。

新しいフォーラムはこちらになります

Grove_Relayのプログラム例をご教示ください。



  • 超初心者です。
    M5stickCにGrove_Relayを接続して、リレーをONするだけのプログラムを作成したいのです。
    ①ブロックプログラムで可能でしょうか?
    ②JavaScript x obnizの記述例を教えてください。



  • @Bon
    間違っているかもしれませんが、回答させて頂きます。

    ①ブロックプログラム内では、予め指定されたブロックしか用いることが出来ないので、Grove_Relayのブロックが現在存在しないのでは利用することが出来ないと思います。

    ②こちらが最も簡単な、リレーをonにする方法です。

    // Javascript Example
    var grove_relay = obniz.wired("Grove_Relay", {gnd:0, vcc:1, signal:3});
    grove_relay.on();
    

    ご自身のJSファイル等で行われる際は、obnizに接続するIDやonconnect内でこちらを利用して下さい。
    詳しいGrove_Relayの使い方はこちらを見てもらえると解決すると思います。
    Grove_Relayの使い方
    また、こちらではobniz IDを入力させることでパーツライブラリを利用できるでのお試し下さい。



  • @高橋-駿
    早々にありがとうございます!
    ①ブロックプログラム
    なるほどありがとうございます。

    ②リレーをonにする方法
    Grove_Relayの使い方を参考に同じように記述してみたのですが、エラーが出て動作しませんでした。
    恐らく記述の仕方が間違っているのですね・・・。
    夜もう一度試してみます。



  • @Bon

    どんなエラーが出たか、エラーの内容も記載いただけるともう少しサポートできそうです。

    Grove_Relayはobniz.js 3.14.0にて入ったパーツなので、それより以前のobniz.jsで使用しようとするとエラーになります。



  • @kido

    ありがとうございます。
    かしこまりました。確認してアップ致します。



  • @kido

    プログラムの記述方法に自信はありませんが、

    Uncaught TypeError: Cannot read property 'drive' of undefined
    Object
    message:"Uncaught TypeError: Cannot read property 'drive' of undefined"
    url:"https://unpkg.com/obniz@3.x/obniz.js"
    line:2049
    colmun:32
    error:TypeError{}

    と表示されました。よろしくお願いいたします。



  • ありがとうございます、
    もしかして、obniz.onconnect = async ( ){ ... } の外側でobniz.wiredをされていないでしょうか。

    obniz.wired等のobnizへの命令は、obnizと接続状態である必要があり、obniz.onconnect = async ( ){ ... } の内側で使う必要があります。

    こちらのサンプルをご参考ください
    https://obniz.com/ja/doc/reference/board-1y/quick-start/quick-start



  • @kido

    ありがとうございます。
    <html>
    <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script src="https://unpkg.com/obniz@3.x/obniz.js" crossorigin="anonymous" ></script>
    </head>
    <body>
    <div id="obniz-debug"></div>
    <script>
    var obniz = new Obniz.M5StickC("OBNIZ_ID_HERE");

      obniz.onconnect = async function() {
    
      // Javascript Example
      var grove_relay = obniz.wired("Grove_Relay", {gnd:0, vcc:1, signal:3});
      grove_relay.on();  
    
      };
      
    </script>
    

    </body>
    </html>
    こんな感じになるでしょうか?
    実行するとエラーになります・・・。
    すみません。



  • 間違っているかもしれませんが、ご回答させて頂きます。

    var obniz = new Obniz.M5StickC("OBNIZ_ID_HERE");
    

    ではなく、

    var obniz = new Obniz("OBNIZ_ID_HERE");
    

    ではどうでしょうか?



  • @高橋-駿
    ありがとうございます。

    試してみましたがダメでした・・・



  • ご確認して欲しいことが2点あります。

    ①他のパーツ、例えばLEDを点滅されるプログラムは正常に動いているでしょうか?

    ②こちらのページ内で、Grove_Relayの使い方
    ブラウザにIDをお入れ頂いて動かす方法でも動かない、
    クリックして表示されるブラウザでもエラーが発生していますでしょうか?
    また、エラー内容は以前ご教示頂いたエラーとお変わりありませんか?

    また、こちらは別のパーツですがGroveを使った例です。
    ご参考になれば幸いです。
    Groveのデジタル入力



  • @高橋-駿
    返信が遅れて申し訳ありません。
    もうあきらめて、M5Stickcに別のプログラムを入れて、テストしていました。
    もう一度obnizOSを書き込んで試そうとしたのですが、今度は起動画面も表示しなくなってしまいました・・・

    また時間ができたらやってみます。
    すみません。



SUGGESTED TOPICS