Alcune Domande su Arduino

Ciao a tutti, avrei una mezza idea, anzi forse più che mezza, di migrare dal mondo Pic, verso quello Arduino, se non altro perchè mi sembra ci siano molti più progetti, idee, e informazioni. Ho però alcune cose da chiedervi e scusate se ripeto qualcosa che vi è già stato chiesto, ma condenso tutto qui in un post solo :) La prima cosa che non mi è piaciuta molto è l'editor/compiler di Arduino, quindi la mia prima domanda è, si può usare un qualsiasi altro Editor ? Beh qui mi rispondo da solo, ma il problema è che usando un'altro editor che magari usi l'intellisense o il debuger o quant'altro ecc.... sono costretto a programmare in un linguaggio diverso da quello diciamo originale arduino. In effetti ho provato AVR Studio e MikroC AVR, ma come succedeva anche per i PIC le istruzioni sono diverse da quelle dello Sketch arduino, diciamo sono più "Ci-izzate" :) Quindi cosa mi consigliate ? Persistere fedelmente con lo Sketch di Arduino (anche se un poco bruttino) o usare tranquillamente altro ? Oppure mi suggerite un editor completo o un sistema per programmare in stile arduino? Un'altra cosa: Dove trovo tutto il set completo di istruzioni arduino ? (intendo quelle originali) L'ultima: ma Arduino e AVR sono la stessa cosa? Grazie un saluto Paolo

se non altro perchè mi sembra ci siano molti più progetti, idee, e informazioni.

sul compiler anche se non ti piace ... secondo me ti sei risposto da solo :) quando avrai un problema sullo sketch ti devi arrangiare da te.

ciao

  1. l’editor dell’IDE di Arduino è sempliciotto, è vero. Però considera che il progetto Arduino è destinato alle masse, inserire cose aggiuntive nell’editor aumentava la sua complessità, rendendolo poco adatto ai principianti.

  2. il linguaggio di Arduino deriva dal Wiring/Processing ed essenzialmente è un misto di C/C++ con funzioni specifiche per gestire l’hardware di Arduino (ad esempio digitalWrite per cambiare lo stato di un’uscita)

  3. le funzioni di Arduino si trovano nel suo core, che è dentro all’IDE: /hardware/arduino/cores/arduino: qui trovi tutti i file con le funzioni di Arduino

  4. Ci sono progetti per l’uso di altri IDE in giro per la rete (ad esempio plugin per Eclipse) ma alla fine o cambi radicalmente e scrivi direttamente in C, compili da terminale e poi flashi sempre da terminale oppure usi l’IDE che, comunque, il suo lavoro lo fa, rendendo anche semplice l’upload del codice

  5. AVR è una famiglia di microcontrollori prodotta da Atmel a cui appartiene l’Atmega328, che è il cuore di Arduino

Grazie Leo :) non ho fatto a tempo a scrivere che mi hai già risposto :) Sei stato molto gentile ed esaustivo. Comunque per quanto riguarda l'editor di Arduino, se devo usare lo Sketch so già che soffrirò parecchio :) Non è che io sia un programmatore per professione, ma ho usato editor per Visual Basic, per PHP, per PIC ecc......e tutte quelle piccole diavolerie che ti aiutano a scrivere e correggere il codice mi mancheranno. Uno su tutti il Debugger. Molti mi diranno che non serve a niente, ma sinceramente io ne ho sempre fatto largo uso soprattutto quando dovevo capire gli script fatti da altri, per tracciarne le varibili e i passaggi di valori o semplicemente per verificare un ciclo for. Si si lo so, sono abituato bene :) Un'altra cosa che non c'è nello Sketch, è la "produzione" di un file hex da dare in pasto a un simulatore. Infatti ora come ora non ho comprato nulla e sto solo facendo le mie prove diciamo virtualmente. Mi arrangio un poco con Virtual Breadboard. Vabbeh per intanto grazie di nuovo Leo, ci risentiamo senz'altro. Paolo

Un attimo. "Sketch" è il nome che Arduino ha deciso di assegnare al codice. Quindi Sketch indica il programma, non l'editor. L'editor non ha un nome proprio, normalmente si indica con IDE e basta. Si capisce che ci stiamo riferendo all'editor.

I file hex ed elf Arduino li crea. Se premi l'icona "Compila" (quella con la freccetta come disegno) insieme al tasto SHIFT attivi la modalità Verbose e nella finestra in basso ti vengono fuori un sacco di info, compresa la cartella temporanea in cui Arduino compila e parcheggia i file prima dell'upload.

Di nuovo grazie Leo, per la "dritta" sull' IDE e perdona l'imprecisione ma in effetti non avendo un nome non sapevo come chiamarlo, comunque tu hai capito perfettamente :) Paolo

Pensa buffa la vita.... io volevo invece provare il mondo PIC.... curiosità personale.... carattere che mai s'accontenta ecc... XD

Un'altra cosa: Dove trovo tutto il set completo di istruzioni arduino ? (intendo quelle originali)

Visto che é il linguaggio C/C++ ci sono un sacco di funzioni e librerie. Quelle standard trovi su http://arduino.cc/en/Reference/HomePage Ciao Uwe

Grazie anche a te Uwefed per la segnalazione.

Leo, che dirti ? Io non è che me ne vado dal mondo PIC, vorrei solo provare Arduino. (ma ancora non è detta :) ) Non so nemmeno valutare se sia meglio PIC o Arduino, anche se propendo per la prima opzione. La cosa che invece mi colpisce molto di Arduino è la quantità di progetti, idee, informazioni, hackmode, ecc.... che si trova in rete. Non credo di aver visto la stessa mole di informazioni provenire dal mondo PIC. Tra le altre cose nel mondo PIC è piuttosto semplice anche costruirsi un programmatore (come ho fatto io) e per lo meno per quanto mi riguarda, senza avere avuto mai problemi di sorta. Prova, secondo me ti troverai bene :)

Paolo

Non me lo dire così perché mi tenti XD XD A me piace sperimentare, cambiare, provare cose nuove. Difatti ultimamente non lavoro più direttamente con l'Arduino ma con chip standalone. Per "chip", intendo non solo l'Atmega328 ma anche altri (dai piccoli Tiny85 ai grandi Atmega644). Mi diverto provare cose nuove e diverse.

Sì, l'Arduino è molto diffuso: forse al mondo non più dei PIC, ma qui in Italia di sicuro sì.

Ti rispondo in merito al Debugger, con una frase che ho trovato sull' intro al numero di Elettronica In di Ottobre.

Dopo una serie di considerazioni sul mondo Arduino, Arsenio Spadoni scrive:

"...A questo punto vien da chiedersi cosa manca ad Arduino per diventare uno standard professionale "completo". Per noi una sola cosa: un valido Debugger. Voi cosa ne pensate? "

:)

Ciao, Fab.

Ciao Leo no, no non voglio essere il tuo diavoletto tentatore :P Però visto che sei come me (nel senso che ti piace provare) allora perchè no ? Pensa che io ho iniziato con i NutChip :( Con i Pic non è che abbia fatto grandi cose, e per di più non me la sono sentita di iniziare con l'editor proprietario e cosi ho utilizzato MikroBasic all'inizio e poi piano piano un poco di MikroC e devo dire che mi sono trovato piuttosto bene. Ecco perchè avrei quasi voluto provare ad usare MikroC AVR per gli arduino. Io credo che dal punto di vista strutturale e di programmazione sia più impegnativo il Pic, solo che come avevo già scritto non si trovano in rete molte idee e progetti. Alla fine sono sempre il lampeggio del led, il misuratore di temperatura, il servo motore, ecc.... Vabbeh dai se avrò tempo di approfondire faccio bagaglio anche di questa esperienza :) Senti Leo, cosa vuoi dire che lavori in StandAlone ? Perchè prima come lavoravi ? Intendi dire che usi il Chip ad esempio su BreadBoard e lo programmi direttamente. No perchè io sul pic ho fatto il lavoro da certosino di programmarlo sul programmatore e ogni volta staccarlo e inserirlo nel circuito. Cosi intendi ?

Ciao f.schiano Beh la mia risposta alla domanda sei hai letto i miei post precedenti, la sai :) Per me il Debugger è un utility di cui non posso fare a meno. Ad ogni modo per essere fiscali si potrebbe anche cambiare in meglio la grafica dell'ide, magari rendendola personalizzabile. Aggiungere qualche icona colorata non farebbe male, visto che cosi com'è assomiglia troppo all'ambiente Dos. Si potrebbe implementare l'intellisense, il segnalatore di parentesi, il + e il - che espande o meno un'intera procedura, il watch per guardare i valori di un'operazione, l'etichette contestuali, ecc...ecc... ed altra robetta utile all'implementazione, rendendolo di fatto simile a tanti altri IDE di linguaggi diversi. Ovviamente questa è solo la mia opinione personale :)

Bye Paolo

Sì, per standalone (che vuol dire "in solitario") intendo proprio quella tecnica di usare i microcontrollori da soli in un circuito, non uso tutto l'Arduino (sarebbe una spesa esagerata, se per ogni progetto usassi 26€ di componenti lasciati poi lì a far la muffa perché usati per 1 decimo ;) ).

Per "microcontrollori" intendo che ne uso di diversi di Atmel, non solo il 328, come ti ho detto. Mi piace sperimentare. Di cose concrete non ne ho fatte molte perché mi manca la realizzazione dei PCB domestici, quindi lascio tutto su breadboard anche per mesi :stuck_out_tongue_closed_eyes:

Sai cosa mi frena al provare i PIC? Il dover ristudiarmi tutta l'architettura di quei micro! Siccome questo è un hobby e non un lavoro, non ho una reale necessità né sono obbligato ad usare una famiglia di integrati piuttosto che un'altra. Ormai ho imparato a conoscere benino gli Atmel, e continuo con gli Atmel. D'altronde, per quel che devo fare io, un tipo di chip vale l'altro :P

Per finire il discorso IDE: anche a me tempo fa venne la voglia di provare qualcosa di diverso, di... "professionale". E di prodotti in giro ce ne sono. Però alla fine perdo la comodità che mi da l'IDE di Arduino: ossia apro un programma, scrivo il mio sketch, scelgo il micro, lo flasho. Il tutto senza uscire da quel tool né passare da un software all'altro (non lascio l'IDE per avviare il compilatore e poi non devo barcamenarmi a scrivere le opzioni giuste per il flashatore). Per ora l'unica cosa che veramente mi manca è l'autocompletamento del codice: per uno smemorato come me, è una funzione che se ci fosse nell'IDE di Arduino, mi farebbe fare i salti di gioia ;)

riguardo l'ide in realtà vi era la possibilità di usare eclipse che include tutto quello messo fino ad adesso e in più (dopo averci "smanettato") era possibile caricare direttamente lo sketch su arduino.. http://arduino.cc/playground/Code/Eclipse

pardon non vi è la possibilità di caricare i files direttamente..

comunque vi era un altro IDE sviluppato da gioblu se non ricordo male..

e poi riguardo l'upload si potrebbe fare un interfaccia grafica da cui (una volta salvato il solo sketch non compilato) lo compila e carica su arduino, la cosa sarebbe fattibile e permetterebbe a tutti di caricare un codice fatto con qualsiasi ambiente di sviluppo (anche notepad)

L'ArduOpen di Gioblu è un mod dell'IDE di Arduino con integrate tutte le famiglie di micro attualmente supportate dai vari port in giro per internet. Ma non è una nuova IDE.

Ad una nuova IDE ci sta lavorando MauroTec ma non so a che livello di sviluppo sia e come funzioni.

Sul fare una GUI per caricare uno sketch scritto e compilato, questo non è difficile. Ma ti obbliga, come detto, ad usare più di uno strumento. L'IDE di Arduino, per quanto minimale, permette di fare tutto da un unico ambiente.

OK Leo, allora è la stessa cosa che faccio io con i PIC. Anche io lascio per anni tutto quanto progettato "incollato" sulla Breadboard :) Non avrei grossi problemi a farmi i PCB ma il tempo per starci dietro è veramente scarso. Pensa che mi sono comprato tutto il necessario per costruirmi un bromografo con tanto di Timer progettato con Pic, LCD ecc... Beh è ancora tutto nel pacchetto cosi come è arrivato da più di un anno. L'ho aperto solo per vedere come erano fatte le lampade :) Beh del resto non ho fatto grandi cose nemmeno io e quindi ho sempre cablato tutto su millefori. Poi Leo quali Ide professionali puoi suggerirmi ? Ad ogni modo mi trovo malissimo con L'ide di Arduino, penso che ne utilizzerò un'altra Ide anche se devo convertire le istruzioni. Anzi ti direi che cambiando IDE si lavora in un C un pochettino più reale (void main() per primo) :) Solo vorrei sapere un'altro paio di cose. Ma Arduino che file si prende in "pasto", è un Hex? Perchè in quel caso farei la stessa cosa che faccio ora. Programmo, produco l'Hex, e poi tramite ICprog o WinPic trasferisco lo stesso Hex sul PIC. Come posso fare con Arduino? Cioè cos'è che fa da tramite per il trasferimento dei dati dentro Arduino se non usassi L'ide Arduino? ......a più tardi :) Paolo

Di IDE alternativi da suggerirti non ne ho. Non li ho mai usati. Ho provato tempo fa a configurare Eclipse ma non ci sono riuscito. E poi alla fine sono troppo abituato a lavorare con questo che dopo un po' di tempo mi sono anche assuefatto ai suoi limiti.

Per programmare gli Atmega l'IDE produce un hex che poi dà in pasto a avrdude, un tool che si occupa di flashare l'Atmega328 dell'Arduino. Devi però usare la versione distribuita con l'IDE se vuoi far riconoscere l'Arduino come programmatore, altrimenti devi usare un altro programmatore. Io ho un piccolo USBtinyISP di Adafruit: non è un programmatore professionale però per le mie piccole cose funziona. Alternativamente si può usare l'Arduino come programmatore ISP di altri chip però bisogna configurare l'IDE in modo da potergli far riconoscere micro esterni ad Arduino. Se cerchi Guida programmazione troverai un bel documento di menniti che raccoglie tutte le "scoperte" che abbiamo fatto in questi mesi di prove sui micro in standalone. La guida esamina gli Atmega ma il principio si adatta anche ad altri micro. Io ad esempio uso molto i Tiny (Attiny85, Attiny84) ed il principio è lo stesso.

Poi con calma andrò a documentarmi. Non credo di aver capito adesso ciò che mi hai scritto. Ok il primo passo è che L'IDE produce un Hex e questo mi sta benissimo, poi ovviamente ho bisogno del chip montato su Arduino Uno-Duemilanove...ecc ed alla fine ho bisogno di trasferire l'hex dentro il chip Arduino. In questo caso sono vincolato ad usare l'IDE di Arduino per poi trasferire direttamente il codice, o posso usare un qualsiasi altro Editor/IDE produrre un file Hex e trasferirlo al Chip? Nel caso sia possibile, qual'è il programma al di fuori di quello proprietario che mi permette di fare questo trasferimento? Scusa ma vorrei avere le idee chiare su cosa fare e a quali limitazioni vado incontro. Poi ti chiederò un'altra cosa sui simulatori e la piedinatura dei chip, mmmmmmmm non ho iniziato benissimo :~

Non sei legato all'utilizzo dell'ide di arduino per sviluppare su arduino. Altri programmi come Netbeans o Eclipse o la riga di comando possono venirti incontro. F

Si Federico ti ringrazio, immaginavo di non essere per forza legato all'Ide di Arduino, ma come avrai letto sopra mi manca ancora di sapere come poi riverso il codice su Chip e altre piccole cosucce. Vabbeh dai piano piano prendo confidenza, poi c'è Leo che mi sta facendo scuola :) Leo Birra pagata :)