Introduzione ad Arduino (Lezione 2)

Introduzione

Arduino ha rivoluzionato il mondo dei markers, introducendo una sistema open source, che  ha svincolato tutti i paradigma  sulla complessità dei sistemi embedded, ha fornito i presupposti per lo sviluppo di una comunità molto attiva dove gli utenti hanno creato una rete di comunicazione dove e’ possibile trovare innumerevoli risorse.

E’ doveroso da parte mia fare una breve introduzione  su Arduino Uno , la board più utilizzata, consapevole che  articoli del genere la rete ne è ricca, ma vorrei  realizzare un sito dove anche un neofita, in unico posto, possa trovare tutte le informazioni necessarie per iniziare.

In questo articolo  descriverò  tutte i principali componenti di Arduino Uno:

  • Microcontrollore
  • Interfaccia di programmazione
  • Alimentazione

I componenti di Arduino Uno

Di seguito vi riporto  una foto vista dall’alto della scheda di Arduino, in cui ho inserito una breve descrizione dei principali componenti della board.

Figura 1

Microcontrollore

Tutte le parti della scheda di Arduino sono necessarie per il corretto funzionato del sistema, ma il microcontrollore,  possiamo ritenerlo,  il componente principale della scheda, perché questo dispositivo contiene le periferiche, come l’ADC per la conversione dei  segnali  analogici a digitale, tutti i driver per pilotare i pin digitali, I2C ecc.

Inoltre, nel microcontrollore, c’è la memoria FLASH (non volatile) dove risiede il programma che l’unità di elaborazione (CPU)  deve eseguire, la memoria RAM (volatile) dove è possibile memorizzare le variabili  d’appoggio per l’esecuzione dei calcoli  o quelle definite nel codice sorgente. Di seguito vi riporto, da un estratto del datasheet (fonte prelevata dal sito di Microchip), lo schema a blocchi del microcontrollore.

Figura 2

Il microcontrollore ATmega 328  ha un bus a 8 bit,  pertanto  la gestione dei dati è limitata alla sola ampiezza del bus, ma la codifica delle istruzioni ha un’ampiezza di 16 o 32 bit, quindi la CPU  per eseguire un’istruzione deve fare più di un accesso in memoria, a parità di prestazioni della CPU,  maggiore è l’ampiezza del BUS e maggiore è la velocità di esecuzione del codice.

Interfaccia di Programmazione

La scheda di Arduino Uno è dotata di un connettore, vedi  la figura sopra riportata ,  In-Circuit Serial Programming (ICSP) connessa a dei pin dedicati del microcontrollore, tramite questa interfaccia si può  caricare il codice sorgente all’interno della memoria FLASH del microcontrollore.

Prima dell’avvento  di Arduino per poter programmare un microcontrollore bisognava acquistare dei programmatori dedicati, che in alcuni casi avevano dei costi non trascurabili, inoltre, c’era l’obbligo di  utilizzare degli ambienti di sviluppo  molto più complessi  rispetto a quello di Arduino, ovviamente con molte più funzionalità che ad un maker, soprattutto alle prime armi, potrebbero essere poco utili.

Per rendere il sistema molto più semplice da usare  ed economico,  sulla  scheda Arduino Uno è stato inserito un driver che converte il protocollo USB (Universal Serial Bus) a UART (Universal Asynchronous Receiver-Transmitter) connesso direttamente al microcontrollore, grazie a questa interfaccia, è possibile caricare il codice sorgente nella FLASH del microcontrollore senza usare costosi programmatori.

La gestione della programmazione è affidata ad un piccolo programma , definito Bootloader,  caricato, precedentemente nel microcontrollore, al momento della produzione della scheda, il software  Bootloader, nella fase programmazione della board , gestisce i segnali e i dati provenienti dalla UART  che sono usati per programmare la FLASH interna.

Ingressi e Uscite

Ovviamente, qualsiasi programma per avere un’utilità pratica deve avere degli ingressi e delle uscite.

Nei sistemi embedded, in genere, si utilizzano i pin Input/output (GPIO), gli ADCs, UART e tutta una serie di periferiche di cui è dotato il microcontrollore ATmega 328 (successivamente approfondiremo).

Alcuni pins hanno un multiplex , gestibile tramite il codice, in questo modo,  i pins non ha una funzione dedicata ma  possono svolgere  più funzioni, per esempio i pins dell’ADCs possono anche essere usati come GPIO.

Alimentazione

La Board Arduino Uno,  ha un assorbimento di corrente, relativamente ridotto, e  quindi,  possiamo utilizzare il connettore USB , connesso al PC per alimentarla.

La scheda Arduino Uno ha anche un connettore dedicato per l’alimentazione, vedi figura precedente, affinché essa possa essere integrata in un sistema e alimentarla con una sorgente che può essere una batteria o un alimentatore. 

La tensione di alimentazione esterna, che possiamo fornire,   deve avere un valore  minimo di 7V  e massimo di  12V,  e grazie ad un regolatore serie, la tensione è riportata al valore nominale di 5V.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ti sei iscritto alla newsletter

There was an error while trying to send your request. Please try again.

Quattrodispositivi utilizzerà le informazioni fornite in questo modulo per restare in contatto con te e fornire aggiornamenti del sito