Turinys:
- 1 žingsnis: alkūnė:
- 2 žingsnis: konsolė
- 3 žingsnis: variklis
- 4 žingsnis: konfigūravimas
- 5 žingsnis: Baigti
Video: „Pasidaryk pats“vidaus dviračių išmanusis treneris: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Įvadas
Šis projektas prasidėjo kaip paprastas „Schwinn IC Elite“vidaus dviračio pakeitimas, kurio atsparumo nustatymams naudojamas paprastas varžtas ir veltinio pagalvėlės. Problema, kurią norėjau išspręsti, buvo ta, kad varžto žingsnis buvo per didelis, todėl diapazonas nuo nesugebėjimo spausti pedalo iki visiškai laisvo rato sukimosi buvo tik keli laipsniai pasipriešinimo rankenėlės. Iš pradžių varžtą pakeičiau į M6, bet tada turėčiau padaryti rankenėlę, tad kodėl nepasinaudojus paliktu „NEMA 17“žingsniniu varikliu, norint pakeisti varžą? Jei jau yra elektronikos, kodėl gi nepridėjus prie kompiuterio alkūninio galios matuoklio ir „Bluetooth“ryšio, kad sukurtumėte išmanųjį treniruoklį?
Tai pasirodė sudėtingiau, nei tikėtasi, nes nebuvo pavyzdžių, kaip imituoti galios matuoklį naudojant „arduino“ir „Bluetooth“. Galiausiai praleidau apie 20 valandų BLE GATT specifikacijų programavimui ir aiškinimui. Tikiuosi, kad pateikdamas pavyzdį galiu padėti kam nors nešvaistyti tiek laiko bandydamas suprasti, ką tiksliai reiškia „Paslaugos duomenų skelbimo tipo laukas“…
Programinė įranga
Visas projektas yra „GitHub“:
github.com/kswiorek/ble-ftms
Aš labai rekomenduoju naudoti „Visual Studio“su „VisualGDB“papildiniu, jei planuojate daryti ką nors rimtesnio, o ne tik kopijuoti ir įklijuoti mano kodą.
Jei turite klausimų apie programą, klauskite, žinau, kad mano minimalistiniai komentarai gali nelabai padėti.
Kreditai
Ačiū stoppi71 už jo vadovą, kaip pasidaryti galios skaitiklį. Aš padariau alkūnę pagal jo projektą.
Priedai:
Šio projekto medžiagos labai priklauso nuo to, kokį dviratį modifikuojate, tačiau yra keletas universalių dalių.
Alkūninis:
- ESP32 modulis
- HX711 Svorio jutiklis ADC
- Įtampos matuokliai
- MPU - giroskopas
- Maža Li-Po baterija (apie 750 mAh)
- Termiškai susitraukianti rankovė
- A4988 Stepper vairuotojas
- 5V reguliatorius
- Arduino statinės lizdas
- 12 V arduino maitinimo šaltinis
Konsolė:
- NEMA 17 žingsnis (turi būti gana galingas,> 0,4 Nm)
- M6 strypas
- 12864 lcd
- WeMos LOLIN32
- Taktiniai jungikliai
Įranga
Norėdami tai padaryti, greičiausiai išsisuksite naudodami tik 3D spausdintuvą, tačiau galite sutaupyti daug laiko pjaustydami korpusą lazeriu ir taip pat galite gaminti PCB. DXF ir gerber failai yra „GitHub“, todėl galite juos užsisakyti vietoje. Jungtis nuo srieginio strypo iki variklio buvo pasukta ant tekinimo staklių ir tai gali būti vienintelė problema, nes dalis turi būti gana tvirta, kad galėtų traukti trinkeles, tačiau šiame dviračiu nėra daug vietos.
Nuo pirmojo dviračio pagaminimo įsigijau frezavimo staklę, leidžiančią padaryti alkūnių davikliams alkūnėje. Tai šiek tiek palengvina jų klijavimą ir taip pat apsaugo juos, jei kažkas atsitrenktų į alkūnę. (Man šie jutikliai kelis kartus nukrito, todėl norėjau būti saugus.)
1 žingsnis: alkūnė:
Geriausia tiesiog vadovautis šia pamoka:
Iš esmės jutiklius reikia klijuoti prie alkūnės keturiose vietose ir prijungti prie plokštės šonų.
Tinkamos jungtys jau yra, todėl jums tereikia lituoti poras laidų tiesiai prie šių aštuonių plokščių.
Norėdami prisijungti prie jutiklių, naudokite kuo plonesnę vielą - įklotus labai lengva pakelti. Pirmiausia turite klijuoti jutiklius ir palikti tik tiek, kad jie liktų lauke, tada likusią dalį padengti epoksidu. Jei prieš klijuojant bandysite lituoti, jie susisuka ir lūžta.
Norėdami surinkti PCB:
- Įkiškite aukso smeigtukus iš apačios (šono su pėdsakais) į visas skyles, išskyrus tas, kurios yra vertikaliai šalia apačios.
- Įdėkite tris lentas (ESP32 viršuje, tada MPU, HX711 apačioje), kad aukso smeigtukai įstrigtų per abi skyles.
- Lituokite antraštes prie lentų viršuje
- Nupjaukite aukso smeigtukus iš apačios. (Prieš surinkdami pabandykite juos nupjauti, kad žinotumėte, jog jūsų „aukso smeigtukai“nėra plieniniai - todėl jų beveik neįmanoma pjaustyti, todėl juos reikia paduoti arba sutrinti)
- lituokite aukso smeigtukus prie lentos apačios.
- Įkelkite alkūninės programinės įrangos versiją
Paskutinis žingsnis yra supakuoti visą alkūnę su termiškai susitraukiančia mova.
Šis lentos gaminimo būdas nėra idealus, nes plokštės užima daug vietos, kurioje galėtumėte sutalpinti kitus daiktus. Geriausia būtų tiesiogiai lituoti visus komponentus prie plokštės, bet man trūksta įgūdžių lituoti šiuos mažus SMD. Turėčiau užsisakyti jį surinktą ir tikriausiai padarysiu klaidų ir galų gale užsisakysiu tris kartus ir palauksiu metus, kol jie atvyks.
Jei kas nors galėtų suprojektuoti plokštę, būtų puiku, jei ji turėtų tam tikrą apsaugą nuo akumuliatoriaus ir jutiklį, kuris įjungtų ESP, jei alkūnė pradėtų judėti.
SVARBU
HX711 jutiklis pagal numatytuosius nustatymus yra nustatytas 10 Hz - tai galios matavimui daug lėčiau. Turite pakelti 15 kaištį nuo plokštės ir prijungti prie 16. kaiščio. Taip kaištis yra AUKŠTAS ir įjungiamas 80 Hz režimas. Šis 80 Hz, beje, nustato visos arduino kilpos dažnį.
Naudojimas
ESP32 užprogramuotas miegoti po 30 -ies, neprijungus „Bluetooth“įrenginio. Norėdami vėl įjungti, turite paspausti atstatymo mygtuką. Jutikliai taip pat maitinami iš skaitmeninio kaiščio, kuris miego režimu tampa žemas. Jei norite išbandyti jutiklius naudodami pavyzdinį kodą iš bibliotekų, turite nuspausti kaištį HIGH ir šiek tiek palaukti, kol jutikliai įsijungs.
Po surinkimo jutiklius reikia sukalibruoti, skaitant vertę be jėgos, o tada pritaikant svorį (aš naudoju 12 kg arba 16 kg ant pedalo pakabintą virdulį). Šios vertės turi būti įrašytos į „powerCrank“kodą.
Geriausia suverti alkūninį veleną prieš kiekvieną važiavimą - jis neturėtų sugebėti susukti savęs, kai kas nors myli pedalus, bet geriau saugiau nei gailėtis ir jį įjungti galima tik vieną kartą. Jei pastebėjote keistą galios lygį, turite pakartoti šį procesą:
- Nuleiskite alkūnę tiesiai žemyn, kol lemputė pradės mirksėti.
- Po kelių sekundžių lemputė degs - tada nelieskite jos
- Kai lemputė išsijungia, dabartinė jėga nustatoma kaip nauja 0.
Jei norite tiesiog naudoti alkūnę be konsolės, kodas yra čia „github“. Visa kita veikia taip pat.
2 žingsnis: konsolė
Korpusas yra supjaustytas iš 3 mm akrilo, mygtukai yra atspausdinti 3D, o skystųjų kristalų ekranui yra tarpikliai, supjaustyti iš 5 mm akrilo. Jis klijuojamas karštais klijais (gana gerai prilimpa prie akrilo) ir yra 3D spausdintas „laikiklis“, skirtas PCB laikyti prie LCD. LCD kaiščiai yra lituojami iš apačios, kad jis netrukdytų ESP.
ESP yra lituojamas aukštyn kojom, todėl USB prievadas tinka dėkle
Atskiras mygtukų PCB klijuojamas karštais klijais, todėl mygtukai yra užfiksuoti skylėse, tačiau jie vis tiek spaudžia jungiklius. Mygtukai yra prijungti prie plokštės su „JST PH 2.0“jungtimis, o kaiščių tvarką lengva nustatyti iš schemos
Labai svarbu stepperį montuoti teisinga kryptimi (potenciometras šalia ESP)
Visa SD kortelės dalis yra išjungta, nes niekas jos nenaudojo pirmoje versijoje. Kodas turi būti atnaujintas naudojant kai kuriuos vartotojo sąsajos nustatymus, tokius kaip vairuotojo svoris ir sunkumų nustatymas.
Pultas montuojamas naudojant lazeriu supjaustytas „rankas“ir užtrauktukus. Maži dantys kasasi į vairą ir laiko konsolę.
3 žingsnis: variklis
Variklis laikosi reguliavimo rankenėlės vietoje su 3D atspausdintu laikikliu. Prie jo veleno sumontuota jungtis - vienoje pusėje yra 5 mm skylė su varžtais, skirtais velenui laikyti, kitoje yra M6 sriegis su fiksavimo varžtais, kad jį užfiksuotų. Jei norite, greičiausiai galite tai padaryti gręžimo prese iš kokių 10 mm apvalių medžiagų. Jis neturi būti labai tikslus, nes variklis nėra tvirtai pritvirtintas.
Į movą įsukamas M6 srieginio strypo gabalas ir jis traukia žalvarinę M6 veržlę. Aš ją apdirbau, bet ją galima taip pat lengvai pagaminti iš žalvario gabalo su dilde. Jūs netgi galite suvirinti kai kuriuos gabalus prie įprastos veržlės, kad ji nesisuktų. 3D spausdinta veržlė taip pat gali būti sprendimas.
Sriegis turi būti smulkesnis nei pagrindinis varžtas. Jo žingsnis yra apie 1,3 mm, o M6 - 0,8 mm. Varikliui nepakanka sukimo momento, kad būtų galima atsukti varžtą.
Veržlė turi būti gerai sutepta, nes variklis vos gali pasukti varžtą į aukštesnius nustatymus
4 žingsnis: konfigūravimas
Norėdami įkelti kodą į ESP32 iš „Arduino IDE“, turite vadovautis šia pamoka:
Lenta yra „WeMos LOLIN32“, tačiau veikia ir „Dev modulis“
Aš siūlau naudoti „Visual Studio“, tačiau ji dažnai gali sulūžti.
Prieš pirmą naudojimą
Alkūnę reikia nustatyti pagal žingsnį „Alkūnė“
Naudodami programą „nRF Connect“turite patikrinti švaistiklio ESP32 MAC adresą ir nustatyti jį BLE.h faile.
„InternalBike.ino“19 eilutėje turite nustatyti, kiek varžtų reikia pasukti, kad pasipriešinimas būtų visiškai laisvas ir maksimalus. („Maksimalus“yra subjektyvus, tikslingai nustatykite šį nustatymą.)
Išmanusis treniruoklis turi „virtualias pavaras“, kad jas teisingai nustatytumėte, turite sukalibruoti jas 28 ir 29. eilutėse. Jums reikia pedaluoti pastoviu greičiu pagal tam tikrą pasipriešinimo nustatymą, tada perskaityti galią ir nustatyti ją faile. Pakartokite tai dar kartą su kitu nustatymu.
Kairiausias mygtukas perjungiamas iš ERG režimo (absoliutus pasipriešinimas) į modeliavimo režimą (virtualios pavaros). Modeliavimo režimas be kompiuterio ryšio nieko nedaro, nes nėra modeliavimo duomenų.
36 eilutė nustato virtualias pavaras - skaičių ir santykius. Jūs juos apskaičiuojate dalindami priekinės pavaros dantų skaičių iš galinės pavaros dantų skaičiaus.
12 eilutėje nurodote motociklininko ir dviračio svorį ([niutonais], masė padauginta iš gravitacinio pagreičio!)
Visa fizikos dalis tikriausiai yra per daug sudėtinga ir net aš neprisimenu, ką ji tiksliai daro, bet aš apskaičiuoju reikiamą sukimo momentą dviratininkui traukti į kalną ar panašiai (dėl to kalibravimas).
Šie parametrai yra labai subjektyvūs, juos reikia nustatyti po kelių važiavimų, kad jie tinkamai veiktų.
Derinimo COM prievadas siunčia tiesioginius dvejetainius duomenis, gautus „Bluetooth“kabutėmis ('') ir modeliavimo duomenimis.
Konfigūruotojas
Kadangi tariamai tikroviškos fizikos konfigūracija pasirodė didžiulė problema, kad ji atrodytų tikroviška, sukūriau GUI konfigūraciją, kuri turėtų leisti vartotojams grafiškai apibrėžti funkciją, kuri konvertuoja nuo kalvos laipsnio iki absoliutaus pasipriešinimo lygio. Jis dar nėra visiškai baigtas ir neturėjau galimybės jo išbandyti, tačiau artėjantį mėnesį keisiu kitą dviratį, todėl tada jį nušlifuosiu.
Skirtuke „Pavaros“galite nustatyti kiekvienos pavaros santykį judindami slankiklius. Tada turite nukopijuoti kodo bitą, kad pakeistumėte apibrėžtas krumpliaračio pavaras.
Skirtuke „Įvertinimas“pateikiamas linijinės funkcijos grafikas (taip, pasirodo, kad labiausiai nekenčiamas matematikos dalykas iš tikrųjų yra naudingas), kuris įvertina (vertikali ašis) ir pateikia absoliučius pasipriešinimo žingsnius (horizontali ašis). Susidomėjusiems šiek tiek vėliau eisiu į matematiką.
Vartotojas gali apibrėžti šią funkciją naudodamas du taškus. Dešinėje yra vieta dabartinei pavarai pakeisti. Pasirinkta pavara, kaip jūs galite įsivaizduoti, keičia būdą, kaip klasė priklauso nuo pasipriešinimo - žemesnėmis pavaromis lengviau važiuoti pedalu įkalnėje. Perkeliant slankiklį keičiamas antrasis koeficientas, kuris įtakoja, kaip pasirinkta pavara keičia funkciją. Lengviausia su juo žaisti, kad pamatytumėte, kaip jis elgiasi. Taip pat gali tekti išbandyti kelis skirtingus nustatymus, kad surastumėte tai, kas jums labiausiai tinka.
Jis buvo parašytas „Python 3“ir turėtų veikti su numatytosiomis bibliotekomis. Jei norite jį naudoti, turite nedelsdami panaikinti eilutės komentarus po „atšaukti komentarus šioms eilutėms, kad galėtumėte naudoti konfigūratorių“. Kaip sakiau, jis nebuvo išbandytas, todėl gali būti klaidų, bet jei kas nors paaiškės, parašykite komentarą arba atidarykite problemą, kad galėčiau ją ištaisyti.
Matematika (ir fizika)
Vienintelis būdas, kuriuo valdiklis gali pajusti, kad einate į kalną, yra sukant varžą. Turime konvertuoti pažymį į apsisukimų skaičių. Kad būtų lengviau nustatyti, visas diapazonas nuo visiškai laisvo iki negalėjimo pasukti alkūnės yra padalintas į 40 žingsnių, tas pats naudojamas ERG režimu, tačiau šį kartą vietoj sveikų skaičių naudojami tikri skaičiai. Tai atliekama naudojant paprastą žemėlapio funkciją - galite jos ieškoti kodu. Dabar mes esame vienu žingsniu aukščiau - užuot sprendę varžto apsisukimus, mes sprendžiame įsivaizduojamus žingsnius.
Dabar kaip tai iš tikrųjų veikia, kai važiuoji dviračiu į kalną (darant prielaidą, kad pastovus greitis)? Akivaizdu, kad turi būti tam tikra jėga, stumianti tave aukštyn, kitaip jūs nusileisite žemyn. Ši jėga, kaip mums sako pirmasis judesio dėsnis, turi būti lygi savo dydžiu, bet priešinga kryptimi jėgai, kuri traukia tave žemyn, kad būtum tolygus. Tai atsiranda dėl trinties tarp rato ir žemės, o jei nubraižysite šių jėgų diagramą, ji turi būti lygi dviračio svoriui ir motociklininkui, kuris yra kartotinis:
F = Fg*G
Kas verčia ratą taikyti šią jėgą? Kalbant apie pavaras ir ratus, lengviau mąstyti pagal sukimo momentą, kuris yra tiesiog jėga, padauginta iš spindulio:
t = F*R
Kadangi yra pavarų, jūs sukate sukimo momentą ant alkūnės, kuri traukia grandinę ir suka ratą. Sukimo momentas, reikalingas ratui sukti, padauginamas iš pavaros santykio:
tp = tw*gr
ir atgal iš sukimo momento formulės gauname jėgą, reikalingą pedalui pasukti
Fp = tp/r
Tai mes galime išmatuoti naudodami alkūninio galios matuoklį. Kadangi dinaminė trintis yra tiesiškai susijusi su jėga ir šis konkretus dviratis šiai jėgai paskirstyti naudoja spyruokles, jis yra tiesinis varžto judėjimui.
Galia yra jėga, padauginta iš greičio (darant prielaidą, kad vektoriai yra tos pačios krypties)
P = F*V
ir tiesinis pedalo greitis yra susijęs su kampiniu greičiu:
V = ω*r
ir taip galime apskaičiuoti jėgą, reikalingą pedalams pasukti nustatytu pasipriešinimo lygiu. Kadangi viskas yra tiesiškai susiję, tam galime naudoti proporcijas.
Tai iš esmės buvo tai, ko programinei įrangai reikėjo apskaičiuoti kalibravimo metu ir naudojant žiedinį kelią, kad gautume sudėtingą sudėtinį, bet linijinę funkciją, susijusią su atsparumu. Aš viską parašiau ant popieriaus, apskaičiavau galutinę lygtį ir visos konstantos tapo trimis koeficientais.
Techniškai tai yra 3D funkcija, vaizduojanti plokštumą (manau), kurioje argumentais laikoma klasė ir pavaros santykis, o šie trys koeficientai yra susiję su tais, kurie reikalingi plokštumai apibrėžti, tačiau kadangi krumpliaračiai yra atskiri skaičiai, buvo lengviau kad jis taptų parametru, užuot susidūręs su projekcijomis ir pan. Pirmąjį ir trečiąjį koeficientus galima apibrėžti viena linija, o (-1)* antrąjį koeficientą sudaro taško X koordinatė, kur tiesė „sukasi“keičiant pavarą.
Šioje vizualizacijoje argumentus vaizduoja vertikali linija, o vertybes - horizontali, ir aš žinau, kad tai gali erzinti, bet man tai buvo intuityviau ir geriau atitiko GUI. Tikriausiai tai yra priežastis, kodėl ekonomistai taip piešia savo grafikus.
5 žingsnis: Baigti
Dabar jums reikia kelių programų, kuriomis galėtumėte važiuoti nauju treniruokliu (tai sutaupė apie 900 USD:)). Čia yra mano nuomonė apie kai kuriuos iš jų.
- „RGT Cycling“- mano nuomone, geriausias - jis turi visiškai nemokamą parinktį, tačiau turi šiek tiek takelių. Geriausiai susidoroja su ryšio dalimi, nes jūsų telefonas jungiasi per „Bluetooth“ir kompiuteris rodo takelį. Naudojamas tikroviškas vaizdo įrašas su AR dviratininku
- „Rouvy“- daug takelių, tik mokama prenumerata, kažkodėl kompiuterio programa su tuo neveikia, turite naudotis savo telefonu. Gali kilti problemų, kai nešiojamasis kompiuteris naudoja tą pačią „Bluetooth“ir „WiFi“kortelę, ji dažnai vėluoja ir nenori įkelti
- „Zwift“- tik mokamas animacinis žaidimas, su treneriu veikia gana gerai, tačiau vartotojo sąsaja yra gana primityvi - paleidimo priemonė naudoja meniu „Internet Explorer“.
Jei jums patiko statyti (ar ne), pasakykite man komentaruose ir, jei turite klausimų, galite užduoti čia arba pateikti problemą „github“. Aš mielai viską paaiškinsiu, nes tai gana sudėtinga.
Rekomenduojamas:
„Pasidaryk pats“makro objektyvas su AF (kitoks nei visi kiti „pasidaryk pats“makro objektyvai): 4 žingsniai (su nuotraukomis)
„Pasidaryk pats“makro objektyvas su AF (kitoks nei visi kiti „pasidaryk pats“makro objektyvai): mačiau daug žmonių, gaminančių makro objektyvus su standartiniu rinkiniu (paprastai 18–55 mm). Dauguma jų yra objektyvas, tiesiog prilipęs prie fotoaparato atgal arba nuimtas priekinis elementas. Abi šios galimybės turi neigiamų pusių. Objektyvui pritvirtinti
„Pasidaryk pats“dviračių tachometras: 5 žingsniai (su nuotraukomis)
„Pasidaryk pats“dviračių tachometras: parodysiu, kaip sukurti dviračio spidometrą. Tai rodo jūsų greitį, vidutinį greitį, temperatūrą, kelionės laiką ir bendrą atstumą. Galite pakeisti naudodami mygtuką. Be to, greitis rodomas tachometre. Aš jį sukūriau, nes
Sukurkite mini „pasidaryk pats“hidroponines sistemas ir pasidaryk pats „Hydroponic Herb Garden“su „WiFi“įspėjimais: 18 žingsnių
Sukurkite mini „pasidaryk pats“hidroponines sistemas ir pasidaryk pats „Hydroponic Herb Garden“su „Wi -Fi“įspėjimais: šioje pamokoje parodysime, kaip sukurti #DIY #hidroponikos sistemą. Ši „pasidaryk pats“hidroponinė sistema laistys pagal pasirinktą hidroponinį laistymo ciklą, 2 minutes įjungus ir 4 minutes išjungus. Jis taip pat stebės rezervuaro vandens lygį. Ši sistema
„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis - „Arduino PS2“žaidimų valdiklis - Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino“žaidimų pultą: 7 žingsniai
„Arduino“pagrindu sukurtas „pasidaryk pats“žaidimų valdiklis | „Arduino PS2“žaidimų valdiklis | Žaidimas „Tekken“naudojant „pasidaryk pats“„Arduino Gamepad“: Sveiki, vaikinai, žaisti žaidimus visada smagu, tačiau žaisti su savo „pasidaryk pats“žaidimo valdikliu yra smagiau. Taigi, mes padarysime žaidimų valdiklį naudodami „arduino pro micro“šioje instrukcijoje
Dviračių apsaugos priemonė: „Sistema De Alerta“pasidaryk pats „Ciclistas“: 4 žingsniai
Dviračių apsaugos priemonė: „Sistema De Alerta DIY Para Ciclistas“: „Dviračių taupymo sistema“ir „Illuminación y alerta que involucra un enfoque de la comunidad“kūrėjas, skirtas paraiškų teikimo dienoraščio dienoraščio dienoraščio dienoraščio dienoraščio dienoraščio dienoraščiui. y noche.El sis