西東京市にいる組み込みおやじ-電子工作、回路設計、ファーム TIPS

このブログはビーコンの代表である菅原が、電気電子、電子工作、組み込みソフトウェアなどで、自分が苦労したところや面白い気づきなどを記事にしていきます。電子工作やマイコンに親しむ人が少しでも増えたらという思いでつづります。
やっぱり、電子工作が好きなんですよ。
UP mini2 ES 使ってみて レビュー
0

    JUGEMテーマ:3Dプリンタ

     

    最近 3Dプリンタを導入。

    TierTimeの UP mini2 ES 

    出来合いのケースだと具合が悪い時に、ちょっとケースを作るような用途を考えている。

    なぜこれにしたかというと、数年前にも3Dプリンタ導入を考えていて、この時に、薦められたのが、この会社の UP plus2 だった。

    なにかお勧めかというと、自分であれこれ調整しなくても、普通にきれいに出力されるということにつきる。

     

    安い価格帯の3Dプリンタは自分で組み立てしなければならない。これもなかなかトラブルが多そうだ。腕に自信があれば自作でもいいけど、自信はない。っていうか、こういうの凝りだすと時間が無限にかかるが、そんな時間がない。

    あと、安い価格帯だとフィラメントが PLAしか対応していない物もおおい。

     

    最初はこれにしようと思った。しかし発売時期から年月も経っているし UP mini2 ES 発売直後だったし、ケースもついていて、おしゃれということもあり、また、出力のサイズはそんなに大きなものは不要であろうということでこれにした。

    普通に検索で最初に表示されるサンステラから購入した。

     

    初めての3Dプリンタで他社の比較もできないのでどうかなということもあるけど、思ったことを書き留めておこう。

     

    ・サンステラさん サポートがいい。問い合わせすると当日から翌日で回答をいただけることが多い。

     

    ・マニュアルについては、もうちょっと丁寧な方がいい。もっとも、深くするとUP mini2 ESのマニュアルというよりも 3Dプリンタの教科書になってしまうかもしれないので、ほどほどにしておいて、サポート充実という考えなのかもしれない。

     

    ・UP mini2 ESはフレキシブルな素材には対応していない。PolyFlex など柔らかい材質を使いたい場合は上位機種でないと対応できない。

     

    ・LCDだけと、いくつかのWeb上の写真ではカラーLCDになっているけれど、こちらにあるのはモノクロ

    →モノクロと思っていたが、普段出ている画面はモノクロだけど、カラーの画面もありました。

     

    ・PCとUSBで接続するが、接続がうまくいかないことがある。

     

    ・アップデートファイルを入れたUSBメモリを挿入して起動すると、ファームウェアのアップデートをする。

     

    ・ファームウェアのアップデートは頻繁に行われている模様で、マニュアルと実物で 本体LCDの表示やアプリの表示がずいぶん違

    うところもある。

     

    ・ちゃんと決まった時には、素晴らしい出力になる。

     

    ・ファームウェアの完成度がいまいちで、連続出力していると、タッチパネルが応答しなくなることが、結構頻発する。そんな時でも、出力はきちんとできたりする。

     

    ・PCの専用アプリ UP Studio であるが、出来がいまいちな感じがする。

     

    ・純正のパーツ、フィラメントはやや高いなと思う。

     

    ・Web上ではレビューとか情報が少ない。

     

    ・装置内にHEPAフィルターを装備していて、においはかなり抑えられているのではないか。オフィスで動作させるときには、これはありがたいだろう。

     

    ・サポートは薄くてはがしやすい。

     

    不満のなかには、私の知識経験の不足から起因するものもあるだろう。また、今後のアップデートで改善してくれるのではないかと期待する。

     

    高さの調整をきちんとするやり方がわかるまでは、せっかく作ってもはがれてしまったりと、なかなか思う通りにいかないこと多かった。そんなときに Webで検索すると、別の3Dプリンタの記事や動画がでてきて、きれいに出力されているのを見ると、こちらもいいかなと目移りしてしまう。3Dプリンタには沼がある。これから本当に自分にあった3Dプリンタに出会うまでずぶずぶと埋もれてしまう予感もある。

     

    総評として、

    純正のフィラメントを使って、普通に出力すればかなりいい感じの3Dプリンタなのだろうと思う。

     

     

     

    | ビーコン菅原 | 3Dプリンタ | 12:08 | comments(0) | trackbacks(0) |
    海外部品通販 届くのが早くなった。
    0

      最近 海外の部品通販が届くのが速くなった。

      先日MOUSER も 日本で朝2時くらいに出荷通知がきて、三日目に届いた。

      RSコンポーネンツも 海外在庫は 中4日ということだが、どうも 3日ぐらいで届いている。

      たぶん DIGI-KEYも早くなっているだろう。

       

      インポートスキャンのスピードアップがされたのではないかと思う。

      そうなると チップワンストップの外部倉庫品よりも早く到着する。

       

      これ以上早くなるのは無理かもしれないけど、早く届くことはありがたい。

      | ビーコン菅原 | 部品調達 | 17:13 | comments(0) | trackbacks(0) |
      MISUMIのWeb設計ハーネスプラス クレジットカード決済だと注文できない
      0

        MISUMI で ハーネス製作サービスをやっている。

         

        サービスの名称は Web設計ハーネスプラス という。

         

        部品を使用しているハーネス、ケーブルなどを Web上で設計できて、オーダーできる。

        うちで使おうとしているハーネスも 適当に使用するコネクタを決めるとそれに合う電線もリストしてくれるので、あまり間違いがない。しいて言えば、 長さがミリ単位だけどついつい センチメートル単位で指定したりして、長さが全然違うということがあり、これは自分だけかもしれないけれども、図面上では、長さについては 数字だけで、それに合わせてケーブルとコネクタの大きさの比率が違うわけではないので間違えに気づきにくい。

         

        このように、客先に提出できるような形式で図面が用意されるのでありがたい。

        価格もリーズナブルに思うし、納期も妥当だと思う。

         

        で、ここで決済方法だが、注意しないといけないのは クレジットカード決済だと 注文しても後日 クレジットカードでは受け付けられませんというメールが届く。

         

        MISUMIの場合、決済方法は登録時に決定されると、変更することができない。

        それであるならば クレジットカードの人は Web設計ハーネスに移行する意味がないのだけど、

        クレジット決済のアカウントでもなぜか Web設計ハーネスプラスの画面に行けて

        なおかつ 設計できて

        なおかつ 見積もりで価格と納期が提示されて

        なおかつ 依頼をかけられる。

        だけど、翌日 18:00頃に クレジットでは注文できないというメールが来るのだ。

         

        Web設計ハーネスプラスを利用するには、銀行振り込みでないとダメみたい。

         

        あまりに謎な感じなので、MISUMIに問い合わせしたが、システムの都合でなんともならないそうだ。

         

        うちは最初は銀行振り込みのアカウントだけだったが、末締め末払いで支払うのが手間がかかったり忘れてしまったりということがあり、クレジットのアカウントも追加していて、すべての購入はこのアカウントでしていた。しかし、このためだけに休眠状態だった銀行振り込みのアカウントを復活させた。

         

        MISUMIではほかにもケースをオーダーできたりするサービスもあったりするが、おそらく、銀行振り込みでないとだめなのであろう。

         

        これは、2018年12月現在の状況で、いつかはクレジットにも対応してくれると思うけど、早いところ対応してほしいものです。

        | ビーコン菅原 | 部品調達 | 22:23 | comments(0) | trackbacks(0) |
        ble_nus_data_send() の送信タイミング
        0

          JUGEMテーマ:組み込み開発

           

          nRF5_SDK_15.2

          softdevice6.10

           

          とりあえず、BLEでデータを送受信する場合 NordicのSDKの ble_nus を使うのが簡単。

          しかしながらうかつにble_nus_data_send()関数をコールするとハングアップしてしまう。

          nus_data_handler の引数 ble_nus_evt_t * p_evt->type はサンプルでは BLE_NUS_EVT_RX_DATA しかないが実際には

           

          BLE_NUS_EVT_RX_DATA //データを受信した

          BLE_NUS_EVT_TX_RDY  //送信可能状態になった

          BLE_NUS_EVT_COMM_STARTED //ble_nus 接続した

          BLE_NUS_EVT_COMM_STOPPED // ble_nus 切断した

           

          の四つのタイプがある。

          これらで BLE_NUS_EVT_COMM_STARTED がきたら ble_nus_data_send()することができる。

          ble_nus_data_send()後、BLE_NUS_EVT_TX_RDYで送信完了を確認するまでは ble_nus_data_send()をコールできない。

           

          ◆元のサンプルソース

          static void nus_data_handler(ble_nus_evt_t * p_evt)
          {

              if (p_evt->type == BLE_NUS_EVT_RX_DATA)
              {
                  uint32_t err_code;

                  NRF_LOG_DEBUG("Received data from BLE NUS. Writing data on UART.");
                  NRF_LOG_HEXDUMP_DEBUG(p_evt->params.rx_data.p_data, p_evt->params.rx_data.length);

                  for (uint32_t i = 0; i < p_evt->params.rx_data.length; i++)
                  {
                      do
                      {
                          err_code = app_uart_put(p_evt->params.rx_data.p_data[i]);
                          if ((err_code != NRF_SUCCESS) && (err_code != NRF_ERROR_BUSY))
                          {
                              NRF_LOG_ERROR("Failed receiving NUS message. Error 0x%x. ", err_code);
                              APP_ERROR_CHECK(err_code);
                          }
                      } while (err_code == NRF_ERROR_BUSY);
                  }
                  if (p_evt->params.rx_data.p_data[p_evt->params.rx_data.length - 1] == '¥r')
                  {
                      while (app_uart_put('¥n') == NRF_ERROR_BUSY);
                  }
              }

          }
           

           

          ◆p_evt->type を switch文で処理してみた。各処理の中身は各自コーディングしてください。

          static void nus_data_handler(ble_nus_evt_t * p_evt)
          {
              uint32_t err_code;
              switch(p_evt->type){
                  case BLE_NUS_EVT_RX_DATA:

                  //データ受信の処理

                      break;

           

                  case BLE_NUS_EVT_TX_RDY:       /**< Service is ready to accept new data to be transmitted. */

                  //データ送信完了

               // ble_nus_data_send()関数でデータ送信した後、送信できる状態になった

                      break;

           

                  case BLE_NUS_EVT_COMM_STARTED: /**< Notification has been enabled. */

               // BLE_NUS が接続した。ble_nus_data_send()関数で送信できるようになった。

                      break;
                  case BLE_NUS_EVT_COMM_STOPPED: /**< Notification has been disabled. */

               // BLE_NUS が切断した。

                      break;
              }
          }

           

          | ビーコン菅原 | nRF5x Nordic | 19:14 | comments(0) | trackbacks(0) |
          nrf_fstorage_write の lenは4の倍数で
          0

            JUGEMテーマ:組み込み開発

             

            nRF5_SDK_15.2

            softdevice6.10

             

            Nordic提供のSDKには FlashROMのライブラリも提供されている。

            FlashROM関係の関数はSDKのバージョンによりかなり変化する。

            nRFのコンパクトさを生かすのに、外部の不揮発メモリを搭載することはしたくない。

            新しいSDKにする時の作業としてFlashROMのアクセスができるようにすることは欠かせない。

             

            いままでは Softdeviceを使うときとそうでないときで、違う関数をコールしていた。

            ble通信中に、一つのところでループして終了を待つみたいなことができないからだ。

             

            15.2ではSoftdeviceを使うときとそうでないときで同じ関数をコールすればよいようになっている。

            softdeviceを用いたときには

             nrf_fstrage.c と nrf_fstrage_sd.c をコンパイルする。

            そうでないときには

            nrf_fstrage.c と nrf_fstrage_nvmc.c をコンパイルする。・・と思う。

             

            (私は softdevieの方しか作っていないので、nrf_fstrage_nvmc.c のほうは間違っているかもしれない。)

             

            softdeviceでFlashROMを上書きしたいときには nrf_fstorage_erase をまずコールして、そこで待たずに次の処理に移る。

            イレースが終わったらコールバック関数に飛ぶので、ここで nrf_fstorage_writeをコールする。

            ライトが終わるとコールバック関数に再び飛ぶので、これで書き込み終了となる。

             

            ret_code_t nrf_fstorage_write(nrf_fstorage_t const * p_fs,
                                          uint32_t               dest,
                                          void           const * p_src,
                                          uint32_t               len,
                                          void                 * p_param);
             

            のlen は書き込むバイト数の指定になる。4の倍数でないとエラーになって書き込むことができない。

            nRFのFlashROMが 32bitを1ワードとしているので、32bitずつ書き込んでいるのだろうと思う。

             

             

            余談だけど、SDK15.2では今まで使っていたライブラリ関数を Legacyとかいうフォルダにまとめてあり

            nrf_・・・というファイルに加えて nrfx_・・のファイルが増えている。

            次あたり 大きな仕様変更があるかもしれない。

             

            | ビーコン菅原 | nRF5x Nordic | 00:55 | comments(0) | trackbacks(0) |
                 12
            3456789
            10111213141516
            17181920212223
            24252627282930
            31      
            << March 2019 >>
            + RECOMMEND
            + RECOMMEND
            + SELECTED ENTRIES
            + RECENT COMMENTS
            + RECENT TRACKBACK
            + CATEGORIES
            + ARCHIVES
            + つぶやき
            + MOBILE
            qrcode
            + LINKS
            + PROFILE