Obsah:

Inteligentný trenažér pre domácich majstrov na bicykli: 5 krokov
Inteligentný trenažér pre domácich majstrov na bicykli: 5 krokov

Video: Inteligentný trenažér pre domácich majstrov na bicykli: 5 krokov

Video: Inteligentný trenažér pre domácich majstrov na bicykli: 5 krokov
Video: Часть 5 - Аудиокнига Гарриет Бичер-Стоу «Хижина дяди Тома» (гл. 19–23) 2024, November
Anonim
Inteligentný trenažér pre domáce bicykle
Inteligentný trenažér pre domáce bicykle
Inteligentný trenažér pre vnútorné bicykle
Inteligentný trenažér pre vnútorné bicykle
Inteligentný trenažér pre domáce bicykle
Inteligentný trenažér pre domáce bicykle

Úvod

Tento projekt sa začal ako jednoduchá úprava izbového bicykla Schwinn IC Elite, ktorý na nastavenie odporu používa jednoduchú skrutku a plstené podložky. Problém, ktorý som chcel vyriešiť, bol ten, že rozteč skrutky bola príliš veľká, takže rozsah od neschopnosti šliapať do pedálov až po úplne voľné otáčanie kolesa bol len niekoľko stupňov na odporovom gombíku. Najprv som zmenil skrutku na M6, ale potom by som musel urobiť gombík, tak prečo na zmenu odporu nepoužiť krokový motor NEMA 17, ktorý zostal po sebe? Ak už existuje určitá elektronika, prečo nepridať merač výkonu kľuky a pripojenie bluetooth k počítaču, aby ste vytvorili inteligentného trénera?

Ukázalo sa to ťažšie, ako sa očakávalo, pretože neexistovali žiadne príklady toho, ako napodobniť merač výkonu pomocou arduina a bluetooth. Nakoniec som strávil asi 20 hodín programovaním a interpretáciou špecifikácií BLE GATT. Dúfam, že uvedením príkladu môžem pomôcť niekomu, aby nemrhal toľko času pokusom porozumieť tomu, čo presne znamená „pole typu reklamy s údajmi o službe“…

Softvér

Celý projekt je na GitHub:

github.com/kswiorek/ble-ftms

Dôrazne odporúčam používať Visual Studio s doplnkom VisualGDB, ak máte v pláne urobiť niečo vážnejšie, než len skopírovať a vložiť môj kód.

Ak máte otázky k programu, opýtajte sa, viem, že moje minimalistické komentáre nemusia veľmi pomôcť.

Kredity

Vďaka stoppi71 za jeho sprievodcu o tom, ako vyrobiť merač výkonu. Kľuku som vyrobil podľa jeho návrhu.

Zásoby:

Materiály pre tento projekt do značnej miery závisia od toho, aký bicykel upravujete, ale existuje niekoľko univerzálnych dielov.

Kľuky:

  1. Modul ESP32
  2. HX711 Senzor hmotnosti ADC
  3. Tenzometre
  4. MPU - gyroskop
  5. Malá batéria Li-Po (približne 750 mAh)
  6. Teplom zmrštiteľná manžeta
  7. A4988 Krokový ovládač
  8. 5V regulátor
  9. Sudový zdvihák arduino
  10. Napájanie arduino 12V

Konzola:

  1. Krokovač NEMA 17 (musí byť dosť výkonný,> 0,4 Nm)
  2. Tyč M6
  3. 12864 lcd
  4. WeMos LOLIN32
  5. Taktové spínače

Zariadenie

Za týmto účelom sa pravdepodobne vyhnete používaniu iba 3D tlačiarne, ale laserovým rezaním puzdra môžete ušetriť veľa času a môžete tiež vyrábať dosky plošných spojov. Súbory DXF a gerber sú na GitHub, takže si ich môžete objednať lokálne. Spojka zo závitovej tyče s motorom bola zapnutá na sústruhu a to môže byť jediný problém, pretože časť musí byť dosť silná na to, aby sa dala vytiahnuť za podložky, ale v tomto konkrétnom bicykli nie je veľa miesta.

Od výroby prvého bicykla som získal frézku, ktorá mi umožňuje vytvárať otvory pre senzory v kľuke. Trochu uľahčuje ich lepenie a tiež ich chráni, ak by niečo trafilo kľuku. (Niekoľkokrát mi tieto senzory spadli, takže som chcel byť v bezpečí.)

Krok 1: Klika:

Klika
Klika
Klika
Klika
Klika
Klika

Najlepšie je riadiť sa týmto návodom:

V zásade musíte senzory prilepiť na kľuku na štyroch miestach a pripojiť ich k bokom dosky.

Správne spojenia už sú k dispozícii, takže stačí spájkovať páry vodičov priamo s týmito ôsmimi podložkami na doske.

Na pripojenie k senzorom použite čo najtenší drôt - podložky sa dajú veľmi ľahko zdvihnúť. Senzory musíte najskôr prilepiť a nechať ich dostatok vonku na spájkovanie, potom zvyšok pokryte epoxidom. Ak sa pokúsite pred lepením spájkovať, stočia sa a zlomia.

Zostavenie DPS:

  1. Zlaté kolíky zasuňte zospodu (strana so stopami) do všetkých otvorov okrem tých, ktoré sú zvislé v spodnej časti.
  2. Umiestnite tri dosky (ESP32 na vrch, potom MPU, HX711 na spodok) tak, aby zlaté kolíky trčali cez oba otvory.
  3. Zospájkujte hlavičky na dosky hore
  4. Zo spodnej časti odrežte zlaté špendlíky. (Skúste ich najskôr rozrezať pred montážou, aby ste vedeli, že vaše „zlaté špendlíky“nie sú vo vnútri oceľové - je takmer nemožné ich rezať a je potrebné ich brúsiť alebo brúsiť.)
  5. zvyšné zlaté kolíky pripájajte na spodok dosky.
  6. Nahrajte firmvér pre kľuku

Posledným krokom je zabalenie celej kľuky teplom zmrštiteľným puzdrom.

Tento spôsob výroby dosky nie je ideálny, pretože dosky zaberajú veľa miesta, do ktorého sa vám zmestia ďalšie veci. Najlepšie by bolo priamo spájkovať všetky komponenty na dosku, ale chýba mi schopnosť spájkovať tieto malé SMD sami. Potreboval by som to objednať zmontované a pravdepodobne by som urobil niekoľko chýb a nakoniec by som si ich objednal trikrát a rok čakal, kým prídu.

Ak by niekto dokázal navrhnúť dosku, bolo by skvelé, keby mala nejaký ochranný obvod batérie a senzor, ktorý by zapol ESP, keby sa kľuka začala pohybovať.

DÔLEŽITÉ

Senzor HX711 je predvolene nastavený na 10 Hz - na meranie výkonu je to veľmi pomalé. Musíte zdvihnúť kolík 15 z dosky a pripojiť ho ku kolíku 16. Tým sa pin spína VYSOKO a umožňuje režim 80 Hz. Týchto 80 Hz, mimochodom, nastavuje rýchlosť celej arduino slučky.

Použitie

ESP32 je naprogramovaný tak, aby prešiel do režimu spánku po 30 sekundách bez pripojeného zariadenia bluetooth. Ak ho chcete znova zapnúť, stlačte tlačidlo reset. Senzory sú napájané aj z digitálneho pinu, ktorý sa v režime spánku zmení na NÍZKU. Ak chcete senzory otestovať pomocou ukážkového kódu z knižníc, musíte poslať kolík HIGH a chvíľu počkať, kým sa senzory nezapnú.

Po montáži je potrebné senzory kalibrovať odčítaním hodnoty bez použitia sily a potom s použitím závažia (použil som 12 kg alebo 16 kg kettlebell zavesený na pedáli). Tieto hodnoty je potrebné vložiť do kódu powerCrank.

Je najlepšie vytárovať kľuku pred každou jazdou - nemala by sa vedieť sama vytárovať, keď niekto šliape, ale je to bezpečnejšie, ako ľutovať, a je možné ju vytárovať iba raz za zapnutím. Ak si všimnete nejaké podivné úrovne výkonu, musíte tento postup zopakovať:

  1. Dajte kľuku priamo dole, kým nezačne blikať svetlo.
  2. Po niekoľkých sekundách svetlo zostane rozsvietené - nedotýkajte sa ho
  3. Keď svetlo zhasne, nastaví aktuálnu silu zistenú ako novú 0.

Ak chcete použiť iba kľuku, bez konzoly, kód je tu na github. Všetko ostatné funguje rovnako.

Krok 2: Konzola

Konzola
Konzola
Konzola
Konzola
Konzola
Konzola

Puzdro je vyrezané z 3 mm akrylu, tlačidlá sú 3D vytlačené a na LCD sú vložky, vyrezané z 5 mm akrylu. Lepí sa horúcim lepidlom (celkom dobre drží na akryle) a je tam 3D vytlačená „konzola“na prichytenie DPS k LCD. Kolíky pre LCD sú spájkované zo spodnej strany, aby neprekážali v ESP.

ESP je spájkovaný hore nohami, takže sa port USB zmestí do puzdra

Samostatná tlačidlová doska plošných spojov je prilepená horúcim lepidlom, takže tlačidlá sú zachytené v ich otvoroch, ale napriek tomu stláčajú spínače. Tlačidlá sú k doske pripojené konektormi JST PH 2.0 a poradie pinov je možné ľahko vyvodiť zo schémy

Je veľmi dôležité namontovať krokový ovládač so správnou orientáciou (potenciometer v blízkosti ESP)

Celá časť pre kartu SD je deaktivovaná, pretože v prvej verzii ju nikto nepoužil. Kód je potrebné aktualizovať o niektoré nastavenia používateľského rozhrania, ako je hmotnosť jazdca a nastavenie obtiažnosti.

Konzola je namontovaná pomocou laserových „ramien“a zipsov. Malé zúbky sa zarývajú do riadidiel a držia konzolu.

Krok 3: Motor

Motor
Motor
Motor
Motor
Motor
Motor

Motor sa drží na mieste gombíka nastavovača pomocou 3D tlačenej konzoly. Na jeho hriadeli je namontovaná spojka - jedna strana má 5 mm otvor s nastavovacími skrutkami na uchytenie hriadeľa, druhá má závit M6 so stavacími skrutkami na jeho zaistenie. Ak chcete, môžete to pravdepodobne urobiť vo vŕtačke z nejakého 10 mm okrúhleho materiálu. Nemusí to byť veľmi presné, pretože motor nie je namontovaný príliš tesne.

Do spojky je naskrutkovaný kus závitovej tyče M6, ktorá natiahne mosadznú maticu M6. Opracoval som ho, ale dá sa rovnako ľahko vyrobiť z kusu mosadze pilníkom. Niektoré bity môžete dokonca zvárať na normálnu maticu, aby sa neotáčala. Riešením môže byť aj 3D tlačená matica.

Niť musí byť jemnejšia ako skrutka. Jeho rozstup je asi 1,3 mm a pre M6 je to 0,8 mm. Motor nemá dostatok krútiaceho momentu na otáčanie skrutky.

Maticu je potrebné dobre namazať, pretože motor sotva môže otáčať skrutkou pri vyšších nastaveniach

Krok 4: Konfigurácia

Konfigurácia
Konfigurácia
Konfigurácia
Konfigurácia

Ak chcete nahrať kód do ESP32 z Arduino IDE, musíte postupovať podľa tohto tutoriálu:

Doska je „WeMos LOLIN32“, ale funguje aj „modul Dev“

Odporúčam používať Visual Studio, ale často sa to môže pokaziť.

Pred prvým použitím

Kľuku je potrebné nastaviť podľa kroku „Klika“

Pomocou aplikácie "nRF Connect" musíte skontrolovať MAC adresu kľuky ESP32 a nastaviť ju v súbore BLE.h.

V riadku 19 stránky indoorBike.ino musíte nastaviť, koľko otáčok skrutky je potrebných na nastavenie odporu z úplne voľného na maximálny. („Maximum“je účelovo subjektívne, obtiažnosť si upravíte týmto nastavením.)

Inteligentný trenažér má „virtuálne prevody“, aby ich správne nastavil, musíte ho nakalibrovať na riadkoch 28 a 29. Na dané nastavenie odporu potrebujete pedálovať s konštantnou kadenciou, potom odčítať výkon a nastaviť ho v súbore. Zopakujte to znova s iným nastavením.

Tlačidlo úplne vľavo sa prepne z režimu ERG (absolútny odpor) do režimu simulácie (virtuálne prevody). Simulačný režim bez pripojenia k počítaču nerobí nič, pretože neexistujú žiadne simulačné údaje.

Riadok 36. nastavuje virtuálne prevody - počet a pomery. Vypočítate ich vydelením počtu zubov v prednom prevodovom stupni počtom zubov v zadnom prevode.

Do riadku 12. uvediete hmotnosť jazdca a bicykla (v [newtonoch], hmotnosť krát gravitačné zrýchlenie!)

Celá táto fyzikálna časť je pravdepodobne príliš komplikovaná a dokonca si ani nepamätám, čo presne robí, ale vypočítam požadovaný krútiaci moment, ktorý by cyklistu vytiahol do kopca alebo niečo podobné (preto tá kalibrácia).

Tieto parametre sú vysoko subjektívne, musíte ich nastaviť po niekoľkých jazdách, aby správne fungovali.

Port ladenia COM odosiela priame binárne údaje prijaté v bluetooth v úvodzovkách ('') a simulačné údaje.

Konfigurátor

Pretože konfigurácia údajne realistickej fyziky sa ukázala byť veľkým problémom, aby pôsobila realisticky, vytvoril som konfigurátor GUI, ktorý by mal používateľom umožniť graficky definovať funkciu, ktorá prevádza zo sklonu kopca na úroveň absolútneho odporu. Ešte nie je úplne dokončený a nemal som možnosť ho otestovať, ale v nasledujúcom mesiaci budem prevádzať ďalší bicykel, takže ho potom vyleštím.

Na karte „Prevodové stupne“môžete nastaviť pomer každého prevodového stupňa pohybom posúvačov. Potom musíte skopírovať bit kódu, aby ste nahradili definované prevody v kóde.

Na karte "Stupeň" dostanete graf lineárnej funkcie (áno, ukazuje sa, že najnenávidenejší predmet v matematike je skutočne užitočný), ktorý preberie známku (zvislá os) a vydáva kroky absolútneho odporu (vodorovná os). Pre záujemcov pôjdem do matematiky o niečo neskôr.

Užívateľ môže definovať túto funkciu pomocou dvoch bodov, ktoré na nej ležia. Vpravo je miesto na zmenu súčasného prevodového stupňa. Zvolený prevodový stupeň, ako by ste si mohli predstavovať, mení spôsob, akým sa stupeň mapuje na odpor - na nižších prevodových stupňoch je jednoduchšie šliapať do kopca. Pohybom posúvača sa zmení 2. koeficient, ktorý ovplyvňuje, ako zvolený prevodový stupeň zmení funkciu. Najľahšie je chvíľu sa s tým pohrať a zistiť, ako sa správa. Možno budete musieť tiež vyskúšať niekoľko rôznych nastavení, aby ste zistili, čo vám najlepšie vyhovuje.

Bol napísaný v Pythone 3 a mal by fungovať s predvolenými knižnicami. Ak ho chcete použiť, musíte odkomentovať riadky bezprostredne po „odkomentovaní týchto riadkov pomocou konfigurátora“. Ako som povedal, nebolo to testované, takže sa môžu vyskytnúť chyby, ale ak sa niečo vyskytne, napíšte komentár alebo otvorte problém, aby som to mohol opraviť.

Matematika (a fyzika)

Jediný spôsob, ako môže ovládač cítiť, že idete do kopca, je otočením odporovej skrutky. Musíme previesť známku na počet otáčok. Aby bolo nastavenie jednoduchšie, celý rozsah od úplne voľných až po neschopnosť otočiť kľukou je rozdelený do 40 krokov, to isté sa používa v režime ERG, ale tentoraz namiesto celých čísel používa skutočné čísla. Vykonáva sa to pomocou jednoduchej mapovej funkcie - môžete si to vyhľadať v kóde. Teraz sme o krok vyššie - namiesto toho, aby sme sa zaoberali otáčkami skrutky, riešime imaginárne kroky.

Ako to teda vlastne funguje, keď idete na bicykli do kopca (za predpokladu konštantnej rýchlosti)? Očividne vás musí tlačiť nahor nejaká sila, inak by ste sa zrútili. Táto sila, ako nám hovorí prvý pohybový zákon, musí mať rovnakú veľkosť, ale opačný smer ako sila, ktorá vás ťahá nadol, aby ste boli v rovnomernom pohybe. Pochádza z trenia medzi kolesom a zemou a ak nakreslíte diagram týchto síl, musí sa rovnať hmotnosti bicykla a jazdca vynásobenej známkou:

F = Fg*G

Čo robí koleso túto silu? Keďže máme do činenia s prevodmi a kolesami, je jednoduchšie uvažovať o krútiacom momente, ktorý je jednoducho sila krát polomer:

t = F*R

Pretože sú zahrnuté prevodové stupne, uťahujete krútiaci moment kľukou, ktorá ťahá za reťaz a otáča kolesom. Krútiaci moment potrebný na otočenie kolesa sa vynásobí prevodovým pomerom:

tp = tw*gr

a späť zo vzorca krútiaceho momentu získame silu potrebnú na otočenie pedála

Fp = tp/r

To je niečo, čo môžeme merať pomocou elektromera v kľuke. Pretože dynamické trenie je lineárne závislé od sily a keďže tento konkrétny bicykel používa na dodanie tejto sily pružiny, je lineárne k pohybu skrutky.

Sila je sila krát rýchlosť (za predpokladu rovnakého smeru vektorov)

P = F*V

a lineárna rýchlosť pedálu súvisí s uhlovou rýchlosťou:

V = ω*r

a tak môžeme vypočítať silu potrebnú na otočenie pedálov na nastavenej úrovni odporu. Pretože všetko spolu lineárne súvisí, môžeme na to použiť proporcie.

To bol v podstate to, čo softvér potreboval na výpočet počas kalibrácie a pomocou kruhového objazdu, aby nám poskytol komplikovaný kompozitný, ale lineárny prvok vzťahujúci sa na stupeň odporu. Napísal som všetko na papier, vypočítal konečnú rovnicu a všetky konštanty sa stali tromi koeficientmi.

Je to technicky 3D funkcia predstavujúca rovinu (myslím), ktorá ako argumenty berie známku a prevodový pomer, a tieto tri koeficienty súvisia s koeficientmi potrebnými na definovanie roviny, ale keďže prevody sú diskrétne čísla, bolo jednoduchšie aby to bol parameter namiesto toho, aby sa zaoberali projekciami a podobne. 1. a 3. koeficient je možné definovať jedným riadkom a (-1)* 2. koeficient je súradnica X bodu, kde sa priamka „otáča“okolo pri zmene prevodu.

V tejto vizualizácii sú argumenty reprezentované zvislou čiarou a hodnoty vodorovnou a viem, že to môže byť nepríjemné, ale bolo to pre mňa intuitívnejšie a lepšie to zodpovedalo GUI. To je pravdepodobne dôvod, prečo ekonómovia kreslia svoje grafy týmto spôsobom.

Krok 5: Dokončite

Teraz potrebujete niekoľko aplikácií, s ktorými môžete jazdiť na svojom novom trénerovi (čo vám ušetrilo približne 900 dolárov:)). Tu sú moje názory na niektoré z nich.

  • RGT Cycling - podľa mňa najlepší - má úplne bezplatnú možnosť, ale má niekoľko skladieb. Najlepšie si poradí s časťou pripojenia, pretože váš telefón sa pripája cez bluetooth a počítač zobrazuje trasu. Používa realistické video s cyklistom AR
  • Rouvy - veľa skladieb, iba platené predplatné, z nejakého dôvodu s tým počítačová aplikácia nefunguje, musíte použiť telefón. Môžu sa vyskytnúť problémy, keď váš prenosný počítač používa rovnakú kartu pre bluetooth a WiFi, často zaostáva a nechce sa načítať
  • Zwift - animovaná hra, iba platená, funguje s trénerom celkom dobre, ale používateľské rozhranie je dosť primitívne - spúšťač na zobrazenie ponuky používa Internet Explorer.

Ak sa vám zostava páčila (alebo nie), dajte mi vedieť v komentároch a ak máte nejaké otázky, môžete sa ich opýtať tu alebo odoslať problém na github. Rád všetko vysvetlím, pretože je to dosť komplikované.

Odporúča: