Sisukord:
Video: DIY siseratta nutikas treener: 5 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:45
Sissejuhatus
See projekt sai alguse Schwinn IC Elite siseratta lihtsa modifikatsioonina, mis kasutab takistuse seadistamiseks lihtsat kruvi ja viltpadjakesi. Probleem, mida ma tahtsin lahendada, oli see, et kruvi samm oli liiga suur, nii et vahemik pedaalimisvõimetusest kuni ratta täiesti tasuta pöörlemiseni oli vastupanunupul vaid paar kraadi. Algul vahetasin kruvi M6 vastu, kuid siis peaksin tegema nupu, miks mitte kasutada takistuse muutmiseks lihtsalt üle jäänud NEMA 17 astmemotorit? Kui elektroonikat on juba olemas, siis miks mitte lisada nutika treeneri tegemiseks arvutile väntvõimsuse mõõtja ja bluetooth -ühendus?
See osutus oodatust keerulisemaks, sest puudusid näited selle kohta, kuidas arduino ja bluetoothiga võimsusmõõdikut jäljendada. Kulutasin umbes 20 tundi BLE GATT spetsifikatsioonide programmeerimisele ja tõlgendamisele. Loodan, et näite toomisel saan aidata kellelgi mitte raisata nii palju aega sellele, et mõista, mida "Teenuse andmete reklaami tüübi väli" täpselt tähendab …
Tarkvara
Kogu projekt on GitHubis:
github.com/kswiorek/ble-ftms
Soovitan tungivalt kasutada Visual Studio'i koos VisualGDB pistikprogrammiga, kui kavatsete teha midagi tõsisemat kui minu koodi kopeerimine.
Kui teil on programmi kohta küsimusi, küsige, ma tean, et minu minimalistlikud kommentaarid ei pruugi palju aidata.
Autorid
Tänu stoppi71 -le tema juhendi eest võimsusmõõturi valmistamiseks. Tegin vända tema kavandi järgi.
Tarvikud:
Selle projekti materjalid sõltuvad suuresti sellest, millist jalgratast muudate, kuid on ka universaalseid osi.
Vänt:
- ESP32 moodul
- HX711 Kaaluandur ADC
- Venitusmõõturid
- MPU - güroskoop
- Väike Li-Po aku (umbes 750mAh)
- Termokahanev varrukas
- A4988 Stepper juht
- 5V regulaator
- Arduino tünni tungraud
- 12 V arduino toiteallikas
Konsool:
- NEMA 17 samm (peab olema üsna võimas,> 0,4 Nm)
- M6 varras
- 12864 lcd
- WeMos LOLIN32
- Taktlülitid
Varustus
Selle tegemiseks pääsete tõenäoliselt ainult 3D -printeri kasutamisest, kuid korpuse laserlõikamisega saate säästa palju aega ja teha ka PCB -sid. DXF- ja gerber -failid on GitHubis, nii et saate neid kohapeal tellida. Sidur keermestatud vardast mootorini keerati treipingil ja see võib olla ainus probleem, kuna osa peab olema padjakeste tõmbamiseks üsna tugev, kuid selles rattas pole palju ruumi.
Pärast esimese jalgratta tegemist soetasin freespingi, mis võimaldab mul vända anduritele pilusid teha. See muudab nende liimimise natuke lihtsamaks ja kaitseb neid ka siis, kui midagi vända vastu peaks. (Olen neid andureid paar korda kukkunud, nii et tahtsin olla ohutu.)
Samm: vänt:
Parim on lihtsalt järgida seda õpetust:
Põhimõtteliselt peate andurid liimima vända külge neljas kohas ja ühendama need plaadi külgedega.
Nõuetekohased ühendused on juba olemas, nii et peate lihtsalt juhtmepaarid jootma otse nende kaheksa plaadi külge.
Anduritega ühendamiseks kasutage võimalikult õhukest traati - padjakesi on väga lihtne üles tõsta. Esmalt peate andurid liimima ja jätma need lihtsalt piisavalt jootma, seejärel katke ülejäänud osa epoksüvärviga. Kui proovite enne liimimist jootma hakata, siis need kõverduvad ja purunevad.
PCB kokkupanek:
- Sisestage kullanõelad alt (jälgedega külg) kõikidesse aukudesse, välja arvatud need, mis asuvad põhja lähedal.
- Asetage kolm lauda (ESP32 peal, seejärel MPU, HX711 all), nii et kullanõelad kleepuksid läbi mõlema augu.
- Jootke päised peal olevate plaatide külge
- Lõika alt ära kullanõelad. (Proovige neid enne kokkupanekut kõigepealt lõigata, nii et teate, et teie "kullanõelad" pole terasest - see muudab nende lõikamise peaaegu võimatuks ja peate need viilima või lihvima)
- jootke ülejäänud kullanõelad tahvli põhja.
- Laadige üles vända püsivara
Viimane samm on pakkida kogu vänt termokahaneva hülsiga.
See plaadi valmistamise meetod ei ole ideaalne, kuna lauad võtavad palju ruumi, kuhu mahuksid muud asjad. Parim oleks joota kõik komponendid otse plaadile, kuid mul puudub oskus neid väikeseid SMD -sid ise joota. Mul oleks vaja see kokkupanduna tellida ja tõenäoliselt teeksin mõned vead ning lõpuks telliksin need kolm korda ja ootaksin aasta enne nende saabumist.
Kui keegi oskaks plaati kujundada, oleks tore, kui sellel oleks aku kaitse ringlus ja andur, mis lülitaks ESP sisse, kui vänt hakkab liikuma.
TÄHTIS
HX711 andur on vaikimisi seatud 10 Hz - see on võimsuse mõõtmiseks palju aeglasem. Peate tõstma tihvti 15 plaadilt ja ühendama selle tihvtiga 16. See juhib tihvti KÕRGE ja võimaldab 80Hz režiimi. See 80Hz, muide, määrab kogu arduino silmuse kiiruse.
Kasutamine
ESP32 on programmeeritud magama minema pärast 30ndat sekundit, kui Bluetooth -seadet pole ühendatud. Selle uuesti sisselülitamiseks peate vajutama lähtestusnuppu. Andurid saavad toite ka digitaalsest tihvtist, mis lülitub unerežiimis LOW. Kui soovite andureid testida raamatukogude näidiskoodiga, peate juhtima tihvti HIGH ja ootama natuke, enne kui andurid sisse lülituvad.
Pärast kokkupanekut tuleb andurid kalibreerida, lugedes väärtust ilma jõuta ja seejärel rakendades raskust (kasutasin pedaalile riputatud 12 kg või 16 kg veekella). Need väärtused tuleb sisestada powerCrank koodi.
Parem on vändaga sõtkuda enne igat sõitu - see ei peaks suutma ennast taarata, kui keegi pedaalib, kuid parem on kahetseda ja seda on võimalik sisse lülitada ainult üks kord. Kui märkate kummalisi võimsustasemeid, peate seda protsessi korrata:
- Asetage vänt otse alla, kuni tuli hakkab vilkuma.
- Mõne sekundi pärast jääb tuli põlema - ärge seda siis puudutage
- Kui tuli kustub, seab see praeguse jõu uueks 0 -ks.
Kui soovite lihtsalt vända kasutada ilma konsoolita, on kood siin githubis. Kõik muu töötab samamoodi.
2. samm: konsool
Korpus on lõigatud 3 mm akrüülist, nupud on 3D -trükitud ja LCD -ekraanil on vahekaugused, lõigatud 5 mm akrüülist. See on liimitud kuuma liimiga (kleepub üsna hästi akrüüli külge) ja trükkplaadi hoidmiseks LCD -ekraanil on 3D -trükitud "sulg". LCD -tihvtid on joodetud altpoolt, nii et see ei häiri ESP -d.
ESP on joodetud tagurpidi, seega sobib USB-port korpusesse
Eraldi nupp PCB on liimitud kuuma liimiga, nii et nupud on nende aukudesse jäädvustatud, kuid vajutavad siiski lüliteid. Nupud on plaadiga ühendatud JST PH 2.0 pistikutega ja tihvtide järjekorda on skemaatiliselt lihtne järeldada
On väga oluline paigaldada samm -juht õigesse asendisse (potentsiomeeter ESP lähedal)
Kogu SD -kaardi osa on keelatud, kuna keegi ei kasutanud seda esimeses versioonis. Koodi tuleb värskendada mõne kasutajaliidese sättega, näiteks sõitja kaalu ja raskuste seadistusega.
Konsool on paigaldatud laserlõikega "käte" ja tõmblukkude abil. Väikesed hambad kaevavad lenksu ja hoiavad konsooli.
Samm: mootor
Mootor hoiab end 3D -prinditud kronsteiniga reguleerimisnupu asemel. Selle võllile on paigaldatud haakeseadis - ühel küljel on võlli hoidmiseks kinnituskruvidega 5 mm auk, teisel küljel on M6 -keermega kinnituskruvid selle lukustamiseks. Kui soovite, saate seda tõenäoliselt teha puuripressis mõnest 10 mm ümmargusest materjalist. See ei pea olema äärmiselt täpne, kuna mootor ei ole väga tihedalt paigaldatud.
Sidurisse keeratakse tükk M6 keermestatud varda ja see tõmbab messingist M6 mutrit. Töötasin seda, kuid seda saab sama lihtsalt valmistada viiliga messingitükist. Võite isegi mõne biti tavalise mutri külge keevitada, nii et see ei pöörleks. Lahenduseks võib olla ka 3D -prinditud pähkel.
Keere peab olema peenem kui varukruvi. Selle samm on umbes 1,3 mm ja M6 puhul 0,8 mm. Mootoril ei ole varumiskruvi keeramiseks piisavalt pöördemomenti.
Mutrit tuleb hästi määrida, kuna mootor vaevalt suudab kruvisid kõrgematel seadetel keerata
4. samm: seadistamine
Arduino IDE-st koodi ESP32-sse üleslaadimiseks peate järgima seda õpetust:
Tahvel on "WeMos LOLIN32", kuid töötab ka "Dev moodul"
Soovitan kasutada Visual Studio'i, kuid see võib sageli puruneda.
Enne esimest kasutamist
Vänt tuleb seadistada vastavalt "Vända" sammule
Rakenduse "nRF Connect" abil peate kontrollima vända ESP32 MAC -aadressi ja määrama selle BLE.h -faili.
IndoorBike.ino reas 19 peate määrama, mitu kruvi pöörlemist on vaja, et takistus täielikult lõdvestuda maksimaalseks. ("Maksimum" on meelega subjektiivne, reguleerige selle seadistusega raskusi.)
Nutitreeneril on "virtuaalsed käigud", et neid õigesti seadistada, peate selle kalibreerima ridadele 28 ja 29. Peate pedaalima kindla takistusseadistusega pideva kadentsiga, seejärel lugema võimsust ja seadistama selle faili. Korrake seda uuesti mõne muu sättega.
Vasakpoolne nupp lülitub ERG -režiimist (absoluutne takistus) simulatsioonirežiimile (virtuaalsed käigud). Simulatsioonirežiim ilma arvutiühenduseta ei tee midagi, kuna simulatsiooniandmeid pole.
Rida 36. seab virtuaalsed käigud - arvu ja suhtarvud. Arvutate need, jagades hammaste arvu esikäigul hammaste arvuga tagumise käigu korral.
Rida 12. paned sõitja ja jalgratta kaalu ([njuutonites], mass korda gravitatsioonikiirendusega!)
Kogu selle füüsika osa on ilmselt liiga keeruline ja isegi ma ei mäleta, mida see täpselt teeb, aga ma arvutan vajaliku pöördemomendi jalgratturi ülesmäge tõmbamiseks või midagi sellist (sellepärast kalibreerimine).
Need parameetrid on väga subjektiivsed, peate need pärast mõnda sõitu seadistama, et need korralikult töötaksid.
Silumis -COM -port saadab otseseid binaarseid andmeid, mis on Bluetoothi kaudu saadud jutumärkides ('') ja simulatsiooniandmetes.
Seadistaja
Kuna väidetavalt realistliku füüsika seadistamine osutus reaalseks tundmiseks tohutuks probleemiks, lõin GUI konfiguraatori, mis peaks võimaldama kasutajatel graafiliselt määratleda funktsiooni, mis teisendab mäe astmest absoluutse takistuse tasemeni. See pole veel täielikult valmis ja mul ei olnud võimalust seda testida, kuid eeloleval kuul vahetan teise jalgratta ümber, nii et hakkan seda siis lihvima.
Vahekaardil "Hammasrattad" saate liugureid liigutades määrata iga käigu suhte. Seejärel peate koodi bitti kopeerima, et asendada koodis määratletud käigud.
Vahekaardil "Hinne" antakse teile lineaarse funktsiooni graafik (jah, selgub, et matemaatika kõige vihatum teema on tegelikult kasulik), mis võtab hinde (vertikaaltelg) ja väljastab absoluutse vastupanu astmed (horisontaaltelg). Huvilistel lähen natuke hiljem matemaatikasse.
Kasutaja saab selle funktsiooni määratleda, kasutades selleks kahte punkti. Paremal on koht praeguse käigu vahetamiseks. Valitud käik, nagu võite ette kujutada, muudab viisi, kuidas klass kaardistab vastupidavust - madalamal käigul on kergem pedaalida. Liuguri liigutamine muudab teist koefitsienti, mis mõjutab valitud käigu funktsiooni muutmist. Kõige lihtsam on sellega mõnda aega mängida, et näha, kuidas see käitub. Samuti peate võib -olla proovima mõnda erinevat seadet, et leida teile kõige sobivam.
See oli kirjutatud Python 3 -s ja peaks töötama vaikeraamatukogudega. Selle kasutamiseks peate read kohe pärast "konfiguraatori kasutamiseks nende ridade kommenteerimist tühistama". Nagu ma ütlesin, seda ei testitud, seega võib esineda mõningaid vigu, kuid kui midagi ilmneb, kirjutage kommentaar või avage probleem, et saaksin selle parandada.
Matemaatika (ja füüsika)
Ainus viis, kuidas kontroller võib tekitada tunde, nagu läheksite ülesmäge, on takistuskruvi keeramine. Peame hinde teisendama pöörete arvuks. Seadistamise hõlbustamiseks on kogu vahemik täiesti lahtisest kuni vända keeramisvõimaluseta jagatud 40 sammuks, sama kasutatakse ERG -režiimis, kuid seekord kasutatakse täisarvude asemel reaalarvu. Seda tehakse lihtsa kaardifunktsiooniga - saate seda koodist otsida. Nüüd oleme astme võrra kõrgemal - kruvi pöörete asemel tegeleme kujuteldavate sammudega.
Kuidas see tegelikult töötab, kui lähete rattaga ülesmäge (eeldades püsivat kiirust)? Ilmselgelt peab olema mingi jõud, mis sind üles tõukab, muidu veereksid alla. See jõud, nagu ütleb meile esimene liikumisseadus, peab olema suuruselt võrdne, kuid vastassuunas jõuga, mis tõmbab teid alla, et saaksite olla ühtlases liikumises. See tuleneb ratta ja maapinna vahelisest hõõrdumisest ning kui joonistada nende jõudude skeem, peab see olema võrdne jalgratta ja sõitja kaaluga:
F = Fg*G
Mis paneb ratta seda jõudu rakendama? Kuna tegemist on hammasrataste ja ratastega, on kergem mõelda pöördemomendi järgi, mis on lihtsalt jõud ja raadius:
t = F*R
Kuna tegemist on hammasratastega, annate vändale pöördemomendi, mis tõmbab keti ja pöörab ratast. Ratta pööramiseks vajalik pöördemoment korrutatakse ülekandearvuga:
tp = tw*gr
ja pöördemomendi valemist tagasi saame pedaali keeramiseks vajaliku jõu
Fp = tp/r
Seda saame mõõta vända võimsusmõõturi abil. Kuna dünaamiline hõõrdumine on jõuga lineaarselt seotud ja kuna see konkreetne jalgratas kasutab selle jõu andmiseks vedrusid, on see kruvi liikumise suhtes lineaarne.
Võimsus on jõud, mis on korrutatud kiirusega (eeldades vektorite sama suunda)
P = F*V
ja pedaali lineaarne kiirus on seotud nurkkiirusega:
V = ω*r
ja nii saame arvutada jõu, mis on vajalik pedaalide pööramiseks määratud takistustasemele. Kuna kõik on lineaarselt seotud, saame selleks kasutada proportsioone.
See oli sisuliselt see, mida tarkvara vajas kalibreerimise ajal arvutamiseks ja kasutades ringristmikku, et saada meile keeruline komposiit, kuid lineaarne funktsioon, mis seostab astet takistusega. Kirjutasin kõik paberile, arvutasin lõpliku võrrandi ja kõik konstandid said kolme koefitsiendiks.
See on tehniliselt 3D -funktsioon, mis esindab tasapinda (ma arvan), mis võtab argumendiks hinde ja ülekandearvu ning need kolm koefitsienti on seotud tasapinna määratlemiseks vajalikega, kuid kuna käigud on diskreetsed numbrid, oli lihtsam muuta see parameetriks, selle asemel et tegeleda prognooside ja muu sellisega. Esimest ja kolmandat koefitsienti saab määratleda ühe joonega ja (-1)* teine koefitsient on punkti X koordinaat, kus sirge "pöörleb" käike vahetades.
Selles visualiseerimises on argumente esindatud vertikaalse joonega ja väärtusi horisontaalsega ning ma tean, et see võib olla tüütu, kuid see oli minu jaoks intuitiivsem ja sobis paremini graafilise kasutajaliidesega. See on ilmselt põhjus, miks majandusteadlased oma graafikuid sel viisil joonistavad.
Samm: lõpetage
Nüüd on teil vaja mõnda rakendust, millega oma uuel treeneril sõita (mis säästis umbes 900 dollarit:)). Siin on minu arvamus mõnest neist.
- RGT Cycling - minu arvates parim - sellel on täiesti tasuta valik, kuid sellel on natuke lugusid. Kõige paremini tegeleb ühendusosaga, sest teie telefon loob ühenduse Bluetoothi kaudu ja arvuti kuvab raja. Kasutab AR -jalgratturiga realistlikku videot
- Rouvy - palju lugusid, ainult tasuline tellimus, millegipärast arvutirakendus sellega ei tööta, peate oma telefoni kasutama. Probleeme võib tekkida siis, kui teie sülearvuti kasutab Bluetoothi ja WiFi jaoks sama kaarti, sageli jääb see maha ja ei taha laadida
- Zwift - animeeritud mäng, ainult tasuline, töötab treeneriga üsna hästi, kuid kasutajaliides on üsna primitiivne - käivitaja kasutab menüü kuvamiseks Internet Explorerit.
Kui teile ehitamine meeldis (või mitte), palun rääkige sellest kommentaarides ja kui teil on küsimusi, võite siin küsida või esitada probleemi githubile. Ma selgitan rõõmuga kõike, kuna see on üsna keeruline.
Soovitan:
Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: 10 sammu (koos piltidega)
Nutikas äratuskell: nutikas äratuskell, mis on valmistatud Raspberry Pi -ga: kas olete kunagi tahtnud nutikat kella? Kui jah, siis see on teie jaoks lahendus! Ma tegin nutika äratuskella, see on kell, mille abil saate äratusaega vastavalt veebisaidile muuta. Kui äratus hakkab tööle, kostab heli (sumin) ja 2 tuld
Hüdrauliline vedeliku treener: 9 sammu
Hüdrauliline vedeliku treener: need on sammud hüdraulilise treeneri ohutuks ja tõhusaks kasutamiseks
Lihtne Taranis X9D+ traadita treener, kasutades SBUS -vastuvõtjat Sisend: 9 sammu
Lihtne Taranis X9D+ traadita treener SBUS-vastuvõtja sisendi abil: Selle projekti eesmärk on ühendada FrSky X-Lite saatja FrSky X9D+ saatjaga TRAINERi konfiguratsioonis, kasutades odavat SBUS-vastuvõtjat (12 $). Ühendades need kaks sel viisil kokku, on instruktoripiloodil võimalik kasutada
Nähtamatu koerte treener: 9 sammu
Nähtamatu koerte treener: Pange tähele! Reaktiivsed plokid pole enam saadaval, nii et te ei saa seda juhendit täita. Rõhuanduri, LED -i ja kõlari abil saate muuta oma Pi nähtamatuks koeratreeneriks, mis treenib teie koera diivanilt välja tulema. Kui koer istub
Isiklik inglise keele treener - AI hääleassistent: 15 sammu
Isiklik inglise keele treener - AI hääleassistent: see projekt aitab õpilasi, kes valmistuvad keeleeksamiks, kus neid saab koolitada Snips AI -ga suheldes