ARDUINO

 

MICROCONTROLLORI


Un microcontrollore è un dispositivo digitale elettronico programmabile e può svolgere autonomamente diverse funzioni
in base al programma in esso implementato. Si può pensare a un microcontrollore come un piccolo computer.
Il microcontrollore è un sistema completo, che integra in uno stesso chip il processore, la memoria permanente, la memoria volatile e i canali (pin) di I/O, oltre ad eventuali altri blocchi specializzati.

È progettato per interagire direttamente con il mondo esterno tramite un programma residente nella propria memoria interna e mediante l'uso di pin specializzati o configurabili dal programmatore.  A differenza dei microprocessori, il microcontrollore è progettato per avere la massima autosufficienza funzionale ed ottimizzare il rapporto tra il costo e le prestazioni, tuttavia ha una capacità di calcolo molto inferiore a quella di un microprocessore.

La più importante differenza tra un microcontrollore e  un microprocessore è che quest'ultimo è la parte centrale di un computer ed ha bisogno di altre integrazioni per poter funzionare, tra cui le periferiche di ingresso e uscita; un microcontrollore, invece, non ha bisogno di altri componenti, ma ha capacità di calcolo ridotte.
 
 

ARDUINO






Arduino è la più popolare piattaforma open source (cioè con licenza libera) per la prototipazione elettronica e la realizzazione di progetti interattivi basata su hardware e software di facile utilizzo.
Alla base di Arduino c`è l`idea di rendere la creazione di progetti elettronici più veloce ed agevole ma sopratutto facile e alla portata di tutti.

Arduino è una piccola scheda elettronica equipaggiata di un microcontrollore centrale (il microcontrollore è  il cervello del nostro sistema) e di un po’ di componenti elettronici così da rendere più semplice il collegamento con dispositivi esterni di vario tipo.

Le schede Arduino sono in grado di leggere input (per esempio la luce su un sensore, l'azione di un dito su un pulsante o un messaggio su Twitter) e trasformarli in output (attivare un motore, accendere un led o pubblicare qualcosa online). 



L'Ambiente di Sviluppo (IDE) e i Programmi (sketch) 

L'insieme delle istruzioni (codice o programma) viene fornito attraverso l'ambiente di sviluppo integrato (IDE) di Arduino basato su C++, disponibile gratuitamente sul sito ufficiale e compatibile con tutti i sistemi operativi. 
Un programma può essere caricato sulla scheda Arduino semplicemente utilizzando un cavo USB. I vari programmi per Arduino vengono chiamati sketch.


Ambiente di Sviluppo (IDE) per sketch di arduino

Sul sito ufficiale di Arduino è disponibile la sezione Download , dalla quale possiamo scaricare l’IDE per il sistema operativo che utilizziamo (sono supportati Windows, Linux e Mac OS X).
Per permettere la scrittura dell'insieme delle istruzioni (sketch), l'IDE include un editor di testo. L'editor è inoltre in grado di compilare e caricare sulla scheda Arduino il programma eseguibile in una sola passata e con un solo click, tramite cavo USB. 

La struttura base di uno sketch di Arduino è basata principalmente sulla definizione di due parti (funzioni):

    void setup()

    void loop()

La funzione void setup() contiene le azioni che verranno eseguite al momento dell'accensione della scheda, la funzione  loop() contiene quei comandi che verranno continuamente ripetuti all'infinito.

Queste due funzioni sono alla base di qualsiasi programma, o sketch, che dovrà essere implementato e poi trasferito (compilato) su Arduino. 


Il Computer

Il computer, collegato ad Arduino mediante cavo USB, ha le seguenti funzioni:
  • fornire la tensione di alimentazione alla scheda; 
  • redigere (editing) il programma (sketch) mediante la finestra dell'ambiente di sviluppo (IDE) (figura sopra);
  • caricare (loading) nella memoria di Arduino il programma, convertito nel linguaggio macchina del microcontrollore (compilazione);
  • ricevere informazioni sull'esecuzione del programma, mediante l'uso del Monitor Seriale, per correggerne eventuali errori (debugging).
Una volta messo a punto il programma e caricato definitivamente su Arduino, il computer potrà essere rimosso (funzionamento stand alone) e l'alimentazione dovrà essere fornita da un alimentatore esterno, mediante l'apposito connettore.


Schede Hardware

Esistono molte versioni di schede hardware Arduino. La tipica scheda si basa su un circuito stampato che integra un microcontrollore (per esempio Arduino Uno monta un ATMega328) con pin connessi alle porte I/O (Input e Output), un regolatore di tensione per alimentare il circuito e quando necessario un'interfaccia USB che permette la comunicazione con il computer.

 
    
ARDUINO PRO MICRO




























ARDUINO UNO

 

Arduino UNO

Tra i vari modelli di Arduino presenti in commercio  ARDUINO UNO R3, con microcontrollore ATMEGA328,   rappresenta un buon compromesso tra potenza e costo.
Dispone di 14 input/output (ingressi e uscite) digitali, di cui 6 possono essere utilizzate come uscite PWM dove è presente il simbolo ~ e 6 ingressi analogici.
Sono inoltre disponibili un collegamento USB, un jack di alimentazione, un LED e un pulsante di reset.
La scheda contiene tutto il necessario per utilizzare il microcontrollore; è sufficiente collegarsi a un computer con un cavo USB (l'alimentazione può essere derivata alla presa USB) oppure alimentare con un adattatore al jack di alimentazione.



ARDUINO UNO



Funzionalità di input/output 

Le schede Arduino sono fornite di funzionalità di input/output (I/O), grazie alle quali esse ricevono i segnali raccolti da sensori esterni e inviano comandi agli attuatori esterni.
Tutti i pin di I/O sono collocati sulla parte superiore della scheda mediante connettori femmina, alcune schede sono dotate di connettori maschio sul lato inferiore del circuito in modo da poter essere connesse a una breadboard senza necessità di effettuare saldature.



Ogni pin digitale di Arduino può essere programmato come input o come
output, mediante opportune istruzioni inserite nello sketch.


Segnali che possono essere interpretati dagli ingressi (input) di Arduino:
- input digitali: tensioni alte (5V) o basse (0V);

- input analogici: tensioni variabili tra 0V e 5V. 


Segnali che possono essere inviati dalle uscite (output) di Arduino:
-
output digitali: tensioni alte (5V) o basse (0V);
- output digitali PWM: si ottengono tensioni variabili tra 0V e 5V.

Nota: tramite un segnale PWM (Pulse Width Modulation) è possibile, ad esempio, regolare l'intensità di luminosità di un LED o la velocità di rotazione di un motore elettrico.


Funzionalità dei Pin principali 

I Pin sono connettori che hanno molteplici funzioni. Tra i più importanti troviamo:
  • Vin - Ingresso tensione positiva per l'alimentazione della scheda
  • GND - Ingresso negativo/massa
  • PIN 3.3V - uscita tensione  3.3V
  • PIN 5V - uscita corrente   5V
  • RESET - ingresso PIN digitale. Se la lettura di questo PIN è HIGH (valore digitale alto) il controller si resetta
  • Analog input - PIN input analogici, possono percepire una tensione tra 0V e 5V
  • Digital input/output - PIN digitali programmabili per essere input o output
  • PWM - PIN per la regolazione analogica PWM
  • TX - PIN per la trasmissione porta seriale
  • RX - PIN per la ricezione porta seriale

Nelle figure sotto sono riportate le funzionalità di tutti i piedini di Arduino UNO e Arduino Pro Micro











ARDUINO PRO MICRO




Shields Arduino

Sono disponibili commercialmente molte schede applicative plug-in note come shields.





Gli shields sono delle espansioni che si montano sopra l'arduino e servono per aggiungere funzionalità alla scheda. Ad esempio ethernet shield aggiunge una porta ethernet all'arduino e la possibilità quindi di metterlo in rete. Altre servono per pilotare motori oppure per abilitare la connessione wi-fi.
ethernet shield


Domande


  1. Cosa è Arduino?
  2. Cosa sono gli input e gli output?
  3. Cosa è uno sketch?
  4. Cosa contiene la funzione void setup()?
  5. Cosa contiene la funzione void loop()?
  6. Come si collega Arduino al Computer?
  7. Cosa cambia tra input/output digitale ed analogico?
  8. A cosa può servire un segnale PWM?
  9. Come si riconoscono le uscite PWM su Arduino UNO?
  10. Cosa è uno schield di Arduino?