Obsah:

DIY Indoor Bike Smart Trainer: 5 kroků
DIY Indoor Bike Smart Trainer: 5 kroků

Video: DIY Indoor Bike Smart Trainer: 5 kroků

Video: DIY Indoor Bike Smart Trainer: 5 kroků
Video: Homemade Bicycle Generator // Burn Calories and Make Electricity 2024, Listopad
Anonim
Inteligentní trenažér pro domácí kola
Inteligentní trenažér pro domácí kola
Inteligentní trenažér pro domácí kola
Inteligentní trenažér pro domácí kola
Inteligentní trenažér pro domácí kola
Inteligentní trenažér pro domácí kola

Úvod

Tento projekt začal jako jednoduchá modifikace indoorového kola Schwinn IC Elite, která pro nastavení odporu používá jednoduchý šroub a plstěné podložky. Problém, který jsem chtěl vyřešit, byl ten, že rozteč šroubu byla příliš velká, takže rozsah od neschopnosti šlapat do pedálů až po zcela volné otáčení kola byl jen pár stupňů na odporovém knoflíku. Nejprve jsem změnil šroub na M6, ale pak bych musel udělat knoflík, tak proč ke změně odporu nepoužít levý krokový motor NEMA 17? Pokud už nějaká elektronika existuje, proč nepřidat k počítači měřič výkonu kliky a připojení bluetooth a vytvořit tak chytrého trenéra?

To se ukázalo být obtížnější, než se očekávalo, protože neexistovaly žádné příklady, jak emulovat měřič výkonu pomocí arduina a bluetooth. Nakonec jsem strávil 20 hodin na programování a interpretaci specifikací BLE GATT. Doufám, že uvedením příkladu mohu někomu pomoci neztrácet tolik času pokusem porozumět tomu, co přesně znamená „pole typu dat služby AD“…

Software

Celý projekt je na GitHubu:

github.com/kswiorek/ble-ftms

Důrazně doporučuji používat Visual Studio s pluginem VisualGDB, pokud plánujete dělat něco vážnějšího, než jen kopírovat vložení mého kódu.

Pokud máte dotazy k programu, zeptejte se, vím, že mé minimalistické komentáře nemusí moc pomoci.

Kredity

Díky stoppi71 za jeho průvodce, jak vyrobit měřič výkonu. Kliku jsem udělal podle jeho návrhu.

Zásoby:

Materiály pro tento projekt do značné míry závisí na tom, jaké kolo upravujete, ale existuje několik univerzálních dílů.

Klika:

  1. Modul ESP32
  2. HX711 Senzor hmotnosti ADC
  3. Tenzometry
  4. MPU - gyroskop
  5. Malá baterie Li-Po (přibližně 750 mAh)
  6. Teplem smrštitelná manžeta
  7. A4988 Krokový ovladač
  8. 5V regulátor
  9. Arduino barel jack
  10. Napájení arduino 12V

Řídicí panel:

  1. Stepper NEMA 17 (musí být dost silný,> 0,4 Nm)
  2. Tyč M6
  3. 12864 lcd
  4. WeMos LOLIN32
  5. Taktové spínače

Zařízení

Za tímto účelem byste pravděpodobně mohli uniknout pouze pomocí 3D tiskárny, ale laserovým řezáním skříně můžete ušetřit spoustu času a také můžete vyrábět PCB. Soubory DXF a gerber jsou na GitHubu, takže si je můžete objednat místně. Spojka ze závitové tyče k motoru byla zapnuta na soustruhu a to může být jediný problém, protože část musí být docela silná, aby mohla tahat za podložky, ale v tomto konkrétním kole není mnoho místa.

Od výroby prvního kola jsem si pořídil frézku, která mi umožňuje vytvářet štěrbiny pro senzory v klice. Trochu usnadňuje jejich lepení a také je chrání, pokud by něco zasáhlo kliku. (Několikrát mi tyto senzory spadly, takže jsem chtěl být v bezpečí.)

Krok 1: Klika:

Klika
Klika
Klika
Klika
Klika
Klika

Nejlepší je sledovat tento návod:

V zásadě musíte senzory přilepit na kliku na čtyřech místech a připojit je k bokům desky.

Správná připojení již existují, takže stačí páry vodičů pájet přímo k těmto osmi podložkám na desce.

Pro připojení k senzorům použijte co nejtenčí drát - podložky lze velmi snadno zvednout. Nejprve je třeba senzory nalepit a nechat jich venku jen tolik, aby se pájilo, a zbytek pak zakrýt epoxidem. Pokud se pokusíte před lepením pájet, stočí se a zlomí.

Sestavení desky plošných spojů:

  1. Vložte zlaté kolíky zespodu (strana se stopami) do všech otvorů kromě těch svislých blízko dna.
  2. Umístěte tři desky (ESP32 nahoře, pak MPU, HX711 dole) tak, aby zlaté kolíky trčely oběma otvory.
  3. Pájejte záhlaví na desky nahoře
  4. Odřízněte zlaté kolíky zespodu. (Zkuste je před montáží nejprve nařezat, abyste věděli, že vaše „zlaté kolíky“nejsou uvnitř ocelové - je téměř nemožné je řezat a je třeba je opilovat nebo brousit)
  5. pájejte zbylé zlaté kolíky na dno desky.
  6. Nahrajte firmware kliky

Posledním krokem je zabalit celou kliku teplem smrštitelným pouzdrem.

Tento způsob výroby desky není ideální, protože desky zabírají spoustu místa, do kterého byste mohli vejít další věci. Nejlepší by bylo pájet všechny součásti přímo na desku, ale chybí mi schopnost tyto malé SMD pájet sám. Potřeboval bych to objednat smontované a pravděpodobně bych udělal nějaké chyby a nakonec bych si je objednal třikrát a rok čekal, než dorazí.

Pokud by někdo dokázal navrhnout desku, bylo by skvělé, kdyby měla nějaké ochranné obvody baterie a senzor, který by zapnul ESP, kdyby se klika začala pohybovat.

DŮLEŽITÉ

Senzor HX711 je ve výchozím nastavení nastaven na 10 Hz - pro měření výkonu je hodně pomalý. Musíte zvednout kolík 15 z desky a připojit jej ke kolíku 16. Tím je kolík VYSOKÝ a je povolen režim 80 Hz. Těchto 80 Hz mimochodem nastavuje rychlost celé arduino smyčky.

Používání

ESP32 je naprogramován tak, aby šel spát po 30 s bez připojeného bluetooth zařízení. Chcete -li jej znovu zapnout, stiskněte tlačítko reset. Senzory jsou také napájeny z digitálního pinu, který se v režimu spánku změní na LOW. Chcete -li otestovat senzory pomocí ukázkového kódu z knihoven, musíte použít pin HIGH a chvíli počkat, než se senzory zapnou.

Po montáži je třeba senzory kalibrovat odečtením hodnoty bez použití síly a poté s použitím závaží (použil jsem 12 kg nebo 16 kg kettlebell zavěšený na pedálu). Tyto hodnoty je třeba vložit do kódu powerCrank.

Nejlepší je vytárovat kliku před každou jízdou - neměla by být schopna tárovat sama, když někdo šlape, ale je to bezpečnější než lítost a je možné ji vytárovat pouze jednou za zapnutí. Pokud si všimnete podivných úrovní výkonu, musíte tento postup zopakovat:

  1. Dejte kliku přímo dolů, dokud nezačne blikat kontrolka.
  2. Po několika sekundách kontrolka zůstane rozsvícená - nedotýkejte se jí
  3. Když světlo zhasne, nastaví aktuální sílu detekovanou jako novou 0.

Pokud chcete použít pouze kliku, bez konzoly, kód je zde na github. Všechno ostatní funguje stejně.

Krok 2: Konzola

Konzole
Konzole
Konzole
Konzole
Konzole
Konzole

Pouzdro je vyřezáno z 3mm akrylu, knoflíky jsou vytištěny 3D a pro LCD jsou vložky, vystřižené z 5mm akrylu. Je přilepený horkým lepidlem (docela dobře drží na akrylu) a je tam 3D tištěný „držák“, který drží DPS na LCD. Kolíky pro LCD jsou připájeny ze spodní strany, aby nerušily ESP.

ESP je připájen vzhůru nohama, takže se USB port vejde do pouzdra

Samostatná tlačítková deska plošných spojů je lepena horkým lepidlem, takže tlačítka jsou zachycena v jejich otvorech, ale stále stisknou spínače. Tlačítka jsou připojena k desce pomocí konektorů JST PH 2.0 a pořadí pinů lze snadno odvodit ze schématu

Je velmi důležité namontovat krokový ovladač ve správné orientaci (potenciometr poblíž ESP)

Celá část pro kartu SD je deaktivována, protože ji v první verzi nikdo nepoužil. Kód je třeba aktualizovat pomocí některých nastavení uživatelského rozhraní, jako je hmotnost jezdce a nastavení obtížnosti.

Konzole je upevněna pomocí laserových „ramen“a zipů. Malé zoubky se zarývají do řídítek a drží konzolu.

Krok 3: Motor

Motor
Motor
Motor
Motor
Motor
Motor

Motor se drží v místě knoflíku seřizovače pomocí 3D tištěného držáku. Na jeho hřídel je namontována spojka - jedna strana má 5mm otvor se stavěcími šrouby pro uchycení hřídele, druhá má závit M6 se stavěcími šrouby pro jeho uzamčení. Pokud chcete, můžete to pravděpodobně vyrobit ve vrtačce z nějakého 10 mm kulatého materiálu. Nemusí to být extrémně přesné, protože motor není namontován příliš pevně.

Do spojky je našroubován kus závitové tyče M6, která natáhne mosaznou matici M6. Obrobil jsem to, ale dá se to stejně snadno vyrobit z kusu mosazi pilníkem. Některé bity můžete dokonce přivařit k normální matici, aby se neotáčela. Řešením může být také 3D tištěná matice.

Závit musí být jemnější než standardní šroub. Jeho rozteč je asi 1,3 mm a pro M6 je to 0,8 mm. Motor nemá dostatečný točivý moment, aby mohl otáčet zásobním šroubem.

Matici je třeba dobře namazat, protože motor sotva může otáčet šroubem při vyšších nastaveních

Krok 4: Konfigurace

Konfigurace
Konfigurace
Konfigurace
Konfigurace

Chcete-li nahrát kód do ESP32 z Arduino IDE, musíte postupovat podle tohoto tutoriálu:

Deska je „WeMos LOLIN32“, ale funguje i „Dev modul“

Doporučuji použít Visual Studio, ale často se to může zlomit.

Před prvním použitím

Kliku je třeba nastavit podle kroku „Klika“

Pomocí aplikace "nRF Connect" musíte zkontrolovat MAC adresu kliky ESP32 a nastavit ji v souboru BLE.h.

V řádku 19 indoorBike.ino musíte nastavit, kolik otáček šroubu je zapotřebí k nastavení odporu od zcela volného po maximální. („Maximum“je záměrně subjektivní, obtížnost upravíte pomocí tohoto nastavení.)

Chytrý trenažér má „virtuální převody“, aby je správně nastavil, musíte je kalibrovat na řádcích 28 a 29. Na daném nastavení odporu je třeba šlapat s konstantní kadencí, poté načíst výkon a nastavit ho v souboru. Opakujte to znovu s jiným nastavením.

Tlačítko úplně vlevo se přepne z režimu ERG (absolutní odpor) do režimu simulace (virtuální převody). Režim simulace bez připojení k počítači nedělá nic, protože neexistují žádná data simulace.

Řádek 36. nastavuje virtuální ozubená kola - počet a poměry. Vypočítáte je tak, že počet zubů v předním kole vydělíte počtem zubů v zadním kole.

Do řádku 12. uvedete hmotnost jezdce a kola (v [newtonech], hmotnost krát gravitační zrychlení!)

Celá tato fyzikální část je pravděpodobně příliš komplikovaná a dokonce si ani nepamatuji, co přesně dělá, ale vypočítám požadovaný točivý moment, abych vytáhl cyklistu do kopce nebo něco podobného (proto ta kalibrace).

Tyto parametry jsou vysoce subjektivní, musíte je nastavit po několika jízdách, aby správně fungovaly.

Port ladění COM odesílá přímá binární data přijímaná bluetooth v uvozovkách ('') a simulační data.

Konfigurátor

Protože konfigurace údajně realistické fyziky se ukázala být obrovským problémem, aby působila realisticky, vytvořil jsem konfigurátor GUI, který by měl uživatelům umožnit graficky definovat funkci, která převádí ze sklonu kopce na úroveň absolutního odporu. Ještě to není úplně hotové a neměl jsem možnost to vyzkoušet, ale v nadcházejícím měsíci budu převádět další kolo, takže to pak vyleštím.

Na kartě „Gears“můžete nastavit poměr každého rychlostního stupně pohybem posuvníků. Poté musíte zkopírovat bit kódu, který nahradí definované převody v kódu.

Na kartě "Grade" je uveden graf lineární funkce (ano, ukazuje se, že nejvíce nenáviděný předmět v matematice je skutečně užitečný), který vezme známku (svislá osa) a vydá kroky absolutního odporu (vodorovná osa). Zájemcům půjdu do matematiky o něco později.

Uživatel může tuto funkci definovat pomocí dvou bodů, které na ní leží. Vpravo je místo pro změnu aktuálního rychlostního stupně. Zvolený rychlostní stupeň, jak si asi dokážete představit, mění způsob, jakým se stupeň mapuje na odpor - na nižších rychlostních stupních je snazší šlapat do kopce. Pohybem posuvníku se mění 2. koeficient, který ovlivňuje, jak zvolený rychlostní stupeň mění funkci. Nejjednodušší je si s tím chvíli hrát, abyste viděli, jak se chová. Možná také budete muset vyzkoušet několik různých nastavení, abyste zjistili, co vám nejlépe vyhovuje.

Byl napsán v Pythonu 3 a měl by fungovat s výchozími knihovnami. Chcete -li jej použít, musíte odkomentovat řádky bezprostředně po „odkomentujte tyto řádky, abyste použili konfigurátor“. Jak jsem řekl, nebylo to testováno, takže tam mohou být nějaké chyby, ale pokud se něco objeví, napište komentář nebo otevřete problém, abych to mohl opravit.

Matematika (a fyzika)

Jediným způsobem, jak může ovladač cítit, že jedete do kopce, je otáčení odporového šroubu. Musíme převést známku na počet otáček. Aby bylo nastavení jednodušší, je celý rozsah od zcela volných až po neschopnost otočit klikou rozdělen na 40 kroků, stejné jako v režimu ERG, ale tentokrát místo celých čísel používá skutečná čísla. To se provádí pomocí jednoduché mapové funkce - můžete si to vyhledat v kódu. Nyní jsme o krok výš - místo abychom se zabývali otáčkami šroubu, řešíme imaginární kroky.

Jak to tedy vlastně funguje, když jedete na kole do kopce (za předpokladu konstantní rychlosti)? Zjevně musí být nějaká síla, která vás tlačí nahoru, jinak byste se svalili dolů. Tato síla, jak nám říká první pohybový zákon, musí mít stejnou velikost, ale opačný směr než síla, která vás táhne dolů, abyste byli v rovnoměrném pohybu. Pochází z tření mezi kolem a zemí a pokud nakreslíte diagram těchto sil, musí se rovnat hmotnosti kola a jezdce krát známce:

F = Fg*G

Proč tedy kolo tuto sílu aplikuje? Protože se zabýváme ozubenými koly a koly, je snazší uvažovat o točivém momentu, což je jednoduše síla krát poloměr:

t = F*R

Jak jsou zahrnuty převody, udělujete točivý moment na kliku, která zatáhne za řetěz a otočí kolo. Točivý moment potřebný k otočení kola se znásobí převodovým poměrem:

tp = tw*gr

a zpět z vzorce točivého momentu získáme sílu potřebnou k otočení pedálu

Fp = tp/r

To je něco, co můžeme měřit pomocí měřiče výkonu v klice. Jelikož dynamické tření je lineárně závislé na síle a protože tento konkrétní motocykl používá k předávání této síly pružiny, je lineární vůči pohybu šroubu.

Síla je síla krát rychlost (za předpokladu stejného směru vektorů)

P = F*V

a lineární rychlost pedálu souvisí s úhlovou rychlostí:

V = ω*r

a tak můžeme vypočítat sílu potřebnou k otočení pedálů na nastavenou úroveň odporu. Protože vše spolu lineárně souvisí, můžeme k tomu použít proporce.

To bylo v podstatě to, co software potřeboval vypočítat během kalibrace a pomocí kruhového objezdu, aby nám poskytl komplikovaný kompozitní, ale lineární funkci vztahující se k odporu. Napsal jsem vše na papír a vypočítal konečnou rovnici a všechny konstanty se staly třemi koeficienty.

Toto je technicky 3D funkce představující rovinu (myslím), která bere jako argument známku a převodový poměr, a tyto tři koeficienty souvisejí s koeficienty potřebnými k definování roviny, ale protože ozubená kola jsou diskrétní čísla, bylo jednodušší aby to byl parametr místo řešení projekcí a podobně. 1. a 3. koeficient mohou být definovány jedinou přímkou a (-1)* 2. koeficient je souřadnice X bodu, kde se čára při změně převodu „otáčí“kolem.

V této vizualizaci jsou argumenty reprezentovány svislou čarou a hodnoty vodorovnou a vím, že to může být nepříjemné, ale bylo to pro mě intuitivnější a lépe to odpovídalo GUI. To je pravděpodobně důvod, proč ekonomové kreslí své grafy tímto způsobem.

Krok 5: Dokončete

Nyní potřebujete nějaké aplikace, se kterými budete na svém novém trenérovi jezdit (což vám ušetřilo kolem 900 $:)). Zde jsou mé názory na některé z nich.

  • RGT Cycling - podle mě nejlepší - má zcela bezplatnou možnost, ale má trochu málo skladeb. Nejlépe si poradí s připojovací částí, protože se váš telefon připojuje přes bluetooth a stopu zobrazuje počítač. Používá realistické video s cyklistou AR
  • Rouvy - spousta skladeb, pouze placené předplatné, z nějakého důvodu s tím aplikace pro PC nefunguje, musíte použít telefon. Mohou nastat problémy, když váš notebook používá stejnou kartu pro bluetooth i WiFi, často zaostává a nechce se načítat
  • Zwift - animovaná hra, pouze placená, funguje docela dobře s trenérem, ale uživatelské rozhraní je docela primitivní - spouštěč používá k zobrazení nabídky Internet Explorer.

Pokud se vám stavba líbila (nebo ne), dejte mi prosím vědět v komentářích a pokud máte nějaké dotazy, můžete se zeptat zde nebo odeslat problém na github. Rád vše vysvětlím, protože je to docela komplikované.

Doporučuje: