Fungua (Baiskeli) Gari Simulator - OpenGradeSIM: Hatua 6
Fungua (Baiskeli) Gari Simulator - OpenGradeSIM: Hatua 6
Anonim
Image
Image
Fungua (Baiskeli) Simulator ya Daraja - OpenGradeSIM
Fungua (Baiskeli) Simulator ya Daraja - OpenGradeSIM
Fungua (Baiskeli) Daraja la Simulator - OpenGradeSIM
Fungua (Baiskeli) Daraja la Simulator - OpenGradeSIM

Utangulizi

Kampuni fulani inayojulikana ya mazoezi ya mwili ya Amerika (Wahoo) hivi karibuni ilileta msaada mkubwa wa mafunzo ya ndani ambayo huinua na kushusha mbele ya baiskeli kwa mkufunzi wa turbo kulingana na daraja la kuiga la mtumiaji ambaye anapanda (Kickr Climb).

Inaonekana ya kushangaza lakini kwa kusikitisha hii haipatikani kwetu sote kwani utahitaji 1) juu ya mkufunzi wa anuwai ya Wahoo na 2) pesa taslimu £ 500 kuifanya hii iwe yako.

Nilivunja clavicle (kamwe sijaweka baiskeli barabarani kwenye baiskeli ya mlima) kwa hivyo nilikuwa na maili zaidi kwa mkufunzi na wakati zaidi wa kutafakari na nilidhani hii inaweza kuwa mradi wa kufurahisha.

Kitengo cha biashara huiga -5% hadi + 20% kwa hivyo nilitaka kukaribia hiyo lakini kwa 10% ya bajeti!

Hii imeundwa karibu na Tacx Neo yangu lakini mkufunzi yeyote anayetangaza nguvu na data ya kasi kupitia ANT + au BLE inaweza kufanywa kufanya kazi (nadhani!).

Kwa kuwa msingi wa gurudumu kwenye baiskeli yangu ya barabara hupima haswa 1000mm ningehitaji kuinua uma kwa 200mm kuiga 20% (tazama picha) kwa hivyo actuator ya mstari wa 200mm ingefanya. Uzito wa mwendesha baiskeli + hauwezekani kuzidi kilo 100 na kwa kuwa hii inasambazwa kati ya vishada na nyingi iko nyuma 750N itainua 75kg na inapaswa kuwa sawa. Wafanyakazi wa haraka wanapatikana kwa pesa zaidi lakini hii ilinigharimu karibu pauni 20 na inasimamia 10mm / sec. Actuators na potentiometers ambayo inaweza kutumika kama servos rahisi pia ni mara 2 hadi 3 ghali zaidi.

Vifaa

Uchapishaji wa 3D (PLA au ABSetc) ya sehemu ya adapta ya axle: https://www.thingiverse.com/thing 3963542

100mm ya 3/4 inchi 10 swg tube ya hisa ya aluminium (kwa fremu ya axle)

80mm ya hisa ya chuma cha pua cha 6mm

Uchapishaji wa 3D (PLA au ABSetc) ya kiatu kwa sehemu ya actuator ya mstari: https://www.thingiverse.com/thing 3963536

Uchapishaji wa 3D wa Kesi ya daraja la H https://www.thingiverse.com/thing 3963573

Uchapishaji wa 3D wa Kesi ya Arduino (Toleo la 1 na kitufe) https://www.thingiverse.com/thing 3984911 (Toleo la 2 kama lilivyoonyeshwa

Laser kipande cha 3mm wazi akriliki 32 x 38mm ili kukuepusha na jasho kote kwa umeme (alifanya hivyo, sio bora).

Vizuizi vingine vya kutokwa na damu (vilivyobadilishwa kuacha pedi ndani) kukuzuia kwa bahati mbaya kusukuma bastola za kupiga risasi kutoka kwa breki zako za Shimano katika shauku yako https://www.thingiverse.com/thing 3989504

Linear Actuator 750N 200mm kusafiri mfano Al03 Mini Linear Actuators kutoka

Daraja la L298N H (kama:

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

Kibodi 2 ya utando muhimu mfano

IIC I2C Kiwango cha mantiki Kubadilisha Bi-Directional Module 5V hadi 3.3V Kwa Arduino km

Ugavi wa umeme wa 12V 3A DC - zile za taa za LED hufanya kazi nzuri!

NPE CABLE Ant + kwa Daraja la BLE

Sehemu ya kuchapishwa ya 3D ya daraja la CABLE https://www.thingiverse.com/thing 39894766

Moduli ya OLED LCD ya 1.3 na IIC I2C Interface 128x32 3.3V

Hatua ya 1: Baadhi ya Hisabati

Baadhi ya Hisabati
Baadhi ya Hisabati

Tunahitaji kuhesabu mwelekeo unaigwa. Nilikuwa na matumaini kuwa mkufunzi atatangaza data hii pamoja na kasi, nguvu, upweke nk. Sikuwa na njia ya kukamata kwa urahisi 'daraja la kuiga' kutoka kwa programu kwa hivyo ningelazimika kufanya kazi nyuma…

Vikosi vinavyofanya kazi kwenye baiskeli na mpanda farasi ni mchanganyiko wa upotezaji wa nguvu na nguvu inayohitajika kupanda kilima. Mkufunzi huripoti kasi na nguvu. Ikiwa tunaweza kupata hasara za kupinga kwa kasi fulani basi nguvu iliyobaki inatumiwa kupanda kilima. Nguvu ya kupanda inategemea uzito wa baiskeli na mpanda farasi na kiwango cha kupanda na kwa hivyo tunaweza kufanya kazi kurudi kwenye mwelekeo.

Kwanza nilitumia kushangaza https://bikecalculator.com kupata vidokezo vya data vya upotezaji wa nguvu za ushupavu kwa kasi ya kawaida. Kisha nikabadilisha uwanja wa kasi ili kutoa uhusiano wa laini na nikapata laini inayofaa zaidi. Kuchukua equation ya laini tunaweza sasa kuhesabu nguvu (W) kutoka kwa upinzani = (0.0102 * (Speedkmh ^ 2.8)) + 9.428.

Chukua nguvu kutoka kwa upinzani kutoka kwa nguvu iliyopimwa ili kutoa nguvu ya 'kupanda'.

Tunajua kasi ya kupanda kwa km / hr na kubadilisha hii kuwa vitengo vya SI vya m / s (gawanya na 3.6).

Uelekezaji unapatikana kutoka: Tembea (%) = ((PowerClimbing / (WeightKg * g)) / Speed) * 100

ambapo kuongeza kasi ya kuanguka bure g = 9.8m / s / s au 9.8 N / kg

Hatua ya 2: Pata Takwimu

Pata Takwimu
Pata Takwimu

Hesabu ya kutegemea inahitaji kasi na nguvu. Nilitumia Arduino Nano 33 IoT kuungana na mkufunzi kupitia BLE kupokea hii. Nilikwama sana hapo awali kwani toleo la sasa la v.1.1.2 la maktaba ya asili ya ArduinoBLE kwa moduli hii haishughulikii uthibitishaji kwa njia yoyote ambayo inamaanisha sensorer nyingi (?) Za kibiashara za BLE hazitaambatana nayo.

Suluhisho lilikuwa kutumia NPE Cable ANT + kwa Daraja la BLE (https://npe-inc.com/cableinfo/) ambayo inaweka kujengwa kwa BLE ya mkufunzi bure kwa programu ya mafunzo kuwasiliana na haitaji uthibitisho kwenye BLE upande.

Tabia ya nguvu ya BLE ni ya moja kwa moja kwani nguvu katika wati iko katika kaiti ya pili na ya tatu ya data iliyoambukizwa kama nambari 16 kidogo (mdogo mdogo wa mwisho yaani octet muhimu kwanza). Nilitumia kichungi cha wastani cha kusonga ili nipe nguvu wastani wa 3s - kama vile kompyuta yangu ya baiskeli inavyoonyesha - kwani hii sio sawa.

ikiwa (powerCharacteristic.valueUpdated ()) {

// Fafanua safu kwa thamani uint8_t holdpowervalues [6] = {0, 0, 0, 0, 0, 0}; // Soma thamani katika safu ya nguvuCharacteristic.readValue (holdpowervalues, 6); // Nguvu hurudishwa kama wati katika eneo la 2 na 3 (loc 0 na 1 ni bendera 8 kidogo) byp rawpowerValue2 = holdpowervalues [2]; // nguvu ndogo sig byte katika HEX byte rawpowerValue3 = holdpowervalues [3]; // nguvu zaidi sig byte katika nguvu mbichi ya HEX Jumla = (rawpowerValue2 + (rawpowerValue3 * 256)); // Tumia kichujio cha wastani kusonga kutoa '3s power' PowerTrainer = movingAverageFilter_power.process (rawpowerTotal);

Tabia ya kasi ya BLE (Kasi ya Baiskeli na Cadence) ni moja wapo ya mambo ambayo inakufanya ujiulize ni nini SIG ilikuwa ikivuta sigara wakati waliandika maelezo hayo.

Tabia inarudi safu 16 ya baiti ambayo haina kasi wala kadiri. Badala yake unapata mapinduzi ya gurudumu na mapinduzi ya crank (jumla) na wakati tangu data ya tukio la mwisho mnamo 1024ths ya pili. Hesabu zaidi basi. O, na ka hazipo kila wakati kwa hivyo kuna bendera ya bendera mwanzoni. O, na ka ni ndogo ya endian HEX kwa hivyo unahitaji kusoma kurudi nyuma ukizidisha kaiti ya pili na 256, ya tatu na 65536 n.k. kisha ukiongeza pamoja. Ili kupata kasi unahitaji kudhani mduara wa kawaida wa gurudumu la baiskeli kujua umbali….

ikiwa (speedCharacteristic.valueUpdated ()) {

// Thamani hii inahitaji safu 16 ya baiti uint8_t holdvalues [16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Lakini nitasoma tu kasi 7 ya kwanzaCharacteristic.readValue (holdvalues, 7); byte rawValue0 = dhamana ya kushikilia [0]; // bendera za binary 8 bit int byte rawValue1 = dhamana [1]; // mapinduzi angalau baiti muhimu katika HEX byte rawValue2 = holdvalues [2]; // mapinduzi ijayo Byte muhimu zaidi katika HEX byte rawValue3 = dhamana [3]; // mapinduzi ijayo Byte muhimu zaidi katika HEX byte rawValue4 = holdvalues [4]; // mapinduzi muhimu zaidi katika HEX byte rawValue5 = viwango vya kushikilia [5]; // wakati tangu tukio la gurudumu la mwisho angalau sig byte byte rawValue6 = dhamana [6]; // wakati tangu tukio la gurudumu la mwisho zaidi sig byte ikiwa (kwanzaData) {// Pata mageuzi ya nyongeza ya gurudumu kama hex kidogo katika loc 2, 3 na 4 (octet muhimu zaidi kwanza) WheelRevs1 = (rawValue1 + (rawValue2 * 256) + (Thamani ghafi3 * 65536) + (ghafiValue4 * 16777216)); // Pata wakati tangu tukio la gurudumu la mwisho mnamo 1024 ya pili Time_1 = (rawValue5 + (rawValue6 * 256)); kwanzaData = uwongo; } mwingine {// Pata seti ya pili ya data ndefu WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); muda mrefuTemp = (rawValue5 + (rawValue6 * 256)); ikiwa (WheelRevsTemp> WheelRevs1) {// hakikisha baiskeli inasonga WheelRevs2 = WheelRevsTemp; Muda_2 = Muda wa Muda; kwanzaData = kweli;}

// Pata tofauti ya umbali katika cm na ubadilishe umbali wa km kueleaTravelled = ((WheelRevs2 - WheelRevs1) * wheelCircCM);

kuelea kmKusafiri = umbaliKusafiri / 1000000;

// Pata wakati katika 1024 ya sekunde na ubadilishe kuwa masaa

wakati wa kuelea Tofauti = (Muda_2 - Wakati_1); wakati wa kueleaSecs = wakatiTofauti / 1024; wakati wa kueleaHrs = saaSecs / 3600;

// Pata kasi kmh

kasiKMH = (kmTravelled / timeHrs);

Mchoro wa Arduino umekaribishwa huko GitHub (https://github.com/mockendon/opengradesim).

Hatua ya 3: Vifaa 1 Kitendaji cha Linear

Vifaa 1 Kitendaji cha Linear
Vifaa 1 Kitendaji cha Linear
Vifaa 1 Kitendaji cha Linear
Vifaa 1 Kitendaji cha Linear
Vifaa 1 Kitendaji cha Linear
Vifaa 1 Kitendaji cha Linear

Mhimili kwenye baiskeli yangu ya diski ya kuvunja diski inabainisha axeli ya 19.2mm ili kusafisha 12mm kupitia axle na 100mm kati ya uma.

Hisa 3/4 inchi 10swg tube ya alumini ni kifafa kamili na chap nzuri inayoitwa Dave kwenye ebay (https://www.ebay.co.uk/str/aluminiumonline) hutolewa na kuikata kwa urefu kwa pauni chache.

Mchezaji ana bar ya 20mm na shimo la 6mm kwa hivyo sehemu iliyochapishwa ya 3D inaunganisha bomba la aluminium na bar ya chuma ya 6mm na kwa kuwa vikosi ni 90% ya kukandamiza baadhi ya PLA / ABS iko kwenye changamoto.

Ikiwa utatumia usanidi wa kawaida wa kutolewa haraka basi kitu kama hiki (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) kingeepuka kuunda tena sehemu hii.

Boti imeundwa kutoshea kwenye kizuizi cha zabuni kilichotolewa na mkufunzi wangu wa Tacx lakini labda itatoshea kwa wafugaji wengi sawa au unaweza kuhariri faili ya TinkerCad ili kukidhi mahitaji yako.

Hatua ya 4: Vifaa 2 - Daraja la H

Vifaa 2 - Daraja la H
Vifaa 2 - Daraja la H
Vifaa 2 - Daraja la H
Vifaa 2 - Daraja la H
Vifaa 2 - Daraja la H
Vifaa 2 - Daraja la H

Bodi hizi za daraja la L298N H ambazo ni za kawaida mkondoni zimejengwa katika mdhibiti wa 5V ambayo ni nzuri kwa kupeana nguvu Arduino kutoka kwa usambazaji wa umeme wa 12V unaohitajika kwa mtendaji wa laini. Kwa bahati mbaya bodi ya Arduino Nano IoT inaashiria 3.3V kwa hivyo hitaji la kubadilisha kiwango cha mantiki (au optoisolator kwani ishara hazielekei tu).

Kesi hiyo imeundwa kukubali viunganishi vya umeme vinavyotumika katika matumizi ya taa za LED. Nilichoma risasi ya upanuzi wa USB ili kuifanya iweze kuunganisha / kukata kitengo cha kichwa cha Arduino kwa urahisi na wakati nilikuwa na uhakika wa kutumia laini za umeme kwa nguvu na laini za data kwa kuashiria 3.3V ningewashauri kwa uaminifu KINYUME na hii kwani ningependa kumchukia mtu kukaanga bandari au vifaa vyake vya USB kwa kuziingiza kwa makosa!

Hatua ya 5: Vifaa vya 3 Udhibiti wa Elektroniki (Arduino)

Vifaa vya 3 Udhibiti wa Elektroniki (Arduino)
Vifaa vya 3 Udhibiti wa Elektroniki (Arduino)
Vifaa vya 3 Udhibiti wa Elektroniki (Arduino)
Vifaa vya 3 Udhibiti wa Elektroniki (Arduino)
Vifaa vya 3 Udhibiti wa Elektroniki (Arduino)
Vifaa vya 3 Udhibiti wa Elektroniki (Arduino)

Kesi ya Arduino OLED na ubadilishaji wa kiwango cha mantiki ina kiwango cha kawaida cha 1/2 cha kugeuza mtindo wa Garmin nyuma kuiruhusu iwekwe salama kwa baiskeli. Mlima wa 'mbele' utaruhusu kitengo kuinuliwa juu au chini hadi 'sifuri' nafasi ya kasi au mstari wa nambari tu kwa sifuri kiotomatiki mwanzoni itakuwa rahisi kuongeza.

Kesi hiyo ina doa kwa keypad ya utando - hii hutumiwa kuweka mpanda farasi pamoja na uzito wa baiskeli. Unaweza tu kuweka programu hii haswa ikiwa haushiriki mkufunzi na mtu yeyote.

Inaweza kuwa nzuri kutekeleza njia ya 'mwongozo'. Labda kubonyeza vifungo vyote kunaweza kuanzisha hali ya mwongozo na kisha vifungo vinaweza kuongeza / kupungua kuinama. Nitaongeza hii kwenye orodha ya mambo ya kufanya!

Faili ya STL ya kesi hiyo, tena, inapatikana kwenye Thingiverse (angalia sehemu ya vifaa kwa kiunga).

Mchoro wa Arduino umekaribishwa huko GitHub (https://github.com/mockendon/opengradesim).

Unaweza kuchapisha kipande kidogo nadhifu cha daraja lako la CABLE kutoka hapa https://www.thingiverse.com/thing 3989476

Hatua ya 6: 'Matembezi ya Nyuma'

'Matone ya Nyuma'
'Matone ya Nyuma'
'Matone ya Nyuma'
'Matone ya Nyuma'
'Matone ya Nyuma'
'Matone ya Nyuma'

Watu wengi wameibua suala la kusugua nyuma wakati baiskeli inahamia. Wakufunzi wengine wana mhimili unaohamia (kama Kickr) lakini wengi hawana.

Hivi sasa suluhisho langu bora ni kupachika fani za kina za 61800-2RS za kina (karibu pauni 2 kila moja) kwenye adapta za kutolewa haraka na kisha weka njia za kuacha axel kwenye hizi (tazama picha) na saizi ya juu ya QR

Fani zinahitaji washer nyembamba ya shim km M12 16mm 0.3mm kati ya adapta na kuzaa.

Zinatoshea kikamilifu na huzunguka na baiskeli na skewer kwa uhuru wa mkufunzi.

Kwa sasa hii inabadilisha malipo kwa upande wa gari na mm kadhaa kwa hivyo utahitaji kuorodhesha tena

Ninabuni sehemu za kawaida (angalia mpango wa pdf) kwa mashine (kwenye lathe ya shemeji yangu wa baadaye wakati ana saa ya kusaidia!). Hizi hazijapimwa bado !!! Lakini kusaga 1mm mbali na uso wa ndani wa adapta ya QR upande wa gari ni urekebishaji wa haraka bila zana maalum;)

Ilipendekeza: