Le basi della programmazione sono indispensabilio e valgono praticamente per ogni linguaggio e per ogni piattaforma hardware, quindi C e C++, C# e Python così come Arduino o PC. Poi nei vari casi si utilizza il linguaggio più opportuno o disponibile. Senza basi sicuramente si possono trovare e utilizzare soluzioni "precotte", ma alla prima modifica ci si pianta. Scondo me un buon approccio può essere quello di iniziare con qualcosa di semplice su Arduino ma ragionare e studiare ogni singola parola dello sketch per capire davvero a cosa serve.
Ad esempio, la parola "serial" porta a studiare cosa è il protocollo RS232, le velocità di trasmissione, i bit di start e stop, ecc. ecc. Idem per RS422, USB e Ethernet.
Imparare a programmare Arduino
38 messaggi
• Pagina 3 di 4 • 1, 2, 3, 4
1
voti
0
voti
GioCosco ha scritto:Ad esempio, la parola "serial" porta a studiare cosa è il protocollo RS232, le velocità di trasmissione, i bit di start e stop, ecc. ecc. Idem per RS422, USB e Ethernet.
Eh appunto...
E' proprio per questo che consigliavo di partire da un "hello world", dai cicli while, for, dagli if and else e magari da PC che è sicuramente piu comodo.
0
voti
Sicuramente le basi vanno "metabolizzate" così come i semplici esempi basici per cercare di capire un codice scorrendolo. Ma come sicuramente voi saprete per un codice serio ci vuole ben altro. Io mi sono cimentato nella realizzazione di un cronografo per armi ad aria compressa con display che mostra numero tiri, Joule, velocità, medie, false letture ecc ma da solo non ci si arriva proprio...classi, librerie, interrupt... 
0
voti
Scusate se dico la mia e vi prego di non crocefiggermi ma se uno comincia da zero e caso mai è pure molto giovane perché non partire con l'assembler ?
Si sceglie un microcontrollore (atmega238 va benissimo) e si comincia ad accendere un led , come tutti i tutorial di Arduino dicono di fare, con la differenza che si capisce esattamente cosa fa il micro.
Secondo me il tempo perso all'inizio lo si recupera abbondantemente dopo .
L'eventuale passaggio al C o altri linguaggi sarà molto più indolore.
Si sceglie un microcontrollore (atmega238 va benissimo) e si comincia ad accendere un led , come tutti i tutorial di Arduino dicono di fare, con la differenza che si capisce esattamente cosa fa il micro.
Secondo me il tempo perso all'inizio lo si recupera abbondantemente dopo .
L'eventuale passaggio al C o altri linguaggi sarà molto più indolore.
0
voti
Gabrieleb ha scritto:Si sceglie un microcontrollore (atmega238 va benissimo) e si comincia ad accendere un led , come tutti i tutorial di Arduino dicono di fare, con la differenza che si capisce esattamente cosa fa il micro.
Ni, per programmare in assembler bisogna già sapere come funziona il micro. Sarebbe istruttivo invece programmare in C ed analizzare il codice assembler decompilato.

