Sommario:

Semplice display ergonomico basato su Arduino con feedback differenziale: 7 passaggi (con immagini)
Semplice display ergonomico basato su Arduino con feedback differenziale: 7 passaggi (con immagini)

Video: Semplice display ergonomico basato su Arduino con feedback differenziale: 7 passaggi (con immagini)

Video: Semplice display ergonomico basato su Arduino con feedback differenziale: 7 passaggi (con immagini)
Video: How Arduino is open-sourcing imagination | Massimo Banzi 2024, Novembre
Anonim
Semplice display ergonomico basato su Arduino con feedback differenziale
Semplice display ergonomico basato su Arduino con feedback differenziale
Semplice display ergonomico basato su Arduino con feedback differenziale
Semplice display ergonomico basato su Arduino con feedback differenziale
Semplice display ergonomico basato su Arduino con feedback differenziale
Semplice display ergonomico basato su Arduino con feedback differenziale

L'allenamento cardio è noioso, soprattutto quando ci si allena al chiuso. Diversi progetti esistenti cercano di alleviare questo problema facendo cose interessanti come accoppiare l'ergometro a una console di gioco o persino simulare un vero giro in bicicletta in VR. Per quanto eccitanti, tecnicamente non aiutano molto: l'allenamento è ancora noioso. Quindi, invece, mi piacerebbe poter leggere un libro o guardare la TV mentre mi alleno. Ma poi è difficile mantenere un ritmo costante.

L'idea, qui, è di concentrarsi su quest'ultimo problema e fornire un feedback diretto, se il tuo attuale livello di allenamento è abbastanza buono o se dovresti impegnarti di più. Tuttavia, il livello "abbastanza buono" varierà non solo per persona, ma anche nel tempo (a lungo termine, man mano che si migliora, ma anche all'interno di una sessione di allenamento: ad esempio, è quasi impossibile andare a tutta velocità prima di aver riscaldato). Pertanto, l'idea alla base di questo progetto è semplicemente quella di registrare a) la corsa precedente eb) la corsa migliore (ovvero il punteggio più alto), e quindi fornire un feedback diretto su come stai attualmente andando rispetto a quelle corse.

Se ti sembra un po' astratto, vai al passaggio 7 per i dettagli su cosa mostrerà il display completato

Un ulteriore obiettivo di questo progetto è quello di mantenere le cose davvero semplici ed economiche. A seconda di dove ordini le tue parti, puoi completare questo progetto per circa $ 5 (o circa 30 $ quando ordini da venditori nazionali premium) e se hai già giocato con l'ambiente Arduino, ci sono buone probabilità che tu già avere la maggior parte o tutte le parti di cui hai bisogno.

Passaggio 1: elenco delle parti

Elenco delle parti
Elenco delle parti

Passiamo all'elenco delle cose di cui hai bisogno:

Un microprocessore compatibile con Arduino

Praticamente qualsiasi Arduino venduto negli ultimi anni andrà bene. La variante esatta (Uno/Nano/Pro Mini, 8 o 16 MHz, 3.3. o 5V) non ha importanza. Tuttavia, avrai bisogno di un processore ATMEGA328 o superiore, perché utilizzeremo quasi 2k di RAM e 1k di EEPROM. Se hai familiarità con i dettagli del mondo Arduino, ti consiglio di utilizzare un Pro Mini a 3,3 V, poiché sarà più economico e più efficiente in termini di batteria. Se sei (relativamente) nuovo di Arduino, ti consiglio un "Nano" in quanto fornisce le stesse funzionalità di un "Uno" in un pacchetto più piccolo ed economico.

Nota che questo tutorial non ti parlerà delle basi. Dovresti almeno avere installato il software Arduino e sapere come collegare il tuo Arduino e caricare uno schizzo. Se non hai idea di cosa sto parlando, leggi questi due semplici tutorial, primo: primo, secondo.

Un display OLED SSD1306 da 128*64 pixel (variante I2C, ovvero quattro pin)

Questo è uno dei display più economici e facili disponibili oggi. D'accordo, è piccolo, ma abbastanza buono. Ovviamente, se hai già un display con risoluzione simile o migliore, sarà possibile utilizzarlo, ma questo istruibile è scritto per un SSD1306.

  • Una "breadboard senza saldatura" e un po' di ponticello, per costruire il tuo prototipo
  • Un condensatore ceramico da 100nF (potrebbe essere necessario o meno; vedere il passaggio 4)
  • Alcuni coccodrilli, o un magnete, un interruttore reed e un cavo (vedi passaggio 4)
  • Un LED rosso e uno verde, ciascuno (opzionale; vedere il passaggio 5)
  • Due resistori da 220Ohm (se si utilizzano i LED)
  • Un pulsante (anch'esso opzionale)
  • Una batteria adatta (vedi punto 6)

Passaggio 2: collegamento del display

Collegamento del display
Collegamento del display

Per prima cosa collegheremo il display ad Arduino. Sono disponibili istruzioni dettagliate. Tuttavia, l'SSD1306 è davvero facile da collegare:

  1. Visualizza VCC -> Arduino 3.3V o 5V (entrambi lo faranno)
  2. Visualizza Gnd -> Arduino Gnd
  3. Visualizza SCL -> Arduino A5
  4. Visualizza SCA -> Arduino A4

Successivamente, nel tuo ambiente Arduino vai su Sketch-> Includi libreria-> Gestisci librerie e installa "Adafruit SSD1306". Sfortunatamente, dovrai modificare la libreria per configurarla per la variante 128*64 pixel: individua la cartella "librerie" di arduino e modifica "Adafruit_SSD1306/Adafruit_SSD1306.h". Cerca "#define SSD1306_128_32", disabilita quella riga e abilita "#define SSD1306_128_64", invece.

A questo punto dovresti caricare File->Esempi->Adafruit SSD1306->ssd1306_128x64_i2c per verificare che il tuo display sia collegato correttamente. Si noti che potrebbe essere necessario regolare l'indirizzo I2C. 0x3C sembra essere il valore più comune.

In caso di problemi, fare riferimento alle istruzioni più dettagliate.

Passaggio 3: carica lo schizzo

Se tutto ha funzionato, finora è il momento di caricare lo schizzo effettivo sul tuo Arduino. Di seguito troverai una copia dello schizzo. Per una versione potenzialmente più recente, fare riferimento alla pagina del progetto github. (Poiché si tratta di uno schizzo a file singolo, è sufficiente copiare il file erogmetrino.ino nella finestra di Arduino).

Se hai dovuto modificare l'indirizzo I2C nel passaggio precedente, dovrai effettuare la stessa regolazione, di nuovo, ora, nella riga che inizia con "display.begin".

Dopo il caricamento, dovresti vedere alcuni zeri visualizzati sul display. Vedremo il significato delle varie sezioni del display, dopo aver collegato tutto il resto.

Si noti che al primo avvio, l'accensione del display sarà piuttosto lenta (potrebbe richiedere fino a una decina di secondi), poiché lo sketch azzererà prima tutti i dati memorizzati nella EEPROM.

Passaggio 4: collegamento dell'ergometro

Collegamento dell'ergometro
Collegamento dell'ergometro

Questo passaggio non può essere davvero descritto universalmente, poiché non tutti gli ergometri sono uguali. Tuttavia, non sono nemmeno tutti diversi. Se il tuo ergometro include un display elettronico della velocità, deve avere un sensore elettronico per rilevare i giri dei pedali, o qualche volano (possibilmente interno), da qualche parte. In molti casi, questo consisterà semplicemente in un magnete che passa vicino a un interruttore reed (vedi anche sotto). Ad ogni passaggio del magnete, l'interruttore si chiuderà segnalando un giro al display della velocità.

La prima cosa che dovresti fare è esaminare il display della velocità sul tuo ergometro per i cavi in arrivo. Se trovi un cavo a due fili proveniente da qualche parte all'interno dell'ergometro, hai quasi sicuramente trovato la connessione al sensore. E con un po' di fortuna puoi semplicemente scollegarlo e collegarlo al tuo Arduino con alcuni coccodrilli (ti dirò a quali pin collegarti in un minuto).

Tuttavia, se non riesci a trovare un cavo del genere, non sei sicuro di aver trovato quello giusto, o non puoi scollegarlo senza danneggiare nulla, puoi semplicemente attaccare un piccolo magnete a uno dei pedali e fissare un interruttore reed al telaio del tuo erogmetro, in modo tale che il magnete gli passi molto vicino. Collega due fili allo switch e portali al tuo Arduino.

Collega i due fili (sia il tuo che quelli di un sensore esistente) andranno su Arduino Gnd e Arduino pin D2. Se ne hai uno a portata di mano, collega anche il condensatore da 100nF tra il pin D2 e Gnd per un po' di "antirimbalzo". Questo può essere necessario o meno, ma aiuta a stabilizzare le letture.

Al termine, è il momento di accendere il tuo Arduino e salire sulla bici per un primo rapido test. Il numero in alto a sinistra dovrebbe iniziare a mostrare una misura di velocità. Se questo non funziona, controlla tutti i cablaggi e assicurati che il magnete sia abbastanza vicino all'interruttore reed. Se la misura della velocità sembra costantemente troppo alta o troppo bassa, regola semplicemente la definizione "CM_PER_CLICK" vicino alla parte superiore dello schizzo (nota: lo schizzo usa nomi metrici, ma nessuna unità viene visualizzata o salvata, da nessuna parte, quindi ignoralo e fornire 100.000esimi di miglio per clic).

Passaggio 5: LED di stato rapido opzionali

LED di stato rapido opzionali
LED di stato rapido opzionali

I LED descritti in questo passaggio sono opzionali, ma puliti: se sei seriamente intenzionato a leggere un libro/guardare la TV mentre ti alleni, non devi fissare troppo il display. Ma due led di colore diverso si noteranno facilmente in visione periferica, e basteranno per darti un'idea approssimativa di come stai.

  • Collega il primo LED (rosso) al pin D6 (la gamba più lunga del LED va all'Arduino). Collegare la gamba corta del LED a Gnd tramite un resistore da 220Ohm. Questo LED si accenderà quando si è del 10% o più al di sotto della velocità migliore nella fase corrente dell'allenamento. È ora di fare uno sforzo in più!
  • Collegare il secondo LED (verde) al pin D5, sempre con un resistore a Gnd. Questo LED si accenderà quando sarai entro l'1% o al di sopra della tua corsa migliore. Stai andando bene!

Vuoi che i LED si accendano a seconda di come ti comporti rispetto alla tua corsa precedente o di una velocità media arbitraria? Bene, basta collegare un pulsante tra il pin D4 e Gnd. Usando quel pulsante puoi alternare il riferimento tra "la tua corsa migliore", "la tua corsa precedente" o "la tua velocità attuale". Una piccola lettera "P" o "C" nell'angolo in basso a sinistra indicherà le ultime due modalità.

Passaggio 6: alimentazione del display dell'ergometro

Alimentazione del display dell'ergometro
Alimentazione del display dell'ergometro

Ci sono molti modi per alimentare il tuo display, ma ne indicherò due che sembrano piuttosto più pratici di altri:

  1. Quando si utilizza un Arduino Uno o Nano, probabilmente si desidera alimentarlo utilizzando un power bank USB con indicazione di batteria scarica integrata.
  2. Quando si utilizza un Arduino Pro Mini a 3,3 V (la mia raccomandazione per gli utenti avanzati), è possibile alimentarlo direttamente da una singola batteria LiPo o da tre celle NiMH. Poiché l'ATMEGA tollera tensioni di alimentazione fino a 5,5V, è possibile collegarlo direttamente a "VCC/ACC", bypassando il regolatore di tensione di bordo. In questa configurazione, ci sarà anche un avviso di "batteria scarica" a circa 3,4 V, senza hardware aggiuntivo (visualizzato nell'angolo in basso a destra). Poiché è prevedibile che ATMEGA funzioni correttamente, almeno fino a 3,0 V circa, questo dovrebbe lasciarti abbastanza tempo per completare l'unità di addestramento prima di ricaricarla.

Passaggio 7: utilizzo del display dell'ergometro

Utilizzo del display dell'ergometro
Utilizzo del display dell'ergometro
Utilizzo del display dell'ergometro
Utilizzo del display dell'ergometro

Diamo un'occhiata più da vicino ai vari numeri sul display. Il numero più grande in alto a sinistra è semplicemente la tua velocità attuale e il numero più grande in alto a destra è la distanza totale nel tuo allenamento attuale.

La riga successiva è la velocità media dall'inizio dell'allenamento (a sinistra) e il tempo dall'inizio dell'allenamento (a destra). Notare che il cronometraggio viene fermato mentre la bici è ferma.

Fin qui così banale. Le altre due linee sul lato destro sono dove diventa interessante: confrontano il tuo tempo attuale con il tuo allenamento precedente e migliore, rispettivamente. Cioè. un "- 0:01:23" nella parte superiore di queste righe significa che hai raggiunto la distanza attuale 1 minuto e 23 secondi prima rispetto alla corsa precedente. Bene. Una linea inferiore di "+ 0:00:12" significa che fino al punto corrente sei in ritardo di 12 secondi rispetto alla tua corsa migliore. (Nota che questi tempi differenziali non saranno esatti al 100%. I punti temporali vengono memorizzati ogni 0,5 km / miglia e interpolati tra questi.) Inevitabilmente, ovviamente, durante la tua prima corsa, non sono stati ancora registrati riferimenti temporali e quindi entrambe le righe sopra mostreranno solo "--:--:--".

Infine, la regione in basso a sinistra del display contiene un grafico della tua velocità nell'ultimo minuto. Ciò ti consente di vedere a colpo d'occhio se stai andando stabile o rallentando. (Nota che questa linea sarà molto più liscia nell'allenamento reale, ma semplicemente non è facile mantenere un ritmo costante mentre provi a scattare una foto…) Le linee orizzontali indicano la velocità precedente/migliore che hai raggiunto vicino al punto attuale della tua precedente formazioni.

I LED montati vicino alla parte superiore confrontano la tua velocità attuale con la tua velocità migliore durante questa fase dell'allenamento. Il verde mostra che sei entro l'1% del tuo miglior allenamento, il rosso mostra che sei più lento del 10% rispetto al tuo miglior allenamento. Quando vedi la luce rossa, è il momento di fare qualche sforzo in più. Nota che contrariamente ai tempi differenziali sopra descritti, questi si riferiscono solo alla parte corrente dell'allenamento, cioè è possibile che tu sia in ritardo nel tempo assoluto, ma il verde indica che stai recuperando e viceversa.

La velocità di riferimento utilizzata per i due LED può essere modificata tramite il pulsante. Una pressione passerà dal migliore al precedente allenamento registrato (una piccola lettera "P" apparirà in basso a sinistra). Un'altra pressione e la velocità attuale al momento della pressione del pulsante diventerà la nuova velocità di riferimento (verrà visualizzata una piccola lettera "C"). Quest'ultimo è particolarmente utile durante il tuo primo allenamento con il tuo nuovo display ergometro, quando non è stato ancora registrato alcun riferimento.

Al termine dell'allenamento, scollega la batteria. Il tuo allenamento è già stato salvato nella EEPROM interna di Arduino.

Come puoi vedere, ho finito per saldare il mio prototipo. Segno sicuro che mi è piaciuto il risultato, me stesso. Spero che lo troverai utile anche tu. Buon esercizio!

Consigliato: