INHOUDSOPGAWE:

DIY binnenshuise fiets -afrigter: 5 stappe
DIY binnenshuise fiets -afrigter: 5 stappe

Video: DIY binnenshuise fiets -afrigter: 5 stappe

Video: DIY binnenshuise fiets -afrigter: 5 stappe
Video: Thuis Binnen Fietsen - Wat Zijn Je Mogelijkheden? 2024, Julie
Anonim
DIY binnenshuise fiets -afrigter
DIY binnenshuise fiets -afrigter
DIY binnenshuise fiets -afrigter
DIY binnenshuise fiets -afrigter
DIY binnenshuise fiets -afrigter
DIY binnenshuise fiets -afrigter

Inleiding

Hierdie projek het begin as 'n eenvoudige aanpassing van 'n Schwinn IC Elite binnenshuise fiets wat 'n eenvoudige skroef en viltblokkies gebruik vir die weerstandsinstellings. Die probleem wat ek wou oplos, was dat die steek van die skroef te groot was, sodat die reikwydte van nie kan trap tot die wiel heeltemal gratis draai nie, slegs 'n paar grade op die weerstandsknop was. Eers het ek die skroef na M6 verander, maar dan sou ek 'n knop moes maak, so hoekom gebruik u nie net 'n oorblywende NEMA 17 -stepper om die weerstand te verander nie? As daar reeds elektronika is, hoekom voeg u nie 'n kruk -kragmeter en 'n bluetooth -aansluiting by 'n rekenaar om 'n slim afrigter te maak nie?

Dit was moeiliker as wat verwag is, want daar was geen voorbeelde oor hoe om 'n kragmeter met 'n arduino en bluetooth na te boots nie. Uiteindelik bestee ek ongeveer 20 uur aan die programmering en interpretasie van die BLE GATT -spesifikasies. Ek hoop dat ek deur 'n voorbeeld te gee, iemand kan help om nie soveel tyd te mors om te probeer verstaan wat presies 'Service Data AD Type Field' beteken nie …

Sagteware

Die hele projek is op GitHub:

github.com/kswiorek/ble-ftms

Ek beveel sterk aan dat u Visual Studio met 'n VisualGDB-inprop gebruik as u van plan is om iets ernstiger te doen as om net my kode te plak.

As u vrae het oor die program, vra dit, ek weet dat my minimalistiese opmerkings nie veel kan help nie.

Krediete

Dankie aan stoppi71 vir sy gids oor hoe om 'n kragmeter te maak. Ek het die kruk volgens sy ontwerp gedoen.

Benodighede:

Die materiaal vir hierdie projek hang baie af van watter fiets u verander, maar daar is 'n paar universele onderdele.

Kruk:

  1. ESP32 -module
  2. HX711 Gewigsensor ADC
  3. Rekmeters
  4. MPU - gyroscoop
  5. 'N Klein Li-Po-battery (ongeveer 750mAh)
  6. Hitte krimp mou
  7. A4988 Stepper driver
  8. 5V reguleerder
  9. 'N Arduino vat jack
  10. 12V arduino kragtoevoer

Konsole:

  1. NEMA 17 stepper (moet redelik kragtig wees,> 0.4Nm)
  2. M6 staaf
  3. 12864 lcd
  4. WeMos LOLIN32
  5. Takt skakelaars

Toerusting

Om dit te doen, kan u waarskynlik net met 'n 3D -drukker wegkom, maar u kan baie tyd bespaar deur die kas met laser te sny en ook PCB's te maak. Die DXF- en gerber -lêers is op GitHub, sodat u dit plaaslik kan bestel. Die koppelaar van die draadstang na die motor is op 'n draaibank aangeskakel, en dit is miskien die enigste probleem, aangesien die onderdeel redelik sterk moet wees om aan die remme te trek, maar daar is nie veel ruimte in hierdie spesifieke fiets nie.

Sedert ek die eerste fiets gemaak het, het ek 'n frees gekry wat my in staat stel om gleuwe vir die sensors in die kruk te maak. Dit maak dit 'n bietjie makliker om dit vas te plak en beskerm dit ook as iets aan die kruk sou raak. (Ek het hierdie sensors 'n paar keer laat val, so ek wou veilig wees.)

Stap 1: Die kruk:

Die kruk
Die kruk
Die kruk
Die kruk
Die kruk
Die kruk

Dit is die beste om hierdie tutoriaal te volg:

U moet die sensors op vier plekke aan die kruk vasplak en aan die kante van die bord koppel.

Die regte verbindings is reeds daar, dus u hoef net die paar drade direk aan hierdie agt pads op die bord te soldeer.

Gebruik die dunste draad om aan die sensors te koppel - die pads is baie maklik om op te lig. U moet eers die sensors plak en net genoeg van hulle buite laat om te soldeer, en dan die res bedek met epoxy. As jy probeer soldeer voordat jy dit plak, krul en breek dit.

Om die PCB te monteer:

  1. Steek goue spelde van die onderkant (die kant met spore) in alle gate behalwe die vertikale naby die onderkant.
  2. Plaas die drie borde (ESP32 bo -op, dan MPU, die HX711 onder) sodat die goue spelde deur albei gate steek.
  3. Soldeer die koppe aan die planke bo -op
  4. Sny die goue spelde van onder af. (Probeer dit eers sny voordat dit gemonteer word, sodat u weet dat u 'goue spelde' nie staal binne is nie - dit maak dit byna onmoontlik om te sny en u moet dit vyl of maal)
  5. soldeer die oorblywende goudpenne aan die onderkant van die bord.
  6. Laai die firmware vir die kruk op

Die laaste stap is om die hele kruk met 'n hitte -krimpmou te pak.

Hierdie metode om die bord te maak, is nie ideaal nie, aangesien die planke baie ruimte inneem waarin u ander dinge kan pas. Die beste sou wees om al die komponente direk aan die bord te soldeer, maar ek het nie die vaardigheid om hierdie klein SMD self te soldeer nie. Ek sou dit saamgestel moes bestel, en ek sou waarskynlik 'n paar foute begaan en uiteindelik drie keer bestel en 'n jaar wag voordat hulle aankom.

As iemand die bord sou kon ontwerp, sou dit wonderlik gewees het as daar 'n stroombaan vir batterybeskerming en 'n sensor was wat die ESP sou aanskakel as die kruk begin beweeg.

BELANGRIK

Die HX711 -sensor is standaard op 10Hz gestel - dit is baie te stadig vir die kragmeting. U moet pen 15 van die bord af optel en met pen 16 koppel. Dit dryf die pen HOOG en aktiveer die 80Hz -modus. Hierdie 80Hz bepaal terloops die tempo van die hele arduino -lus.

Gebruik

Die ESP32 is geprogrammeer om na 30's te gaan slaap sonder dat 'n Bluetooth -toestel gekoppel is. Om dit weer aan te skakel, moet u op die reset -knoppie druk. Die sensors word ook aangedryf deur 'n digitale pen, wat in die slaapmodus LAAG draai. As u die sensors met die voorbeeldkode uit biblioteke wil toets, moet u die pen HOOG aandryf en 'n bietjie wag voordat die sensors aanskakel.

Na die samestelling moet die sensors gekalibreer word deur die waarde sonder krag en dan met 'n gewig af te lees (ek gebruik 'n kettlebell van 12 kg of 16 kg wat aan die pedaal gehang is). Hierdie waardes moet in die powerCrank -kode geplaas word.

Dit is die beste om die kruk voor elke rit te ruk - dit behoort nie in staat te wees om homself te tare as iemand trap nie, maar beter as om jammer te wees, en dit is moontlik om dit net een keer per keer aan te skakel. As u 'n paar vreemde kragvlakke opmerk, moet u hierdie proses herhaal:

  1. Sit die kruk reguit totdat die lig begin flikker.
  2. Na 'n paar sekondes bly die lig aan - moenie daaraan raak nie
  3. As die lig afskakel, stel dit die huidige krag wat opgespoor word as 'n nuwe 0.

As u net die kruk wil gebruik, sonder die konsole, is die kode hier op github. Al die ander werk dieselfde.

Stap 2: Die konsole

Die konsole
Die konsole
Die konsole
Die konsole
Die konsole
Die konsole

Die omhulsel is gesny uit 3 mm akriel, die knoppies is 3D gedruk en daar is afstandhouers vir die LCD, gesny uit 5 mm akriel. Dit word met warm gom vasgeplak (dit hou baie goed by die akriel) en daar is 'n 3D -gedrukte "bracket" om die print aan die LCD vas te hou. Die penne vir die LCD word aan die onderkant gesoldeer sodat dit nie die ESP belemmer nie.

Die ESP is onderstebo gesoldeer, sodat die USB-poort in die omhulsel pas

Die afsonderlike PCB -knoppie word met warm gom vasgeplak, sodat die knoppies in hul gate vasgevang word, maar hulle druk steeds op die skakelaars. Die knoppies is met die JST PH 2.0 -verbindings op die bord gekoppel en die penvolgorde is maklik af te lei uit die skematiese

Dit is baie belangrik om die stepper driver in die regte oriëntasie te monteer (die potensiometer naby die ESP)

Die hele gedeelte vir die SD -kaart is uitgeskakel, aangesien niemand dit in die eerste weergawe gebruik het nie. Die kode moet opgedateer word met 'n paar UI -instellings, soos die gewig van die ruiter en die moeilikheidsgraad.

Die konsole word gemonteer met lasersnitte "arms" en ritsen. Die klein tande grawe in die stuur en hou die konsole vas.

Stap 3: Die motor

Die motor
Die motor
Die motor
Die motor
Die motor
Die motor

Die motor hou hom in die plek van die verstelknop met 'n 3D -gedrukte hakie. Aan die as is 'n koppelstuk gemonteer - die een kant het 'n 5 mm -gat met stelskroewe om die as vas te hou, die ander een het 'n M6 -draad met stelskroewe om dit te sluit. As u wil, kan u dit waarskynlik in 'n boorpers uit ongeveer 10 mm ronde voorraad maak. Dit hoef nie uiters presies te wees nie, aangesien die motor nie baie styf gemonteer is nie.

'N Stukkie M6 -draadstaaf word in die koppelstuk vasgeskroef en dit trek 'n koper M6 -moer aan. Ek het dit bewerk, maar dit kan net so maklik gemaak word uit 'n stuk koper met 'n lêer. U kan selfs 'n paar stukke aan 'n normale moer sweis, sodat dit nie draai nie. 'N 3D -gedrukte moer kan ook 'n oplossing wees.

Die draad moet fyner wees as die voorraadskroef. Sy hoogte is ongeveer 1,3 mm, en vir M6 is dit 0,8 mm. Die motor het nie genoeg wringkrag om die voorraadskroef te draai nie.

Die moer moet goed gesmeer word, aangesien die motor skaars die hoër skroef kan draai

Stap 4: Konfigurasie

Konfigurasie
Konfigurasie
Konfigurasie
Konfigurasie

Om die kode na ESP32 vanaf Arduino IDE op te laai, moet u hierdie tutoriaal volg:

Die bord is 'WeMos LOLIN32', maar die 'Dev -module' werk ook

Ek stel voor dat u Visual Studio gebruik, maar dit kan gereeld breek.

Voor die eerste gebruik

Die kruk moet opgestel word volgens die "Crank" -stap

Met die "nRF Connect" -app moet u die MAC -adres van die crank ESP32 nagaan en dit in die BLE.h -lêer plaas.

In reël 19 van indoorBike.ino moet u bepaal hoeveel rotasies van die skroef nodig is om die weerstand van heeltemal los tot maksimum te stel. (Die 'maksimum' is doelbewus subjektief; u pas die moeilikheid met hierdie instelling aan.)

Die slim afrigter het 'virtuele ratte' om dit korrek op te stel; u moet dit kalibreer op reëls 28 en 29. U moet met 'n konstante trap op 'n gegewe weerstandsinstelling trap, lees dan die krag en sit dit in die lêer. Herhaal dit weer met 'n ander instelling.

Die knoppie heel links skakel oor van ERG -modus (absolute weerstand) na simulasie -modus (virtuele ratte). Simulasie af sonder 'n rekenaarverbinding doen niks, aangesien daar geen simulasie data is nie.

Reël 36. stel die virtuele ratte in - die getal en verhoudings. U bereken dit deur die aantal tande in die voorste rat te deel deur die aantal tande in die agterste rat.

In reël 12. plaas u die gewig van die ruiter en die fiets (in [newton], massa keer die gravitasieversnelling!)

Die hele fisika -deel hiervan is waarskynlik te ingewikkeld en selfs ek kan nie onthou wat dit presies doen nie, maar ek bereken die vereiste wringkrag om die fietsryer opdraand of iets dergeliks te trek (daarom is die kalibrasie).

Hierdie parameters is baie subjektief; u moet dit na 'n paar ritte opstel sodat dit korrek kan werk.

Die ontfouting COM -poort stuur direkte binêre data wat deur Bluetooth ontvang word in aanhalings ('') en simulasiedata.

Die konfigurator

Omdat die opset van die sogenaamde realistiese fisika 'n groot moeite was om dit realisties te laat voel, het ek 'n GUI -konfigurator geskep waarmee gebruikers die funksie wat van die heuwel na die absolute weerstandsniveau omskakel, grafies kan definieer. Dit is nog nie heeltemal klaar nie en ek het nie die geleentheid gehad om dit te toets nie, maar in die komende maand sal ek 'n ander fiets omskakel, so ek sal dit dan poets.

Op die oortjie "Gears" kan u die verhouding van elke rat stel deur die skuifknoppies te beweeg. U moet dan die stukkie kode kopieer om die gedefinieerde ratte in die kode te vervang.

Op die oortjie "Graad" kry u 'n grafiek van 'n lineêre funksie (ja, dit blyk dat die mees gehate vak in wiskunde eintlik nuttig is) wat die graad (vertikale as) neem en absolute weerstandstappe (horisontale as) uitvoer. Ek sal 'n bietjie later in die wiskunde ingaan vir belangstellendes.

Die gebruiker kan hierdie funksie definieer met behulp van die twee punte wat daarop lê. Aan die regterkant is daar 'n plek om die huidige rat te verander. Die gekose versnelling verander, soos u u kan voorstel, die manier waarop die graad na weerstand inpas - op laer ratte is dit makliker om bergop te trap. Deur die skuifbalk te beweeg, verander die 2de koëffisiënt, wat die manier waarop die gekose rat die funksie verander verander. Dit is die maklikste om 'n rukkie daarmee te speel om te sien hoe dit optree. Miskien moet u ook 'n paar verskillende instellings probeer om te vind wat die beste by u pas.

Dit is in Python 3 geskryf en behoort met standaardbiblioteke te werk. Om dit te kan gebruik, moet u die lyne onmiddellik na 'los' 'n opmerking van hierdie reëls los om die konfigurator te gebruik '. Soos ek gesê het, dit is nie getoets nie, dus kan daar foute wees, maar as daar iets opduik, skryf 'n opmerking of maak 'n probleem oop, sodat ek dit kan regstel.

Die wiskunde (en fisika)

Die enigste manier waarop die kontroleerder dit kan laat voel asof u opdraand is, is deur die weerstandskroef te draai. Ons moet die graad omskakel in die aantal rotasies. Om die opstelling makliker te maak, is die hele reeks van heeltemal los tot om die kruk nie te draai nie in 40 stappe verdeel, dieselfde as in die ERG -modus, maar hierdie keer gebruik dit reële getalle in plaas van heelgetalle. Dit word gedoen met 'n eenvoudige kaartfunksie - u kan dit in die kode opsoek. Nou is ons 'n stap hoër - in plaas van om die draai van die skroef te hanteer, het ons te doen met denkbeeldige stappe.

Hoe werk dit nou eintlik as u bergop op 'n fiets gaan (met 'n konstante snelheid)? Daar moet duidelik 'n mate van krag wees om u op te stoot, anders rol u af. Hierdie krag, soos die eerste bewegingswet vir ons sê, moet ewe groot wees, maar teenoorgesteld in rigting as die krag wat u aftrek, sodat u in uniforme beweging kan wees. Dit kom uit die wrywing tussen die wiel en die grond, en as u die diagram van hierdie kragte teken, moet dit gelyk wees aan die gewig van die fiets en die ruiter, die maal:

F = Fg*G

Nou wat laat die wiel hierdie krag toepas? Aangesien ons te doen het met ratte en wiele, is dit makliker om te dink in terme van wringkrag, wat eenvoudig die krag is wat die radius is:

t = F*R

Aangesien daar ratte betrokke is, gee u 'n wringkrag aan die kruk, wat aan die ketting trek en die wiel draai. Die wringkrag wat nodig is om die wiel te draai, word vermenigvuldig met die ratverhouding:

tp = tw*gr

en terug van die wringkragformule kry ons die krag wat nodig is om die pedaal te draai

Fp = tp/r

Dit is iets wat ons kan meet met behulp van die kragmeter in die kruk. Aangesien dinamiese wrywing lineêr verband hou met die krag en aangesien hierdie spesifieke fiets vere gebruik om hierdie krag oor te dra, is dit lineêr vir die beweging van die skroef.

Krag is krag maal die snelheid (aanneem dieselfde rigting van vektore)

P = F*V

en die lineêre snelheid van die pedaal hou verband met die hoeksnelheid:

V = ω*r

en so kan ons die krag bereken wat nodig is om die pedale op 'n vasgestelde weerstandsvlak te draai. Aangesien alles lineêr verband hou, kan ons verhoudings hiervoor gebruik.

Dit was in wese wat die sagteware moes bereken tydens die kalibrasie en deur 'n rotonde te gebruik om 'n ingewikkelde saamgestelde, maar 'n lineêre funksie met betrekking tot weerstand te kry. Ek het alles op papier geskryf, die finale vergelyking bereken en al die konstantes het drie koëffisiënte geword.

Dit is tegnies 'n 3D -funksie wat 'n vlak voorstel (dink ek) wat die graad en die ratverhouding as die argumente beskou, en hierdie drie koëffisiënte hou verband met die wat nodig is om 'n vliegtuig te definieer, maar aangesien die ratte diskrete getalle is, was dit makliker om dit 'n parameter te maak in plaas van om te gaan met projeksies en so. Die 1ste en 3de koëffisiënte kan gedefinieer word deur 'n enkele reël en (-1)* die 2de koëffisiënt is die X-koördinaat van die punt, waar die lyn 'draai' wanneer die rat verander.

In hierdie visualisering word die argumente verteenwoordig deur die vertikale lyn en die waardes deur die horisontale, en ek weet dat dit irriterend kan wees, maar dit was vir my meer intuïtief en dit pas beter by die GUI. Dit is waarskynlik die rede waarom die ekonome hul grafieke so teken.

Stap 5: Voltooi

Nou het u 'n paar programme nodig om mee te ry op u nuwe afrigter (wat u ongeveer $ 900 gespaar het:)). Hier is my opinies oor sommige daarvan.

  • RGT Cycling - na my mening die beste - dit het 'n heeltemal gratis opsie, maar het 'n paar spore. Dit is die beste met die verbindingsdeel, want u telefoon verbind via Bluetooth en 'n rekenaar wys die snit. Gebruik realistiese video met 'n AR -fietsryer
  • Rouvy - baie snitte, slegs betaalde intekening, om een of ander rede werk die rekenaarprogram nie hiermee nie; u moet u telefoon gebruik. Daar kan probleme wees as u skootrekenaar dieselfde kaart vir bluetooth en WiFi gebruik, dit vertraag dikwels en wil nie laai nie
  • Zwift - 'n geanimeerde spel, slegs betaal, werk baie goed met die afrigter, maar die UI is redelik primitief - die lanseerder gebruik Internet Explorer om die spyskaart te vertoon.

As u dit geniet (of nie), vertel dit asseblief in die kommentaar, en as u enige vrae het, kan u hier vra of 'n probleem aan github voorlê. Ek sal met graagte alles verduidelik, want dit is baie ingewikkeld.

Aanbeveel: