Indholdsfortegnelse:

Simpelt Arduino-baseret ergometer display med differentiel feedback: 7 trin (med billeder)
Simpelt Arduino-baseret ergometer display med differentiel feedback: 7 trin (med billeder)

Video: Simpelt Arduino-baseret ergometer display med differentiel feedback: 7 trin (med billeder)

Video: Simpelt Arduino-baseret ergometer display med differentiel feedback: 7 trin (med billeder)
Video: Clock Shield для Arduino, собери себе часы, пятничный DIY 2024, Juli
Anonim
Enkel Arduino-baseret ergometer display med differentiel feedback
Enkel Arduino-baseret ergometer display med differentiel feedback
Enkel Arduino-baseret ergometer display med differentiel feedback
Enkel Arduino-baseret ergometer display med differentiel feedback
Enkel Arduino-baseret ergometer display med differentiel feedback
Enkel Arduino-baseret ergometer display med differentiel feedback

Konditionstræning er kedelig, især når du træner indendørs. Flere eksisterende projekter forsøger at afhjælpe dette ved at lave fede ting som f.eks. At koble ergometeret til en spillekonsol eller endda simulere en rigtig cykeltur i VR. Spændende som disse er teknisk set hjælper de ikke rigtigt meget: Træning er stadig kedelig. Så i stedet vil jeg gerne kunne læse en bog eller se fjernsyn mens jeg træner. Men så er det svært at holde et stabilt tempo.

Ideen her er at fokusere på sidstnævnte problem og give ligetil feedback, om dit nuværende træningsniveau er godt nok, eller om du skal gøre en større indsats. Niveauet "godt nok" varierer imidlertid ikke kun pr. Person, men også over tid (på lang sigt, efterhånden som du bliver bedre, men også inden for en træningssession: for eksempel er det næsten umuligt at gå i fuld fart, før du har varmet op). Derfor er ideen bag dette projekt simpelthen at registrere a) det forrige løb og b) det bedste løb (aka highscore) og derefter give direkte feedback om, hvordan du har det i øjeblikket i forhold til disse løb.

Hvis det lyder lidt abstrakt, skal du gå videre til trin 7 for at få oplysninger om, hvad det færdige display viser

Et yderligere mål med dette projekt er at holde tingene virkelig enkle og billige. Afhængigt af hvor du bestiller dine dele, kan du fuldføre dette projekt for omkring $ 5 (eller omkring 30 $ ved bestilling fra premium indenlandske sælgere), og hvis du tidligere har spillet med Arduino -miljøet, er der en rimelig god chance for, at du allerede har de fleste eller alle de dele, du har brug for.

Trin 1: Deleliste

Deleliste
Deleliste

Lad os gå igennem listen over ting, du har brug for:

En Arduino -kompatibel mikroprocessor

Stort set enhver Arduino solgt i løbet af de sidste par år vil gøre. Den nøjagtige variant (Uno / Nano / Pro Mini, 8 eller 16 MHz, 3.3. Eller 5V) er ligegyldig. Du skal dog bruge en ATMEGA328 -processor eller bedre, fordi vi bruger næsten 2k RAM og 1k EEPROM. Hvis du er bekendt med ind- og udgange i Arduino -verdenen, anbefaler jeg at bruge en Pro Mini ved 3,3V, da den vil være billigst og mest batteribesparende. Hvis du er (relativt) ny til Arduino, anbefaler jeg en "Nano", da den giver den samme funktionalitet som en "Uno" i en mindre og billigere pakke.

Bemærk, at denne instruktive ikke vil tale dig igennem det grundlæggende. Du bør i det mindste have Arduino -softwaren installeret og vide, hvordan du forbinder din Arduino og uploader en skitse. Hvis du ikke aner, hvad jeg taler om, skal du læse disse to lette selvstudier, først: Først, andet.

En 128*64 pixel SSD1306 OLED -skærm (I2C -variant, dvs. fire ben)

Dette er en af de billigste og letteste skærme, der findes i dag. Enig, den er lille, men god nok. Selvfølgelig, hvis du allerede har et display med lignende eller bedre opløsning, vil det i stedet være muligt at bruge det, men dette instruerbare er skrevet til en SSD1306.

  • Et "loddefrit brødbræt" og noget springtråd, til at bygge din prototype
  • En 100nF keramisk kondensator (kan være nødvendigvis ikke nødvendig; se trin 4)
  • Enten nogle croc-clips eller en magnet, en sivkontakt og et kabel (se trin 4)
  • En rød og en grøn LED hver (valgfri; se trin 5)
  • To 220Ohm modstande (hvis du bruger LED'erne)
  • En trykknap (også valgfri)
  • Et passende batteri (se trin 6)

Trin 2: Tilslutning af skærmen

Tilslutning af skærmen
Tilslutning af skærmen

Som det første tilslutter vi skærmen til Arduino. Detaljerede instruktioner er tilgængelige. SSD1306 er dog virkelig let at tilslutte:

  1. Skærm VCC -> Arduino 3.3V eller 5V (begge vil gøre)
  2. Vis Gnd -> Arduino Gnd
  3. Skærm SCL -> Arduino A5
  4. Skærm SCA -> Arduino A4

Gå derefter i dit Arduino-miljø til Skitse-> Inkluder bibliotek-> Administrer biblioteker, og installer "Adafruit SSD1306". Desværre bliver du nødt til at redigere biblioteket for at konfigurere det til varianten 128*64 pixel: Find din arduino "biblioteker" -mappe, og rediger "Adafruit_SSD1306/Adafruit_SSD1306.h". Søg efter "#define SSD1306_128_32", deaktiver den linje, og aktiver "#define SSD1306_128_64" i stedet.

På dette tidspunkt skal du indlæse Fil-> Eksempler-> Adafruit SSD1306-> ssd1306_128x64_i2c for at teste, at din skærm er tilsluttet korrekt. Bemærk, at du muligvis skal justere I2C-adressen. 0x3C ser ud til at være den mest almindelige værdi.

I tilfælde af problemer henvises til de mere detaljerede instruktioner.

Trin 3: Upload skitsen

Hvis alt fungerede, indtil videre, er det nu tid til at uploade den faktiske skitse til din Arduino. Du finder en kopi af skitsen herunder. For en muligvis nyere version henvises til github -projektsiden. (Da dette er en enkelt filskitse, er det nok at bare kopiere filen erogmetrino.ino til dit Arduino -vindue).

Skulle du have været nødt til at ændre I2C -adressen i det foregående trin, bliver du nødt til at foretage den samme justering igen nu i linjen, der starter med "display.begin".

Efter upload, skal du se nogle nuller på din skærm. Vi ser på betydningen af de forskellige sektioner af displayet, efter at alt andet er tilsluttet.

Bemærk, at ved den allerførste start vil displayet være temmelig langsomt til at lyse (kan tage op til omkring ti sekunder), da skitsen først nulstiller alle data, der er gemt i EEPROM.

Trin 4: Tilslutning af Ergometer

Tilslutning af Ergometer
Tilslutning af Ergometer

Dette trin kan ikke rigtigt beskrives universelt, da ikke alle ergometre er ens. Men de er heller ikke alle forskellige. Hvis dit ergometer overhovedet indeholder et elektronisk hastighedsvisning, skal det have en elektronisk sensor til at registrere omdrejninger af pedalerne eller et (muligvis internt) svinghjul, et eller andet sted. I mange tilfælde vil det simpelthen bestå af en magnet, der passerer tæt på en rørkontakt (se også nedenfor). Hver gang magneten passerer, lukker kontakten og signalerer en omdrejning til hastighedsdisplayet.

Den første ting du skal gøre er at undersøge hastighedsdisplayet på dit ergometer for indgående kabler. Hvis du finder et to -leder kabel, der kommer et sted inde fra ergometeret, har du næsten helt sikkert fundet forbindelsen til sensoren. Og med lidt held kan du simpelthen tage stikket ud af dette og bare tilslutte det til din Arduino med nogle croc-clips (jeg fortæller dig, hvilke pins du skal oprette forbindelse til på et minut).

Men hvis du ikke kan finde et sådant kabel, føler dig usikker på, om du fandt det rigtige, eller hvis du ikke kan afbryde det uden at beskadige noget, kan du simpelthen tape en lille magnet på en af pedalerne og fastgøre en reedkontakt til dit erogmeters ramme, sådan at magneten vil passere den meget tæt. Tilslut to ledninger til kontakten og før dem til din Arduino.

Tilslut de to ledninger (uanset om dine egne eller dem fra en eksisterende sensor) går til Arduino Gnd og Arduino pin D2. Hvis du har en ved hånden, skal du også tilslutte 100nF kondensatoren mellem pin D2 og Gnd for nogle "debouncing". Dette er måske eller ikke nødvendigt, men hjælper med at stabilisere aflæsningerne.

Når du er færdig, er det tid til at tænde din Arduino og hoppe på cyklen til en første hurtig test. Det øverste venstre nummer skal begynde at vise en hastighedsmåling. Hvis dette ikke virker, skal du kontrollere alle ledninger og kontrollere, at magneten er tæt nok på rørkontakten. Hvis hastighedsmålet konsekvent virker for højt eller for lavt, skal du blot justere "CM_PER_CLICK" -definitionen nær toppen af skitsen (bemærk: skitsen bruger metriske navne, men ingen enheder vises eller gemmes nogen steder, så ignorer det bare, og levere 100.000 hundrededele af en kilometer pr. klik).

Trin 5: Valgfri LED'er til hurtig status

Valgfri hurtigstatus -lysdioder
Valgfri hurtigstatus -lysdioder

Lysdioderne beskrevet i dette trin er valgfri, men pæne: Hvis du er seriøs med at læse en bog / se fjernsyn, mens du træner, vil du ikke skulle stirre for meget på skærmen. Men to lysdioder i forskellige farver vil let være mærkbare i perifert syn og vil være nok til at give dig en grov ide om, hvordan du har det.

  • Tilslut den første (røde) LED til pin D6 (LED'ens længere ben går til Arduino). Tilslut LED's korte ben til Gnd via en 220Ohms modstand. Denne LED lyser, når du er 10% eller mere under din bedste hastighed i den aktuelle fase af træningen. Tid til at gøre en større indsats!
  • Tilslut den anden (grønne) LED til pin D5, igen med en modstand til Gnd. Denne LED lyser, når du er inden for 1%eller over dit bedste løb. Du har det godt!

Vil du have, at lysdioderne lyser afhængigt af, hvordan du klarer dig i forhold til dit tidligere løb, eller en vilkårlig gennemsnitshastighed? Nå, bare tilslut en trykknap mellem pin D4 og Gnd. Ved hjælp af denne knap kan du skifte referencen mellem "dit bedste løb", "dit tidligere løb" eller "din aktuelle hastighed". Et lille bogstav "P" eller "C" i nederste venstre hjørne vil betegne de to sidstnævnte tilstande.

Trin 6: Tænd for dit ergometer display

Tænd for dit ergometer display
Tænd for dit ergometer display

Der er mange måder at drive din skærm på, men jeg vil påpege to, der virker mere praktiske end andre:

  1. Når du bruger en Arduino Uno eller Nano, vil du sandsynligvis forsyne den med en USB-powerbank med indbygget indikation for lavt batteriniveau.
  2. Når du bruger en Arduino Pro Mini @ 3.3V (min anbefaling til avancerede brugere), kan du drive den direkte fra enten et enkelt LiPo -batteri eller tre NiMH -celler. Da ATMEGA tåler forsyningsspændinger på op til 5,5 V, kan du tilslutte dette til "VCC/ACC", direkte, uden om den indbyggede spændingsregulator. I denne opsætning vil der også være en advarsel om "lavt batteriniveau" på omkring 3,4V uden yderligere hardware (vist i nederste højre hjørne). Da ATMEGA kan forventes at fungere korrekt, i det mindste ned til 3,0V eller deromkring, bør det give dig nok tid til at afslutte din træningsenhed, før du oplader.

Trin 7: Brug af dit ergometer display

Brug af dit ergometer display
Brug af dit ergometer display
Brug af dit ergometer display
Brug af dit ergometer display

Lad os se nærmere på de forskellige numre på din skærm. Det større antal øverst til venstre er simpelthen din nuværende hastighed, og det større tal øverst til højre er den samlede distance i din nuværende træning.

Den næste linje er din gennemsnitlige hastighed siden træningens start (til venstre), og tiden siden træningens start (til højre). Bemærk, at timingen stoppes, mens cyklen stoppes.

Indtil videre så trivielt. De to yderligere linjer på højre side er, hvor det bliver interessant: Disse sammenligner din nuværende timing med henholdsvis din tidligere og bedste træning. Dvs. a "- 0:01:23" i den øverste af disse linjer vil betyde, at du har nået din aktuelle distance 1 minut og 23 sekunder tidligere end på din tidligere løbetur. Godt. En lavere linje på "+ 0:00:12" vil betyde, at du op til det aktuelle punkt halter 12 sekunder efter dit bedste løb. (Bemærk, at disse differenstider ikke vil være 100% nøjagtige. Tidspunkter gemmes hver.5 km / miles og interpoleres mellem det.) Selvfølgelig er der naturligvis ikke registreret tidsreferencer på dit første løb, og så begge ovenstående linjer viser bare "-:-:-".

Endelig indeholder det nederste venstre område af displayet en graf over din hastighed i løbet af det sidste minut. Dette giver dig mulighed for hurtigt at se, om du går i ro eller bremser. (Bemærk, at denne linje vil være meget jævnere i ægte træning - men det er simpelthen ikke let at opretholde et stabilt tempo, mens du prøver at tage et billede …) Horisontale linjer angiver den tidligere / bedste hastighed, du opnåede nær det aktuelle punkt i din tidligere uddannelser.

Lysdioderne monteret nær toppen sammenligner din nuværende hastighed med din bedste hastighed i denne fase af træningen. Grøn viser, at du er inden for 1% af dine bedste, røde viser, at du er mere end 10% langsommere end din bedste træning. Når du ser det røde lys, er det tid til at gøre en større indsats. Bemærk, at i modsætning til de ovenfor beskrevne differentialetider refererer disse kun til den aktuelle del af træningen, dvs. det er muligt, at du halter bagud i absolut tid, men grønne viser, at du indhenter og omvendt.

Referencehastigheden, der bruges til de to lysdioder, kan ændres ved hjælp af trykknappen. Et tryk skifter fra bedste til tidligere optaget træning (et lille bogstav "P" vises nederst til venstre). Et andet tryk og din aktuelle hastighed på tidspunktet for tryk på knappen bliver den nye referencehastighed (et lille bogstav "C" vises). Sidstnævnte er især nyttig under din første træning med dit nye ergometer display, når der endnu ikke er registreret nogen reference.

Når du er færdig med din træning, skal du bare afbryde batteriet. Din træning er allerede gemt i din Arduinos interne EEPROM.

Som du kan se, endte jeg med at lodde min prototype. Sikkert tegn på, at jeg selv kunne lide resultatet. Jeg håber, at du også finder det nyttigt. God træning!

Anbefalede: