INHOUDSOPGAWE:
- Voorrade
- Stap 1: 'n paar wiskunde
- Stap 2: Kry 'n paar data
- Stap 3: Hardeware 1 die Lineêre Aktuator
- Stap 4: Hardeware 2 - die H -brug
- Stap 5: Hardware 3 the Control Electronics (Arduino)
- Stap 6: 'Die agteruitval'
Video: Oop (fiets) graad -simulator - OpenGradeSIM: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:25
Inleiding
'N Sekere bekende Amerikaanse fiksheidsonderneming (Wahoo) het onlangs 'n wonderlike binnenshuise oefenhulp aangebied wat die voorkant van die fiets op die turbo -afrigter verhoog en laat sak volgens die gesimuleerde graad van die heuwel waarop die gebruiker ry (die Kickr Climb).
Dit lyk ongelooflik, maar dit is ongelukkig nie vir ons almal beskikbaar nie, want u benodig 1) 'n uitstekende Wahoo -afrigter en 2) £ 500 kontant om dit van u te maak.
Ek het 'n sleutelbeen gebreek (het nooit 'n fietsryer op 'n bergfiets gesit nie), so ek het meer kilometers op die afrigter gehad en meer tyd gehad om te dink en het gedink dit kan 'n prettige projek wees.
Die kommersiële eenheid simuleer -5% tot +20%, so ek wou daaraan kom, maar op 10% van die begroting!
Dit is ontwerp rondom my Tacx Neo, maar enige afrigter wat sy krag- en spoeddata via ANT+ of BLE uitsaai, kan aan die werk gesit word (ek reken!).
Aangesien die wielbasis op my padfiets presies 1000 mm meet, moet ek die vurke met 200 mm lig om 20% te simuleer (sien foto), sodat 'n 200 mm lineêre aktuator dit sou doen. Die gewig van die fiets + ruiter sal waarskynlik nie 100kg oorskry nie, en aangesien dit tussen die asse versprei word en die meeste op die rug is, sal 750N 75kg lig en behoort dit goed te wees. Vinniger aandrywers is beskikbaar vir meer geld, maar hierdie een kos my ongeveer £ 20 en bestuur 10 mm/sek. Aktuators met potensiometers wat as eenvoudige servo's gebruik kan word, is ook 2 tot 3 keer duurder.
Voorrade
3D -druk (PLA of ABSetc) van die deur -asadapterdeel:
100 mm van 3/4 duim 10 swg aluminium buisvoorraad (vir 'n deurasraam)
80 mm van 6 mm vlekvrye staal staafvoorraad
3D -druk (PLA of ABSetc) van die skoen vir die lineêre aktuatordeel:
3D-druk van die koffer vir die H-brug
3D -afdruk van die koffer vir Arduino (weergawe 1 met bedieningspaneel) https://www.thingiverse.com/thing:3984911 (weergawe 2 soos getoon (https://www.thingiverse.com/thing:3995976)
Lasergesnyde stuk van 3 mm helder akriel 32 x 38 mm om te voorkom dat u deur die elektronika sweet (dit was nie ideaal nie).
'N Paar bloedblokke (aangepas om die remblokkies in te laat) om te voorkom dat u per ongeluk die remkrag suiers uit u Shimano -skyfremme druk in u entoesiasme
Lineêre aktuator 750N 200 mm reis bv. Al03 mini lineêre aktuators vanaf
L298N H -brug (soos:
Arduino Nano IoT 33 www.rapidonline.com bestel 73-4863
2 sleutel membraan sleutelbord bv.
IIC I2C Logic Level Converter Bi-directional Module 5V tot 3.3V Vir Arduino bv
12V 3A DC -kragtoevoer - die vir LED -beligting werk uitstekend!
NPE CABLE Ant+ tot BLE brug
3D -drukbare snit vir die CABLE -brug
1.3 OLED LCD -skermmodule met IIC I2C -koppelvlak 128x32 3.3V
Stap 1: 'n paar wiskunde
Ons moet die helling wat gesimuleer word, bereken. Ek het gehoop dat die afrigter hierdie data sou adverteer tesame met spoed, krag, kadens, ens. Maar die afrigter stel eenvoudig weerstand in om die kragopbrengs te handhaaf volgens die sagteware op die tablet, rekenaar ens wat gebruik word om dit te beheer. Ek het geen manier gehad om die 'gesimuleerde graad' maklik van die sagteware vas te lê nie, so ek sou agteruit moes werk …
Die kragte wat op die fiets en die ruiter inwerk, is 'n kombinasie van weerstandsverliese en die krag wat nodig is om die heuwel te beklim. Die afrigter rapporteer spoed en krag. As ons die weerstandsverliese teen 'n gegewe snelheid kan vind, word die oorblywende krag gebruik om die heuwel te beklim. Die krag om op te klim hang af van die gewig van die fiets en die ruiter en die stygingstempo, sodat ons kan terugkeer na die helling.
Eerstens het ek die wonderlike https://bikecalculator.com gebruik om 'n paar datapunte vir weerstandsverlies by tipiese snelhede te vind. Toe verander ek die spoeddomein na 'n lineêre verband en vind die lyn wat die beste pas. Deur die vergelyking van die lyn te neem, kan ons nou krag (W) bereken van weerstand = (0.0102*(Speedkmh^2.8))+9.428.
Neem die krag van weerstand uit die gemete krag om die krag van 'klim' te gee.
Ons ken die stygingsnelheid in km/uur en skakel dit om in SI -eenhede van m/s (deel met 3,6).
Helling word gevind uit: Helling (%) = ((PowerClimbing/(WeightKg*g))/Speed)*100
waar versnelling van vryval g = 9,8m/s/s of 9,8 N/kg
Stap 2: Kry 'n paar data
Die hellingberekening vereis spoed en krag. Ek het 'n Arduino Nano 33 IoT gebruik om via BLE aan die afrigter te koppel om dit te ontvang. Ek het aanvanklik baie vasgeval, aangesien die huidige weergawe van die 1.1.1.2 -weergawe van die oorspronklike ArduinoBLE -biblioteek vir hierdie module geen verifikasie hanteer nie, wat beteken dat die meeste (?) Kommersiële BLE -sensors nie daarmee kan koppel nie.
Die oplossing was om 'n NPE-kabel ANT+ na BLE-brug te gebruik (https://npe-inc.com/cableinfo/) wat die ingeboude BLE van die afrigter gratis hou sodat die oefenprogram kan kommunikeer en geen verifikasie op die BLE vereis nie kant.
Die BLE -kragkenmerk is redelik eenvoudig, aangesien die krag in watt in die tweede en derde grepe van die gestuurde data as 'n 16 -bis -heelgetal (klein endiaan, dws die minste betekenisvolle oktet) voorkom. Ek het 'n bewegende gemiddelde filter toegepas om 'n gemiddelde krag van 3 te gee - net soos my fietsrekenaar toon - aangesien dit minder wisselvallig is.
as (powerCharacteristic.valueUpdated ()) {
// Definieer 'n skikking vir die waarde uint8_t holdpowervalues [6] = {0, 0, 0, 0, 0, 0}; // Lees waarde in skikking powerCharacteristic.readValue (holdpowervalues, 6); // Krag word teruggegee as watt op plek 2 en 3 (loc 0 en 1 is 8 bit vlae) byte rawpowerValue2 = holdpowervalues [2]; // krag minste sig byte in HEX byte rawpowerValue3 = holdpowervalues [3]; // krag die meeste sig byte in HEX lang rawpowerTotal = (rawpowerValue2 + (rawpowerValue3 * 256)); // Gebruik 'n bewegende gemiddelde filter om '3s power' powerTrainer = movingAverageFilter_power.process (rawpowerTotal) te gee;
Die BLE -spoedkenmerk (Fietssnelheid en kadens) is een van die dinge wat jou laat wonder wat die SIG op aarde gerook het toe hulle die spesifikasie geskryf het.
Die kenmerk gee 'n 16 -byte skikking terug wat geen snelheid of kadens bevat nie. In plaas daarvan kry u wielomwentelinge en krukomwentelinge (totale) en tyd sedert die laaste gebeurtenis in 1024ste van 'n sekonde. So meer wiskunde dan. O, en die grepe is nie altyd teenwoordig nie, so daar is 'n vlagbyte aan die begin. O, en die grepe is min endiese HEX, dus moet u agteruit lees deur die tweede byte te vermenigvuldig met 256, derde met 65536, ens. Om spoed te vind, moet u 'n standaard fietswielomtrek aanneem om afstand te weet ….
as (speedCharacteristic.valueUpdated ()) {
// Hierdie waarde benodig 'n 16 byte skikking uint8_t holdvalues [16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Maar ek gaan net die eerste 7 speedCharacteristic.readValue (holdvalues, 7) lees; byte rawValue0 = houwaardes [0]; // binêre vlae 8 bit int byte rawValue1 = holdvalues [1]; // die minste beduidende bytes in HEX -byte rawValue2 = houwaardes [2]; // omwentelinge volgende belangrikste byte in HEX -byte rawValue3 = houwaardes [3]; // omwentelinge volgende belangrikste byte in HEX -byte rawValue4 = houwaardes [4]; // revolusies die belangrikste byte in HEX -byte rawValue5 = houwaardes [5]; // tyd sedert die laaste wielgebeurtenis die minste sigbyte byte rawValue6 = holdvalues [6]; // tyd sedert die laaste wielgebeurtenis die meeste sigbyte as (firstData) {// Kry kumulatiewe wielomwentelinge as klein endiaanse heks in loc 2, 3 en 4 (minste betekenisvolle oktet eerste) WheelRevs1 = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); // Kry tyd sedert die laaste wielgebeurtenis in 1024ste van 'n tweede tyd_1 = (rawValue5 + (rawValue6 * 256)); firstData = vals; } anders {// Kry tweede stel data lang WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); lang TimeTemp = (rawValue5 + (rawValue6 * 256)); as (WheelRevsTemp> WheelRevs1) {// maak seker dat die fiets beweeg WheelRevs2 = WheelRevsTemp; Time_2 = TimeTemp; firstData = waar;}
// Vind afstandsverskil in cm en skakel om na km vlotterafstandTravelled = ((WheelRevs2 - WheelRevs1) * wheelCircCM);
dryf kmTravelled = distanceTravelled / 1000000;
// Vind tyd in 1024ste van 'n sekonde en skakel oor na ure
float timeDifference = (Tyd_2 - Tyd_1); float timeSecs = timeDifference / 1024; float timeHrs = timeSecs / 3600;
// Vind spoed kmh
spoedKMH = (kmTravelled / timeHrs);
Die Arduino -skets word aangebied by GitHub (https://github.com/mockendon/opengradesim).
Stap 3: Hardeware 1 die Lineêre Aktuator
Die deuras op my skyfrem -fiets bied 'n 19,2 mm -as om die 12 mm -as met 100 mm tussen die vurke skoon te maak.
Voorraad 3/4 duim 10swg aluminium buis pas perfek en 'n goeie ou genaamd Dave op eBay (https://www.ebay.co.uk/str/aluminiumonline) word voorsien en sny dit vir my vir 'n paar pond in lengte.
Die aandrywer het 'n staaf van 20 mm met 'n gat van 6 mm, sodat die 3D -gedrukte deel die aluminiumbuis verbind met 'n staalstaaf van 6 mm en omdat die kragte 90% kompressie het, is sommige PLA / ABS die uitdaging.
As u 'n standaard opstelling vir vinnige vrystellings uitvoer, sou iets soos hierdie (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) dit vermy om hierdie komponent te herontwerp.
Die bagasieruim is ontwerp om in die raiser -blok wat by my Tacx -afrigter voorsien word, te pas, maar kan waarskynlik in baie soortgelyke raisers pas, of u kan die TinkerCad -lêer net aanpas by u behoefte.
Stap 4: Hardeware 2 - die H -brug
Hierdie L298N H -brugbord wat baie gereeld aanlyn voorkom, het 'n ingeboude 5V -reguleerder wat ideaal is om die Arduino van die 12V -kragtoevoer wat nodig is vir die lineêre aktuator, aan te dryf. Ongelukkig is die Arduino Nano IoT -bord 3.3V -sein, daarom is die behoefte aan 'n logiese vlakomskakelaar (of 'n optoisolator, aangesien die seine slegs in die rigting is).
Die omhulsel is ontwerp om die kragverbindings wat algemeen gebruik word in LED -beligtings, te aanvaar. Ek het 'n USB -verlengkabel geslag om dit maklik te maak om die Arduino -hoofeenheid maklik aan / uit te skakel, en ek sou die kragdrade vir die 3.3V -sein gebruik, maar ek sou dit eerlik te kenne gee. haat iemand om hul USB -poorte of randapparatuur te braai deur dit per ongeluk aan te sluit!
Stap 5: Hardware 3 the Control Electronics (Arduino)
Die omhulsel van die Arduino OLED en logika -omskakelaar het 'n standaard Garmin -stylhouer van 1/2 draai aan die agterkant, sodat dit veilig op die fiets gemonteer kan word. Met 'n 'voorkant' -houer kan die eenheid op of af gekantel word na' nul ', die versnellingsmeterposisie of 'n reël kode net om outomaties te begin, sou maklik bygevoeg kan word.
Die omhulsel het 'n plek vir 'n membraantoetsenbord - dit word gebruik om die gekombineerde ryer- en fietsgewig in te stel. U kan dit net programmaties stel, veral as u nie 'n afrigter met iemand deel nie.
Dit kan goed wees om 'n 'handmatige' modus te implementeer. Miskien kan die druk op beide knoppies 'n handmatige modus begin, en dan kan die knoppies die helling verhoog / verminder. Ek sal dit by die taaklys voeg!
Die STL -lêer van die saak is weer beskikbaar op Thingiverse (sien die afdeling benodigdhede vir 'n skakel).
Die Arduino -skets word aangebied by GitHub (https://github.com/mockendon/opengradesim).
U kan 'n netjiese snit vir u CABLE -brug hier druk
Stap 6: 'Die agteruitval'
Baie mense het die kwessie van die vryf van die agterkant na vore gebring terwyl die fiets beweeg. Sommige afrigters het 'n as wat beweeg (soos die Kickr), maar baie nie.
Tans is my beste oplossing om 'n paar standaard 61800-2RS diep groeflagers (ongeveer £ 2 elk) op die snelvrystellingsadapters te monteer en dan die deur-as-uitvalle hierop te monteer (sien foto's) met 'n te groot QR-spies
Die laers benodig 'n dun tussenring tussen die adapter en die lager, bv. M12 16mm 0.3mm.
Hulle pas perfek en draai onafhanklik van die afrigter met die fiets en die spies.
Op die oomblik verander dit die offset aan die dryfkant met 'n paar mm, sodat u weer moet indekseer
Ek ontwerp pasgemaakte onderdele (sien pdf-plan) om te masjien (op die draaibank van my toekomstige swaer as hy 'n uur het om te help!). Hierdie is nog nie getoets nie !!! Maar om 1 mm van die binneste oppervlak van die QR -adapter aan die kant van die aandrywing te maal, is 'n vinnige oplossing sonder spesiale gereedskap;)
Aanbeveel:
DIY binnenshuise fiets -afrigter: 5 stappe
DIY binnenshuise fiets -afrigter: inleiding Hierdie projek het begin as 'n eenvoudige aanpassing van 'n Schwinn IC Elite binnefiets wat 'n eenvoudige skroef en viltblokkies gebruik vir die weerstandsinstellings. Die probleem wat ek wou oplos, was dat die steek van die skroef te groot was, dus die reikwydte
Beheer kragtige elektriese skaatsplank-e-fiets 350W DC-motor met Arduino en BTS7960b: 9 stappe
Beheer kragtige elektriese skaatsplank-e-fiets 350W DC-motor met behulp van Arduino en BTS7960b: in hierdie tutoriaal gaan ons leer hoe om 'n DC-motor te bestuur met behulp van Arduino en DC bestuurder bts7960b. Die motor kan 'n 350W of net 'n klein speelgoed arduino DC motor wees solank sy krag nie die BTS7960b -bestuurder se maksimum stroom oorskry nie. Kyk na die video
CD4017-gebaseerde multifunksionele fiets-agtergrond: 15 stappe
CD4017-gebaseerde multifunksionele fiets-agterlig: hierdie stroombaan word gemaak deur 'n baie algemene CD4017 LED-stroombaan, die sogenaamde LED-chaser, toe te pas.Maar dit kan verskillende LED-flikkeringsmetodes ondersteun deur beheerkabels op verskillende maniere aan te sluit.Miskien kan dit as fiets-agterlig of visuele aanwyser
DIY Light Barrier Alarm System met 'n industriële graad PLC (Controllino): 5 stappe
DIY Light Barrier Alarm System Met 'n Industrial Grade PLC (Controllino): In hierdie projek sal ek jou wys hoe ek 'n PLC (die Controllino) gekombineer het met 'n ligversperring, 'n sirene, 'n rietskakelaar en 'n stroboscooplig om te skep 'n werklik robuuste werkende alarm-/sekuriteitstelsel wat indringers maklik sal afskrik. L
Graad van gebraaide infrarooi ontleder vir koffiebranders: 13 stappe (met foto's)
Graad van gebraaide infrarooi ontleder vir koffiebranders: inleiding Koffie is 'n drank wat wêreldwyd verbruik word vir sy sensoriese en funksionele eienskappe. Koffie se smaak, aroma, kafeïen en antioksidantinhoud is slegs 'n paar eienskappe wat die koffiebedryf so suksesvol gemaak het. Terwyl die g