ESP8266 eLUA(NodeMCU)vs MicroPython


14

ESP8266でのeLUA(NodeMCU)MicroPythonの公平で最新の比較を探しています。

どちらか一方を試しているユーザーの非常に表面的なレポート/ブログしか見つけることができません。-すべて技術的な詳細が完全に欠けている。

私が見つけた最も近いものは、これはおそらく絶望的に時代遅れであり、MicroPythonプロジェクトによる理解しにくい比較です。

私は明白な質問に興味があります:

  • フラッシュ使用量
  • 起動後のVMのRAM使用量
  • 通常使用時のRAM使用量
  • 実行モデル(つまり、ESP8266の「タスク」はどのようにマッピングされますか?)
  • 実行パフォーマンス
  • 拡張の容易さ(モジュールの追加など)
  • 関連する可能性のあるその他のもの

ドキュメンテーションを研究することから、私は次のことを理解したと信じています。

  • NodeMCUには、必要なモジュールのみをビルドできるかなりきめ細かいビルドオプションがあります。これにより、小さなフラッシュサイズでの作業が可能になります。Micropythonの場合、512 KBは絶対的な下限のようです。この場合、ユーザー定義コード用のスペースは残りません。これがNodeMCUとどのように比較されるかわかりません。
  • MicroPythonには、デフォルトで自動設定されるWebREPLが組み込まれています。NodeMCUには同様のビルトイン機能はないようです。
  • NodeMCUは現在、より大きなコミュニティから恩恵を受けているようです。これは、おそらくそれが以前よりも長かったためです。
  • MicroPythonのドキュメントは非常に非公式であり、Cコードの拡張に関しては完全に欠けています。NodeMCUのドキュメントは優れているようです。

あなたが持っている必要がある要件を正確に述べることができます:>)お願いします?RAMサイズ、配列サイズ、浮動小数点または整数、RAM効率、CPU速度、応答時間など
トニースチュワートサニースキーガイEE75

回答:


17

以下は、Lua対Pythonの銃撃戦ではなく、少し異なるアプローチです。

最も人気のあるESP8266の6つの「ランタイム」:

  1. ATコマンドSET。8266が別のMCUとペアリングされている場合に人気があります。シリアルポート経由で通信します。〜64kの128k RAMが利用可能。
  2. MicroPython。 シリアルポートまたはWIFI / IP経由でアクセスできるユーザーフレンドリーなGUIを備えたMicroPythonスクリプトインタープリター。〜30kの128k RAMが利用可能。
  3. Lua / NodeMCU。 シリアルポート経由でアクセスできるユーザーフレンドリーなGUIを備えたLUAスクリプトインタープリター。〜40kの128k RAMが利用可能です。
  4. JavaScript / Espruino。シリアルポートまたはWiFi / IP経由でアクセスできるユーザーフレンドリーなGUIを備えたJavaScriptインタープリター。〜20kの128k RAMが利用可能。
  5. C / IDE-12E。ESP8266フラッシュツールと、標準のArduino IDEを使用した Cライブラリ/ツール〜80kの128k RAMが利用可能です。
  6. C / ESP8266_SDK。 製造元のCライブラリ/ツール。サンプルアプリケーションのコレクション。〜512kフラッシュ。128k RAMのうち80kが利用可能であると推測します。

重要な洞察は、コード大部分が一般的であることです。1〜5のプライマリライブラリはすべて6に由来します。AT/ Python / LUA / JavaScript / C 薄層の下では、プライマリコードは実質的に同一です。つまり、パフォーマンス(RAM、フラッシュ、実行)も同様です。

あなたは速度とRAMを心配しているように見えるので(フラッシュは一般にOKです)、オプション#5はどうですか?Arduinoは使用可能なIDEであり、多数のサンプルが含まれています。最初のコードを1時間以内に実行でき、スクリプトエンジンよりも優れている可能性があります。

大幅なメモリ使用量の違いがない場合、ライブラリの数が多く、IRC webchatのアクティブなオンラインコミュニティがあるため、MicroPythonを選択しますCモジュールを追加するためのドキュメントが改善されました。

オプション#6では、最適化の可能性最も高くなりますが、複雑さが増し、学習曲線が急勾配になります。

最後に、ESP8266の経験則:各TCP / IP接続は最大3kのメモリを消費できます。常に5つ未満の同時接続が予想さます!

TL; DR: ESP8266アプリケーションは、ほとんどのコードが共通しており、同様に動作します。好みのスクリプトエンジンを選択するか、C / IDE-12Eにステップアップします。5つ以上の同時IP接続を期待しないでください。


関連: Ivan GrokhotkovとESP8266コミュニティがArduino IDEからプログラムされるようにESP8266をどのように移植したかについての興味深い話: makezine.com/2015/04/03/…– neonzeon
19:31

これを要約していただきありがとうございます。私は実際にこの情報を検索していたので、時間を大幅に節約できました。また、知っておくと便利な視点も追加しました。
Scott Prive
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.