• Non ci sono risultati.

Arduino e Raspberry: piccoli cervelli da grandi potenzialità

4.1 Software e Hardware: descrizione di strumenti comuni ai progetti

4.1.3 Arduino e Raspberry: piccoli cervelli da grandi potenzialità

Arduino (Fig. 76) è una piattaforma Hardware e Software open-source per la realizzazione di progetti che utilizzano sensori, attuatori, e comunicazione con altri dispositivi.

È stata ideata e sviluppata nel 2005 da alcuni membri dell'Interaction Design Institute di Ivrea come strumento per la prototipazione rapida e dedicata a scopi hobbistici, didattici e professionali. L’origine del nome lo si deve a quello del bar di

Ivrea frequentato dai fondatori del progetto, nome che richiama a sua volta quello di Arduino d'Ivrea, Re d'Italia nel 1002.

L’utilizzo di Arduino permette la realizzazione in maniera relativamente rapida e semplice di piccoli dispositivi atti a controllare luci, velocità per motori oppure automatismi legati alla lettura della temperatura e dell'umidità.

Per via della sua modularità può essere incluso anche in molti altri progetti che utilizzano altri diversi tipi sensori, attuatori per la comunicazione con altri dispositivi.

La parte HW è composta da una larga famiglia di schede elettroniche (Fig. 77) con caratteristiche tecniche, prezzi e modalità di funzionamento differenti mentre l’ambiente software è invece univoco e comune a tutte le schede.

Fig. 77 Famiglia schede Arduino

La piattaforma Arduino nelle sue componenti segue le filosofie di Open Hardware e Open Source per quel che riguarda il software di sviluppo.

Gli schemi hardware infatti sono distribuiti in modo da poter essere utilizzati nei termini legali di una licenza Creative Commons Attribution Share-Alike 2.5 e sul sito ufficiale Arduino sono anche presenti, per alcune versioni della scheda, il layout originale e i file di produzione. Il codice sorgente per l'ambiente di sviluppo integrato e le librerie sono invece disponibili, e concessi in uso, secondo i termini legali contenuti nella licenza GPLv2.

Per poter implementare il comportamento interattivo con la schede Arduino esse vengono fornite con funzionalità di input/output (I/O) attraverso l’utilizzo di connettori di tipo femmina collocati sulla parte superiore delle schede oppure attraverso estensioni note con il termine di shields.

La relazione tra i segnali raccolti in input e la logica presente sulla scheda determina il comportamento della scheda attraverso attuatori pilotati dal programma fornendo le istruzioni per mezzo dei canali di output in dotazione.

I canali I/O presenti sulle schede Arduino possono essere di tipo analogico o digitale, con conseguenze legate al funzionamento e all’uso diretto.

I connettori legati ad un funzionamento di tipo analogico sono dedicati all’ingresso di segnali analogici che ricevono valori di tensione letti da sensori esterni, fino a un massimo di 5 Volt. Questi segnali sono convertiti in 1024 livelli discreti (da 0 a 1023).

I connettori di questa tipologia possono essere riprogrammati per funzionare come normali entrate/uscite digitali, aumentando quindi il numero

di queste uscite mentre i connettori digitali non possono essere usati come analogici.

Raspberry PI(Fig. 78) invece è un single-board computer di basso costo con sistema operativo Linux e composto da una serie di componenti audio, video e di memoria ai quali si aggiungono 40 pin GPIO (General Purpose Input/Output) che

permettono di avere un controllo sugli input/output, dando la possibilità di collegare accessori esterni come schede logiche, sensori e pulsanti ampliando potenzialità ed utilizzi.

Il progetto si basa su un system-on-a-chip di fabbricazione Broadcom (BCM2835, oppure BCM2836 per il Raspberry Pi 2, o BCM2837 per Raspberry Pi 3), incorpora un processore ARM, una GPU VideoCore IV, e una capacità di memoria RAM di 256MB, 512MB o 1GB. Il progetto non prevede né hard disk né unità a stato solido, affidando le funzioni di boot e memoria non volatile ad una scheda SD.

I primi sviluppi sono stati iniziati nel 2006, ma con alcune concezioni diverse rispetto a quelle che possiamo identificare con quella attuale e vede la prima comparsa nel febbraio 2012 quando venne rilasciato un proof of concept dell’architettura attuale e del quale nel corso del tempo si sono realizzate diverse revisioni differenziate da un numero identificativo nel nome del dispositivo.

A seconda di questo numero di revisione è anche possibile trovare diverse versioni (Fig. 79): ● Modello A ● Modello A+ ● Modello B ● Modello B+ ● Modello Zero ● Modello Zero W

Fig. 79 Esempi di schede Raspberry

Le diverse versioni di schede si differenziano tra loro per dimensioni e capacità hardware che la rendono più o meno completa rispetto alla funzionalità che deve permettere e rendere possibile, come ad esempio quelle legate alla connessione internet o ad altre interfacce esterne.

La Raspberry Pi Foundation diffonde ufficialmente sistemi operativi basati su GNU/Linux, fra cui NOOBS e Raspbian, ambedue basate su Debian GNU/Linux.

La differenza tra NOOBS e Raspbian è che il primo è costituito da un installer semplificato mentre il secondo propone un procedimento di installazione testuale come Debian.

Esistono inoltre diverse distribuzioni per utilizzare Raspberry Pi come Media Center e basate su Kodi come OpenELEC, XBian e

OSMC.

L’ultima versione, Raspberry Pi 4 Model B (Fig. 80), è stato immesso sul mercato nel giugno 2019, monta un Broadcom BCM2711 quad-core a 1.5 Ghz e porta in dote diverse novità rispetto ai predecessori:

● RAM LPDDR4 (con versioni da 1, 2 e 4 GB di RAM);

● due porte micro-HDMI con supporto al 4K; ● modulo Wi-Fi dual band 802.11ac;

● Bluetooth V5.0;

● due porte USB 3 + due porte USB 2;

● alimentazione mediante il nuovo connettore USB-C.

L’insieme di queste sue caratteristiche lo rendono uno strumento ideale ad assolvere diversi compiti in cui deve essere utilizzato come cervello in grado di dare vita a oggetti tecnologici, invenzioni e artefatti di ogni genere.