Innehållsförteckning:

Enkel Arduino-baserad ergometervisning med differentiell feedback: 7 steg (med bilder)
Enkel Arduino-baserad ergometervisning med differentiell feedback: 7 steg (med bilder)

Video: Enkel Arduino-baserad ergometervisning med differentiell feedback: 7 steg (med bilder)

Video: Enkel Arduino-baserad ergometervisning med differentiell feedback: 7 steg (med bilder)
Video: Высокая плотность 2022 2024, November
Anonim
Enkel Arduino-baserad ergometerdisplay med differentiell feedback
Enkel Arduino-baserad ergometerdisplay med differentiell feedback
Enkel Arduino-baserad ergometerdisplay med differentiell feedback
Enkel Arduino-baserad ergometerdisplay med differentiell feedback
Enkel Arduino-baserad ergometerdisplay med differentiell feedback
Enkel Arduino-baserad ergometerdisplay med differentiell feedback

Konditionsträning är tråkigt, särskilt när du tränar inomhus. Flera befintliga projekt försöker lindra detta genom att göra coola saker som att koppla ergometern till en spelkonsol eller till och med simulera en riktig cykeltur i VR. Spännande som dessa är, tekniskt, hjälper de inte mycket: Träning är fortfarande tråkigt. Så istället skulle jag vilja kunna bara läsa en bok eller titta på TV under träningen. Men då är det svårt att hålla jämna steg.

Tanken här är att fokusera på det senare problemet och ge rak feedback om huruvida din nuvarande träningsnivå är tillräckligt bra, eller om du bör anstränga dig mer. Nivån "tillräckligt bra" varierar dock inte bara per person, utan också över tid (på lång sikt, när du blir bättre, men också inom ett träningspass: till exempel är det nästan omöjligt att gå i full fart innan du har uppvärmd). Därför är tanken bakom detta projekt helt enkelt att spela in a) den föregående körningen och b) den bästa körningen (aka highscore) och sedan ge direkt feedback om hur du har det just nu jämfört med dessa körningar.

Om det låter lite abstrakt, gå vidare till steg 7 för information om vad den färdiga displayen kommer att visa

Ett ytterligare mål med detta projekt är att hålla saker och ting riktigt enkelt och billigt. Beroende på var du beställer dina delar kan du slutföra det här projektet för cirka $ 5 (eller cirka 30 $ vid beställning från inhemska premiumsäljare), och om du har spelat med Arduino -miljön tidigare är det en ganska god chans att du redan har de flesta eller alla delar du behöver.

Steg 1: Dellista

Del lista
Del lista

Låt oss gå igenom listan över saker du behöver:

En Arduino -kompatibel mikroprocessor

Nästan alla Arduino som sålts under de senaste åren kommer att göra. Den exakta varianten (Uno / Nano / Pro Mini, 8 eller 16 MHz, 3.3. Eller 5V) spelar ingen roll. Du behöver dock en ATMEGA328 -processor eller bättre, eftersom vi kommer att använda nästan 2k RAM och 1k EEPROM. Om du är bekant med Arduino -världens ins och outs rekommenderar jag att du använder en Pro Mini på 3,3V, eftersom den kommer att vara billigast och mest batterieffektiv. Om du är (relativt) ny på Arduino rekommenderar jag en "Nano" eftersom den ger samma funktionalitet som en "Uno" i ett mindre och billigare paket.

Observera att det här instruerbara inte kommer att tala dig igenom grunden. Du bör åtminstone ha Arduino -programvaran installerad och veta hur du ansluter din Arduino och laddar upp en skiss. Om du inte har en aning, vad jag pratar om, läs dessa två enkla handledning, först: Först, andra.

En 128*64 pixlar SSD1306 OLED -skärm (I2C -variant, dvs fyra stift)

Detta är en av de billigaste och enklaste skärmarna som finns tillgängliga idag. Håller med, den är liten, men tillräckligt bra. Naturligtvis, om du redan har en skärm med liknande eller bättre upplösning, kommer det att vara möjligt att använda det istället, men det här instruerbara är skrivet för en SSD1306.

  • En "lödlös brödbräda" och lite bygeltråd, för att bygga din prototyp
  • En 100nF keramisk kondensator (kan behövas eller inte, se steg 4)
  • Antingen några croc-clips, eller en magnet, en vassströmbrytare och en kabel (se steg 4)
  • En röd och en grön lysdiod, vardera (valfritt; se steg 5)
  • Två 220Ohm motstånd (om du använder lysdioderna)
  • En tryckknapp (även tillval)
  • Ett lämpligt batteri (se steg 6)

Steg 2: Ansluta skärmen

Ansluta skärmen
Ansluta skärmen

Som det första ska vi ansluta skärmen till Arduino. Detaljerade instruktioner finns tillgängliga. SSD1306 är dock väldigt lätt att ansluta:

  1. Visa VCC -> Arduino 3.3V eller 5V (antingen kommer att göra)
  2. Visa Gnd -> Arduino Gnd
  3. Visa SCL -> Arduino A5
  4. Visa SCA -> Arduino A4

Gå sedan till din Skiss-> Inkludera bibliotek-> Hantera bibliotek i din Arduino-miljö och installera "Adafruit SSD1306". Tyvärr måste du redigera biblioteket för att konfigurera det för varianten 128*64 pixlar: leta upp din arduino "bibliotek" -mapp och redigera "Adafruit_SSD1306/Adafruit_SSD1306.h". Sök efter "#define SSD1306_128_32", inaktivera den raden och aktivera "#define SSD1306_128_64", istället.

Vid det här laget bör du ladda File-> Exempel-> Adafruit SSD1306-> ssd1306_128x64_i2c för att testa att din skärm är korrekt ansluten. Observera att du kan behöva justera I2C-adressen. 0x3C verkar vara det vanligaste värdet.

I händelse av problem, se de mer detaljerade instruktionerna.

Steg 3: Ladda upp skissen

Om allt fungerade, så långt, är det nu dags att ladda upp själva skissen till din Arduino. Du hittar en kopia av skissen nedan. En potentiellt nyare version finns på github -projektsidan. (Eftersom detta är en enda filskiss räcker det med att bara kopiera erogmetrino.ino -filen till ditt Arduino -fönster).

Skulle du ha behövt ändra I2C -adressen i föregående steg måste du göra samma justering igen, nu, i raden som börjar med "display.begin".

När du har laddat upp bör du se några nollor på skärmen. Vi kommer att titta på innebörden av de olika delarna av displayen, efter att allt annat har anslutits.

Observera att vid första starten kommer displayen att vara ganska långsam att lysa upp (kan ta upp till cirka tio sekunder), eftersom skissen nollställer alla data som lagras i EEPROM först.

Steg 4: Anslutning av Ergometer

Anslutning av Ergometer
Anslutning av Ergometer

Detta steg kan inte riktigt beskrivas universellt, eftersom inte alla ergometrar är desamma. Men de är inte alla olika heller. Om din ergometer överhuvudtaget har en elektronisk hastighetsvisning måste den ha en elektronisk sensor för att detektera varv på pedalerna, eller något (eventuellt internt) svänghjul, någonstans. I många fall kommer det helt enkelt att bestå av en magnet som passerar nära en vassomkopplare (se även nedan). Varje gång magneten passerar stängs omkopplaren och signalerar ett varv till hastighetsdisplayen.

Det första du bör göra är att undersöka hastighetsdisplayen på din ergometer för inkommande kablar. Om du hittar en tvåtrådskabel som kommer någonstans inifrån ergometern har du nästan säkert hittat anslutningen till sensorn. Och med lite tur kan du helt enkelt koppla bort detta och bara ansluta det till din Arduino med några krokodrar (jag ska berätta vilka stift du ska ansluta till på en minut).

Men om du inte kan hitta en sådan kabel, känner dig osäker på om du hittade den rätta, eller om du inte kan koppla bort den utan att skada något, kan du helt enkelt tejpa en liten magnet på en av pedalerna och fixa en vredomkopplare till din erogmeters ram, så att magneten kommer att passera den mycket nära. Anslut två ledningar till strömställaren och led dem till din Arduino.

Anslut de två ledningarna (oavsett om de är egna eller de från en befintlig sensor) går till Arduino Gnd och Arduino pin D2. Om du har en till hands, anslut också 100nF -kondensatorn mellan stift D2 och Gnd för lite "avstängning". Detta kanske behövs eller inte, men hjälper till att stabilisera avläsningarna.

När det är klart är det dags att slå på din Arduino och hoppa på cykeln för ett första snabbtest. Det övre vänstra numret bör börja visa ett hastighetsmått. Om detta inte fungerar, kontrollera alla kablar och se till att magneten är tillräckligt nära vassströmbrytaren. Om hastighetsmåttet verkar konsekvent för högt eller för lågt, justera helt enkelt definieringen "CM_PER_CLICK" nära skissens överkant (notera: skissen använder metriska namn, men inga enheter visas eller sparas någonstans, så ignorera det och leverera 100 000: e milen per klick).

Steg 5: Valfria lysdioder för snabbstatus

Valfria snabbstatus -lysdioder
Valfria snabbstatus -lysdioder

Lysdioderna som beskrivs i det här steget är valfria, men snygga: Om du är seriös med att läsa en bok / titta på TV medan du tränar, vill du inte behöva stirra på skärmen för mycket. Men två lysdioder i olika färger kommer lätt att märkas i perifer syn och räcker för att ge dig en grov uppfattning om hur du gör.

  • Anslut den första (röda) lysdioden till stift D6 (lysdiodens längre ben går till Arduino). Anslut lysdiodens korta ben till Gnd via ett 220Ohms -motstånd. Denna lysdiod tänds när du är 10% eller mer under din bästa hastighet i den aktuella fasen av träningen. Dags att anstränga sig mer!
  • Anslut den andra (gröna) lysdioden till stift D5, igen med ett motstånd till Gnd. Denna lysdiod tänds när du är inom 1%eller högre än din bästa körning. Du mår bra!

Du vill att lysdioderna ska lysa beroende på hur du klarar dig jämfört med din tidigare körning eller någon godtycklig medelhastighet? Tja, anslut bara en tryckknapp mellan stift D4 och Gnd. Med den knappen kan du växla mellan "din bästa körning", "din tidigare körning" eller "din nuvarande hastighet". En liten bokstav "P" eller "C" i nedre vänstra hörnet betyder de två senare lägena.

Steg 6: Strömförsörjning av din ergometerdisplay

Driva din Ergometer Display
Driva din Ergometer Display

Det finns många sätt att driva din bildskärm, men jag påpekar två som verkar mer praktiska än andra:

  1. När du använder en Arduino Uno eller Nano vill du förmodligen driva den med en USB-powerbank med inbyggd låg batterinivå.
  2. När du använder en Arduino Pro Mini @ 3.3V (min rekommendation för avancerade användare) kan du driva den direkt från antingen ett enda LiPo -batteri eller tre NiMH -celler. Eftersom ATMEGA tolererar matningsspänningar upp till 5,5V kan du ansluta detta direkt till "VCC/ACC" genom att kringgå den inbyggda spänningsregulatorn. I den här inställningen kommer det också att finnas en varning om "lågt batteri" på cirka 3,4 V, utan ytterligare hårdvara (visas i nedre högra hörnet). Eftersom ATMEGA kan förväntas fungera korrekt, åtminstone ner till 3.0V eller så, bör det ge dig tillräckligt med tid för att avsluta din träningsenhet innan du laddar.

Steg 7: Använda din ergometerdisplay

Använda din ergometerdisplay
Använda din ergometerdisplay
Använda din Ergometer Display
Använda din Ergometer Display

Låt oss titta närmare på de olika siffrorna på din skärm. Det större antalet överst till vänster är helt enkelt din nuvarande hastighet, och det större antalet längst upp till höger är det totala avståndet i din nuvarande träning.

Nästa rad är din genomsnittliga hastighet sedan träningens start (vänster) och tiden sedan träningens start (höger). Observera att timingen stoppas medan cykeln är stoppad.

Så långt så trivialt. De två ytterligare raderna på höger sida är där det blir intressant: Dessa jämför din nuvarande timing med din tidigare respektive bästa träning. D.v.s. a "- 0:01:23" i den övre delen av dessa rader betyder att du har nått din nuvarande sträcka 1 minut och 23 sekunder tidigare än på din tidigare körning. Bra. En lägre rad med "+ 0:00:12" betyder att du fram till den aktuella punkten släpar efter 12 sekunder efter ditt bästa lopp. (Observera att dessa differenstider inte kommer att vara 100% exakta. Tidspunkter lagras var. så båda ovanstående rader visar bara "-:-:-".

Slutligen innehåller den nedre vänstra delen av displayen en graf över din hastighet under den sista minuten. Detta gör att du snabbt kan se om du går stadigt eller saktar ner. (Observera att den här linjen kommer att vara mycket mjukare vid riktig träning - men det är helt enkelt inte lätt att hålla en jämn takt medan du försöker ta en bild …) Horisontella linjer indikerar den tidigare / bästa hastigheten du uppnådde nära den aktuella punkten i din tidigare utbildningar.

Lysdioderna monterade nära toppen jämför din nuvarande hastighet med din bästa hastighet under denna fas av träningen. Grönt visar att du är inom 1% av dina bästa, röda visar att du är mer än 10% långsammare än din bästa träning. När du ser det röda ljuset är det dags att anstränga sig mer. Observera att i motsats till skillnadstiderna som beskrivs ovan hänvisar dessa endast till den nuvarande delen av träningen, det vill säga det är möjligt att du släpar efter i absolut tid, men gröna visar att du kommer ikapp, och vice versa.

Referenshastigheten som används för de två lysdioderna kan ändras med tryckknappen. Ett tryck kommer att växla från bästa till tidigare inspelad träning (en liten bokstav "P" kommer att visas i nedre vänstra hörnet). Ytterligare ett tryck och din nuvarande hastighet vid knapptryckningen blir den nya referenshastigheten (en liten bokstav "C" visas). Det senare är särskilt användbart under din första träning med din nya ergometerdisplay, när ingen referens ännu har spelats in.

När du är klar med din träning är det bara att koppla ur batteriet. Din träning har redan sparats i din Arduinos interna EEPROM.

Som ni ser slutade jag med att lödda min prototyp. Visst tecken på att jag gillade resultatet, jag själv. Jag hoppas att du också kommer att tycka att det är användbart. Glad träning!

Rekommenderad: