È consigliabile attenersi all'IDE di Arduino?


24

È meglio passare a AVR studio (o qualsiasi altra alternativa migliore?) Sull'IDE di Arduino. Sento che è così semplice e infantile. Ho bisogno di conoscere l'idea e la scelta degli esperti ..


1
Perché non provi AVR Studio? Solo tu puoi decidere se si adatta alle tue esigenze e cosa è più veloce / più facile per te .
PetPaulsen,

3
@PetPaulsen sì, lo so che è il modo migliore. Lo farò presto (probabilmente domani). Ma volevo solo sapere come gli altri lo vedono. Puoi anche imparare molte più cose in questo modo ...
Anubi,

Il plug-in Arduino Visual Studio Pro è stato recentemente aggiornato per supportare Atmel Studio 6.1 . L'installazione è a meno di 10 minuti, qualsiasi schizzo di Arduino può essere aperto, modificato, compilato, caricato + molte altre funzionalità come monitor seriali, esempi di esplorazione e debugger USB Arduino
Visual Micro,

Risposte:


19

Un enorme vantaggio dell'utilizzo di AVR Studio, ad esempio, è la possibilità di utilizzare tutte le librerie create per ATmega168 / 328 prima dell'alba di Arduino. Librerie FFT, librerie per l'utilizzo di alcuni circuiti integrati oscuri che hai acquistato, filtri digitali rudimentali e molti altri possono essere trovati su AVRfreaks e centinaia di altri siti di hobby.

Puoi anche scrivere un codice più efficiente se impari a utilizzare le librerie AVR standard e studi il foglio dati (o tutorial) del microcontrollore. Per applicazioni semplici, il codice arduino è facile da scrivere ed eseguire il debug. Tuttavia, a volte si desidera controllare i tempi in modo più efficiente. AnalogRead()necessita di 100 µs per l'esecuzione. Ciò corrisponde a 10ksps (migliaia di campioni al secondo). Puoi facilmente pomparlo a 70ksps se accedi al codice di basso livello per ATmega168 / 328. Puoi fare tutto questo nell'IDE di Arduino, ovviamente, ma a un certo punto i tuoi progetti potrebbero diventare troppo complessi e vorrai scrivere le tue librerie con funzioni più veloci. AVR Studio potrebbe essere più adatto a questo.

Inoltre, se vuoi mai programmare un chip AVR diverso da quelli offerti da Arduino, avrai bisogno di un programmatore e di un IDE diverso. Piccoli progetti che utilizzano 1kB di codice possono essere eseguiti su un ATtiny. È possibile acquistare una dozzina di quelli al prezzo di un singolo ATmega328. Quei chip sono economici e hanno la maggior parte delle funzionalità di Arduino: I2C, SPI, ADC. Puoi persino trovare librerie che aggiungono un'interfaccia HID USB! Nessun driver seriale o altro!

Personalmente, scrivo prima il codice nell'IDE di Arduino, senza l'ottimizzazione del codice. Se funziona, quel codice può essere facilmente trascritto in librerie C ++ standard e reso più efficiente.


26

È semplice perché deve essere accessibile a tutti , e funziona: tutti e la sua sorellina possono programmare Arduino.

Se ritieni di poter gestire qualcosa di più simile alla programmazione reale, lo farei sicuramente. Dovrai scrivere più codice, ma avrai anche più controllo. Un punto importante: la libreria Arduino è orribilmente inefficiente: funzioni come DigitalWritee DigitalReadpossono essere realizzate fino a 50 volte più velocemente .


Caspita, non ho mai capito che fosse così inefficiente. Sapevo che c'erano spese generali, ma ... wow.
Polinomio,

2
Grazie per le notizie su DigitalRead/Write. Non l'ho mai saputo ...
Anubi,

7
@Anubi - Ho scoperto JeeLabs solo di recente. Hanno uno dei migliori blog che abbia mai visto. Letture sicuramente consigliate.
Stevenvh,

2
Qualche tempo fa c'era una domanda sull'accelerazione digitale IO di Arduino: electronics.stackexchange.com/questions/22585/…
Jon L

12

La maggior parte delle risposte si è concentrata sull'uso della scheda Arduino come scheda AVR standard. Ma puoi anche utilizzare un IDE più avanzato e sfruttare ancora la semplicità della codifica Arduino e delle librerie integrate (insieme agli svantaggi sopra menzionati). EngBlaze ha appena svolto un tutorial su questo: Tutorial: utilizzo di Atmel Studio 6 con progetti Arduino


3

L'IDE Arduino scambia l'efficienza del codice per praticità e velocità di sviluppo per piccoli progetti. Poiché anche gli esperti hanno delle scadenze , è perfettamente accettabile utilizzare l'IDE di Arduino per una rapida dimostrazione del concetto o per aiutare il debug di un altro progetto.

Se vuoi specializzarti nello sviluppo di software embedded, devi essere in grado di usare strumenti di sviluppo più potenti, come AVR Studio, o avr-gcc e il tuo IDE preferito.

Andare oltre la padronanza degli strumenti di sviluppo, l'apprendimento del funzionamento interno di un microcontrollore e la conoscenza di alcuni assemblaggi è sicuramente un vantaggio se si intende lavorare su sistemi con memoria ridotta e / o requisiti di bassa potenza e / o prestazioni elevate.


Grazie per la risposta dettagliata, preferisco quello. Sono sicuramente d'accordo, soprattutto con l'ultimo punto. Anche se sono nuovo per i processori Atmel, conosco qualcosa in più sull'organizzazione interna dei PIC e non posso fare socodici di assemblaggio complessi. Anche se sembra un po 'difficile, puoi imparare esattamente come si comporta il microcontrollore. Penso che molti troveranno utile questa risposta. Spero che otterrai più voti: D .. (e questa è la tua prima risposta, eh?).
Anubi

2
Al giorno d'oggi, non c'è quasi nessuna situazione in cui essere fluente nell'assemblaggio (in grado di codificare senza consultare costantemente la documentazione) è utile. Padroneggiare il tuo compilatore , conoscerne i nodi e le buone opzioni, è molto più utile. In bocca al lupo.
Sylvain,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.