Cosa sono Arduino e Raspberry? Cosa mi serve sapere di questo mondo? Questo articolo vuole essere un piccolo prontuario di appunti utile agli alunni del quinto anno che devono preparare l’esame di stato con una traccia di sistemi e reti e che potrebbero trovarsi a progettare delle soluzioni che utilizzano Arduino e Raspberry.
Cerchiamo di essere brevi, semplificando il più possibile. Mi perdoneranno gli elettronici o i “maker” esperti se banalizzo alcuni concetti per dare poche e semplici nozioni scolastiche.
Indice dei contenuti
Arduino
Arduino è una basetta programmabile della famiglia delle MCU, Micro Controller Unit. Grande più o meno come uno smartphone, contiene un micro-controllore, ovvero un processore molto semplificato in genere della famiglia ATmega o ATmel, con prestazioni decisamente basse rispetto a quello a cui siamo abituati a leggere sui nostri pc o smartphone: parliamo di frequenze del processore intorno ai 100MHz e memorie intorno ai 128/512 KByte. Ma è inutilizzabile, penserete ma queste caratteristiche sono assolutamente adeguate per controllare un braccio robotico, un macchinario industriale tipo pressa o qualche altro genere di movimento ripetitivo, una stampante 3D o stampante serigrafica, piuttosto che qualche tornio o persino le spazzole rotanti della lavastoviglie con i suoi semplici programmi di lavaggio. Aggiungiamo che il sistema Apollo 11 di atterraggio sulla Luna vantava una cpu a 2 MHz e appena 72 KB di memoria RAM, non vi fa certamente effetto avere tra le mani questo bolide!
Applicazioni di Arduino
Le applicazioni sono pressoché infinite. La basetta infatti può essere usata per sperimentare svariate soluzioni. Assieme al cpu e ram, abbiamo una porta USB e una porta Ethernet. A seconda delle versioni, ci possono essere prese usb o microusb, schede ethernet o Fastethernet. Un hardware semplice ma dal consumo energetico ridicolo: la basetta si può alimentare con una semplice pila AA da 1,5Volt! In alternativa col cavo usb o la presa di alimentazione. Esistono versioni di Arduino molto piccole o con prestazioni leggermente diversificate o superiori, alcune anche indossabili. Con una stampate 3D si può stampare anche un piccolo case di plastica per tenerlo all’aperto.
Quello in foto è un Arduino originale, ideato e sviluppato in Italia (sito ufficiale) ma ne esistono “compatibili”, quelle che al bar chiameremmo “le versioni cinesi”. Essendo, infatti, il progetto opensource, qualsiasi azienda può vedere le specifiche tecniche e creare una basetta con un hardware simile o superiore, produrlo e rivenderlo ad un prezzo diverso se non inferiore. Per avere un’idea, Arduino originale costa intorno ai 18 euro, versioni compatibili come Elegoo o altre possono costare anche 3/5 euro! Su Arduino, possiamo caricare i nostri software scritti in un ambiente IDE simile a quelli del C/C++. Questo sw è scaricabile dal sito ufficiale ed è compatibile con tutti gli Arduino originali e non. Ma cosa ci possiamo programmare ovvero fare con questa basetta e il relativo software?
I sensori
Esistono una varietà enorme di sensori che possono essere collegati ad Arduino con dei pin che si trovano al lato, alcuni pilotano un segnale digitale, altri pilotano un segnale per applicazioni analogiche. Se ai pin digitali colleghiamo ad esempio con cavetti e resistenze dei led, possiamo far accendere e spegnere questo led con un programmino semplice che poi carichiamo sulla basetta. Se colleghiamo più led visto che i pin sono molti possiamo creare giochi di luci led addirittura, una serie di semafori sincronizzati e così via.
Altri sensori utili sono ad esempio i rilevatori di fumo, i sensori di movimento, i sensori di distanza, i sensori di luminosità, i sensori di umidità, i sensori di urto, i sensori di variazione magnetica e molti altri.
Gli attuatori
In base ai dati raccolti dai sensori collegati al nostro Arduino, il programma che scriviamo può gestire queste informazioni per eseguire azioni in cascata. Ad esempio, se il rilevatore di fumo manda un segnale di presenza fumo alla nostra basetta, la basetta a sua volta potrebbe pilotare un motore detto “servo” per spalancare una finestra o la porta, accendere un “buzzer” di allarme e dei led rossi di emergenza.
Tutti i dispositivi pilotabili dal nostro Arduino che compiono un’azione attraverso un meccanismo possiamo indicarli come attuatori.
I “servo motori”, i principali attuatori forse, sono i classici motorini dei bracci robotici: capaci di effettuare un movimento in un range/angolo particolare e restare fermi e saldi nella posizione che raggiungono fornendo un feedback della loro posizione. Sono molto particolari perché possono essere pilotati fornendo loro l’angolo che devono formare.
Esistono altri motorini detti passo passo, questi sono i classici motorini da mettere ad esempio su un veicolo perché hanno la capacità di regolare la velocità, aumentandola o diminuendola, secondo il software che li gestisce al contrario dei servo che hanno una velocità preimpostata. Esistono in commercio anche kit con più pezzi molto economici con cui sperimentare diverse applicazioni.
RFID
Uno dei sensori più interessanti e di attualità sono gli RFID che vale la pena approfondire con qualche riga in più. Sono piccole e sottili spirali metalliche che possiamo vedere ad esempio negli indumenti che acquistiamo al Decathlon o che possono essere facilmente attaccate sui pacchi con dei semplici adesivi. Sono dei ricetrasmettitori radio e comunicano delle brevi informazioni ad una stazione ricevente. In genere è possibile associare ad un tag rfid, ovvero un identificatore univoco di un articolo. Nelle casse automatiche dove gettano l’articolo, il ricetrasmettitore legge l’identificatore e segnala quindi alla cassa che articolo abbiamo inserito in modo che la cassa stessa possa recuperare le informazioni di prezzo e gestire in cascata, scontrino, l’approvvigionamento del negozio, la fatturazione in modo automatizzato.
RFID ormai li troviamo negli armadietti della palestra, nelle tessere che ci danno come chiave negli alberghi, nella accensione delle auto moderne dove si preme start senza di fatto girare una chiave fisica.
E’ una tecnologia interessante che abbiamo già nei nostri cellulari: il famoso NFC altro non è che un particolare sistema di sicurezza basato sulla tecnologia RFID. Del resto funziona avvicinando il nostro smartphone entro 10 cm dal lettore del negozio. E’ un pochino più complesso, senza scendere nei dettagli, crea una comunicazione bidirezionale rispetto allo RFID tradizionale permettendo quindi delle misure di sicurezza e di prestazioni differenti per emulare la nostra carta di credito con i lettori POS abilitati.
Relé
Altro elemento di interesse che possiamo collegare con una basetta Arduino sono i famosi relè. In realtà, li troviamo già da tempo nelle nostre case. Vi siete chiesti come sia possibile che in una stanza con due interruttori uno accenda e l’altro in automatico spenga la luce? Beh è proprio grazie a questo congegno. L’idea di applicare dei relè collegati ad Arduino diventa vincente nella casa domotica del futuro. Con un Arduino opportunamente collegato alla rete con una scheda di rete Ethernet o WiFi (ci sono degli shield su misura), potremmo comandare Arduino che attiva o disattiva un relè a cui possiamo collegare di tutto: una luce, una lampada, una macchinetta del caffè, possiamo azionare un qualsiasi circuito elettrico che accenda o spenga un elettrodomestico o controllare da remoto, magari con uno smartphone o un pc, se abbiamo lasciato accesa la lavatrice o il forno e quindi spegnerlo!
Il lettore potrà immaginare come la combinazione di tecnologie come RFID possano pilotare attraverso Arduino attuatori per aprire porte, relè per accendere luci, eseguire operazioni meccaniche che spostano oggetti o inviano comunicazioni ad altri congegni o sistemi tra server, database o software realizzati su misura. Applicazione infinite che si possono approfondire studiando i temi concernenti la domotica.
RaspBerry
Ce ne siamo già occupati in questa categoria del nostro sito dove pubblicheremo anche delle esercitazioni. Fa parte della categoria SCU, Single Computer Unit o SBC, single board computer. Ha dimensioni e consumi leggermente superiori ad un Arduino, ma un sistema di pin detti GPIO praticamente uguali a cui possiamo collegare gli stessi sensori.
La differenza fondamentale: Arduino ha una cpu, o meglio, microcontrollore dalle prestazioni esigue, RaspBerry ha una CPU “general purpose” come quella dei nostri pc di casa (meglio dei nostri smartphone visto che è una tecnologia ARM). Quindi RaspBerry è a tutti gli effetti un mini pc.
La vecchia versione che ha decretato il successo del nostro SBC, Single Board Computer, è il RaspBerry 3 B+. Vanta un processore a 1.4GHz 64-bit quad-core, dual-band wireless LAN, Bluetooth 4.2/BLE, Gigabit Ethernet, Power-over-Ethernet, 5 porte USB, 1 GB di RAM DDR2, scheda audio, sensore infrarosso per telecomando, slot per webcam, una uscita HDMI video e alloggiamento per microSD dove caricare un sistema operativo a scelta tra svariate distribuzioni Linux o Windows IoT o Android. Prestazioni non da urlo, sentenzierà il lettore, ma collegato ad una tv con la sua porta HDMI non farà rimpiangere nessun utente anche per le normali funzioni desktop. Consumi ridicoli: si alimenta con un alimentatore 5V 2.5A, come un tablet insomma!
Applicazioni del Raspberry
Le applicazioni viste con Arduino sono fattibili anche qui, ma con più capacità e risorse di calcolo per eseguire anche funzioni complesse direttamente sulla basetta. In più può tranquillamente essere amministrata da remoto con una connessione SSH per svariate funzioni. Ad esempio:
- un server per scaricare e condividere i file, torrent, streaming
- caricarci su un player per guardare le IPTV
- utilizzarlo con un joypad per giocare con i vecchi emulatori di console
- crearci un server di stampa in rete per stampanti USB
- un NAS casalingo con hard disk che diventano “di rete”
- metterci su un piccolo host Apache o NGinx per i nostri siti web php o python!!!
Come per Arduino, un mondo di applicazioni che si aprono qualora cominciassimo ad aggiungere i sensori/attuatori collegabili in modo analogo al fratello minore Arduino.
Altre versioni di Raspberry
Esistono svariate versioni di RaspBerry con prestazioni e consumi differenti. Se è vero che ci sono le generazioni 3, 4 e attualmente la 5, di ogni generazioni vengono poi rilasciate versioni più o meno compatte. A variare sono le caratteristiche più esigue per avere consumi migliori, ad esempio la Zero Wireless o la versione A+ che hanno meno caratteristiche e porte, meno ram ma magari un’autonomia a batteria superiore ed una occupazione di spazio del pcb inferiore.
Quelle più interessanti sono le versioni ispirate dall’originale ma realizzate da altre case. Ad esempio la Orange, RockPI, NanoPi, BananaPi e la Asus Tinker, tutte con costi inferiori o caratteristiche superiori tra RAM, CPU (Cortex A9 octacore ad es), memorie MMC integrate ecc. Non vi faranno per niente rimpiangere l’originale.
Ultima modifica 25 Ottobre 2023