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:
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:
- Riconoscimento delle immagini: https://editor.p5js.org/krantas/sketches/IKUf43rB
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)
Passaggio 4: programma il tuo microcontrollore
Il codice per accendere i vari led e interagire con la porta COM è il seguente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
char result = '0'; void setup() { Serial.begin(9600); pinMode(6,OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); } void loop() { if (Serial.available() > 0) { result = Serial.read(); } switch (result) { case '1': digitalWrite(6, LOW); digitalWrite(7, HIGH); digitalWrite(8, LOW); break; case '2': digitalWrite(6, LOW); digitalWrite(7, LOW); digitalWrite(8, HIGH); break; default: digitalWrite(6, HIGH); digitalWrite(7, LOW); digitalWrite(8, LOW); } } |
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.
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.
Fantastico! Proprio quello che cercavo per il mio prototipo. Sei un grande!