INHOUDSOPGAWE:

Oop (fiets) graad -simulator - OpenGradeSIM: 6 stappe
Oop (fiets) graad -simulator - OpenGradeSIM: 6 stappe

Video: Oop (fiets) graad -simulator - OpenGradeSIM: 6 stappe

Video: Oop (fiets) graad -simulator - OpenGradeSIM: 6 stappe
Video: Lesfiche 3de graad: Risicogedrag op de fiets. Opdracht A: sms'en op de fiets 2024, November
Anonim
Image
Image
Oop (fiets) graad simulator - OpenGradeSIM
Oop (fiets) graad simulator - OpenGradeSIM
Oop (fiets) graad simulator - OpenGradeSIM
Oop (fiets) graad simulator - OpenGradeSIM

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

Sommige wiskunde
Sommige 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

Kry 'n paar data
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

Hardeware 1 die Lineêre Aktuator
Hardeware 1 die Lineêre Aktuator
Hardeware 1 die Lineêre Aktuator
Hardeware 1 die Lineêre Aktuator
Hardeware 1 die Lineêre Aktuator
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

Hardeware 2 - die H -brug
Hardeware 2 - die H -brug
Hardeware 2 - die H -brug
Hardeware 2 - die H -brug
Hardeware 2 - die H -brug
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)

Hardeware 3 the Control Electronics (Arduino)
Hardeware 3 the Control Electronics (Arduino)
Hardeware 3 the Control Electronics (Arduino)
Hardeware 3 the Control Electronics (Arduino)
Hardeware 3 the Control Electronics (Arduino)
Hardeware 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'

'Die agteruitval'
'Die agteruitval'
'Die agteruitval'
'Die agteruitval'
'Die agteruitval'
'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: