M5StickC [ obnizOS + HobbyLite ]レビュー

現時点の情報です。最新情報はM5StickC非公式日本語リファレンスを確認してみてください。

概要

obniz オフィシャルストアで現在500円引きで販売しているM5StickC [ obnizOS + HobbyLite ]が届きましたので触ってみました。

3台目のM5StickCです。IMUはMPU6886版でした。BtnBを押すと100mA以上流れるのも同じなので、2台目と同じ仕様ですね。右上にシリアル番号が書かれたシールが貼られています。

obnizOS + HobbyLiteとは?

obnizOSはJavaScriptで開発ができるOSで、HobbyLiteライセンスはその中で一番安い簡易的なライセンスです。永年無料で使えるライセンスですが、ローカルネットワークに接続されている必要があります。

※ブロックプログラムやPythonの使用、外部ネットワークを経由した操作等はクラウド経由の接続が必要です。

https://obniz.io/ja/pricing

注意事項として、ブロックプログラミングが使えません!

そして、オンラインHTMLエディタからは実行できますが、作例などの今すぐ実行の機能も使えません。作例などを動かす場合にはオンラインHTMLに内容をコピーするか、ローカルのHTMLファイルに保存する必要があります。

おそらくローカルのHTMLファイルか、オンラインHTMLエディタ以外はローカルアクセスを許可しない設定が入っていると思います。ブロックが使えないのはちょっと意外です。そして作例とかサンプルは実行できないのが非常に痛い。

利用方法

送られてきたM5StickCは、シリアル番号のシールがはられている以外は通常のM5StickCと変わりません。おそらく国内版じゃないののでスイッチサイエンスさんのシールもありません。

そして説明書などはありませんので、試行錯誤しながら接続する必要があります!

Wi-Fi設定とobniz Idの確認

  • ネットワーク設定

オフィシャルに資料がありますが、Wi-Fi設定をするためにはAPモードになっているM5StickCに接続してブラウザから設定をするか、シリアルで接続します。

接続するために必要なobniz Idを確認する必要があります。シリアル接続の場合には起動時のコンソールで確認できます。Wi-Fi AP接続の場合にはAPモード名の番号がobniz Idです。

シリアルは確認できない場合には何度か再起動を繰り返すと画面に出てくると思います。Wi-Fiの場合、初期設定が終わったらどうやって確認するんだろう?

obnizアカウンへデバイスの追加

HobbyLiteライセンスの場合、登録できません。obniz Idを入力した後にデバイスの液晶に表示される認証番号を入力する必要がありますが、M5StickCだと液晶になにも表示されないので登録できません。

デバイスへ登録できないとobnizOSのバージョンアップできないきがするんだけれど、どうするんだろう?

プログラミング

ローカルにHTMLファイルを作成するか、オンラインHTMLでプログラムを行います。

  • https://obniz.io/ja/console/

上記のプログラムボタンを押すと、オンラインHTMLが開きます。一般的にはオンラインHTMLで開発を行うのが楽だと思います。

サンプルプログラム

上記のGitHubからファイルをダウンロードしてきて、HTMLファイルを開くことで実行できます。HobbyLite以外のライセンスはブラウザ上からかんたんに実行できるのですが、ローカルかオンラインHTMLしか現在実行できないので、ちょっと面倒です。

スケッチ例

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>obnizOS on M5StickC</title>
    <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
    <script src="https://unpkg.com/obniz@2.4.0/obniz.js" crossorigin="anonymous"></script>
    <script src="https://unpkg.com/m5stickcjs@0.1.0/m5stickc.js"></script>
  </head>
  <body>
    <div id="obniz-debug"></div>
    <script>
      console.log("start");
      let m5 = new M5StickC('OBNIZ_ID_HERE');
      console.log("connecting");
      m5.onconnect = async function () {
        console.log("connected");
        await m5.m5display.onWait();
        m5.m5display.fillScreen(m5.m5display.color16(255,255,255));
        m5.m5display.setRotation(3);
        m5.m5display.drawString(0, 0, "Hello obniz", m5.m5display.color16(0,0,0), m5.m5display.color16(255,0,0), 2 );
        m5.m5display.drawString(0, 32, "R", m5.m5display.color16(0,0,0), m5.m5display.color16(255,0,0), 2 );
        m5.m5display.drawString(0, 48, "G", m5.m5display.color16(0,0,0), m5.m5display.color16(0,255,0), 2 );
        m5.m5display.drawString(0, 64, "B", m5.m5display.color16(0,0,0), m5.m5display.color16(0,0,255), 2 );
      };
    </script>
  </body>
</html>

ST7735SがBGRモードで動いているのかな?

RGBモードにセットに変更するか、color16の関数を修正するかちょっと悩みますね。画像転送とかするとRGBモードの方が楽な気がします。

ここを見るとRGBモードや、画面端1ピクセルにゴミが残っている場合の対処方法などが書かれていました。一番上の画像とかわかりやすいですが、1ライン描画されていないんですよね。

コード的にはawait m5.m5display.onWait();をしないと画面にアクセスできないので注意してください。

このコードかな? 情報がまだ少ないのでわかりにくいですが、画面の初期化処理みたいです。

注意事項

Arduinoなどで他のプログラムをまちがって上書きしてしまうと、内容が消えてしまいます。HobbyLite以外のライセンスでは、obnizOSの入れ直しができるのですが、 HobbyLiteだとデバイスキーがダウンロードできないので、できません。

まとめ

まだまだM5StickC [ obnizOS + HobbyLite ]は使い勝手が不便でした。

上記のキャンペーンを利用したほうが現状は安いし、使い勝手がいいライセンスとなります。ライセンス期限が1年ですが、商用と端末間暗号化以外はフル機能が使えます。またライセンスを購入した場合には自動更新がONになっているので、念の為OFFにしておいたほうがいいかもしれません。

コメント