このプロジェクトについて
MOGWAI NANOは、.NET nanoFramework上に構築されたマイクロコントローラ用スクリプトエンジンです。デスクトップ版MOGWAIエンジンの移植ではなく、組み込みの制約に合わせて設計されたコンパニオンランタイムとして説明されています。PC上のMOGWAI NANO StudioでMOGWAIコードを作成し、ネットワーク上のデバイスを検出して、WiFi経由でハードウェア上でリモート実行します。
仕組み:if/then/else、while/do、for/do、forever do、タイマーなどの糖衣構文で書かれたコードは、デスクトップ上で正規のRPNにデシュガーされてからデバイスに送信されます。デバイスはこの最小限の形式(トークナイザー、スタック、プリミティブディスパッチャー)のみを実行し、ファームウェアを小さく保ちます。READMEには、正規のプリミティブは非公開で自動生成され、手動で入力するものではないと記載されています。
言語とハードウェア機能:
- 算術、比較、制御フロー、ユーザー定義関数、参照、スキルとフラグ、構造化エラー処理(trap/guard)
- GPIO、I2C、SPI、PWM、ADC、専用のSSD1306 OLEDディスプレイドライバー
- 並列実行用タスク。それぞれが独自のネイティブスレッド上で実行され、分離されたランタイムインスタンスを持ち、イベントを介して親と通信します
- 2つの設定可能なモードを持つ遅延パース実行モデル(mogwai.frugalMode)
- 「ユニット」と呼ばれる再利用可能なコードライブラリ。フラッシュに保存され、必要に応じてロードされます
- ワンショットおよび繰り返しタイマー、名前付きストップウォッチ
- イベント。データはMOGRecordを介して配信されます
- UDPディスカバリーとTCP通信、切断検出機能付き
- スタンドアロン展開用の永続的な自動実行
メモリに関する考慮事項が詳しく説明されています。通常のESP32では約40KBの空きRAMが残り、READMEによると単純なスクリプトには十分ですが、長時間実行やマルチサブシステムのワークロードでは断片化や割り当て失敗が発生しやすいとされています。PSRAM搭載ボード(ESP32-S3など)は、検証済みのリファレンスプラットフォームとして提示され、複合プロジェクトに推奨されています。タスクはそれぞれ約10KBのコストがかかり、PSRAMでのみ実用的であると説明されています。READMEは、PSRAM対応のnanoFrameworkターゲットを備えた従来のESP32/WROVERでも同等に動作するはずだが、作者によってテストされていないと述べています。
サポートプラットフォーム表:ESP32は小規模な単一目的スクリプトでテスト済み。ESP32-S3(PSRAM付き)はテスト済みで推奨。従来のESP32/WROVER(PSRAM付き)は未テスト。Raspberry Pi Pico Wは現在サポートされていません(ESP32固有のピン設定がPicoビルドを壊したため、再構築後に復帰予定)。STM32とTIは動作するはずだが未テストと記載。
MOGWAI NANO Studioは、Avaloniaベースのデスクトップコンパニオンで、独自のコードエディター、ローカルとデバイス出力用の別々のライブコンソールタブ、ファイル管理、ライト/ダークテーマを備えています。以前のコンソールベースのStudioは0.5まで存在しましたが、0.6以降はメンテナンスされていません。
リリースには、デバイスファームウェア(MogwaiNano.bin)と、プラットフォームごとの自己完結型Studioアーカイブ(win-x64、linux-x64、linux-arm64、osx-x64、osx-arm64)が添付されています。クイックスタートでは、nanoffでファームウェアをフラッシュし、電源を再投入し、アプリケーションをデプロイし、wifi.jsonファイルでWiFiを設定し、LEDを点滅させる最初のプログラムを実行する手順を説明しています。READMEには特定の癖が記載されています:ESP32_REV3では明示的な--address 0x1E0000が必要で、--updateとは別のコマンドでなければなりません。初回フラッシュでは--masseraseが推奨されます。ESP32-S3のフラッシュには数分かかることがあります。
ドキュメントには、入門ガイド、デバイスプリミティブリファレンス、nano.*コマンドセット用のStudioプリミティブリファレンス、ESP32 DeviceFunction値のルックアップテーブルが含まれています。ロードマップには、I2C、SSD1306、PWM/ADC、SPI(MOGWAI NANOスクリプトで完全に書かれたMFRC522 RFIDドライバーで検証済み)、ESP32-S3/PSRAM検証、タスク、ユニットライブラリシステム、Studio GUIなどの完了項目がリストされています。保留中の項目には、バイナリ/ビット操作サポート、STM32とTIの検証、BLE、動的PEロード、共有コアとプラットフォーム別部品への再構築が含まれます。
このプロジェクトはApache 2.0ライセンスです。nanoFrameworkコントリビューターであるLaurent Ellerbach氏への謝辞があり、デスクトップMOGWAIプロジェクトと.NET nanoFrameworkへのリンクがあります。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.