Mündəricat:
- Təchizat
- Addım 1: Bəzi Riyaziyyat
- Addım 2: Bəzi məlumatlar əldə edin
- Addım 3: Hardware 1 Lineer Aktuator
- Addım 4: Hardware 2 - H -Bridge
- Addım 5: Hardware 3 Control Electronics (Arduino)
- Addım 6: 'Arxadan Düşənlər'
Video: Açıq (Velosiped) dərəcəli Simulator - OpenGradeSIM: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Giriş
ABŞ -da tanınmış bir fitness şirkəti (Wahoo), bu yaxınlarda, istifadəçinin mindiyi təpənin simulyasiya edilmiş dərəcəsinə görə (Kickr Climb) turbo məşqçidə velosipedin ön hissəsini qaldıran və aşağı endirən möhtəşəm bir qapalı təlim vasitəsi təqdim etdi.
Təəccüblü görünür, amma təəssüf ki, bu hamımız üçün əlçatan deyil, çünki 1) Wahoo məşqçisinin ən yaxşısı və 2) bunu etmək üçün 500 funt sterlinq pul lazımdır.
Klavikula sındırdım (dağ velosipedinə heç vaxt yol velosipedçisi qoymayın), buna görə də məşqçidə daha çox mil getdim və düşünmək üçün daha çox vaxtım oldu və bunun əyləncəli bir layihə ola biləcəyini düşündüm.
Ticarət vahidi -5% -dən +20% -ə qədər simulyasiya edir, buna görə büdcənin 10% -nə yaxınlaşmaq istədim!
Bu mənim Tacx Neo -nun ətrafında hazırlanmışdır, ancaq güc və sürət məlumatlarını ANT+ və ya BLE vasitəsi ilə yayımlayan hər hansı bir məşqçi işə götürülə bilər (hesab edirəm!).
Yol velosipedimdəki təkər bazası tam olaraq 1000 mm ölçüdə olduğundan, 20% simulyasiya etmək üçün çəngəlləri 200 mm qaldırmalıyam (şəkilə baxın), beləliklə 200 mm xətti aktuator bunu edər. Velosiped + sürücünün çəkisinin 100 kq -dan çox olması ehtimalı yoxdur və bu oxlar arasında paylandığı üçün çoxu arxada 750N 75 kq qaldıracaq və yaxşı olmalıdır. Daha çox pul üçün daha sürətli aktuatorlar mövcuddur, amma bu mənə 20 funt sterlinqə başa gəlir və 10 mm/saniyə idarə edir. Sadə servo kimi istifadə edilə bilən potensiometrli aktuatorlar da 2-3 dəfə bahadır.
Təchizat
Dingil adapteri hissəsinin 3D çapı (PLA və ya ABSetc):
100 mm 3/4 düymlük 10 swg alüminium boru ehtiyatı (keçid oxu çərçivəsi üçün)
6 mm paslanmayan polad çubuqdan 80 mm
Xətti aktuator hissəsi üçün ayaqqabının 3D çapı (PLA və ya ABSetc):
H körpüsü üçün Çantanın 3D çapı
Arduino Kılıfının 3D çapı (Klaviatura ilə Versiya 1) https://www.thingiverse.com/thing:3984911 (Sürüm 2 göstərildiyi kimi (https://www.thingiverse.com/thing:3995976)
Elektronikanın hər tərəfində tərləməməyiniz üçün 3 mm şəffaf akrilik 32 x 38 mm ölçülü lazerlə kəsilmiş parça (bunu etmisiniz, ideal deyil).
Həvəsinizlə təsadüfən Shimano disk əyləclərinizdən kalibrli pistonları itələməyiniz üçün bəzi qanaxma blokları (yastıqları buraxmaq üçün uyğunlaşdırılmışdır)
Lineer Aktuator 750N 200 mm səyahət, məsələn Al03 Mini Xətti Aktuatorlar
L298N H körpüsü (bənzər:
Arduino Nano IoT 33 www.rapidonline.com sifarişi 73-4863
2 əsas membran klaviatura məsələn
IIC I2C Məntiq Səviyyə çeviricisi Arduino üçün 5V-dən 3.3V-ə qədər İki Yönlü Modul məsələn
12V 3A DC enerji təchizatı - LED işıqlandırma üçün olanlar əla işləyir!
NPE CABLE Ant+ BLE körpüsünə
Kabel körpüsü üçün 3D çap edilə bilən klip
IIC I2C Arayüzü 128x32 3.3V olan 1.3 OLED LCD Ekran Modulu
Addım 1: Bəzi Riyaziyyat
Simulyasiya olunan meylləri hesablamalıyıq. Təlimçinin bu məlumatları sürət, güc, kadans və s. İlə birlikdə reklam edəcəyinə ümid edirdim, ancaq məşqçi sadəcə planşetdəki proqrama, kompüterə və s. Nəzarət etmək üçün istifadə olunan gücə uyğun olaraq müqavimət göstərir. Proqramdan 'simulyasiya edilmiş dərəcəni' asanlıqla ələ keçirə bilmədim, buna görə də geriyə işləməli idim …
Velosipeddə və atlıda hərəkət edən qüvvələr, müqavimətli itkilərlə təpəyə qalxmaq üçün lazım olan gücün birləşməsidir. Təlimçi sürət və güc barədə məlumat verir. Müəyyən bir sürətlə müqavimət itkisini tapa bilsək, qalan güc təpəyə qalxmaq üçün istifadə olunur. Tırmanma gücü velosipedin və sürücünün ağırlığından və qalxma sürətindən asılıdır və buna görə də enişə geri dönə bilərik.
Əvvəlcə tipik sürətlərdə müqavimətli güc itkisi üçün bəzi məlumat nöqtələrini tapmaq üçün inanılmaz https://bikecalculator.com saytından istifadə etdim. Sonra xətti bir əlaqə yaratmaq üçün sürət sahəsini dəyişdirdim və ən uyğun xətt tapdım. Xəttin tənliyini alaraq indi müqavimətdən gücü (W) hesablaya bilərik = (0.0102*(Speedkmh^2.8))+9.428.
"Qalxma" gücü vermək üçün ölçülən gücdən müqavimətin gücünü alın.
Km/saatda qalxma sürətini bilirik və bunu SI m/s vahidlərinə çeviririk (3.6 -ya bölün).
Meyl tapılır: meyl (%) = ((PowerClimbing/(WeightKg*g))/Speed)*100
sərbəst düşmənin sürətlənməsi g = 9.8m/s/s və ya 9.8 N/kq
Addım 2: Bəzi məlumatlar əldə edin
Meyl hesablanması sürət və güc tələb edir. Bunu almaq üçün məşqçiyə BLE vasitəsilə qoşulmaq üçün Arduino Nano 33 IoT istifadə etdim. Bu modul üçün yerli ArduinoBLE kitabxanasının cari v.1.1.2 versiyası heç bir formada identifikasiyanı idarə etmədiyi üçün əvvəlcə çox sıxışdım, bu da (?) Kommersiya BLE sensorlarının çoxunun onunla birləşməyəcəyi deməkdir.
Çözüm, NLEE kabelindən ALE+ BLE körpüsündən (https://npe-inc.com/cableinfo/) istifadə etmək idi ki, bu da təlimçi ilə əlaqə qurmaq üçün təlimatçının BLE-ni pulsuz saxlayır və BLE-də heç bir təsdiq tələb etmir. tərəf.
BLE gücünün xarakteristikası olduqca sadədir, çünki vatlarda olan güc, ötürülən məlumatların ikinci və üçüncü baytlarında 16 bitlik tam ədəd kimi (az indian yəni ən az əhəmiyyətli oktet əvvəl) mövcuddur. Velosiped kompüterimin göstərdiyi kimi 3s orta güc vermək üçün hərəkətli bir orta filtr tətbiq etdim, çünki bu daha az düzensizdir.
if (powerCharacteristic.valueUpdated ()) {
// uint8_t holdpowervalues [6] = {0, 0, 0, 0, 0, 0} üçün bir sıra təyin edin; // dəyəri oxuyun dizi powerCharacteristic.readValue (holdpowervalues, 6); // Güc 2 və 3 -cü yerdə vat olaraq qaytarılır (lok 0 və 1 8 bit bayraqdır) byte rawpowerValue2 = holdpowervalues [2]; // HEX -də ən kiçik sig bayt byte rawpowerValue3 = holdpowervalues [3]; // GEX -də ən çox sig bayt uzun rawpowerTotal = (rawpowerValue2 + (rawpowerValue3 * 256)); // '3s power' vermək üçün hərəkət edən orta filtrdən istifadə edin powerTrainer = moveAverageFilter_power.process (rawpowerTotal);
BLE sürət xüsusiyyəti (Velosiped Sürəti və Kadans), SIG -in spesifikasiyanı yazarkən siqaret çəkdiyini düşündürən şeylərdən biridir.
Xarakteristikada nə sürət, nə də ritm olmayan 16 baytlıq bir sıra qaytarılır. Bunun əvəzinə təkər inqilabları və krank inqilabları (cəmi) və son hadisə məlumatlarının saniyənin 1024 -cü hissəsindəki vaxtını alırsınız. O zaman daha çox riyaziyyat. Və baytlar həmişə mövcud deyildir, buna görə başlanğıcda bayraq baytı var. Oh, və baytlar artıq HEX -dir, buna görə ikinci baytı 256, üçüncüsünü 65536 və s. Vuraraq geriyə oxumaq lazımdır. Sürəti tapmaq üçün məsafəni bilmək üçün standart bir velosiped təkərinin dairəsini götürməlisiniz.
if (speedCharacteristic.valueUpdated ()) {
// Bu dəyərə 16 baytlıq bir sıra lazımdır uint8_t holdvalues [16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Amma mən yalnız ilk 7 speedCharacteristic.readValue (holdvalues, 7) oxuyacağam; bayt rawValue0 = gözləmə dəyərləri [0]; // ikili bayraqlar 8 bit int byte rawValue1 = holdvalues [1]; // inqilablar HEX -də ən az əhəmiyyət kəsb edən bayt rawValue2 = holdvalues [2]; // inqilablar HEX -də növbəti ən əhəmiyyətli bayt rawValue3 = holdvalues [3]; // inqilablar HEX -də növbəti ən əhəmiyyətli bayt rawValue4 = holdvalues [4]; // inqilablar HEX -də ən əhəmiyyətli bayt rawValue5 = holdvalues [5]; // son təkər hadisəsindən bəri vaxt ən az sig bayt byte rawValue6 = holdvalues [6]; // son təkər hadisəsindən bəri ən sig byte if (firstData) {// 2, 3 və 4 -də kiçik endian hex kimi məcmu təkər inqilablarını əldə edin (əvvəlcə ən az oktet) WheelRevs1 = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); // Saniyənin 1024 -cü saniyəsində son təkər hadisəsindən bəri vaxt alın_1 = (rawValue5 + (rawValue6 * 256)); firstData = yanlış; } başqa {// İkinci məlumat uzunluğunu əldə edin WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); uzun TimeTemp = (rawValue5 + (rawValue6 * 256)); if (WheelRevsTemp> WheelRevs1) {// velosipedin hərəkət etdiyinə əmin olun WheelRevs2 = WheelRevsTemp; Time_2 = TimeTemp; firstData = doğru;}
// Məsafə fərqini sm -də tapın və km -ə çevirin float distanceTravelled = ((WheelRevs2 - WheelRevs1) * wheelCircCM);
float kmTravelled = məsafəTravelled / 1000000;
// 1024 saniyədə vaxt tapın və saata çevirin
float timeDifference = (Time_2 - Time_1); float timeSecs = timeDifference / 1024; float timeHrs = timeSecs / 3600;
// kmh sürəti tapın
sürətKMH = (kmTravelled / timeHrs);
Arduino eskizi GitHub -da yerləşdirilir (https://github.com/mockendon/opengradesim).
Addım 3: Hardware 1 Lineer Aktuator
Disk əyləcli yol velosipedimdəki keçid oxu, çəngəllər arasında 100 mm olan 12 mm -lik oxu təmizləmək üçün 19.2 mm -lik bir aksa malikdir.
3/4 düymlük 10swg alüminium boru, ebayda (https://www.ebay.co.uk/str/aluminiumonline) Dave adlı mükəmməl bir uyğunluq və gözəl bir başlıqdır və bir neçə lirəyə mənim üçün kəsdi.
Aktivatorda 6 mm çuxurlu 20 mm -lik bir çubuq var, buna görə də 3D çaplı hissə alüminium borunu 6 mm polad çubuğa bağlayır və qüvvələr 90% sıxılma olduğundan bəzi PLA / ABS problemi həll edə bilər.
Standart bir sürətli buraxılış qurğusu işə salırsınızsa, buna bənzər bir şey (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) bu komponenti yenidən dizayn etməkdən çəkinər.
Çəkmə, Tacx məşqçimlə birlikdə verilən yükseltici blokuna uyğun olaraq hazırlanmışdır, lakin ehtimal ki, bir çox oxşar qurğulara uyğun olardı və ya TinkerCad faylını tələbinizə uyğun olaraq düzəldə bilərsiniz.
Addım 4: Hardware 2 - H -Bridge
İnternetdə çox yayılmış olan bu L298N H körpü lövhəsi, Arduino -nu xətti aktuator üçün lazım olan 12V enerji təchizatı ilə təmin etmək üçün əla olan 5V tənzimləyiciyə malikdir. Təəssüf ki, Arduino Nano IoT lövhəsi 3.3V -dir, buna görə məntiqi səviyyə çeviriciyə ehtiyac var (və ya siqnallar tək yönlü olduğu üçün bir optoizolator).
Çanta, LED işıqlandırma tətbiqlərində istifadə olunan güc bağlayıcılarını qəbul etmək üçün hazırlanmışdır. Arduino baş qurğusunu asanlıqla bağlamağı / ayırmağı mümkün etmək üçün bir USB uzatma qurğusu kəsdim və 3.3V siqnalizasiya üçün elektrik xətlərini və məlumat xətlərini istifadə edəcəyimə əmin idim, buna qarşı vicdanla məsləhət görürəm. USB portlarını və ya ətraf qurğularını səhvən qoşaraq qovurmaqdan nifrət edin!
Addım 5: Hardware 3 Control Electronics (Arduino)
Arduino OLED və məntiq səviyyəsi çeviricisinin korpusunun velosipedə etibarlı şəkildə bərkidilməsini təmin etmək üçün arxa tərəfində standart 1/2 növbə Garmin tərzi montajı var. "Ön tərəfə" montaj vahidin yuxarıya və ya aşağıya əyilməsini sürətləndiricinin mövqeyinə və ya kod xəttinin başlanğıcda avtomatik sıfıra əlavə edilməsinə imkan verəcəkdir.
Çantada membran klaviatura üçün bir yer var - bu, sürücünün və velosipedin ümumi çəkisini təyin etmək üçün istifadə olunur. Xüsusilə heç kimlə bir məşqçi paylaşmadığınız təqdirdə bunu proqramla təyin edə bilərsiniz.
'Manual' rejimini tətbiq etmək yaxşı ola bilər. Bəlkə də hər iki düyməyə basmaq əl rejimini işə sala bilər və sonra düymələr meyli artıra / azalda bilər. Bunu işlər siyahısına əlavə edəcəyəm!
Davanın STL faylı yenə Thingiverse -də mövcuddur (keçid üçün təchizat hissəsinə baxın).
Arduino eskizi GitHub -da yerləşdirilir (https://github.com/mockendon/opengradesim).
Kabel körpünüz üçün səliqəli kiçik bir klipi buradan çap edə bilərsiniz
Addım 6: 'Arxadan Düşənlər'
Bir çox insanlar velosiped hərəkət edərkən arxadan sürtünmə problemini qaldırdılar. Bəzi məşqçilərin hərəkət edən bir oxu var (Kickr kimi), amma çoxunda yoxdur.
Hal-hazırda mənim üçün ən yaxşı həll yolu, tez buraxılan adapterlərə bəzi standart 61800-2RS dərin yivli rulmanları (hər biri təxminən 2 funt sterlinq) bağlamaq və sonra böyük ölçüdə QR şiş ilə axelin düşmə çıxışlarını montaj etməkdir (şəkillərə bax).
Rulmanlara, məsələn, adaptorla rulman arasında M12 16mm 0.3mm nazik bir yuyucusu lazımdır.
Mükəmməl uyğunlaşırlar və məşqçidən asılı olmayaraq velosiped və şiş ilə fırlanırlar.
Bu anda sürücü tərəfindəki ofset bir neçə mm dəyişir, buna görə yenidən indeksləşdirməlisiniz
Maşına xüsusi hissələr hazırlayıram (pdf planına baxın) (gələcək qayınatamın dəzgahında kömək üçün bir saat olanda!). Bunlar hələ sınaqdan keçirilməyib !!! Ancaq stok sürücüsü tərəfindəki QR adapterinin daxili səthindən 1 mm məsafədə üyüdülməsi heç bir xüsusi alət olmadan sürətli bir düzəlişdir;)
Tövsiyə:
Açıq Hava Kompüter Çantası: 6 addım
Açıq Hava Kompüter Çantası: Bu layihə üçün lazım olan alətlər, Hammarhand qazma vintli sürücülərdir
Arduino Açıq Pəncərə Detektoru - Qış üçün: 6 addım
Arduino Açıq Pəncərə Detektoru - Qış üçün: Çöldə soyuq olur, amma bəzən otaqlarımda təmiz havaya ehtiyacım var. Beləliklə, pəncərəni açıram, otaqdan çıxıram, qapını bağlayıram və 5-10 dəqiqəyə qayıtmaq istəyirəm. Və bir neçə saatdan sonra pəncərənin açıq olduğunu xatırlayıram … Bəlkə də bilirsən
Sənaye dərəcəli PLC (Controllino) ilə DIY İşıq Bariyer Siqnal Sistemi: 5 addım
Sənaye dərəcəli PLC (Controllino) ilə DIY İşıq Bariyeri Siqnal Sistemi: Bu layihədə sizə bir PLC (Controllino) -u işıq maneəsi, siren, qamış açarı və stroboskop işığı ilə necə birləşdirdiyimi göstərəcəyəm. intruderləri asanlıqla qorxutacaq həqiqətən güclü işləyən bir siqnalizasiya/təhlükəsizlik sistemi. L
Kommersiya dərəcəli davamlı çini necə quraşdırılır: 6 addım
Kommersiya dərəcəli Dayanıklı Çini Necə Quraşdırılır: Bu Təlimat, "Vinil Kompozisiyası" və ya "Asfalt" kafel kimi də tanınan, baqqal mağazaları kimi bir çox ticarət şəraitində tapılan Döşəməli kafelin necə qurulacağını göstərir. Yəqin ki, düşündüyünüzdən daha asandır
Mebel dərəcəli Kokteyl Arcade Dolabı: 12 Addım (Şəkillərlə birlikdə)
Mebel Sınıfı Kokteyl Arcade Şkafı: Mən bir məhsul dizayneri, video oyunçu və mənzil həvəskarıyam. MAME arcade böcəyindən dişlədim və dostlarım Dorothy və Arvon üçün bir toy hədiyyəsi almalı oldum, buna görə də gözü görünməyəcək bir arcade kabineti dizayn etmək və qurmaq qərarına gəldim