
Tartalomjegyzék:
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:47




Bevezetés
Egy jól ismert amerikai fitneszcég (Wahoo) nemrégiben bemutatott egy nagyszerű beltéri edzőeszközt, amely megemeli és leengedi a kerékpár elülső részét a turbóedzőn a felhasználó által szimulált dombvonal szerint (a Kickr Climb).
Elképesztően néz ki, de sajnos ez nem áll mindannyiunk rendelkezésére, mivel szüksége lesz 1) a legmagasabb szintű Wahoo edzőre és 2) 500 font készpénzre.
Eltörtem a kulcscsontomat (soha nem tettem fel országúti kerékpárosokat hegyi kerékpárra), így több mérföldem volt az edzőn, és több időm volt a bütykölésre, és úgy gondoltam, hogy ez egy szórakoztató projekt lehet.
A kereskedelmi egység -5% -tól +20% -ig szimulál, ezért közel akartam kerülni ehhez, de a költségvetés 10% -án!
Ezt a Tacx Neo -m köré terveztem, de minden olyan edző, amely ANT+ vagy BLE -n keresztül sugározza teljesítmény- és sebességadatait, működésbe hozható (gondolom!).
Mivel az országúti biciklim tengelytávja pontosan 1000 mm, a villákat 200 mm -rel kell felemelnem, hogy 20% -ot szimulálhassak (lásd a képen), így egy 200 mm -es lineáris működtető is megtenné. A kerékpár + versenyző súlya valószínűleg nem haladja meg a 100 kg -ot, és mivel ez eloszlik a tengelyek között, és a legtöbb hátul van, a 750N 75 kg -ot emel, és rendben kell lennie. Gyorsabb szelepmozgatók több pénzért kaphatók, de ez körülbelül 20 fontba került, és 10 mm/sec sebességgel működik. Az egyszerű szervóként használható potenciométeres hajtóművek szintén 2-3 -szor drágábbak.
Kellékek
Az átmenő tengely adapter részének 3D nyomtatása (PLA vagy ABSetc):
100 mm 3/4 hüvelykes 10 swg alumínium csőállomány (átmenő tengely kerethez)
80 mm -es 6 mm -es rozsdamentes acél rúd
A cipő 3D nyomtatása (PLA vagy ABSetc) a lineáris működtető részhez:
A H-híd tokjának 3D nyomtatása
Az Arduino tok 3D nyomtatása (1. verzió billentyűzettel)
Lézervágott darab 3 mm átlátszó, 32 x 38 mm -es akrilból, hogy ne izzadjon az elektronika (ez nem ideális).
Néhány vérzőblokk (a betétek behagyására alkalmas), hogy megakadályozza, hogy lelkesedésében véletlenül kiszorítsa a féknyereg dugattyúit a Shimano tárcsafékből
Lineáris működtető 750N 200 mm-es út, pl. Al03 Mini lineáris működtető a
L298N H híd (például:
Arduino Nano IoT 33 www.rapidonline.com rendelés 73-4863
2 gombos membrán billentyűzet, pl.
IIC I2C logikai szintváltó kétirányú modul 5V-3.3V Arduino számára, pl.
12V 3A egyenáramú tápegység - a LED -es világításhoz használhatók nagyszerűen működnek!
NPE CABLE Ant+-BLE híd
3D nyomtatható klip a CABLE hídhoz
1,3 OLED LCD kijelző modul IIC I2C interfésszel 128x32 3.3V
Lépés: Néhány matematika

Ki kell számolnunk a szimulálandó lejtést. Reméltem, hogy a tréner ezeket az adatokat a sebességgel, az erővel, a ritmussal stb. Együtt reklámozza, azonban a tréner egyszerűen ellenállást állít fel a teljesítmény fenntartására a táblagépen, számítógépen stb. Használt szoftver szerint. Nem volt módom arra, hogy a szoftverből könnyen elkapjam a „szimulált osztályzatot”, így visszafelé kell dolgoznom…
A kerékpárra és a versenyzőre ható erők az ellenálló veszteségek és a domb megmászásához szükséges erő kombinációja. Az edző jelentést tesz a sebességről és az erőről. Ha meg tudjuk találni az ellenállási veszteségeket egy adott sebességnél, akkor a fennmaradó teljesítményt a domb megmászására fordítjuk. A mászás ereje a kerékpár és a versenyző súlyától, valamint az emelkedési sebességtől függ, és így visszatérhetünk a lejtőhöz.
Először a lenyűgöző https://bikecalculator.com weboldalon találtam néhány adatpontot az ellenállásos teljesítményveszteséghez tipikus sebességnél. Ezután átalakítottam a sebességtartományt, hogy lineáris kapcsolatot hozzon létre, és megtaláltam a legjobban illeszkedő vonalat. A vonal egyenletét figyelembe véve most kiszámíthatjuk a teljesítményt (W) az ellenállásból = (0,0102*(Speedkmh^2,8))+9,428.
Vegye ki az ellenállásból származó erőt a mért teljesítményből, és adja meg a „mászás” erejét.
Ismerjük az emelkedési sebességet km/h -ban, és ezt m/s SI -egységgé alakítjuk (osztjuk 3,6 -tal).
A lejtést a következőből találja: Incline (%) = ((PowerClimbing/(WeightKg*g))/Speed)*100
ahol a szabadesés gyorsulása g = 9,8 m/s/s vagy 9,8 N/kg
2. lépés: Adatok beszerzése

A dőlésszámítás sebességet és teljesítményt igényel. Egy Arduino Nano 33 IoT -t használtam, hogy a BLE -n keresztül csatlakozzam a trénerhez, hogy megkapjam ezt. Kezdetben nagyon elakadtam, mivel a natív ArduinoBLE könyvtár jelenlegi v.1.1.2 verziója ehhez a modulhoz semmilyen formában nem kezeli a hitelesítést, ami azt jelenti, hogy a legtöbb (?) Kereskedelmi BLE érzékelő nem párosul vele.
A megoldás az volt, hogy egy NPE kábel ANT+ BLE hidat (https://npe-inc.com/cableinfo/) használtak, amely a tréner beépített BLE-jét szabadon tartja az oktatóalkalmazás számára, és nem igényel hitelesítést a BLE-n oldal.
A BLE teljesítményjellemzője meglehetősen egyszerű, mivel a wattban megadott teljesítményt az átvitt adatok második és harmadik bájtja tartalmazza, 16 bites egész számként (kis endián, azaz először a legkevésbé jelentős oktett). Mozgó átlag szűrőt alkalmaztam, hogy 3s átlagos teljesítményt nyújtsak - ahogy a kerékpáros számítógépem mutatja -, mivel ez kevésbé szabálytalan.
if (powerCharacteristic.valueUpdated ()) {
// Tömb definiálása az uint8_t holdpowervalues értékhez [6] = {0, 0, 0, 0, 0, 0}; // Érték olvasása tömbbe powerCharacteristic.readValue (holdpowervalues, 6); // A teljesítményt wattként adják vissza a 2. és 3. helyen (a 0 és az 1 8 bites zászlók) byte rawpowerValue2 = holdpowervalues [2]; // teljesítmény legkisebb szig bájt a HEX bájtban rawpowerValue3 = holdpowervalues [3]; // a legtöbb szig bájt a HEX -ben hosszú rawpowerTotal = (rawpowerValue2 + (rawpowerValue3 * 256)); // Mozgó átlag szűrő használatával adja meg a '3s power' powerTrainer = mozgóAverageFilter_power.process (rawpowerTotal);
A BLE sebességjellemző (Cycling Speed and Cadence) egyike azoknak a dolgoknak, amelyek elgondolkodtatnak azon, hogy mi az ördögben dohányzott a SIG, amikor megírták a specifikációt.
A Characteristic egy 16 bájtos tömböt ad vissza, amely nem tartalmaz sem sebességet, sem ütemet. Ehelyett 1024 másodperc alatt kapod meg a kerékfordulatokat és a forgattyús fordulatokat (összes), valamint az utolsó eseményadatok óta eltelt időt. Akkor több matek. Ja, és a bájtok nem mindig vannak jelen, így van egy zászló bájt az elején. Ja, és a bájtok kis endikus HEX -ek, ezért visszafelé kell olvasni, megszorozni a második bájtot 256 -mal, a harmadikat 65536 -al stb., Majd összeadni őket. A sebesség megtalálásához feltételezni kell a kerékpár szokásos kerületét, hogy megtudja a távolságot.
if (speedCharacteristic.valueUpdated ()) {
// Ennek az értéknek 16 bájtos tömbre van szüksége uint8_t holdvalues [16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // De csak az első 7 speedCharacteristic.readValue értéket fogom elolvasni (holdvalues, 7); bájt rawValue0 = holdvalues [0]; // bináris zászlók 8 bites int byte rawValue1 = holdvalues [1]; // fordulatok legkevésbé jelentős bájtja a HEX bájtban rawValue2 = holdvalues [2]; // fordulat a következő legjelentősebb bájt a HEX bájtban rawValue3 = holdvalues [3]; // fordulat a következő legjelentősebb bájt a HEX bájtban rawValue4 = holdvalues [4]; // fordulatok legjelentősebb bájtja a HEX bájtban rawValue5 = holdvalues [5]; // a legutóbbi esemény óta eltelt idő legkisebb szig bájt rawValue6 = holdvalues [6]; // a legutóbbi kerékesemény óta eltelt idő a legtöbb szig bájtot if (firstData) {// Az összesített kerékfordulatszámok lekérése kis endiánhexamént a 2., 3. és 4. helyen (először a legkevésbé jelentős oktett) WheelRevs1 = (rawValue1 + (rawValue2 * 256) + (nyersérték3 * 65536) + (nyersérték4 * 16777216)); // Az utolsó kerék esemény óta eltelt idő 1024 másodperc múlva Time_1 = (rawValue5 + (rawValue6 * 256)); firstData = hamis; } else {// Második adathalmaz megszerzése WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); hosszú IdőTemp = (nyersérték5 + (nyersérték6 * 256)); if (WheelRevsTemp> WheelRevs1) {// győződjön meg arról, hogy a kerékpár mozog WheelRevs2 = WheelRevsTemp; Time_2 = TimeTemp; firstData = igaz;}
// Keresse meg a távolságkülönbséget cm -ben, és konvertálja km -re float distanceTravelled = (((WheelRevs2 - WheelRevs1) * wheelCircCM);
float kmTravelled = distanceTravelled / 1000000;
// Találjon időt 1024 másodperc alatt, és konvertálja órákra
float timeDifference = (Time_2 - Time_1); float timeSecs = timeDifference / 1024; float timeHrs = timeSecs / 3600;
// Keresse meg a kmh sebességet
sebességKMH = (kmTravelled / timeHrs);
Az Arduino vázlat a GitHub webhelyen található (https://github.com/mockendon/opengradesim).
3. lépés: Hardver 1 a lineáris működtető



A tárcsafékes országúti kerékpárom átmenő tengelye egy 19,2 mm -es tengelyt határoz meg a 12 mm -es átmenő tengely tisztítására, 100 mm -rel a villák között.
A készlet 3/4 hüvelykes 10swg alumínium cső tökéletesen illeszkedik, és egy szép denevér, Dave az ebay -en (https://www.ebay.co.uk/str/aluminiumonline) szállított, és néhány kilóért vágja nekem.
A hajtómű 20 mm -es rúddal és 6 mm -es lyukkal rendelkezik, így a 3D nyomtatott rész összekapcsolja az alumíniumcsövet egy 6 mm -es acélrúddal, és mivel az erők 90% -os összenyomás, néhány PLA / ABS megfelel a kihívásnak.
Ha szabványos gyorskioldó beállítást futtat, akkor valami ilyesmi (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) elkerülheti az összetevő újratervezését.
A csomagtartót úgy tervezték, hogy illeszkedjen a Tacx tréneremhez mellékelt emelő blokkhoz, de valószínűleg sok hasonló emelőbe illeszkedik, vagy egyszerűen szerkesztheti a TinkerCad fájlt az Ön igényei szerint.
4. lépés: 2. hardver - a H -híd



Ezek az online nagyon gyakori L298N H hídtáblák beépített 5 V -os szabályozóval rendelkeznek, amely kiválóan alkalmas az Arduino áramellátására a lineáris működtetőhöz szükséges 12 V -os tápegységről. Sajnos az Arduino Nano IoT kártya 3.3V jelzésű, ezért logikai szintű konverterre (vagy optoizolátorra) van szükség, mivel a jelek csak egyirányúak.
A tokot úgy tervezték, hogy elfogadja a LED -es világítási alkalmazásokban általánosan használt tápcsatlakozókat. Elvágtam egy USB hosszabbító kábelt, hogy lehetővé tegyem az Arduino fejegység egyszerű csatlakoztatását / leválasztását, és bár biztos voltam benne, hogy a tápvezetékeket használom az áramellátáshoz, és az adatvezetékeket a 3,3 V -os jelzéshez, őszintén azt tanácsolom ELLEN. utálok valakit, hogy megsütje az USB -portjait vagy perifériáit, ha véletlenül csatlakoztatja őket!
5. lépés: 3. hardver, a vezérlőelektronika (Arduino)



Az Arduino OLED és a logikai szintváltó tokja hátul egy szabványos, 1/2 fordulatos Garmin stílusú rögzítéssel rendelkezik, hogy biztonságosan rögzíthető legyen a kerékpárra. Az „elülső” rögzítés lehetővé teszi az egység felfelé vagy lefelé billentését a gyorsulásmérő pozíciójába, vagy egyszerűen hozzáadható a kódsor az automatikus nullához.
A toknak membrán billentyűzete van - ez a vezető és a kerékpár együttes súlyának beállítására szolgál. Ezt csak programszerűen állíthatja be, különösen, ha senkivel nem oszt meg edzőt.
Jó lehet egy „kézi” módot megvalósítani. Talán mindkét gomb megnyomása kézi üzemmódot indíthat, majd a gombok növelhetik / csökkenthetik a lejtést. Ezt hozzáadom a teendők listájához!
Az ügy STL -aktája ismét elérhető a Thingiverse webhelyen (linkért lásd a kellékek részt).
Az Arduino vázlat a GitHub webhelyen található (https://github.com/mockendon/opengradesim).
Innen kinyomtathat egy ügyes kis klipet a CABLE hídhoz
6. lépés: „A hátsó kiesések”



Sokan felvetették a hátsó kiesés dörzsölésének kérdését a kerékpár mozgása közben. Néhány oktatónak van tengelye, amely mozog (mint a Kickr), de soknak nincs.
Jelenleg a legjobb megoldás számomra, ha néhány szabványos 61800-2RS mélyhornyú csapágyat (kb. 2 font) szerelek a gyorskioldó adapterekre, majd az átmenő tengelyes kivezetéseket ezekre (lásd a képeket) egy nagyobb méretű QR-nyárssal rögzítem
A csapágyaknak vékony alátét alátétre van szükségük, pl. M12 16 mm 0,3 mm az adapter és a csapágy között.
Tökéletesen illeszkednek, és az edzőtől függetlenül forognak a kerékpárral és a nyárssal.
Jelenleg ez néhány mm-rel megváltoztatja a meghajtóoldali eltolást, így újra kell indexelni
Egyedi alkatrészeket tervezek (lásd a pdf tervet), amelyeket meg kell gépelni (a leendő sógorom esztergáján, amikor van egy órája a segítségre!). Ezeket még nem tesztelték !!! De az 1 mm -es csiszolás a készlethajtó oldali QR -adapter belső felületéről gyors megoldás speciális szerszámok nélkül;)
Ajánlott:
Jelenlegi módú oszcillátor tervezése D osztályú audioerősítőkhöz: 6 lépés

Jelenlegi módú oszcillátor tervezése a D osztályú audioerősítőkhöz: Az elmúlt években a D osztályú audioerősítők váltak a hordozható audiorendszerek, például az MP3 és a mobiltelefonok előnyös megoldásává nagy hatékonyságuk és alacsony energiafogyasztásuk miatt. Az oszcillátor a D osztály fontos része
HiFi hangszórók - Útmutató az első osztályú építéshez: 8 lépés (képekkel)

HiFi hangszórók - Útmutató az első osztályú felépítéshez: Úgy döntöttem, hogy megírom ezt az útmutatót, miután túl sok időt töltöttem azzal, hogy jó minőségű, teljes körű információt keressek a HiFi hangszórószekrények építéséhez, amelyek nem igényelnek nagy tapasztalatot vagy szakértelmet. Van néhány remek Instructables alrea
DIY osztályú audioerősítő: 4 lépés (képekkel)

DIY D osztályú hangerősítő: Ebben a projektben megmutatom, miért eléggé hatástalan az AB osztályú erősítő, és másrészt hogyan javítja ezt a hatékonyságot a D osztályú erősítő. A végén megmutatom, hogyan alkalmazhatjuk egy D osztályú erősítő működési elméletét egy pár
CPC osztályú szennyeződés -ellenőrző: 10 lépés

CPC osztály Polution Checker: Sziasztok, belgiumi diák vagyok, és ez az első nagy projektem az alapképzésemhez! Ez az Instructable arról szól, hogyan készítsünk légtelenítési mérőt zárt helyiségekhez, különösen az osztálytermekhez! Hallom, hogy gondolkodik, miért ez a projekt? Nos, ez az egész
DIY 2.1 AB osztályú Hi -Fi audió erősítő - 5 dollár alatt: 10 lépés (képekkel)

DIY 2.1 AB osztályú Hi -Fi audió erősítő - 5 dollár alatt: Hé mindenkinek! Ma megmutatom, hogyan építettem fel egy audioerősítőt egy 2.1 csatornás rendszerhez (bal-jobb és mélynyomó). Közel 1 hónapos kutatás, tervezés és tesztelés után jöttem rá erre a dizájnra. Ebben a tanulságosban sétálok