Мазмұны:

DIY жабық велосипедінің ақылды жаттықтырушысы: 5 қадам
DIY жабық велосипедінің ақылды жаттықтырушысы: 5 қадам

Бейне: DIY жабық велосипедінің ақылды жаттықтырушысы: 5 қадам

Бейне: DIY жабық велосипедінің ақылды жаттықтырушысы: 5 қадам
Бейне: Rennradparadies Ligurien || Diese Bar steht zum Verkauf || Bajardo Bergdorf 🇮🇹 2024, Қараша
Anonim
DIY жабық велосипедінің ақылды жаттықтырушысы
DIY жабық велосипедінің ақылды жаттықтырушысы
DIY жабық велосипедінің ақылды жаттықтырушысы
DIY жабық велосипедінің ақылды жаттықтырушысы
DIY жабық велосипедінің ақылды жаттықтырушысы
DIY жабық велосипедінің ақылды жаттықтырушысы

Кіріспе

Бұл жоба Schwinn IC Elite жабық велосипедінің қарапайым модификациясы ретінде басталды, ол қарсылық параметрлері үшін қарапайым бұранда мен киізден жасалған жастықшаларды қолданады. Мен шешгім келетін мәселе - бұранданың қадамы үлкен болды, сондықтан педальды басқара алмау мен дөңгелектің толық бос айналуына дейін қарсылық тұтқасында екі градус болды. Алдымен мен бұранданы M6 -ға ауыстырдым, бірақ содан кейін мен тұтқаны жасауым керек еді, сондықтан неге қарсылықты өзгерту үшін NEMA 17 қадамдық моторын ғана пайдаланбасқа? Егер қазірдің өзінде электроника бар болса, неге ақылды жаттықтырушы жасау үшін компьютерге иінді қуат өлшегіш пен bluetooth қосылымын қоспасқа?

Бұл күткеннен әлдеқайда қиын болды, өйткені электр есептегішті arduino мен bluetooth арқылы қалай еліктеуге болатыны туралы мысалдар жоқ. Мен BLE GATT ерекшеліктерін бағдарламалауға және түсіндіруге шамамен 20 сағат жұмсадым. Мен мысал келтіре отырып, біреуге «Қызметтік деректер AD түрі өрісі» нені білдіретінін түсінуге көп уақыт жоғалтпауға көмектесе аламын деп үміттенемін …

Бағдарламалық қамтамасыз ету

Бүкіл жоба GitHub -та:

github.com/kswiorek/ble-ftms

Егер сіз менің кодты көшіріп қоюдан гөрі маңызды нәрсе жасауды жоспарласаңыз, Visual Studio бағдарламасын VisualGDB плагинімен қолдануды ұсынамын.

Егер сізде бағдарлама туралы сұрақтарыңыз болса, сұраңыз, менің минималистік түсініктемелерім көп көмектеспеуі мүмкін екенін білемін.

Несие

Stoppi71 -ге электр есептегішті жасау бойынша нұсқаулық үшін рахмет. Мен оның дизайнына сәйкес иінді жасадым.

Жабдықтар:

Бұл жобаның материалдары қандай велосипедті өзгертіп жатқаныңызға байланысты, бірақ әмбебап бөлшектер бар.

Иінді:

  1. ESP32 модулі
  2. HX711 ADC салмақ сенсоры
  3. Штамм өлшегіштер
  4. MPU - гироскоп
  5. Шағын Li-Po батареясы (шамамен 750 мАч)
  6. Жылу қысқыш жең
  7. A4988 қадамдық жүргізуші
  8. 5В реттегіш
  9. Ардуино баррель ұясы
  10. 12В ардуино қуат көзі

Консоль:

  1. NEMA 17 қадамы (өте қуатты болуы керек,> 0.4Нм)
  2. M6 таяқшасы
  3. 12864 лк
  4. WeMos LOLIN32
  5. Әдептілік қосқыштары

Жабдық

Мұны істеу үшін сіз тек 3D принтерін қолдана аласыз, бірақ корпусты лазермен кесу арқылы көп уақытты үнемдеуге болады, сонымен қатар ПХД жасай аласыз. DXF және gerber файлдары GitHub -та орналасқан, сондықтан сіз оларға жергілікті түрде тапсырыс бере аласыз. Бұрандалы стерженьден қозғалтқышқа қосқыш токарлық станокқа қосылды және бұл жалғыз проблема болуы мүмкін, себебі оның бөлшектері жастықшаларды тарту үшін жеткілікті күшті болуы керек, бірақ бұл велосипедте көп орын жоқ.

Алғашқы велосипедті жасағаннан кейін, мен иіндідегі сенсорларға слот жасауға мүмкіндік беретін фрезерлік станок алдым. Бұл оларды желімдеуді жеңілдетеді, сонымен қатар иіндіге бір нәрсе тиген жағдайда оларды қорғайды. (Мен сенсорларды бірнеше рет құладым, сондықтан мен қауіпсіз болғым келді.)

1 -қадам: Иінді:

Иінді
Иінді
Иінді
Иінді
Иінді
Иінді

Бұл оқулықты орындаған дұрыс:

Датчиктерді иіндіге төрт жерден желімдеп, тақтаның бүйірлеріне қосу керек.

Тиісті қосылымдар қазірдің өзінде бар, сондықтан сіз жұп сымдарды тақтадағы осы сегіз төсемге тікелей дәнекерлеуіңіз керек.

Датчиктерге қосылу үшін ең жұқа сымды қолданыңыз - жастықшаларды көтеру өте оңай. Алдымен сенсорларды желімдеп, олардың жеткілікті бөлігін дәнекерлеу үшін сыртта қалдыру керек, содан кейін қалғандарын эпоксидпен жабыңыз. Егер сіз желімдеу алдында дәнекерлеуге тырыссаңыз, олар бұралып, сынады.

ПХД жинау үшін:

  1. Алтын түйреуіштерді астыңғы жағынан (іздері бар жағы) түбіне жақын орналасқан тесіктерден басқа барлық тесіктерге салыңыз.
  2. Алтын тақталар екі тесіктен өтуі үшін үш тақтаны (үстіне ESP32, содан кейін MPU, HX711) қойыңыз.
  3. Тақырыптарды үстіңгі тақталарға дәнекерлеңіз
  4. Алтын түйреуіштерді төменнен кесіңіз. (Оларды жинау алдында алдымен кесіп көріңіз, осылайша сіздің «алтын түйреуіштеріңіз» болат емес екенін білесіз - бұл оларды кесу мүмкін емес етеді, сондықтан сіз оларды тегістеуіңіз керек)
  5. қалған алтын түйреуіштерді тақтаның түбіне дәнекерлеңіз.
  6. Кронштейнге арналған микробағдарламаны жүктеңіз

Соңғы қадам - бүкіл иінді жылуды қысатын жеңмен қаптау.

Тақтаны жасаудың бұл әдісі мінсіз емес, өйткені тақталар басқа заттарды орналастыру үшін көп орын алады. Ең дұрысы, барлық компоненттерді тақтаға тікелей дәнекерлеу, бірақ менде осы шағын SMD -ді өзім дәнекерлеу дағдысы жоқ. Мен оны жинауға тапсырыс беруім керек еді, мүмкін мен кейбір қателіктер жіберіп, үш рет тапсырыс беріп, олар келгенге дейін бір жыл күтетін едім.

Егер біреу тақтаның дизайнын жасай алатын болса, онда егер батареяның қорғаныс циркулясы мен иінді қозғала бастаса, ESP қосатын сенсоры болса жақсы болар еді.

МАҢЫЗДЫ

