Sadržaj:
Video: Pametni trener za unutarnje bicikle DIY: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Uvod
Ovaj je projekt započeo kao jednostavna modifikacija unutarnjeg bicikla Schwinn IC Elite koji koristi jednostavne vijke i podloške od filca za postavke otpora. Problem koji sam htio riješiti bio je velik korak vijka, pa je raspon od nemogućnosti okretanja pedale do potpunog slobodnog okretanja kotača bio samo nekoliko stupnjeva na gumbu za otpor. U početku sam vijak promijenio u M6, no onda bih morao napraviti gumb, pa zašto jednostavno ne biste upotrijebili lijevi stepen NEMA 17 za mijenjanje otpora? Ako već postoji neka elektronika, zašto računalu ne biste dodali mjerač snage radilice i bluetooth vezu kako biste napravili pametni trener?
To se pokazalo težim od očekivanog, jer nije bilo primjera kako oponašati mjerač snage s arduinom i bluetoothom. Na kraju sam potrošio oko 20 sati na programiranje i tumačenje BLE GATT specifikacija. Nadam se da ću pružanjem primjera pomoći nekome da ne troši ovoliko vremena na pokušaj razumijevanja što točno znači "Polje vrste podataka oglasa usluge" …
Softver
Cijeli projekt je na GitHub -u:
github.com/kswiorek/ble-ftms
Toplo preporučujem korištenje Visual Studija s dodatkom VisualGDB ako namjeravate učiniti nešto ozbiljnije od kopiranja mog koda.
Ako imate pitanja o programu, pitajte, znam da moji minimalistički komentari možda neće puno pomoći.
Zasluge
Hvala stoppi71 na vodiču o tome kako napraviti mjerač snage. Radionicu sam napravio prema njegovu nacrtu.
Pribor:
Materijali za ovaj projekt uvelike ovise o tome koji bicikl mijenjate, ali postoje neki univerzalni dijelovi.
Ručica:
- ESP32 modul
- HX711 Senzor težine ADC
- Mjerači napona
- MPU - žiroskop
- Mala Li-Po baterija (oko 750 mAh)
- Termoskupljajući rukav
- A4988 Vozač koraka
- 5V regulator
- Utikač za arduino cijev
- 12V arduino napajanje
Konzola:
- NEMA 17 steper (mora biti prilično moćan,> 0,4 Nm)
- Šipka M6
- 12864 LCD
- WeMos LOLIN32
- Taktni prekidači
Oprema
Za to biste se vjerojatno mogli izvući koristeći samo 3D pisač, međutim možete uštedjeti puno vremena laserskim rezanjem kućišta, a možete i izraditi PCB -ove. DXF i gerber datoteke nalaze se na GitHubu, pa ih možete naručiti lokalno. Spojka od navojne šipke do motora bila je okrenuta na tokarskom stroju i to bi mogao biti jedini problem jer dio mora biti prilično čvrst da povuče jastučiće, ali u ovom biciklu nema puno prostora.
Od izrade prvog bicikla nabavio sam glodalicu koja mi omogućuje izradu utora za senzore u radilici. To ih čini malo lakšim lijepljenjem i štiti ako nešto udari u ručicu. (Nekoliko puta su mi padali ti senzori pa sam htio biti siguran.)
Korak 1: Ručica
Najbolje je samo slijediti ovaj vodič:
U osnovi morate zalijepiti senzore na ručicu na četiri mjesta i spojiti ih sa stranama ploče.
Odgovarajuće veze već postoje pa samo morate lemiti parove žica izravno na ovih osam jastučića na ploči.
Za spajanje na senzore upotrijebite najtanju moguću žicu - jastučići se vrlo lako podižu. Morate prvo zalijepiti senzore i ostaviti ih dovoljno vani da se leme, a zatim ostatak prekriti epoksidom. Ako pokušate lemiti prije lijepljenja, oni se uvijaju i lome.
Za sastavljanje PCB -a:
- Umetnite zlatne igle odozdo (strana sa tragovima) u sve rupe osim okomitih pri dnu.
- Postavite tri ploče (ESP32 na vrh, zatim MPU, HX711 na dno) tako da zlatne iglice zalijepe kroz obje rupe.
- Zalijepite zaglavlja na ploče na vrhu
- Odrežite zlatne igle s dna. (Pokušajte ih prije rezanja rezati, tako da znate da vaše "zlatne igle" nisu od čelika iznutra - to ih čini gotovo nemogućim za rezanje i morate ih turpijom ili samljeti)
- lemiti preostale zlatne igle na dno ploče.
- Učitajte firmver za radilicu
Posljednji korak je pakiranje cijele ručice termoskupljajućom navlakom.
Ova metoda izrade ploče nije idealna jer ploče zauzimaju puno prostora u koji možete smjestiti druge stvari. Najbolje bi bilo izravno lemiti sve komponente na ploču, ali nedostaje mi vještina da sam lemim ove male SMD -ove. Morao bih ga naručiti sastavljenog, vjerojatno bih napravio neke pogreške i na kraju ih naručio tri puta i čekao godinu dana prije nego što stignu.
Ako bi netko mogao dizajnirati ploču, bilo bi sjajno da ima neki zaštitni sklop baterije i senzor koji bi uključio ESP ako bi se ručica počela kretati.
VAŽNO
Senzor HX711 prema zadanim postavkama postavljen je na 10Hz - mnogo je sporije za mjerenje snage. Morate podići pin 15 s ploče i spojiti ga na pin 16. Time se pin podiže i omogućuje način rada 80Hz. Usput, ovaj 80Hz postavlja brzinu cijele arduino petlje.
Upotreba
ESP32 je programiran za odlazak u san nakon 30 -ih godina bez povezanog Bluetooth uređaja. Da biste ga ponovno uključili, morate pritisnuti gumb za poništavanje. Senzori se također napajaju iz digitalnog pina, koji se u stanju mirovanja smanjuje. Ako želite testirati senzore s primjerom koda iz knjižnica, morate voziti pin visoko i pričekati malo prije nego se senzori uključe.
Nakon montaže senzore je potrebno kalibrirati očitavanjem vrijednosti bez sile, a zatim s primijenjenom težinom (koristio sam kettlebell od 12 kg ili 16 kg obješen na papučicu). Ove vrijednosti potrebno je unijeti u powerCrank kôd.
Ručicu je najbolje tarati prije svake vožnje - ona se ne bi trebala moći tarati kad netko pedalira, već bolje nego što je žao, a moguće ju je tarati samo jednom po uključivanju. Ako primijetite neke čudne razine snage, morate ponoviti ovaj postupak:
- Stavite ručicu ravno dolje dok svjetlo ne počne treptati.
- Nakon nekoliko sekundi svjetlo će ostati upaljeno - tada ga ne dirajte
- Kad se svjetlo isključi, postavlja trenutnu silu otkrivenu kao novo 0.
Ako želite samo koristiti ručicu, bez konzole, kod je ovdje na githubu. Sve ostalo radi isto.
Korak 2: Konzola
Kućište je izrezano od 3 mm akrila, gumbi su 3D ispisani i postoje odstojnici za LCD, izrezani od 5 mm akrila. Zalijepljen je vrućim ljepilom (prilično se dobro lijepi za akril) i postoji 3D tiskani "nosač" koji drži PCB na LCD -u. Igle za LCD su lemljene s donje strane tako da ne ometaju ESP.
ESP je lemljen naopako, pa USB priključak stane u kućište
PCB zasebnog gumba zalijepljen je vrućim ljepilom, pa su gumbi zarobljeni u svojim rupama, ali i dalje pritiskaju prekidače. Gumbi su spojeni na ploču pomoću konektora JST PH 2.0, a redoslijed pinova lako se zaključuje iz sheme
Vrlo je važno montirati upravljač koraka u ispravnoj orijentaciji (potenciometar u blizini ESP -a)
Cijeli dio za SD karticu je onemogućen, jer ga nitko nije koristio u prvoj verziji. Kôd je potrebno ažurirati nekim postavkama korisničkog sučelja, poput težine vozača i postavljanja poteškoća.
Konzola se montira pomoću laserski izrezanih "ruku" i patentnih zatvarača. Mali zubići zabijaju se u upravljač i drže konzolu.
Korak 3: Motor
Motor se drži na mjestu gumba za podešavanje s 3D tiskanim nosačem. Na osovinu je montirana spojnica - jedna strana ima otvor od 5 mm s vijcima za pričvršćivanje osovine, a druga ima navoj M6 s vijcima za učvršćivanje. Ako želite, vjerojatno ga možete napraviti u bušilici od nekih 10 mm okruglih zaliha. Ne mora biti iznimno precizan jer motor nije postavljen jako čvrsto.
Komad M6 navojne šipke uvijen je u spojnicu i povlači mjedenu maticu M6. Strojno sam ga obrađivao, ali se isto tako lako može napraviti od komada mjedi s turpijom. Možete čak i zavariti neke komade na normalnu maticu kako se ne bi rotirala. 3D ispisana matica također može biti rješenje.
Navoj mora biti finiji od pužnog vijka. Nagib mu je oko 1,3 mm, a za M6 0,8 mm. Motor nema dovoljan zakretni moment za okretanje stočnog vijka.
Maticu je potrebno dobro podmazati jer motor jedva može okrenuti vijak na višim postavkama
Korak 4: Konfiguracija
Da biste učitali kôd na ESP32 iz Arduino IDE-a, morate slijediti ovaj vodič:
Ploča je "WeMos LOLIN32", ali "Dev modul" također radi
Predlažem korištenje Visual Studija, ali se često zna pokvariti.
Prije prve uporabe
Ručicu je potrebno postaviti prema koraku "Radilica"
Pomoću aplikacije "nRF Connect" morate provjeriti MAC adresu ručice ESP32 i postaviti je u datoteku BLE.h.
U retku 19 indoorBike.ino trebate postaviti, koliko je rotacija vijka potrebno da postavite otpor od potpuno labavog do maksimalnog. ("Maksimum" je namjerno subjektivan, s ovom postavkom prilagođavate poteškoće.)
Pametni trener ima "virtualne zupčanike" za njihovo pravilno postavljanje, morate ga kalibrirati na linijama 28 i 29. Morate pedalirati s konstantnom kadencom na zadanoj postavci otpora, zatim pročitati snagu i postaviti je u datoteku. Ponovite ovo s drugom postavkom.
Krajnji lijevi gumb prebacuje se iz načina rada ERG (apsolutni otpor) u način simulacije (virtualni zupčanici). Način simulacije bez veze s računalom ne radi ništa jer nema simulacijskih podataka.
Redak 36. postavlja virtualne zupčanike - broj i omjere. Izračunavate ih dijeljenjem broja zuba u prednjem zupčaniku s brojem zuba u stražnjem.
U retku 12. stavljate težinu vozača i bicikla (U [newtons], masa pomnožena s gravitacijskim ubrzanjem!)
Cijeli ovaj dio iz fizike vjerojatno je previše kompliciran, pa čak se ni ja ne sjećam što točno radi, ali izračunavam potreban zakretni moment da biciklista povučem uzbrdo ili nešto slično (zato kalibracija).
Ovi parametri su vrlo subjektivni, morate ih postaviti nakon nekoliko vožnji kako bi ispravno radili.
COM port za otklanjanje pogrešaka šalje izravne binarne podatke koje Bluetooth prima pod navodnicima ('') i podatke simulacije.
Konfigurator
Budući da se konfiguracija navodno realne fizike pokazala kao velika gnjavaža kako bi se učinila realnom, stvorio sam GUI konfigurator koji bi trebao omogućiti korisnicima grafičko definiranje funkcije koja se pretvara s nagiba brda u apsolutnu razinu otpora. Još nije u potpunosti dovršen i nisam ga imao priliku testirati, ali u nadolazećem mjesecu preinačit ću drugi bicikl, pa ću ga tada ispolirati.
Na kartici "Gears" možete postaviti omjer svakog stupnja prijenosa pomicanjem klizača. Zatim morate kopirati bitni kod kako biste zamijenili definirane zupčanike u kodu.
Na kartici "Ocjena" dobivate grafikon linearne funkcije (da, pokazalo se da je najomraženiji predmet u matematici zapravo koristan) koji uzima ocjenu (okomita os) i daje korake apsolutnog otpora (vodoravna os). Za matematičare ću malo kasnije otići u matematiku.
Korisnik može definirati ovu funkciju pomoću dvije točke na njoj. S desne strane postoji mjesto za promjenu trenutnog stupnja prijenosa. Odabrani stupanj prijenosa, kao što možete zamisliti, mijenja način, kako ocjena označava otpor - na nižim stupnjevima prijenosa lakše je pedalirati uzbrdo. Pomicanjem klizača mijenja se drugi koeficijent koji utječe na to kako odabrani stupanj prijenosa mijenja funkciju. Najlakše se igrati s njim neko vrijeme kako biste vidjeli kako se ponaša. Možda ćete također morati isprobati nekoliko različitih postavki kako biste pronašli ono što vam najbolje odgovara.
Napisan je na Pythonu 3 i trebao bi raditi sa zadanim knjižnicama. Da biste ga koristili, morate dekomentirati retke odmah nakon "raskomentirajte ove retke da biste koristili konfigurator". Kao što sam rekao, nije testirano, pa bi moglo doći do pogrešaka, ali ako se nešto pojavi, napišite komentar ili otvorite problem kako bih to mogao ispraviti.
Matematika (i fizika)
Jedini način na koji kontroler može stvoriti osjećaj kao da idete uzbrdo je okretanjem otpora zavrtnja. Moramo ocjenu pretvoriti u broj rotacija. Radi lakšeg postavljanja, cijeli raspon od potpuno labavog do nemogućnosti okretanja ručice podijeljen je u 40 koraka, isto što se koristi u ERG načinu rada, ali ovaj put umjesto stvarnih brojeva koristi stvarne brojeve. To se radi pomoću jednostavne funkcije karte - možete je potražiti u kodu. Sada smo korak više - umjesto da se bavimo okretajima vijka, mi se bavimo zamišljenim koracima.
Kako to zapravo funkcionira kad se biciklom penjete uzbrdo (pod pretpostavkom konstantne brzine)? Očito mora postojati neka sila koja vas tjera prema gore, inače ćete se otkotrljati. Ova sila, kako nam govori prvi zakon kretanja, mora biti jednaka po veličini, ali suprotna po smjeru sili koja vas vuče prema dolje, kako biste bili u jednolikom gibanju. Dolazi od trenja između kotača i tla, a ako nacrtate dijagram ovih sila, mora biti jednaka težini bicikla i vozaču puta ocjeni:
F = Fg*G
Što tjera kotač da primijeni tu silu? Kako se bavimo zupčanicima i kotačima, lakše je razmišljati o okretnom momentu, koji je jednostavno sila puta radijus:
t = F*R
Budući da su u pitanju zupčanici, ručici se daje okretni moment koji povlači lanac i okreće kotač. Zakretni moment potreban za okretanje kotača množi se s prijenosnim omjerom:
tp = tw*gr
i natrag iz formule zakretnog momenta dobivamo silu potrebnu za okretanje pedale
Fp = tp/r
To je nešto što možemo mjeriti pomoću mjerača snage u radilici. Kako je dinamičko trenje linearno povezano sa silom i kako ovaj bicikl koristi opruge za prijenos te sile, linearno je prema kretanju vijka.
Snaga je sila puta brzina (pretpostavljajući isti smjer vektora)
P = F*V
a linearna brzina pedale povezana je s kutnom brzinom:
V = ω*r
i tako možemo izračunati silu potrebnu za okretanje pedala na zadanu razinu otpora. Kako je sve linearno povezano, za to možemo koristiti proporcije.
To je u osnovi bilo ono što je softver trebao izračunati tijekom kalibracije i korištenjem kružnog toka da bismo dobili komplicirani kompozit, ali linearnu funkciju koja se odnosi na stupanj otpora. Napisao sam sve na papiru, izračunao konačnu jednadžbu i sve konstante postale su tri koeficijenta.
Ovo je tehnički 3D funkcija koja predstavlja ravninu (mislim) koja uzima ocjenu i omjer prijenosa kao argumente, a ta tri koeficijenta povezana su s onima potrebnima za definiranje ravnine, ali kako su zupčanici diskretni brojevi, bilo je lakše učiniti parametrom umjesto da se bavi projekcijama i slično. Prvi i treći koeficijent mogu se definirati jednom linijom, a (-1)* drugi koeficijent je X koordinata točke, gdje se linija "okreće" okolo pri promjeni stupnjeva prijenosa.
U ovoj vizualizaciji argumenti su predstavljeni okomitom linijom, a vrijednosti vodoravnom, i znam da bi to moglo biti neugodno, ali meni je to bilo intuitivnije i bolje je odgovaralo grafičkom sučelju. To je vjerojatno razlog zašto ekonomisti na ovaj način crtaju svoje grafikone.
Korak 5: Završite
Sada su vam potrebne neke aplikacije za vožnju na vašem novom trenažeru (čime ste uštedjeli oko 900 USD:)). Evo mojih mišljenja o nekima od njih.
- RGT Biciklizam - po meni najbolji - ima potpuno besplatnu opciju, ali ima malo pjesama. Najbolji je dio spoja jer se vaš telefon povezuje putem Bluetootha, a računalo prikazuje pjesmu. Koristi realističan video zapis s AR biciklistom
- Rouvy - puno pjesama, samo plaćena pretplata, iz nekog razloga aplikacija za računalo ne radi s tim, morate koristiti telefon. Mogući su problemi kada vaše prijenosno računalo koristi istu karticu za bluetooth i WiFi, često zaostaje i ne želi se učitati
- Zwift - animirana igra, samo plaćena, radi prilično dobro s trenerom, ali korisničko sučelje je prilično primitivno - pokretač koristi Internet Explorer za prikaz izbornika.
Ako vam se svidjela izrada (ili ne), recite mi u komentarima, a ako imate bilo kakvih pitanja, možete ih postaviti ovdje ili poslati problem githubu. Rado ću sve objasniti jer je prilično komplicirano.
Preporučeni:
Prijenosno unutarnje svjetlo sa LED čipom od 100 W: 26 koraka (sa slikama)
Prijenosno unutarnje svjetlo sa LED čipom od 100 W: U ovom uputstvu / videu pokazat ću vam kako sam napravio prijenosno unutarnje svjetlo sa LED čipom od 100 W koje se napaja sa 19V napajanjem od 90 W sa starog prijenosnog računara. UPDATE 2 (FINAL): Temperatura oko LED diode (37C stabilno pri 85 W nakon 30 minuta u prostoriji od 20 C)
Automatizirani vrtni sustav izgrađen na Raspberry Pi za vanjske ili unutarnje prostore - MudPi: 16 koraka (sa slikama)
Automatizirani vrtni sustav izgrađen na Raspberry Pi za vanjske ili unutarnje prostore - MudPi: Volite li vrtlarstvo, ali ne možete pronaći vremena za njegovo održavanje? Možda imate neke sobne biljke koje izgledaju pomalo žedno ili traže način da automatiziraju vašu hidroponiku? U ovom ćemo projektu riješiti te probleme i naučiti osnove
Sustav za nadzor unutarnje klime na bazi maline Pi: 6 koraka
Sustav za nadzor klime u zatvorenom prostoru na bazi maline Pi: Pročitajte ovaj blog i izgradite vlastiti sustav tako da možete primati upozorenja kada je vaša soba previše suha ili vlažna. Što je sustav za nadzor klime u zatvorenom prostoru i zašto nam je potreban? Sustavi za nadzor klime u zatvorenom prostoru pružite brz pogled na ključne klimatske odnose
Napravite unutarnje ušne slušalice za Oculus Rift samo 160 jena .: 5 koraka
Napravite unutarnje ušne slušalice za Oculus Rift samo 160 jena.: Oculusov originalni set hedafona za unutarnje uho košta 5800 jena (oko 50 USD). Napravio sam jeftine slušalice s ovom stavkom Ispitivanje sondi sa oprugom sa oprugom za testiranje pinsand unutarnjih ušnih slušalica
Izradite senzorski uređaj za unutarnje okruženje: 4 koraka
Izgradite senzorski uređaj za unutarnje okruženje: Danas su ljudi više zabrinuti zbog kvalitete zatvorenog prostora u kojem žive jer je to blisko povezano s njihovim zdravljem. Važnost bolje kvalitete života uključuje spoznaju da imate poboljšane životne uvjete. I ja sam vrlo dio