Raspberry PI Pico come hardware test per sistemi

Raspberry PI Pico hardware testing

Green Custard ha progettato una soluzione di test che sfrutta la flessibilità di Raspberry Pi Pico per fornire test rigorosi che sarebbero difficili da ottenere con altri mezzi.

(Fonte: Raspberrypi.com)

Nell’ambito della sua missione “Healthy People, Healthy Planet”, Aqua Libra Co, di proprietà del colosso britannico delle bevande Britvic, sta lavorando per un futuro sostenibile per la distribuzione di bevande sul posto di lavoro e al dettaglio. L’azienda ha collaborato con Amazon Web Services (AWS) e la società di servizi professionali Green Custard con sede a Cambridge per sviluppare Aqua Libra Flavor Tap, che elimina la necessità di imballaggi monouso consegnando le bevande direttamente in un recipiente riutilizzabile. Dal rubinetto è possibile erogare acqua naturale o frizzante e una varietà di aromi.

All’interno del rubinetto sono presenti diversi sistemi di controllo, uno dei quali reagisce all’input dell’utente e trasmette le informazioni sulla cartuccia degli aromi ad AWS. Un altro controlla direttamente l’erogazione, commutando valvole e solenoidi per periodi controllati con precisione, nonché azionando le pompe per l’esatta quantità di aroma per una specifica ricetta di bevanda. Nell’ambito del lavoro di Green Custard volto a sviluppare il rubinetto, era necessaria una soluzione per testare il software e l’hardware in esecuzione sulla scheda di controllo dell’erogazione.

La sfida

Testare il software in esecuzione su un sistema embedded può essere particolarmente difficile, perché spesso l’unità sottoposta a test richiede input da sensori esterni che forniscono segnali che cambiano nel tempo. Una soluzione consiste nel simulare questi segnali esterni, consentendo al software integrato di funzionare come se fosse in esecuzione all’interno di un sistema completo e non solo in una configurazione di test isolata.

Gli ingressi possono essere simulati utilizzando una tecnica chiamata Hardware-in-the-Loop (HIL). Con HIL, gli input dei sensori possono essere generati automaticamente, senza l’interazione dell’utente. Ciò aiuta a testare il comportamento del software in diverse condizioni.

Il controller di erogazione Aqua Libra è costituito da un microcontrollore che esegue un sistema operativo in tempo reale e viene utilizzato per monitorare il peso e il flusso del fluido, nonché per azionare motori passo-passo e valvole elettromeccaniche. Il test manuale richiede il posizionamento di un recipiente su un dispositivo di misurazione del peso per consentire l’erogazione. La successiva commutazione della valvola e l’attività della pompa devono essere monitorate per confermare che la bevanda prevista venga erogata. A ciò si aggiunge la necessità di simulare il flusso di un liquido generando una sequenza di impulsi come quelli prodotti da un sensore di flusso elettronico.

La soluzione

Raspberry Pi Pico si basa sul microcontrollore RP2040 di Raspberry Pi e dispone di una periferica molto utile per i test HIL. Nello strumento di test per il controller di erogazione di Aqua Libra, il blocco Ingresso/Uscita Programmabile (PIO) viene utilizzato per generare dati seriali molto veloci, come se derivati da un ADC a 24 bit, per simulare un estensimetro. L’uscita ADC può essere impostata arbitrariamente e attiva eventi sul sistema sotto test. Il PIO viene utilizzato anche per simulare l’uscita di un sensore di flusso e l’uscita simulata è indistinguibile da quella dell’hardware reale. L’unità in prova aziona numerosi motori passo-passo e il PIO viene utilizzato per leggere le uscite del motore bifase, condizionate tramite optoaccoppiatori. Questo approccio può misurare ogni singolo passo che verrebbe applicato al motore, anche quando la frequenza del passo è nell’intervallo dei kHz. Fornisce livelli di strumentazione senza precedenti per uno strumento di test a basso costo.

Allo stesso modo, gli stati del solenoide e della valvola vengono monitorati man mano che il test procede. RP2040 contiene due blocchi PIO e un singolo canale passo-passo utilizza tutto il programma per un singolo PIO. È quindi necessario collegare a margherita più RP2040 per consentire il monitoraggio di tutti gli I/O della scheda sottoposta a test. Ciò richiede una nuova tecnica di comunicazione su seriale in grado di indirizzare una scheda unica o tutte le schede da configurare all’inizio di un test e recuperare i dati il più velocemente possibile durante il test. Gli stati degli I/O sull’unità sottoposta a test vengono campionati a 20 Hz e i dati raccolti vengono scritti in un database di serie temporali insieme a un identificatore di test univoco. Dopo il test, i dati raccolti possono essere tracciati utilizzando Grafana con un dashboard configurato per rappresentare un analizzatore logico. Ciò è molto utile per lo sviluppo del sistema da parte del team hardware e meccanico.

È inoltre possibile eseguire query sul database e, a seconda del tipo di test, i dati possono essere elaborati per indicare una condizione di superamento o di fallimento. L’intero sistema è completamente automatizzato e può eseguire migliaia di test autonomi senza interazione umana. Il software in esecuzione su RP2040 è identico per ciascun nodo di test e il GPIO viene utilizzato tramite ponticelli per fornire un’identificazione univoca del nodo che viene letta in fase di runtime dall’applicazione RP2040. Ciò adatta la funzionalità del nodo, carica i programmi PIO per quel nodo e significa che è necessario mantenere una sola immagine.

È stato progettato e fabbricato un PCB con un Raspberry Pi Pico sul nodo 0 che funge da controller principale, con la possibilità di connettere più nodi per fornire un maggiore monitoraggio degli input.

test pico

Perché un Raspberry PI?

Raspberry Pi Pico è interessante come base per questo tipo di test per diversi motivi:

  • Costo: l’intero PCB con alimentatore integrato e memoria flash può essere acquistato per meno di cinque euro. Ciò è vantaggioso poiché significa che è possibile effettuare diverse configurazioni di test per siti diversi e, se un Pico viene danneggiato durante lo sviluppo, il costo di sostituzione non è proibitivo.
  • Fattore di forma: Pico utilizza basette DIL a 40 pin, che possono essere saldate direttamente su un PCB o dotate di basette pin tornite a basso profilo per consentire una facile sostituzione.
  • PIO: PIO, riferisce Green Custard, è “un’idea superba e offre una tale flessibilità che non si può sopravvalutare la sua utilità”.
  • Ecosistema: l’intero ecosistema Raspberry Pi, dai post del blog ai repository GitHub, ai tutorial di YouTube e ai forum Raspberry Pi, fornisce molte informazioni utili che riducono significativamente i tempi di sviluppo.
  • Disponibilità: Raspberry Pi Pico è rimasto prontamente disponibile per la spedizione immediata anche durante la carenza globale di silicio, quindi gli ordini potevano essere effettuati con fiducia.

test pico

I risultati

Nel sistema di Green Custard, i risultati dei test vengono convertiti in record e scritti in blocco in un’istanza di un database di serie temporali Influx. Il file JSON di input del test contiene metriche utilizzate per determinare se il test è stato superato o meno. Uno script Python analizza il file JSON, estrae le metriche rilevanti per quel test e le archivia pronte per l’uso. Una volta completato il test, viene interrogato il database Influx ed è possibile effettuare controlli per funzionalità specifiche; ad esempio, il numero di passi dei motori delle pompe, oppure il tempo e la durata di apertura della valvola con precisione al millisecondo.

Un secondo modo grafico di visualizzare i dati è fornito da Grafana, una piattaforma di analisi e visualizzazione dei dati open source. Questa visione consente ai team non coinvolti nello sviluppo del software, ad esempio le persone che sviluppano aromi e gli specialisti dei liquidi, di utilizzare i dati dei test per determinare se i tempi di commutazione e le sequenze sono quelli previsti. L’immagine seguente, ad esempio, mostra tre grafici distinti generati in sequenza durante l’erogazione di quattro bevande separate. Il grafico in alto mostra i dati relativi all’avanzamento dell’erogazione; il grafico centrale mostra più dati relativi all’erogazione che cambiano nel tempo; e il grafico in basso mostra l’apertura e la chiusura degli elementi di controllo all’interno del rubinetto.

Questo livello di dettaglio, insieme alla possibilità di testare molte condizioni di input, costituisce uno strumento di test molto potente.

In questa applicazione, Raspberry Pi Pico consente a Green Custard di fornire una soluzione a basso costo per simulare diversi tipi di sensori e misurare la conseguente variazione negli output. È possibile monitorare gli stati dei diversi componenti in tempo reale e scrivere i dati raccolti in un database di serie temporali. Infine, e soprattutto, i dati possono essere tracciati su una dashboard per ulteriori analisi. L’intero processo è automatizzato e può eseguire migliaia di test senza interazione umana.

 

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.