Mundarija:

Ochiq (velosiped) sinf simulyatori - OpenGradeSIM: 6 qadam
Ochiq (velosiped) sinf simulyatori - OpenGradeSIM: 6 qadam

Video: Ochiq (velosiped) sinf simulyatori - OpenGradeSIM: 6 qadam

Video: Ochiq (velosiped) sinf simulyatori - OpenGradeSIM: 6 qadam
Video: Xolam mashinani xaydab ketmoqchi bo’ldi😂 2024, Noyabr
Anonim
Image
Image
Ochiq (velosiped) sinf simulyatori - OpenGradeSIM
Ochiq (velosiped) sinf simulyatori - OpenGradeSIM
Ochiq (velosiped) sinf simulyatori - OpenGradeSIM
Ochiq (velosiped) sinf simulyatori - OpenGradeSIM

Kirish

Yaqinda AQShda taniqli taniqli fitnes kompaniyasi (Wahoo) yaqinda yopiq mashg'ulot uchun ajoyib yordamchi vositani chiqardi, u foydalanuvchi minadigan tepalikning simulyatsiya qilingan darajasiga ko'ra turbo -trenerda velosipedning old qismini ko'taradi va tushiradi (Kickr Climb).

Ajoyib ko'rinadi, lekin afsuski, bu hammamiz uchun ham mavjud emas, chunki sizga 1) Wahoo bo'yicha eng yaxshi murabbiy va 2) 500 funt pul kerak bo'ladi.

Men klavikulani sindirdim (tog 'velosipediga velosipedchini hech qachon qo'ymang), shuning uchun menda murabbiyda ko'proq mil bor edi va o'ylashga ko'proq vaqtim bor edi va bu qiziqarli loyiha bo'lishi mumkin deb o'yladim.

Tijorat birligi -5% dan +20% gacha simulyatsiya qiladi, shuning uchun men unga yaqinlashishni xohlardim, lekin byudjetning 10%!

Bu mening Tacx Neo -da ishlab chiqilgan, lekin uning kuchi va tezligi haqidagi ma'lumotlarni ANT+ yoki BLE orqali uzatadigan har qanday murabbiy ishlay oladi (menimcha!).

Mening velosipedimdagi g'ildirak bazasi aniq 1000 mm bo'lgani uchun, men 20% simulyatsiya qilish uchun vilkalarni 200 mm ga ko'tarishim kerak (rasmga qarang), shuning uchun 200 mm chiziqli aktuator bajaradi. Velosiped + chavandozning vazni 100 kg dan oshmasligi dargumon, chunki u o'qlar o'rtasida taqsimlanadi va ko'pchiligi orqa tomonda 750N 75 kg ko'taradi va yaxshi bo'lishi kerak. Ko'proq pul uchun tezroq aktuatorlar mavjud, lekin bu menga 20 funt sterlingga tushadi va sekundiga 10 mm boshqaradi. Oddiy servo sifatida ishlatilishi mumkin bo'lgan potentsiometrli aktuatorlar ham 2-3 barobar qimmatroq.

Ta'minotlar

Aks o'qi adapterining 3D bosib chiqarilishi (PLA yoki ABSetc):

100 mm 3/4 dyuymli 10 ta svg alyuminiy trubkasi (aks o'qi uchun)

6 mm zanglamaydigan po'latdan yasalgan 80 mm

Chiziqli aktuator qismi uchun poyabzalning 3D bosimi (PLA yoki ABSetc):

H-ko'prigi uchun korpusning 3D nashri

Arduino ishining 3D bosma nusxasi (1 -versiya klaviatura bilan) https://www.thingiverse.com/thing:3984911 (2 -versiya ko'rsatilganidek (https://www.thingiverse.com/thing:3995976)

Sizni elektronikada terlamaslik uchun 32x38 mm o'lchamdagi 3 mm shaffof akril lazer bilan kesilgan qism (bu ideal emas edi).

Sizni tasodifan Shimano disk tormozidan kalibrli pistonlarni itarib yubormasligingiz uchun qon ketish bloklari (yostiqchalarni tashlab qo'yishga moslashtirilgan)

Lineer aktuator 750N 200 mm masofada, masalan, Al03 mini chiziqli aktuatorlari

L298N H ko'prigi (masalan:

Arduino Nano IoT 33 www.rapidonline.com buyurtma 73-4863

2 ta asosiy membranali klaviatura, masalan

IIC I2C Logic Level Converter Bi-Directional Module 5V dan 3.3V Arduino uchun, masalan

12V 3A DC quvvat manbai - LED yoritgichlari juda yaxshi ishlaydi!

NPE CABLE Ant+ BLE ko'prigiga

CABLE ko'prigi uchun 3D bosma klip

1,3 dyuymli OLED LCD displey moduli IIC I2C interfeysi 128x32 3.3V

1 -qadam: Ba'zi matematika

Ba'zi matematika
Ba'zi matematika

Biz simulyatsiya qilinadigan moyillikni hisoblashimiz kerak. Men murabbiy bu ma'lumotni tezlik, kuch, kadans va boshqalar bilan birga reklama qiladi deb umid qilgandim, lekin murabbiy shunchaki planshetdagi dasturiy ta'minot, kompyuter va hokazolarni boshqarish uchun quvvat sarfini ushlab turish uchun qarshilik ko'rsatadi. Menda "simulyatsiya bahosini" dasturiy ta'minotdan osongina olishning iloji yo'q edi, shuning uchun orqaga ishlashim kerak edi …

Velosipedda va chavandozda harakat qiladigan kuchlar - bu qarshilik va tepalikka chiqish uchun zarur bo'lgan kuchlarning kombinatsiyasi. Murabbiy tezlik va kuch haqida xabar beradi. Agar biz qarshilik ko'rsatadigan yo'qotishlarni ma'lum tezlikda topa olsak, qolgan kuch tepalikka chiqish uchun sarflanadi. Chiqish kuchi velosipedchi va chavandozning og'irligiga va ko'tarilish tezligiga bog'liq, shuning uchun biz qiyalikka qaytishimiz mumkin.

Birinchidan, odatiy tezlikda qarshilik kuchini yo'qotish uchun ba'zi ma'lumotlar nuqtalarini topish uchun ajoyib https://bikecalculator.com saytidan foydalandim. Keyin men tezlik domenini chiziqli aloqa o'rnatish uchun o'zgartirdim va eng mos chiziqni topdim. Chiziq tenglamasini olsak, endi qarshilik (= 0,0102*(Speedkmh^2,8))+9,428 dan quvvatni (Vt) hisoblashimiz mumkin.

"Ko'tarilish" kuchini berish uchun o'lchangan kuchdan qarshilik kuchini oling.

Biz soatiga km ko'tarilish tezligini bilamiz va uni m/s SI birliklariga aylantiramiz (3.6 ga bo'ling).

Nishab topiladi: Nishab (%) = ((PowerClimbing/(WeightKg*g))/Tezlik)*100

bu erda erkin tushish tezligi g = 9,8 m/s yoki 9,8 N/kg

2 -qadam: Ba'zi ma'lumotlarni oling

Ba'zi ma'lumotlarni oling
Ba'zi ma'lumotlarni oling

Nishabni hisoblash tezlik va quvvatni talab qiladi. Men buni qabul qilish uchun murabbiyga BLE orqali ulanish uchun Arduino Nano 33 IoT -dan foydalandim. Men dastlab juda qattiq qotib qoldim, chunki bu modul uchun mahalliy ArduinoBLE kutubxonasining joriy v.1.1.2 versiyasi autentifikatsiyani hech qanday shaklda bajara olmaydi, ya'ni ko'pchilik tijorat BLE sensorlari u bilan bog'lanmaydi.

Yechim NPE ANT+ dan BLE ko'prigigacha bo'lgan foydalanish edi (https://npe-inc.com/cableinfo/), bu murabbiyning o'rnatilgan BLE-ni o'quv ilovasi orqali muloqot qilish uchun bepul ushlab turadi va BLE-da autentifikatsiyani talab qilmaydi. yon.

BLE quvvatining xarakteristikasi juda oddiy, chunki vattdagi quvvat uzatiladigan ma'lumotlarning ikkinchi va uchinchi baytlarida 16 bitli butun son sifatida (kichik endian, ya'ni birinchi navbatda eng kam oktet). Men 3 soniyali o'rtacha quvvatni berish uchun harakatlanuvchi o'rtacha filtrni qo'lladim - xuddi mening velosiped kompyuterim ko'rsatganidek - bu kamroq tartibsiz.

if (powerCharacteristic.valueUpdated ()) {

// uint8_t holdpowervalues [6] = {0, 0, 0, 0, 0, 0} qiymati uchun qatorni aniqlang; // qiymatni qatorga o'qing powerCharacteristic.readValue (holdpowervalues, 6); // Quvvat 2 va 3 -joylarda vatt sifatida qaytariladi (0 va 1 -lok 8 bitli bayroqlar) bayt rawpowerValue2 = holdpowervalues [2]; // HEX -dagi eng kichik sig bayt bayt rawpowerValue3 = holdpowervalues [3]; // power eng sig bayt HEX long rawpowerTotal = (rawpowerValue2 + (rawpowerValue3 * 256)); // "3s quvvat" berish uchun harakatlanuvchi o'rtacha filtrdan foydalaning powerTrainer = moveAverageFilter_power.process (rawpowerTotal);

BLE tezligining xarakteristikasi (Velosiped tezligi va tezligi) - bu spetsifikatsiyani yozganda, SIG nima chekayotganini o'ylashga majbur qiladigan narsalardan biridir.

Xarakter 16 baytli qatorni qaytaradi, unda na tezlik, na tezlik bor. Buning o'rniga siz g'ildirak inqiloblari va krank inqiloblarini (jami) va oxirgi voqea ma'lumotlarini 1024 soniyalarda olasiz. Shunday qilib, ko'proq matematik. Oh, baytlar har doim ham mavjud emas, shuning uchun boshida bayroq bayti bor. Oh, va baytlar kichik HEX -dir, shuning uchun siz ikkinchi baytni 256 ga, uchinchisini 65536 ga ko'paytirib, keyin ularni bir -biriga qo'shib o'qishingiz kerak. Tezlikni topish uchun siz masofani bilish uchun velosiped g'ildiragining standart doirasini qabul qilishingiz kerak.

if (speedCharacteristic.valueUpdated ()) {

// Bu qiymatga uint8_t holdvalues 16 baytli qator kerak [16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Lekin men faqat birinchi 7 speedCharacteristic.readValue ni o'qiyman (holdvalues, 7); bayt rawValue0 = ushlab turish qiymatlari [0]; // ikkilik bayroqlar 8 bitli int bayt rawValue1 = holdvalues [1]; // inqiloblar HEX -dagi eng kichik bayt rawValue2 = ushlab turish qiymatlari [2]; // inqiloblar HEX -dagi keyingi eng muhim bayt rawValue3 = holdvalues [3]; // inqiloblar HEXdagi navbatdagi eng muhim bayt rawValue4 = holdvalues [4]; // inqiloblar HEX -dagi eng muhim bayt rawValue5 = holdvalues [5]; // oxirgi g'ildirak hodisasidan beri eng kichik sig bayt bayt rawValue6 = ushlab turish qiymatlari [6]; // oxirgi g'ildirak voqeasidan keyingi vaqt eng sig bayt if (firstData) {// 2, 3 va 4 -sonli kichik olti burchakli g'ildiraklarning aylanma aylanishini oling (birinchi navbatda eng kam sekundli) WheelRevs1 = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); // Oxirgi g'ildirak hodisasidan 1024 -soniyada vaqtni oling Time_1 = (rawValue5 + (rawValue6 * 256)); firstData = noto'g'ri; } else {// Ma'lumotlarning ikkinchi to'plamini oling WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); uzoq TimeTemp = (rawValue5 + (rawValue6 * 256)); if (WheelRevsTemp> WheelRevs1) {// velosiped harakatlanayotganligiga ishonch hosil qiling WheelRevs2 = WheelRevsTemp; Time_2 = TimeTemp; firstData = rost;}

// sm masofadagi farqni toping va km ga aylantiring float distanceTravelled = ((WheelRevs2 - WheelRevs1) * wheelCircCM);

suzuvchi kmTravelled = masofaTravelled / 1000000;

// Vaqtni 1024 -soniyada toping va soatga aylantiring

float timeDifference = (Time_2 - Time_1); float timeSecs = timeDifference / 1024; float timeHrs = timeSecs / 3600;

// km/ soat tezlikni toping

tezlikKMH = (kmTravelled / timeHrs);

Arduino eskizlari GitHub -da joylashtirilgan (https://github.com/mockendon/opengradesim).

3 -qadam: Uskuna 1 -chiziqli aktuator

Uskuna 1 -chiziqli aktuator
Uskuna 1 -chiziqli aktuator
Uskuna 1 - chiziqli aktuator
Uskuna 1 - chiziqli aktuator
Uskuna 1 -chiziqli aktuator
Uskuna 1 -chiziqli aktuator

Mening diskli tormozli velosipedimdagi o'tish o'qi vilkalar orasidagi 100 mm bo'lgan 12 mm o'qni tozalash uchun 19,2 mm o'qni ko'rsatadi.

3/4 dyuymli 10swg alyuminiy naycha - bu ebayda Deyv deb nomlangan (https://www.ebay.co.uk/str/aluminiumonline) yaxshi mos keladi va uni bir necha funtga uzaytiradi.

Aktivatorda 6 mm teshikli 20 mm chiziq bor, shuning uchun 3D bosilgan qism alyuminiy naychani 6 mm po'lat po'lat bilan bog'laydi va kuchlar 90% siqilish bo'lgani uchun, ba'zi PLA / ABS qiyinchiliklarga javob beradi.

Agar siz standart tez chiqariladigan sozlamani ishga tushirsangiz, shunga o'xshash narsa (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) bu komponentni qayta loyihalashdan qochadi.

Etik mening Tacx trenerim bilan ta'minlangan ko'targich blokiga mos keladigan tarzda ishlab chiqilgan, lekin, ehtimol, shunga o'xshash ko'plab ko'taruvchilarga mos keladi yoki siz o'z talabingizga mos ravishda TinkerCad faylini tahrir qilishingiz mumkin.

4 -qadam: Uskuna 2 - H -ko'prigi

Uskuna 2 - H -ko'prigi
Uskuna 2 - H -ko'prigi
Uskuna 2 - H -ko'prigi
Uskuna 2 - H -ko'prigi
Uskuna 2 - H -ko'prigi
Uskuna 2 - H -ko'prigi

L298N H ko'prik taxtasi Internetda juda keng tarqalgan bo'lib, 5V regulyatorga ega, bu Arduino -ni chiziqli aktuator uchun zarur bo'lgan 12V quvvat manbaidan quvvatlantirish uchun juda yaxshi. Afsuski, Arduino Nano IoT platasi 3.3V signalni bildiradi, shuning uchun mantiqiy darajali konvertorga ehtiyoj bor (yoki signallar faqat bir tomonlama bo'lgani uchun optoizolyator).

Koson LED yoritgichlarda keng qo'llaniladigan quvvat ulagichlarini qabul qilish uchun mo'ljallangan. Men Arduino bosh blokini osonlik bilan ulash / uzish imkonini beradigan USB uzatgich simini so'yib yubordim, lekin men elektr uzatish liniyalaridan va 3.3V signal uzatish uchun ma'lumot uzatish liniyalaridan foydalanganimdan amin bo'lganimda, bunga halol maslahat berardim. kimdir USB portlarini yoki tashqi qurilmalarini xato qilib ulab qovurishidan nafratlaning!

5 -qadam: 3 -elektronika boshqaruv apparati (Arduino)

Uskuna 3 boshqaruv elektronikasi (Arduino)
Uskuna 3 boshqaruv elektronikasi (Arduino)
Uskuna 3 boshqaruv elektronikasi (Arduino)
Uskuna 3 boshqaruv elektronikasi (Arduino)
Uskuna 3 - nazorat elektronikasi (Arduino)
Uskuna 3 - nazorat elektronikasi (Arduino)

Arduino OLED va mantiqiy darajali konvertorning korpusining orqa tomonida standart 1/2 burilishli Garmin uslubi o'rnatilgan bo'lib, uni velosipedga mahkam o'rnatishga imkon beradi. "Old tomondan" o'rnatish moslamani akselerometr pozitsiyasini "nol" ga yuqoriga yoki pastga burish imkonini beradi yoki boshida avtomatik nol bo'lgan kod qatorini qo'shish oson bo'ladi.

Kosonda membranali klaviatura uchun joy bor - bu chavandoz va velosipedning umumiy og'irligini o'rnatish uchun ishlatiladi. Siz buni dasturiy jihatdan o'rnatishingiz mumkin, ayniqsa, agar siz murabbiyni hech kim bilan baham ko'rmasangiz.

"Qo'lda" rejimini qo'llash yaxshi bo'lardi. Ehtimol, ikkala tugmachani bosish qo'lda rejimni boshlashi mumkin, keyin esa tugmalar moyillikni oshirishi / kamaytirishi mumkin. Men buni ishlar ro'yxatiga qo'shaman!

Ishning STL fayli yana Thingiverse -da mavjud (havola uchun materiallar bo'limiga qarang).

Arduino eskizlari GitHub -da joylashtirilgan (https://github.com/mockendon/opengradesim).

Siz bu erdan CABLE ko'prigi uchun chiroyli kichkina klipni chop etishingiz mumkin

6 -qadam: "Orqa tomchi chiqib ketadi"

"Orqa tomchi chiqib ketadi"
"Orqa tomchi chiqib ketadi"
"Orqa tomchi chiqib ketadi"
"Orqa tomchi chiqib ketadi"
"Orqa tomchi chiqib ketadi"
"Orqa tomchi chiqib ketadi"

Ko'p odamlar, velosiped harakatlanayotganda, orqa tomondan ishqalanish muammosini ko'tarishdi. Ba'zi murabbiylarning o'qi bor (Kickr kabi), lekin ko'pchilikda bunday emas.

Hozirgi vaqtda men uchun eng yaxshi echim-tezlik bilan chiqib ketadigan adapterlarga 61800-2RS standart yivli rulmanlarni (har biri 2 funt sterlingga) o'rnatish, so'ngra aks o'qlarining chiqib ketadigan joylarini QR shishasi bilan o'rnatish.

Rulmanlarga yupqa shimgichli yuvish vositasi kerak bo'ladi, masalan, adapter va rulman o'rtasida M12 16 mm 0,3 mm.

Ular juda mos keladi va murabbiydan mustaqil ravishda velosiped va shish bilan aylanadi.

Hozirgi vaqtda bu diskdagi ofsetni bir necha mm ga o'zgartiradi, shuning uchun siz indeksni qayta tiklashingiz kerak bo'ladi

Men mashinaning maxsus qismlarini (pdf rejasiga qarang) loyihalashtiryapman (bo'lajak qaynotamning torna mashinasida, unga yordam berish uchun bir soat bo'lsa!). Bular hali sinovdan o'tkazilmagan !!! QR adapterining ichki yuzasidan 1 mm silliqlash - bu maxsus asboblarsiz tez tuzatish;)

Tavsiya: