Мазмуну:
Video: DIY Indoor Bike Smart Trainer: 5 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Киришүү
Бул долбоор Schwinn IC Elite жабык велосипедине жөнөкөй модификация катары башталган, ал каршылык орнотуулары үчүн жөнөкөй бураманы жана кийиз төшөмөлөрдү колдонот. Мен чечким келген маселе, бураманын кадамы чоң болгон, ошондуктан дөңгөлөктү педаль кыла албагандан тартып, толугу менен бекер айланууга чейин, каршылык баскычында эки градус гана болгон. Башында мен бураманы M6га алмаштырдым, бирок андан кийин тетик жасашым керек болчу, анда эмне үчүн каршылыкты өзгөртүү үчүн NEMA 17 тепкичтүү моторун колдонууга болбойт? Эгерде буга чейин кандайдыр бир электроника бар болсо, эмне үчүн акылдуу машыктыруучу кылуу үчүн компьютерге кричествалык эсептегичти жана Bluetooth байланышын кошпойсуз?
Бул күтүлгөндөн да кыйыныраак болуп чыкты, анткени электр эсептегичти arduino жана bluetooth менен кантип тууроо боюнча мисалдар жок болчу. Мен BLE GATT спецификацияларын программалоого жана чечмелөөгө 20 сааттай убакыт короттум. Мен мисал келтирүү менен, кимдир бирөөгө "Кызмат маалыматынын AD түрү талаасы" деген эмнени билдирерин түшүнүүгө көп убакыт коротпоого жардам бере алам деп үмүттөнөм …
Программалык камсыздоо
Бүт долбоор GitHubда:
github.com/kswiorek/ble-ftms
Эгерде сиз менин кодумду көчүрүп коюудан да олуттуу нерсени кылууну пландап жатсаңыз, Visual Studioну VisualGDB плагини менен колдонууну сунуштайм.
Эгерде сизде программа жөнүндө суроолор болсо, сураңыз, менин минималисттик комментарийлерим анча деле жардам бербеши мүмкүн экенин билем.
Кредиттер
Stoppi71 рахмат, кантип электр эсептегичти жасоо боюнча көрсөтмөсү үчүн. Мен анын дизайнына ылайык кранк жасадым.
Берилиштер:
Бул долбоордун материалдары велосипедди кандай өзгөртүп жатканыңыздан көз каранды, бирок универсалдуу бөлүктөрү бар.
Ири:
- ESP32 модулу
- HX711 Салмагы сенсор ADC
- Штамм өлчөгүчтөр
- MPU - гироскоп
- Кичинекей Li-Po батареясы (750 мАчтын тегерегинде)
- Жылуулукту кысуучу жең
- A4988 Stepper айдоочусу
- 5V жөндөгүч
- Ардуино баррелинин уячасы
- 12V arduino электр менен камсыздоо
Консоль:
- NEMA 17 тепкичи (абдан күчтүү болушу керек,> 0.4Nm)
- M6 таяк
- 12864 лкд
- WeMos LOLIN32
- Тактикалык которгучтар
Жабдуулар
Муну аткаруу үчүн, сиз 3D принтерин колдонуп кутула аласыз, бирок корпусту лазер менен кесүү менен көп убакытты үнөмдөй аласыз, ошондой эле ПХД жасай аласыз. DXF жана gerber файлдары GitHubда, ошондуктан сиз аларды жергиликтүү түрдө заказ кыла аласыз. Тиштүү таяктан моторго чейин кошкучу токардык станокто күйгүзүлгөн жана бул жалгыз көйгөй болушу мүмкүн, анткени тетиктерди тартуу үчүн тетиги абдан күчтүү болушу керек, бирок бул велосипедде көп орун жок.
Биринчи велосипедди жасагандан бери мен фрезердик станокко ээ болдум, ал мага кранктагы сенсорлор үчүн оюктарды жасоого мүмкүндүк берди. Бул аларды жабыштырууну бир аз жеңилдетет жана эгерде кандайдыр бир нерсеге тийсе, аларды коргойт. (Мен бул сенсорлорду бир нече жолу жыгып алдым, ошондуктан коопсуз болгум келди.)
1 -кадам: Crank:
Бул үйрөткүчтү ээрчүү эң жакшы:
Негизинен сенсорлорду тоголокко төрт жерге чаптап, тактанын капталдарына туташтыруу керек.
Тиешелүү туташуулар мурунтан эле бар, андыктан жуптарды зымдарды тактадагы ушул сегиз аянтка ширетүү керек.
Сенсорлорго туташуу үчүн мүмкүн болгон эң ичке зымды колдонуңуз - төшөмөлөрдү көтөрүү абдан оңой. Адегенде сенсорлорду жабыштырып, алардын жетишерлик бөлүгүн ширетүү үчүн калтырып, калганын эпоксиден жаап коюу керек. Эгерде сиз жабыштыраардан мурун ширетүүгө аракет кылсаңыз, алар бүктөлүп, сынып кетет.
ПХБны чогултуу үчүн:
- Төмөндөн (издери бар тараптан) алтын казыктарды түбүнө жакын тигинен башка бардык тешиктерге салыңыз.
- Үч тактаны (үстүнө ESP32, андан кийин MPU, HX711 түбүнө) койгула, ошондо алтын казыктар эки тешиктен тең өтөт.
- Үстүнкү тактайларга баштарды ээрчиңиз
- Алтын казыктарды түбүнөн кесип салыңыз. (Аларды чогултуудан мурун биринчи жолу кесип көрүңүз, андыктан сиздин "алтын казыктарыңыз" ичинде темир эмес экенин билесиз - бул аларды кесүүгө дээрлик мүмкүн эмес кылат жана аларды таркатуу же майдалоо керек)
- калган алтын казыктарды тактанын түбүнө ээрчиңиз.
- Кирүү үчүн камтылган программаны жүктөңүз
Акыркы кадам - бүт кранкты жылуулукту кысуучу жең менен толтуруу.
Тактай жасоонун бул ыкмасы идеалдуу эмес, анткени тактайлар башка нерселерге туура келчү көп орунду ээлейт. Эң жакшысы, бардык компоненттерди тактага ширетүү, бирок менде бул кичинекей SMDди өзүм ширетүү жөндөмүм жок. Мен аны чогултуп заказ кылышым керек болчу, жана мен, балким, кээ бир каталарды кетирип, аларды үч жолу заказ кылып, алар келгенге чейин бир жыл күтмөкмүн.
Эгерде кимдир -бирөө тактанын дизайнын жасай алса, анда батарейканы коргоочу циркуляты жана эгер кранк кыймылдай баштаганда ESPти күйгүзүүчү сенсор болсо жакшы болмок.
МААНИЛҮҮ
HX711 сенсору демейки боюнча 10 Гцке коюлган - кубаттуулукту өлчөө үчүн жай. Сиз 15 -пинди тактан көтөрүп, 16 -пинге туташтырышыңыз керек. Бул пин бийиктигин айдап, 80Гц режимин иштетет. Баса, бул 80 Гц ардуино циклинин ылдамдыгын аныктайт.
Колдонуу
ESP32 30дан кийин эч кандай Bluetooth түзмөгү туташпастан уктап калуу үчүн программаланган. Аны кайра күйгүзүү үчүн, баштапкы абалга келтирүү баскычын басуу керек. Сенсорлор ошондой эле санарип пинден иштейт, ал уйку режиминде LOW айланат. Эгерде сиз китепканалардан мисал коду менен сенсорлорду сынап көргүңүз келсе, сен пинди HIGH кууп, сенсорлор күйгүзүлгөнгө чейин бир аз күтүшүң керек.
Чогулгандан кийин сенсорлорду маанини эч кандай күч колдонбостон, анан салмагы менен калибрлөө керек (мен педальга илинген 12кг же 16кг чайникти колдондум). Бул баалуулуктарды powerCrank кодуна коюу керек.
Ар бир айдоонун алдында кранды тароо эң жакшы - кимдир бирөө педальда жүргөндө өзү тара албашы керек, бирок кечиримдүү болгондон көрө коопсуз жана аны бир жолу күйгүзүү үчүн бир жолу тароо мүмкүн. Эгерде сиз кызыктай деңгээлди байкасаңыз, анда бул процессти кайталашыңыз керек:
- Жарык өчүп -күйүп баштагыча, кранды түз жерге коюңуз.
- Бир нече секунддан кийин жарык күйүп калат - ага тийбегиле
- Жарык өчкөндө, ал аныкталган учурдагы күчтү жаңы 0 деп коёт.
Эгерде сиз консолу жок эле кранды колдонууну кааласаңыз, код бул жерде githubда. Калганынын баары бирдей иштейт.
2 -кадам: Консоль
Кап 3мм акрилден кесилген, баскычтар 3D басылган жана 5мм акрилден кесилген ЖК үчүн боштуктар бар. Бул ысык клей менен жабыштырылган (ал акрилге жакшы жабышат) жана ЖКга ПКБны кармап туруу үчүн 3D басылган "кронштейн" бар. ЖК үчүн төөнөгүчтөр ESPке тоскоолдук кылбашы үчүн ылдый жагынан ширетилген.
ESP өйдө каратып ширетилген, андыктан USB порту корпуска туура келет
Өзүнчө баскыч ПХБ ысык клей менен жабыштырылган, андыктан баскычтар тешиктерине түшөт, бирок алар дагы деле өчүргүчтөрдү басышат. Баскычтар тактага JST PH 2.0 туташтыргычы менен туташкан жана пин тартибин схемадан чыгарууга оңой
Степпер драйверин туура багытта орнотуу абдан маанилүү (ESPнин жанындагы потенциометр)
Биринчи версияда эч ким колдонбогондуктан, SD картанын бардык бөлүгү өчүрүлгөн. Код, чабандестин салмагы жана кыйынчылык орнотуу сыяктуу кээ бир UI орнотуулары менен жаңыртылышы керек.
Консол lasercut "курал" жана zipties аркылуу орнотулган. Кичинекей тиштер рулду казып, консолун кармап турат.
3 -кадам: Мотор
Мотор 3D басылган кронштейн менен жөнгө салгычтын ордуна өзүн кармайт. Анын валына бириктиргич орнотулган - бир жагында валды кармап туруучу бурамалары бар 5мм тешиги бар, экинчисинде аны бекитүү үчүн бурамалары бар M6 жип бар. Кааласаңыз, аны 10 мм тегерек запастагы бургулоочу прессте жасасаңыз болот. Бул өтө так болуунун кажети жок, анткени мотор өтө бекем орнотулган эмес.
M6 жиптин таякчасы бириктиргичке сайылып, ал жезден M6 гайкасын тартып алат. Мен аны иштеттим, бирок аны жезден файл менен оңой эле жасаса болот. Сиз кээ бир биттерди кадимки жаңгакка ширете аласыз, андыктан ал айланбайт. 3D басылган гайка да чечим болушу мүмкүн.
Жип запастагы бурамага караганда жакшыраак болушу керек. Анын кадамы болжол менен 1,3 мм, ал эми M6 үчүн 0,8 мм. Кыймылдаткычтын бурамасын бурууга жетиштүү моменти жок.
Гайканы майлоо керек, анткени мотор эптеп жогорку орнотуулардын бурамасын бура алат
4 -кадам: Конфигурация
Arduino IDEден ESP32ге кодду жүктөө үчүн бул окуу куралын аткарышыңыз керек:
Такта "WeMos LOLIN32", бирок "Dev модулу" дагы иштейт
Мен Visual Studio колдонууну сунуштайм, бирок ал көп учурда бузулушу мүмкүн.
Биринчи колдонуудан мурун
Ири "Кривой" кадамына ылайык орнотулушу керек
"NRF Connect" колдонмосун колдонуу менен сиз ESP32 кранкасынын MAC дарегин текшерип, BLE.h файлына орнотушуңуз керек.
19 -саптаBike.ino'нун каршылыгын толугу менен боштуктан максимумга чейин орнотуу үчүн, бураманын канча айлануусу керек. ("Максимум" атайылап субъективдүү, сиз бул жөндөө менен кыйынчылыкты тууралаңыз.)
Акылдуу машыктыруучунун "виртуалдык тиштери" бар, аларды туура орнотуу үчүн, сиз аны 28 жана 29 -саптарда калибрлешиңиз керек. Берилген каршылык параметрине туруктуу кадылдуулук менен педаль жасооңуз керек, андан кийин кубаттуулукту окуп, файлга орнотуңуз. Муну башка жөндөө менен дагы кайталаңыз.
Эң сол жактагы баскыч ERG режиминен (абсолюттук каршылык) симуляция режимине (виртуалдык тиштүү) өтөт. Компьютерге туташуусуз симуляция режими эч нерсе кылбайт, анткени симуляциялык маалыматтар жок.
36 -сап. Виртуалдык тиштүү тетиктерди - санын жана катышын коёт. Сиз аларды алдыңкы редуктордогу тиштердин санын арткы тиштин санына бөлүү менен эсептейсиз.
12. сапта сиз чабандестин жана велосипеддин салмагын коесуз ([Ньютондордо], гравитациялык ылдамдануунун массалык эсеби!)
Мунун бүт физикалык бөлүгү, балким, өтө татаал, ал тургай, мен так эмнени эстей албайм, бирок велосипедченди өйдө же башка нерсеге тартуу үчүн керектүү моментти эсептейм (калибрлөө ошон үчүн).
Бул параметрлер өтө субъективдүү, туура иштеши үчүн аларды бир нече жолу айдагандан кийин орнотушуңуз керек.
Мүчүлүштүктөрдү COM портуна Bluetooth аркылуу алынган түз экилик маалыматтарды тырмакчага ('') жана симуляциялык маалыматтарга жөнөтөт.
Конфигуратор
Реалдуу физиканын конфигурациясы аны реалдуу сезүү үчүн чоң түйшүккө айланып кеткендиктен, мен GUI конфигураторун түздүм, ал колдонуучуларга тоонун классынан абсолюттук каршылык деңгээлине которуучу функцияны графикалык түрдө аныктоого мүмкүндүк бериши керек. Ал азырынча толук бүтө элек жана аны сынап көрүүгө мүмкүнчүлүгүм жок болчу, бирок алдыдагы айда мен башка велосипедди конвертациялайм, андыктан аны жылтыратам.
"Gears" өтмөгүндө жылдыргычтарды жылдыруу менен ар бир тиштин катышын коюуга болот. Андан кийин коддогу аныкталган тиштүү тетиктерди алмаштыруу үчүн коддун битин көчүрүү керек.
"Баа" өтмөгүндө сизге сызыктуу функциянын графиги берилет (ооба, математикада эң жек көрүлгөн предмет чындыгында пайдалуу), ал классты алат (вертикалдуу огу) жана абсолюттук каршылык кадамдарын чыгарат (горизонталдык огу). Кызыккандар үчүн математикага бир аздан кийин кирем.
Колдонуучу бул функцияны ага коюлган эки чекиттин жардамы менен аныктай алат. Оң жагында учурдагы тетиктерди алмаштыра турган жер бар. Тандалган редуктор, сиз ойлогондой, жолду өзгөртөт, каршылыктын классына карты - төмөнкү редуктордо өйдө карай педаль кылуу оңой. Сыдыргычты жылдыруу 2 -коэффициентти өзгөртөт, бул тандалган тиштин функцияны кантип өзгөртүүүнө таасир этет. Аны кантип алып жүргөнүн көрүү үчүн аны менен бир аз ойноо оңой. Сизге эң ылайыктуусун табуу үчүн, сиз бир нече башка жөндөөлөрдү сынап көрүшүңүз керек болот.
Бул Python 3те жазылган жана демейки китепканалар менен иштеши керек. Аны колдонуу үчүн, "конфигураторду колдонуу үчүн бул саптарга комментарий берүүдөн" кийин дароо саптарды комментарийлөө керек. Мен айткандай, бул сыналган эмес, андыктан кээ бир каталар болушу мүмкүн, бирок бир нерсе келип калса, комментарий жазыңыз же маселени ачыңыз, мен аны оңдой алам.
Математика (жана физика)
Контроллер сизди өйдө карай бара жаткандай сездирүүнүн бирден -бир жолу - каршылык бурамасын буруу. Биз бааны ротациялардын санына которушубуз керек. Орнотууну жеңилдетүү үчүн, таптакыр боштуктан тартып, кранкты бура албоого чейинки бардык диапазон ERG режиминде колдонулган 40 кадамга бөлүнгөн, бирок бул жолу бүтүн сандардын ордуна чыныгы сандарды колдонот. Бул жөнөкөй карта функциясы менен жасалат - аны коддон издесеңиз болот. Эми биз бир тепкичке өйдөбүз - бураманын айлануусу менен күрөшүүнүн ордуна, элестетилген кадамдар менен алекпиз.
Эми велосипед менен өйдөлөгөндө (туруктуу ылдамдыкта) кантип иштейт? Албетте, сизди түртүп жаткан кандайдыр бир күч болушу керек, антпесеңиз төмөн түшүп кетесиз. Бул күч, кыймылдын биринчи мыйзамы бизге айткандай, бирдей кыймылда болуу үчүн чоңдугу боюнча бирдей, бирок сизди ылдый тарткан күчкө карама -каршы болушу керек. Бул дөңгөлөк менен жердин ортосундагы сүрүлүүдөн келип чыгат жана эгер сиз бул күчтөрдүн диаграммасын тартсаңыз, анда ал велосипед менен чабандестин салмагына барабар болушу керек:
F = Fg*G
Эми дөңгөлөктү бул күчтү колдонууга эмне мажбурлайт? Биз редуктор жана дөңгөлөктөр менен иштеп жаткандыктан, момент жөнүндө ой жүгүртүү оңой, бул радиустун эсе эсе күч:
t = F*R
Тиштүү тетиктер бар болгондуктан, сиз кранкка момент бересиз, ал чынжырды тартып, дөңгөлөктү айлантат. Дөңгөлөктү айлантуу үчүн керектүү момент тиш катышына көбөйтүлөт:
tp = tw*гр
жана кайра момент формуласынан педалды буруш үчүн керектүү күчтү алабыз
Fp = tp/r
Бул биз крандагы электр эсептегичтин жардамы менен өлчөй турган нерсе. Динамикалык сүрүлүү сызыктуу түрдө күчкө байланыштуу болгондуктан, бул велосипед бул күчтү берүү үчүн пружиналарды колдонгондуктан, ал бураманын кыймылына сызыктуу болот.
Күч - бул ылдамдыктын эсеси (векторлордун бирдей багытын эске алганда)
P = F*V
жана педалдын сызыктуу ылдамдыгы бурчтук ылдамдыкка байланыштуу:
V = ω*r
Ошентип, биз педалдарды белгиленген каршылык деңгээлине которуу үчүн керектүү күчтү эсептей алабыз. Баары сызыктуу түрдө байланыштуу болгондуктан, биз пропорцияларды колдонсок болот.
Бул, негизинен, программалык камсыздоо калибрлөө учурунда жана бизге татаал курамын алуу үчүн тегерек жолду колдонуу менен эсептөө үчүн керек болгон, бирок каршылык даражасына тиешелүү сызыктуу функция. Мен кагазга жаздым, акыркы теңдемени эсептеп чыктым жана бардык константалар үч коэффициентке айланды.
Бул техникалык жактан алганда, учакты чагылдырган 3D функциясы (мен ойлойм) аргумент катары классты жана тиш катышын алат жана бул үч коэффициент тегиздикти аныктоо үчүн керектүүлөргө байланыштуу, бирок тиштер дискреттүү сандар болгондуктан, бул оңой болгон проекциялар менен иштөөнүн ордуна аны параметр кылуу. 1-жана 3-коэффициенттерди бир сызык менен аныктаса болот жана (-1)* 2-коэффициент-чекиттин X координаты, анда сызык редукторду алмаштырганда "айланат".
Бул визуализацияда аргументтер вертикалдуу сызык менен, ал эми баалуулуктар горизонталдуу түрдө көрсөтүлөт, мен билем, бул кыжырды келтириши мүмкүн, бирок бул мен үчүн интуитивдүү жана GUIге көбүрөөк туура келген. Экономисттердин графиктерин минтип сызганынын себеби да ушул болсо керек.
5 -кадам: Бүтүр
Эми сизге жаңы машыктыруучуңуз менен жүрүү үчүн кээ бир тиркемелер керек (бул сизди 900 доллардын тегерегинде үнөмдөдү:)). Мына, алардын айрымдары боюнча менин пикирим.
- RGT Cycling - менин оюмча эң жакшы - анын таптакыр бекер варианты бар, бирок бир аз тректери бар. Байланыш бөлүгү менен эң жакшы иштейт, анткени телефонуңуз Bluetooth аркылуу туташат жана ЖК тректи көрсөтөт. AR велосипедчиси менен реалдуу видеону колдонот
- Руви - тректер көп, акы төлөнүүчү жазылуу гана, эмнегедир PC колдонмосу бул менен иштебейт, телефонуңузду колдонушуңуз керек. Сиздин ноутбук Bluetooth жана WiFi үчүн бир эле картаны колдонгондо көйгөйлөр болушу мүмкүн, ал көп учурда артта калып, жүктөгүсү келбейт
- Zwift - анимацияланган оюн, акы төлөнүүчү гана, машыктыруучу менен жакшы иштейт, бирок UI абдан жөнөкөй - ишке киргизгич менюду көрсөтүү үчүн Internet Explorerди колдонот.
Эгер сизге курулуш жакса (же жакпаса), мага комментарийлерде айтып бериңиз, эгер сизде кандайдыр бир суроолор болсо, бул жерден сурасаңыз болот же githubга маселе тапшырсаңыз болот. Мен кубаныч менен түшүндүрөм, анткени ал абдан татаал.
Сунушталууда:
Turbo Trainer Generator: 6 кадам
Turbo Trainer Generator: Педалдын күчү менен электр энергиясын өндүрүү мени дайыма кызыктырып келген. Мына менин буга болгон көз карашым
Э.Т. - UHF Indoor TV антеннасы: 12 кадам (Сүрөттөр менен)
Э.Т. - UHF жабык телекөрсөтүү антеннасы: Эгерде сиз туура тышкы антеннаны колдоно албасаңыз, анда сиз "коёндун кулагы" менен тыгылып калсаңыз керек. Алар UHF берүүлөрдү кабыл алуу үчүн чакан, курулган антеннаны колдонушат, ал эми телескопиялык таякчалар VHF берүүлөрдү кабыл алуу үчүн гана колдонулат. Санариптик жер бетиндеги көпчүлүк
Smart Indoor Herb Garden: 6 кадам (Сүрөттөр менен)
Smart Indoor Herb Garden: Бул Нускамада мен сизге акылдуу жабык чөп бакчамды кантип жасаганымды көрсөтөм! Мен бул долбоорго бир нече илхам алдым, биринчиден, мен үйдөгү аэрогарден моделдерине кызыгуум бар эле. Андан тышкары, менде колдонулбаган Arduino Mega w болчу
Dog Dog Trainer: 5 кадам
Dog Dog Trainer: AKC маалыматы боюнча, (https://www.akc.org/expert-advice/nutrition/how-many-times-a-day-should-a-dog-eat/) тоют иттер үчүн абдан маанилүү, жана кутунун өлчөмү дагы ит күнүнө жей турган жемдердин санын чектейт, "Ветеринардык
Infinity Bike - Indoors Bike Training Video Game: 5 кадам
Infinity Bike - Indoors Bike Training Video Game: Кыш мезгилдеринде, суук күндөрдө жана жаман аба ырайында велосипед сүйүүчүлөрүнүн сүйүктүү спортту машыгуу үчүн бир нече варианттары бар. Биз велосипед/машыктыруучу менен жабык машыгууларды өткөрүүнүн жолун издеп жүрдүк, бирок көпчүлүк пр