¿Es aconsejable mantener el IDE de Arduino?

24

¿Es mejor pasar al estudio AVR (o alguna otra alternativa mejor?) Sobre el IDE de Arduino. Siente que es tan simple e infantil. Necesito conocer la idea y la elección de los expertos.

Anubis
fuente
1
¿Por qué no pruebas AVR studio? Solo usted puede decidir si se ajusta a sus necesidades y qué es más rápido / fácil para usted .
PetPaulsen
3
@PetPaulsen sí, sé que esa es la mejor manera. Lo haré pronto (probablemente mañana). Pero solo quería saber cómo otros ven esto. También puedes aprender muchas más cosas de esa manera ...
Anubis
El complemento Arduino Visual Studio Pro se actualizó recientemente para admitir Atmel Studio 6.1 . La instalación es inferior a 10 minutos, cualquier boceto de Arduino se puede abrir, editar, compilar, cargar + muchas otras características, como monitores seriales, explorador de ejemplos y depurador USB Arduino
Visual Micro

Respuestas:

19

Una gran ventaja de usar, por ejemplo, AVR Studio es la capacidad de usar todas las bibliotecas creadas para ATmega168 / 328 antes del amanecer de Arduino. Las bibliotecas FFT, las bibliotecas para usar algunos CI oscuros que ha comprado, filtros digitales rudimentarios, y muchos más se pueden encontrar en AVRfreaks y cientos de otros sitios de pasatiempos.

También puede escribir código más eficiente si aprende a utilizar las bibliotecas AVR estándar y estudia la hoja de datos (o tutoriales) del microcontrolador. Para aplicaciones simples, el código arduino es fácil de escribir y depurar. Sin embargo, a veces desea controlar el tiempo de manera más eficiente. AnalogRead()necesita 100 µs para ejecutarse. Eso corresponde a 10ksps (miles de muestras por segundo). Puede bombear fácilmente eso a 70ksps si accede al código de bajo nivel para el ATmega168 / 328. Puede hacer todo eso en el IDE de Arduino, por supuesto, pero en algún momento sus proyectos pueden volverse demasiado complejos y querrá escribir sus propias bibliotecas con funciones más rápidas. AVR Studio podría ser más adecuado para eso.

Además, si alguna vez desea programar un chip AVR distinto de los ofrecidos por Arduino, necesitará un programador y un IDE diferente. Pequeños proyectos que usan 1kB de código se pueden hacer en un ATtiny. Puede comprar una docena de esos por el precio de un solo ATmega328. Esos chips son baratos y tienen la mayoría de las capacidades de Arduino: I2C, SPI, ADC. ¡Incluso puede encontrar bibliotecas que agreguen una interfaz USB HID! ¡Sin controladores en serie ni nada!

Personalmente, primero escribo código en Arduino IDE, sin optimización de código. Si funciona, ese código puede transcribirse fácilmente en bibliotecas estándar de C ++ y hacerse más eficiente.

Jonny B Good
fuente
26

Es simple porque tiene que ser accesible para todos , y eso funciona: todos y su hermana pequeña pueden programar Arduino.

Si cree que puede manejar algo más como la programación real , sin duda lo haría. Tendrás que escribir más código, pero también tendrás más control. Un punto importante: la biblioteca Arduino es terriblemente ineficiente: funciona como DigitalWritey DigitalReadse puede hacer hasta 50 veces más rápido .

stevenvh
fuente
Wow, nunca me di cuenta de que era tan ineficiente. Sabía que había gastos generales, pero ... wow.
Polinómico
2
Gracias por las noticias sobre DigitalRead/Write. Nunca lo supe ..
Anubis
77
@ Anubis: descubrí JeeLabs solo hace poco. Tienen uno de los mejores blogs que he visto. Definitivamente lectura recomendada.
stevenvh
2
Hubo una pregunta hace un tiempo sobre la aceleración de E / S digital de Arduino: electronics.stackexchange.com/questions/22585/…
Jon L
12

La mayoría de las respuestas se han centrado en usar la placa Arduino como una placa AVR estándar. Pero también puede usar un IDE más avanzado y aún aprovechar la simplicidad de la codificación Arduino y las bibliotecas integradas (junto con las desventajas mencionadas anteriormente). EngBlaze acaba de hacer un tutorial sobre esto: Tutorial: Uso de Atmel Studio 6 con proyectos Arduino

ViennaMike
fuente
3

El IDE de Arduino cambia la eficiencia del código por conveniencia y velocidad de desarrollo para proyectos pequeños . Debido a que los expertos también tienen plazos , es perfectamente aceptable usar el IDE de Arduino para una prueba rápida de concepto o para ayudar a depurar otro proyecto.

Si desea especializarse en el desarrollo de software integrado, debe poder utilizar herramientas de desarrollo más potentes, como AVR Studio o avr-gcc y su IDE preferido.

Ir más allá de dominar las herramientas de desarrollo, aprender el funcionamiento interno de un microcontrolador y conocer algo de ensamblaje es definitivamente una ventaja si tiene la intención de trabajar en sistemas con poca memoria y / o requisitos de baja potencia y / o alto rendimiento.

Sylvain
fuente
Gracias por la respuesta detallada, prefiero eso. Ciertamente estoy de acuerdo con eso, especialmente con el último punto. Aunque soy nuevo en los procesadores Atmel, sé un poco más sobre la organización interna de los PIC y no puedo hacer socódigos de ensamblaje complejos. Aunque eso parece un poco difícil, puede aprender exactamente cómo se comporta el microcontrolador. Creo que muchos encontrarán útil esta respuesta. Espero que obtengas más votos: D .. (y esta es tu primera respuesta, ¿eh?).
Anubis
2
Hoy en día, casi no hay ninguna situación en la que sea útil tener fluidez en el ensamblaje (poder codificar sin mirar constantemente en la documentación). Dominar su compilador , conocer sus problemas y las buenas opciones, es mucho más útil. Buena suerte.
Sylvain