Sommario:
Video: Kettlebell Counter (fallire): 4 passi
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-10 13:47
Storia: ho costruito questo progetto puramente come un esperimento.
Volevo vedere se potevo usare il rilevamento della caduta libera di un accelerometro per contare gli swing di un kettlebell.
Parti:
1* Arduino nano
1 * modulo display LED a 7 segmenti MAX7219
1 * accelerometro ADXL345
Resistori 2* 4k7
Prese 2*15 vie da 0,1 pollici - per il nano
Presa 1*8 vie da 0,1 pollici - per l'accelerometro
Pin strip da 0,1 pollici 1*5 vie - per il display
Terminale a vite 1*2 vie - per alimentazione
1*27 per 34 stripboard
Clip per batteria da 1 * 9 volt
1 * batteria da 9 volt (PP3)
Fase 1: Costruzione:
Ho progettato e costruito una piccola scheda per contenere il nano, l'accelerometro, le resistenze ei connettori per il display e la batteria.
Ci sono 12 fili e 20 interruzioni di pista (15 delle quali tra le 2 prese per Arduino nano).
Ho collegato il nano ai suoi 2 connettori per impostarli correttamente e li ho posizionati sulla scheda.
Ho saldato prima i pin angolari e ho controllato che tutto fosse posizionato correttamente prima di saldare il resto dei pin del connettore.
Ho quindi saldato i pin per il display e lo zoccolo per l'accelerometro, li ho tenuti entrambi in posizione con una puntina blu mentre saldavo.
Ho quindi saldato tutti i fili e le 2 resistenze.
Alla fine ho inserito tutte le interruzioni di pista.
Nota che convenzionalmente dovresti lavorare dai componenti di altezza più bassa a quelli più alti, i fili e le resistenze entrano per primi e le prese per ultime.
Ho semplicemente attaccato la scheda, la batteria e il display al kettlebell per i miei test, non una grande soluzione ma questo era solo un esperimento.
Passaggio 2: software:
Ho modificato tutto il software e programmato Arduino nano usando l'IDE di Arduino.
Il codice era un esercizio di riutilizzo, la maggior parte del codice è il codice dimostrativo della libreria Sparkfun "SparkFun_ADXL345_Example.ino".
Ho semplicemente aggiunto del codice per il contatore e ritagliato alcuni bit che non stavano facendo nulla.
Le scritture del display sono gestite dalla libreria DigitLedDisplay.
Sperimentalmente ho provato a far funzionare il codice utilizzando l'interrupt dell'accelerometro invece del polling, ma senza successo.
Nota che c'è un'opzione di test all'interno del file di codice, se rimuovi il commento dalla riga //#define test il contatore verrà incrementato su un doppio tocco dell'accelerometro piuttosto che su caduta libera.
Passaggio 3: risultati misti:
Dopo aver registrato tutto insieme, ho eseguito una serie di 10 swing risultanti in un valore di 20 sul bancone. Ho riprovato ed ho avuto lo stesso risultato.
Ho associato la caduta libera con la fase di caduta del kettlebell quindi nel primo codice che ho scritto ho contato ogni evento di caduta libera, il mio pensiero successivo è stato che la parte superiore dello swing deve essere anche un evento di caduta libera, quindi ho modificato il mio codice per incrementare dopo ogni secondo tempo.
Il mio primo test dopo aver modificato il codice ha funzionato con successo.
I test successivi hanno avuto risultati contrastanti con il conteggio sotto la segnalazione del numero di oscillazioni di vari importi.
Immagino che le mie variazioni nella tecnica dello swing stiano causando i conteggi mancati.
La mia conclusione è che il rilevamento della caduta libera non è abbastanza affidabile per contare in modo affidabile gli swing di un kettlebell.
Tutti gli swing nel mio test erano orizzontali, non sopra la testa come alcuni fanno con i kettlebell.
Fase 4: Riferimenti:
Biblioteche utilizzate:
SparkFun_ADXL345_Arduino_Library
DigitLedDisplay Versione 1.1.0
Entrambi recuperati il 29 giugno 2019.