INHOUDSOPGAWE:

Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer: 7 stappe (met foto's)
Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer: 7 stappe (met foto's)

Video: Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer: 7 stappe (met foto's)

Video: Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer: 7 stappe (met foto's)
Video: Een eenvoudige VCA (Voltage Controlled Amplifier) - Tests op Breadboard 2024, November
Anonim
Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer
Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer
Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer
Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer
Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer
Eenvoudige Arduino-gebaseerde ergometervertoning met differensiële terugvoer

Kardio-oefensessie is vervelig, veral as u binnenshuis oefen. Verskeie bestaande projekte probeer dit verlig deur cool dinge te doen, soos om die ergometer aan 'n spelkonsole te koppel, of selfs 'n ware fietsrit in VR na te boots. Opwindend, tegnies, help dit nie veel nie: oefensessies is nog steeds vervelig. Dus, in plaas daarvan, wil ek net 'n boek kan lees of TV kyk terwyl ek oefen. Maar dan is dit moeilik om 'n bestendige pas by te hou.

Die idee hier is om op laasgenoemde probleem te konsentreer en reguit terugvoer te gee, of u huidige opleidingsvlak goed genoeg is, of dat u meer moeite moet doen. Die 'goed genoeg' vlak sal egter nie net per persoon nie, maar ook mettertyd wissel (op lang termyn, namate u beter word, maar ook binne 'n oefensessie: dit is byvoorbeeld amper onmoontlik om op volle snelheid te gaan voordat u opgewarm). Daarom is die idee agter hierdie projek eenvoudig om a) die vorige lopie en b) die beste lopie (ook bekend as 'n hoë telling) aan te teken, en dan direkte terugvoer te gee oor hoe u tans vaar in vergelyking met die lopies.

As dit 'n bietjie abstrak klink, gaan na stap 7 vir meer inligting oor wat die voltooide skerm sal wys

'N Verdere doelwit van hierdie projek is om dinge regtig eenvoudig en goedkoop te hou. Afhangende van waar u u onderdele bestel, kan u hierdie projek vir ongeveer $ 5 voltooi (of ongeveer 30 $ by bestelling by premium huishoudelike verkopers), en as u al voorheen met die Arduino -omgewing gespeel het, is die kans groot dat u reeds het die meeste of al die onderdele wat u benodig.

Stap 1: Deellys

Deellys
Deellys

Kom ons gaan deur die lys van dinge wat u nodig het:

'N Arduino -versoenbare mikroverwerker

Byna elke Arduino wat die afgelope paar jaar verkoop is, sal doen. Die presiese variant (Uno / Nano / Pro Mini, 8 of 16 MHz, 3.3. Of 5V) maak nie saak nie. U benodig egter 'n ATMEGA328 -verwerker of beter, want ons gebruik amper 2k RAM en 1k EEPROM. As u vertroud is met die ins en outs van die Arduino -wêreld, raai ek u aan om 'n Pro Mini op 3.3V te gebruik, aangesien dit die goedkoopste en mees doeltreffende battery is. As u (relatief) nuut in Arduino is, beveel ek 'n 'Nano' aan, aangesien dit dieselfde funksionaliteit bied as 'n 'Uno' in 'n kleiner en goedkoper pakket.

Let daarop dat hierdie instruksies u nie deur die basiese beginsels sal praat nie. U moet ten minste die Arduino -sagteware geïnstalleer en weet hoe u u Arduino kan koppel en 'n skets kan oplaai. As u geen idee het waarvan ek praat nie, lees eers hierdie twee maklike tutoriale: Eerstens, tweede.

'N 128*64 pixel SSD1306 OLED -skerm (I2C -variant, dit wil sê vier penne)

Dit is vandag een van die goedkoopste en maklikste skerms. Stem saam, dit is klein, maar goed genoeg. As u reeds 'n weergawe van 'n soortgelyke of beter resolusie het, is dit natuurlik moontlik om dit eerder te gebruik, maar hierdie instruksie is geskryf vir 'n SSD1306.

  • 'N' Soldeerlose broodbord 'en 'n paar jumperdraad om u prototipe te bou
  • 'N Keramiekondensator van 100nF (mag nie nodig wees nie; sien stap 4)
  • Of 'n paar krokodille, of 'n magneet, 'n rietskakelaar en 'n kabel (sien stap 4)
  • Elkeen 'n rooi en 'n groen LED (opsioneel; sien stap 5)
  • Twee 220 Ohm weerstande (as die LED's gebruik word)
  • 'N Drukknop (ook opsioneel)
  • 'N Geskikte battery (sien stap 6)

Stap 2: Koppel die skerm aan

Koppel die skerm
Koppel die skerm

As die eerste ding, sluit ons die skerm aan by die Arduino. Gedetailleerde instruksies is beskikbaar. Die SSD1306 is egter baie maklik om aan te sluit:

  1. Vertoon VCC -> Arduino 3.3V of 5V (beide kan doen)
  2. Vertoon Gnd -> Arduino Gnd
  3. Vertoon SCL -> Arduino A5
  4. Vertoon SCA -> Arduino A4

Gaan dan in u Arduino-omgewing na Skets-> Sluit biblioteek in-> Beheer biblioteke en installeer 'Adafruit SSD1306'. Ongelukkig sal u die biblioteek moet redigeer om dit vir die 128*64 pixel -variant te kan instel: soek u arduino "biblioteke" -map en wysig "Adafruit_SSD1306/Adafruit_SSD1306.h". Soek na "#define SSD1306_128_32", skakel die reël uit en aktiveer eerder "#define SSD1306_128_64".

Op hierdie punt moet u File-> Voorbeelde-> Adafruit SSD1306-> ssd1306_128x64_i2c laai om te toets dat u skerm korrek gekoppel is. Let daarop dat u moontlik die I2C-adres moet aanpas. 0x3C blyk die algemeenste waarde te wees.

Raadpleeg die meer gedetailleerde instruksies in geval van probleme.

Stap 3: Laai die skets op

As alles tot dusver gewerk het, is dit nou tyd om die werklike skets na u Arduino te laai. U vind 'n afskrif van die skets hieronder. Raadpleeg die github -projekbladsy vir 'n moontlik meer onlangse weergawe. (Aangesien dit 'n enkele lêerskets is, is dit genoeg om die erogmetrino.ino -lêer net na u Arduino -venster te kopieer).

As u die I2C -adres in die vorige stap moes verander, moet u weer dieselfde aanpassing in die reël begin met 'display.begin'.

Na die oplaai moet 'n paar nulle in u skerm verskyn. Ons kyk na die betekenis van die verskillende afdelings van die skerm, nadat alles anders aangesluit is.

Let daarop dat die skerm met die eerste aanvang baie stadig sal lig (dit kan ongeveer tien sekondes neem), aangesien die skets eers die data wat in die EEPROM gestoor is, sal nul.

Stap 4: Koppel die ergometer

Koppel die ergometer
Koppel die ergometer

Hierdie stap kan nie werklik universeel beskryf word nie, aangesien nie alle ergometers dieselfde is nie. Hulle is egter ook nie almal anders nie. As u ergometer glad nie 'n elektroniese snelheidsvertoning bevat nie, moet dit 'n elektroniese sensor hê om die omwentelinge van die pedale, of 'n (moontlik interne) vliegwiel, iewers op te spoor. In baie gevalle sal dit eenvoudig bestaan uit 'n magneet wat naby 'n rietskakelaar loop (sien ook hieronder). Elke keer as die magneet verbygaan, sluit die skakelaar, wat 'n omwenteling in die snelheidsvertoning aandui.

Die eerste ding wat u moet doen, is om die snelheidsvertoning op u ergometer te ondersoek vir inkomende kabels. As u 'n tweedraadkabel van die ergometer af kom, het u die verbinding met die sensor amper gevind. En met 'n bietjie geluk kan u dit eenvoudig ontkoppel en dit met 'n paar krokknipsels aan u Arduino koppel (ek sal u vertel watter penne u binne 'n minuut moet koppel).

As u egter nie so 'n kabel kan kry nie, voel onseker of u die regte een gevind het, of as u dit nie kan ontkoppel sonder om iets te beskadig nie, kan u eenvoudig 'n klein magneet aan een van die pedale plak, en 'n rietskakelaar aan die raam van u erogmeter vasmaak, sodat die magneet baie naby daarby sal verbygaan. Koppel twee drade aan die skakelaar en lei hulle na u Arduino.

Verbind die twee drade (hetsy u eie of die van 'n bestaande sensor) gaan na Arduino Gnd en Arduino pin D2. As u een byderhand het, koppel dan ook die 100nF -kondensator tussen pen D2 en Gnd vir 'n paar "debouncing". Dit mag al dan nie nodig wees nie, maar help om die lesings te stabiliseer.

As dit klaar is, is dit tyd om u Arduino aan te skakel en op die fiets te spring vir 'n eerste vinnige toets. Die nommer links bo moet 'n spoedmaat begin toon. As dit nie werk nie, kyk na alle bedrading en maak seker dat die magneet naby die rietskakelaar is. As die snelheidsmeter deurgaans te hoog of te laag lyk, pas die definisie "CM_PER_CLICK" aan die bokant van die skets aan (let op: die skets gebruik metrieke name, maar geen eenhede word op enige plek vertoon of gestoor nie, dus ignoreer dit net en lewer 100.000ste myl per klik).

Stap 5: opsionele vinnige status -LED's

Opsionele LED's vir vinnige status
Opsionele LED's vir vinnige status

Die LED's wat in hierdie stap beskryf word, is opsioneel, maar netjies: as u ernstig is om 'n boek te lees / TV te kyk terwyl u oefen, hoef u nie te veel na die skerm te staar nie. Maar twee LED's in verskillende kleure sal maklik opgemerk word in die perifere visie, en dit sal genoeg wees om u 'n goeie idee te gee van hoe u dit doen.

  • Koppel die eerste (rooi) LED aan pen D6 (die langer been van die LED gaan na die Arduino). Verbind die kort been van die LED met Gnd via 'n 220Ohms -weerstand. Hierdie LED sal brand as u in die huidige fase van die opleiding 10% of meer onder u beste spoed is. Tyd om nog moeite te doen!
  • Koppel die tweede (groen) LED aan pen D5, weer met 'n weerstand op Gnd. Hierdie LED sal brand as u binne 1%of hoër is as u beste prestasie. Dit gaan goed met jou!

U wil hê dat die LED's moet brand, afhangende van hoe u vaar in vergelyking met u vorige rit, of 'n willekeurige gemiddelde snelheid? Koppel net 'n drukknop tussen pen D4 en Gnd. Met die knoppie kan u die verwysing wissel tussen 'u beste hardloop', 'u vorige hardloop' of 'u huidige snelheid'. 'N Klein letter "P" of "C" in die linker onderste hoek dui op die laasgenoemde twee modusse.

Stap 6: Skakel u Ergometer -skerm aan

Skakel jou ergometer -skerm aan
Skakel jou ergometer -skerm aan

Daar is baie maniere om u skerm aan te skakel, maar ek wys op twee wat eerder praktieser lyk as ander:

  1. As u 'n Arduino Uno of Nano gebruik, wil u dit waarskynlik met 'n USB-kragbank met ingeboude lae batterylewe aandui.
  2. As u 'n Arduino Pro Mini @ 3.3V (my aanbeveling vir gevorderde gebruikers) gebruik, kan u dit direk via 'n enkele LiPo -battery of drie NiMH -selle dryf. Aangesien die ATMEGA toevoerspannings tot 5,5V sal verdra, kan u dit direk aan 'VCC/ACC' koppel en die ingeboude spanningsreguleerder omseil. In hierdie opstelling sal daar ook 'n waarskuwing van 'lae battery' wees op ongeveer 3.4V, sonder ekstra hardeware (in die regter onderste hoek). Aangesien verwag kan word dat die ATMEGA korrek werk, ten minste tot 3,0 V of so, moet u genoeg tyd in beslag neem om u opleidingseenheid te voltooi voordat u herlaai.

Stap 7: Gebruik u ergometer -skerm

Gebruik u Ergometer -skerm
Gebruik u Ergometer -skerm
Gebruik u Ergometer -skerm
Gebruik u Ergometer -skerm

Kom ons kyk noukeuriger na die verskillende nommers op u skerm. Die groter getal links bo is eenvoudig u huidige spoed, en die groter getal regs bo is die totale afstand in u huidige opleiding.

Die volgende reël is u gemiddelde spoed sedert die begin van die opleiding (links) en die tyd sedert die begin van die opleiding (regs). Let daarop dat die tydsberekening gestaak word terwyl die fiets gestop word.

Tot dusver so triviaal. Die twee verdere reëls aan die regterkant is waar dit interessant word: dit vergelyk u huidige tydsberekening met onderskeidelik u vorige en beste opleiding. D.w.s. 'n "- 0:01:23" in die boonste van hierdie reëls beteken dat u u huidige afstand 1 minuut en 23 sekondes vroeër bereik het as op u vorige lopie. Goed. 'N Laer reël van "+ 0:00:12" sal beteken dat jy tot op die huidige punt 12 sekondes agter jou beste ren is. (Let daarop dat hierdie differensiële tye nie 100% presies sal wees nie. Tydpunte word elke.5 km / myl gestoor en tussenin geïnterpoleer.) Natuurlik, tydens u eerste ren, is daar nog geen tydsverwysings aangeteken nie, en dus sal albei bogenoemde reëls net '-:-:-' wys.

Uiteindelik bevat die onderste gedeelte van die skerm 'n grafiek van u snelheid gedurende die laaste minuut. Hiermee kan u in 'n oogopslag sien of u bestendig of stadiger gaan. (Let daarop dat hierdie lyn baie gladder sal wees tydens regte opleiding, maar dit is eenvoudig nie maklik om 'n bestendige pas te handhaaf terwyl u 'n foto probeer neem nie.) Horisontale lyne dui die vorige / beste spoed aan wat u bereik het naby die huidige punt van u vorige opleiding.

Die LED's wat bo -aan die bokant gemonteer is, vergelyk u huidige snelheid met u beste snelheid gedurende hierdie fase van die opleiding. Groen wys dat u binne 1% van u beste is, en in rooi is u meer as 10% stadiger as u beste opleiding. As u die rooi lig sien, is dit tyd om meer moeite te doen. Let daarop dat dit, in teenstelling met die differensiële tye wat hierbo beskryf is, slegs na die huidige deel van die opleiding verwys, dit wil sê, dit is moontlik dat u in absolute tyd agter raak, maar groen toon dat u inhaal, en omgekeerd.

Die verwysingsnelheid wat vir die twee LED's gebruik word, kan met die drukknop verander word. Met een druk word dit oorgeskakel van die beste na die vorige aangetekende opleiding ('n klein letter "P" verskyn links onder). 'N Ander druk en u huidige spoed tydens die druk op die knoppie word die nuwe verwysingssnelheid ('n klein letter "C" sal verskyn). Laasgenoemde is veral handig tydens u eerste opleiding met u nuwe ergometervertoning, terwyl daar nog geen verwysing aangeteken is nie.

As u klaar is met u opleiding, ontkoppel die battery. U opleiding is reeds gestoor in die interne EEPROM van u Arduino.

Soos u kan sien, het ek uiteindelik my prototipe gesoldeer. Sekerlik 'n teken dat ek self van die resultaat gehou het. Ek hoop dat u dit ook nuttig sal vind. Lekker oefen!

Aanbeveel: