Navigation

    obniz Developer's Community Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    1. Home
    2. Yuichi Ishii
    Y
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Yuichi Ishii

    @Yuichi Ishii

    0
    Reputation
    8
    Posts
    359
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    Yuichi Ishii Follow

    Best posts made by Yuichi Ishii

    This user hasn't posted anything yet.

    Latest posts made by Yuichi Ishii

    • RE: ArduCAMMini OV2640 2MP サンプルで動かない

      お世話になっています。

      さきほど、Aruduinoにて動作確認を行ったとろろ、エラーが発生しました。以前から、何度か動作確認を行っていますので、Arducom Mini 2MP側で不具合があるということになります。
      申し訳ありませんが、一旦これでこの課題は終了とさせていただきたいと思います。
      大変ありがとうございました。
      また、なにかありましたらご相談させていただきます。

      石井@行田

      posted in Beginner Questions/Discussion
      Y
      Yuichi Ishii
    • RE: ArduCAMMini OV2640 2MP サンプルで動かない

      ありがとうございます。
      OS :win10  64bit Web:Google Chromになります。
      どうもおかしいので、自己診断をしてみたところ、
      obniz idを入れたところ、テスト結果にIDを出力して何も表示されませんでした。browserでF-12キーでログ表示したころ以下のようなエラーメッセージを表示。再現します。

      どこか壊したのかもしれませんので、少し整理して考えてみたいと思います。
      (1)自己診断結果については、以前は、各ポートごとに問題がないか表示されていたように記憶しています。こちらのハードの不具合化しているのかの確認。
      何か確認すべきことがあればコメントお願いします。

      (2)Obniz本体のI2c通信での不具合の可能性については、一度Arduinoでの動作確認等を行ってみたいと思います。その後は、動くところと動かないところの確認を進めていきます。

      お世話をおかけいたします。

      石井@行田

      --- log by F12 key on Google Chrome ---

      Uncaught Error: Error: firmware 2.0.0 needs obniz.js version 2.0.0 or higher. see https://obniz.io/doc/hw_firmware
      at Obniz.error (obniz.js:8553)
      at Obniz.notifyToModule (obniz.js:8519)
      at Obniz.wsOnMessage (obniz.js:7660)
      at Obniz.<anonymous> (obniz.js:7742)
      error @ obniz.js:8553
      notifyToModule @ obniz.js:8519
      wsOnMessage @ obniz.js:7660
      (anonymous) @ obniz.js:7742

      posted in Beginner Questions/Discussion
      Y
      Yuichi Ishii
    • RE: ArduCAMMini OV2640 2MP サンプルで動かない

      早々のreplyありがとうございます。
      sampleプログラムを以下のように修正し、TypeErrorはなくなり、SPIのデータ転送が行われました。
      しかしhtmlにimageは表示されませんでした。
      また転送byte数表示は image size=8200byte。 init()ではsetsize(320x240)なので少々少ないのでは。(よくわかっていません) もう少し追いかけてみます。できることがありましたらコメントいただければ幸いです。
      石井@行田

      <!-- HTML Example -->
      <html>
      <head>
      <meta charset="utf-8">
      <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@2.0.0/obniz.js"></script>
      </head>
      <body>

      <div id="obniz-debug"></div>
      <img id="image">

      <script>
      var obniz = new Obniz("OBNIZ_ID_HERE");
      obniz.onconnect = async function () {
      obniz.io11.output(true);
      var cam = obniz.wired("ArduCAMMini", { cs:0, mosi:1, miso:2, sclk:3, gnd:4, vcc:5, sda:6, scl:7, spi_frequency:1000000 });

      await cam.spi_pingpongWait();
      cam.setMode('MCU2LCD');
      const chipid = await cam.getChipIdWait();
      if (chipid != 0x2642) {
      throw new Error('unknown chip ' + chipid)
      }
      cam.init();

      cam.flushFIFO();
      cam.flushFIFO();
      cam.startCapture();
      while (true) {
      if ((await cam.isCaptureDoneWait())) { break; }
      }
      const jpegData = await cam.readFIFOWait();

      console.log("image size = " + jpegData.length + " bytes");

      const base64 = cam.arrayToBase64(jpegData);
      document.getElementById("image").src = "data:image/jpeg;base64, " + base64;

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

      posted in Beginner Questions/Discussion
      Y
      Yuichi Ishii
    • RE: ArduCAMMini OV2640 2MP サンプルで動かない

      お世話になっています。
      ファームウエアのバージョンアップありがとうございます。
      ArduCamMiniでの関連部分につきまして、確認してみました。
      1)Frequency及びdriveの確認:frequenctについては2MでSPIのregisterへのwrite/readはOKになりました。(まだ不安定なんで今のところ、1Mに設定しています。)driveは電圧確認でOKです。ご対応ありがとうございました。
      2)ただ、画像を表示する、最初のサンプルコードは、htmlへの表示ができませんでした。個別のサンプルプログラムでチェックしましたところ、[await]isCaptureDoneWait()関数でエラーとなっています。
      GoogleChrome F12でのLog表示で(TypeError: this.isCaptureDoneWait is not a function at Obniz.obniz.onconnect)。
      できる範囲での確認ですが、取り急ぎご報告いたしました。

      石井@行田

      posted in Beginner Questions/Discussion
      Y
      Yuichi Ishii
    • RE: ArduCAMMini OV2640 2MP サンプルで動かない

      ありがとうございます。
      getFreeSPI()の関数にテストしました。
      frequency : "4M", drive:"5v" ではloopbalkでエラーでしたが、
      drive:"3v",の場合frequency:"2M","1M"で動作確認できました。

      先日オシロ(100Mhz,1Ghzサンプル,2ch)が調達できましたので、いろいろ条件を変えた所、4Mhz時は専用の5V電源のほうが安定。オシロプローブを付けたほうが成功確率が高いなど、不安定要素があるようです。ArduCAMMiniのいろいろ関数を個別に使ってみましたが、4Mhz, 3V でも不安定になるよです。しかし残念ながら、本質的なタイミング上の問題を再現、理解でいていません。
      ご指摘のようにspiオブジェクトを使ってみます。ただ初心者なので、少し勉強しながら進めていきます。
      ご支援ありがとうございます。

      石井@行田

      posted in Beginner Questions/Discussion
      Y
      Yuichi Ishii
    • RE: ArduCAMMini OV2640 2MP サンプルで動かない

      お世話になります。
      問題がありましたので、ご確認上教えていただければ幸いです。
      下記に実行したプログラムとログです。
      spiのclock(プログラムではfrequency、ログ上ではclockと表示している)を1000000に変更してみましたがprogram内指定の4000000で変更されていません。defaultでは3vのdrive()のパラメータを5vに変更してみましたが、Obnizeがsendした内容では変更されていません。

      恐縮ですが、オシロはありませんので、現物信号をみてはいません。
      宜しくお願い申しあげます。

      石井@行田

      <!-- HTML Example -->
      <html>
      <head>
      <meta charset="utf-8">
      <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@latest/obniz.js"></script>
      </head>
      <body>

      <div id="obniz-debug"></div>
      <img id="image">

      <script>
      var obniz = new Obniz("OBNIZ_ID_HERE");
      obniz.debugprint = true;
      obniz.onconnect = async function () {
      obniz.io11.output(true);
      var cam = obniz.wired("ArduCAMMini", { cs:0, mosi:1, miso:2, sclk:3,frequency:1000000, drive:"5v", gnd:4, vcc:5, sda:6, scl:7 });
      await cam.spi_pingpongWait()
      }
      </script>
      </body>
      </html>

      Obniz: connected to ws://192.168.10.8
      Obniz: send: [{"io11":true}]
      Obniz: send: [{"io5":{"output_type":"push-pull5v"}}]
      Obniz: send: [{"io5":true}]
      Obniz: send: [{"io4":{"output_type":"push-pull5v"}}]
      Obniz: send: [{"io4":false}]
      Obniz: send: [{"io0":true}]
      Obniz: send: [{"system":{"wait":100}}]
      Obniz: send: [{"io3":{"output_type":"push-pull3v"}}] !!! push-pull5vに変更されていない!!!!
      Obniz: send: [{"io1":{"output_type":"push-pull3v"}}] !!! push-pull5vに変更されていない!!!!
      Obniz: send: [{"io2":{"output_type":"push-pull3v"}}] !!! push-pull5vに変更されていない!!!!
      Obniz: send: [{"io3":{"pull_type":"float"}}]
      Obniz: send: [{"io1":{"pull_type":"float"}}]
      Obniz: send: [{"io2":{"pull_type":"float"}}]
      Obniz: send: [{"io4":false}]
      Obniz: send: [{"display":{"pin_assign":{"4":{"module_name":"spi0","pin_name":"gnd"}}}}]
      Obniz: send: [{"spi0":{"mode":"master","clock":4000000,"clk":3,"mosi":1,"miso":2}}]
                              !!!! clock:1000000に変更されていない!!!
      Obniz: send: [{"io6":{"output_type":"open-drain"}}]
      Obniz: send: [{"io7":{"output_type":"open-drain"}}]
      Obniz: send: [{"io6":{"pull_type":"pull-up5v"}}]
      Obniz: send: [{"io7":{"pull_type":"pull-up5v"}}]
      Obniz: send: [{"io4":false}]
      Obniz: send: [{"display":{"pin_assign":{"4":{"module_name":"i2c0","pin_name":"gnd"}}}}]
      Obniz: send: [{"i2c0":{"sda":6,"scl":7,"mode":"master","clock":100000}}]
      Obniz: send: [{"display":{"pin_assign":{"0":{"module_name":"Cam","pin_name":"cs"},"1":{"module_name":"Cam","pin_name":"mosi"},"2":{"module_name":"Cam","pin_name":"miso"},"3":{"module_name":"Cam","pin_name":"sclk"},"4":{"module_name":"Cam","pin_name":"gnd"},"5":{"module_name":"Cam","pin_name":"vcc"},"6":{"module_name":"Cam","pin_name":"sda"},"7":{"module_name":"Cam","pin_name":"scl"}}}}]
      Obniz: send: [{"io0":false}]
      Obniz: send: [{"spi0":{"data":[128,85],"read":false}}]
      Obniz: send: [{"io0":true}]
      Obniz: send: [{"io0":false}]
      Obniz: send: [{"spi0":{"data":[0,0],"read":true}}]
      Obniz: send via local
      Obniz: recvd via local
      Obniz: {"spi0":{"data":[31,255]}}
      Obniz: send: [{"io0":true}]
      Error: spi bus fail
      Obniz: send via local

      以上

      posted in Beginner Questions/Discussion
      Y
      Yuichi Ishii
    • RE: ArduCAMMini OV2640 2MP サンプルで動かない

      早々にありがとうございます。

      昨日までの進捗をまずはご連絡いたします
      1)csの件:理解しました。aruduinoのスケッチからLOW true信号と判断して進めました。

      2)プログラムからの問題調査

      下記のプログラムを実行すると、await cam.spi_pingpongWait()関数でエラーになります。
      spi_pingpongWait()関数では、spiのtest register(0x00)へ0x55をwriteしてreadして正しいかどうかのテストをしています。
      この時readで0x55ではない値のため、throw new ERROR('spi bus error')となります。帰ってくるreadデータは、不定。
      直接原因は分かりました。

      <!-- HTML Example -->
      <html>
      <head>
      <meta charset="utf-8">
      <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@latest/obniz.js"></script>
      </head>
      <body>

      <div id="obniz-debug"></div>
      <img id="image">

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

      obniz.io11.output(true);
      var cam = obniz.wired("ArduCAMMini", { cs:0, mosi:1, miso:2, sclk:3, gnd:4, vcc:5, sda:6, scl:7 });
      await cam.spi_pingpongWait()
      }
      </script>
      </body>
      </html>

      3)ご指摘の通り、電源周りの問題がありようなので、ご指示通りおこなう。
      3-1) IO11をvccに接続。
      何度か、電源投入手順等変更しながらですが、一度成功しましたが、それ以外は失敗。

      3-2) Obnizのvcc/gndのスルーホールにピンを立て、そこからArduCamMiniへcvv/gnd供給をする。
      すべて失敗でした。

      現状での結論
      プログラムとしては問題はないと思います。(一度成功している)
      SPI接続のハード上の問題(漠然としていますが)

      これから
      Obniz + ArduCamMinの+5Vの供給は2Aあり電流計測では02A程度ですので容量的に問題ありません
      オシロスコープとか持っておりませんので、いろいろトライしてみますが、進捗は期待できません。

      原因推定の想定から知りたいことでは、
      spi通信も転送モードはあっているのか?(arducamminiはmode0)
      現象から、クロックとデータのマージンが少ない、あるいはgndレベルが上がっているとの想定です。

      確認していただきたいことがあれば指示いただければ、やってみたいとおもいますのでよろしくお願いします。

      石井@行田

      posted in Beginner Questions/Discussion
      Y
      Yuichi Ishii
    • ArduCAMMini OV2640 2MP サンプルで動かない

      お世話になります
      AuduCAMMiniのサンプルが、応答がなく動きませんので調査しています。
      関数テストが色々ご用意されていますが、課題を代表的に表している(と思っています)
      [await] spi_pingpongWait() の関数テストにて再現しますのでこれにてご説明します。
      「obniz.debugprint = true」を追加して実行、Chromのconsoleでの表示をおこなうと
      下記のようになります。

      Obnizのdebugprint()は、エラー表示等はありませんが、ChromeのWeb consoleには、
      「Uncaught (in promise) TypeError: n.stack.match is not a function」以下エラー発生表示になっています。

      なお、ArduCAMMini OV2640 2MPについて、Camera TutorialのサイトからArduino Uno R3,Win10の環境にて、
      functions testとVdeo_streamingのスケッチを入れて実行、正常動作を確認しました。

      疑問点があります。問題でしょうか?

      CS=false状態でspi0へデータを送っている。
      02:23:56 Obniz: send: [{"io0":true}]
      02:23:56 Obniz: send: [{"io0":false}]
      02:23:56 Obniz: send: [{"spi0":{"data":[0,0],"read":true}}]

      また、事前に確認すべきことがありましたら、教えていただきたいとおもいます。
      まだ不慣れですができるだけ対応していきます。

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

      石井@行田

      -------- [1] Obniz debugprint log -------------------------------

      02:23:56 Obniz: send: [{"io4":false}]
      02:23:56 Obniz: send: [{"io0":true}]
      02:23:56 Obniz: send: [{"system":{"wait":100}}]
      02:23:56 Obniz: send: [{"io3":{"output_type":"push-pull3v"}}]
      02:23:56 Obniz: send: [{"io1":{"output_type":"push-pull3v"}}]
      02:23:56 Obniz: send: [{"io2":{"output_type":"push-pull3v"}}]
      02:23:56 Obniz: send: [{"io3":{"pull_type":"float"}}]
      02:23:56 Obniz: send: [{"io1":{"pull_type":"float"}}]
      02:23:56 Obniz: send: [{"io2":{"pull_type":"float"}}]
      02:23:56 Obniz: send: [{"io4":false}]
      02:23:56 Obniz: send: [{"display":{"pin_assign":{"4":{"module_name":"spi0","pin_name":"gnd"}}}}]
      02:23:56 Obniz: send: [{"spi0":{"mode":"master","clock":4000000,"clk":3,"mosi":1,"miso":2}}]
      02:23:56 Obniz: send: [{"io6":{"output_type":"open-drain"}}]
      02:23:56 Obniz: send: [{"io7":{"output_type":"open-drain"}}]
      02:23:56 Obniz: send: [{"io6":{"pull_type":"pull-up5v"}}]
      02:23:56 Obniz: send: [{"io7":{"pull_type":"pull-up5v"}}]
      02:23:56 Obniz: send: [{"io4":false}]
      02:23:56 Obniz: send: [{"display":{"pin_assign":{"4":{"module_name":"i2c0","pin_name":"gnd"}}}}]
      02:23:56 Obniz: send: [{"i2c0":{"sda":6,"scl":7,"mode":"master","clock":100000}}]
      02:23:56 Obniz: send: [{"display":{"pin_assign":{"0":{"module_name":"Cam","pin_name":"cs"},"1":{"module_name":"Cam","pin_name":"mosi"},"2":{"module_name":"Cam","pin_name":"miso"},"3":{"module_name":"Cam","pin_name":"sclk"},"4":{"module_name":"Cam","pin_name":"gnd"},"5":{"module_name":"Cam","pin_name":"vcc"},"6":{"module_name":"Cam","pin_name":"sda"},"7":{"module_name":"Cam","pin_name":"scl"}}}}]
      02:23:56 Obniz: send: [{"io0":false}]
      02:23:56 Obniz: send: [{"spi0":{"data":[128,85],"read":false}}]
      02:23:56 Obniz: send: [{"io0":true}]
      02:23:56 Obniz: send: [{"io0":false}]
      02:23:56 Obniz: send: [{"spi0":{"data":[0,0],"read":true}}]
      02:23:56 Obniz: send via local
      02:23:56 Obniz: recvd via local
      02:23:56 Obniz: {"spi0":{"data":[0,106]}}
      02:23:56 Obniz: send: [{"io0":true}]
      02:23:56 Obniz: send via local

      ------- [2] log on console of Chrome ---------------------------------

      Obniz: connecting to wss://1.ws.obniz.io/obniz/xxxx-xxxx/ws/1?obnizjs=1.15.2&accept_binary=true
      Obniz: ws connected
      Obniz: {"ws":{"ready":true,"obniz":{"firmware":"1.1.0"},"local_connect":{"ip":"192.168.10.8"}}}
      Obniz: send: [{"ws":{"reset_obniz_on_ws_disconnection":true}}]
      Obniz: local connect to ws://192.168.10.8
      Obniz: connected to ws://192.168.10.8
      Obniz: send: [{"io11":true}]
      Obniz: send: [{"io5":{"output_type":"push-pull5v"}}]
      Obniz: send: [{"io5":true}]
      Obniz: send: [{"io4":{"output_type":"push-pull5v"}}]
      Obniz: send: [{"io4":false}]
      Obniz: send: [{"io0":true}]
      Obniz: send: [{"system":{"wait":100}}]
      Obniz: send: [{"io3":{"output_type":"push-pull3v"}}]
      Obniz: send: [{"io1":{"output_type":"push-pull3v"}}]
      Obniz: send: [{"io2":{"output_type":"push-pull3v"}}]
      Obniz: send: [{"io3":{"pull_type":"float"}}]
      Obniz: send: [{"io1":{"pull_type":"float"}}]
      Obniz: send: [{"io2":{"pull_type":"float"}}]
      Obniz: send: [{"io4":false}]
      Obniz: send: [{"display":{"pin_assign":{"4":{"module_name":"spi0","pin_name":"gnd"}}}}]
      Obniz: send: [{"spi0":{"mode":"master","clock":4000000,"clk":3,"mosi":1,"miso":2}}]
      Obniz: send: [{"io6":{"output_type":"open-drain"}}]
      Obniz: send: [{"io7":{"output_type":"open-drain"}}]
      Obniz: send: [{"io6":{"pull_type":"pull-up5v"}}]
      Obniz: send: [{"io7":{"pull_type":"pull-up5v"}}]
      Obniz: send: [{"io4":false}]
      Obniz: send: [{"display":{"pin_assign":{"4":{"module_name":"i2c0","pin_name":"gnd"}}}}]
      Obniz: send: [{"i2c0":{"sda":6,"scl":7,"mode":"master","clock":100000}}]
      Obniz: send: [{"display":{"pin_assign":{"0":{"module_name":"Cam","pin_name":"cs"},"1":{"module_name":"Cam","pin_name":"mosi"},"2":{"module_name":"Cam","pin_name":"miso"},"3":{"module_name":"Cam","pin_name":"sclk"},"4":{"module_name":"Cam","pin_name":"gnd"},"5":{"module_name":"Cam","pin_name":"vcc"},"6":{"module_name":"Cam","pin_name":"sda"},"7":{"module_name":"Cam","pin_name":"scl"}}}}]
      Obniz: send: [{"io0":false}]
      Obniz: send: [{"spi0":{"data":[128,85],"read":false}}]
      Obniz: send: [{"io0":true}]
      Obniz: send: [{"io0":false}]
      Obniz: send: [{"spi0":{"data":[0,0],"read":true}}]
      Obniz: send via local
      Obniz: recvd via local
      Obniz: {"spi0":{"data":[0,106]}}
      Obniz: send: [{"io0":true}]

      Uncaught (in promise) TypeError: n.stack.match is not a function
      at Object.parse (logger.min.js?rev=b4a1fcd13b763a55cbf867530711284c4a212284:1)
      at logChecker.<anonymous> (logger.min.js?rev=b4a1fcd13b763a55cbf867530711284c4a212284:1)
      at promise.catch.err (VM894 obniz.js:8044)
      parse @ logger.min.js?rev=b4a1fcd13b763a55cbf867530711284c4a212284:1
      (anonymous) @ logger.min.js?rev=b4a1fcd13b763a55cbf867530711284c4a212284:1
      promise.catch.err @ obniz.js:8044
      Promise.catch (async)
      _callOnConnect @ obniz.js:8043
      _callOnConnect @ obniz.js:8525
      _callOnConnect @ obniz.js:8649
      ws.onopen @ obniz.js:7940

      Obniz: send via local

      posted in Beginner Questions/Discussion
      Y
      Yuichi Ishii