In questo tutorial vedrai come utilizzare lo sketch già presentato in precedenza per raccogliere in modo organizzato i campioni di dati che serviranno ad addestrare la rete neurale che realizzerai più avanti per classificare le gesture.
Lo sketch utilizzato per testare il funzionamento dell’IMU era stato già scritto tenendo in mente l’esigenza di raccogliere i dataset di riferimento per l’algoritmo di machine learning.
Non riportiamo il codice dello sketch in questa pagina perché è esattamente lo stesso sketch realizzato nel precedente tutorial.
Nella pagina del precedente tutorial trovi le due versioni dello sketch riferite alle due versioni (Rev.1 e Rev.2) della scheda Arduino Nano 33 BLE.
Il codice invia sulla line seriale, tramite le varie chiamate alle funzioni Serial.print e Serial.printf, dapprima una riga con le intestazioni “aX,aY,aZ,gX,gY,gZ” e successivamente righe di sei valori, numeri di tipo float a tre cifre decimali, separati da virgole.
Dopo ogni sequenza di righe, che si riferisce al campionamento di una singola gesture, viene inserita una riga vuota.
In questo modo, il flusso visualizzato sul terminale/monitor seriale assume il tipico formato di un file CSV (Comma Separated Value), facilmente utilizzabile da spreadsheet e gestibile dai software di machine learning, come vedrai più avanti.
Ti accorgerai che la procedura di copiare questo flusso dalla finestra del monitor seriale dell’IDE Arduino e incollarlo all’interno di un editor di testo come textpad di Apple o notepad di Windows richiede una certa manualità e diventa sempre più complicata al crescere del numero di esempi che hai deciso di generare.
Per questo motivo, ti suggeriamo di percorrere la strada, mostrata anche nel video, di utilizzare una utility Terminale Seriale più professionale e completa del rudimentale monitor seriale incorporato nell’IDE di Arduino.
Il pulsante qui sotto ti porterà sul sito dove potrai scaricare l’ottimo prodotto, open source e gratuito, CoolTerm.
La libreria Serial di Arduino invia semplicemente i dati secondo il protocollo RS232 verso la porta virtuale seriale sul tuo PC. Un qualunque software Terminale Seriale installato sul tuo computer può quindi ricevere, visualizzare e salvare su file i dati.
Fai attenzione a configurare i parametri di connessione (in particolare la velocità in Baud) e a chiudere il Serial Monitor di Arduino, meglio l’intero IDE, prima di aprire la connessione dal software Terminale Seriale. Solo una applicazione per volta può connettersi alla stessa porta seriale.
Attraverso lo sketch mostrato nel video, occorre raccogliere due serie di dati, che andranno memorizzati in due file differenti, denominati punch.csv e flex.csv.
Effettua prima una serie di 10/20 gesti “punch” e genera il primo file.
Resetta la scheda Arduino, e ripeti la procedura raccogliendo altri 10/20 gesti “flex” e genera il secondo file.
Se ti sembra che i gesti non siano stati effettuati in modo statisticamente utile o il campionamento ti sembra essere avvenuto male, resetta la scheda Arduino e ricomincia da capo la procedura. Più i dati raccolti saranno di qualità, migliore sarà l’efficacia del Machine Learning.