Navigation

    obniz Developer's Community Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. Takayuki Oe
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Takayuki Oe

    @Takayuki Oe

    0
    Reputation
    10
    Posts
    496
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    Takayuki Oe Follow

    Best posts made by Takayuki Oe

    This user hasn't posted anything yet.

    Latest posts made by Takayuki Oe

    • RE: 赤外線リモコン

      グーグル・アシスタントとIFTTTを連携させて,Webhookでobnizのイベントを起動していて,IFTTTのWhat do you want the Assistant to say in response?で設定したレスポンスは正常に返っていますが,obnizのモニタは変化せず初期状態のままです.エラーは出ているかどうかがわかりません.また,WebhookのURLにブラウザでアクセスしてみると,正常に動作しているときも,動作しないとき( if(typeof done === "function"になっているとき )のいずれも{"status":"OK"}の表示が出ています.

      グーグル・アシスタント,IFTTTなど複数が連携してしているので,どこに問題があるのかを特定するのに,とても時間がかかりませした.たとえば,ブラウザから,request bodyを送り,イベントを起動させることができれば,この部分の違いからくることに早く気づけたのですが,その方法がわかりませんでした.

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe
    • RE: 赤外線リモコン

      ありがとうございます.

      if ( typeof done === "function" )
      { done();
      }

      たぶん,そのほうが正しいと感じていましたが,type of done === "function" だと,Saveするときはエラーにならないのですが,スクリプトは実行されなくなります.

      JavaScriptがよくわかっていないこともあって,この手のナゾは多いです.

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe
    • RE: 赤外線リモコン

      @Yuki-Sato

      ありがとうございました.安定して動作するようになりました.

      *緑のLEDを赤外線LEDと並列に配線してインジケータにしています.
      0_1540820771664_スクリーンショット 2018-10-29 22.44.25.png

      サンプルのプログラムをよく解読もできずに組み合わせているので,done()の使いかたや動作しているのかは,よくわかりませんでした.また,学習したデータが長くて,スクリプトに埋め込むのが大変なので,テレビなどの使うボタンがたくさんある機器への適用は断念しました.

      <!-- IR remote controll with google home and IFTTT -->

      <html>
      <head>
      <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@1.13.1/obniz.js"></script>
      </head>
      <body>

      <script>
      var obniz = new Obniz("OBNIZ_ID_HERE");
      obniz.onconnect = async function () {

      if (typeof req === "object") {
      var module = obniz.wired('IRModule', { vcc: 0, send: 1, recv: 2, gnd: 3 });
      module.dataSymbolLength = 0.05;

      if(req.body.tv) {
        module.send([
        1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
        // omitted 
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        ]);
      
      } else if (req.body.fan) {
        module.send([
        1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
        // omitted   
        0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
        ]);
      
      }
      

      }

      if (typeof on === "function") {
       done();
      

      }
      }
      </script>
      </body>
      </html>

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe
    • RE: 赤外線リモコン

      @Yuki-Sato

      適当な文字数で改行すると2セットを超えてもセーブできました.少し面倒ですが,エディタを使って,1行の文字数が制限されるようにして回避します.

      グーグルアシスタント,IFTTTと連携させて,設定したイベントを起動させるようにしているのですが,Obnizの初期状態(マトリックスコードが表示されている)状態からは,ほとんど失敗なく赤外線で機器を操作できるのですが,一度起動して,初期状態に戻る前にイベントを起動させると,ほとんど失敗します.

      この2つの状態でイベントを起動させたときの動作に違いがありますか?
      その回避のために,実行後ただちに初期状態に戻す方法はありますか?

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe
    • RE: 赤外線リモコン

      ブレッドボードでLEDに配線して確認したところ,安定して動作するようになりました.

      1行目が学習したデータ,2行目から学習した信号をLEDから送出してIRセンサで受信したデータです.また,上段がLEDをIRモジュール上に実装したときのデータ,下段がブレッドボード上に実装したときのデータです.また,配線したブレッドボードの写真を添付しておきました.

      学習したデータをスクリプトに書き込んでいくと,2セットまでは問題がないのですが,3セット目を書き込むとスクリプトがセーブできなくなります.文字数に制限があるのでしょうか.あるいは1行に書き込める文字数に制限があるのでしょうか.

      0_1540386615513_スクリーンショット 2018-10-24 21.51.24.png

      0_1540386585647_スクリーンショット 2018-10-24 22.09.14.png

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe
    • RE: 赤外線リモコン

      アドバイスありがとうございます.

      ブレッドボードで形式が同じ別の赤外線LEDを配線して試してみると,学習した信号と同じ信号が送信されるのが確認できました.この構成だと,サンプリング速度が大きいほど,学習と送出される信号の差がなくなります.

      また,LEDが1個だけなので輝度が足りず,機器の受光部に近づける必要がありますが,学習した信号を送出すると,どの機器でも確実に動作するようになりました.

      実施しようとしているのは,Googleアシスタントでの音声を使った家電製品の操作です.GoogleアシスタントーIFTTTーWebhookでObnizを起動して,ダミーのLEDをつけるところまでは,実装して動作を確認ずみだったのですが,赤外線リモコンの動作が不安定だったので,実装をあきらめかけていたところでした.

      部屋のなかに設置された家電製品を1か所からの赤外線の信号の送出で操作する必要があり,データシートによるとかなり指向性も強いようなので,3個程度の高輝度の赤外線LEDを使う必要があると思われます.次は,IRモジュールから,もとから付いているLEDを除去する,抵抗を調整するといったことを試そうと思います.結果は追ってポストします.

      添付は,学習した信号と別のLEDから送出した信号の比較です.それぞれが学習したデータ,プレイバックした信号の受信したデータの組みになっていて,dataSymbolLengthを変えても,リモコンを変えても,学習した信号が確実にプレイバックされているのがわかります.

      0_1540292683339_スクリーンショット 2018-10-23 20.02.04.png

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe
    • RE: 赤外線リモコン

      今日の調査結果を共有します.

      • 学習した信号と,それをLEDから送出してセンサで受信した信号を比較してみました.1/0のアレイをエクセルにペーストして,条件付き書式で1をオレンジ,0をグレーで表示しています.

      dataSymbolLength = 0.05の場合(データが長いので全体が表示できていません)

      • それぞれ上の行が学習したデータ,すぐ下の行がそれ送信してセンサで受信したデータです.上の2行(1行目と2行目)が機器が動作しなかったとき,下の2行(3行目と4行目)が動作したときのデータです.

      • まず,学習したデータ(1行目と3行目)を比較すると,機器が動作したときのほうが,”1”のデータの連続する部分がやや短いようですが,ほぼ同じ信号が学習されていることがわかります.

      • 次に,学習したデータとそれをLEDから送信してセンサで受信した信号を比較すると,機器が動作しなかったとき(2行目)は,学習したデータどおりになっていないことがわかります.

      0_1540212755810_スクリーンショット 2018-10-22 21.41.15.png

      dataSymbolLength = 0.12の場合

      • 一行目が学習したデータ,2行目から4行目が学習したデータを送信してセンサで受信したデータです.繰り返し同じ信号を送信してもセンサで受信している信号は毎回違い,学習したデータとも違うことがわかります.

      0_1540213641039_スクリーンショット 2018-10-22 21.51.24.png

      そのほかの情報

      • もとから付いているLED(3つの白い直方体)では,輝度が足りないようなので,リモコン用のLED(OSI5LA5113A,λ=940nm)を追加しています.機器の赤外線センサと直接向き合っていなくても,壁などの反射光で受信しているようです.

      • また,スマートホンのカメラで発光したときの色を見ると,もとのLEDは840nmのように思われました.

      • 同じスクリプトでも動作しなくなった.と書きましたが,変化点として,Obniz.jsのバージョンを1.12.2から1.13.0に変更していました.確認のため,もとに戻しましたが,状況は変化しませんでした.上のデータは,1.12.2で取得しました.

      0_1540214368521_IMG_20181022_221713.jpg

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe
    • RE: 赤外線リモコン

      @Takayuki-Oe said in 赤外線リモコン:

      (dataSymbolLength = 0.12;)にすると,ほぼ確実に学習できました.

      一度は,この設定で繰り返しテストしても問題なく動作していたのですが,次の日に同じスクリプトで赤外線のコマンドの読み取り,送出すると,dataSymbolLength = 0.12の設定で安定して動作していた機器は動作しなくなり,0.05の設定で動作していた機器のみ動作するようになりました.このとき,スクリプトを保存ができないことがあり,ネットワークへの接続が不安定になっていた可能性があります.いずれにしても,サンプリング周期が変動する可能性があるのでしょうか.

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe
    • RE: 赤外線リモコン

      リモコンの変調周期とObnizのロジックアナライザのサンプリング周期の組み合わせと関係があるみたいです.

      たいていのリモコンはロジックアナライザのサンプリング周期を120マイクロ秒(dataSymbolLength = 0.12;)にすると,ほぼ確実に学習できました.おそらく,多くのリモコンに使われているNECフォーマットの変調周期の562マイクロ秒の倍数になっていることが原因と思われます.

      もう1種類は,50マイクロ秒(dataSymbolLength = 0.05;)でもっとも学習しやすくなりますが,学習が成功する確率は1/2〜1/4程度でした.

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe
    • 赤外線リモコン

      IoTツールキットの赤外線センサで赤外線リモコンの信号を読み取り,そのデータを赤外線LED(波長940nm)から送出したとき,一部の電気製品は動作するのですが,それ以外は動作しません.どのような点をチェック,パラメタを変更すればいいのかご教示ください.

      posted in Beginner Questions/Discussion
      Takayuki Oe
      Takayuki Oe