HX711 сенсоры әдепкі бойынша 10 Гц -ге орнатылған - қуатты өлшеу үшін баяу. 15 -штырьды тақтадан көтеріп, оны 16 -шы істікке жалғау қажет. Бұл істікті жоғары көтереді және 80 Гц режимін қосады. Бұл 80 Гц, айтпақшы, бүкіл arduino циклінің жылдамдығын орнатады.

Қолданылуы

ESP32 30 -дан кейін Bluetooth құрылғысы қосылмаған соң ұйықтауға бағдарламаланған. Оны қайта қосу үшін қалпына келтіру түймесін басу керек. Сенсорлар сонымен қатар цифрлық түйреуіштен қуат алады, ол ұйқы режимінде LOW күйіне ауысады. Егер сіз сенсорларды кітапханалардан алынған мысал кодымен тексергіңіз келсе, онда жоғары штырьды алып, датчиктер қосылмай тұрып біраз күтуіңіз керек.

Жиналғаннан кейін сенсорларды мәнді күшсіз, содан кейін салмақпен оқу арқылы калибрлеу қажет (мен педальға ілулі 12 немесе 16 кг шәйнек қолдандым). Бұл мәндерді powerCrank кодына енгізу қажет.

Әр жүгіруден бұрын иінді тартыңыз - ең дұрысы, біреу педальмен жүгіріп бара жатқанда, ол өздігінен тоқтап қалмауы керек, бірақ өкініштен гөрі қауіпсіз және оны бір рет қосқанда бір рет тарау мүмкін. Егер сіз біртүрлі қуат деңгейін байқасаңыз, бұл процедураны қайталауыңыз керек:

  1. Жарық жыпылықтай бастағанға дейін иінді итеріңіз.
  2. Бірнеше секундтан кейін шам жанып тұрады - оған тиіспеңіз
  3. Жарық сөнген кезде ол анықталған ағымдағы күшті жаңа 0 деп орнатады.

Егер сіз консольсіз иінді қолданғыңыз келсе, код github -да. Қалғанның бәрі бірдей жұмыс істейді.

2 -қадам: Консоль

Консоль
Консоль
Консоль
Консоль
Консоль
Консоль

Корпус 3 мм акрилден кесілген, түймелер 3D басып шығарылған және 5 мм акрилден кесілген СКД үшін аралықтар бар. Ол ыстық желіммен желімделген (ол акрилге жақсы жабысады) және ПХД -ны СК -де ұстауға арналған 3D басып шығарылған «кронштейн» бар. СКД түйреуіштері төменгі жағынан дәнекерленген, сондықтан ол ESP -ке кедергі келтірмейді.

ESP төңкеріліп дәнекерленген, сондықтан USB порты корпусқа сәйкес келеді

Бөлек түйме ПХД ыстық желіммен жабыстырылған, сондықтан түймелер олардың тесіктеріне түседі, бірақ олар әлі де қосқыштарды басады. Түймелер тақтаға JST PH 2.0 қосқыштарымен қосылады және түйреуіш схемасын схемадан оңай түсінуге болады.

Драйверді дұрыс бағытта орнату өте маңызды (ESP жанында потенциометр)

SD картасының барлық бөлігі өшірілген, себебі оны бірінші нұсқада ешкім пайдаланбаған. Кодты шабандоздың салмағы мен қиындықты орнату сияқты кейбір UI параметрлерімен жаңарту қажет.

Консоль лазерлік «қолдар» мен зипти көмегімен орнатылады. Кішкене тістер рульге кіріп, консольді ұстап тұрады.

3 -қадам: қозғалтқыш

Мотор
Мотор
Мотор
Мотор
Мотор
Мотор

Қозғалтқыш 3D басып шығарылған кронштейні бар реттегіш тұтқасының орнында қалады. Оның білігіне қосқыш бекітілген - бір жағында білікті ұстайтын бұрандалары бар 5 мм тесік, екіншісінде бекітетін бұрандалары бар M6 жіп бар. Егер қаласаңыз, сіз оны 10 мм дөңгелек қораптан бұрғылау машинасында жасай аласыз. Бұл өте дәл болуы қажет емес, себебі қозғалтқыш өте тығыз орнатылмаған.

М6 бұрандалы штанганың бөлігі қосқышқа бұралған және ол жезден M6 гайкасын тартып алады. Мен оны өңдедім, бірақ оны жезден файлмен жасауға болады. Сіз тіпті кішкене биттерді қалыпты гайкаға дәнекерлей аласыз, сондықтан ол айналмайды. 3D басып шығарылған гайка да шешім болуы мүмкін.

Жіп бекіткіш бұрандаға қарағанда жұқа болуы керек. Оның қадамы шамамен 1,3 мм, ал M6 үшін - 0,8 мм. Қозғалтқышта бұранданы бұру үшін жеткілікті момент жоқ.

Гайканы жақсы майлау керек, себебі мотор бұранданы жоғары параметрлерге әрең бұрады

4 -қадам: конфигурация

Конфигурация
Конфигурация
Конфигурация
Конфигурация

Arduino IDE-ден ESP32-ге код жүктеу үшін мына оқулықты орындаңыз:

Тақта «WeMos LOLIN32», бірақ «Dev модулі» де жұмыс істейді

Мен Visual Studio бағдарламасын қолдануды ұсынамын, бірақ ол жиі бұзылуы мүмкін.

Алғаш қолданар алдында

Иінді «Иінді» қадамына сәйкес орнату керек

«NRF Connect» қосымшасының көмегімен ESP32 иінді MAC мекенжайын тексеру керек және оны BLE.h файлына орнату қажет.

IndoorBike.ino -ның 19 -жолында қарсылықты толығымен босатудан максимумға дейін орнату үшін бұранданың қанша айналуы қажет екенін орнату қажет. («Максимум» субъективті болып табылады, сіз қиындықты осы параметрмен реттейсіз.)

Ақылды жаттықтырушыда оларды дұрыс орнату үшін «виртуалды беріліс» бар, оны 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-ші коэффициент-нүктенің Х координаты, онда беріліс ауыстыру кезінде сызық «айналады».

Бұл визуализацияда аргументтер вертикаль сызықпен, ал мәндер көлденең сызықпен берілген, мен білемін, бұл тітіркендіргіш болуы мүмкін, бірақ бұл мен үшін интуитивті және GUI -ге жақсы сәйкес келеді. Экономистердің графиктерін осылай сызатыны да содан болса керек.

5 -қадам: Аяқтаңыз

Енді сізге жаңа жаттықтырушымен жүру үшін кейбір қосымшалар қажет (бұл сізге 900 доллар үнемдеді:)). Міне, олардың кейбіреулері туралы менің пікірім.

  • RGT Cycling - менің ойымша, ең жақсы - бұл мүлдем тегін нұсқа, бірақ бірнеше тректері бар. Байланыс бөлігімен жақсы айналысады, себебі сіздің телефоныңыз Bluetooth арқылы қосылады, ал ДК тректі көрсетеді. AR велосипедшісімен шынайы бейнені қолданады
  • Руви - көптеген тректер, тек ақылы жазылым, қандай да бір себептермен ДК қосымшасы онымен жұмыс істемейді, телефонды пайдалану керек. Егер ноутбук Bluetooth мен Wi -Fi үшін бірдей картаны қолданса, ол жиі артта қалады және жүктегісі келмейді
  • Zwift - анимациялық ойын, тек ақылы, жаттықтырушымен жақсы жұмыс істейді, бірақ UI өте қарапайым - іске қосу құралы мәзірді көрсету үшін Internet Explorer бағдарламасын қолданады.

Егер сізге құрылыс ұнады (немесе ұнамады), маған түсініктемелерде айтыңыз, егер сізде сұрақтар туындаса, сіз осы жерден сұрай аласыз немесе github -ға мәселе жібере аласыз. Мен бәрін түсіндіруге қуаныштымын, себебі бұл өте күрделі.

Ұсынылған: