Computer tascabili
Cosa puoi fare con un SBC e quale scegliere.
Parte 1
Cos'è un SBC?
I Single Board Computer (SBC) sono esattamente quello che dicono di essere: piccoli PC in una scheda sola, all-in-one, tutto dentro. Su quest’unica scheda troviamo processore, RAM, memoria di archiviazione (di solito di tipo eMMC) e tutto il resto. Qualcuna contiene persino un Arduino(-like) con relativi pin per comunicare con l’esterno.
Ho utilizzato personalmente vari tipi di SBC, per motivi professionali. In questo articoli descriverò potenzialità e lati oscuri di quelli che ho testato personalmente, e mi concentrerò soprattutto su quegli aspetti che spesso vengono trascurati dalle recensioni ma che ritengo particolarmente utili.
Differenze tra SBC e MCU
Spesso si tende a fare confusione tra SBC (Single Board Computer) e MCU (Microcontroller Unit). A volte la linea di demarcazione tende a farsi più grigia, quindi cerchiamo di tracciarla correttamente.
La definizione di SBC innanzitutto prevede la parolina “Computer”. Questo indica che un SBC per essere tale, ad esempio, deve avere un sistema operativo. E NO, un bootloader non è un sistema operativo. Un bootloader, normalmente presente negli MCU è una serie di istruzioni che permettono di caricare il software sulla scheda, che può di conseguenza eseguirlo. Un sistema operativo è un software infinitamente più complesso, perchè oltre ad un bootloader comprende un’interfaccia. Inoltre è in grado di eseguire più programmi contemporaneamente. Quindi le differenze tra MCU e SBC sono, a mio parere, estremamente nette.
Aggiungiamo anche qualcosa di più “grigio”, se vogliamo: gli MCU rispetto agli SBC hanno processori più lenti di alcuni ordini di grandezza, memoria più piccola di alcuni ordini di grandezza, e un’altra caratteristica che nessuno valuta mai ma a me piace sottolinearla: un MCU, nel 99% dei casi e delle situazioni, può essere spento semplicemente togliendo corrente e questo non causa nessun danno*.
Inoltre, normalmente sugli MCU si trovano dei pin di input e output, spesso configurabili come tali, che permettono di interfacciarsi a componenti esterne (sensori, attuatori, schermi, etc…).
Esistono degli SBC che integrano un microcontrollore, come ad esempio UDOO, LattePanda e altri ancora. In questo caso, tecnicamente, sono due unità concettualmente separate ma presenti sulla stessa scheda, connesse tramite porta seriale. Parlerò più nel dettaglio di cosa sia la porta seriale, come avviene la comunicazione e cosa questo comporti.
L’architettura degli SBC normalmente è ARM oppure X86. La differenza è abissale, soprattutto per un motivo molto pragmatico: a prescindere dal sistema operativo utilizzato, ci sono software che su architettura ARM semplicemente non girano. Non è un problema di velocità, ma di compatibilità software con l’architettura hardware. Ciò non significa, tuttavia, che sistemi X86 siano da preferire sempre a sistemi ARM-based: anche l’architettura ARM ha i suoi vantaggi, tutt’altro che trascurabili.
*A meno che lo sketch che sta eseguendo preveda la scrittura di file sulla memoria interna. Se per una BdSM (termine tecnico che non significa “Bondage e Sado Maso” ma “Botta di Sfiga Mostruosa”) togliete l’alimentazione proprio in QUELLA FRAZIONE DI SECONDO in cui sta scrivendo file, beh, i risultati possono essere imprevedibili. Ma diciamo che non succede quasi mai.
UDOO X86 Advanced Plus
Processore Intel Celeron N3160 1,60 GHz
- RAM DDR3 4GB Dual Channel
- HD 32GB eMMC
- Scheda video Intel HD Graphics 400
- Microcontrollore on-board Arduino 101-compatibile
- Porte 2 MiniDP++, 1 HDMI, 1 slot MicroSD, 1 connettore SATA, 2 slot Key-E per moduli WiFi, 3 porte USB 3.0 Type-A, S/PDIF Audio Output, connettore per microfono e cuffie, interfaccia a infrarossi, 20 pin per Arduino, Ethernet
UDOO è un marchio di proprietà di un’azienda italiana. Non sono un campanilista, ma quando qualcuno di molto italiano, come direbba Stanis Larochelle, produce un capolavoro così, sono un po’ orgoglioso anche io.
Questo è un vero PC, Windows 10 gira senza problemi. Il vantaggio più evidente rispetto ai competitor è la moltitudine di monitor (tre) che è in grado di gestire contemporaneamente. Le porte sono tutte USB 3.0, e gli accessori non mancano.
Consiglio di acquistare una ventola per il dissipatore, che diventa caldo in fretta se lo usate per applicazioni CPU-intensive. Inoltre, la ventola in questione si accende di default quando il dissipatore raggiunge una temperatura molto alta, quindi consiglio di regolarla su una temperatura più bassa (da BIOS). I 32GB di eMMC sono appena sufficienti per gestire il sistema operativo, quindi se lo usate come PC è necessario aggiungere una unità SATA, tramite apposita porta.
Il modulo WiFi è opzionale, ma se avete la possibilità di connetterlo a internet tramite Ethernet, non è necessario.
Attenzione! L’alimentatore non è incluso, quindi a meno che non acquistiate un bundle, sappiate che avrete bisogno anche di un alimentatore a 12V 2.5A con un connettore adeguato.
Al momento in cui scrivo, questa unità è già obsoleta. Può capitare, tuttavia, di trovarne una online a prezzi super vantaggiosi, e se è quello che cercate beh, perchè no?
Tenete conto che si tratta di un SBC con processore a 64bit, dove può girare tranquillamente Windows 10 o una qualunque distro Linux (personalmente l’ho provato con la 18.4 e la 20, ed entrambe girano a meraviglia).
C’è un ultima problematica da evidenziare, particolarmente fastidiosa: per caricare uno sketch sull’Arduino 101, è necessario fare una serie di riti propiziatori, balletti, spingere pulsanti di reset al momento giusto mentre abbaiate come un Husky e tenete a massa il lampadario con le mani, altrimenti non vedrà la scheda.
Tutto vero, ma qui non parliamo di un clone cinese da 3€, quindi mi permetto di sottolinearlo.
Riassumendo i pro e i contro:
PRO
Fino a 3 monitor, porta SATA, porte USB 3, processore X86 a 64bit, eMMC da 32GB incluso, consuma come una calcolatrice del Dixan
CONTRO
Molti accessori importanti non sono inclusi, è un processore già datato, il costo è comunque superiore a quello di un PC di dimensioni tradizionali di pari livello, e poi c'è quel problemino con Arduino 101 integrato...