Home » Progetti » Tecnologie » NOPO e Archiduino – Controller open per creare l’intelligenza sistemica

NOPO e Archiduino – Controller open per creare l’intelligenza sistemica

NOPO e Archiduino sono due controller open-hardware studiati per sperimentare e realizzare sul campo progetti finalizzati al controllo e / o al monitoraggio di sistemi elettrici o elettromeccanici.

NOPO con Base Board e CPU ATMega1284
NOPO con Base Board e CPU ATMega1284

Archiduino è il controller più “anziano”, nato da un progetto del 2012 e sviluppato fino al 2018, anno della sua dismissione e della realizzazione del suo successore, il NOPO. Archiduino era dotato di una MCU a 8 bit a larga diffusione, denominata ATMega32U4, la stessa che monta sullo storico Arduino Leonardo. L’ampia diffusione di esempi e librerie per Arduino resero questo controller facilmente programmabile ed espandibile, anche se la MCU in sé non disponeva di risorse molto estese.

Fu così concepito il NOPO, un controller che avrebbe conservato l’architettura a SnipCard nata e cresciuta con Archiduino, ma che avrebbe messo a disposizione una MCU con maggiore memoria flash e avrebbe consentito di ampliare le possibilità di espansione e di interfacciamento con il mondo esterno.

Il NOPO è quindi il prossimo sostituto di Archiduino, sebbene sia ancora in fase di progettazione e prototipazione. Ad esso andrà fatto riferimento per tutti i progetti presenti e futuri, compresi quelli che andranno a gestire e monitorare gli ecosistemi interni a Cascina Calligaris.

Il NOPO

Il NOPO – ancor più che lo storico Archiduino – è un sistema complesso e totalmente open, sia in termini di hardware che di firmware. La sua programmazione è interamente realizzabile con Arduino IDE ed è basata su una corposa semplificazione del linguaggio C++. Non sono ovviamente escluse altre piattaforme quali Atmel Studio o similari, l’importante è che la compilazione avvenga tramite avr gcc.

Il nome NOPO deriva dalle iniziali delle parole inglesi Normal Power. Con questa terminologia si è voluto intendere che, in un’epoca dove si fa gara a chi realizza il sistema più complesso, sconvolgente e spropositatamente veloce, il NOPO rappresenta l’approccio più normale, senza strafare e senza complicare ciò che si può fare in modo semplice. Il NOPO, infatti, è nato su una MCU a 8 bit programmabile con Arduino IDE, e le sue risorse sono state allocate in maniera razionale e calibrata, in modo da guidare l’utente nella realizzazione di progetti dal funzionamento certo e affidabile.

NOPO Base Board con alcune SnipCard installate

La scelta di una MCU a 8 bit potrebbe sembrare un limite enorme, se non si conosce ancora il resto della storia. NOPO, così come lo era Archiduino, è infatti modulare anche dal punto di vista del “cervello”, e permette l’affiancamento di un secondo modulo di controllo basato su Raspberry Pi per gestire la connettività col mondo esterno (ethernet, wifi, bluetooth ecc.). In questo modo si consente alla MCU ATMega di fare BENE la sua parte di gestione dei segnali analogici e digitali, e alla Raspberry di gestire BENE la parte di comunicazione, che su una MCU a 8 bit non sarebbe amministrabile se non a costo di sacrificare la maggior parte delle risorse.

Modularità

Il NOPO è modulare ed espandibile, e, come detto, si è portato dietro il sistema a SnipCard nato con Archiduino. Sul modulo principale, sotto alla scheda CPU, è presente lo spazio per montare fino a 8 schede SnipCard, per un totale di 16 canali esterni. Le SnipCard fanno da interfaccia fra la CPU e il mondo esterno, condizionando e controllando i segnali e al contempo proteggendo il sistema dai più comuni pericoli: scariche elettrostatiche (ESD), disturbi elettromagnetici, picchi di tensione, picchi di corrente, rumore elettrico ecc.

Le SnipCard

Le SnipCard disponibili spaziano in ogni campo di segnale acquisibile. Qui di seguito una panoramica:

NOPO con CPU Raspberry Pi
  • ADC 10 bit: SnipCard a doppio canale che utilizza il convertitore ADC della MCU, previo condizionamento e protezione del segnale analogico in ingresso. Con questa SnipCard si possono effettuare letture di tensioni continue fino a 15 volt, e di correnti nel range 4-20 mA. La risoluzione dell’ADC non è molto ampia ma consente di contenere i costi se si deve effettuare la lettura di segnali senza particolari esigenze di precisione.
  • ADC 16 bit: questa SnipCard consente la lettura da 2 a 4 segnali analogici (0-10V, 4-20 mA) contemporaneamente. La risoluzione di 16 bit rende questo ADC altamente preciso nell’ordine dei microvolt. La sua struttura consente inoltre di contenere al massimo il rumore elettrico, così da ottenere una lettura del segnale molto affidabile e stabile.
  • ADC 24 bit: questa SnipCard è nata per leggere i segnali con tensioni debolissime provenienti dalle celle di carico o da certi pHmetri. Ha un doppio ingresso differenziale e prevede l’uso di una configurazione a ponte di Wheatstone. La risoluzione consente letture fino a una stabilità di +/- 300 nanoVolt.
  • DAC 16 bit: questa SnipCard converte un numero compreso nel range da 0 a 65535 in una tensione da 0 a 5 volt o da 0 a 10 volt a seconda della configurazione. Il segnale in uscita è ad alta impedenza, protetto da un buffer con operazionale. La precisione è massima, ed è assistita da una voltage reference ad alta stabilità termica e bassissimo rumore. I canali in uscita sono due, indipendenti o controllabili in contemporanea.
  • Dual relay: questa SnipCard offre la possibilità di avere dei contatti puliti a bassa tensione direttamente sul modulo principale, che ne può ospitare fino a 7 per un totale di 14 relay. I relay sono tarati per tensioni fino a 36 VDC e per correnti non superiori a 3 Ampere.
  • Dual Opto: con questa SnipCard si possono leggere dei segnali in tensione continua o alternata, convertiti in digitale on/off (on = presenza tensione, off = assenza tensione). Sono indispensabili per captare la pressione di un pulsante su un quadro elettrico, o il contatto di un teleruttore, e offrono un isolamento fino a 2500 volt.
  • Fast Opto: la SnipCard Fast Opto offre la possibilità di connettere segnali ad alta velocità pur mantenendo un isolamento fino a 5KV. Ideale per la lettura di encoder rotativi e tachimetri, la scheda può far transitare segnali fino a 100 MBps senza distorsione.
  • Multi I/O: questa scheda consente di gestire input e output di segnali digitali ad alta velocità, sia in modalità buffer non isolato che in modalità totalmente isolata. Ideale per segnali I2C, 1Wire, CAN.
  • COM 232: la SnipCard COM consente di comunicare in modalità RS232 con apparati esterni e computer.
  • COM 485: la SnipCard COM 485 consente di comunicare in modalità RS485 (protetta, non isolata) con la possibilità di gestire resistenze di bilanciamento e terminatore di linea.

I moduli esterni

Oltre alle SnipCard, che vanno montate ovviamente sulla scheda base del modulo principale, vi sono poi diversi altri moduli esterni, sempre in contenitore DIN 6M, che consentono la gestione di input optoisolati e output a relay. Detti moduli sono 100% compatibili con NOPO e possono essere facilmente adattati a essere connessi ad Archiduino.

I moduli aggiuntivi sono:

NOPO RS16 – Modulo con 16 relay a contatto pulito
  • NO-IO88: questo modulo offre 8 ingressi optoisolati e 8 uscite a contatto pulito con relay elettromeccanico max 3 Ampere.
  • NO-I16: modulo a 16 ingressi optoisolati (tensioni AC/DC fino a 36V, ma configurabile per leggere tensioni di rete a 230VAC)
  • NO-R16: modulo a 16 relay contatto pulito
  • NO-P8: modulo a 8 relay SPDT (deviatore) per correnti maggiori (fino a 10 Ampere)

I moduli aggiuntivi sono interconnessi con un cavetto IDC, con il bus di comunicazione assistito da buffer per la massima affidabilità del segnale in transito. Ogni modulo ha il suo indirizzo che poi dovrà essere chiamato da programma per la comunicazione. I moduli possono essere aggiunti e gestiti entro i limiti fisici del sistema:

  • max 8 moduli P8 (per un totale di 64 relay di potenza)
  • max 8 moduli R16 (per un totale di 128 relay di segnale)
  • max 8 moduli I16 (per un totale di 128 segnali optoisolati in ingresso)
  • max 8 moduli IO88 (per un totale di 64 relay di segnale e 64 ingressi optoisolati)

Al momento è in fase di sviluppo un modulo aggiuntivo per consentire di estendere questi limiti e arrivare a moltiplicare per 8 i “rami” del bus, così da raggiungere una flessibilità impensabile con altri sistemi (ad es. fino a 1024 ingressi optoisolati).

Archiduino è nato da un progetto della ditta Seletronica s.a.s. di Valgrana (CN) ed è stato successivamente sviluppato e mantenuto dalla ditta BisoTronic di Borgo San Dalmazzo (CN).

NOPO è un progetto a cura della BisoTronic di Borgo San Dalmazzo (CN).

Esempio di modularità del controller NOPO

Alcuni progetti realizzati con NOPO e Archiduino

Sistema dosatore prodotti chimici

Il sistema è stato realizzato per controllare un dosatore a stantuffo contenente prodotti chimici. Sulla struttura su cui è collocato il dosatore vi sono 2 microswitch per controllare la posizione dello stantuffo (in sede / coperchio chiuso) e  2 per identificare inizio e fine corsa del medesimo.

I contatti di questi 4 microswitch sono monitorati tramite ingresso optoisolato. Due relè di potenza controllano il senso di rotazione del motore posto sulla vite senza fine, con un terzo relè per variare la velocità di rotazione (due posizioni fisse). Un quarto relè attiva le lampade di stato per RUN ed EMERGENZA.

Una SnipCard ADC a due canali monitora la tensione di alimentazione e quella della batteria. Infine altri 4 ingressi optoisolati servono per ricevere il comando dai pulsanti di START / STOP / RELOAD / EMERGENZA.

Sistema di monitoraggio presenze in real time

Questo progetto è stato realizzato per consentire a una postazione PC di sorveglianza di visualizzare su un monitor la presenza dei pazienti in 10 sale visita di un grande studio dentistico. Ognuna delle sale ha un sensore posto sul sedile del paziente e uno su un contatto ON/OFF di un sensore volumetrico.

Questi 20 contatti devono essere letti ogni 0,5 secondi e il dato rilevato deve essere propagato su rete ethernet per consentire al software di monitoraggio di individuare la presenza del paziente in sala visita e calcolarne il tempo di attesa, oltre che rilevare la presenza del medico in sala e calcolare la durata dell’intervento.

Il progetto è stato realizzato con un Archiduino dotato di 20 ingressi optoisolati e una porta ethernet. La stringa dati viene inviata ogni ad ogni chiamata fatta dal software di controllo (modalità PULL) e può dare una risposta ogni 0,12 secondi. Il sistema è protetto da watchdog ed è resettabile da remoto tramite comando specifico via ethernet.

Sistema di controllo climatizzazione stalle e serre

Per un cliente che si occupa di automazione di stalle per allevamento intensivo abbiamo realizzato un sistema in grado di azionare l’impianto di aerazione in determinate condizioni climatiche.

L’Archiduino utilizzato in questo progetto è composto da 4 ingressi optoisolati (pulsanti di azionamento manuale), una SnipCard ADC a due canali per la regolazione manuale dell’apertura dei portelli di aerazione tramite potenziometri, 3 SnipCard a doppio relè per azionamento dei teleruttori delle varie sezioni motorizzate, una SnipCard 1WIRE a due canali per leggere le sonde di temperatura Dallas DS18B20 poste nell’edificio e un relè di potenza per comandare il motore della ventilazione.

Una SnipCard DAC 16 bit completa il progetto consentendo una precisa regolazione della tensione di controllo di una parte dei motori.

Sistema di controllo estrusori per materie plastiche

In questo progetto abbiamo usato Archiduino per automatizzare e modernizzare un estrusore industriale di materie plastiche. L’impianto è già dotato di un inverter a controllo in tensione che andiamo a pilotare tramite SnipCard DAC a 16 bit.

Sempre sulla struttura della macchina c’è una cella di carico comandabile via protocollo seriale RS485, che controlliamo tramite SnipCard RS485. Una scheda 1WIRE viene utilizzata per leggere l’onda quadra di ritorno dall’encoder/tachimetro del motore principale, in modo da leggere e calcolare la velocità di rotazione (che deve essere mantenuta costante per ottenere un’estrusione uniforme).

Completano il progetto una serie di ingressi optoisolati per i comandi manuali, una SnipCard ADC per i potenziometri di setup manuale, 4 contatti puliti su due SnipCard Dual Relay per azionamento teleruttori e una porta ethernet per inviare stati e tempi a un PC di monitoraggio.