ESP8266 eLUA (NodeMCU) ve MicroPython


14

ESP8266'da eLUA (NodeMCU) ve MicroPython'un tarafsız, güncel bir karşılaştırmasını arıyorum .

Yalnızca bir veya diğerini deneyen kullanıcıların çok yüzeysel raporlarını / bloglarını bulabilirim. - Tamamen teknik detaylardan yoksun olan.

Bulabildiğim en yakın şey, bu muhtemelen umutsuzca modası geçmiş ve MicroPython projesi ile karşılaştırılması zor .

Açık sorularla ilgilenirim:

  • flaş kullanımı
  • Açılıştan sonra VM'nin RAM kullanımı
  • Normal kullanımda RAM kullanımı
  • yürütme modeli (yani ESP8266 "görevleri" nasıl eşlenir?)
  • yürütme performansı
  • uzatma kolaylığı (örn. modül ekleme)
  • alakalı olabilecek başka herhangi bir şey

Belgeleri inceleyerek aşağıdakileri anladığımıza inanıyorum:

  • NodeMCU, yalnızca gerekli modüllerin oluşturulmasına izin veren oldukça ince taneli yapı seçeneklerine sahiptir. Bu, küçük flaş boyutlarıyla çalışmaya izin veriyor gibi görünüyor. Micropython için 512 KB mutlak alt sınır gibi görünüyor, bu durumda kullanıcı tanımlı kod için yer kalmıyor. Bunun NodeMCU ile nasıl karşılaştırıldığından emin değilim.
  • MicroPython'da varsayılan olarak otomatik olarak yapılandırılmış yerleşik bir WebREPL vardır. NodeMCU'da benzer yerleşik bir şey yok gibi görünüyor.
  • NodeMCU, muhtemelen daha uzun olduğu için şu anda daha büyük bir topluluktan yararlanıyor gibi görünüyor.
  • MicroPython belgeleri tamamen gayrı resmi bir yapıya sahiptir ve C kodunun genişletilmesi söz konusu olduğunda tamamen eksiktir. NodeMCU belgeleri mükemmel görünüyor.

Gereksinimlerinizi tam olarak belirtmeniz ve hoşunuza gitmesi gerekir:>) lütfen? RAM boyutu, dizi boyutu, kayan veya tamsayı, RAM verimliliği, CPU hızı, tepki süreleri, vb.
Tony Stewart Sunnyskyguy EE75 15:17

Yanıtlar:


17

İşte Lua ve Python atışlarının yerine biraz farklı bir yaklaşım:

En popüler ESP8266 "çalışma zamanlarından" altısı:

  1. AT Komut SET. 8266 başka bir MCU ile eşleştirildiğinde popülerdir. Seri bağlantı noktası üzerinden iletişim kurar. ~ 64k 128k RAM kullanılabilir.
  2. MicroPython. Seri bağlantı noktası veya WIFI / IP üzerinden erişilebilen kullanıcı dostu GUI'ye sahip bir MicroPython komut dosyası yorumlayıcısı. ~ 30k 128k RAM kullanılabilir.
  3. Lua / NodeMCU. Seri bağlantı noktası üzerinden erişilebilen kullanıcı dostu GUI'ye sahip bir LUA kod yorumlayıcısı. ~ 40k 128k RAM kullanılabilir.
  4. JavaScript / Espruino. Seri bağlantı noktası veya WiFi / IP üzerinden erişilebilen kullanıcı dostu GUI'ye sahip bir JavaScript yorumlayıcısı. ~ 20k 128k RAM kullanılabilir.
  5. Cı / IDE 12E. ESP8266 yanıp sönen araç ve standart Arduino IDE kullanan C kitaplıkları / araçları . ~ 80k 128k RAM kullanılabilir.
  6. Cı / ESP8266_SDK. C üreticiden gelen kütüphaneler / araçlar. Ayrıca örnek uygulamalar koleksiyonu. ~ 512k Flaş. Tahmin edilen 80k 128k RAM kullanılabilir.

Temel öngörü, kodun büyük bölümünün yaygın olduğudur. 1-5'teki birincil kütüphanelerin tümü 6'dan gelir. İnce bir AT / Python / LUA / JavaScript / C katmanının altında birincil kod pratik olarak aynıdır. Bu, performansın (RAM, FLASH, yürütme) de benzer olduğu anlamına gelir.

Hız ve RAM hakkında endişeli göründüğünüz için (flash genellikle iyidir) # 5 seçeneğine ne dersiniz? Arduino, geniş bir örnek koleksiyonu ile kullanılabilir bir IDE'dir. İlk kodunuzu bir saatten daha kısa sürede çalıştırabilirsiniz ve muhtemelen komut dosyası motorlarından daha iyi performans gösterir.

Önemli bellek kullanımı farklılıklarının yokluğunda, çok sayıda kütüphane ve IRC webchat ile aktif bir çevrimiçi topluluk nedeniyle MicroPython'u seçerdim . C modülü ekleme belgeleri iyileştirildi.

Seçenek # 6 size en yüksek optimizasyon potansiyelini sunar ancak daha yüksek karmaşıklık ve daha yüksek öğrenme eğrisinde.

Son olarak iyi bir ESP8266 genel kural: Her TCP / IP bağlantısı ~ 3k bellek tüketebilir. Her zaman 5'ten az eşzamanlı bağlantı bekleyin!

TL; DR: ESP8266 uygulamalarının kodlarının çoğu ortaktır ve benzer şekilde çalışır. İstediğiniz komut dosyası motorunu seçin veya C / IDE-12E'ye geçin. Aynı anda 5'ten fazla IP bağlantısı beklemeyin.


İlgili: Ivan Grokhotkov ve ESP8266 topluluğunun ESP8266'yı Arduino IDE'den programlanacak şekilde nasıl taşıdıklarına dair ilginç bir hikaye: makezine.com/2015/04/03/…
neonzeon

Sadece bunu özetlediğiniz için teşekkür etmek istedim. Aslında bu bilgiyi arıyordum ve bana çok zaman kazandınız, ayrıca bilinmesi gereken bazı perspektifler eklediniz ..
Scott Prive
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.