今回は、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')
})();
【古籏一浩】[email protected]
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/