Arduino

Ciao come anticipato nella presentazione vorrei imparare ad usare arduino.

Il dubbi sono questi:

  1. Differenza tra usare una scheda con microcontrollore ed una scheda con
    microcontrollore arduino ?

  2. Perché arduino dovrebbe insegnarmi l'elettronica ? L'elettronica la studio sui libri e nella pratica

  3. Perchè arduino dovrebbe insegnarmi a programmare ? Vedi punto 1. Ho letto che è meglio imparare a programmare su un desktop

  4. Perchè molti universitari ( non tutti) aspettano di frequentare il corso di informatica per iniziare a programmare?Dovrei anche io prendere quell'esempio ?

  5. Come faccio a capire come funziona un periferica se uso la libreria ?

  6. Dalla domanda n°5 : è meglio imparare a fondo una periferica o usarla ?

  7. Un paio di amici vorrebbero che entrassi nel loro gruppo di studio arduino. Hanno fatto cose carine
    Sanno muovere motorini passo-passo con schede /schedine . Io non sono capace.
    Loro però non sanno spiegarmi come funziona.

A chi è rivolto Arduino ?
Grazie
ciao

Ti dico la mia
Arduino è rivolto a chi vuol muovere i primi passi nel mondo dei microcontrollori in quanto il suo "framework" ti avvantaggia nascondendoti molte criticità che programmando ad esempio PIC devi affrontare fin da subito.
Ma volendo approfondire poi, una volta capiti i concetti base, si può approfondire, studiarsi come funzionano le librerie e poi volendo ci si può addentrare nelle caratteristiche specifiche dei microcontrollori Atmel e arrivare volendo a usare l'assembler diretto (non che sia consigliabile, il compilatore genererà molto probabilmente un codice assembler migliore).
Arduino non ti insegna l'elettroncia quella devi, come hai detto gisutamente tu, studiarla sui libri, puoi applicare le nozioni imparate per creare l'elettronica "di contorno" necessaria ai vari progetti, per molti avere un'obiettivo pratico può essere uno stimolo per studiare la teoria, ma è soggettivo.

Per punti

  1. Arduino è un "brand" il microcontrollore è prodotto da Atmel e ne produce molti anche non disponibili sulle schede "Arduino", quindi non c'è differenza, la differenza sta nell'IDE, nelle sue facilitazioni e librerie disponibili
  2. Ho detto la mia al post precedente
  3. Programmare su dekstop offre casi d'uso differenti rispetto a quelli presenti su un microcontrollore, quindi saper fare un programma di gestione grafica su PC non è detto che ti insegni a ottimizzare il codice per un microcontrollore, e viceversa. Esempio classico e banale: Uso della clase String su PC con garbage collector=nessun problema, solita classe su MCU classe Arduino (senza garbage collector)=errori e blocchi improvvisi con conseguenti santi che volano
  4. Bho? io ho iniziato a muoverei i primi codici in età pre-adolescenziale, molti non si appassionano se non in tarda età, anche qui è soggettivo, se vuoi farlo per lavoro e hai passione prima inizi meglio è
    5/6) Dapprima usi la libreria e impari ad usare la periferica (conoscendone comunque le caratteristiche HW dal datasheet) poi se vuoi ti addentri nella libreria e capisci nel dettaglio come funziona
  5. Se non sanno spiegarti come hanno fatto allora vuol dire che sono dediti al copiaincolla selvaggio senza capire come funziona, evitali e impara da solo come funzionano le cose, secondo me non ti saranno di grande aiuto se le premesse sono quelle

Aggiungo le mie considerazioni a quelle già sufficientemente esaustive espresse da fabpolli, giusto per darti una seconda opinione.

