Edge AI con Arduino UNO Q ed Edge Impulse

Hai mai pensato di controllare un dispositivo con un semplice gesto della mano, senza toccare nulla?

Edge AI con Arduino UNO

Non un sensore di prossimità, non un tasto ma un tuo gesto riconosciuto in tempo reale da un modello di intelligenza artificiale.

E se il modello AI girasse direttamente sulla scheda ?

Fino a poco tempo fa questo richiedeva hardware dedicato, un server remoto ed elevate competenze per la realizzazione del modello di AI.

Con Arduino UNO Q e Edge Impulse puoi farlo sul tuo banco di lavoro con qualche ora di studio e impegno.

Gesture AI Edge AI con Arduino UNO Q

In questo articolo ti racconto come costruire un sistema di riconoscimento gesture in tempo reale usando una webcam USB collegata all’UNO Q:

scheda Arduino UNO Q Gesture

la scheda Arduino uno q acquisisce il video ed esegue il modello AI localmente restituendo, come output, la gesture che ha riconosciuto.

Questa operazione vogliamo che duri millisecondi, senza mandare un singolo byte al cloud.

Prima di mettere mano al codice è utile capire perché l’UNO Q cambia le regole del gioco rispetto a qualsiasi altra scheda Arduino e perché Edge Impulse è lo strumento giusto per questo progetto.

Se non hai ancora dimestichezza con l’UNO Q ti consiglio di leggere prima la guida completa al pinout e l’articolo sull’Arduino UNO Q unboxing: tornerai qui con le idee molto più chiare.

Cos’è l’Edge AI e perché l’UNO Q lo rende pratico

Quando si parla di intelligenza artificiale applicata all’elettronica, la prima domanda che mi fanno è sempre la stessa: “Ma il modello non gira sul cloud?”

Con la UNO Q puoi decidere se usare un modello ed un inferenza sul cloud ma quello che cambia tutto è la possibilità di eseguire Edge AI, tinyML, modelli ridotti, anche in locale.

Qual’è la differenza ?

Immagina di dover chiedere a qualcuno a Milano se fuori piove mentre sei a Roma.

Aspetti che la richiesta arrivi, che venga elaborata, che la risposta torni indietro.

Nel migliore dei casi, anche trattandosi di comunicazioni molto veloci, ci vuole qualche secondo.

L’Edge AI è come avere un barometro in mano: la risposta è immediata, locale, senza dipendere da nessuno.

Questo è esattamente il principio che si applica all’intelligenza artificiale quando la eseguiamo direttamente sull’hardware invece che su un server remoto.

Edge AI con Arduino UNO modelli in locale

L’UNO Q rende questo possibile grazie alla sua architettura a due processori.

Sul lato applicativo c’è un Qualcomm QRB2210: il processore quad-core Cortex-A53 a 2 GHz con GPU Adreno 702 integrata e due ISP (Image Signal Processor) dedicati all’elaborazione video, capaci di gestire fino a 25 megapixel a 30 fps.

Questo processore fa girare Debian Linux e si occupa di tutto ciò che richiede potenza computazionale: analisi video, inferenza del modello AI, gestione della rete.

Accanto a lui c’è un STM32U585: un microcontrollore Cortex-M33 a 160 MHz che gira su Zephyr RTOS e gestisce i pin hardware in tempo reale esattamente come ci si aspetta da un Arduino.

Come comunicano i due processori: l’RPC Bridge

Questo è l’aspetto più interessante dell’UNO Q e quello che lo distingue da qualsiasi altra scheda Arduino che l’ha preceduta.

I due processori devono scambiarsi dati continuamente.

Come lo fanno?

L’Arduino UNO Q usa RPC (Remote Procedure Call) per scambiare dati tra il lato Linux del QRB2210 e l’MCU STM32 in tempo reale.

ARDUINO UNO Q RPC

Fonte: https://docs.arduino.cc/tutorials/uno-q/routerbridge-multilanguage/

Questo meccanismo permette a funzioni che girano su un processore di essere invocate in modo trasparente dall’altro, come se fossero chiamate locali.

A livello fisico, la connessione tra il SoC Qualcomm e l’MCU avviene tramite LPUART (Low Power UART), che funge da canale hardware per questo layer RPC.

Lo schema hardware dell’UNO Q mostra anche una seconda connessione via SPI3, probabilmente riservata per futuri scambi dati ad alta velocità.

Il software che gestisce tutto questo si chiama Arduino Router Bridge, una libreria installata sull’UNO Q che espone l’RPC in modo semplice sia dal lato Python/Linux che dal lato sketch Arduino.

Un script Python in esecuzione sull’MPU Linux può richiedere dati da uno sketch Arduino in esecuzione sull’MCU, e viceversa, senza scrivere protocolli seriali complicati.

Nel progetto di gesture recognition, il flusso sarà questo:

Webcam USB
    ↓
QRB2210 (Linux)
→ legge il video
→ esegue il modello Edge Impulse
→ riconosce la gesture
→ chiama via RPC una funzione sull'STM32
    ↓
STM32U585 (Zephyr)
→ riceve il comando
→ accende i LED della matrice 8×13
→ risponde in tempo reale

Il processore STM32 gestisce il controllo hardware in tempo reale mentre il QRB2210 ospita la logica AI.

I risultati della visione artificiale, come il riconoscimento di una gesture, vengono riportati in comportamenti a bassa latenza sui pin del microcontrollore, senza trasformare il loop di controllo in un problema di scheduling Linux.

È esattamente questa separazione di responsabilità: AI sul processore Linux, real-time sull’MCU, che rende l’UNO Q adatto a progetti che richiedono entrambe le cose contemporaneamente.

Edge Impulse: il Machine Learning

Ogni volta che si parla di un progetto di Machine Learning la reazione è quasi sempre la stessa: “ma il training del modello è roba da data scientist”, e fino a qualche anno fa, era vero.

Edge AI con Arduino UNO EDGE Impulse

Edge Impulse ha cambiato questa equazione in modo radicale.

Edge Impulse è una piattaforma online, gratuita per uso personale, pensata specificamente per i modelli che girano su hardware embedded.

Non hai bisogno di scrivere codice Python, configurare ambienti o capire le viscere di TensorFlow, la piattaforma ti guida attraverso tre fasi:

  • raccolta dati
  • training
  • deploy

con un’interfaccia che funziona dal tuo browser.

Edge AI con Arduino UNO first now

La differenza rispetto al flusso classico, con le vecchie schede, il processo era:

  • collega la board al PC
  • raccogli i dati
  • caricali sul cloud di Edge Impulse
  • aspetta il training
  • scarica il modello compilato
  • installalo sulla scheda

Ogni passaggio richiedeva di passare per il PC come intermediario.

Con l’UNO Q il daemon di Edge Impulse gira direttamente sulla parte Linux della scheda: la board è al tempo stesso il dispositivo che acquisisce il video dalla webcam e il target su cui il modello viene eseguito.

Il PC ti serve solo per aprire il browser ed accedere ad EDGE Impulse.

Il flusso completo per il nostro progetto sarà questo:

  1. Raccolta dati: la webcam riprende i gesti, Edge Impulse Studio li etichetta e li salva nel dataset
  2. Impulse design: definisci la pipeline: elaborazione del frame video → estrazione features → classificazione
  3. Training: Edge Impulse addestra la rete neurale sul tuo dataset in pochi minuti
  4. Deploy: il modello viene esportato come eseguibile ottimizzato per l’architettura Qualcomm dell’UNO Q 
  5. Inferenza: il runner legge il video dalla webcam in tempo reale e classifica ogni frame, restituendo la gesture con la relativa probabilità.

L’accuratezza che puoi aspettarti con un dataset ben costruito e basato su qualche centinaio di campioni per classe, è tra il 90 e il 95% su gesture semplici.

Non è un numero teorico: è quello che ottieni concretamente in meno di due ore di lavoro, dalla prima acquisizione al modello in esecuzione sulla scheda.

Nei prossimi articoli entriamo nel vivo: lista completa dei componenti, connessioni e setup del daemon sull’UNO Q.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/informatica/edge-ai-con-arduino-uno-q-ed-edge-impulse.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.