Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Iniziare con i microcontrollori (AVR Atmel)

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

2
voti

[1] Iniziare con i microcontrollori (AVR Atmel)

Messaggioda Foto Utentethunderbolt128 » 12 lug 2015, 0:58

Salve a tutti. Come da titolo mi piacerebbe iniziare con lo studio dei microcontrollori.
Ho pensato quindi di parlarne sul forum per poter avere preziosi consigli da voi altri utenti.
Penso che come premessa sia necessario presentarmi soprattutto per farvi capire l'approccio allo studio che desidero avere e le mie intenzioni.
Come visibile sul mio profilo non sono affatto un utente nuovo (sono iscritto da 3 anni). Insomma, mi sono iscritto verso la fine della scuola media ed ora mi accingo a frequentare il 4 anno di istituto tecnico industriale indirizzo elettronica. Mi vergogno quasi a dirlo ma purtroppo l'approccio con i microcontrollori che abbiamo a scuola con il nostro (pessimo) professore non è stato nient'altro che limitarsi a caricare due programmini su arduino senza nemmeno parlare di microcontrollori....architettura Havard....RISC..... nulla di nulla...... Siccome non mi piaceva la piega che stavamo prendendo ho proseguito da solo con lo studio di arduino acquistando dei libri per riuscire a capire almeno di cosa stavamo parlando... Ora che più o meno avete capito le mie intenzioni passiamo alla macchinosa lista della spesa delle domande alle quali necessito e fornisco delle risposte.
Quali piattaforme possiedo ? Possiedo un Arduino UNO ed un PierinPIC18
PIC o ATMEL ? Attualmente sono orientato verso gli ATMEL
Quali conoscenze ho sui microcontrollori? Qui devo purtroppo aprire una nota dolente, ricollegandomi al discorso di prima, mi spiego meglio possibile: Al giorno d'oggi, l'approccio con cui si impara con i microcontrollori corrisponde spesso all' ""arduino style"". Questo purtroppo mi da non poco fastidio: innanzitutto il costringerti a lavorare su una scheda di sviluppo del genere ma ancora di più il modo in cui lo si fa, più che un microcontrollorista, ti fa diventare un "arduinista". Ho coniato questo termine per identificare colui che, imparando con questa filosofia non riuscirà mai a scoprire a fondo come funziona un microcontrollore, a sfruttare pienamente le sue capacità e, talvolta, troverà molto difficoltoso staccarsi dalla famosa scheda di prototipazione per realizzare un circuito stand-alone.
Insomma, diciamo che sono assolutamente d'accordo con quanto sostenuto da Foto UtenteTardoFreak : "voglio programmare un Atmega328, non un Arduino". :cool:
Detto questo, ecco il carrello della spesa per iniziare:
Libro di elettronica digitale
Libro sui microcontrollori in generale
Libro sulla programmazione degli AVR
Libro per apprendere linguaggio C
Libro per apprendere Assembler
Mi occorrerebbe sapere alcuni nomi di libri che si prestano di più allo studio degli argomenti appena riportati.
Come avrete sicuramente capito non sono soddisfatto del programma svolto a scuola. O meglio, il programma che si dovrebbe fare "sulla carta" è passabile, ma quello che si fa in realtà è meno della metà. Questo ovviamente non significa che questo topic sia stato aperto solamente per "rattoppare" le carenze della scuola pubblica italiana, anzi, intendo approfondire comunque ogni singolo argomento, sia per la mia innata curiosità, sia per "l'arte del sapere". Magari questo topic potrà rivelarsi in futuro molto utile per chi vuole iniziare ad apprendere seriamente la programmazione dei microcontrollori e non limitarsi semplicemente a ricopiare uno sketch su internet per vedere accendersi un led senza nemmeno sapere il perché si accende :?
Ho scritto tanto, forse troppo, ora è giunto il momento di lasciare la parola a voi :ok:
Cosa mi inizio a studiare per prima cosa ? Struttura di un microcontrollore ? Linguaggio c? Assembly?
A voi la parola :-)
Alla fine, non ricorderemo le parole dei nostri nemici, ma i silenzi dei nostri amici.
Martin Luther King
Avatar utente
Foto Utentethunderbolt128
1.590 1 8 13
Expert
Expert
 
