ESP8266 eLUA (NodeMCU) กับ MicroPython


14

ฉันกำลังค้นหาการเปรียบเทียบeLUA (NodeMCU)และMicroPython แบบไม่ลำเอียงและเป็นปัจจุบันบน ESP8266

ฉันสามารถค้นหารายงาน / บล็อกที่ตื้นมาก ๆ ของผู้ใช้ที่ทดลองใช้อย่างใดอย่างหนึ่งเท่านั้น - ทั้งหมดนี้ไม่มีรายละเอียดทางเทคนิคทั้งหมด

สิ่งที่ใกล้เคียงที่สุดที่ฉันพบคือสิ่งนี้อาจล้าสมัยอย่างสิ้นหวังและยากที่จะเข้าใจการเปรียบเทียบโดยโครงการ MicroPython

ฉันจะสนใจคำถามที่ชัดเจน:

  • การใช้งานแฟลช
  • การใช้ RAM ของ VM หลังจากบูตเครื่อง
  • การใช้ RAM ในการใช้งานปกติ
  • รูปแบบการดำเนินการ (เช่นแมป "งาน" เป็นอย่างไร ESP8266?)
  • ประสิทธิภาพการดำเนินการ
  • ความง่ายในการขยาย (เช่นการเพิ่มโมดูล)
  • สิ่งอื่นใดที่อาจเกี่ยวข้องกัน

จากการศึกษาเอกสารฉันเชื่อว่าได้เข้าใจสิ่งต่อไปนี้:

  • NodeMCU มีตัวเลือกบิวด์ที่สร้างขึ้นอย่างละเอียดซึ่งอนุญาตให้สร้างโมดูลที่ต้องการเท่านั้น ดูเหมือนว่าจะอนุญาตให้ทำงานกับขนาดแฟลชเล็ก ๆ สำหรับ Micropython 512 KB น่าจะเป็นขีด จำกัด ล่างที่แน่นอนซึ่งในกรณีนี้จะไม่มีที่ว่างสำหรับรหัสที่ผู้ใช้กำหนด ไม่แน่ใจว่าสิ่งนี้เปรียบเทียบกับ NodeMCU ได้อย่างไร
  • MicroPython มี WebREPL ในตัวซึ่งกำหนดค่าอัตโนมัติตามค่าเริ่มต้น NodeMCU ดูเหมือนจะไม่มีอะไรในตัวที่คล้ายกัน
  • ดูเหมือนว่า NodeMCU จะได้รับประโยชน์จากชุมชนขนาดใหญ่ในปัจจุบันเนื่องจากสันนิษฐานว่ามีมานานกว่า
  • เอกสาร MicroPython เป็นเรื่องที่ไม่เป็นทางการโดยสิ้นเชิงเมื่อพูดถึงการขยายรหัส C ดูเหมือนว่าเอกสารของ NodeMCU จะยอดเยี่ยม

คุณช่วยบอกได้ไหมว่าต้องมีข้อกำหนดและยินดีที่จะ:>) ได้ไหม? ขนาด Ram, ขนาด array, floating หรือ integer, ประสิทธิภาพ RAM, ความเร็วของ CPU, เวลาตอบสนอง ฯลฯ และอื่น ๆ
Tony Stewart Sunnyskyguy EE75

คำตอบ:


17

นี่เป็นวิธีที่แตกต่างออกไปเล็กน้อยจากการยิง Lua vs. Python:

หกของ ESP8266 "runtimes" ยอดนิยม:

  1. AT Command SET ได้รับความนิยมเมื่อ 8266 จับคู่กับ MCU อื่น สื่อสารผ่านพอร์ตอนุกรม มี RAM 64k ~ 64k
  2. MicroPython ล่ามสคริปต์ MicroPython พร้อม GUI ที่ใช้งานง่ายที่สามารถเข้าถึงได้ผ่านพอร์ตอนุกรมหรือ WIFI / IP มีให้ใช้งาน ~ 30k of RAM 128k
  3. Lua / NodeMCU ล่ามสคริปต์ LUA พร้อม GUI ที่ใช้งานง่ายที่สามารถเข้าถึงได้ผ่านพอร์ตอนุกรม มีหน่วยความจำ RAM ขนาด 128k ~ 40k
  4. JavaScript / Espruino ล่าม JavaScript พร้อม GUI ที่ใช้งานง่ายซึ่งสามารถ acess ผ่านพอร์ตอนุกรมหรือ WiFi / IP มี RAM ขนาด 128k ~ 20k
  5. C / IDE-12E เครื่องมือกระพริบ ESP8266 & ไลบรารี C / เครื่องมือโดยใช้ Arduino IDE มาตรฐาน มีหน่วยความจำ RAM ขนาด 128k ~ 80k ~
  6. C / ESP8266_SDK C ไลบรารี / เครื่องมือจากผู้ผลิต นอกจากนี้ยังมีชุดของแอปพลิเคชันตัวอย่าง ~ 512k แฟลช คาดเดา RAM 80k 128k ใช้ได้

ความเข้าใจที่สำคัญคือรหัสจำนวนมากเป็นเรื่องธรรมดา ไลบรารีหลักใน 1-5 ล้วนมาจาก 6 ภายใต้เลเยอร์บางของ AT / Python / LUA / JavaScript / C รหัสหลักนั้นเหมือนกันในทางปฏิบัติ นั่นหมายถึงประสิทธิภาพ (RAM, FLASH, execution) นั้นคล้ายกัน

ดูเหมือนว่าคุณกังวลเกี่ยวกับความเร็วและ RAM (โดยทั่วไปแฟลชตกลง) ตัวเลือก # 5 เป็นอย่างไร? Arduino เป็น IDE ที่ใช้งานได้พร้อมกับตัวอย่างมากมาย คุณสามารถให้โค้ดแรกทำงานในเวลาน้อยกว่าหนึ่งชั่วโมงและมีแนวโน้มสูงกว่าเอ็นจิ้นการเขียนสคริปต์ใด ๆ

ในกรณีที่ไม่มีความแตกต่างในการใช้งานหน่วยความจำอย่างมีนัยสำคัญฉันจะเลือก MicroPythonเนื่องจากจำนวนไลบรารีที่มากขึ้นและชุมชนออนไลน์ที่ใช้งานด้วย IRC webchat เอกสารประกอบสำหรับการเพิ่มโมดูล C ได้รับการปรับปรุง

ตัวเลือก # 6 มอบศักยภาพสูงสุดในการเพิ่มประสิทธิภาพแต่ด้วยความซับซ้อนที่สูงขึ้นและช่วงการเรียนรู้ที่ชันกว่า

สุดท้ายคือกฎของหัวแม่มือที่ดี ESP8266: การเชื่อมต่อ TCP / IP แต่ละครั้งสามารถใช้หน่วยความจำมากถึง ~ 3k คาดว่าจะน้อยกว่า 5 การเชื่อมต่อพร้อมกัน !

TL; DR:แอปพลิเคชั่น ESP8266 มีรหัสส่วนใหญ่เหมือนกันและทำงานในทำนองเดียวกัน ดังนั้นเลือกเอ็นจิ้นสคริปต์ที่คุณชอบหรือก้าวเข้าสู่ C / IDE-12E อย่าคาดหวังมากกว่า 5 การเชื่อมต่อ IP พร้อมกัน


ที่เกี่ยวข้อง:เรื่องราวที่น่าสนใจเกี่ยวกับวิธีการอีวาน Grokhotkov และชุมชน ESP8266 รังเพลิง ESP8266 ที่จะได้รับจากโปรแกรม Arduino IDE: makezine.com/2015/04/03/...
neonzeon

แค่อยากจะบอกว่าขอบคุณสำหรับการสรุปสิ่งนี้ จริง ๆ แล้วฉันกำลังค้นหาข้อมูลนี้และคุณช่วยฉันประหยัดเวลารวมทั้งเพิ่มมุมมองที่ดีที่จะรู้ ..
Scott Prive
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.