Per tenere traccia della strada percorsa e calcolare la velocità media durante il jogging, si sono utilizzati Arduino Nano, un semplice ricevitore GPS e un display OLED. Il circuito si adatta facilmente alla mano, grazie all'approccio modulare e con delle piccole modifiche si potrebbe trasformare in un portachiavi.
Introduzione
Vado spesso a fare jogging la mattina, e per qualche tempo ho tentato di misurare la mia velocità in modo ragionevolmente affidabile. Per prima cosa ho provato a usare un sensore Doppler ad alta frequenza, ma non è stato un successo. Ciò che funzionava, tuttavia, era la misura della velocità relativa nell'istante in cui un oggetto di grandi dimensioni transitava. Successivamente ho sperimentato un sensore BME280. Esso misura la pressione atmosferica, la temperatura e l'umidità. L'idea era che un cambiamento di velocità avrebbe causato la variazione della pressione dell'aria in direzione orizzontale e un sensore montato perpendicolarmente a questa direzione avrebbe dovuto misurarla. Sfortunatamente, la differenza nella pressione dell'aria era troppo ridotta per essere misurata con il BME280. Come ultimo tentativo ho utilizzato un ricevitore GPS [1]. Per fortuna, esso è riuscito a misurare la velocità con sufficiente accuratezza, grazie anche al collegamento con Arduino Nano. Un ulteriore vantaggio di un ricevitore GPS è che, oltre alla velocità, si possono anche misurare l'ora corrente e l'itinerario percorso durante l'allenamento. E, di conseguenza, anche la distanza totale coperta e la velocità media durante la corsa. L'aggiunta di un display OLED completa il lavoro.
Filosofia della misurazione - V1
Supponiamo che durante la corsa si esegua un ampio giro e poi si torni nello stesso punto da cui si è partiti. La distanza percorsa, che è funzione della latitudine e della longitudine della strada, in questo caso, sarebbe pari a zero, ma in realtà si è coperta una certa distanza. Per risolvere questo problema ho collegato un pulsante ('P', S3) al pin digitale 6 del microcontrollore (vedi figura 1).
Si deve premere questo nel momento in cui si inizia a camminare e poi ogni volta che c'è un cambio di direzione. Si supponga di fare jogging da A a B a C e quindi di tornare a A (vedi figura 2). La distanza è zero, ma sicuramente si è percorso una certa strada, cioè AB + BC + CA. Per tenere traccia della distanza totale coperta, si inizia premendo il pulsante P nel punto A (questo inizierà il calcolo), quindi di nuovo al punto B, quindi al punto C, e un'ultima volta, al ritorno sul punto A. La distanza totale coperta, che è AB + BC + CA, insieme al tempo totale, in secondi, necessario per coprire quella distanza, è memorizzato nella memoria EEPROM dell'ATmega328. Questo microcontrollore ha 1024 byte disponibili.
Perché non uno smartphone?
Perché non è stato usato un semplice smartphone per realizzare il progetto? Ecco alcune ragioni:
- prendere il telefono durante l'attività sportiva potrebbe costituire una distrazione;
- esistono decine di APP sul "jogging" che "pesano" da 7 MB a 181 MB. E' difficile scegliere quella giusta;
- in alcune APP occorre inserire alcuni dati personali: lunghezza del passo, peso corporeo, altezza, ecc. La maggior parte delle persone non necessita di tutte queste altre funzionalità;
- quasi tutte le APP richiedono una connessione Internet attiva;
- il progetto è un piccolo circuito che si adatta facilmente alla propria mano. Potrebbe anche essere costruito come un portachiavi se si sostituisce al Nano un semplice ATmega328 in versione SMD;
- il circuito costa meno di uno smartphone.
Il display
Quando P o Q non vengono premuti, il display mostra, dall'alto a sinistra al basso a destra la latitudine, la longitudine e il numero di satelliti che il modulo GPS riceve, l'ora corrente e la velocità istantanea (in km/h), come mostrato in figura 3.
Quando P viene premuto per la prima volta, il display mostra la latitudine, la longitudine, il numero di satelliti "visibili", l'ora corrente, la velocità corrente e "I/L:AB/AB 00 00", dove "I" è la "Distanza istantanea" (distanza attuale del segmento di pista attuale), "L" indica la distanza totale (cumulativa), il primo "AB" indica il numero di metri coperti nel segmento di pista attuale, il secondo "AB" indica i metri della distanza totale percorsa fino ad ora. Il primo "00" è il numero di segmenti di traccia e il secondo "00" è il numero di secondi che sono trascorsi dall'inizio. Quando P viene premuto per la seconda volta, il display mostra la latitudine, la longitudine, il numero di satelliti visibili, l'ora corrente, la velocità corrente e, ad esempio, I/L:"CA/(AB + BC + CA)" 03 1950, dove CA e AB+BC+CA sono presentati in metri, "03" è il numero di segmenti e "1950" è il numero di secondi che sono trascorsi dall'inizio della misurazione. Con queste informazioni possiamo leggere che la distanza di 12 m è stata coperta nell'attuale segmento, che una distanza totale di 25 m è stata coperta in 5 segmenti differenti e che la misurazione è iniziata 62 secondi fa (vedi l'esempio di figura 4).
Quando si preme il secondo pulsante ("Q", S4), viene mostrato il tempo totale dall'inizio della misurazione (in secondi), la distanza percorsa (in metri), l'ora corrente e la velocità media (in km/h) sull'intera distanza (vedi figura 5).
E' possibile premere questo pulsante tutte le volte che si desidera per visualizzare le informazioni sullo schermo. L'informazione rimane anche in memoria dopo che l'alimentazione (tramite S1) è stata disattivata. Tuttavia, quando viene premuto il pulsante P, questi dati vengono sostituiti da nuove informazioni.
Adattamenti - V.2
Alcuni utenti hanno usato il circuito nel loro allenamento quotidiano e poiché hanno chiesto di apportare alcune modifiche, eccole presentate qui. Si tratta della versione modificata che è mostrata nello schema di figura 1. Quando l'interruttore P viene premuto una volta mentre la schermata predefinita è mostrata sul display, il contatore è riportato a zero e inizia a contare non appena ci si muove. Sull'ultima riga del display, a destra, è stato aggiunto un semplice indicatore di batteria. Finché il voltaggio della batteria LiPo supera 3,3 V, appare "B +", come mostrato nella figura 6.
Se esso scende sotto i 3,3 V, cambia in "B-", che indica che è il momento di sostituire la batteria. E' stato aggiunto un partitore di tensione (R1, R2) per il monitoraggio della tensione della batteria, con il regolatore di tensione HT7333-1, estremamente utile per la sua bassa caduta di tensione e consumo minimo.
Costruzione e collaudo
La realizzazione del progetto è estremamente semplice. Occorre reperire un piccolo pezzo di circuito a doppia faccia e montarvi Arduino, il display OLED e il ricevitore GPS sul lato anteriore. L'antenna per il modulo GPS deve essere posta di fronte (quindi non è schermata dal PCB) per garantire la migliore ricezione possibile dei segnali satellitari GPS. La cella LiPo può essere montata sulla parte posteriore del PCB. La figura 7 mostra il circuito integrato. Non dimenticare di programmare Arduino con il software [2].
E' molto importante collaudare il lavoro completo. Si deve fornire la tensione corretta al circuito utilizzando una batteria LiPo o Li-ion e chiudere S1. Il circuito potrebbe essere oggetto di ammirazione da parte degli amici. Una volta che il ricevitore GPS riceve un buon numero di satelliti GPS, il LED PPS (LED Pulse Per Signal) inizierà a lampeggiare e il display OLED mostrerà le informazioni, come descritto sopra.
>>>Leggi anche: La navigazione satellitare con moduli RTK
Web Links
[1] Modulo GPS: www.elektor.com/gy-neo6mv2
[2] Download del progetto: www.elektormagazine.com/180432-02
Complimenti per questo progetto, davvero un interessante spunto per la realizzazione di un dispositivo molto utile e pratico.
Ho un unico dubbio circa la necessità di premere il pulsante P ad ogni cambio di direzione. Mi chiedevo se non fosse possibile calcolare automaticamente a piccoli intervalli le nuove coordinate lat/lon e calcolare quindi la distanza cumulata evitando quindi di attendere la pressione del tasto P da parte del runner.
Salve.
Sicuramente la cosa è fattibile. La pressione del tasto P ha lo scopo di semplificare la procedura. Tuttavia, intercettando opportunamente le stringhe NMEA dal GPS è possibile far comprendere alla MCU la posizione, la velocità e 1000 altre informazioni sulla posizione.
Ecco alcuni nostri articoli a riguarda, da cui prendere spunti:
https://it.emcelettronica.com/navigazione-gps-interpretare-le-stringhe-nmea-0183
https://it.emcelettronica.com/la-lettura-delle-stringhe-nmea
https://it.emcelettronica.com/realizziamo-una-scatola-nera-per-automobile-con-espertino
Grazie mille per le delucidazioni.
Certo è solo per scopi dilettantistici, ci si vuol divertire a realizzarlo, poiché come noto il mercato e pieno di questi oggetti.