Агуулгын хүснэгт:

Нээлттэй (унадаг дугуй) ангийн симулятор - OpenGradeSIM: 6 алхам
Нээлттэй (унадаг дугуй) ангийн симулятор - OpenGradeSIM: 6 алхам

Видео: Нээлттэй (унадаг дугуй) ангийн симулятор - OpenGradeSIM: 6 алхам

Видео: Нээлттэй (унадаг дугуй) ангийн симулятор - OpenGradeSIM: 6 алхам
Видео: Прохождение The Last of Us part 2 (Одни из нас 2)#9 Хочешь узнать от куда эти шрамы? 2024, Арваннэгдүгээр
Anonim
Image
Image
Нээлттэй (унадаг дугуй) ангийн симулятор - OpenGradeSIM
Нээлттэй (унадаг дугуй) ангийн симулятор - OpenGradeSIM
Нээлттэй (унадаг дугуй) ангийн симулятор - OpenGradeSIM
Нээлттэй (унадаг дугуй) ангийн симулятор - OpenGradeSIM

Танилцуулга

АНУ -д алдартай нэгэн фитнесс компани (Wahoo) саяхан хэрэглэгчийн унаж буй толгодын загвараар (Kickr Climb) дагуу турбо дасгалжуулагч дээр дугуйны урд хэсгийг өргөж, доошлуулдаг маш сайн гэрийн туслах хэрэгслийг гаргаж ирэв.

Гайхалтай харагдаж байна, гэхдээ харамсалтай нь энэ нь бидэнд боломжгүй, учир нь танд 1) Wahoo -ийн шилдэг дасгалжуулагч, 2) 500 фунт стерлингийн бэлэн мөнгө хэрэгтэй болно.

Би эгэм эвдсэн (уулын дугуйнд замын дугуйчныг хэзээ ч бүү тавь), тиймээс би дасгалжуулагч дээр илүү олон миль зугаалж, эргэцүүлэх цаг гаргаж, үүнийг хөгжилтэй төсөл гэж бодож байсан.

Арилжааны нэгж нь -5% -аас +20% -ийг дуурайдаг тул би үүнд ойртохыг хүссэн боловч төсвийн 10% -ийг зарцуулдаг.

Энэ бол миний Tacx Neo -ийн эргэн тойронд зориулагдсан боловч ANT+ эсвэл BLE -ээр дамжуулан түүний хүч чадал, хурдны мэдээллийг дамжуулдаг аливаа дасгалжуулагчийг ажиллуулж болно (миний бодлоор!).

Миний дугуйны дугуйны суурь нь яг 1000 мм хэмжээтэй тул би 20% -ийг дуурайхын тулд салаагаа 200 мм -ээр өргөх хэрэгтэй (зураг харна уу). Унадаг дугуй + жолоочийн жин 100кг -аас хэтрэх магадлал багатай тул тэнхлэгийн хооронд тарааж, ихэнх нь арын хэсэгт байрладаг тул 750N нь 75кг өргөх бөгөөд зүгээр байх ёстой. Илүү их мөнгө авахын тулд илүү хурдан идэвхжүүлэгчийг авах боломжтой боловч энэ нь надад 20 фунт стерлинг зарцуулж, 10 мм/сек удирддаг. Энгийн servo болгон ашиглаж болох потенциометр бүхий идэвхжүүлэгч нь мөн 2-3 дахин үнэтэй байдаг.

Хангамж

Тэнхлэг адаптерийн хэсгийн 3D хэвлэх (PLA эсвэл ABSetc):

100 мм 3/4 инчийн 10 swg хөнгөн цагаан хоолой

6 мм зэвэрдэггүй ган баарны 80 мм хэмжээтэй

Хөдөлгүүрийн шугаман хэсгийн гутлын 3D хэвлэх (PLA эсвэл ABSetc):

H-гүүрний хэргийг 3D хэвлэх

Arduino -ийн кейс 3D хувилбар (товчлууртай 1 -р хувилбар) https://www.thingiverse.com/thing:3984911 (2 -р хувилбарыг үзүүлсэн шиг (https://www.thingiverse.com/thing:3995976)

Электроникийг бүхэлд нь хөлрөхгүйн тулд 3 мм тунгалаг нийлэг 32 х 38 мм хэмжээтэй лазер хэрчих хэсэг (тийм ч тохиромжтой биш).

Зарим цус алдалт (жийргэвчийг орхиход зориулагдсан) нь таныг санаандгүй байдлаар Shimano дискний тоормосны тоормосны түлхүүрийг түлхэхээс урьдчилан сэргийлэх болно.

Шугаман идэвхжүүлэгч 750N 200мм-ийн зайтай, жишээ нь Al03 Mini Linear Actuators

L298N H гүүр (жишээ нь:

Arduino Nano IoT 33 www.rapidonline.com захиалга 73-4863

2 түлхүүр мембран гар жишээ нь

IIC I2C логик түвшний хөрвүүлэгч хоёр чиглэлтэй модуль 5V-аас 3.3V Arduino-д зориулсан жишээ нь

12V 3A DC цахилгаан хангамж - LED гэрэлтүүлгийн хувьд маш сайн ажилладаг!

NPE CABLE Ant+ нь BLE гүүр рүү

CABLE гүүрний 3D хэвлэх клип

1.3 OLED LCD дэлгэцийн модуль IIC I2C интерфэйс 128x32 3.3V

Алхам 1: Зарим математик

Зарим математик
Зарим математик

Дуурайж буй налууг бид тооцоолох хэрэгтэй. Сургагч багш энэ өгөгдлийг хурд, хүч, хэмнэл гэх мэтээр сурталчлах болно гэж найдаж байсан боловч сургагч нь таблет, компьютер гэх мэт програм хангамжийн дагуу тэжээлийн гаралтыг хадгалахын тулд эсэргүүцэл үзүүлдэг. Надад "симуляцийн зэрэг" -ийг програм хангамжаас хялбархан олж авах боломж байгаагүй тул би ухрах замаар ажиллах хэрэгтэй болно …

Унадаг дугуй болон морьтон дээр ажилладаг хүч нь эсэргүүцэл бүхий алдагдал ба толгод руу авирахад шаардагдах хүч юм. Сургагч багш хурд, хүч чадлын талаар мэдээлдэг. Хэрэв бид эсэргүүцлийн алдагдлыг тодорхой хурдаар олж чадвал үлдсэн хүчийг толгод руу авирахад ашиглаж байна. Авирах хүч нь унадаг дугуй, жолоочийн жин, өгсөх хурднаас хамаардаг тул бид налуу руу буцаж ажиллах боломжтой болно.

Эхлээд би гайхалтай https://bikecalculator.com сайтыг ашиглан ердийн хурдны эсэргүүцлийн хүчийг алдах өгөгдлийн цэгүүдийг хайж олсон. Дараа нь би хурдны домэйныг өөрчилж шугаман харилцаа үүсгэж, хамгийн сайн тохирох шугамыг олсон. Шугамын тэгшитгэлийг авч үзвэл эсэргүүцэл = (0.0102*(Speedkmh^2.8))+9.428 -аас (W) хүчийг тооцоолж болно.

"Авирах" хүчийг өгөхийн тулд хэмжсэн хүчнээс эсэргүүцлийн хүчийг аваарай.

Бид өгсөх хурдыг км/ц -ээр мэддэг бөгөөд үүнийг SI нэгж м/с болгон хөрвүүлдэг (3.6 -д хуваана).

Налууг дараахаас олж болно: Налуу (%) = ((PowerClimbing/(WeightKg*g))/Speed)*100

чөлөөт уналтын хурдатгал g = 9.8м/с/с буюу 9.8 Н/кг

Алхам 2: Зарим өгөгдөл авах

Зарим мэдээлэл авах
Зарим мэдээлэл авах

Налуугийн тооцоолол нь хурд, хүч шаарддаг. Үүнийг хүлээн авахын тулд би Arduino Nano 33 IoT ашиглан дасгалжуулагчтай BLE -ээр холбогдсон. Энэ модулийн анхны ArduinoBLE номын сангийн одоогийн v.1.1.2 хувилбар нь баталгаажуулалтыг ямар ч хэлбэрээр зохицуулдаггүй тул ихэнх арилжааны BLE мэдрэгчүүд түүнтэй хослуулахгүй гэсэн үг юм.

Үүний шийдэл бол NPE кабелийн ANT+ BLE гүүрийг ашиглах явдал байв (https://npe-inc.com/cableinfo/) бөгөөд энэ нь сургагч багшийн BLE-д суулгагдсан бөгөөд сургалтын програмыг хооронд нь харилцах боломжийг олгодог бөгөөд BLE дээр баталгаажуулалт шаарддаггүй. тал

BLE чадлын шинж чанар нь маш энгийн бөгөөд учир нь ватт дахь хүч нь дамжуулагдсан өгөгдлийн хоёр ба гурав дахь байтуудад 16 битийн бүхэл тоо (бага endian, өөрөөр хэлбэл хамгийн бага ач холбогдолтой октет) багтдаг. Би хөдөлгөөнт дундаж шүүлтүүр хэрэглэсэн бөгөөд 3 секундын дундаж хүчийг өгч байсан - яг л миний унадаг дугуйн компьютерийн үзүүлснээр - энэ нь тийм ч тогтворгүй биш юм.

if (powerCharacteristic.valueUpdated ()) {

// uint8_t holdpowervalues [6] = {0, 0, 0, 0, 0, 0} утгын массивыг тодорхойлно уу; // утгыг массив болгон унших powerCharacteristic.readValue (holdpowervalues, 6); // Эрчим хүчийг 2 ба 3 байршилд ваттаар буцаана (0 ба 1 нь 8 битийн туг юм) байт rawpowerValue2 = holdpowervalues [2]; // HEX дахь хамгийн бага сиг байт rawpowerValue3 = holdpowervalues [3]; // HEX -д хамгийн их байтын хүчийг ашиглах raw rawpowerTotal = (rawpowerValue2 + (rawpowerValue3 * 256)); // '3s power' powerTrainer = moveAverageFilter_power.process (rawpowerTotal) өгөхийн тулд хөдлөх дундаж шүүлтүүр ашиглана уу;

BLE хурдны онцлог (Cycling Speed and Cadence) нь техникийн тодорхойлолтыг бичихдээ SIG дэлхий дээр юу тамхи татдаг байсан бол гэсэн асуултуудын нэг юм.

Онцлог нь хурд, хэмнэл агуулаагүй 16 байтын массивыг буцаана. Үүний оронд та дугуйны эргэлт, бүлүүрт эргэлт (нийт дүн) болон сүүлийн үйл явдлын өгөгдлийг 1024 дэх секундын дотор авах болно. Тиймээс илүү математик. Өө, байтууд үргэлж байдаггүй тул эхэнд туг байт байдаг. Өө, байтууд нь жижиг HEX тул та хоёр дахь байтыг 256, гуравдугаарт 65536 гэх мэтээр үржүүлээд дараа нь нэгтгэх хэрэгтэй. Хурд олохын тулд зайны талаар мэдэхийн тулд дугуйн дугуйны стандарт тойргийг тооцоолох хэрэгтэй.

if (speedCharacteristic.valueUpdated ()) {

// Энэ утга нь 16 байтын массив хэрэгтэй uint8_t holdvalues [16] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; // Гэхдээ би зөвхөн эхний 7 speedCharacteristic.readValue -ийг унших болно (holdvalues, 7); байт rawValue0 = holdvalues [0]; // хоёртын туг 8 бит int byte rawValue1 = holdvalues [1]; // хувьсгал нь HEX дахь хамгийн бага ач холбогдолтой байт rawValue2 = holdvalues [2]; // хувьсгалууд нь HEX -ийн дараагийн хамгийн чухал байт byte rawValue3 = holdvalues [3]; // хувьсгалууд нь HEX -ийн дараагийн хамгийн чухал байт byte rawValue4 = holdvalues [4]; // хувьсгалууд HEX -ийн хамгийн чухал байт byte rawValue5 = holdvalues [5]; // сүүлийн дугуйны үйл явдлаас хойших хугацаа хамгийн бага сиг байт байт rawValue6 = holdvalues [6]; // сүүлчийн дугуйны үйл явдлаас хойших хугацаа хамгийн их байт if (firstData) {// 2, 3, 4 -р жижигхэн зургаан өнцөгт хэлбэрээр дугуйны хувьсгалыг авах rawValue3 * 65536) + (rawValue4 * 16777216)); // Сүүлчийн дугуйны үйл явдлаас хойш 1024 дэх секундын дотор цаг авах_1 = (rawValue5 + (rawValue6 * 256)); firstData = худал; } өөр {// Хоёрдахь багц өгөгдлийг авах WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)); урт TimeTemp = (rawValue5 + (rawValue6 * 256)); if (WheelRevsTemp> WheelRevs1) {// унадаг дугуй хөдөлж байгаа эсэхийг шалгаарай WheelRevs2 = WheelRevsTemp; Time_2 = TimeTemp; firstData = үнэн;}

// Зайн ялгааг см -ээр олж, км -ийн хөвөх зай болгон хөрвүүлнэTravelled = ((WheelRevs2 - WheelRevs1) * wheelCircCM);

float kmTravelled = distanceTravelled / 1000000;

// 1024 дэх секундын дотор цагийг олж, цаг болгон хөрвүүл

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

// км -ийн хурдыг олоорой

хурдKMH = (кмTravelled / timeHrs);

Arduino -ийн тоймыг GitHub дээр байрлуулсан (https://github.com/mockendon/opengradesim).

Алхам 3: Тоног төхөөрөмж 1 Шугаман идэвхжүүлэгч

Тоног төхөөрөмж 1 Шугаман идэвхжүүлэгч
Тоног төхөөрөмж 1 Шугаман идэвхжүүлэгч
Тоног төхөөрөмж 1 Шугаман идэвхжүүлэгч
Тоног төхөөрөмж 1 Шугаман идэвхжүүлэгч
Тоног төхөөрөмж 1 Шугаман идэвхжүүлэгч
Тоног төхөөрөмж 1 Шугаман идэвхжүүлэгч

Миний дискэн тоормосны замын дугуйн дээрх тэнхлэг нь салхины хоорондох 100 мм зайтай 12 мм тэнхлэгийг цэвэрлэх 19.2 мм тэнхлэгийг зааж өгсөн болно.

Хувьцаа 3/4 инчийн 10swg хөнгөн цагаан хоолой нь төгс тохирсон бөгөөд ebay дээрх Dave (https://www.ebay.co.uk/str/aluminiumonline) нэртэй гоё сайхан ханцуйвчийг нийлүүлж хэдэн фунтээр уртаар нь хайчилж авлаа.

Хөдөлгүүр нь 6 мм -ийн цоорхойтой 20 мм -ийн баартай тул 3D хэвлэсэн хэсэг нь хөнгөн цагаан хоолойг 6 мм -ийн ган төмрөөр холбодог бөгөөд хүч нь 90% шахалттай тул зарим PLA / ABS нь бэрхшээлтэй тулгардаг.

Хэрэв та стандарт хурдан гаргах тохиргоог ажиллуулж байвал иймэрхүү зүйл (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) энэ бүрэлдэхүүн хэсгийг дахин төлөвлөхөөс зайлсхийх болно.

Ачаалагч нь миний Tacx дасгалжуулагчтай нийлүүлсэн өргөгч блокт багтахаар бүтээгдсэн боловч ижил төстэй олон өргөгчтэй таарах болно, эсвэл та өөрийн шаардлагад нийцүүлэн TinkerCad файлыг засварлаж болно.

Алхам 4: Тоног төхөөрөмж 2 - H -Bridge

Тоног төхөөрөмж 2 - H -Bridge
Тоног төхөөрөмж 2 - H -Bridge
Тоног төхөөрөмж 2 - H -Bridge
Тоног төхөөрөмж 2 - H -Bridge
Тоног төхөөрөмж 2 - H -Bridge
Тоног төхөөрөмж 2 - H -Bridge

Эдгээр сүлжээнд түгээмэл хэрэглэгддэг L298N H гүүрний самбар нь 5V -ийн зохицуулагчтай бөгөөд Arduino -ийг шугаман идэвхжүүлэгчид шаардлагатай 12V тэжээлийн эх үүсвэрээс тэжээхэд тохиромжтой. Харамсалтай нь Arduino Nano IoT самбар нь 3.3V хүчдэлтэй тул логик түвшний хөрвүүлэгч (эсвэл дохио нь зөвхөн нэг чиглэлтэй байдаг тул оптоцолятор) шаардлагатай байгааг харуулж байна.

Энэхүү гэр нь LED гэрэлтүүлэгт өргөн хэрэглэгддэг цахилгаан холбогчийг хүлээн авах зориулалттай. Би Arduino толгойн нэгжийг хялбархан холбох / салгах боломжтой болгохын тулд USB өргөтгөлийн утсыг няцааж, 3.3V дохиоллын тэжээлийн шугам, өгөгдлийн шугамыг ашиглахдаа итгэлтэй байсан бол үүнийг ЭСРЭГ зөвлөе. USB порт эсвэл дагалдах хэрэгслээ андуурч залгаж хуурахыг хэн нэгнээс үзэн яддаг!

Алхам 5: Техник хангамж 3 Control Electronics (Arduino)

Техник хангамж 3 Control Electronics (Arduino)
Техник хангамж 3 Control Electronics (Arduino)
Техник хангамж 3 Control Electronics (Arduino)
Техник хангамж 3 Control Electronics (Arduino)
Техник хангамж 3 Control Electronics (Arduino)
Техник хангамж 3 Control Electronics (Arduino)

Arduino OLED болон логик түвшний хөрвүүлэгчийн хайрцаг нь дугуй дээр найдвартай бэхлэх боломжийг олгох үүднээс Garmin загварын 1/2 эргэх стандарт бэхэлгээтэй. "Урд талд" бэхэлгээ нь нэгжийг акселерометрийн байрлалыг "тэг" болгож дээш эсвэл доош нь хазайлгах боломжийг олгодог эсвэл эхэнд автоматаар тэг болгохын тулд кодын мөрийг нэмэхэд хялбар болно.

Энэ хайрцаг нь мембран товчлууртай байдаг бөгөөд энэ нь дугуйчин ба унадаг дугуйн жинг тохируулахад хэрэглэгддэг. Хэрэв та сургагч багшаа бусадтай хуваалцахгүй бол та үүнийг програмаар тохируулж болно.

'Гарын авлага' горимыг хэрэгжүүлэх нь сайхан байж магадгүй юм. Хоёр товчлуурыг дарах нь гарын авлагын горимыг эхлүүлж, дараа нь товчлуурууд нь налууг нэмэгдүүлэх / бууруулах боломжтой байж магадгүй юм. Би үүнийг хийх ажлын жагсаалтад оруулах болно!

Хэргийн STL файлыг Thingiverse дээр дахин ашиглах боломжтой (холбоосыг хангамжийн хэсгээс үзнэ үү).

Arduino -ийн тоймыг GitHub дээр байрлуулсан (https://github.com/mockendon/opengradesim).

Та эндээс CABLE гүүрэндээ зориулж жижигхэн жижиг клип хэвлэх боломжтой

Алхам 6: "Арын уналт"

"Арын уналт"
"Арын уналт"
"Арын уналт"
"Арын уналт"
"Арын уналт"
"Арын уналт"

Унадаг дугуй хөдлөхөд арын хэсэг нь үрэлт өгөхгүй байх асуудлыг олон хүн хөндөж байна. Зарим дасгалжуулагчид хөдөлдөг тэнхлэгтэй байдаг (Kickr шиг), гэхдээ ихэнх нь хөдөлдөггүй.

Одоогийн байдлаар миний хувьд хамгийн сайн шийдэл бол 61800-2RS стандарт ховилтой холхивчийг (тус бүр нь ойролцоогоор 2 фунт стерлинг) хурдан гаргах адаптерууд дээр суурилуулж, тэнхлэг дамжуулах хоолойнуудыг том хэмжээтэй QR шорлог ашиглан бэхлэх явдал юм.

Холхивч нь адаптер ба холхивчийн хооронд M12 16mm 0.3mm хэмжээтэй нимгэн нимгэн угаагч хэрэгтэй.

Тэд төгс тохирсон бөгөөд дасгалжуулагчаас үл хамааран дугуй, шорлогтой хамт эргэлддэг.

Одоогийн байдлаар энэ нь хөтчийн хажуугийн хэмжээг хэдхэн мм-ээр өөрчилж байгаа тул дахин индексжүүлэх шаардлагатай болно

Би машинд зориулан тусгай эд анги (pdf төлөвлөгөөг үзнэ үү) зохион бүтээж байна (ирээдүйн хүргэн ахынхаа токарь дээр түүнд туслах цаг гарвал!). Эдгээрийг хараахан туршиж үзээгүй байна !!! Гэхдээ хувьцааны хөтчийн хажуугийн QR адаптерийн дотоод гадаргуугаас 1 мм зайд нунтаглах нь тусгай багаж хэрэгсэлгүйгээр хурдан засах боломжтой юм.)

Зөвлөмж болгож буй: