Strumenti Utente

Strumenti Sito


arduino_1

Introduzione ad Arduino

In questa sezione presentiamo la piattaforma hardware e software Arduino. Esamineremo:

  • le caratteristiche tecniche della scheda Arduino Uno
  • l'ambiente di sviluppo su PC
  • il linguaggio di programmazione C

Cos'è Arduino

Arduino è una piattaforma hardware e software open-source con cui realizzare dispositivi digitali in grado di interagire con il mondo esterno attraverso sensori (ad esempio una fotocellula) e attuatori (ad esempio un motore). L'hardware è basato su un semplice microcontrollore Atmel montato su una scheda con ingressi e uscite sia digitali che analogici a cui collegare sensori e attuatori. La scheda Arduino può essere collegata a un PC tramite la porta USB per trasferire i programmi dal PC o per stabilire una comunicazione seriale.

Prima di proseguire diamo alcune definizioni:

  • un microcontrollore (indicato anche con MCU, uC o μC) è un dispositivo elettronico digitale che integra in un unico componente un intero computer (con CPU, RAM, memoria di massa, ingressi e uscite) utilizzato per applicazioni embedded; le sue prestazioni sono molto modeste ma adatte a questo tipo di applicazioni dove:
    • il compito da svolgere è uno solo e ben definito, quindi viene eseguito un solo programma (non c'è multitasking) e il dispositivo non è riprogrammabile
    • l'esecuzione deve rispettare tempi precisi (real-time)
  • un sensore è un dispositivo che trasforma una grandezza fisica in un segnale elettrico
  • un attuatore è un dispositivo che trasforma una grandezza elettrica in una grandezza fisica

Le caratteristiche principali di Arduino sono:

  • è economico
  • è multipiattaforma, cioè compatibile con tutti i sistemi operativi
  • è semplice da utilizzare e da programmare
  • il software è open-source quindi è possibile esaminare il codice, modificarlo e ampliarlo
  • anche l'hardware è open-source quindi è possibile scaricare gli schemi elettrici per costruire da soli la propria scheda, capire come funziona o migliorarla
  • è facilmente espandibile con delle schede di espansione dette Shield (ad esempio per comandare motori, collegare schede SD, connettersi a reti Ethernet o wifi, ecc.)

Caratteristiche hardware della scheda Arduino Uno

la sheda Arduino Uno (fonte: arduino.cc)

La scheda Arduino Uno che utilizzeremo è basata sul microcontrollore ATmega328 prodotto da Atmel e presenta queste caratteristiche:

  • clock a 16MHz
  • 32KB di memoria flash
  • 2kB di memoria RAM
  • 1kB di memoria EEPROM (non volatile)
  • 14 pin di input/output digitali
  • 6 pin di input analogici
  • porta USB
  • spinotto per alimentazione DC
  • pulsante reset

Memoria

La memoria flash contiene il programma e il bootloader (0,5 KB) mentre la memoria EEPROM - che non si cancella spegnendo la scheda - è utilizzata per conservare permanentemente dati e variabili che andrebbero persi se memorizzati nella RAM.

La memoria RAM è molto poca e va usata con attenzione (basti considerare che ogni carattere di testo occupa un byte e tutta la memoria RAM disponibile è di solo 2048 byte).

Input/output

I pin digitali possono essere utilizzati come ingressi o uscite digitali e assumono due possibili valori di tensione: alto (5 Volt) e basso (0 Volt). Sei di questi pin possono essere usati come uscite analogiche con la tecnica della modulazione di larghezza di impulso PWM.

Gli ingressi analogici accettano segnali in tensione compresi tra 0 e 5 Volt che vengono convertiti in digitale da un ADC a 10 bit (1024 possibili valori).

NB: la corrente massima erogabile da ogni pin è 40mA. Se si cerca di erogare più corrente o si cortocircuita per errore un pin (sia a massa che a 5 Volt) c'è il rischio di danneggiare irreversibilmente il pin o l'intera scheda. Fare attenzione!

Connessione USB

La porta USB permette di connettere la scheda ad un PC e può essere usata per:

  • alimentare la scheda
  • trasferire il programma dall'ambiente di sviluppo su PC alla scheda Arduino
  • stabilire una comunicazione seriale tra scheda e PC

Alimentazione

La scheda può essere alimentata:

  • dal PC attraverso la porta USB (5 Volt)
  • da un alimentatore esterno (7-12 Volt) collegato allo spinotto di alimentazione1) (con meno di 7V la tensione regolata è troppo bassa e la scheda funzionerà male, con tensioni maggiori di 12V il regolatore può surriscaldarsi)
  • a batterie tramite lo spinotto di alimentazione (con 4 stilo - 6 Volt - la tensione è insufficiente)

Collegando sia la USB che un'alimentazione esterna la scheda passa automaticamente all'alimentazione esterna2).

Descrizione dei pin

