Cuprins:

Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial: 7 pași (cu imagini)
Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial: 7 pași (cu imagini)

Video: Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial: 7 pași (cu imagini)

Video: Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial: 7 pași (cu imagini)
Video: Гребной FitRow 70 2024, Noiembrie
Anonim
Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial
Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial
Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial
Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial
Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial
Afișaj Ergometru simplu bazat pe Arduino cu feedback diferențial

Antrenamentul cardio este plictisitor, mai ales atunci când faci mișcare în interior. Mai multe proiecte existente încearcă să atenueze acest lucru făcând lucruri interesante, cum ar fi cuplarea ergometrului la o consolă de jocuri sau chiar simularea unei plimbări reale cu bicicleta în VR. Oricât de emoționante sunt, din punct de vedere tehnic, nu prea ajută prea mult: antrenamentul este încă plictisitor. Deci, în schimb, aș vrea să pot citi o carte sau să mă uit la televizor în timp ce mă antrenez. Dar atunci este dificil să ții un ritm constant.

Ideea, aici, este să vă concentrați pe această din urmă problemă și să oferiți feedback direct, dacă nivelul dvs. actual de pregătire este suficient de bun sau dacă ar trebui să depuneți un efort suplimentar. Cu toate acestea, nivelul „suficient de bun” va varia nu numai în funcție de persoană, ci și în timp (pe termen lung, pe măsură ce vă îmbunătățiți, dar și în cadrul unei sesiuni de antrenament: de exemplu, este aproape imposibil să mergeți la viteză maximă înainte de a fi incalzit). Prin urmare, ideea din spatele acestui proiect este pur și simplu să înregistreze a) rularea anterioară și b) cea mai bună rundă (aka highscore), și apoi să oferiți feedback direct cu privire la modul în care mergeți în prezent în comparație cu acele runde.

Dacă sună puțin abstract, treceți la pasul 7 pentru detalii despre ceea ce va afișa afișajul completat

Un alt obiectiv al acestui proiect este să păstreze lucrurile într-adevăr simple și ieftine. În funcție de locul în care comandați piesele, puteți finaliza acest proiect cu aproximativ 5 USD (sau aproximativ 30 USD când comandați de la vânzători interni premium), iar dacă v-ați jucat cu mediul Arduino, înainte, există șanse destul de mari ca deja aveți cele mai multe sau toate piesele de care aveți nevoie.

Pasul 1: Lista pieselor

Lista de materiale
Lista de materiale

Să parcurgem lista lucrurilor de care aveți nevoie:

Un microprocesor compatibil Arduino

Aproape orice arduino vândut în ultimii ani va face. Varianta exactă (Uno / Nano / Pro Mini, 8 sau 16 MHz, 3,3. Sau 5V) nu contează. Cu toate acestea, veți avea nevoie de un procesor ATMEGA328 sau mai bun, deoarece vom folosi aproape 2k de RAM și 1k de EEPROM. Dacă sunteți familiarizați cu intrările și ieșirile din lumea Arduino, vă recomand să utilizați un Pro Mini la 3,3 V, deoarece acesta va fi cel mai ieftin și cel mai eficient din punct de vedere al bateriei. Dacă sunteți (relativ) nou în Arduino, vă recomand un „Nano” deoarece oferă aceeași funcționalitate ca un „Uno” într-un pachet mai mic și mai ieftin.

Rețineți că acest instructable nu vă va vorbi prin elementele de bază. Ar trebui să aveți cel puțin software-ul Arduino instalat și să știți cum să vă conectați Arduino și să încărcați o schiță. Dacă nu aveți idee, despre ce vorbesc, citiți aceste două tutoriale ușoare, mai întâi: primul, al doilea.

Un afișaj OLED SSD1306 de 128 * 64 pixeli (varianta I2C, adică patru pini)

Acesta este unul dintre cele mai ieftine și mai ușoare afișaje disponibile astăzi. De acord, este mic, dar destul de bun. Desigur, dacă aveți deja un afișaj cu rezoluție similară sau mai bună, va fi posibil să o folosiți, în schimb, dar acest instructable este scris pentru un SSD1306.

  • O „placă fără sudură” și niște sârme jumper, pentru construirea prototipului
  • Un condensator ceramic 100nF (poate fi necesar sau nu; vezi Pasul 4)
  • Fie niște croc-clopuri, fie un magnet, un comutator reed și un cablu (vezi Pasul 4)
  • Un LED roșu și verde, fiecare (opțional; consultați Pasul 5)
  • Două rezistențe de 220 Ohm (dacă se utilizează LED-urile)
  • Un buton (de asemenea, opțional)
  • O baterie adecvată (vezi Pasul 6)

Pasul 2: Conectarea afișajului

Conectarea afișajului
Conectarea afișajului

Ca primul lucru, vom conecta afișajul la Arduino. Sunt disponibile instrucțiuni detaliate. Cu toate acestea, SSD1306 este foarte ușor de conectat:

  1. Afișați VCC -> Arduino 3.3V sau 5V (oricare va funcționa)
  2. Afișează Gnd -> Arduino Gnd
  3. Afișează SCL -> Arduino A5
  4. Afișează SCA -> Arduino A4

Apoi, în mediul dvs. Arduino, accesați Sketch-> Include library-> Gestionați bibliotecile și instalați „Adafruit SSD1306”. Din păcate, va trebui să editați biblioteca pentru a o configura pentru varianta de 128 * 64 pixeli: găsiți folderul „biblioteci” arduino și editați „Adafruit_SSD1306 / Adafruit_SSD1306.h”. Căutați „#define SSD1306_128_32”, dezactivați acea linie și activați „#define SSD1306_128_64”.

În acest moment ar trebui să încărcați Fișier-> Exemple-> Adafruit SSD1306-> ssd1306_128x64_i2c pentru a testa afișajul dvs. conectat, corect. Rețineți că poate fi necesar să reglați adresa I2C. 0x3C pare a fi cea mai comună valoare.

În caz de probleme, consultați instrucțiunile mai detaliate.

Pasul 3: încărcați schița

Dacă totul a funcționat, până acum, este timpul să încărcați schița reală pe Arduino. Veți găsi o copie a schiței, mai jos. Pentru o versiune potențial mai recentă, consultați pagina proiectului github. (Deoarece aceasta este o schiță de fișier unic, este suficient să copiați doar fișierul erogmetrino.ino în fereastra Arduino).

Dacă ar fi trebuit să modificați adresa I2C în pasul anterior, va trebui să faceți aceeași ajustare, din nou, acum, în linia care începe cu „display.begin”.

După încărcare, ar trebui să vedeți câteva zerouri care apar pe afișajul dvs. Ne vom uita la semnificația diferitelor secțiuni ale afișajului, după ce orice altceva este conectat.

Rețineți că la prima pornire, afișajul va fi destul de lent să se aprindă (poate dura aproximativ zece secunde), deoarece schița va zero mai întâi orice date stocate în EEPROM.

Pasul 4: Conectarea ergometrului

Conectarea ergometrului
Conectarea ergometrului

Acest pas nu poate fi descris cu adevărat universal, deoarece nu toate ergometrele sunt la fel. Cu toate acestea, nici ele nu sunt toate diferite. Dacă ergometrul dvs. include un afișaj electronic al vitezei, trebuie să aibă undeva un senzor electronic pentru a detecta rotațiile pedalelor sau unele roți (posibil interne). În multe cazuri, aceasta va consta pur și simplu dintr-un magnet care trece aproape de un comutator reed (vezi și mai jos). De fiecare dată când trece magnetul, comutatorul se va închide, semnalând o rotație a afișajului de viteză.

Primul lucru pe care trebuie să-l faceți este să examinați afișajul vitezei de pe ergometru pentru a găsi cablurile primite. Dacă găsiți un cablu cu două fire care vine undeva din interiorul ergometrului, aproape sigur ați găsit conexiunea la senzor. Și, cu un pic de noroc, puteți pur și simplu să deconectați acest lucru și să îl conectați la Arduino cu câteva clipuri croc (vă voi spune la ce pini să vă conectați într-un minut).

Cu toate acestea, dacă nu găsiți un astfel de cablu, nu vă simțiți sigur dacă l-ați găsit pe cel potrivit sau nu îl puteți deconecta fără a deteriora nimic, puteți pur și simplu lipiți un mic magnet pe una dintre pedale și puteți fixa un întrerupător de reed pe cadrul erogmetrului., astfel încât magnetul să treacă pe lângă el foarte aproape. Conectați două fire la comutator și conduceți-le la Arduino.

Conectați cele două fire (indiferent dacă a dvs. sau de la un senzor existent) vor merge la Arduino Gnd și la pinul Arduino D2. Dacă aveți unul la îndemână, conectați, de asemenea, condensatorul 100nF între pinul D2 și Gnd pentru unele "debouncing". Acest lucru poate fi sau nu necesar, dar ajută la stabilizarea citirilor.

Când ați terminat, este timpul să vă alimentați Arduino și să urcați pe bicicletă pentru un prim test rapid. Numărul din stânga sus ar trebui să înceapă să arate o măsură a vitezei. Dacă acest lucru nu funcționează, verificați toate cablurile și asigurați-vă că magnetul este suficient de aproape de întrerupătorul reed. Dacă măsurarea vitezei pare în mod constant prea mare sau prea mică, pur și simplu ajustați definiția „CM_PER_CLICK” în partea de sus a schiței (notă: schița folosește nume de valori, dar nu sunt afișate sau salvate unități, oriunde, deci ignorați acest lucru și furnizează 100.000 de mile pe clic).

Pasul 5: LED-uri opționale de stare rapidă

LED-uri opționale de stare rapidă
LED-uri opționale de stare rapidă

LED-urile descrise în acest pas sunt opționale, dar îngrijite: dacă sunteți serios cu privire la citirea unei cărți / vizionarea televizorului în timp ce faceți exerciții, nu doriți să fiți nevoiți să priviți prea mult ecranul. Dar două LED-uri în culori diferite vor fi ușor de remarcat în vederea periferică și vor fi suficiente pentru a vă oferi o idee aproximativă despre cum vă descurcați.

  • Conectați primul LED (roșu) la pinul D6 (piciorul mai lung al LED-ului merge la Arduino). Conectați piciorul scurt al LED-ului la Gnd printr-un rezistor de 220 Ohmi. Acest LED se va aprinde când sunteți cu 10% sau mai mult sub cea mai bună viteză în faza curentă a antrenamentului. E timpul să mai depunem eforturi!
  • Conectați al doilea LED (verde) la pinul D5, din nou cu un rezistor la Gnd. Acest LED se va aprinde atunci când vă aflați la 1% sau mai mult decât cel mai bun rulaj. Te descurci bine!

Vrei ca LED-urile să se aprindă în funcție de modul în care te descurci în comparație cu cursa anterioară sau cu o anumită viteză medie arbitrară? Ei bine, conectați doar un buton între pinul D4 și Gnd. Folosind acel buton puteți comuta referința între „cea mai bună alergare”, „alergarea anterioară” sau „viteza actuală”. O literă mică „P” sau „C” în colțul din stânga jos va semnifica ultimele două moduri.

Pasul 6: Alimentarea afișajului Ergometru

Alimentarea afișajului dvs. ergometru
Alimentarea afișajului dvs. ergometru

Există mai multe moduri de a vă alimenta ecranul, dar voi sublinia două care par destul de practice decât altele:

  1. Când utilizați un Arduino Uno sau Nano, probabil că doriți să îl alimentați utilizând un banc de alimentare USB cu indicație de baterie încorporată.
  2. Atunci când utilizați un Arduino Pro Mini @ 3.3V (recomandarea mea pentru utilizatorii avansați), îl puteți alimenta direct dintr-o singură baterie LiPo sau din trei celule NiMH. Deoarece ATMEGA va tolera tensiuni de alimentare de până la 5,5V, puteți conecta acest lucru la „VCC / ACC”, direct, ocolind regulatorul de tensiune de la bord. În această configurație, va exista, de asemenea, un avertisment „baterie descărcată” la aproximativ 3,4 V, fără hardware suplimentar (afișat în colțul din dreapta jos). Deoarece este de așteptat ca ATMEGA să funcționeze corect, cel puțin până la 3,0 V sau cam așa, ar trebui să vă lase suficient timp pentru a termina unitatea de antrenament înainte de reîncărcare.

Pasul 7: Utilizarea afișajului dvs. ergometru

Utilizarea afișajului dvs. ergometru
Utilizarea afișajului dvs. ergometru
Utilizarea afișajului dvs. ergometru
Utilizarea afișajului dvs. ergometru

Să aruncăm o privire mai atentă asupra diferitelor numere de pe ecran. Numărul mai mare din stânga sus este pur și simplu viteza curentă, iar numărul mai mare din dreapta sus este distanța totală în antrenamentul curent.

Următoarea linie este viteza medie de la începutul antrenamentului (stânga) și timpul de la începutul antrenamentului (dreapta). Rețineți că sincronizarea este oprită în timp ce bicicleta este oprită.

Până acum atât de banal. Cele două linii suplimentare din partea dreaptă sunt locul în care devine interesant: acestea compară sincronizarea actuală cu antrenamentul anterior și cel mai bun, respectiv. Adică un "- 0:01:23" în partea de sus a acestor linii va însemna că ați atins distanța actuală cu 1 minut și 23 de secunde mai devreme decât în cursa anterioară. Bun. O linie inferioară de „+ 0:00:12” va însemna că, până la punctul curent, rămâneți cu 12 secunde în spatele celei mai bune alergări. (Rețineți că acești timpi diferențiali nu vor fi 100% exacți. Punctele de timp sunt stocate la fiecare 0,5 km / mile și interpolate între acestea.) În mod inevitabil, desigur, la prima rundă, încă nu au fost înregistrate referințe de timp și deci ambele rânduri de mai sus vor afișa doar "-: -: -".

În cele din urmă, regiunea din stânga jos a ecranului conține un grafic al vitezei dvs. în ultimul minut. Acest lucru vă permite să vedeți dintr-o privire, dacă mergeți constant sau încetiniți. (Rețineți că această linie va fi mult mai lină în antrenamentele reale - dar pur și simplu nu este ușor să mențineți un ritm constant în timp ce încercați să faceți o fotografie …) Liniile orizontale indică viteza anterioară / cea mai bună pe care ați obținut-o în apropierea punctului actual al precedentului dvs. antrenamente.

LED-urile montate în partea de sus compară viteza curentă cu cea mai bună viteză în timpul acestei faze a antrenamentului. Verde arată că sunteți la 1% față de cel mai bun, roșu arată că sunteți cu mai mult de 10% mai lent decât cel mai bun antrenament. Când vedeți lumina roșie, este timpul să depuneți un efort suplimentar. Rețineți că, spre deosebire de timpii diferențiali descriși mai sus, aceștia se referă doar la partea curentă a antrenamentului, adică este posibil să rămâneți în urmă în timp absolut, dar verde arată că sunteți din urmă și invers.

Viteza de referință utilizată pentru cele două LED-uri poate fi modificată cu ajutorul butonului. O apăsare îl va comuta de la cel mai bun antrenament înregistrat anterior (o literă mică „P” va apărea în stânga jos). O altă apăsare și viteza actuală la momentul apăsării butonului vor deveni noua viteză de referință (va apărea o literă mică „C”). Acesta din urmă este util în special în timpul primului dvs. antrenament cu noul dvs. afișaj ergometru, când nu a fost înregistrată încă nicio referință.

Când ați terminat antrenamentul, deconectați bateria. Antrenamentul dvs. a fost deja salvat în EEPROM-ul intern al Arduino.

După cum puteți vedea, am ajuns să lipesc prototipul meu. Semn sigur că mie mi-a plăcut rezultatul. Sper că veți găsi și voi util. Exerciții fericite!

Recomandat: