ESP8266 eLUA (NodeMCU) против MicroPython


14

Я ищу беспристрастное, современное сравнение eLUA (NodeMCU) и MicroPython на ESP8266.

Я могу только найти очень поверхностные отчеты / блоги пользователей, пробующих то или другое. - Все из которых отсутствуют полностью технические детали.

Самое близкое, что я мог найти, - это, вероятно, безнадежно устаревшее и трудное для понимания сравнение с проектом MicroPython.

Мне были бы интересны очевидные вопросы:

  • использование вспышки
  • Использование ОЗУ ВМ после загрузки
  • Использование оперативной памяти при обычном использовании
  • модель исполнения (то есть как соотносятся «задачи» ESP8266?)
  • исполнение исполнения
  • простота расширения (т.е. добавление модуля)
  • все остальное, что может иметь отношение

Из изучения документации я считаю, что понял следующее:

  • NodeMCU имеет достаточно детальные параметры сборки, которые позволяют создавать только необходимые модули. Это позволяет работать с маленькими вспышками. Для Micropython 512 КБ представляется абсолютным нижним пределом, и в этом случае не остается места для пользовательского кода. Не уверен, как это сравнивается с NodeMCU.
  • MicroPython имеет встроенный WebREPL, который автоматически настраивается по умолчанию. NodeMCU, похоже, не имеет ничего похожего встроенного.
  • Похоже, что NodeMCU в настоящее время извлекает выгоду из более крупного сообщества, вероятно, из-за того, что оно существует дольше.
  • Документация по MicroPython довольно неформальна, и в ней нет нужды полностью расширять C-код. Документация NodeMCU вроде бы отличная.

Можете ли вы точно указать свои ОБЯЗАТЕЛЬНЫЕ требования и приятно иметь:>) пожалуйста? Размер оперативной памяти, размер массива, плавающее или целое число, эффективность ОЗУ, скорость процессора, время отклика и т. Д. И т. Д.
Тони Стюарт Sunnyskyguy EE75

Ответы:


17

Вот немного другой подход вместо перестрелки Lua против Python:

Шесть самых популярных ESP8266 «runtime»:

  1. НА ВЫБОР КОМАНДЫПопулярный, когда 8266 в паре с другим MCU. Общается через последовательный порт. ~ 64 КБ оперативной памяти доступно.
  2. MicroPython. Интерпретатор скриптов MicroPython с удобным графическим интерфейсом, доступ к которому можно получить через последовательный порт или WIFI / IP. ~ 30К из 128К оперативной памяти доступно.
  3. Lua / NodeMCU. Интерпретатор сценариев LUA с удобным графическим интерфейсом, доступ к которому можно получить через последовательный порт. ~ 40К из 128К оперативной памяти доступно.
  4. JavaScript / Espruino.Интерпретатор JavaScript с удобным графическим интерфейсом, доступ к которому можно получить через последовательный порт или WiFi / IP. ~ 20 КБ оперативной памяти доступно.
  5. С / IDE-12E. Инструмент для прошивки ESP8266 и библиотеки C / инструменты, использующие стандартную Arduino IDE. ~ 80К из 128К оперативной памяти доступно.
  6. С / ESP8266_SDK. C библиотеками / инструментами от производителя. Также коллекция примеров приложений. ~ 512 Кб флэш. Угадайте 80 КБ 128 КБ оперативной памяти.

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

Так как вы, кажется, обеспокоены скоростью и оперативной памятью (флэш-память в целом нормальная), как насчет варианта № 5? Arduino - это удобная среда разработки с большой коллекцией примеров. Ваш первый код может быть запущен менее чем за час и, вероятно, превзойдет любой из скриптовых движков.

В отсутствие значительных различий в использовании памяти я бы выбрал MicroPython из-за большего количества библиотек и активного интернет-сообщества с IRC-чатом. Документация для добавления модулей C улучшена.

Вариант № 6 предоставляет вам самый высокий потенциал для оптимизации, но с более высокой сложностью и более крутой кривой обучения.

Наконец, хорошее практическое правило ESP8266: каждое TCP / IP-соединение может занимать до 3 КБ памяти. Всегда ожидайте менее 5 одновременных подключений!

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


Уместно: Интересная история о том, как Иван Грохотков и сообщество ESP8266 перенесли ESP8266 для программирования из IDE Arduino: makezine.com/2015/04/03/…
neonzeon

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