My boring Blog

Home page di Mauro Frigerio
it en

Misurazione efficacia sweeping

27-02-2022 Tempo di lettura 4 minuti article

TL;DR

Progetto per trasformare una scopa di curling in uno strumento di misura per valutare l’efficacia durante lo sweeping nel curling. Un ESP32 misura la pressione esercitata su due celle e un accelerometro misura la frequenza del movimento. I dati sono trasmessi tramite BLE a un computer o smartphone compatibile con Web Bluetooth.

Intro

Vi siete mai chiesti quanto è efficace il vostro sweeping durante una partita di curling? Io ogni tanto me lo sono chiesto, in particolare rispetto al movimento fatto da altri giocatori del club.

Questo è il mio progetto di natale (che bolliva in pentola da un bel po’). Ho modificato una mia vecchia scopa per rendendola “intelligente”, così da poter misurare la forza esercitata verso il ghiaccio e il movimento fatto. Proprio i due fattori principali per eseguire un ottimo sweeping.

Principio di base

Un microcontrollore sul manico della scopa legge i dati dei differenti sensori e li trasmette tramite Bluetooth BLE a un computer o smartphone. L’elaborazione dei dati non è eseguita dalla scopa, cosi da permettere una lettura frequente dei dati.

Il dispositivo di lettura dati (computer, smartphone o tablet) deve essere compatibile con le Web Bluetooth API. Normalmente tutti i sistemi con il browser Chrome o simili (tranne iOS) sono compatibili.

Non sono un amante di Chrome, ma ho scelto questa strada per non dover caricare su un App Store un applicazione. Così ho creato una semplice pagina web con JavaScript che è compatibile con vari tipi di dispositivi.

Hardware

Il cuore della scopa è gestito da un microcontrollore ESP32, perché è un ottimo miscuglio di potenza e connettività (WiFi e Bluetooth). Grazie a questa versatilità l’ESP32 è diventato il mio processore preferito e quello che uso per i miei ultimi progetti.

Nel cuscinetto della scopa ho inserito due celle per misurare il peso. Sono dei sensori che variano la resistenza in base al peso applicato. La lettura dei dati è eseguita attraverso il circuitointegrato HX711. Questo IC permette di avere due frequenze di lettura pari a 10 o 80 letture al secondo (a seconda del pin RATE).

L’altro sensore presente è un accelerometro così da poter misurare la frequenza del movimento. Nel primo prototipo ho usato un MPU6050, che integra un accelerometro e un giroscopio.Quando ho creato la prima versione del PCB ho dovuto sostituire il chip con uno quasi simile e ho scelto il ADXL345, che però è solo un accelerometro.

Un LED permette di capire se il dispositivo è funzionante e pronto a misurare. Quando si alimenta il circuito si accende brevemente e poi viene eseguita la parte di programma dedicata alla taratura. Vi consiglio di posizionare in verticale la scopa e appoggiarla al muro e poi accenderla, così si può eseguire al meglio la taratura. Se tutto funziona correttamente allora il LED si accede e si spegne per tre volte e si può collegare il dispositivo di visualizzazione dati con il BLE. Se qualcosa da errore nella fase di taratura allora il LED rimane acceso e il programma si ferma.

Nel circuito stampato ho dovuto integrare il necessario per la gestione (carica, utilizzo e protezione) di una batteria LiPo.

Qui di seguito ho rappresentato uno schema di principio.

Schema a blocchi hardware scopa

Schema a blocchi hardware scopa

Questo è lo schema aggiornato alla versione 2 del PCB che però non ho ancora comandato e testato.

Software

Formato dati durante trasferimento BLE

Avrei potuto suddividere i vari valori letti in differenti caratteristiche, ma sarebbe stato un po’ complicato da modificare durante lo sviluppo. Tutti i valori sono nella caratteristica 2902 e sono suddivisi da una virgola.

posattributo
1peso cella 1
2peso cella 2
3accelerazione
4frequenza movimento
5angolo della scopa (ancora da realizzare)

ESP32

Tutto il codice è disponibile liberamente e credo di averlo commentato abbastanza. Quindi non descrivo tutti i dettagli qui. Lo schema rappresenta il principio di massima di come è strutturato il codice.

Diagramma software scopa

Diagramma software scopa

HTML / JavaScript

La visualizzazione dei dati è resa possibile grazie ad alcune librerie:

Conclusione

Tutto quello che credo mi piace condividerlo liberamente e non ho fatto eccezzioni anche per questo. Tutto il lavoro è liberamente accessibile e se siete in zona potete passare che vi presto la mia scopa.

Qualche sorpresa l’ho già avuta grazie ai valori misurati, pensavo di riuscire a scaricare più pesosulla scopa. Però sono riuscito a migliorare i miei valori provando a cambiare la tecnica.

Naturalmente serve un po’ di allenamento per aumentare la costanza durante una partita. In questo caso può tornare utile un mio altro progetto, per allenare lo sweeping a casa.