pin descrizione
Vin tensione dell'alimentazione esterna
5V tensione dal regolatore della scheda
3,3V tensione dal regolatore della scheda
GND massa (0 Volt)
IOREF riferimento di tensione
0 e 1 usati anche per la comunicazione seriale
2 e 3 usati anche come interrupt
3, 5, 6, 9, 10, 11 usati anche come uscite analogiche PWM
13 usata anche per il LED montato sulla scheda
da A0 a A5 ingressi analogici a 10bit (range 0-5 Volt → da 0 a 1023)
AREF riferimento per gli ingressi analogici
reset per fare un reset della scheda

Il software Arduino

Dal sito di Arduino è possibile scaricare gratuitamente il software Arduino, in particolare l'ambiente di sviluppo e i driver necessari per comunicare con la scheda. Il software è disponibile per Windows, Mac e Linux.

Installazione del software in Windows

Il procedimento per l'installazione è descritto dettagliatamente - in inglese - nella sezione Getting Started|Windows del sito di Arduino. In sintesi occorre:

  • scaricare il file .zip ed estrarlo nella posizione in cui si vuole installare il software
  • collegare la scheda col cavo USB (il LED power si accende)
  • installare il driver Arduino UNO.inf contenuto nella cartella drivers selezionando il driver quando viene rilevata la scheda o usando Gestione dispositivi dal pannello di controllo
  • avviare il software Arduino e selezionare il tipo di scheda (Arduino Uno) e la porta seriale (ad es. COM3)

L'ambiente di sviluppo Arduino

Il programma Arduino contenuto nella cartella scaricata dal sito è un IDE, cioè un ambiente di sviluppo integrato, e lo useremo per scrivere i programmi per la scheda Arduino e per caricarli dal PC alla scheda. Il suo utilizzo è descritto dettagliatamente nella sezione Getting Started|Environment del sito di Arduino.

La figura seguente mostra la finestra del programma Arduino:

{{:arduino_1:ide.png|la finestra del software Arduino

Gli elementi principali del programma sono:

  1. editor di testo
  2. area messaggi
  3. console di testo
  4. barra degli strumenti
  5. barra dei menu
  6. barra di stato

L'editor occupa gran parte della finestra e permette di lavorare con più file contemporaneamente usando delle tab (un po' come i browser ).

L'area messaggi mostra quale operazione sta eseguendo l'IDE mentre la console di testo visualizza in maniera più dettagliata il risultato di queste operazioni, evidenziando errori o altre informazioni.

La barra di stato mostra il nome della scheda Arduino e della porta seriale utilizzata.

Dalla barra dei menu mostra è possibile accedere a tutte le funzionalità dell'IDE; la useremo per poche operazioni fondamentali, in particolare:

  • impostare il tipo di scheda e la porta seriale utilizzate (menu Strumenti); nel nostro caso sceglieremo “Arduino Uno” e una delle porte COM
  • impostare la posizione della cartella degli sketch che conterrà tutti i nostri programmi (File|Preferenze); nel nostro caso una cartella nell'unità di rete Z:

La barra degli strumenti contiene sei icone che corrispondono ai comandi più utilizzati. La funzione svolta da ognuno di loro è:

  • Verifica: controlla se ci sono errori nel programma
  • Carica: compila il programma - cioè traduce il testo in un file eseguibile - e lo carica sulla scheda Arduino
  • Nuovo: crea un nuovo sketch
  • Apri: mostra un menu con tutti gli sketch (i nostri e quelli di esempio)
  • Salva: salva lo sketch
  • Monitor seriale: apre la finestra del monitor seriale che visualizza i dati inviati dalla scheda Arduino al PC

Scrivere un programma con l'editor

Il codice sorgente dei programmi - che in Arduino sono chiamati sketch - è un semplice file di testo con estensione .ino. L'editor dell'ambiente di sviluppo, oltre alle solite funzioni presenti in tutti editor, ha delle caratteristiche particolari che facilitano la scrittura dei programmi, in particolare:

  • il syntax highlighting, cioè la capacità di evidenziare il testo con colori diversi in base alle regole del linguaggio di programmazione utilizzato (ad esempio i commenti sono in grigio, le parole chiave in arancione, costanti in azzurro, ecc.)
  • l'auto-indentazione (l'indentazione consiste nell'aumentare il rientro del testo per dare struttura al codice; non è necessaria - viene ignorata in fase di compilazione - ma aumenta notevolmente la leggibilità del codice e ne facilita la comprensione); l'editor provvede ad indentare correttamente il codice mentre lo si digita (ad esempio aumentando di due spazi il rientro del blocco di codice di una funzione)
  • la guida di riferimento (Reference) del linguaggio di programmazione che può essere consultata dal menu Aiuto o richiamando una voce in particolare selezionando una parola chiave nel testo e utilizzando il menu contestuale

Risorse

Tutti le pagine sono in inglese.

Torna all'indice.

1)
una descrizione dello spinotto qui
2)
qui una spiegazione dettagliata su come viene selezionata l'alimentazione
Questo sito Web utilizza i cookie. Utilizzando il sito Web, l'utente accetta la memorizzazione dei cookie sul proprio computer. Inoltre riconosci di aver letto e compreso la nostra Informativa sulla privacy. Se non sei d'accordo, lascia il sito.Maggiori informazioni sui cookie
arduino_1.txt · Ultima modifica: 2020/07/03 15:56 da 127.0.0.1