Go Down

Topic: Atmel Studio e Arduino IDE - Confronto (Read 10541 times) previous topic - next topic

ultrasound91

Salve, dato che le schede arduino includono tutte l'avr atmel, ho pensato di valutare quali soluzioni offre la atmel stessa.
E ho visto che forniscono un software che si chiama Atmel Studio. Mi chiedevo se è superiore ad Arduino IDE, se lo può sostituire e se ci sono differenze rilevanti.

leo72

#1
Sep 25, 2014, 04:24 pm Last Edit: Sep 25, 2014, 04:26 pm by leo72 Reason: 1
Atmel Studio è superiore, e di molto, all'IDE di Arduino.
E' un vero ambiente di sviluppo, un IDE fatto come si deve.

Per contro, perdi i vantaggi della semplificazione introdotta dall'Arduino, ossia una seria di librerie già pronte per gestire tutto, dalla seriale alla linea I2C alla lettura analogica ecc... Con l'Atmel Studio (che io non ho mai usato perché non ho Windows) devi affidarti ad altro. In pratica si tratta di scriverti tutto di tuo pugno o usare librerie Atmel. Inoltre perdi la compatibilità con gli sketch che trovi in giro per la rete, che sono scritti per Arduino, dovresti metterti a riconvertirli tutti a mano.

Aggiungo, per concludere, che l'IDE di Arduino nasce per essere semplice e facilitare l'avvicinamento di chi è alle prime armi. Poi diventa un'abitudine usarla.

ultrasound91

Grazie, è già completa come risposta.
Come scelta personale, dato che sono interessato a usare e studiare gli AVR nel lungo termine,
lo proverò. Convertire gli sketch altrui non rappresenta alcuna difficoltà per me.

tazzo

C'è un estensione che permette di aggiungere gli #include corretti per usare la libreria di Arduino

nid69ita


C'è un estensione che permette di aggiungere gli #include corretti per usare la libreria di Arduino

Visual Micro, mi pare ne ha parlato in un thread Guglielmo (utente gpb01):
https://gallery.atmel.com/Products/Details/fdcf76a8-33b5-4288-9de7-671748b97cdd?
my name is IGOR, not AIGOR

PaoloP


Inoltre perdi la compatibilità con gli sketch che trovi in giro per la rete, che sono scritti per Arduino, dovresti metterti a riconvertirli tutti a mano.


Secondo me basta aggiungere alla sketch il main.cpp di Arduino e i prototipi delle funzioni ed è possibile compilarlo anche con AVRstudio.
Naturalmente bisogna segnalare correttamente ad AVRstudio tutti i percorsi delle librerie incluse comprese quelle del core di Arduino.

leo72

Parlavo ovviamente di Atmel Studio nudo e crudo. Se poi ci sono estensioni che permettono di caricare il codice arduinico senza modifiche questo non lo so perché non ho Win quindi non uso Atmel Studio (anatema su di te, Atmel).

astrobeed


Secondo me basta aggiungere alla sketch il main.cpp di Arduino e i prototipi delle funzioni ed è possibile compilarlo anche con AVRstudio.


Non è così semplice in quanto l'IDE usa un makefile dedicato per compilare, è totalmente diverso da quello che crea Atmel Studio che ha ben altre esigenze.
Scientia potentia est

ultrasound91

#8
Sep 26, 2014, 01:20 pm Last Edit: Sep 26, 2014, 01:56 pm by ultrasound91 Reason: 1
Sono programmatore di software. Il fatto che Atmel Studio esista solo per Windows non è una cosa positiva. Fortunatamente io sono utente Windows ma sviluppo applicazioni desktop multipiattaforma. Per chi è interessato ad Atmel Studio e non ha Windows, mi raccomando, non installate windows su una macchina virtuale, installatelo in dual boot. Per quanto riguarda la compatibilità degli sketch ecc... dedicherò la giornata di oggi a fare questi test. Spesso anche lavorando con IDE di applicazioni desktop, ho la necessità di integrare librerie esterne, di ricompilare driver e modificare manualmente i makefile. Quindi ci lavoro un pò sopra e poi dò il mio riscontro.

gpb01


... mi raccomando, non installate windows su una macchina virtuale, installatelo in dual boot.


Mi scuso se vado un attimo Off-Topic ...

@ ultrasound91 ... potresti giustificare questa tua affermazione ???

Ho Parallels Desktop installato sul mio iMac da parecchio e non ho MAI avuto problemi ad utilizzare programmi Win nella macchina virtuale, compresi programmi che accedono alle porte (... per inciso ... uso poco Atmel Studio, di più MikroC Pro collegato ad una Easy AVR v7 via USB e ci comando anche, senza alcun problema, il programmatore).

Vero che ho un Intel Core 7 a 3.4 GHz e 32 GB di RAM ... ma l'ho sempre usato in passato, anche su macchine con meno memoria ... quindi ???

Guglielmo
Search is Your friend ... or I am Your enemy !

astrobeed


@ ultrasound91 ... potresti giustificare questa tua affermazione ???


Concordo, io uso VMware, sotto W7, sia per Linux che per una sandbox Windows 7, mai avuto problemi.
Scientia potentia est

ultrasound91

Anche io ho VMware. Le macchine virtualizzate le uso per studiare altri sistemi operativi e, per testare programmi provenienti dalla rete principalmente. Se termino lo sviluppo di una applicazione, per fare un test affidabile, la devo eseguire per forza in una macchina reale. Detto questo, le porte seriali sono emulate bene nelle macchine virtuali, ma la probabilità che si verifichi un problema durante la trasmissione dei dati non è tanto remota. Significa che se c'è una variazione delle priorità dei processi effettuata dal sistema operativo, la comunicazione seriale può interrompersi. E rischiate di danneggiare il circuito che state programmando (nel caso di un atmega328 si parla di 3-4 € di danno, quindi non è tanto grave). Comunque le macchine virtuali dovrebbero essere usate solo per effettuare test, non per lavorarci sopra.

astrobeed


Detto questo, le porte seriali sono emulate bene nelle macchine virtuali, ma la probabilità che si verifichi un problema durante la trasmissione dei dati non è tanto remota.


Le macchine virtuali non emulano l'hardware, usano quello presente tramite appositi meccanismi di interscambio dati.
La possibilità di errori sulla trasmissione seriale è sempre presente, non importa se stai sulla macchina reale oppure virtuale, non a caso i software fatti bene usano un protocollo dati con il controllo errori e relative procedure di ripristino/renvio dei dati.

Quote

E rischiate di danneggiare il circuito che state programmando (nel caso di un atmega328 si parla di 3-4 € di danno, quindi non è tanto grave). Comunque le macchine virtuali dovrebbero essere usate solo per effettuare test, non per lavorarci sopra.


E da quando si rompe l'hardware per un errore di trasmissione dati ?
Al limite rischi di fare delle elaborazioni errate, non si rompe nulla.
Certo che se il software è un controllo di processo che gestisce dei macchinari/attuatori, col rischio di fare danni reali, e sul protocollo di trasmissione non c'è il controllo errori, non importa quale sia il layer hardware, chi ha scritto il software è meglio che cambia mestiere..

Scientia potentia est

gpb01


Certo che se il software è un controllo di processo che gestisce dei macchinari/attuatori, col rischio di fare danni reali, e sul protocollo di trasmissione non c'è il controllo errori, non importa quale sia il layer hardware, chi ha scritto il software è meglio che cambia mestiere..


+1    

Guglielmo
Search is Your friend ... or I am Your enemy !

ultrasound91

La probabilità che si verifichi un errore di trasmissione da una macchina virtuale è più alta rispetto a quella da una macchina reale.
Se la trasmissione viene disturbata in modo da alterare eventuali istruzioni che comandano valori di tensione, l'hardware si danneggia.
Non ho capito invece a chi è rivolto l'invito a cambiare mestiere.
Dire "non ho mai avuto problemi, quindi continuo a lavorare così" non è una sicurezza, a un mio amico o ripetuto negli ultimi tre anni di attivare la sincronizzazione dei file sul computer con un servizio cloud. Non mi ha mai ascoltato. Una mattina si è svegliato e l'hard disk era bruciato. Ha perso un progetto software realizzato in un anno e migliaia di €. Il mio consiglio è di non fare mai affidamento sulla fortuna avuta fino a un determinato momento, ma di lavorare in modo da essere pronti ad evitare il peggio.

Go Up