0
voti
IlGuru ha scritto:Ni, per programmare in assembler bisogna già sapere come funziona il micro. Sarebbe istruttivo invece programmare in C ed analizzare il codice assembler decompilato.
Scusa ma non sono d'accordo , tanto come funziona il micro prima o poi te lo devi studiare comunque ed anche in C l'architettura del micro la devi più o meno (più più che meno) conoscere.
0
voti
Io dico la mia mini esperienza.
Ho cominciato ai tempi del Dos con i floppy senza HDD e facevamo un po di tutto con il basic poi ho usato per diverso tempo delphi (turbopascal) un linguaggio molto adatto all'apprendimento anche a dire degli esperti.
Poi ho cominciato con i PIC 16F84 e 88 in assembly e ho fatto diversi progettini interessanti con questo bel linguaggio a basso livello dove impari a fare tutto con il poco che hai a disposizione.
Tra cui comandare i display Lcd e i modem Gsm via seriale.
Poi ho provato con i programmi tipo C-Pic e Pascal PIC che però non mi hanno mai soddisfatto fino in fondo.
Poi alla fine sono passato ad Arduino che per me semplice appassionato è stato veramente una ottima soluzione alle mie esigenze sia semplici che complesse.
Puoi farci molto ad alto livello ma anche andare ad interagire sui registri per fare esattamente quello che ti serve con timer, adc, PWM e tanto altro e sfruttare buona parte delle potenzialità del micro.
Ci sono librerie e veramente molto materiale su ogni genere di periferica cosa molto utile se non hai molto tempo.
Poi su questo forum diversi sono contrari a priori a questa piattaforma, ma ognuno ha le sue idee.
Quindi io direi comincia con Arduino se sei un dilettante ed è li che vuoi arrivare.
Ti scegli un testo basico, se sai l'inglese è meglio, che ti spiega tutto da zero e cominci come tutti da "ciao mondo".
Se vai per gradi e ti studi anche le basi vedrai che riuscirai a fare un sacco di cose.
Ho cominciato ai tempi del Dos con i floppy senza HDD e facevamo un po di tutto con il basic poi ho usato per diverso tempo delphi (turbopascal) un linguaggio molto adatto all'apprendimento anche a dire degli esperti.
Poi ho cominciato con i PIC 16F84 e 88 in assembly e ho fatto diversi progettini interessanti con questo bel linguaggio a basso livello dove impari a fare tutto con il poco che hai a disposizione.
Tra cui comandare i display Lcd e i modem Gsm via seriale.
Poi ho provato con i programmi tipo C-Pic e Pascal PIC che però non mi hanno mai soddisfatto fino in fondo.
Poi alla fine sono passato ad Arduino che per me semplice appassionato è stato veramente una ottima soluzione alle mie esigenze sia semplici che complesse.
Puoi farci molto ad alto livello ma anche andare ad interagire sui registri per fare esattamente quello che ti serve con timer, adc, PWM e tanto altro e sfruttare buona parte delle potenzialità del micro.
Ci sono librerie e veramente molto materiale su ogni genere di periferica cosa molto utile se non hai molto tempo.
Poi su questo forum diversi sono contrari a priori a questa piattaforma, ma ognuno ha le sue idee.
Quindi io direi comincia con Arduino se sei un dilettante ed è li che vuoi arrivare.
Ti scegli un testo basico, se sai l'inglese è meglio, che ti spiega tutto da zero e cominci come tutti da "ciao mondo".
Se vai per gradi e ti studi anche le basi vedrai che riuscirai a fare un sacco di cose.
600 Elettra
0
voti
Gabrieleb ha scritto:come funziona il micro prima o poi te lo devi studiare comunque ed anche in C l'architettura del micro la devi più o meno (più più che meno) conoscere.
Una delle caratteristiche dell'ambiente Arduino è proprio l'abstraction layer che permette di non conoscere nulla del micro (lo svantaggio è non poter fare nulla oltre i limiti del layer a meno di studiare il datasheet e usare direttamente i registri interni). Il fatto è che questo approfondimento si fa per interesse/curiosità tecnica indipendente dal lavoro che si vuole realizzare, e per il lavoro potrebbe non essere neppure necessario. Io non osavo nominarlo, ma visto che è saltato fuori sono d'accordissimo sul fatto che tutti dovrebbero partire da un po'di assembly (anche se sulle MCU RISC ad architettura Harvard attuali è una tortura infame e non permette di ragionare in modo lineare/astratto/razionale/indipendente dalla specifica implementazione hardware come con un processore CISC di "più vecchia" concezione). Ma allora prima bisognerebbe masticare bene l'elettronica digitale, porte, logica combinatora/sequenziale (con concetti che poi ti ritrovi nel software), non si finisce più, anzi, non si comincia più. Ci deve essere un diverso entry-point
Una domanda ben posta è già mezza risposta.
0
voti
Grande aiuto è venuto dal forum Arduino sia nazionale che internazionale. Ti suggerisco di iscriverti. Qui è un buon forum ma non per Arduino.
Mi permetto di dissentire.
...Al contrario sui forum citati davince59, ho sempre trovato informazioni piu superficiali e spesso confuse.
... là è piu facile trovare la soluzione precotta al tuo problema, qui con un po' di pazienza ci sono persone che possono aiutarti ad arrivare un po' oltre.
Ognuno può dissentire, ci mancherebbe, ma forse stiamo parlando di due forum diversi.
Nel forum Arduino italiano c'è esattamente l'opposto di quello che tu dici:
- la pappa pronta li non esiste per policy; personalmente MAI avuto qualcosa di preconfezionato! Anzi sono stato redarguito.
- le risposte sono competenti e precise e, di maggior aiuto, vi sono indicazioni mirate che sono tutt'altro che superficiali e confuse; anzi sono fin troppo tecniche per chi NON è sufficentemente preparato (io sono un esempio);
- sicuramente, essendo specifico e rigorosamente limitato ad Arduino, il ventaglio di soluzioni, problematiche è ampiamente superiore a quello di questo forum che tratta più argomenti.
Cerca di essere più oggettivo...forse ti è antipatico quel forum.
Io sono vince59 anche lì. Tu chi sei?
1
voti
Gabrieleb ha scritto:perché non partire con l'assembler ?
Perché è completamente anacronistico.
L'architettura di un microcontroller è utile conoscerla, ma non serve conoscere l'assembler per capirla.
Io ho avuto il "piacere" di dover imparare l'assembler per il MIPS R3000.
L'ho mai usato una volta che sia una dopo lo studio? No.
Ho l'impressione che mi abbia aiutato a capirne l'architettura? No.
Avrei potuto investire quel tempo imparando qualcosa di piú utile? Sì.
Oggi NESSUNO usa l'assembler. Non lo si usa nell'ambiente automotive e non lo si usa nell'ambiente medicale. Figuriamoci in ambiente consumer.
E ci sono buoni motivi per non usarlo.
Questa nostalgia del "semplice è bello" o "difficile è bello" ha da finire. Non ha giustificazione.
Boiler
38 messaggi
• Pagina 3 di 4 • 1, 2, 3, 4
Chi c’è in linea
Visitano il forum: Nessuno e 2 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)












