Arduino: implementare AI con teachable machine ed usare attuatori

Nell’articolo di oggi vedremo come utilizzare Arduino con TeachAble Machine. Utilizzeremo un riconoscimento di immagini, se viene riconosciuta una immagine che appartiene alla classe A l’attuatore A si “accende”, se viene riconosciuta una immagine di classe B l’attuatore B si “accende” e così via.

L’apprendimento automatico non è così lontano dalla nostra vita come pensi. Con l’ estensione Teachable Machine di mBlock 5, puoi creare un modello addestrato.

Che cos’è Teachable Machine?
Teachable Machine è uno strumento basato sul Web che rende la creazione di modelli di machine learning veloce, semplice e accessibile a tutti.

Come funziona?
Addestri un computer a riconoscere i tuoi suoni, immagini e pose senza scrivere alcun codice di machine learning. Poi, utilizza il modello nei tuoi progetti, siti, app e altro ancora.

Arriviamo subito al sodo

Leggi i miei articoli più approfonditi su TeachAble Machine

I componenti che utilizzeremo saranno:

  • PC
  • p5.serialcontrol
  • arduino
  • 3 resistenze
  • 3 led
  • vari jumper
  • webcam
  • internet
  • windows10(non ho avuto modo di provare con altri s.o.)

Il diagramma di collegamento è il seguente:

arduino

Dobbiamo capire in che modo Teachable Machine AI restituisca i risultati del riconoscimento a un dispositivo esterno, come un microcontrollore .

La risposta è la seguente: utilizzeremo vari tool che ci agevoleranno la vita.

Passaggio 1. Apri Teachable Machine

Passaggio 2: genera e carica il tuo modello di intelligenza artificiale

Quando alleni il tuo modello, userei la Classe 0 come immagine di sfondo (nothing), quindi le cose da riconoscere sono chiamate “1”, “2”, “3”… ecc. In questo modo potremmo comunicare con Arduino senza utilizzare stringhe ma bensì interi, molto più facili da manipolare. Si potrebbero anche utilizzare le stringhe ma perché complicarci la vita con eventuali problemi?

Per generare il tuo modello vedi questo video

Al termine dell’addestramento del modello, fai clic su Esporta modello , quindi seleziona Tensorflow.js -> Carica . Infine copia il collegamento del modello.

Passaggio 3: preparazione script p5.js

Il modello di script p5.js può essere trovato qui:

Ci sono 4 file in totale:

  • sketch.js (codice principale)
  • index.html
  • style.css
  • p5.serialport.js (funzioni della porta seriale)

Puoi accedere a p5.js e duplicare/salvare il tuo script.

Per far funzionare lo script dovrai cambiare il valore di due variabili:

modelURL (sostituisci il collegamento del modello copiato prima)

serialPort (vedremo e capiremo dopo cosa inserire)

arduino

Passaggio 4: programma il tuo microcontrollore

Il codice per accendere i vari led e interagire con la porta COM è il seguente:

Passaggio 5: collega la porta seriale del tuo dispositivo

Scarica e decomprimi il programma di controllo seriale p5.js. 

Collega il tuo dispositivo a USB ed esegui p5.serialcontrol.exe (per Windows). Potrebbe essere necessario disattivare il programma antivirus per poterlo fare funzionare.

Come capire quale porta COM utilizza il mio Arduino?

Basta che vai nella barra in alto, strumenti. Vedi l’immagine sottostante per capire meglio il tutto.

arduino

Una volta avviato il programma (p5serialcontrol) e apri la porta seriale corretta che utilizza il tuo MCU.

ATTENZIONE: Ricordati di chiudere la porta COM in p5.serialcontrol ogni volta che hai bisogno di flashare il codice sulla tua scheda! In caso contrario verrà bloccato.

Dopo che la porta seriale è stata collegata e impostata possiamo avviare questo sketch con le modifiche che ho indicato prima sul valore della variabile contente la porta COM e l’URL.

Passaggio 6: eseguiamo lo script p5.js

Torna all’editor di script p5.js e fai clic su Esegui. Dopo un po’ dovrebbe apparire una finestra della webcam accanto allo script.

Ed ecco qui il risultato finale:

 

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

1 Comment

  1. Jerry | | Reply

    Fantastico! Proprio quello che cercavo per il mio prototipo. Sei un grande!

Leave a Reply

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