ESP8266 eLUA (NodeMCU) проти MicroPython


14

Я шукаю неупереджене, сучасне порівняння eLUA (NodeMCU) та MicroPython на ESP8266.

Я можу знайти лише дуже поверхневі звіти / блоги користувачів, які випробовують те чи інше. - У всьому цьому бракує повністю технічних деталей.

Найближче, що я міг знайти, - це, ймовірно, безнадійно застаріле і важко зрозуміле порівняння за проектом MicroPython.

Мені були б цікаві очевидні питання:

  • використання спалаху
  • Використання оперативної пам'яті VM після завантаження
  • Використання оперативної пам'яті у звичайному режимі
  • модель виконання (тобто як відображаються "завдання" ESP8266?)
  • виконання виконання
  • простота розширення (тобто додавання модуля)
  • все інше, що може бути актуальним

З вивчення документації я вважаю, що я зрозумів наступне:

  • NodeMCU має досить дрібні параметри збірки, що дозволяє будувати лише необхідні модулі. Здається, це дозволяє працювати з невеликими розмірами спалаху. Для Micropython 512 KB здається абсолютною нижньою межею, і в цьому випадку місця для визначеного користувачем коду не залишається. Не впевнений, як це порівнюється з NodeMCU.
  • MicroPython має вбудований WebREPL, який автоматично налаштовується за замовчуванням. NodeMCU, схоже, не має нічого подібного вбудованого.
  • Схоже, NodeMCU зараз отримує вигоду від більшої спільноти, імовірно, через те, що вона була довше.
  • Документація MicroPython - феєрична неформальна, її цілком бракує, якщо мова йде про розширення коду С. Документація на NodeMCU здається відмінною.

Ви можете викласти саме ваші вимоги та приємно мати:>) будь ласка? Розмір рамки, розмір масиву, плаваюча або ціла, ефективність оперативної пам’яті, швидкість процесора, час відповіді тощо тощо
Tony Stewart Sunnyskyguy EE75

Відповіді:


17

Ось дещо інший підхід замість перестрілки Lua проти Python:

Шість найпопулярніших ESP8266 "час виконання":

  1. AT Command SET. Популярний, коли 8266 поєднується з іншим MCU. Спілкується через послідовний порт. ~ 64 к 128 КБ оперативної пам’яті.
  2. MicroPython. Інтерпретатор сценаріїв MicroPython із зручним графічним інтерфейсом, до якого можна отримати доступ через послідовний порт або WIFI / IP. ~ 30 К 128 КБ оперативної пам’яті.
  3. Lua / NodeMCU. Інтерпретатор скриптів LUA із зручним графічним інтерфейсом, до якого можна отримати доступ через послідовний порт. ~ 40 К 128 КБ оперативної пам’яті.
  4. JavaScript / Espruino. Інтерпретатор JavaScript із зручним графічним інтерфейсом, до якого можна отримати доступ через послідовний порт або WiFi / IP. ~ 20 к. 128 КБ оперативної пам’яті.
  5. C / IDE-12E. ESP8266 миготливий інструмент та бібліотеки / інструменти C, використовуючи стандартний Arduino IDE. ~ 80 к 128 КБ оперативної пам’яті.
  6. C / ESP8266_SDK. C бібліотеки / інструменти від виробника. Також колекція прикладних додатків. ~ 512k спалах. Доступна оцінка 80 кВт із 128 кб оперативної пам’яті.

Ключове розуміння полягає в тому, що основна частина коду є загальною. Первинні бібліотеки в 1-5 всіх походять від 6. Під тонким шаром AT / Python / LUA / JavaScript / C основний код практично ідентичний. Це означає, що продуктивність (RAM, FLASH, виконання) теж схожа.

Оскільки ви, здається, стурбовані швидкістю та оперативною пам’яттю (спалах, як правило, добре), як щодо варіанту №5? Arduino - це корисний IDE з великою колекцією прикладів. Ваш перший код може працювати менше ніж за годину і, ймовірно, перевершить будь-який із двигунів сценаріїв.

За відсутності суттєвих відмінностей у використанні пам’яті я вибрав би MicroPython завдяки більшої кількості бібліотек та активного онлайн-спільноти з веб- чатом IRC. Документація для додавання модулів С покращилась.

Варіант №6 надає вам найбільший потенціал для оптимізації, але при більш високій складності та більш крутій кривій навчання.

Нарешті, хороший принцип роботи ESP8266: Кожне з'єднання TCP / IP може споживати до ~ 3 кб пам'яті. Завжди очікуйте менше 5 одночасних підключень!

Програми TL; DR: ESP8266 мають більшість спільних кодів і виконують аналогічно. Тож виберіть движок сценарію, який вам подобається, або перейдіть до C / IDE-12E. Не очікуйте більше 5 одночасних IP-з'єднань.


Доречно : Цікава історія про те, як Іван Грохотков та спільнота ESP8266 перенесли ESP8266 для програмування з ID
neonzeon

Просто хотів сказати спасибі за те, що узагальнив це так. Я насправді шукав цю інформацію, і ви заощадили мені купу часу, а також додали деякі перспективи, про які добре знати ..
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.