ESP8266, Arduino IDE vs Lua?

13

Estoy planeando comprar un ESP8266. ¿Realmente necesito aprender Lua para jugar con él? He visto a algunas personas usarlo con el IDE Arduino estándar.

¿Necesita un firmware personalizado para usar Arduino IDE en lugar de Lua?

El IDE de Arduino me parece mejor porque ya conozco la sintaxis. ¿Hay algún inconveniente en usar el IDE de Arduino en lugar de NodeMCU con Lua?

n0tis
fuente

Respuestas:

9

Usar el Arduino IDE es un firmware personalizado. Eso es lo que estás escribiendo. No necesita ningún firmware nuevo porque el nuevo firmware es lo que está escribiendo.

No puedo pensar en ninguna desventaja de usar C ++ para programar el ESP8266 en lugar de Lua; de hecho, solo puede ser un beneficio ya que no está utilizando un lenguaje interpretado que será más lento que el código compilado de forma nativa.

Majenko
fuente
3
Entonces, ¿por qué la mayoría de la gente usa NodeMCU con Lua?
n0tis
3
@ n0tis Porque está preinstalado y es muy fácil de usar. También se les dice que lo usen cuando lo compren y no lo sepan mejor.
Majenko
1
@ n0tis Solo los he programado en C ++ y no haría nada más. Al final del día, siempre puede volver a instalar el firmware del intérprete LUA y volver a LUA si no continúa con la programación al estilo Arduino. Nada es permanente: puede cambiar de opinión cuando lo desee.
Majenko
3
Es Lua, no LUA. No es un acrónimo. Ver ¿Qué hay en un nombre? . ¿Cómo estás usando Lua en el Arduino?
Nick Gammon
2
Sí, solo compila y carga. El firmware lua o el firmware AI thnker AT son solo programas cargados en la placa: uno para interpretar el script Lua y el otro para interpretar los comandos AT. Al igual que tus bocetos de Arduino.
Majenko
11

Lua, como muchos lenguajes de secuencias de comandos, tiende a hacerte mucho más productivo como programador: las cosas se vuelven mucho más fáciles a medida que trabajas en un nivel de abstracción más alto y no te preocupas por cosas triviales como la administración de memoria. Alcanza los mismos objetivos con muchas menos líneas de código. Por otro lado, aunque hace que el desarrollo sea más rápido, también hace que la ejecución del programa sea más lenta. Si esta es una buena compensación o no, depende mucho de la aplicación particular que desee escribir.

En su caso particular, también debe tener en cuenta el hecho de que no conoce Lua y que ya conoce tanto el lenguaje C ++ como la API de Arduino. Entonces no puede extraer los beneficios de Lua en un solo proyecto, debido al tiempo necesario para aprender el idioma. Puede considerar aprender el idioma como una inversión, probablemente valga la pena si va a programar mucho en esta plataforma, probablemente no valga la pena si es solo para un proyecto único y lo suficientemente simple. Si no está seguro, le sugiero que eche un vistazo a la API proporcionada con Lua en esta plataforma: ¿qué tan bien se ajusta a su proyecto? ¿Es un ajuste significativamente mejor que la API de Arduino?

Edgar Bonet
fuente
1

Recomiendo encarecidamente quedarse con el IDE ARDUINO!

A pesar de que la programación en C ++ no es tan amigable y versátil como Lua (¡trabajar con Esplorer es realmente un sueño hecho realidad!), ¡Lua es MUY INESTABLE E IMPREDECIBLE!

Puede ejecutar un programa simple de diez líneas y funciona bien por un día ... dos ... y de repente, en el tercer día, el chip se cuelga inesperadamente, ¡y sin ninguna razón! Si tiene suerte, el chip se reiniciará y el programa comenzará a ejecutarse nuevamente ... ese NO fue mi caso. ¡Tuve que volver a cargar el programa nuevamente! Después de 3 ciclos como este, decidí abandonar a Lua ... PARA SIEMPRE.

usuario3152171
fuente
2
La misma experiencia aquí. Y realmente, realmente me gustaba Lua.
Si. Lua como idioma es una experiencia interesante. En NodeMCU, sobre todo una frustración ..
DDA
2
Me gusta lua y la REPL. También me gusta js en el ESP8266 (espruino) y su pequeño tamaño. Como programador de sistemas embebidos, está muy claro que muchas de las bibliotecas Arduino están escritas por programadores no embebidos que desperdician y / o fragmentan valiosa memoria. Utilizo Arduino pero hago cosas como usar mi propia gestión de cadenas de C en lugar de esa fea clase de C ++. La memoria es una mercancía para apreciar, no para abusar.
uDude
0

Perdón por toparme, pero este hilo me ayudó a decidir por Arduino IDE.

Comencé con Arduino IDE pero no pude hacerlo funcionar con ESP-07. Se trasladó a NodeMCU y Lua con Esplorer. Me tomó un tiempo hacerlo funcionar también debido a la extraña velocidad de transmisión del cargador de arranque. Primero, parecía tan fácil configurar un servidor WEB, pero el problema era que todos los ejemplos encontrados se basaban en un antiguo FW 0.96, y probar con el último 2.1 no funcionó en absoluto. Así que darme cuenta de que la gente no había hecho mucho con los nuevos FW me dio dudas.

¡Ahora con Arduino IDE las cosas comienzan a funcionar como deberían! :)

PeteR
fuente