Arduino vs Raspberry Pi: le differenze
Oggigiorno sono sempre più diffusi i progetti Do It Yourself (DIY) realizzati con diversi hardware e software: infatti gli appassionati di tutto il mondo tentano di dare vita a validi aiutanti per la vita di tutti i giorni, come porte del garage o dispositivi per la misurazione della temperatura comandati a distanza, oltre che progetti ludici come droni, robot o delle proprie console per i videogiochi.
Al centro di queste creazioni ci sono degli hardware specifici di diversi fornitori, progettati proprio per questi scopi. Oltre che per le loro dimensioni compatte, questi componenti si contraddistinguono specialmente per il prezzo accessibile a tutti, che si aggira in una fascia di prezzo bassa, al massimo a due cifre.
Tra i mini componenti tecnici più famosi rientrano indubbiamente il Raspberry Pi, il single-board computer inglese, e Arduino, il microcontrollore ideato in Italia. Spesso vengono visti come concorrenti anche se funzionano in modo completamente diverso.
Raspberry Pi vs Arduino: componenti DIY con approcci diversi
Quando all’inizio del 2012 è arrivata sul mercato la prima versione del Raspberry Pi, la piattaforma hardware Arduino era già stata rilasciata da sette anni. Non è un caso che la piattaforma italiana di physical computing, che prende il nome da un bar in Piemonte usato come punto d’incontro dai suoi sviluppatori, sia diventato un classico nella cerchia degli appassionati.
Il tipico setup di Arduino è composto da un mix di componenti hardware e software open source, che consente agli utenti di utilizzare gli oggetti interattivi e autonomi, oltre che interagire in maniera semplice con le applicazioni del computer. Rientrano tra le configurazioni tipiche una scheda con connettori I/O (input e output, quindi entrata e uscita) e un microcontrollore prodotto da Atmel (spesso della serie AVR, ad esempio ATmega328), così come un ambiente di sviluppo integrato (IDE), scritto in Java. Questo IDE comprende anche un proprio editor per il codice e diverse librerie per la semplificazione della programmazione in C e C++.
Arduino | Raspberry Pi | |
Data di rilascio | 2005 | 2012 |
Sito | arduino.cc | raspberrypi.org |
Tipo | Microcontrollore | Single-board computer |
Architettura | AVR, ARM | ARM |
Alimentazione | USB, fonte esterna | USB, fonte esterna |
Porta USB | Sì | Sì |
Porta HDMI | No | Sì |
Software | Ambiente di sviluppo integrato in Java | opzionale (sistemi operativi specifici come Raspbian) |
Il nome del Raspberry Pi non deriva da quello di un bar, ma presenta una particolarità: si pronuncia come il termine inglese per torta di lamponi (“raspberry pie”), motivo per cui anche qui potrebbero aver giocato un ruolo le preferenze culinarie. Con i lamponi, che abbelliscono il logo ufficiale, ci si ricollega alle tradizioni antiche dei produttori dei computer che erano soliti dare nomi che si rifanno ai diversi tipi di frutta, come Tangerine Computer Systems, Apricot Computers o Apple. Il Pi, abbreviazione di “Python interpreter“, deriva dal piano originario di dotare il Raspberry con un interprete integrato per il linguaggio di programmazione Python.
A differenza di Arduino, i modelli Raspberry Pi non solo hanno un processore con prestazioni più elevate, ma dispongono anche di una propria RAM e di opzioni per l’uscita video. Il mini computer inglese funziona perciò autonomamente ed esegue applicazioni, basta solo installare un sistema operativo per il Raspberry Pi.
Arduino e Raspberry Pi a confronto
La differenza principale tra Arduino e Raspberry Pi consiste nel fatto che il primo è un microcontrollore, che può eseguire solo il codice C compilato, mentre l’altro funziona (se richiesto) anche come sistema autonomo. Tuttavia il Raspberry Pi non è sempre la scelta migliore per qualsiasi tipo di progetto DIY, come vedremo analizzando vantaggi e svantaggi, le possibilità di applicazione e le rispettive community.
I vantaggi e gli svantaggi di Arduino
Le schede di Arduino si contraddistinguono in particolare per due caratteristiche: la prima è che forniscono un processore integrato comprensivo di periferiche (entrate, uscite e interfacce), cosa che rende Arduino interessante per tutti gli utenti con poche conoscenze elettroniche. La seconda riguarda l'ambiente di sviluppo basato sull'hardware che fornisce un'interfaccia di programmazione con diverse librerie già pronte, che facilitano notevolmente la programmazione. Questa caratteristica costituisce un punto a favore per le mini piattaforme italiane nel confronto "Arduino vs Raspberry Pi".
Inoltre l'IDE (visto che è scritto in Java) è multipiattaforma e si presenta quindi allo stesso modo su Windows, Linux e macOS. Perciò non c'è da meravigliarsi che i componenti di Arduino siano molto amati per le esercitazioni nelle scuole, nelle università e in altri istituti.
Parallelamente al codice C semplificato, gli utenti di Arduino possono anche scrivere il codice classico o impostare un ambiente di sviluppo alternativo; così le schede offrono un'alternativa conveniente e che permette di risparmiare tempo anche per i professionisti.
La semplicità delle schede di Arduino non presenta però solo vantaggi: infatti l'ambiente di sviluppo integrato è un grande aiuto per il controllo dell'hardware, ma è difficile che i neofiti della programmazione imparino qualcosa sulla scrittura del classico codice in questo modo. In generale, per via della presenza delle librerie già pronte all'uso, si rischia di rinunciare completamente alla propria programmazione e di limitare così inutilmente il possibile campo di applicazione.
Un altro svantaggio di Arduino si trova nella portabilità, nel momento in cui la versione standard delle schede del microcontrollore deve essere ampliata tramite interfacce aggiuntive e funzioni I/O. L'hardware standardizzato consente un upgrade semplice tramite le cosiddette shields; tuttavia l'acquisto di questi moduli aggiuntivi per il collegamento Ethernet, la funzione LED e altri fa aumentare velocemente i costi del progetto.
Vantaggi | Svantaggi |
Setup hardware e software già pronto all'uso | Utilizzando l'IDE, vi sono poche possibilità di imparare qualcosa di elettronica e di programmazione |
Un proprio ambiente di sviluppo con diverse librerie (multipiattaforma) | L'upgrade con le shields può essere costoso |
Punti di forza e punti deboli del Raspberry Pi
Anche il Raspberry Pi si contraddistingue soprattutto per il fatto che fornisce un setup dell'hardware già pronto, cosa che semplifica il processo dispendioso di assemblaggio della base tecnica per i progetti DIY realizzati dagli utenti. Rispetto alle schede di Arduino, il Raspberry Pi dispone già di tutti i componenti necessari per far funzionare il mini computer autonomamente. Inoltre la maggior parte dei modelli riesce a connettersi di default alla rete (Wi-Fi, Ethernet o entrambe); solo nei modelli A e A++ del Pi 1 e nel minimalista Pi Zero mancano le relative porte. Grazie a queste proprietà il Raspberry Pi non solo può essere utilizzato come piattaforma di programmazione, ma serve anche per l'uso di applicazioni come cloud privati, web server o VPN.
L'obiettivo principale della Raspberry Pi Foundation, responsabile dello sviluppo del mini computer, è stato sin dall'inizio quello di facilitare l'accesso all'hardware e alla programmazione per gli utenti con poche conoscenze tecniche. Sebbene il progetto rispecchi ampiamente questa esigenza, specialmente la configurazione può mettere a dura prova la propria pazienza. Non solo si deve scegliere e scaricare il sistema operativo, ma va caricato anche sulla giusta scheda di memorizzazione SD. Anche l'installazione e la configurazione del software del sistema non è per tutti, come si pensa tra le fila dei produttori del Raspberry.
Ci sono diversi fornitori che propongono delle schede SD (a pagamento) sulle quali è già installato un sistema operativo funzionante per il Raspberry Pi (di solito Raspbian).
Un altro svantaggio del mini computer è il prezzo di base, che si attesta tra i 5 e i 40 Euro, a seconda del modello e del fornitore, ma per il funzionamento del Raspberry servono anche tutti gli altri accessori aggiuntivi, come l'elettricità, il cavo HDMI, ecc.
Vantaggi | Svantaggi |
Di default pronto per il collegamento HDMI e di rete (ad eccezione di alcuni modelli) | Il software non è già incluso nel pacchetto e deve essere perciò scaricato e configurato dall'utente |
Adatto per compiti semplici e complessi | Per il funzionamento autonomo sono necessari molti componenti aggiuntivi a pagamento |
Le community di Arduino e Raspberry Pi
Chi pianifica e sviluppa i progetti con parti di hardware come Raspberry Pi e Arduino condivide con piacere i propri risultati con gli altri appassionati. I portali video come YouTube o Vimeo e i siti DIY come hackster.io presentano migliaia di tutorial e istruzioni, fatti dagli utenti per gli altri utenti. Sia Arduino che il Raspberry Pi sono perciò ben rappresentati. Entrambi i componenti DIY, il microcontrollore da una parte e il mini computer dall'altra, riuniscono delle enormi community. Il risultato è che si trovano sempre informazioni sui lavori realizzati, ma anche supporto in caso di domande sui propri progetti.
Le già citate shields di Arduino, usate per l'ampliamento della base tecnica delle schede elettroniche, sono state per la maggior parte sviluppate dai membri della community di Arduino.
Rientrano tra le pagine più importanti per i progetti di Arduino:
- Reddit: su Reddit esiste un canale Arduino sul quale gli utenti condividono le loro idee, postano immagini o video con i risultati ottenuti e pongono domande riguardanti le schede del microcontrollore.
- Forum ufficiale di Arduino: ben 500.000 membri registrati discutono nei moltissimi thread creati sui diversi modelli di Arduino, sulle possibilità di utilizzo, pongono delle domande tecniche, e molto altro.
- Arduino Playground: Arduino Playground è un wiki molto ampio, dove ogni utente interessato può pubblicare dei propri snippet di codice, tutorial, consigli e trucchi, presentare progetti o anche solo consultare i vari post.
Per chi volesse scambiare opinioni con gli altri fan del Raspberry Pi, sono particolarmente indicate le pagine seguenti:
- Raspberrypi.org: la pagina ufficiale del progetto del Raspberry Pi non è solo il primo punto di riferimento per quelli che sono interessati ad acquistare una versione del mini computer. Nella sezione "HELP" i visitatori trovano diverse guide (per hardware e software), oltre che una documentazione online esauriente. Inoltre nel forum del sito sono registrati oltre 200.000 utenti che discutono sui diversi temi relativi al Raspberry.
- RPi Hub: il RPi Hub su eLinux.org fornisce una grande quantità di informazioni per principianti e utenti avanzati, indipendentemente che si tratti di guide per l'acquisto, per il setup o per l'avvio, o di consigli e trucchi per il software e l'hardware. Completano l'offerta i consigli di lettura e i link alle pagine più importanti della community.
- RaspberryItaly: per rimanere sempre aggiornati c'è la community italiana del Raspberry Pi, ricca di news, tutorial e guide per creare dei nuovi progetti con il mini computer. Inoltre accedendo al forum è possibile scambiare opinioni o ancora chiedere aiuto e consigli al resto degli utenti italiani del Raspberry Pi.
Utilizzi di Arduino e del Raspberry Pi a confronto
Arduino e Raspberry Pi hanno in comune il fatto che si possono utilizzare subito senza dover installare o misurare dei circuiti elettrici, o inserire o saldare delle schede. Proprio questo è il motivo principale per cui sia il Raspberry sia Arduino sono così amati per la realizzazione di progetti DIY nelle scuole e nelle università, ma anche nel settore privato: offrono agli utenti poco esperti la possibilità di ottenere velocemente dei primi risultati e per quelli avanzati mettono a disposizione una struttura hardware già pronta.
Il fatto che vengano utilizzati in modo diverso è riconducibile alle differenze essenziali tra il Raspberry Pi e Arduino: le schede di Arduino, svolgendo la funzione di microcontrollore, sono in grado di eseguire un'applicazione predefinita senza troppi rallentamenti. Sono fornite con un proprio ambiente di sviluppo che dispone di diverse librerie pronte all'uso e permettono così di semplificare molto il lavoro. Il Raspberry Pi può sbrigare dei compiti essenzialmente più complessi, essendo un mini computer con un proprio sistema operativo, e può ad esempio eseguire più applicazioni contemporaneamente o una dopo l'altra. Inoltre dispone di default di molte interfacce e porte (HDMI, Wi-Fi, LAN), che nelle schede di Arduino si devono aggiungere con le shields.
In parole povere si può dire che Arduino si presta soprattutto per quei progetti in cui si deve eseguire ripetutamente un semplice compito. Se si tratta ad esempio di misurare la temperatura esterna e di mostrarla su qualsiasi display, il microcontrollore rappresenta la base perfetta. Invece se non si vuole solo misurare la temperatura esterna, ma anche controllare le previsioni del tempo e avviare l'impianto di irrigazione del giardino basandosi su criteri prestabiliti (come l'elevata temperatura e la bassa probabilità di pioggia), il Raspberry Pi risulta la scelta migliore.
Non deve essere per forza Raspberry Pi vs Arduino
Sia le schede di Arduino che il computer Raspberry Pi hanno quindi i loro punti di forza e i loro punti deboli. Nel caso di piccoli progetti è utile prima di tutto riflettere su quali componenti servano per la realizzazione e scegliere quindi una delle due basi. Se il budget lo consente e il progetto pianificato prevede qualcosa di più di un semplice controllo a distanza, non è sbagliato affidarsi a una combinazione dei modelli di Arduino e Raspberry.
Così ad esempio è pensabile che Arduino venga utilizzato soltanto per l’esecuzione di un’applicazione, dopo che il processo è stato computato con un Raspberry Pi. Al contrario è ovviamente possibile che il compito del microcontrollore Arduino consista nell'avviare l'elaborazione di un processo complesso sul Raspberry Pi. Un esempio valido in questo caso è fornito dal progetto "Piano Stairs", con cui Bonnie Eisenman, Erica Portnoy e Vincent Castaneda hanno conquistato il secondo posto nell'HackPrincton 2013 (categoria "hardware"): gli scalini interattivi riproducono le note della pianola. Per fare ciò è stato utilizzato Arduino per rilevare i valori e comunicarli a un Raspberry Pi, che si occupa della relativa elaborazione e dell'uscita dei rispettivi suoni.
Una guida esaustiva al progetto si trova sul sito dello sviluppatore DIY instructables.com.