Nel 2014 la Seletronica s.a.s. di Valgrana, in provincia di Cuneo, ha progettato e realizzato un controller compatibile con Arduino chiamato Archiduino. No, non è un clone di una delle tante board Arduino, è un vero e proprio controller modulare basato su CPU Atmel ATMega32U4 (quella di Arduino Leonardo), ingegnerizzato per poter essere usato in contesti impiantistici sia in ambito domestico che industriale. Con esso sono state ideate e messe in commercio diverse schede di espansione e/o condizionamento segnale, denominate SnipCard. Ad oggi la dotazione è abbastanza completa al fine di soddisfare praticamente tutte le esigenze di lettura e scrittura di segnali analogici e digitali. Lo abbiamo provato per voi e vi raccontiamo com’è andata.
Descrizione del prodotto
Archiduino è composto da una scheda base in formato 102 x 98 mm, adatta a essere montata nei contenitori standard per barra DIN, con sopra inserita una scheda CPU. La scheda base è dotata di 12 slot per il montaggio di altrettante SnipCard o, in alternativa, di relé di potenza o di optoisolatori. La scheda base può essere assemblata a piacimento, secondo le necessità del progetto, salvo alcuni vincoli tecnici che andremo a spiegare in dettaglio più avanti. Per ogni canale presente in corrispondenza degli slot vi sono morsetti a 3 vie a innesto rapido per il cablaggio esterno. Sopra alla scheda della CPU può essere montata la scheda Display dotata di LCD a 16×2 caratteri e 4 pulsanti configurabili via software. Il tutto è predisposto per entrare in un contenitore per barra DIN, fornito a richiesta.
La scheda base
La scheda base (anche detta base board) è costruita in modo che la CPU venga montata perpendicolarmente al centro della scheda e tutto il resto dello spazio sia a disposizione per gli slot. Su un lato è presente il piccolo alimentatore. Sui due lati più larghi vengono montati i connettori maschi per le spine estraibili adatte a un cablaggio esterno pratico e ordinato.
In ognuno dei 12 slot della scheda base vi sono due alimentazioni e segnali pilotabili a seconda del tipo di funzione che si vuole dare allo slot. Non tutti gli slot sono configurabili, a dire il vero, in quanto alcuni di essi sono usati per funzionalità specifiche come il bus SPI o la porta di comunicazione che in ambiente Arduino corrisponde alla Serial1. Il sistema offre comunque un’ampia gamma di scelte, un po’ come si fa con i connettori per gli shield di Arduino: i pin del processore sono veicolati su un piedino specifico del connettore, è poi l’utente a scegliere quali usare.
Ognuno degli slot sulla scheda presenta la piedinatura e i fori (o pad SMD) per montare a) una SnipCard oppure b) un relé SPDT (Single Pole Double Throw, ovvero i contatti di un classico deviatore) oppure c) due optoisolatori SMD. Sullo slot arrivano le connessioni di alimentazione (12VCC, 3.3VCC , AGND e GND) e un quinto pin è connesso al VREF della scheda CPU, che può essere scelta fra quella del micro ATMega o una VRef esterna di precisione, nella fattispecie un’affidabile LM4030-2.5 di Texas Instruments che garantisce un’accuratezza dello 0,05% e un coefficiente di temperatura di appena 10 ppm/°C.
Gli altri 3 canali disponibili (il socket è a 4×2 pin passo 2,54 mm) portano altrettanti segnali direttamente dai pin del processore secondo la mappatura predisposta. Questa configurazione a 3 segnali per slot è dovuta allo scopo originale della base board, nata per il fratello maggiore Archimede, ovvero il controller che monta la CPU con micro ARM Cortex M4 a 32 bit e 168 MHz della famiglia STM32. Tale processore ha molti più I/O che possono essere usati per gestire un terzo segnale per ogni slot (ad esempio un led di status). Su Archiduino si usano principalmente due segnali per slot (salvo nel caso dello slot 1 che ha 4 segnali, quelli del bus SPI, e dello slot 2 che ha i canali per la seriale, RX/TX/GND).
La CPU
La scheda che monta il processore ATMega32U4 (a breve sarà disponbile anche il più potente 1284) è un piccolo concentrato di ordine, pulizia e buon senso. Nei 102 x 32,5 mm mette a disposizione – oltre al processore stesso – i fondamenti per costruire un valido controller, già integrati o comunque integrabili a richiesta. A bordo infatti ha:
– un pratico RTC (Real Time Clock) basato sul noto DS1337, alimentabile con batteria tampone (fornita a parte).
– una EEPROM da 2K (espandibile come opzione fino a 64K)
– un driver ULN2003 (o ULQ2003) per il pilotaggio dei relé sulla scheda base
– uno slot per SD Card (montato a richiesta)
– i connettori per display LCD con indirizzi standard per LCD parallelo ma con configurazione predefinita per la scheda studiata appositamente per Archiduino, funzionante via I2C bus.
– un connettore ICSP per caricare il bootloader sulla CPU
– uno slot per connettore Gadgeteer, necessario se si vuole usare la SnipCard Ethernet
– una voltage reference di precisione, di cui abbiamo già parlato, basata su LM4030-2.5
– il connettore USB Micro tipo B per la connessione al PC e il caricamento del firmware
La costruzione è ordinata, logica, rispettosa delle best practices, sintomo che è stata progettata da qualcuno che conosceva davvero bene il suo mestiere, seppure si percepisca chiaramente un equilibrato approccio minimalista, nel senso più positivo del termine. Come sulla scheda base, anche qui in tutti i transiti di segnali o di tensioni ci sono preziosi filtri EMI e/o scaricatori TVS della serie GSOTxx. Vi sono anche due regolatori di tensione per i 5 VCC e i 3,3 VCC, ma solo il secondo è montato di default in quanto necessario per fornire la tensione ai circuiti digitali e al micro. I 5 volt sono opzionali e possono servire se abbiamo da alimentare qualche dispositivo (entro i limiti di corrente disponibile) connesso ad Archiduino.
Tramite una serie di ponticelli a saldare si possono configurare quasi tutte le opzioni del sistema, come la possibilità di alimentare la CPU Archiduino via USB, o abilitare/disabilitare gli slot destinati all’uso con i relé di potenza, o – ancora – configurare il tipo di display LCD che si intende connettere al sistema.
Di fatto la CPU è utilizzabile tale quale, senza bisogno della scheda base. Considerato che con il suo prezzo di 24,90 euro costa come un Arduino Leonardo, ma offre decine di funzionalità integrate in più, può essere tranquillamente acquistata e usata in modo stand-alone. Certo non si possono connettere gli shield di Arduino in modo diretto, perché non sono previsti socket con piedinatura e passo compatibili, ma con pochissimi cavi da breadboard – che comunque andrebbero usati anche con Arduino – si può collegare qualsiasi shield già presente sul mercato. Certo che un sistema modulare di questo spessore sarebbe sprecato a essere impiegato alla stregua di un giocattolo, ma questa è la nostra modesta opinione e chiunque è libero di usarlo come meglio crede.
La scheda LCD
A completare il corpo centrale del sistema è stata prodotta una geniale scheda LCD. Geniale perché in uno spazio minimo (vincolato dalle dimensioni del contenitore per barra DIN) è stato inserito un display 16×2 compatibile HD44780 pilotato da un PCF8574 che ne trasforma la comunicazione con la CPU da parallela a I2C. Cosa significa? Che si risparmiano molti pin di processore: ne bastano due per il display e uno per la tastiera. Già, perché c’è anche una keypad a 4 tasti connessa a un pin analogico, comodissima quando si deve creare un sistema in grado di ricevere parametri manualmente da parte di un operatore. La scheda LCD è alimentata a 5 volt ed ha a bordo il suo regolatore di tensione, a sua volta alimentato dai 12 volt dell’alimentatore sulla scheda base attraverso le piste della scheda CPU.
Una cosa curiosa che abbiamo notato quasi subito è che il display LCD è del tipo a doppia piedinatura, cioè con 16 pin sopra allo schermo e altri 16 pin, replica dei primi, sotto allo schermo. Non si tratta di display molto comuni in commercio, visto che di solito si trovano (a badilate, lasciateci dire) quelli con i soli pin sopra allo schermo. Questo display si connette con i pin SOTTO allo schermo, e potrebbe essere un po’ difficoltoso reperirne uno per doverlo sostituire in caso di guasto.
Caratteristiche salienti
Archiduino si distingue dal buon Arduino e da altri controller simili per una serie di particolarità che lo rendono unico e veramente versatile.
Modularità
Il vero punto di forza sta nella possibilità di assemblare un intero sistema di controllo in un contenitore di 106 x 96 mm (corrispondente a 6 moduli DIN). Per la maggior parte dei progetti non c’è bisogno di alcuna interfaccia esterna – e di nessun filo volante, finalmente -, si fa tutto dentro questa “minuscola” scatola. Ci siamo chiesti quali fossero i limiti fisici del sistema, e abbiamo fatto un po’ di simulazioni. Ecco i risultati:
- max numero di relé di potenza (SPDT) installabili sulla scheda base: 9
- max numero di porte seriali hardware: 1
- max numero di porte seriali software: 11
- max numero di snipcard ethernet: 1 (a causa del connettore Gadgeteer)
- max numero di ingressi optoisolati: 24
- max numero di canali ADC: 20
- max numero di canali DAC: 20
- max numero di relé a bassa potenza (SPST): 20
- max numero di uscite PWM: 7 (limitate dalla CPU)
I numeri sopra riportati sono semplicemente impressionanti: stiamo parlando di 106 x 96 millimetri, e non di scandalosi panini di shield e grovigli di cavi. Immaginate 20 relé SPST (single pole single throw, ovvero contatto pulito a una via) in queste dimensioni minuscole! E stiamo parlando di SnipCard a doppio relé completamente protette in ingresso e in uscita, con tanto di MOV (Metal Oxide Varistor) su ogni canale. Come se non bastasse, ognuna di queste schede può essere configurata per il funzionamento con interblocco hardware di un relé sull’altro. Insomma, è evidente che il target di questo sistema è il mondo impiantistico, mentre il costo – irrisorio, se proporzionato alla potenza e alla sicurezza del sistema – è ampiamente entro la fascia hobbistica.
Sicurezza
Usato nel modo corretto (base board + scheda CPU e SnipCards) Archiduino è un carro armato. Se aveste avuto (come noi) la possibilità di leggere i report dei test di laboratorio per la certificazione CE, avreste potuto notare a quali e quanti esami è stato sottoposto, e con che grado sono stati superati. La cosa che più ci ha impressionati è la totale, assoluta inerzia quando colpito da valanghe di onde radio ad alta potenza (parliamo di sweep da 80 MHz fino a 1 GHz con potenza media di 150 / 200 Watt) irradiate con antenne direttive a distanza di 3 metri, come da normativa ISO. Un mattone avrebbe reagito peggio, se vogliamo usare un paragone poco ortodosso. E pensare che in un non lontano passato abbiamo visto apparecchiature elettroniche – certificate CE (sic) – imballarsi per la sola vicinanza di un telefono cellulare.
Altro aspetto significativo è rappresentato dal ruvido test per misurare la suscettibilità alle scariche elettrostatiche, anch’esso superato brillantemente fino alla tensione di 15 KVolt. Vi sembrerà un’enormità, ma tenete presente che quella piccola ma dolorosa scintilla che si crea quando scendiamo da certe auto e tocchiamo il cancello di casa è all’incirca fra i 12 e i 15 mila volt. Immaginatela scaricata attraverso un apparecchio elettronico non dotato di TVS o altre protezioni: una strage, fidatevi.
Semplicità di programmazione
Archiduino è compatibile con Arduino, sì o no? Sì, totalmente, e lo dimostra il fatto che si programma tramite Arduino IDE impostando come board il buon Arduino Leonardo. Abbiamo fatto diverse prove usando sketch già scritti e non abbiamo riscontrato alcun problema. Le librerie a disposizione sono abbastanza semplici da capire e non occupano molto spazio. Con pochi passaggi si può creare la board Archiduino, come nell’immagine qui accanto.
Ci ha colto un po’ di sorpresa la differente denominazione dei pin, ma poi, leggendo il manuale della CPU, abbiamo capito il meccanismo e tutto è diventato più facile. Per comodità, e per rispecchiare quello che si presenta sulla scheda base, i pin sono raggruppati per modulo. Come abbiamo detto i moduli disponibili sono 12, quindi per indirizzare il pin corrispondente al morsetto B del modulo 10 dovremo semplicemente scrivere M10B. Cosa comporta all’atto pratico questa variazione? Se prendiamo uno sketch scritto per Arduino avremo le solite denominazioni D10, A1, D0 eccetera, come da corrispondenza con la serigrafia sui connettori per gli shield. Su Archiduino, per adattare lo sketch e indirizzare i segnali dove richiesto, dovremo solo rinominare i pin per portarli al modulo che ci interessa. E se vogliamo mantenere la denominazione di Arduino nessuno ce lo vieta, basterà seguire la tabella di confronto delle mappature disponibile nel manuale della CPU e sul sito di Archiduino.
Bene, per oggi è tutto. Nel prossimo articolo parleremo delle SnipCard e vi mostreremo alcune prove che abbiamo fatto con Archiduino. Se vi è piaciuto questo articolo non abbiate timore a lasciare un commento, risponderemo a qualsiasi domanda.
Commenti recenti