• Non ci sono risultati.

Capitolo 4: Apparato Strumentale

4.2 Microcontrollore Arduino

Arduino comprende una piattaforma hardware per il physical computing sviluppata presso l'Interaction Design Institute di Ivrea.

Questa si basa su un circuito stampato che integra un microcontrollore con pin connessi alle porte I/O (ingresso e uscita), un regolatore di tensione e, quando necessario, un'interfaccia USB

77 che permette la comunicazione con il computer. A questo hardware viene affiancato un ambiente di sviluppo integrato (IDE) multipiattaforma (per Linux, Apple Macintosh e Windows). Questo software permette anche ai novizi di scrivere programmi con un linguaggio semplice e intuitivo derivato da C e C++ chiamato Wiring, liberamente scaricabile e modificabile.

Arduino può essere utilizzato per lo sviluppo di oggetti interattivi “stand-alone” e può anche interagire, tramite collegamento, con software eseguiti da computer, come Adobe Flash, Processing, Max/MSP, Pure Data, SuperCollider, Vvvv.

La piattaforma hardware Arduino è spesso distribuita agli hobbisti in versione pre-assemblata, acquistabile in internet o in negozi specializzati. La particolarità del progetto è che le informazioni sull'hardware e soprattutto i progetti sono disponibili per chiunque: si tratta quindi di un hardware open source, distribuito nei termini della licenza “Creative Commons Attribution-ShareAlike”. In questo modo, chi lo desidera può legalmente costruire da sé un clone di Arduino o derivarne una versione modificata, scaricando gratuitamente lo schema elettrico e l'elenco dei componenti elettronici necessari. Questa possibilità ha consentito lo sviluppo di prodotti Arduino compatibili da parte di piccole e medie aziende in tutto il mondo, quindi oggi è possibile scegliere tra un'enorme varietà di schede Arduino compatibili. Ciò che accomuna questi prodotti inerenti elettronica sperimentale e sviluppo è il codice sorgente per l'ambiente di sviluppo integrato e la libreria residente che sono resi disponibili, e concessi in uso, secondo i termini legali di una licenza libera, GPLv2.

Grazie alla base software comune ideata dai creatori del progetto, per la comunità Arduino è stato possibile sviluppare programmi per connettere a questo hardware grande varietà di oggetti elettronici, computers, sensori, display o attuatori. Dopo anni di sperimentazione è oggi possibile fruire di un database di informazioni vastissimo. (32), (33).

4.2.1 Hardware Arduino

Una scheda Arduino tipica consiste in un microcontrollore a 8-bit AVR prodotto dalla Atmel, con l'aggiunta di componenti complementari per facilitarne l'incorporazione in altri circuiti. In queste schede sono usati chip della serie megaAVR, nello specifico i modelli ATmega8, ATmega168, ATmega328, ATmega1280 e ATmega2560.

Molte schede includono un regolatore lineare di tensione a 5 volt e un oscillatore a cristallo a 16 [MHz].

Come evidenziato nel paragrafo precedente esistono un ampia varietà di schede appartenenti a questa famiglia di microcontrollori, nel progetto che ho seguito le due schede utilizzate sono “ArduinoUno” e “ArduinoYún”.

ArduinoUno

L’Arduino Uno , rappresentato in Fig. 4-6 ,è un microcontrollore basato sul chip ATmega328. È provvisto di 14 pin digitali di I/O, 6 pin analogici, un oscillatore ceramico a 16 [MHz], una porta USB, un jack di alimentazione, un supporto ICSP e un tasto di reset. Contiene quindi tutto ciò che serve per supportare il chip microcontrollore, per l’accensione è sufficiente collegarlo all’alimentazione tramite collegamento USB con un computer o collegandolo ad una batteria.

Tra i pin a disposizione alcuni hanno degli utilizzi particolari, i pin digitali 2 e 3 possono essere utilizzati come pin di Interrupts, il pin analogico A4 come pin “Serial Data” e il pin analogico A5 come pin “Serial Clock”, queste funzioni saranno chiarite al paragrafo 4.3 che tratta il collegamento tra microcontrollore e sensore.

78

Fig. 4-6 : Microcontrollore Arduino Uno, a sinistra la parte frontale a destra il retro della scheda. (32)

La scheda può essere alimentata esternamente ad una tensione variabile tra i 6 e i 20 [V] -anche se il range consigliato è compreso tra i 7-12 [V].

Arduino Uno è dotato di una serie di pin in grado di fornire una tensione in uscita, in particolare di un pin che può fornire una corrente di 3.3 [V] fino ad un massimo di 50 [mA] e di un pin in grado di fornire una tensione di uscita di 5 [V]; sono in oltre presenti 3 pin per la messa a terra indicati dalla sigla “gnd”.

Schemi elettrici e datasheets dei componenti utilizzati per l’assemblaggio di questa scheda sono tutti disponibili sul sito ufficiale Arduino www.arduino.cc (32). Sullo stesso è possibile anche acquistare una scheda di questo tipo al prezzo di 20€.

Arduino Yún

In Fig. 4-7 è rappresentata la scheda Arduino Yun, basata sul microcontrollore Atmega32u4 e il chip Atheros AR9331. Il processore Atheros supporta un OpenWRT basato su sistema operativo Linux chiamato Linino. La scheda è dotata di un supporto WiFi ed Ethernet, di una porta USB-A, uno slot per schede micro-SD, 20 pin per I/O digitali e 12 pin per ingressi analogici, un oscillatore di cristallo a 16 [MHz], una porta micro-USB, un supporto ICPS e 3 tasti di reset.

Fig. 4-7 : Microcontrollore Arduino Yún, a sinistra la parte frontale a destra il retro della scheda. (32)

Lo Yún si distingue dalle altre schede della famiglia Arduino in quanto può comunicare con un sistema Linux preinstallato, cosi da offrire un potente computer in rete, ma con la facilità di gestione che contraddistingue i sistemi Arduino. È possibile quindi, interagire con Arduino Yún anche quando questo non è connesso via cavo al computer, grazie a queste particolari caratteristiche e al sistema WiFi integrato.

Questa scheda è fornita di due processori separati, con diverse funzionalità, vi è dunque la necessità di integrare la comunicazione tra queste due unità , come evidenziato in Fig. 4-8.

79

Fig. 4-8 : integrazione tra i processori ATmega32u4 e AR9331. (32)

La libreria “Bridge” è costituita da un in insieme di funzioni precostruite che facilitano la comunicazione tra i due processori, dando ai programmi la possibilità di eseguire funzioni dal terminale, comunicare con interfacce network, e ricevere informazione dal processore AR9331. La porta USB, il supporto WiFi e la porta Ethernet integrate , cosi come la scheda di memoria micro-SD non sono connesse al processore ATmega32u4, ma all’AR9331, e la libreria di funzioni Bridge permette all’Arduino di interfacciarsi con tutte queste periferiche integrate.

Dal punto di vista delle tensioni di alimentazione in ingresso e dei pin di alimentazione di uscita gode delle stesse caratteristiche dell’Arduino Uno, illustrate nel paragrafo precedente.

I pin di interrupt, Serial clock e Serial data sono invece posizionati in maniera diversa, queste tre funzioni sono rispettivamente disponibili ai pin A7, A3 ed A2.

Come per Arduino Uno gli schemi circuitali e i datasheets di tutti i componenti che lo compongono, sono disponibili sul sito ufficiale www.arduino.cc (32).

Sul sito ufficiale è possibile anche acquistare l’Arduino Yún al prezzo di 52€.

4.2.2 Software Arduino

Come già detto a inizio paragrafo, è disponibile un ambiente di sviluppo integrato (IDE) multipiattaforma (per Linux, Apple Macintosh e Windows) con cui compilare e caricare i programmi su tutte le schede della famiglia Arduino. Il software è liberamente scaricabile dal sito ufficiale, per permettere la stesura del codice sorgente, l'IDE include un editore di testo dotato inoltre di alcune particolarità, come il syntax highlighting (visualizzare comandi in colore differente), il controllo delle parentesi, e l'indentazione automatica. L'editor è inoltre in grado di compilare e lanciare il programma eseguibile con un singolo comando. In genere non vi è bisogno di creare dei Makefile o far girare programmi dalla riga di comando. In Fig. 4-9 è riportata un immagine del software, si nota il campo principale dell’editor di testo e le principali funzioni disponibili nella toolbar di comando.

80

Fig. 4-9: Software Arduino, con editor di testo e funzioni principali.

È importante ricordare che per poter compilare programmi funzionanti sull’arduino Yún è necessario scaricare la versione 1.5.6 del software.

4.2.3 Software Putty

Nel paragrafo 4.2.1 tra le specifiche dell’Arduino Yún è stato evidenziata la presenza di un supporto WiFi. L’Arduino Yún può essere configurato in modo da allacciarsi ad una rete WiFi esistente o può generare una propria rete, permettendo la comunicazione tramite protocollo SSH (Secure Shell), questo protocollo di rete permette di stabilire una sessione remota cifrata tramite interfaccia a riga di comando.

Per stabilire questa connessione è necessario avere a disposizione un terminale virtuale, per l’inserimento e la lettura di queste righe di comando.

Allo scopo è stato utilizzato il software Putty, si tratta di un client SSH combinato con un emulatore di terminale per la gestione in remoto di sistemi informativi.

Il programma è concesso gratuitamente e scaricabile dal sito ufficiale (34), si riporta in Fig. 4-10 un immagine del programma in esecuzione con il messaggio di benvenuto che appare al momento della connessione con Arduino Yún. Per ulteriori informazioni e per la lista dei comandi e delle funzioni disponibili rimandiamo al sito ufficiale di Putty (34) o al sito ufficiale di Arduino (32).

81

Fig. 4-10 : Screenshot di Putty in esecuzione, al momento dell’autotenticazione su Arduino Yún.

Dal terminale è possibile dare dei comandi in input al programma, leggere dei dati o altri informazioni in output e gestire i file presenti sulla memoria interna all’Arduino Yún o sulla memoria esterna, cioè sulla micro-SD.