Io programmo per lavoro, in java, per cui un ambito un tantinino diverso e sono perito elettronico (anche se un po' arrugginito), prima di fare informatica all'università.

Con Arduino ho il pretesto per usare il C e di rinfrescarmi quanto ho studiato di elettronica, oltre a fare cose che altrimenti, se Arduino non esistesse, non potrei fare o sarebbe troppo complicato/oneroso per me affrontare.

soncrow:

  1. Differenza tra usare una scheda con microcontrollore ed una scheda con
    microcontrollore arduino ?

Ci sono microcontrollori e microcontrollori. Molti certificati per scopi industriali, Arduino NO!
Quindi serve per fare prove e prototipi per validare concetti a basso costo, non per scopi commerciali certificati.
Poi, tutti fanno tutto con tutto, ma questo è un altro discorso.
Tipicamente le varie famiglie di microcontrollori si portano dietro ambienti di sviluppo proprietari.
Con Arduino è lo stesso, solo che in base alla sua storia, questo ambiente, si è calato e adattato bene al target hobbistico, quindi forse più intuitivo e semplice per un neofita rispetto agli altri.

soncrow:
2) Perché arduino dovrebbe insegnarmi l'elettronica ? L'elettronica la studio sui libri e nella pratica

Corretto, non cambiare!
Arduino non insegna l'elettronica, semplicemente comprende una microfauna di aggeggi (sensori, attuatori, ecc. ecc. ecc.) molto vasta e facile da usare per cui è molto facile ed economico mettere in pratica quello che si ha studiato, quindi si può usare per consolidare con la pratica quello che si studia sui libri.
Per me la teoria è fondamentale, se hai la teoria, con poca pratica risolvi anche i problemi non esplicitamente trattati dalla teoria, il viceversa è mooooooolto più complicato.

soncrow:
3) Perchè arduino dovrebbe insegnarmi a programmare ? Vedi punto 1. Ho letto che è meglio imparare a programmare su un desktop

Idem con patate.
E' semplicemente un pretesto per sperimentare su cose su cui altrimenti faresti fatica a cimentarti.
Occhio, la programmazione, in primi, è logica, poi viene il linguaggio di programmazione, l'ambiente di sviluppo, ecc. ma questi ultimi, secondo me, sono solo strumenti! Impara bene a ragionare e vedrai che potrai passare da desktop ad arduino (che poi lo programmi comunque mediante l'IDE che gira su un desktop :stuck_out_tongue: ), da C a Java, ecc.

soncrow:
4) Perchè molti universitari ( non tutti) aspettano di frequentare il corso di informatica per iniziare a programmare?Dovrei anche io prendere quell'esempio ?

Perchè non hanno la propensione, la curiosità, l'interesse per farlo prima e forse lo fanno solo perchè fa parte del programma di studi.
Se lo fai perchè ti piace, ti stuzzica, ti affascina, ti attira..., dovresti aver già iniziato da piccolo alla prima occasione.
Per il resto parti quando te lo dice il cuore.
Scusa, inizialmente avevo letto male la tua presentazione e pensavo iniziassi l'università, diciamo che ad inizio biennio sei in tempo per iniziare al primo pretesto, quindi se te lo senti, parti senza indugi!

soncrow:
5) Come faccio a capire come funziona un periferica se uso la libreria ?

Leggendo datasheet e mettendo il naso sul sorgente della libreria.
Hai il vantaggio di avere un esempio funzionante con cui sperimentare dettagli che magari leggendo il datasheet ti sono rimasti grigi.
Su Arduino è tutto opensource, quindi lo puoi tranquillamente fare, su altri micro non è detto.

soncrow:
6) Dalla domanda n°5 : è meglio imparare a fondo una periferica o usarla ?

Dipende dal tuo obiettivo finale, ma tendenzialmente capire è sempre meglio che usare a caso.
Poi essendo un mondo moooolto vasto non si può sempre approfondire tutto per cui si cerca di fare una scelta e andare secondo priorità.

soncrow:
7) Un paio di amici vorrebbero che entrassi nel loro gruppo di studio arduino. Hanno fatto cose carine
Sanno muovere motorini passo-passo con schede /schedine . Io non sono capace.
Loro però non sanno spiegarmi come funziona.

Va bene non saper spiegare i dettagli più spinti, ma almeno fino ad un certo livello dovrebbero saper spiegare quello che fanno, altrimenti è triste a livello universitario un risultato di questo tipo.
A meno che non siano iscritto a "lettere moderne" :wink:
Anche qui, ho assunto forse un'età sbagliata, se i tuoi amici sono invece della tua età, ci stà che abbiano iniziato con il copia/incolla selvaggio, potreste spronarvi a vicenda a mettere il naso sempre più dentro alle varie cose per capirne sempre di più.
Siccome non hai ancora fatto studi specifici e forse li inizierai a fare al triennio, approfitta di esempi funzionanti copiaincollati per non avere la frustrazione del muro iniziale, ma poi mettici il naso dentro per cercare di capire e trova qualcuno a cui chiedere aiuto, anche qui va bene.

soncrow:
A chi è rivolto Arduino ?

Secondo me a tutti quelli che non lo usano a scopo professionale, perchè appunto manca di certificazioni e altre cose utili/richieste a questo scopo, ma per fare esperimenti veloci o prove specifiche può andare bene anche ai professionisti, anche se dubito che uno sperimenti una cosa su Arduino e poi passi in produzione su un altro micro, perchè farebbe il doppio del lavoro per niente.

Questa la mia visione, del tutto personale, di questo "mondo".

Attento maubarzi, chiariamo alcuni punti ...

maubarzi:
... Ci sono microcontrollori e microcontrollori. Molti certificati per scopi industriali, Arduino NO! ...

Arduino NON è un microcontrollore, ma una scheda di sviluppo, il microcontrollore è il ATmega328P che ha tutte le sue certificazioni. Ovvio che se ci realizzi qualche cosa, devi poi certificare tutto l'insieme del "qualche cosa" che hai realizzato :wink:

Arduino di per sé NON è certificato né per uso civile, né per uso industriale, ma nulla ti vieta di realizzare un prodotto basato su Arduino e poi far fare la certificazione del prodotto realizzato :slight_smile:

maubarzi:
... Corretto, non cambiare! Arduino non insegna l'elettronica, semplicemente comprende una microfauna di aggeggi ...

La teoria è fondamentale e va studiata prima di tutto, ma se poi non cerchi di metterla in pratica ... non serve a nulla.
Un grosso limite della sola "teoria" è che è e rimane "teoria", astratta dai problemi del mondo reale; ad esempio, in "teoria" tu apri e chiudi un interruttore ed hai un segnale di aperto o chiuso; nel mondo "reale" NON è così e devi confrontarti con problemi come quello del "debouncing" dato che un interruttore "reale" è un qualche cosa di meccanico con tutto quello che ciò comporta :wink:

maubarzi:
... Secondo me a tutti quelli che non lo usano a scopo professionale, perchè appunto manca di certificazioni e altre cose utili/richieste a questo scopo ...

Non è esatto ... ci sono aziende che prima hanno sperimentato con Arduino e poi ci hanno realizzato dei veri e propri prodotti commerciali con tutte le certificazioni del caso; Un paio di esempi ... Siemens e SferaLabs :wink:

Guglielmo

Si, hai ragione, tendo sempre a semplificare troppo e a mescolare le cose, ma sto tranquillo perchè ci siete voi ad arginare i miei danni :wink:

soncrow:
...
Il prossimo anno inizierò il biennio itis di elettronica.
Vorrei iniziare con arduino , ma non ho capito perché questo prodotto dovrebbe fare la differenza.
Sono qui per informarmi e imparare...

