Raspberry, Arduino o ESP?

Durante la Maker Faire di Roma, mentre raccontavo come funziona il mio progetto La Domotica fai-da-me mi sono  trovato spesso a rispondere alla domanda “ma perché non usi Arduino al posto del Raspberry?”. Semplicemente perché sono due cose completamente diverse.

Vediamo se riesco a farlo capire anche a quelli che “Arduino cosa?”.

In questo articolo affronterò anche le differenze tra Arduino ed ESP, altra spiegazione data circa 1000 volte agli avventori della fiera. Tutti affamati di sapere, dovete sempre chiedere e fate sempre bene.

Da sinistra a destra: Raspberry Pi Zero, Raspberry Pi Mod 3B, Arduino Duemilanove (uno dei primi messi in commercio), WeMos D1 Mini con ESP8266 (è la scheda scura più piccola che si vede sulla scheda blu) e una scheda Arduino di nuova concezione, della serie MKR.

Il Raspberry Pi non è altro che un piccolo computer. Fa (quasi) le stesse cose che può fare un PC comune con Linux installato. E’ una scheda che contiene una CPU, della memoria RAM, una scheda video, una scheda audio, alcune porte USB, un’interfaccia di rete e uno slot per metterci la memoria da usare come disco per il sistema operativo. La nuova serie 3B può montare una versione specifica di Windows.

E allora, perché non usi un PC normale e parli di Raspberry Pi?

Questa è un’ottima domanda. Vediamo tutti i perché

  • E’ tutto in unico pezzo (alimentatore a parte).
  • Costa poco (da 10 a 30€ a seconda della versione).
  • Consuma poco (nell’ordine dei 10W o anche meno).
  • Ha la possibilità di interagire un po’ con il mondo reale usando i PIN di GPIO. Ci si possono collegare sensori o dispositivi seriali, cose che solitamente con un PC non si possono fare.

Ok, il Raspberry Pi è un piccolo PC, quindi perché al posto suo non usi Arduino che è comunque piccolo?

Perché sono due schede profondamente diverse. Se sul Raspberry Pi posso avviare un sistema operativo, utilizzare programmi, avere un DB e mille altre cose, con Arduino tutto questo non è possibile. Arduino è un semplice microcontrollore.

Arduino ha un suo firmware, è programmabile e una volta programmato eseguirà le operazioni che gli sono state impartite per sempre, a meno che non venga riprogrammato. La programmazione di Arduino avviene con un suo sistema di sviluppo (si chiama IDE) e il codice che si scrive è in un linguaggio molto simile al C.

Arduino accede al mondo fisico (sensori) in maniera molto più diretta, senza dover passare per svariati strati software o la schedulazione della CPU, che potrebbe rallentare di molto le letture o le scritture.

Visto che le cose sono già complicate così, sul mercato c’è un’altra scheda, un piccolo microcontrollore, che fa grossa guerra ad Arduino: la famigerata scheda ESP8266.

In fiera, per capire il livello delle persone con cui parlavo, chiedevo “Conosci il Raspberry? Conosci Arduino? Conosci la ESP8266?” Normalmente l’ultima non la conosceva nessuno. Quando andavano via capivo di aver tolto un cliente ad Arduino (scusami Banzi)

La scheda ESP8266 ha alcuni punti interessanti rispetto ad Arduino, per il quale è diretta concorrente:

  • Costa molto meno (3€ contro i 25€ per la più piccola Arduino)
  • E’ più piccola (davvero molto piccola)
  • Ha meno ingressi/uscite digitali
  • Non ha uscite analogiche
  • Ha un solo ingresso analogico
  • Ha il WiFi integrato
  • Si programma con lo stesso linguaggio e usando lo stesso software di Arduino

La scheda base è davvero semplice e limitata, ad esempio non si può programmare con la USB, ma ci va un adattatore USB-seriale. Per ovviare a questo ci sono molti produttori che le hanno montate su schedine un po’ più grandi per poterle usare più facilmente. Io uso da un po’ di tempo le schede WeMos che hanno anche una struttura a shield (letteralmente scudo), praticamente delle schede già assemblate che permettono di impilare alcuni accessori, come sensori e display, sul microcontrollore, evitando fili vari sparsi in giro.

Ma, dopo tutta questa manfrina, io cosa devo usare per i miei progetti?

Non lo posso sapere, ma quel che ti consiglio è questo:

Se devi interagire solo con sensori e attuatori scegli i microcontrollori. Inizia comprando il kit base di Arduino (visto, Banzi, che te li mando lo stesso?) e fai tutti i progetti. A questo punto sei pronto per passare alle ESP.

Se invece il tuo sistema è più complesso, con sensori distribuiti, gestione di un DB, accessi web e quant’altro, prendi in considerazione il Raspberry Pi, se il tuo progetto richiede molto utilizzo della CPU devi ripiegare su qualche scheda “fruttata” più potente (Banana Pi, Orange Pi, Odroid, Udoo …) o direttamente un mini PC. Se hai bisogno di qualche sensore o qualche accessorio particolare il mini PC potrebbe però non essere la scelta giusta.

Dai, voglio iniziare, dove spendo i miei soldi?

Per tutto quello che riguarda Raspberry io uso i siti ufficiali PiMoroni e The Pi Hut
Arduino lo puoi comprare sullo store ufficiale o su Amazon (<– link sponsorizzato)
ESP di solito si acquista direttamente in Cina, se ti perdi tra Aliexpress o Banggod, puoi aprire il sito ufficiale di WeMos (ora Lolin) e poi andare sul loro shop. Se compri in Cina adeguati ai tempi di consegna e attento che sopra circa 20€ (spese di spedizione comprese) compaiono le spese doganali.

Nota importante, da leggere prima di commentare

Questo è un blog scritto per passione, non fornisco quindi risposte di tipo professionale, se avete bisogno di un aiuto tecnico rivolgetevi ad un professionista di fiducia, non offendetevi se mi astengo dal rispondere. Vi ringrazio per la comprensione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.