クリエイター手抜きプロジェクト[646]IoT編 M5StickC+obnizOSを使ってみる(1) IoTでのOSという感じ
── 古籏一浩 ──

投稿:  著者:



今回は、obnizOSを使ってみます。obnizOSは、Wi-FiモジュールのESP32(ESP32-WROOM32)であれば動作する軽量OSです。

IoTでのOS、という感じで捉えてもらってもよいかもしれません。ネットワークが繋がる環境であれば、obnizOSを使うことができます。

・obnizOS
https://obniz.io/ja/products/obnizos


obnizOSでなくobniz boardというのもあります。

・obniz board
https://obniz.com/ja/products/obnizboard/


当初obnizと言えば、obniz boardのことを示していました。私が書いたobnizの書籍も、obniz boardがベースとなっています。

・みんなのobniz入門
https://www.amazon.co.jp/exec/obidos/ASIN/B083NSRG3S/dgcrcom-22/


この本を書いているうちに、obniz boardでなくEPS32モジュールがあれば、OSのように使えるのではないかと、開発者がひらめいてしまったのではないかと思います。





どのみち、ネットワークを介してI/O処理するだけなので、小型軽量OSとして組み込むことができるわけです。これにより、obniz board以外のデバイスでも、ブラウザからI/O制御することが可能になったのです。

本を出版した後に、すでにobnizは違うステージに入ってしまったわけで、なんともです。とはいえ、obnizOSによって使用できるデバイスが広がりました。その中のひとつとして、M5StickCがあります。

・M5StickC(本体のみ)
https://www.switch-science.com/catalog/6350/


obnizOSは、M5Stack社が提供しているM5Burnerでも、対応ソフト(ファームウェア)として表示されますが、うまく焼き込めない場合は、M5StickCにobnizOSがあらかじめ入っている商品を購入するのが無難です。

・M5StickC[obniz無期限ライセンス付属]
https://obniz.io/ja/products/m5stickc/


あと、コマンドラインからobnizOSを書き込むことができます。コマンドラインからでもOKだという人は、以下のページに手順が書かれているので、やってみるとよいでしょう。なお、この場合は、別途M5StickCを用意する必要があります。

https://obniz.com/ja/doc/reference/m5stickc/


ここでは、M5StickC[obniz無期限ライセンス付属]を使ってみます。なお、obnizOSは最初にWi-Fiの設定を行う必要があります。USB Type Cケーブルと、M5StickCをつなぎます。しばらくすると、obnizOSが起動します。初回でWi-Fi設定が行われていないと、設定手順が液晶画面に表示されます。

iPhoneなどスマートフォンで、Wi-Fi一覧を表示します。Wi-Fi一覧にM5StickCの画面に表示されている、obniz-12345678といった名前のネットワークが表示されます。このネットワークに接続します。パスワード等は不要です。

次に、ブラウザで http://192.168.0.1
と入力します。しばらくすると(かなり長く待たされることもあります)ブラウザの画面に、ルーターのネットワーク名とパスワード入力欄が表示されます。

接続するルーターのネットワークを選択し、接続するネットワークのパスワードを入力します。このパスワードがわからない場合は、接続するルーターの側面・背面に書かれていることがあります。

側面・背面に書かれていない場合は、付属のマニュアルに記載されているか、同梱されているシールを確認してみてください。

パスワードを入力すると、obnizOSが再起動します。しばらくすると、自動的にネットワークに接続されます。無事にネットワークに接続されると、obnizIDが液晶画面に表示されます。液晶画面にはQRコードが表示されているので、これをスキャンすれば開発画面のページになります。

ただ、このQRコードがうまく読み込めないという人は、以下のURLにアクセスしてから、デバイスのID (obnizID)を入れてください。

https://obniz.com/ja/console/blockprogram


するとブロックエディタの画面が表示されます。この状態で「実行」ボタンをクリックしても、一応動作はします。ただし、LEDは光りません。

今回はLEDの点灯処理はパスして、M5StickCの画面に文字を表示してみましょう。

上から2番目のブロック「[obniz]に("〜")を表示する」の(〜)内に、表示させたい文字を入れてください。文字を入れたら「実行」ボタンをクリックしてください。指定した文字列がM5StickCの画面に表示されるはずです。

ブロックでなくコードの場合は、以下のようになります。コードは長いので、メインとなる部分のみ抜粋します。以下のコード例では、液晶画面には M5StickC+obnizOS の文字が表示されます。

なお、9999-9999の数値の部分は、使用しているM5StickCのobnizIDになります。何もプログラムが動いていない状態で、M5StickCの画面に表示される8桁の番号です。これを指定すればOKです。

<script>
$("#bploading").text("RUNNING...");
(async function(){
var obniz;
obniz = new Obniz.M5StickC('9999-9999');
await obniz.connectWait();
obniz.display.print('M5StickC+obnizOS')
})();


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/


現在発売されている4月号の「Interface」誌は、リアルタイムOSのAmazonのFree RTOSの特集。RTOSと言えばOS-9やμTRONが思い浮かぶけど、それはもう昭和の時代。平成も終わって令和になったので、リアルタイムOSも新しいものに。よく読むとM5StickCがFree RTOSに対応していると書いてあって、なかなか興味をそそられるんですが、時間ないので多分入れて起動するだけで終わりかも。

https://aws.amazon.com/jp/freertos/


・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram


・8K/4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/


・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/