¿Es mejor moverse al estudio AVR (o cualquier otra alternativa mejor) sobre el IDE de Arduino? Siento que es tan simple e infantil. Necesito conocer la idea y elección de los expertos.
¿Es mejor moverse al estudio AVR (o cualquier otra alternativa mejor) sobre el IDE de Arduino? Siento que es tan simple e infantil. Necesito conocer la idea y elección de los expertos.
Una gran ventaja de usar, por ejemplo, AVR Studio es la capacidad de usar todas las bibliotecas creadas para ATmega168 / 328 antes de los albores de Arduino. Las bibliotecas FFT, las bibliotecas para el uso de algunos IC 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 un 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 eso fácilmente a 70 cps si accede al código de bajo nivel para el ATmega168 / 328.
Por supuesto, puedes hacer todo eso en el IDE de Arduino, pero en algún momento tus proyectos pueden volverse demasiado complejos y querrás escribir tus 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 cualquier chip AVR que no sea el ofrecido por Arduino, necesitará un programador y un IDE diferente. Los proyectos pequeños que usan 1kB de código se pueden hacer en un ATTIN. Puedes 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 puedes encontrar bibliotecas que agreguen una interfaz USB HID! No hay controladores en serie ni nada!
Personalmente, primero escribo el código en el IDE de Arduino, sin optimización de código. Si funciona, ese código se puede transcribir fácilmente a las bibliotecas estándar de C ++ y se puede hacer más eficiente.
Es simple porque tiene que ser accesible para todos , y eso funciona: todos y su hermana pequeña pueden programar Arduino.
Si siente que puede manejar algo más como Real Programming , ciertamente 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: funciones como DigitalWrite
y DigitalRead
pueden hacerse hasta 50 veces más rápido .
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 de 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
El IDE de Arduino intercambia eficiencia de código por conveniencia y velocidad de desarrollo para proyectos pequeños . Debido a que los expertos también tienen fechas límite , es perfectamente aceptable utilizar el IDE de Arduino para una prueba de concepto rápida 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 un poco de ensamblaje es definitivamente una ventaja si tiene la intención de trabajar en sistemas con poca memoria y / o bajo consumo de energía, y / o alto rendimiento.
Lea otras preguntas en las etiquetas microcontroller arduino