ESP8266 eLUA (NodeMCU) vs MicroPython


14

Saya mencari perbandingan yang tidak bias, terkini tentang eLUA (NodeMCU) dan MicroPython di ESP8266.

Saya hanya dapat menemukan laporan / blog yang sangat dangkal dari pengguna yang mencoba salah satunya. - Yang semuanya kurang sepenuhnya detail teknis.

Hal terdekat yang bisa saya temukan adalah ini mungkin sudah ketinggalan zaman dan sulit dimengerti perbandingannya dengan proyek MicroPython.

Saya akan tertarik pada pertanyaan yang jelas:

  • penggunaan flash
  • Penggunaan RAM VM setelah boot
  • Penggunaan RAM dalam penggunaan biasa
  • model pelaksanaan (yaitu bagaimana "tugas" ESP8266 dipetakan?)
  • kinerja eksekusi
  • kemudahan ekstensi (mis. penambahan modul)
  • hal lain yang mungkin relevan

Dari mempelajari dokumentasi saya percaya telah memahami yang berikut:

  • NodeMCU memiliki opsi build yang cukup halus yang memungkinkan hanya membangun modul yang diperlukan. Ini tampaknya memungkinkan bekerja dengan ukuran flash kecil. Untuk Micropython 512 KB tampaknya menjadi batas bawah absolut dalam hal ini tidak ada ruang untuk kode yang ditetapkan pengguna. Tidak yakin bagaimana ini dibandingkan dengan NodeMCU.
  • MicroPython memiliki WebREPL bawaan yang dikonfigurasi secara otomatis. NodeMCU tampaknya tidak memiliki built-in yang serupa.
  • NodeMCU tampaknya mendapat manfaat saat ini dari komunitas yang lebih besar, mungkin karena sudah ada lebih lama.
  • Dokumentasi MicroPython adalah peri informal, kurang sepenuhnya ketika datang untuk memperluas kode C. Dokumentasi NodeMCU tampaknya sangat baik.

Bisakah Anda menyatakan dengan tepat HARUS MEMILIKI persyaratan Anda dan senang memiliki:>)? Ukuran ram, ukuran larik, mengambang atau bilangan bulat, efisiensi RAM, kecepatan CPU, waktu respons, dll.
Tony Stewart Sunnyskyguy EE75

Jawaban:


17

Berikut adalah pendekatan yang sedikit berbeda sebagai pengganti tembak Lua vs Python:

Enam dari "runtime" ESP8266 paling populer:

  1. AT Command SET. Populer saat 8266 dipasangkan dengan MCU lain. Berkomunikasi melalui port serial. ~ 64k dari 128k RAM tersedia.
  2. MicroPython. Juru bahasa skrip MicroPython dengan GUI yang mudah digunakan yang dapat diakses melalui port serial atau WIFI / IP. ~ 30k dari 128k RAM tersedia.
  3. Lua / NodeMCU. Juru bahasa skrip LUA dengan GUI yang mudah digunakan yang dapat diakses melalui port serial. ~ 40k dari 128k RAM tersedia.
  4. JavaScript / Espruino. Seorang penerjemah JavaScript dengan GUI yang ramah pengguna yang dapat diakses melalui port serial atau WiFi / IP. ~ 20k dari 128k RAM tersedia.
  5. C / IDE-12E. ESP8266 flashing tool & C library / tools menggunakan IDE Arduino standar. ~ 80k dari 128k RAM tersedia.
  6. C / ESP8266_SDK. C perpustakaan / alat dari pabrikan. Juga kumpulan contoh aplikasi. ~ 512k Flash. Tebak 80k dari 128k RAM tersedia.

Wawasan utama adalah bahwa sebagian besar kode adalah umum. Pustaka utama dalam 1-5 semua berasal dari 6. Di bawah lapisan tipis AT / Python / LUA / JavaScript / C kode primer praktis identik. Itu berarti kinerja (RAM, FLASH, eksekusi) juga serupa.

Karena Anda tampaknya khawatir tentang kecepatan dan RAM (flash umumnya OK), bagaimana dengan opsi # 5? Arduino adalah IDE yang dapat digunakan dengan banyak koleksi contoh. Anda dapat menjalankan kode pertama dalam waktu kurang dari satu jam dan kemungkinan akan mengungguli salah satu mesin scripting.

Dengan tidak adanya perbedaan penggunaan memori yang signifikan saya akan memilih MicroPython karena jumlah perpustakaan yang lebih besar dan komunitas online yang aktif dengan webchat IRC. Dokumentasi untuk menambahkan modul C telah meningkat.

Opsi # 6 memberi Anda potensi optimasi tertinggi tetapi pada kompleksitas yang lebih tinggi dan kurva pembelajaran yang lebih curam.

Terakhir aturan ESP8266 yang baik: Setiap koneksi TCP / IP dapat mengkonsumsi hingga ~ 3k memori. Selalu berharap kurang dari 5 koneksi simultan !

TL; DR: Aplikasi ESP8266 memiliki sebagian besar kode mereka yang sama dan melakukan hal yang sama. Jadi pilih mesin skrip yang Anda suka atau naik ke C / IDE-12E. Jangan berharap lebih dari 5 koneksi IP secara simultan.


Relevan: Kisah menarik tentang bagaimana Ivan Grokhotkov dan komunitas ESP8266 mem-porting ESP8266 untuk diprogram dari Arduino IDE: makezine.com/2015/04/2015/3/...
neonzeon

Hanya ingin mengucapkan terima kasih karena telah merangkum hal ini. Saya sebenarnya mencari informasi ini dan Anda menyelamatkan saya banyak waktu, ditambah menambahkan beberapa perspektif yang baik untuk diketahui ..
Scott Prive
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.