La tua presentazione mi conferma che ci sono molte idee e ben confuse, per cui spero anche io di chiarirtele.
Intanto ti faccio gli auguri per il prossimo biennio: tieni duro perché è palloso, veramente, ma dal terzo anno in su ti divertirai alla grande, credimi, perché ho già confortato alcuni ragazzi come te che pensavano di aver sbagliato scuola, ma per entrare nel mondo pratico prima devi passare per le basi (quindi fisica, chimica e qualcos'altro che poi abbandonerai dal terzo anno in su).

Se stai guardando Arduino e hai amici che te lo spiegano (ed hanno la passione per spiegartelo) NON MOLLARLI.

Arduino, se sei fortunato (nel senso se ti affascinerà), è la porta per farti entrare in diversi mondi, dalla programmazione in C++ all'elettronica, passando per l'analisi, la progettazione e la sperimentazione di nuove idee.

Quindi, non andare troppo avanti con le domande perché ancora non sai cosa veramente ti interesserà, ti incuriosirà e ti affascinerà. Ma sappi che sei sulla strada giusta.

E' inutile che ti dica che Arduino fa questo ma NON fa quello, quando fra 5 anni le cose saranno cambiate.
Già adesso, dall'Arduino UNO siamo passati a processori molto più potenti come ESP32, che programmi come Arduino ma che ha tutte le potenzialità del bluetooth e del WiFi (che aveva anche Arduino ma con altri "pezzi" da aggiungere).

Comincerai l'ITIS (grande scuola) e farai Elettronica: ma in questi due anni e mezzo (il tempo per arrivare alla classe Terza e cominciare la specializzazione) avrai già capito cosa è e come funziona un transistor, un MosFet, un Triac e come accoppiarli ad Arduino, perché Arduino ti avrà dato quella motivazione che probabilmente il biennio cercherà di toglierti.

Quindi comprati o fatti regalare un Arduino kit, anche non originale, e fai tutti quegli esperimenti che ci sono dentro: vedrai che ti divertirai e che le tue conoscenze aumenteranno tantissimo.

Grazie per le risposte così lunghe. A questo punto credo di aver fatto bene a chiedere direttamente al forum
ufficiale :smiley:

Sono già state date molte risposte, aggiungo qualche considerazione.

  1. Perché arduino dovrebbe insegnarmi l'elettronica ? L'elettronica la studio sui libri e nella pratica

Arduino, in quanto elemento programmabile, non insegna l'elettronica, ma a controllarla via software.

  1. Perchè arduino dovrebbe insegnarmi a programmare ? Vedi punto 1. Ho letto che è meglio imparare a programmare su un desktop

Con Arduino impari la programmazione a basso livello (controllo hardware e circuiti in tempo reale, pochi dati ed elaborazioni veloci e ottimizzate).

  1. Perchè molti universitari ( non tutti) aspettano di frequentare il corso di informatica per iniziare a programmare?Dovrei anche io prendere quell'esempio ?

Evidentemente non hanno passione o interesse per l'argomento :smiley: Le cose che interessano davvero si studiano da soli appena se ne ha la possibilità (mentale / materiale / economica) indipendentemente da tutto il resto, e in quel caso dalla scuola si può poi trarre il massimo vantaggio.

  1. Come faccio a capire come funziona un periferica se uso la libreria ?

Si usa la libreria per comodità. Nulla vieta di studiare i dettagli sui documenti ufficiali.

  1. Dalla domanda n°5 : è meglio imparare a fondo una periferica o usarla ?

Se prima di fare qualsiasi cosa si dovesse conoscere tutto non si farebbe mai niente. Bisogna anche imparare a sintetizzare ed estrarre dall'insieme le informazioni realmente indispensabili da quelle di approfondimento.

  1. Un paio di amici vorrebbero che entrassi nel loro gruppo di studio arduino. Hanno fatto cose carine Sanno muovere motorini passo-passo con schede /schedine . Io non sono capace. Loro però non sanno spiegarmi come funziona.

Non conoscendo quegli amici non posso dire nulla, c'è sempre un livello al di sotto del quale non si sa dire come una cosa funziona... fino a dove scendiamo? Alle porte logiche del processore? Agli strati di silicio? alle funzioni d'onda delle particelle?

A chi è rivolto Arduino ?

Vedo due grandi target... ai principianti che si trovano ad avere una base di lavoro semplificata, e ai professionisti/hobbisti che pur arrivando dalla "vecchia scuola" dove hanno studiato e sperimentato le cose nei dettagli, hanno bisogno di qualcosa con cui prototipare in modo più comodo e veloce... o semplicemente divertirsi senza eccessivo sforzo o impegno di tempo.