Messaggi: 702
Iscritto il: 4 set 2012, 13:57

1
voti

[2] Re: Iniziare con i microcontrollori

Messaggioda Foto UtenteMarcoD » 12 lug 2015, 9:33

La mia è la prima risposta, e forse la troverai insoddisfacente.

Per me non è importante cosa studiare prima, l'importante è porsi un obiettivo (un problema ) e applicarsi per risolverlo.
Poi cerchi di risolvere il problema in modo economico, ossia cercando di limitare le tue risorse di tempo e di denaro.
Certo che una conoscenza generica di elettronica ( analogica, digitale, informatica, fisica, matematica, sistemistica, controllistica, gestionale,...) aiuta a inquadrare meglio le problematiche e poco alla volta girando nel forum o leggendo riviste e libri e sperimentando te la fai.

Certo che se a scuola impari solo ad adoperare l' IDE (Integrated Development Enviroment ) di Arduino per caricare uno sketch e scaricarlo sul target non è molto, ma è qualcosa se prima non lo sapevi fare (anche la manualità della esecuzione aiuta).

Non importa (molto) che cosa impari prima, l'importante è che impari cose nuove.
Al limite non importa che quello che impari sia (molto) utile (Latino, Graco, Archeologia ?? ), perché in ogni modo impari ad imparare e questo ti aiuterà in seguito.


Qualcuno ha commenti?, Saluti a tutti
Avatar utente
Foto UtenteMarcoD
7.262 4 8 13
Master EY
Master EY
 
Messaggi: 3219
Iscritto il: 9 lug 2015, 16:58
Località: Torino

9
voti

[3] Re: Iniziare con i microcontrollori

Messaggioda Foto UtenteTardoFreak » 12 lug 2015, 11:22

thunderbolt128 ha scritto:Cosa mi inizio a studiare per prima cosa ? Struttura di un microcontrollore ? Linguaggio c? Assembly?
A voi la parola :-)

Guida rapida e molto sintetica.
Prima di tutto dovresti conoscere il micro su cui desideri scrivere programmi, in questo caso ATmega328, quindi devi scaricarti il datasheet e studiartelo. Sono molte pagine quindi dapprima ci dai uno sguardo veloce per vedere come è organizzato il datasheet (non il micro eh!) in modo da sapere esattamente dove andare per approfondire un argomento. Poi prosegui studiandoti bene l'architettura interna per poi leggere (senza però studiarle a fondo, per ora non serve) come funzionano e come si programmano le periferiche che ha a bordo. Sulle periferiche ci ritornerai per studiarle a fondo quando le dovrai utilizzare.
La conoscenza di un minimo di assembly è necessaria. Quindi devi conoscere il set di istruzioni. Anche qui non ti serve diventare esperto dell' assembly dei Mega AVR ma semplicemente saper riconoscere un'istruzione e cosa fa.
La conoscenza del C è determinante e non ti serve solo per questo micro ma, con ottima approssimazione, per tutti i micro in generale. Quindi lo devi studiare bene, bene, bene. Di libri, tutorial, corsi online ce ne sono una marea, l'importante è prendere dimestichezza con il linguaggio. Non è necessario saper scrivere da subito programmi per microcontrollori ma conoscere il linguaggio. Anche delle prove fatte su PC vanno più che bene per imparare. Quindi prima studi provando su PC fino a quando non hai imparato bene il linguaggio.
Quando conoscerai bene il C sarai in grado di capire quali sono le particolarità e le differenze di un programma per micro rispetto ad un programma per PC. A quel punto potrai leggerti qualcosa sul AVR gcc e visionare degli esempi di programmi. Non sarà difficile mettere così finalmente le mani su un programma per il micro.
Direi che hai un bel po' di lavoro da fare e molto da studiare, ci risentiamo fra qualche mese. :mrgreen:
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,6k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15763
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

1
voti

[4] Re: Iniziare con i microcontrollori

Messaggioda Foto Utentespeedyant » 12 lug 2015, 12:21

Gli aspetti "software" sono già stati elencati da Foto UtenteTardoFreak, per quanto riguarda l'hardware, dato che già disponi di un arduino uno ed un pierin pic18, ti conviene "giocare" con entrambi, considera che finché sei in ambito scolastico puoi permetterti di scegliere il micro su cui lavorare, dopo non più!
Ti auguro possa diventare anche un hobby.
Son quello delle domande strane!
Avatar utente
Foto Utentespeedyant
3.754 3 6 8
Master
Master
 
Messaggi: 2660
Iscritto il: 9 lug 2013, 18:29
Località: Torino

2
voti

[5] Re: Iniziare con i microcontrollori

Messaggioda Foto UtenteSjuanez » 12 lug 2015, 12:34

Prima o poi volevo fare anch'io questa domanda a Foto UtenteTardoFreak e a tutti gli esperti del forum. Quindi ho letto con piacere i suggerimenti che ti sono arrivati.

Credo che, quando sarà il momento di mettere mano ai micro, per farmi un'idea prenderò un libro della serie Make di Make Magazine. Li trovo molto simpatici come introduzione. E penso che poi permettano di approcciarsi ai passi successivi e più canonici, con un'infarinatura che velocizza l'apprendimento.

O_/ O_/ O_/
Più so e più mi accorgo di non sapere.

Qualsiasi cosa abbia scritto, tieni presente che sono ancora al mio primo rocchetto di stagno.
Avatar utente
Foto UtenteSjuanez
11,3k 5 8 13
G.Master EY
G.Master EY
 
Messaggi: 3480
Iscritto il: 18 mar 2015, 13:48

0
voti

[6] Re: Iniziare con i microcontrollori

Messaggioda Foto Utentethunderbolt128 » 12 lug 2015, 16:57

Grazie a tutti quelli che mi hanno risposto, in particolare Foto UtenteTardoFreak :-)
Riscriverò in questo topic fra qualche mese per aggiornarvi, per ora vado a studiarmi un po di C ;-)
Alla fine, non ricorderemo le parole dei nostri nemici, ma i silenzi dei nostri amici.
Martin Luther King
Avatar utente
Foto Utentethunderbolt128
1.590 1 8 13
Expert
Expert
 
Messaggi: 702
Iscritto il: 4 set 2012, 13:57

3
voti

[7] Re: Iniziare con i microcontrollori

Messaggioda Foto UtenteWALTERmwp » 12 lug 2015, 18:28

Ciao Foto Utentethunderbolt128 quale approccio potresti o dovresti avere ti è già stato scritto ed è un parere più che autorevole.
Si può forse aggiungere qualcosa ma la sostanza è quella.
Dal mio punto di vista, dopo avere impostato e avviato il percorso di studio, sarebbe utile iniziare con programmi ed esempi molto semplici, replicando degli script in assembly.
Non occorre (anzi non servirebbe proprio) mettere le mani su un codice che fa chissà cosa, basta il classico lampeggio del led.
Credo che fare pratica contribuisca a consolidare quanto si sta studiando quindi fare uso del codice asm, verificarne i risultati senza "staccarsi" dal datasheet.
Avere a che fare con la microelettronica significa anche avere la possibilità di avvicinarsi il più possibile al "silicio" riducendo quasi al nulla la stratificazione che invece ti trovi, più o meno accentuata, sviluppando per esempio un programma per PC.

