فهرست مطالب:
- تدارکات
- مرحله 1: برخی از ریاضیات
- مرحله 2: دریافت برخی از داده ها
- مرحله 3: سخت افزار 1 محرک خطی
- مرحله 4: سخت افزار 2 - H -Bridge
- مرحله 5: سخت افزار 3 کنترل الکترونیک (آردوینو)
- مرحله 6: "افت عقب"
تصویری: Open (Bicycle) Grade Simulator - OpenGradeSIM: 6 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:54
معرفی
اخیراً یک شرکت تناسب اندام معروف آمریکایی (Wahoo) یک کمک آموزشی عالی در داخل خانه ارائه داده است که با توجه به درجه شبیه سازی شده از تپه ای که کاربر در حال سوار شدن است (صعود Kickr) ، جلوی دوچرخه را بر روی مربی توربو بالا و پایین می آورد.
به نظر می رسد شگفت انگیز است اما متأسفانه این برای همه ما در دسترس نیست زیرا شما 1) یک مربی برتر Wahoo در محدوده وسیع و 2) 500 پوند پول نقد برای ساختن آن به شما نیاز دارید.
من یک ترقوه را شکستم (هرگز دوچرخه سوار جاده ای را روی دوچرخه کوهستان نگذارید) بنابراین کیلومترهای بیشتری با مربی و زمان بیشتری برای تیک زدن داشتم و فکر کردم این می تواند یک پروژه سرگرم کننده باشد.
واحد تجاری -5٪ تا +20٪ را شبیه سازی می کند ، بنابراین من می خواستم به آن نزدیک شوم اما با 10٪ بودجه!
این در اطراف Tacx Neo من طراحی شده است ، اما هر مربی که داده های قدرت و سرعت خود را از طریق ANT+ یا BLE پخش می کند می تواند کار کند (من فکر می کنم!).
از آنجا که پایه چرخ در دوچرخه جاده من دقیقاً 1000 میلی متر است ، برای شبیه سازی 20 درصد باید چنگال ها را 200 میلی متر بلند کنم (تصویر را ببینید) بنابراین یک محرک خطی 200 میلی متری این کار را انجام می دهد. وزن دوچرخه + سوار بعید است از 100 کیلوگرم تجاوز کند و از آنجا که این مقدار بین محورها توزیع شده و بیشتر در عقب است 750N 75 کیلوگرم را بلند می کند و باید خوب باشد. محرک های سریعتر با پول بیشتری در دسترس هستند ، اما این دستگاه برای من حدود 20 پوند هزینه دارد و 10 میلی متر در ثانیه مدیریت می کند. محرک های دارای پتانسیومتر که می توانند به عنوان سروهای ساده استفاده شوند نیز 2 تا 3 برابر گرانتر هستند.
تدارکات
چاپ سه بعدی (PLA یا ABSetc) قسمت آداپتور محور:
100 میلی متر 3/4 اینچ 10 لوله لوله آلومینیومی 10 گرم (برای قاب از طریق محور)
80 میلی متر از میله فولاد ضد زنگ 6 میلی متری
چاپ سه بعدی (PLA یا ABSetc) کفش برای قسمت محرک خطی:
چاپ سه بعدی Case for the H-bridge
چاپ سه بعدی قاب برای آردوینو (نسخه 1 با صفحه کلید) https://www.thingiverse.com/thing:3984911 (نسخه 2 همانطور که نشان داده شده است (https://www.thingiverse.com/thing:3995976)
قطعه برش لیزری از اکریلیک شفاف 3 میلی متر 32 38 38 میلی متر برای جلوگیری از تعریق در تمام وسایل الکترونیکی (این کار ایده آل نیست).
برخی از بلوک های خونریزی (برای جاگذاری لنت ها مناسب هستند) تا مانع از رانندگی تصادفی پیستون های دیگ از ترمزهای دیسکی شیمانو خود شوید.
تحریک خطی 750N 200 میلیمتری سفر مثلاً محرکهای خطی Al03 از
پل L298N H (مانند:
Arduino Nano IoT 33 www.rapidonline.com سفارش 73-4863
صفحه کلید 2 غشایی کلیدی به عنوان مثال
مبدل سطح منطقی IIC I2C دو طرفه 5V به 3.3V برای آردوینو به عنوان مثال
منبع تغذیه 12V 3A DC - مواردی که برای روشنایی LED کار می کنند عالی هستند!
NPE CABLE Ant+ to BLE پل
کلیپ قابل چاپ سه بعدی برای پل CABLE
ماژول صفحه نمایش 1.3 اینچی OLED LCD با رابط IIC I2C 128x32 3.3V
مرحله 1: برخی از ریاضیات
ما باید شیب شبیه سازی شده را محاسبه کنیم. من امیدوار بودم که مربی این داده ها را همراه با سرعت ، قدرت ، سرعت و غیره تبلیغ کند ، اما مربی به سادگی برای حفظ توان خروجی مطابق نرم افزار روی رایانه لوحی ، رایانه و غیره که برای کنترل آن استفاده می شود مقاومت می کند. من راهی نداشتم که بتوانم به راحتی "نمره شبیه سازی شده" را از نرم افزار دریافت کنم ، بنابراین مجبور شدم به عقب کار کنم …
نیروهای وارد بر دوچرخه و سوار ترکیبی از تلفات مقاومتی و قدرت لازم برای صعود از تپه است. مربی سرعت و قدرت را گزارش می دهد. اگر بتوانیم تلفات مقاومتی را با سرعت معینی بیابیم ، از قدرت باقیمانده برای بالا رفتن از تپه استفاده می شود. قدرت صعود بستگی به وزن دوچرخه و سوارکار و میزان صعود دارد و بنابراین می توانیم به شیب حرکت کنیم.
ابتدا از https://bikecalculator.com شگفت انگیز برای یافتن برخی از نقاط داده برای کاهش توان مقاومتی در سرعتهای معمولی استفاده کردم. سپس دامنه سرعت را برای ایجاد رابطه خطی تغییر دادم و بهترین خط مناسب را پیدا کردم. با در نظر گرفتن معادله خط ، می توانیم توان (W) را از مقاومت = (0.0102*(Speedkmh^2.8))+9.428+محاسبه کنیم.
قدرت را از مقاومت اندازه گیری شده گرفته تا قدرت "صعود" را به دست آورید.
ما سرعت صعود را در کیلومتر بر ساعت می دانیم و آن را به واحد SI متر بر ثانیه تبدیل می کنیم (تقسیم بر 3.6).
شیب از: Incline (٪) = ((PowerClimbing/(WeightKg*g))/Speed)*100
جایی که شتاب سقوط آزاد g = 9.8m/s/s یا 9.8 N/kg است
مرحله 2: دریافت برخی از داده ها
محاسبه شیب نیاز به سرعت و قدرت دارد. من از یک آردوینو نانو 33 اینترنت اشیا برای اتصال به مربی از طریق BLE برای دریافت این دستگاه استفاده کردم. من در ابتدا بسیار گیر کردم زیرا نسخه فعلی v.1.1.2 کتابخانه اصلی ArduinoBLE برای این ماژول احراز هویت را به هیچ شکلی انجام نمی دهد ، این بدان معناست که اکثر (؟) سنسورهای تجاری BLE با آن جفت نمی شوند.
راه حل استفاده از پل NPE Cable ANT+ to BLE (https://npe-inc.com/cableinfo/) است که BLE ساخته شده از مربی را برای برنامه آموزشی بدون نیاز به احراز هویت در BLE رایگان نگه می دارد. سمت.
مشخصه توان BLE بسیار ساده است زیرا توان بر حسب وات در بایت دوم و سوم داده های منتقل شده به صورت یک عدد صحیح 16 بیتی (اندیانی کوچک ، یعنی حداقل اکتت اول) وجود دارد. من یک فیلتر میانگین متحرک را برای قدرت متوسط 3 ثانیه - درست مانند رایانه دوچرخه ام نشان می دهم - اعمال می کنم ، زیرا این کمتر نامنظم است.
if (powerCharacteristic.valueUpdated ()) {
// تعریف یک آرایه برای مقدار uint8_t holdpowervalues [6] = {0، 0، 0، 0، 0، 0}؛ // مقدار را در آرایه powerCharacteristic.readValue بخوانید (holdpowervalues ، 6) ؛ // توان به صورت وات در محل 2 و 3 (محل 0 و 1 پرچم های 8 بیتی است) بازگردانده می شود byte rawpowerValue2 = holdpowervalues [2]؛ // power minimum sig byte in HEX byte rawpowerValue3 = holdpowervalues [3]؛ // power most sig byte in HEX long rawpowerTotal = (rawpowerValue2 + (rawpowerValue3 * 256))؛ // از فیلتر میانگین متحرک برای دادن "3s power" powerTrainer = moveAverageFilter_power.process (rawpowerTotal) استفاده کنید.
ویژگی سرعت BLE (سرعت و سرعت دوچرخه سواری) یکی از مواردی است که باعث می شود با خود فکر کنید که SIG هنگام نوشتن مشخصات چه سیگار می کشید.
Characteristic یک آرایه 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 (7) را بخوانم. بایت rawValue0 = holdvalues [0]؛ // پرچم های باینری 8 بیتی int byte rawValue1 = holdvalues [1]؛ // انقلابها کمترین بایت قابل توجه در بایت HEX rawValue2 = holdvalues [2]؛ // انقلابات مهمترین بایت بعدی در بایت HEX rawValue3 = holdvalues [3]؛ // انقلابها مهمترین بایت بعدی در بایت HEX rawValue4 = holdvalues [4]؛ // بیشترین تعداد بایت در HEX بایت rawValue5 = holdvalues [5]؛ // زمان از آخرین رویداد چرخ حداقل بایت sig بایت rawValue6 = holdvalues [6]؛ // زمان از آخرین رویداد چرخ بیشترین بایت sig (if) rawValue3 * 65536) + (rawValue4 * 16777216)) ؛ // از زمان آخرین رویداد چرخ در 1024 ثانیه زمان دریافت کنید_1 = (rawValue5 + (rawValue6 * 256)) ؛ firstData = false؛ } else {// دریافت دومین مجموعه داده WheelRevsTemp = (rawValue1 + (rawValue2 * 256) + (rawValue3 * 65536) + (rawValue4 * 16777216)) ؛ Long TimeTemp = (rawValue5 + (rawValue6 * 256)) ؛ if (WheelRevsTemp> WheelRevs1) {// مطمئن شوید که دوچرخه در حال حرکت است WheelRevs2 = WheelRevsTemp؛ Time_2 = TimeTemp ؛ firstData = true؛}
// تفاوت فاصله را در سانتی متر بیابید و به کیلومتر float distanceTravelled = ((WheelRevs2 - WheelRevs1) * wheelCircCM) تبدیل کنید ؛
شناور kmTravelled = distanceTravelled / 1000000؛
// زمان را در 1024 ثانیه پیدا کرده و به ساعت تبدیل کنید
float timeDifference = (Time_2 - Time_1)؛ float timeSecs = timeDifference / 1024؛ float timeHrs = timeSecs / 3600؛
// سرعت kmh را پیدا کنید
speedKMH = (kmTraledled / timeHrs) ؛
طرح آردوینو در GitHub (https://github.com/mockendon/opengradesim) میزبانی می شود.
مرحله 3: سخت افزار 1 محرک خطی
محور عبور در دوچرخه ترمز دیسکی من یک محور 19.2 میلیمتری را مشخص می کند تا محور 12 میلی متری را با فاصله 100 میلی متری از بین چنگال ها پاک کند.
سهام 3/4 اینچی لوله آلومینیومی 10swg مناسب است و یک نوار زیبا به نام Dave on ebay (https://www.ebay.co.uk/str/aluminiumonline) تهیه و برای چند پوند طول آن را برای من کوتاه کرد.
محرک دارای یک میله 20 میلی متری با یک سوراخ 6 میلی متری است ، بنابراین قسمت چاپ سه بعدی لوله آلومینیومی را به یک میله فولادی 6 میلی متری متصل می کند و از آنجا که نیروها 90 درصد فشرده می شوند ، برخی از PLA / ABS به چالش می کشند.
اگر یک تنظیم استاندارد انتشار سریع را اجرا می کنید ، چیزی شبیه به این (https://www.amazon.co.uk/Sharplace-Quick-Release-Conversion-Adapter/dp/B079DCY344) از طراحی مجدد این جزء اجتناب می کند.
بوت طوری طراحی شده است که در بلوک افزایش دهنده ارائه شده با مربی Tacx من قرار گیرد ، اما احتمالاً در بسیاری از افزایش دهندگان مشابه قرار می گیرد یا فقط می توانید فایل TinkerCad را مطابق نیاز خود ویرایش کنید.
مرحله 4: سخت افزار 2 - H -Bridge
این تخته پل L298N H که بسیار آنلاین رایج است دارای یک رگولاتور 5 ولت است که برای تغذیه Arduino از منبع تغذیه 12 ولت مورد نیاز برای محرک خطی عالی است. متأسفانه برد Arduino Nano IoT 3.3 ولت است و به این دلیل نیاز به مبدل سطح منطقی (یا یک نوری بین دستگاه صوتی از آنجا که سیگنالها فقط یک طرفه هستند) نیاز دارد.
این قاب به گونه ای طراحی شده است که اتصالات برق را که معمولاً در برنامه های روشنایی LED استفاده می شود ، بپذیرد. من یک سر سیم USB را قفل کردم تا بتوانم به راحتی اتصال / قطع واحد هد آردوینو را انجام دهم و در حالی که مطمئن بودم از خطوط برق برای برق و خطوط داده برای سیگنالینگ 3.3V استفاده می کنم ، صادقانه به عنوان توصیه می کنم از کسی متنفر باشید که پورت های USB یا لوازم جانبی خود را به اشتباه وصل کند!
مرحله 5: سخت افزار 3 کنترل الکترونیک (آردوینو)
بدنه آردوینو OLED و مبدل سطح منطقی دارای یک پایه استاندارد 1/2 چرخشی به سبک Garmin در پشت است تا بتوان آن را به طور ایمن روی دوچرخه سوار کرد. یک سوار "جلو جلو" به شما امکان می دهد تا موقعیت شتاب سنج را به سمت بالا یا پایین بچرخانید یا یک خط کد را فقط به صفر خودکار در ابتدا اضافه کنید.
قاب دارای نقطه ای برای صفحه کلید غشایی است - از این دستگاه برای تعیین وزن ترکیبی دوچرخه سوار و دوچرخه استفاده می شود. فقط می توانید این برنامه را به صورت برنامه ای تنظیم کنید ، به خصوص اگر مربی را با هیچ کس به اشتراک نگذارید.
ممکن است پیاده سازی حالت "دستی" خوب باشد. شاید با فشردن هر دو دکمه یک حالت دستی آغاز شود و سپس دکمه ها بتوانند شیب را افزایش / کاهش دهند. این را به لیست کارها اضافه می کنم!
پرونده STL پرونده مجدداً در Thingiverse موجود است (برای پیوند به بخش منابع مراجعه کنید).
طرح آردوینو در GitHub (https://github.com/mockendon/opengradesim) میزبانی می شود.
می توانید از اینجا یک کلیپ کوچک منظم برای پل CABLE خود چاپ کنید
مرحله 6: "افت عقب"
بسیاری از افراد با حرکت دوچرخه ، مسئله ساییدگی عقب را مطرح کرده اند. برخی از مربیان دارای محورهایی هستند که حرکت می کنند (مانند Kickr) اما بسیاری دیگر حرکت نمی کنند.
در حال حاضر بهترین راه حل من این است که برخی از یاتاقانهای استاندارد شیار عمیق 61800-2RS (هر کدام حدود 2 پوند) را روی آداپتورهای سریع رها نصب کرده و سپس قطره های خروجی محور را روی آنها نصب کنید (به عکسها مراجعه کنید) با سیخ QR بیش از اندازه
یاتاقان ها به یک واشر نازک مانند M12 16mm 0.3mm بین آداپتور و بلبرینگ نیاز دارند.
آنها کاملاً مناسب هستند و مستقل از مربی با دوچرخه و سیخ می چرخند.
در حال حاضر این حالت افست در درایو را چند میلی متر تغییر می دهد ، بنابراین باید نمایه سازی مجدد کنید
من در حال طراحی قطعات سفارشی هستم (برنامه pdf را ببینید) برای ماشینکاری (در دستگاه تراش برادر شوهر آینده من هنگامی که یک ساعت وقت دارد!). اینها هنوز تست نشده اند !!! اما خرد کردن 1 میلی متر از سطح داخلی آداپتور QR سمت درایو یک راه حل سریع است بدون ابزارهای خاص ؛)
توصیه شده:
بازی DIY RACING GAME SIMULATOR BUILD قسمت 1: 6 مرحله
بازی DIY RACING GAME SIMULATOR BUILD قسمت 1: سلام به همه خوش آمدید ، امروز قصد دارم به شما نشان دهم که چگونه یک & quot؛ Racing Game Simulator & quot؛ با کمک Arduino UNO. کانال YouTube & quot؛ مطمئن شوید که در کانال من A Builds مشترک شده اید (اینجا را کلیک کنید) & quot؛ این وبلاگ ساخت است ، بنابراین le
DIY Light Alarm Alarm Alarm with a Industrial Grade PLC (Controllino): 5 مرحله
DIY Light Alarm Alarm Alarm with a Industrial Grade PLC (Controllino): در این پروژه به شما نشان خواهم داد که چگونه PLC (Controllino) را با مانع نور ، آژیر ، سوئیچ نی و نور استروبوسکوپ به منظور ایجاد ترکیب کردم. یک سیستم هشدار/امنیت واقعاً قوی که به راحتی مزاحمان را می ترساند. ل
DIY Arduino 2d Motion Racing Simulator: 3 مرحله
DIY Arduino 2d Motion Racing Simulator: در این دستورالعمل به شما نشان خواهم داد که چگونه می توانید یک شبیه ساز رانندگی سرگرم کننده با استفاده از میکروکنترلر آردوینو و دو سروو موتور کوچک بسازید
نحوه اتصال فرستنده FlySky به هر گونه شبیه ساز رایانه (ClearView RC Simulator) -- بدون کابل: 6 مرحله
نحوه اتصال فرستنده FlySky به هر گونه شبیه ساز رایانه (ClearView RC Simulator) || بدون کابل: راهنمای اتصال FlySky I6 با کامپیوتر برای شبیه سازی پرواز برای مبتدیان هواپیماهای بالدار. اتصال شبیه سازی پرواز با استفاده از Flysky I6 و Arduino نیازی به استفاده از کابل های شبیه سازی ندارد
Speed Simulator for Racing Games یا Coaster Simulator: 5 مرحله (همراه با تصاویر)
Speed Simulator for Racing Games یا Coaster Simulators: یک پروژه ساده ، یک فن با توجه به سرعت بازی در هوا به صورت شما می دمد. انجام آن آسان و خنده دار است