ESP8266 eLUA (NodeMCU) vs MicroPython


14

Tôi đang tìm kiếm một so sánh không thiên vị, cập nhật của eLUA (NodeMCU)MicroPython trên ESP8266.

Tôi chỉ có thể tìm thấy các báo cáo / blog rất hời hợt của người dùng đang thử cái này hay cái khác. - Tất cả đều thiếu hoàn toàn các chi tiết kỹ thuật.

Điều gần nhất tôi có thể tìm thấy là điều này có lẽ đã lỗi thời và khó hiểu so với dự án MicroPython.

Tôi sẽ quan tâm đến các câu hỏi rõ ràng:

  • sử dụng flash
  • Sử dụng RAM của VM sau khi khởi động
  • Sử dụng RAM trong sử dụng thông thường
  • mô hình thực thi (tức là các "nhiệm vụ" của ESP8266 được ánh xạ như thế nào?)
  • hiệu suất thực hiện
  • dễ dàng mở rộng (tức là bổ sung mô-đun)
  • bất cứ điều gì khác có thể có liên quan

Từ việc nghiên cứu tài liệu tôi tin rằng đã hiểu những điều sau đây:

  • NodeMCU có các tùy chọn xây dựng khá chi tiết, cho phép chỉ xây dựng các mô-đun cần thiết. Điều này dường như cho phép làm việc với kích thước flash nhỏ. Đối với Micropython 512 KB dường như là giới hạn thấp hơn tuyệt đối trong trường hợp không còn chỗ cho mã do người dùng xác định. Không chắc cách này so với NodeMCU.
  • MicroPython có WebREPL tích hợp được cấu hình tự động theo mặc định. NodeMCU dường như không có gì tích hợp tương tự.
  • NodeMCU dường như được hưởng lợi hiện tại từ một cộng đồng lớn hơn, có lẽ là do nó đã tồn tại lâu hơn.
  • Tài liệu MicroPython là cổ tích không chính thức, thiếu hoàn toàn khi nói đến việc mở rộng mã C. Tài liệu NodeMCU dường như là tuyệt vời.

Bạn có thể nêu chính xác yêu cầu PHẢI CÓ của bạn và rất vui được có:>) không? Kích thước Ram, kích thước mảng, số nguyên hoặc số nguyên, hiệu suất RAM, tốc độ CPU, thời gian đáp ứng, v.v.
Tony Stewart Sunnyskyguy EE75

Câu trả lời:


17

Đây là một cách tiếp cận hơi khác so với loạt đá luân lưu Lua so với Python:

Sáu trong số "thời gian chạy" phổ biến nhất của ESP8266:

  1. Lệnh AT. Phổ biến khi 8266 được ghép với một MCU khác. Giao tiếp qua cổng nối tiếp. ~ 64k RAM 128k khả dụng.
  2. MicroPython. Trình thông dịch tập lệnh MicroPython với GUI thân thiện với người dùng có thể được truy cập thông qua cổng nối tiếp hoặc WIFI / IP. ~ 30k RAM 128k khả dụng.
  3. Lua / NodeMCU. Trình thông dịch tập lệnh LUA với GUI thân thiện với người dùng có thể được truy cập qua cổng nối tiếp. ~ 40k RAM 128k khả dụng.
  4. JavaScript / Espruino. Trình thông dịch JavaScript với GUI thân thiện với người dùng có thể truy cập thông qua cổng nối tiếp hoặc WiFi / IP. ~ 20k RAM 128k khả dụng.
  5. C / IDE-12E. Công cụ flash ESP8266 & thư viện / công cụ C sử dụng Arduino IDE tiêu chuẩn. ~ 80k RAM 128k khả dụng.
  6. C / ESP8266_SDK. C thư viện / công cụ từ nhà sản xuất. Cũng là một bộ sưu tập các ứng dụng ví dụ. ~ 512k Flash. Có sẵn 80k RAM 128k.

Cái nhìn sâu sắc quan trọng là phần lớn của mã là phổ biến. Tất cả các thư viện chính trong 1-5 đều có nguồn gốc từ 6. Bên dưới một lớp mỏng AT / Python / LUA / JavaScript / C , mã chính thực tế giống hệt nhau. Điều đó có nghĩa là hiệu suất (RAM, FLASH, thực thi) cũng tương tự.

Vì bạn có vẻ lo lắng về tốc độ và RAM (flash nói chung là ổn), còn lựa chọn số 5 thì sao? Arduino là một IDE có thể sử dụng với một tập hợp lớn các ví dụ. Bạn có thể có mã đầu tiên của mình chạy trong vòng chưa đầy một giờ và có thể sẽ tốt hơn bất kỳ công cụ kịch bản nào.

Trong trường hợp không có sự khác biệt đáng kể về sử dụng bộ nhớ, tôi sẽ chọn MicroPython do số lượng thư viện lớn hơn và cộng đồng trực tuyến hoạt động với webchat IRC. Tài liệu để thêm các mô-đun C đã được cải thiện.

Tùy chọn # 6 cung cấp cho bạn tiềm năng tối ưu hóa cao nhất nhưng với độ phức tạp cao hơn và đường cong học tập dốc hơn.

Cuối cùng là một quy tắc ngón tay cái tốt của ESP8266: Mỗi kết nối TCP / IP có thể tiêu thụ tới ~ 3k bộ nhớ. Luôn luôn mong đợi ít hơn 5 kết nối đồng thời !

Các ứng dụng TL; DR: ESP8266 có hầu hết các mã chung và hoạt động tương tự nhau. Vì vậy, chọn công cụ tập lệnh mà bạn thích hoặc bước lên C / IDE-12E. Đừng mong đợi nhiều hơn 5 kết nối IP đồng thời.


Có liên quan: Câu chuyện thú vị về cách Ivan Grokhotkov và cộng đồng ESP8266 chuyển chiếc ESP8266 được lập trình từ Arduino IDE: makezine.com/2015/04/03/
neemonyon

Chỉ muốn nói cảm ơn vì đã tóm tắt như vậy. Tôi đã thực sự tìm kiếm thông tin này và bạn đã tiết kiệm cho tôi rất nhiều thời gian, cộng thêm một số quan điểm tốt để biết ..
Scott Prive
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.