Lo studio del linguaggio "C" lo puoi affrontare parallelamente al discorso microcontrollori ma non è certo fondamentale per conoscerli; diventerà, dopo, se non indispensabile, quasi (ma dipende dal livello), linguaggio di sviluppo per velocizzare la realizzazione di un programma ma anche per muoversi trasversalmente, tra un brand e l'altro.
Di fatto ti permetterà di svincolarsi dall'aspetto hardware anche se, cambiando chip o famiglia di chip, comunque ti dovrai andare a guardare il documento di riferimento ovvero il datasheet.

Visto che hai speso qualche riga per i riferimenti scolastici mi farebbe piacere capire quale è la materia che a tuo scrivere viene sviluppata in modo inadeguato.
Io non posso esprimermi nel merito ma probabilmente un docente, il più delle volte e per validi motivi, non ha possibilità di affrontare il programma come si dovrebbe e difficilmente può privilegiare l'approfondimento di un argomento specifico.

Per il resto ... Buon Studio.

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
23,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 6832
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

2
voti

[8] Re: Iniziare con i microcontrollori

Messaggioda Foto UtenteSjuanez » 12 lug 2015, 18:32

Ciao thunderbolt128 quale approccio potresti o dovresti avere ti è già stato scritto ed è un parere più che autorevole.


Grazie Foto UtenteWALTERmwp, ma ho dato solo un consiglio.






:mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:
scusate, ma non ho sapute resistere!

O_/ O_/ O_/
Più so e più mi accorgo di non sapere.

Qualsiasi cosa abbia scritto, tieni presente che sono ancora al mio primo rocchetto di stagno.
Avatar utente
Foto UtenteSjuanez
11,3k 5 8 13
G.Master EY
G.Master EY
 
Messaggi: 3480
Iscritto il: 18 mar 2015, 13:48

2
voti

[9] Re: Iniziare con i microcontrollori

Messaggioda Foto UtenteWALTERmwp » 12 lug 2015, 21:48

Sjuanez ha scritto:Grazie WALTERmwp, ma ho dato solo un consiglio.
... zuzzerellone !

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
23,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 6832
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[10] Re: Iniziare con i microcontrollori (AVR Atmel)

Messaggioda Foto Utentethunderbolt128 » 9 ago 2015, 16:18

Rieccomi di nuovo a turbare le vostre pause estive :mrgreen:
Su consiglio di Foto UtenteTardoFreak ho iniziato a studiarmi il linguaggio C e la struttura del microcontrollore su cui intendo lavorare.
In particolare ho:
1) Iniziato a studiare il C e realizzare qualche programmino stupidissimo con DEV al PC.
2) Studiato grossolanamente le porte digitali input/output
3) Qualche accenno sull'ADC ed il comparatore analogico.
Ora sto cercando di fare dei confronti tra come scrivevo i programmi su Arduino e come li scriverei oggi con il linguaggio C.
Guardando in rete vedo realizzare progetti a dir poco spaventosi (lettori mp3, un tizio con un STM32 ha addirittura fatto la riproduzione di un commodore64 :shock: ). Vi confesso che, essendo in grado di accendere a malapena un paio di led con un microcontrollore, tutto ciò mi spaventa solo a pensarlo. Non so se sono io che non mi sto applicando in maniera corretta o sufficiente ma non capisco come diamine sia possibile realizzare progetti di codesta complessità... ho la sensazione che prima di poter dire di saper fare qualcosa di decente passeranno gli anni :-o :mrgreen:
Ora cosa mi consigliate di fare? Continuo esclusivamente sulla teoria o inizio anche a cimentarmi sulla pratica procurandomi un po di materiale e realizzando qualcosa via via più complesso ? :-)
Alla fine, non ricorderemo le parole dei nostri nemici, ma i silenzi dei nostri amici.
Martin Luther King
Avatar utente
Foto Utentethunderbolt128
1.590 1 8 13
Expert
Expert
 
Messaggi: 702
Iscritto il: 4 set 2012, 13:57

Prossimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti