Sadržaj:

Otvoreni (biciklistički) simulator ocjene - OpenGradeSIM: 6 koraka
Otvoreni (biciklistički) simulator ocjene - OpenGradeSIM: 6 koraka

Video: Otvoreni (biciklistički) simulator ocjene - OpenGradeSIM: 6 koraka

Video: Otvoreni (biciklistički) simulator ocjene - OpenGradeSIM: 6 koraka
Video: [11] E-Bike Urlaub 2021 | letzte Etappe nach Verona - Via Claudia Augusta I'll be back 2024, Studeni
Anonim
Image
Image
Otvoreni (biciklistički) simulator ocjene - OpenGradeSIM
Otvoreni (biciklistički) simulator ocjene - OpenGradeSIM
Otvoreni (biciklistički) simulator ocjene - OpenGradeSIM
Otvoreni (biciklistički) simulator ocjene - OpenGradeSIM

Uvod

Određena poznata američka tvrtka za fitness (Wahoo) nedavno je iznijela sjajno pomagalo za vježbanje u zatvorenom koje podiže i spušta prednji dio bicikla na turbo trenažeru prema simuliranom stupnju brda kojim se korisnik vozi (Kickr Climb).

Izgleda nevjerojatno, ali nažalost ovo nije dostupno svima nama jer će vam trebati 1) vrhunski trener Wahoo i 2) 500 GBP gotovine da ovo učinite svojim.

Slomio sam ključnu kost (nikad nisam stavljao cestovnog biciklista na brdski bicikl) pa sam imao više kilometara do trenera i više vremena za petljanje i mislio sam da bi ovo mogao biti zabavan projekt.

Komercijalna jedinica simulira -5% do +20% pa sam se htio približiti tome, ali na 10% proračuna!

Ovo je osmišljeno oko mog Tacx Neo -a, ali svaki trener koji emitira svoje podatke o snazi i brzini putem ANT+ ili BLE -a mogao bi raditi (računam!).

Budući da međuosovinsko rastojanje na mome cestovnom biciklu ima točno 1000 mm, morao bih podići vilice za 200 mm da simuliram 20% (vidi sliku), pa bi linearni pogon od 200 mm bio dovoljan. Težina bicikla i vozača vjerojatno neće premašiti 100 kg, a budući da je to raspoređeno po osovinama, a većina je na stražnjoj strani, 750N će podići 75 kg i trebalo bi biti u redu. Brži aktuatori dostupni su za više novca, ali ovaj me koštao oko 20 funti i upravlja 10 mm/s. Pokretači s potenciometrima koji se mogu koristiti kao jednostavni servo pogoni također su 2 do 3 puta skuplji.

Pribor

3D ispis (PLA ili ABSetc) dijela adaptera kroz osovinu:

100 mm aluminijske cijevi od 10 swg od 3/4 inča (za okvir s osovinom)

80 mm od šipke od nehrđajućeg čelika debljine 6 mm

3D ispis (PLA ili ABSetc) cipele za dio linearnog pogona:

3D ispis kućišta za H-most

3D ispis kućišta za Arduino (verzija 1 s tipkovnicom) https://www.thingiverse.com/thing:3984911 (verzija 2 kao što je prikazano (https://www.thingiverse.com/thing:3995976)

Laserski izrezani komad od 3 mm prozirnog akrila 32 x 38 mm kako se ne biste znojili po cijeloj elektronici (to nije idealno).

Neki blokovi za krvarenje (prilagođeni da ostavljaju uloške postavljene) kako bi spriječili slučajno guranje klipova čeljusti iz vaših Shimano disk kočnica u vašem entuzijazmu

Linearni aktuator 750N 200 mm hod, npr. Al03 Mini linearni aktuatori sa

L298N H most (poput:

Arduino Nano IoT 33 www.rapidonline.com narudžba 73-4863

Membrana tipkovnica s 2 ključa, npr.

IIC I2C Logički pretvarač razine dvosmjerni modul 5V do 3.3V Za Arduino npr.

12V 3A DC napajanje - oni za LED rasvjetu odlično rade!

NPE CABLE Ant+ na BLE most

Isječak za 3D ispis za CABLE bridge

1.3 OLED LCD zaslon modul s IIC I2C sučeljem 128x32 3.3V

Korak 1: Malo matematike

Malo matematike
Malo matematike

Moramo izračunati nagib koji se simulira. Nadao sam se da će trener oglašavati ove podatke zajedno s brzinom, snagom, ritmom itd. Međutim, trener jednostavno postavlja otpor za održavanje izlazne snage prema softveru na tabletu, računalu itd. Koji se koristi za kontrolu. Nisam imao načina da jednostavno uhvatim "simuliranu ocjenu" iz softvera pa sam morao raditi unatrag …

Sile koje djeluju na bicikl i vozača kombinacija su otpornih gubitaka i snage potrebne za uspon na brdo. Trener izvještava o brzini i snazi. Ako možemo pronaći otporne gubitke pri datoj brzini, tada se preostala snaga koristi za uspon na brdo. Snaga penjanja ovisi o težini bicikla i vozača i brzini uspona, pa se možemo vratiti na uspon.

Prvo sam upotrijebio nevjerojatan https://bikecalculator.com kako bih pronašao neke podatkovne točke za gubitak otpornosti pri tipičnim brzinama. Zatim sam transformirao domenu brzine u linearni odnos i pronašao liniju koja najbolje pristaje. Uzimajući jednadžbu crte sada možemo izračunati snagu (W) iz otpora = (0,0102*(Brzina kmh^2,8))+9,428.

Uzmite snagu iz otpora iz izmjerene snage kako biste dobili moć 'penjanja'.

Znamo brzinu uspona u km/h i to pretvaramo u SI jedinice m/s (podijelimo s 3,6).

Nagib se nalazi iz: Nagib (%) = ((PowerClimbing/(Težina kg*g))/Brzina)*100

gdje je ubrzanje slobodnog pada g = 9,8m/s/s ili 9,8 N/kg

Korak 2: Nabavite neke podatke

Nabavite neke podatke
Nabavite neke podatke

Izračun nagiba zahtijeva brzinu i snagu. Koristio sam Arduino Nano 33 IoT za povezivanje s trenerom putem BLE -a da primim ovo. U početku sam jako zaglavio jer trenutna verzija v.1.1.2 izvorne ArduinoBLE knjižnice za ovaj modul ne obrađuje autentifikaciju u bilo kojem obliku, što znači da se većina (?) Komercijalnih BLE senzora neće upariti s njom.

Rješenje je bilo upotrijebiti NPE kabel ANT+ na BLE most (https://npe-inc.com/cableinfo/) koji održava ugrađeni BLE trenera slobodnim za aplikaciju za vježbu i ne zahtijeva autentifikaciju na BLE-u strana.

Karakteristika snage BLE -a prilično je jasna jer je snaga u vatima sadržana u drugom i trećem bajtu prenesenih podataka kao 16 -bitni cijeli broj (mali endian, tj. Najmanji oktet prvi). Primijenio sam filtar pomičnog prosjeka kako bih dao prosječnu snagu od 3 sekunde - baš kao što pokazuje moje biciklističko računalo - jer je to manje nestabilno.

if (powerCharacteristic.valueUpdated ()) {{100} {101}

// Definiraj niz za vrijednost uint8_t holdpowervalues [6] = {0, 0, 0, 0, 0, 0}; // Očitavanje vrijednosti u nizu powerCharacteristic.readValue (holdpowervalues, 6); // Napajanje se vraća u vatima na lokacijama 2 i 3 (loc 0 i 1 su 8 bitne zastavice) byte rawpowerValue2 = holdpowervalues [2]; // snaga najmanji sig -bajt u HEX -ovom bajtu rawpowerValue3 = holdpowervalues [3]; // snaga većine sig -bajta u HEX -u dugačka rawpowerTotal = (rawpowerValue2 + (rawpowerValue3 * 256)); // Upotrijebite filtar pomičnog prosjeka za davanje powerTrainer -a snage 3s = movingAverageFilter_power.process (rawpowerTotal);

Karakteristika brzine BLE (biciklistička brzina i kadenca) jedna je od onih stvari koje vas tjeraju da se zapitate što je to SIG pušio kad su pisali specifikaciju.

Karakteristika vraća niz od 16 bajta koji ne sadrži ni brzinu ni ritam. Umjesto toga dobivate broj okretaja kotača i okretaja radilice (ukupno) i vrijeme od posljednjeg događaja u 1024 -im dijelovima sekunde. Dakle, više matematike. Oh, i bajtovi nisu uvijek prisutni pa se na početku nalazi bajt zastavice. Oh, a bajtovi su mali endian HEX pa morate čitati unatrag množeći drugi bajt sa 256, treći sa 65536 itd., A zatim ih zbrajati. Da biste pronašli brzinu, morate pretpostaviti standardni opseg kotača bicikla da biste znali udaljenost …

if (speedCharacteristic.valueUpdated ()) {{100} {101}

// Za ovu vrijednost potreban je niz od 16 bajtova uint8_t holdvalues [16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Ali ja ću pročitati samo prvih 7 speedCharacteristic.readValue (holdvalues, 7); bajt rawValue0 = holdvalues [0]; // binarne zastavice 8 bitni int bajt rawValue1 = holdvalues [1]; // okretaji najmanje značajni bajt u HEX -ovom bajtu rawValue2 = holdvalues [2]; // okretaji sljedeći najznačajniji bajt u HEX -ovom bajtu rawValue3 = holdvalues [3]; // okretaji sljedeći najznačajniji bajt u HEX -ovom bajtu rawValue4 = holdvalues [4]; // okretaji najznačajniji bajt u HEX bajtu rawValue5 = holdvalues [5]; // vrijeme od zadnjeg događaja kotača najmanje sig byte byte rawValue6 = holdvalues [6]; // vrijeme od posljednjeg događaja kotača najznačajniji bajt if (firstData) {// Dobijte kumulativne okretaje kotača kao mali endian hex u loc 2, 3 i 4 (najmanji oktet prvi) WheelRevs1 = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); // Dobijte vrijeme od posljednjeg događaja kotača u 1024 -oj sekundi Time_1 = (rawValue5 + (rawValue6 * 256)); firstData = netočno; } else {// Dohvati drugi skup podataka long WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); long TimeTemp = (rawValue5 + (rawValue6 * 256)); if (WheelRevsTemp> WheelRevs1) {// provjerite da li se bicikl kreće WheelRevs2 = WheelRevsTemp; Vrijeme_2 = Vremenska oznaka; firstData = istina;}

// Pronađite razliku udaljenosti u cm i pretvorite u km float distanceTravelled = ((WheelRevs2 - WheelRevs1) * wheelCircCM);

float kmTravelled = distanceTravelled / 1000000;

// Nađite vrijeme u 1024 -im dijelovima sekunde i pretvorite u sate

float timeDifference = (Vrijeme_2 - Vrijeme_1); float timeSecs = timeDifference / 1024; float timeHrs = timeSecs / 3600;

// Nađi brzinu kmh

brzinaKMH = (kmTravelled / timeHrs);

Arduino skica nalazi se na GitHub -u (https://github.com/mockendon/opengradesim).

Korak 3: Hardver 1 Linearni aktuator

Hardver 1 Linearni aktuator
Hardver 1 Linearni aktuator
Hardver 1 Linearni aktuator
Hardver 1 Linearni aktuator
Hardver 1 Linearni aktuator
Hardver 1 Linearni aktuator

Prolazna osovina na mome cestovnom biciklu s disk kočnicom određuje osovinu od 19,2 mm za čišćenje osovine promjera 12 mm sa 100 mm između vilica.

Aluminijska cijev od 3/4 inča 10swg savršeno se uklapa i zgodan momak zvan Dave na ebayu (https://www.ebay.co.uk/str/aluminiumonline) isporučio mi ju je i odrezao na nekoliko funti.

Pokretač ima šipku od 20 mm s rupom od 6 mm, pa 3D ispisani dio povezuje aluminijsku cijev s čeličnom šipkom od 6 mm, a budući da su sile 90% kompresije, neki PLA / ABS je izazov.

Ako pokrenete standardno postavljanje za brzo izdanje, nešto poput ovoga (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) izbjeglo bi ponovno dizajniranje ove komponente.

Prtljažnik je dizajniran tako da stane u blok za podizanje koji se isporučuje s mojim Tacx trenažerom, ali vjerojatno bi se uklopio u mnoge slične dizače ili možete jednostavno urediti datoteku TinkerCad tako da odgovara vašim zahtjevima.

Korak 4: Hardver 2 - H -most

Hardver 2 - H -most
Hardver 2 - H -most
Hardver 2 - H -most
Hardver 2 - H -most
Hardver 2 - H -most
Hardver 2 - H -most

Ove L298N H mostovske ploče koje su vrlo česte na internetu imaju ugrađen 5V regulator koji je odličan za napajanje Arduina iz 12V napajanja potrebnog za linearni pogon. Nažalost, Arduino Nano IoT ploča signalizira 3.3V, pa je potrebna pretvarač logičke razine (ili optoizolator jer su signali samo jednosmjerni).

Kućište je dizajnirano za prihvaćanje priključaka za napajanje koji se obično koriste u LED rasvjetnim aplikacijama. Zaklao sam USB produžni kabel kako bih omogućio jednostavno povezivanje / odvajanje Arduino glavne jedinice, a dok sam bio siguran da koristim vodove za napajanje i podatkovne vodove za signalizaciju od 3,3 V iskreno bih savjetovao PROTIV ovoga jer bih mrzite nekoga da isprži svoje USB priključke ili periferne uređaje greškom ih priključivši!

Korak 5: Hardver 3 Upravljačka elektronika (Arduino)

Hardver 3 Upravljačka elektronika (Arduino)
Hardver 3 Upravljačka elektronika (Arduino)
Hardver 3 Upravljačka elektronika (Arduino)
Hardver 3 Upravljačka elektronika (Arduino)
Hardver 3 Upravljačka elektronika (Arduino)
Hardver 3 Upravljačka elektronika (Arduino)

Kućište za Arduino OLED i pretvarač logičke razine ima standardni stražnji držač u Garmin stilu za 1/2 okreta na stražnjoj strani koji omogućuje sigurno postavljanje na bicikl. Montiranje "sprijeda" omogućit će jednostavno naginjanje jedinice prema gore ili dolje na "nulu", položaj mjerila akcelerometra ili redak koda samo za automatsko nuliranje na početku bilo bi lako dodati.

Kućište ima mjesto za membransku tipkovnicu - ovo se koristi za postavljanje kombinirane težine vozača i bicikla. Ovo možete jednostavno programski postaviti, posebno ako ni s kim ne dijelite trener.

Možda bi bilo lijepo implementirati 'ručni' način rada. Možda bi pritiskom na obje tipke pokrenuo ručni način rada, a zatim bi tipke mogle povećati / smanjiti nagib. Ovo ću dodati na popis obaveza!

STL datoteka slučaja ponovno je dostupna na Thingiverseu (vezu potražite u odjeljku potrošnog materijala).

Arduino skica nalazi se na GitHub -u (https://github.com/mockendon/opengradesim).

Ovdje možete ispisati uredan mali isječak za svoj CABLE most

Korak 6: "Stražnji prekidači"

'Stražnji ispusti'
'Stražnji ispusti'
'Stražnji ispusti'
'Stražnji ispusti'
'Stražnji ispusti'
'Stražnji ispusti'

Mnogi su ljudi pokrenuli pitanje ispadanja stražnjice dok se bicikl kreće. Neki treneri imaju osovinu koja se pomiče (poput Kickra), ali mnogi nemaju.

Trenutno je moje najbolje rješenje za mene montiranje nekih standardnih ležajeva s dubokim utorom 61800-2RS (oko 2 GBP svaki) na adaptere za brzo otpuštanje, a zatim na njih montirati prolazne osovine (vidi slike) s QR ražnjem veće veličine

Ležajevi trebaju tanku podlošku za podmetanje, npr. M12 16 mm 0,3 mm između adaptera i ležaja.

Savršeno pristaju i rotiraju se s biciklom i ražnjem neovisno o treneru.

Trenutno ovo mijenja pomak na strani pogona za nekoliko mm pa ćete morati ponovno indeksirati

Dizajniram prilagođene dijelove (vidi pdf plan) za obradu (na tokarskom stroju mog budućeg šogora kad ima sat vremena za pomoć!). Ovo još nije testirano !!! No, brušenje 1 mm s unutarnje površine QR adaptera sa strane pogona je brzo rješenje bez posebnih alata;)

Preporučeni: