Pages: [1]   Go Down
Author Topic: corso arduino  (Read 1450 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti!

Da poco sto cercando di dedicarmi al mondo Arduino, finora ho letto il forum le varie guide che ci sono in giro, non capendo il perche' tutte le guide partono senza spiegare quasi nulla della sintassi del linguaggio, si da per scontato oppure chi ha creato Arduino l'hafatto per un preciso target di persone, a me sembra fatto per chi di elettronica e programmazione non ne voglia sapere piu' di tanto.

Si parla di linguaggio processing, simile al C, mi domando come per il C esiste il  Brian W. Kernighan & Dennis M. Ritchie, per il linguaggio di Arduino esiste una Bibbia a cui far riferimento?
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5492
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io ti consiglio di prenderti un libro di C e non C++ o C.Net e studiatelo per bene, anche se è un linguaggio spiegato per il pc in quei libri ti insegnano le basi della programmazione, ti va bene anche un libro delle superiori...
in libreria sapranno consigliarti per bene smiley
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21267
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Leggiti il libro di Brian W. Kernighan & Dennis M. Ritchie
La sintassi é quella; Il linguaggio col quale programmi Arduino é C con tante funzioni fatti per arduino o per dei Integrati collegati a Arduino.
Il compiler che usi con Arduino é quello ufficiale AVRGCC della Atmel per i ATmega e altri loro  controller.
Arduino nasconde tante impostazioni e librerie aggiunte in automatico.

Ciao Uwe
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 166
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

caspita e io che credevo che bastava la guida d M  Banzi!! Ok allora comprerò anch'io questo libro!
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Beh, non è che il micro lo programmi parlandogli  smiley-lol
Logged


Pistoia Italy
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti
io conosco il C e il C++, ci ho programmato anche se sono anni che non lo uso ma i libri li ho sempre
Per programmare Arduino mi manca un libro che parli delle specifiche funzioni di Arduino, cosa fanno, come si richiamano ecc.
Ad es. la funzione analogread() legge un valore analogico su un pin ma sul C non la troverai mai.
Indicate un libro (possibilmente in Italiano) dove queste funzioni specifiche di Arduino sono spiegate.
Una volta capite queste funzioni si può prendere i prg scritti x arduino e cercare di capire qualcosa
Franco
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non è in italiano, ma il Reference del sito riporta tutte le funzioni specifiche di Arduino
Logged


0
Offline Offline
Jr. Member
**
Karma: 0
Posts: 52
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao come te sono pienamente d'accordo sul fatto che in italiano esista poco di specifico,come sempre del resto! per una vera e propia espansione di arduino in larga scala anche in italia dovrebbero esserci. Piu' corsi insegnare le basi da 0 per poi progredire, di sicuro nascerebbero idee nuove da persone che sono scoraggiate dalla poca documentazzione che trovano in lingua madre. certo voi direte che sulla rete si trova di tutto e questo e' vero ma provate a pesare ad una persona che non conosce arduino sente che e'un vanto italiano fa delle ricerche su internet,e cosa trova tutorial in inglese i progetti piu belli spiegati in inglese,spagnolo,tedesco,francese video su youtube in inglese,tedesco,spagnolo in italiano ti fanno vedere come accendere un led oppure video senza spigazione e ti fanno vedere muovere un servomotore, uno che ne vuole sapere qualcosa se non sa l'inglese difficilmente si applica e si sforza di approfondire qualcosa che forse gli piacera'


Cmq sul sito grix.it fai la ricerca sulla sezzione tutorial troverai una traduzione del notebook arduino parla della programmazione e' molto utile
Logged

0
Offline Offline
Faraday Member
**
Karma: 30
Posts: 2905
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Purtroppo è vero non c'è un libro dedicato al linguaggio arduino, il motivo è semplice:
Il "linguaggio" usato da Arduino non è un vero linguaggio, un liguaggio presume sia stato sviluppato un compilatore.
Invece viene usato il compilatore avr-gcc che è basato su GNU GCC.

Le funzioni descritte nel reference sono disponibili all'interno di una libreria di funzioni e classi C++, "core".

Per evitare lo studio del C/C++ al principiante Arduino IDE preprocessa il sorgenti e poi avvia il compilatore avr-gcc.
Uno dei compiti del preprocessore di Arduino è quello di unire  tutti i file sorgente in un'unico file con estensione .cpp che poi viene dato in pasto al compilatore e poi viene collegato alla libreria "core".

Questo comporta un certo disaggio perchè non risolvi studiando solo il libro C/C++, ma devi pensare a tutte le conseguenze che comporta il fatto di unire tutti i file sorgente in un solo file. Cioè tutte le variabili sono globali, se dichiari due variabili con lo stesso nome ma in file differenti dovresti ricevere errore durante la compilazione a meno che il preprocessore di Arduino ci metta una pezza prima.

Il linguaggio C usa un suo preprocessore e nel libro C questo è documentato, il preprocessore Arduino invece non si sa con precisione cosa fa.
Si concordo ci vorrebbe un libro totalmente orientato ad Arduino, specie per chi inizia e non ha idea di cosa sia un linguaggio, copilatore e microntroller.

Ciao.



Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

0
Offline Offline
Newbie
*
Karma: 0
Posts: 15
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Il linguaggio C usa un suo preprocessore e nel libro C questo è documentato, il preprocessore Arduino invece non si sa con precisione cosa fa.
Si concordo ci vorrebbe un libro totalmente orientato ad Arduino, specie per chi inizia e non ha idea di cosa sia un linguaggio, copilatore e microntroller.

Ciao.


Concrodo in pieno quello che avete scritto, noto che le mie perplessita' sono le stesse di altri, in definitiva credo che se si voglia imparare il C Arduino sia il peggiore modo per farlo.
Personalmente mi sono avvicinato ad Arduino per capire, ma proprio non riesco a vedere il lato positivo del fenomeno cosa c'e' di tanto rivoluzionario? forse e' quello di portare l'automazione che puo' fare una scheda a microcontrollore ad altri campi, ma se fosse cosi' perche' si e' scelto uno pseudo linguaggio C che strutturalmente come fai notare anche tu non lo ' basti pensare al fatto delle varibili globali, poteva fare come per i PLC industriali che usano il ladder proprio perche' essenzialmete sono rivolti a chi di elettronica non deve sapere un granche'.

Io vorrei capire il fenomeno, se pensate che la stessa Microchip stia rincorrendo, proponendo schede per l'ambiente Arduino per ragioni che non comprendo, forse per marketing oppure perche' questo modo di programmare ha qualcosa che scusate se mi ripeto mi sfugge
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il "fenomeno Arduino" è stato spiegato bene tempo fa da un intervento personale di Massimo Banzi su risposta ad un thread simile al tuo aperto da Testato in cui poneva la domanda: "ma che cos'ha in più Arduino?".
Ti consiglio di ricercarla e di leggerla.

Dire però che Arduino è il peggior modo possibile di imparare il C non è corretto perché Arduino usa un linguaggio che NON è C puro, è un misto fra Wiring, Processing, C++ e C. E' come una persona di bocca buona che digerisce tutto.

Il compilatore di Arduino è gcc-avr, nulla di strano quindi. Wiring e Processing sono un insieme di librerie che rendono facili le comunicazioni con alcune parti dell'HW: ad esempio, se tu devi accendere un LED fai semplicemente un bel pinMode(pin, OUTPUT) e poi digitalWrite(PIN, HIGH). Senza Wiring/Processing dovresti scriverti tu la funzione per accedere a basso livello alla porta logica del micro che controlla l'uscita sulla quale hai il led e, sempre manipolando i registri del micro, attivarla come output e poi portarla allo stato logico HIGH. Tutto ciò si traduce in 2 semplici funzioncine mnemoniche, facili da ricordare.

La schedina poi è quasi uno standard e sai che "entrando" nel mondo Arduino hai accesso ad un sacco di risorse software, un sacco di HW prodotto da altri e compatibile, un sacco di schemi, sketch e siti, insomma.... una bella pacchia.
Logged


0
Offline Offline
Faraday Member
**
Karma: 30
Posts: 2905
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il tentativo è quello di semplificare lo sviluppo all'utente che lo sviluppo e mantenimento del progetto software arduino.
Il Ladder non ha la flessibilità che ha il C/C++ e costrigerebbe l'utente ad usare un solo linguaggio.
Se non fosse chiaro la scheda è programmabile in C/C++/assembly, ma per fare questo devi usare AVR Studio di Atmel o un'altro IDE generico adattato per usare il compilatore avr-gcc.

Quote
Senza Wiring/Processing dovresti scriverti tu la funzione per accedere a basso livello alla porta logica del micro che controlla l'uscita sulla quale hai il led e, sempre manipolando i registri del micro, attivarla come output e poi portarla allo stato logico HIGH. Tutto ciò si traduce in 2 semplici funzioncine mnemoniche, facili da ricordare.

Io da questa spiegazione potrei capire che nel processo di compilazione interviene Wiring/Processing e questo mi porto fuori strada la prima volta che scoprì arduino. Processing è un altro mistero, dal momento che gira intorno a java io ne sto alla larga e penso da ignorante che sia una libreria java o un miniframework.

Quindi Processing/Wiring ecc non intervengono nel processo di compilazione, cio che interviene è il preprocessore Arduino (che è integrato nell'IDE), la libreria "core", che viene compilata e trasformata in static lib ogni volta che compiliamo il nostro progetto così è possibile usare -mmcu=mcu_name e la definizione di F_CPU=clock.

Il bello è che la libreria è rilasciata sotto LGPL e quindi puoi vedere come funziona, e puoi vedere che il main fa parte della lib stessa.

Le funzioni sono comode, così come le classi ed tutto il resto, poi se si ha motivo si può sempre usare AVR Studio, certo solo gli utenti Windows hanno questo privilegio.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 325
Posts: 22498
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Eh, no. Anch'io credevo che Processing fosse la piattaforma di sviluppo, invece Processing è anche un linguaggio.
Banzi lo spiegò bene il legame che c'era tra i vari linguaggi.

In origine nacque una schedina di prototipazione con un suo linguaggio, Wiring, il tutto progettato da uno studente dell'IDEA. Wiring derivava da Processing.

Da Wiring il team di Arduino ha ricavato il suo linguaggio, tant'è che fino alla versione 0022 hai i file Wiring chiamati così nel core di Arduino.
Logged


Pages: [1]   Go Up
Jump to: