Tartalomjegyzék:

DIY beltéri kerékpár intelligens tréner: 5 lépés
DIY beltéri kerékpár intelligens tréner: 5 lépés

Videó: DIY beltéri kerékpár intelligens tréner: 5 lépés

Videó: DIY beltéri kerékpár intelligens tréner: 5 lépés
Videó: ZöldGalamb - 33 2024, November
Anonim
DIY beltéri kerékpár intelligens tréner
DIY beltéri kerékpár intelligens tréner
DIY beltéri kerékpár intelligens tréner
DIY beltéri kerékpár intelligens tréner
DIY beltéri kerékpár intelligens tréner
DIY beltéri kerékpár intelligens tréner

Bevezetés

Ez a projekt a Schwinn IC Elite beltéri kerékpár egyszerű módosításaként kezdődött, amely egyszerű csavart és filcpárnákat használ az ellenállás beállításához. A problémát az akartam megoldani, hogy a csavar dőlésszöge túl nagy volt, így a nem pedálozástól a teljesen szabadon forgó kerékig terjedő tartomány mindössze pár fok volt az ellenállásgombon. Először a csavart M6 -ra cseréltem, de utána egy gombot kellett készítenem, akkor miért ne használhatnánk egy balra maradt NEMA 17 léptetőmotort az ellenállás megváltoztatásához? Ha már van némi elektronika, miért nem ad hozzá egy forgattyús teljesítménymérőt és egy bluetooth kapcsolatot a számítógéphez, hogy okos tréner legyen?

Ez a vártnál nehezebbnek bizonyult, mert nem volt példa arra, hogyan lehet emulálni a teljesítménymérőt egy arduino és Bluetooth segítségével. Végül körülbelül 20 órát töltöttem a BLE GATT specifikációinak programozására és értelmezésére. Remélem, hogy példamutatással segíthetek valakinek, hogy ne vesztegessen ennyi időt arra, hogy megpróbálja megérteni, mit is jelent pontosan a „Service Data AD Type Field” …

Szoftver

Az egész projekt a GitHubon található:

github.com/kswiorek/ble-ftms

Erősen javaslom a Visual Studio használatát a VisualGDB beépülő modullal, ha valami komolyabbat tervez, mint a kód másolása-beillesztése.

Ha kérdései vannak a programmal kapcsolatban, kérdezzen, tudom, hogy a minimalista megjegyzéseim nem sokat segíthetnek.

Hitelek

Köszönjük stoppi71 -nek a teljesítménymérő készítésével kapcsolatos útmutatót. A forgatókart a tervei szerint csináltam.

Kellékek:

A projekt anyagai nagyban függnek attól, hogy milyen kerékpárt módosítanak, de vannak univerzális alkatrészek.

Hajtókar:

  1. ESP32 modul
  2. HX711 ADC súlyérzékelő
  3. Nyúlásmérők
  4. MPU - giroszkóp
  5. Kis Li-Po akkumulátor (körülbelül 750mAh)
  6. Hőzsugorító hüvely
  7. A4988 Léptető
  8. 5V szabályozó
  9. Egy arduino hordós emelő
  10. 12V -os arduino tápegység

Konzol:

  1. NEMA 17 léptető (elég erősnek kell lennie,> 0,4 Nm)
  2. M6 rúd
  3. 12864 lcd
  4. WeMos LOLIN32
  5. Taktikus kapcsolók

Felszerelés

Ehhez valószínűleg csak 3D nyomtatót használhat, de sok időt takaríthat meg a tok lézeres vágásával, és PCB -ket is készíthet. A DXF és a gerber fájlok a GitHubon vannak, így helyben is megrendelheti azokat. A csavart a menetes rúdtól a motorhoz esztergagépen forgatták, és ez lehet az egyetlen probléma, mivel az alkatrésznek elég erősnek kell lennie ahhoz, hogy húzza a párnákat, de ebben a kerékpárban nincs sok hely.

Az első kerékpár készítése óta beszereztem egy marógépet, amely lehetővé teszi számomra, hogy réseket készítsek a forgattyús hajtás érzékelőihez. Kicsit megkönnyíti a ragasztást, és megvédi őket, ha valami ütközik a hajtókarhoz. (Néhányszor leestek ezek az érzékelők, így biztonságban akartam lenni.)

1. lépés: A hajtókar:

A hajtókar
A hajtókar
A hajtókar
A hajtókar
A hajtókar
A hajtókar

A legjobb, ha csak ezt az oktatóanyagot követi:

Alapvetően négy helyen kell ragasztani az érzékelőket a forgattyús hajtókarhoz, és csatlakoztatni kell őket a tábla oldalaihoz.

A megfelelő csatlakozók már megvannak, így csak a huzalpárokat kell forrasztani közvetlenül a táblán lévő nyolc párnához.

Az érzékelők csatlakoztatásához a lehető legvékonyabb vezetéket használja - a párnákat nagyon könnyű felemelni. Először fel kell ragasztani az érzékelőket, és csak annyit kell hagyni kint forrasztani, majd a többit epoxiddal lefedni. Ha ragasztás előtt megpróbál forrasztani, akkor göndör és törik.

A NYÁK összeszerelése:

  1. Helyezze az aranycsapokat alulról (a nyomokkal ellátott oldalról) az összes lyukba, kivéve az alul lévő függőlegeseket.
  2. Helyezze a három táblát (ESP32 felül, majd MPU, alul a HX711) úgy, hogy az aranycsapok mindkét lyukon átragadjanak.
  3. Forrasztja a fejléceket a tetején lévő táblákhoz
  4. Vágja le az aranycsapokat alulról. (Próbálja meg először vágni őket összeszerelés előtt, így tudja, hogy az „aranycsapjai” nem acélból vannak - így szinte lehetetlen vágni őket, és reszelni vagy őrölni kell őket)
  5. forrasztja a maradék aranycsapokat a tábla aljára.
  6. Töltse fel a hajtókar firmware -jét

Az utolsó lépés az, hogy az egész forgattyút hőzsugorító hüvelybe csomagoljuk.

Ez a módszer a tábla elkészítésére nem ideális, mivel a táblák sok helyet foglalnak el, amelyekbe más dolgokat is elfér. A legjobb az lenne, ha az összes alkatrészt közvetlenül a táblához forrasztanám, de hiányzik a készség, hogy ezeket a kis SMD -ket magam forraszthassam. Összeszerelt állapotban kell megrendelnem, és valószínűleg elkövetek néhány hibát, és végül háromszor is megrendelem, és egy évet várok, mielőtt megérkeznek.

Ha valaki képes lenne megtervezni a táblát, nagyszerű lenne, ha rendelkezne valamilyen akkumulátorvédő áramkörrel és egy érzékelővel, amely bekapcsolja az ESP -t, ha a forgattyú elindul.

FONTOS

A HX711 érzékelő alapértelmezés szerint 10 Hz -re van állítva - ez sokkal lassabb a teljesítményméréshez. Fel kell emelni a 15. csapot a tábláról, és a 16. tüskéhez kell csatlakoztatni. Ez hajtja a tűt HIGH és lehetővé teszi a 80 Hz üzemmódot. Ez a 80 Hz egyébként a teljes arduino ciklus sebességét állítja be.

Használat

Az ESP32 úgy van programozva, hogy 30 másodperc után aludjon el, ha nincs csatlakoztatva Bluetooth -eszköz. A visszakapcsoláshoz nyomja meg a reset gombot. Az érzékelők működtetése egy digitális tűből is történik, amely alvó üzemmódban LOW -ra kapcsol. Ha a könyvtárakból származó példakóddal szeretné tesztelni az érzékelőket, akkor a MAGAS tűt kell meghajtania, és várnia kell egy kicsit, mielőtt az érzékelők bekapcsolnak.

Összeszerelés után az érzékelőket úgy kell kalibrálni, hogy erő nélkül leolvassák az értéket, majd súlyozással (12 vagy 16 kg -os kettlebell -t használtam a pedálra). Ezeket az értékeket be kell írni a powerCrank kódba.

A legjobb, ha minden hajtás előtt tárcsázzuk a forgattyút - nem szabad, hogy megtárolja magát, ha valaki pedálozik, de jobb, ha nem sajnáljuk, és bekapcsoláskor csak egyszer lehet tárcsázni. Ha furcsa teljesítményszinteket észlel, ismételje meg ezt a folyamatot:

  1. Egyenesen tegye lefelé a forgatókart, amíg a lámpa villogni nem kezd.
  2. Pár másodperc múlva a lámpa égni fog - ne nyúljon hozzá
  3. Amikor a fény kialszik, az aktuális erőt új 0 -nak állítja be.

Ha csak a forgattyút szeretné használni, konzol nélkül, akkor a kód itt található a githubon. Minden más ugyanúgy működik.

2. lépés: A konzol

A konzol
A konzol
A konzol
A konzol
A konzol
A konzol

A tok 3 mm -es akrilból van kivágva, a gombok 3D -s nyomtatással készülnek, és vannak távtartók az LCD -hez, 5 mm -es akrilból. Forró ragasztóval van ragasztva (elég jól tapad az akrilhoz), és van egy 3D nyomtatott "konzol", amely a NYÁK -t az LCD -hez tartja. Az LCD csapjai alulról vannak forrasztva, így nem zavarja az ESP -t.

Az ESP fejjel lefelé van forrasztva, így az USB-port illeszkedik a tokba

A külön gombos NYÁK forró ragasztóval van ragasztva, így a gombok a lyukakba kerülnek, de továbbra is megnyomják a kapcsolókat. A gombok a táblához JST PH 2.0 csatlakozókkal vannak csatlakoztatva, és a csapok sorrendje könnyen levezethető a sematikus ábrából

Nagyon fontos, hogy a léptető meghajtót a megfelelő irányba szerelje (a potenciométer az ESP közelében)

Az SD -kártya teljes része le van tiltva, mivel senki sem használta az első verzióban. A kódot frissíteni kell néhány felhasználói felület beállítással, például a versenyző súlyával és nehézségi beállításával.

A konzol lézervágású "karokkal" és cipzárral van felszerelve. A kis fogak beleásnak a kormányba, és tartják a konzolt.

3. lépés: A motor

A Motor
A Motor
A Motor
A Motor
A Motor
A Motor

A motor tartja magát a beállító gomb helyén, 3D nyomtatott konzol segítségével. A tengelyéhez egy csatoló van felszerelve - az egyik oldalon 5 mm -es lyuk van rögzítőcsavarokkal, amelyek a tengelyt tartják, a másik pedig egy M6 -os menettel és rögzítőcsavarokkal rögzíti. Ha akarja, valószínűleg fúrógépben készítheti el valamilyen 10 mm -es kerek alapanyagból. Ennek nem kell rendkívül precíznek lennie, mivel a motor nincs nagyon szorosan felszerelve.

Egy darab M6 menetes rudat csavarozunk a csatolóba, és réz M6 anyát húz. Megmunkáltam, de olyan könnyen elkészíthető egy rézdarabból egy reszelővel. Még egy darabot is hegeszthet egy normál anyához, hogy ne forogjon. A 3D nyomtatott anya is megoldás lehet.

A menetnek finomabbnak kell lennie, mint az alapcsavar. A dőlésszöge körülbelül 1,3 mm, az M6 esetében pedig 0,8 mm. A motornak nincs elég nyomatéka az alapcsavar forgatásához.

Az anyát jól kell kenni, mivel a motor alig tudja elfordítani a csavart a magasabb beállításokon

4. lépés: Konfiguráció

Konfiguráció
Konfiguráció
Konfiguráció
Konfiguráció

Ha kódot szeretne feltölteni az ESP32-be az Arduino IDE-ből, kövesse ezt az oktatóanyagot:

Az alaplap "WeMos LOLIN32", de a "Dev modul" is működik

Javaslom a Visual Studio használatát, de gyakran elromolhat.

Az első használat előtt

A forgattyúkart a "Forgattyú" lépés szerint kell beállítani

Az "nRF Connect" alkalmazás használatával ellenőriznie kell az ESP32 forgattyús hajtókar MAC -címét, és be kell állítania a BLE.h fájlba.

A beltériBike.ino 19. sorában be kell állítania, hogy hány csavart kell forgatni ahhoz, hogy az ellenállást teljesen lazáról a maximumra állítsa. (A "maximum" szándékosan szubjektív, ezzel a beállítással módosíthatja a nehézséget.)

Az okos tréner "virtuális fogaskerekekkel" rendelkezik a helyes beállításhoz, a 28. és 29. soron kell kalibrálnia. Egy adott ellenállás -beállításon állandó ütemben kell pedáloznia, majd be kell olvasnia a teljesítményt, és be kell állítania a fájlba. Ismételje meg ezt egy másik beállítással.

A bal szélső gomb ERG üzemmódból (abszolút ellenállás) szimulációs módba (virtuális fogaskerekek) kapcsol. A számítógépes kapcsolat nélküli szimulációs mód semmit nem tesz, mivel nincsenek szimulációs adatok.

A 36. sor beállítja a virtuális fogaskerekeket - a számot és az arányokat. Ezeket úgy számítja ki, hogy elosztja az első fogaskerék fogainak számát a hátsó fogaskerék fogainak számával.

A 12. sorba a versenyző és a kerékpár súlyát kell beírni ([newtonokban], a tömeg és a gravitációs gyorsulás szorzatában!)

Ennek az egész fizika része valószínűleg túl bonyolult, és még én sem emlékszem, hogy pontosan mit csinál, de kiszámítom a szükséges nyomatékot a kerékpáros felfelé húzásához vagy ilyesmihez (ezért a kalibrálás).

Ezek a paraméterek erősen szubjektívek, néhány futás után be kell állítani őket, hogy megfelelően működjenek.

A hibakeresési COM port közvetlen bináris adatokat küld a Bluetooth segítségével, idézőjelben ('') és szimulációs adatokban.

A konfigurátor

Mivel az állítólag reális fizika konfigurálása hatalmas gondnak bizonyult, hogy reálisnak érezze magát, létrehoztam egy GUI konfigurátort, amely lehetővé teszi a felhasználók számára, hogy grafikusan meghatározzák azt a függvényt, amely a dombvidékről az abszolút ellenállási szintre konvertál. Még nincs teljesen kész, és nem volt lehetőségem tesztelni, de az elkövetkező hónapban egy másik kerékpárt fogok átalakítani, így majd csiszolom.

A "Fogaskerekek" lapon a csúszkák mozgatásával állíthatja be az egyes fokozatok arányát. Ezután be kell másolnia a kód bitjét, hogy kicserélje a kódban szereplő fogaskerekeket.

Az "Osztály" lapon egy lineáris függvény grafikonját kapja (igen, kiderül, hogy a matematika leggyűlöltebb tárgya valóban hasznos), amely felveszi a fokozatot (függőleges tengely), és abszolút ellenállási lépéseket (vízszintes tengely) ad ki. Kicsit később megyek a matekba az érdeklődőknek.

A felhasználó ezt a funkciót a ráhelyezett két pont segítségével határozhatja meg. A jobb oldalon van egy hely az aktuális sebességváltáshoz. A kiválasztott sebességváltó, ahogy azt elképzelheti, megváltoztatja az utat az ellenálláshoz - alacsonyabb fokozaton könnyebb pedálozni felfelé. A csúszka mozgatása megváltoztatja a 2. együtthatót, ami befolyásolja, hogy a kiválasztott fokozat hogyan változtatja meg a funkciót. A legegyszerűbb egy ideig játszani vele, hogy lássa, hogyan viselkedik. Lehet, hogy néhány különböző beállítást is ki kell próbálnia, hogy megtalálja az Önnek legmegfelelőbbet.

Python 3 -ban írták, és alapértelmezett könyvtárakkal kell működnie. Használatához a sorok megjegyzéseit azonnal fel kell oldania "a megjegyzések megszüntetése a konfigurátor használatához" után. Mint mondtam, nem tesztelték, így előfordulhat, hogy vannak hibák, de ha bármi felmerül, írjon megjegyzést vagy nyisson meg egy problémát, hogy kijavíthassam.

A matematika (és a fizika)

A vezérlő csak az ellenállási csavar elforgatásával érezheti úgy, mintha felfelé menne. Át kell alakítanunk a fordulatszámot. A beállítás könnyebbé tétele érdekében a teljes tartományt a teljesen lazától a forgattyú forgatásának elmaradásáig 40 lépcsőre osztják, ugyanazt használják az ERG módban, de ezúttal valós számokat használnak egész számok helyett. Ez egy egyszerű térképfunkcióval történik - megkeresheti a kódban. Most egy lépéssel feljebb vagyunk - ahelyett, hogy a csavar fordulataival foglalkoznánk, képzeletbeli lépésekkel foglalkozunk.

Most hogyan is működik valójában, ha biciklivel megy felfelé (állandó sebességet feltételezve)? Nyilvánvalóan szükség van valamilyen erőre, amely felemeli, különben legurul. Ennek az erőnek, amint azt a mozgás első törvénye mondja, egyenlő nagyságúnak kell lennie, de ellentétes irányúnak kell lennie a lefelé húzó erővel, hogy egyenletes mozgásban legyen. Ez a kerék és a talaj közötti súrlódásból származik, és ha rajzoljuk ezeknek az erőknek a diagramját, akkor meg kell egyeznie a kerékpár súlyával és a versenyzővel az osztályozattal:

F = Fg*G

Most mi készteti a kereket erre az erőre? Mivel fogaskerekekkel és kerekekkel van dolgunk, könnyebb a nyomatékban gondolkodni, ami egyszerűen a sugár erő szorzata:

t = F*R

Ha fogaskerekekről van szó, nyomatékot ad a forgattyús hajtókarnak, amely meghúzza a láncot és forgatja a kereket. A kerék forgatásához szükséges nyomatékot meg kell szorozni a sebességváltóval:

tp = tw*gr

és vissza a nyomatékképletből megkapjuk a pedál forgatásához szükséges erőt

Fp = tp/r

Ezt meg tudjuk mérni a hajtókar teljesítménymérőjével. Mivel a dinamikus súrlódás lineáris kapcsolatban áll az erővel, és mivel ez a kerékpár rugókat használ az erő kifejtéséhez, lineáris a csavar mozgásához.

A teljesítmény az erő és a sebesség szorzata (a vektorok azonos irányát feltételezve)

P = F*V

és a pedál lineáris sebessége összefügg a szögsebességgel:

V = ω*r

és így kiszámíthatjuk a pedálok elforgatásához szükséges erőt egy beállított ellenállási szinten. Mivel minden lineáris összefüggésben van, ehhez használhatjuk az arányokat.

A szoftvernek lényegében ezt kellett kiszámítania a kalibrálás során, és egy körforgalmat használva bonyolult összetett, de lineáris függvényt kapott az ellenálláshoz. Mindent papírra írtam, kiszámítva a végső egyenletet, és az összes konstans három együttható lett.

Ez technikailag egy 3D -s függvény, amely egy síkot ábrázol (szerintem), amely a fokozatot és az áttételt veszi figyelembe argumentumként, és ez a három együttható összefügg a sík meghatározásához szükségesekkel, de mivel a fogaskerekek diszkrét számok, könnyebb volt hogy paraméterré tegyük ahelyett, hogy előrejelzésekkel foglalkoznánk és ilyesmi. Az 1. és a 3. együttható egyetlen vonallal határozható meg, és (-1)* a 2. együttható a pont X-koordinátája, ahol a vonal "forog" a sebességváltáskor.

Ebben a vizualizációban az érveket a függőleges vonal és az értékeket a vízszintes képviseli, és tudom, hogy ez bosszantó lehet, de számomra intuitívabb volt, és jobban illeszkedett a grafikus felülethez. Valószínűleg ez az oka annak, hogy a közgazdászok így rajzolják meg grafikonjaikat.

5. lépés: Fejezd be

Most szüksége van néhány alkalmazásra, amelyekkel az új edzőgépen utazhat (ez körülbelül 900 dollárt takarított meg:)). Íme a véleményem néhányról.

  • Az RGT Cycling - véleményem szerint a legjobb - teljesen ingyenes opcióval rendelkezik, de kevés számot tartalmaz. A legjobban a csatlakozási résszel foglalkozik, mert a telefon Bluetooth -on keresztül csatlakozik, és a számítógép megjeleníti a számot. Reális videót használ egy AR kerékpárosral
  • Rouvy - sok szám, csak fizetett előfizetés, valamilyen oknál fogva a PC -alkalmazás nem működik ezzel, használnia kell a telefont. Problémák merülhetnek fel, ha a laptop ugyanazt a kártyát használja a Bluetooth és a WiFi számára, gyakran késik, és nem akar betölteni
  • A Zwift - animált, csak fizetős játék, jól működik az oktatóval, de a felhasználói felület meglehetősen primitív - az indító az Internet Explorer segítségével jeleníti meg a menüt.

Ha tetszett az építkezés (vagy nem), kérjük, mondja el megjegyzésekben, és ha bármilyen kérdése van, itt felteheti, vagy beküldheti a problémát a githubnak. Szívesen elmagyarázok mindent, mert elég bonyolult.

Ajánlott: