فهرست مطالب:

آموزش هوشمند دوچرخه داخل سالن DIY: 5 مرحله
آموزش هوشمند دوچرخه داخل سالن DIY: 5 مرحله

تصویری: آموزش هوشمند دوچرخه داخل سالن DIY: 5 مرحله

تصویری: آموزش هوشمند دوچرخه داخل سالن DIY: 5 مرحله
تصویری: واقعا رفتم جزیره لختیها لخت مادرزاد شدم 2024, نوامبر
Anonim
DIY دوچرخه داخل سالن مربی هوشمند
DIY دوچرخه داخل سالن مربی هوشمند
مربی هوشمند دوچرخه داخل سالن DIY
مربی هوشمند دوچرخه داخل سالن DIY
مربی هوشمند دوچرخه داخل سالن DIY
مربی هوشمند دوچرخه داخل سالن DIY

معرفی

این پروژه به عنوان یک تغییر ساده در دوچرخه داخلی Schwinn IC Elite که از پیچ ساده و پد های نمدی برای تنظیمات مقاومت استفاده می کند ، آغاز شد. مشکلی که می خواستم حل کنم این بود که پیچ پیچ بسیار زیاد بود ، بنابراین محدوده عدم امکان پدال زدن تا چرخاندن چرخ به طور کامل فقط چند درجه بر روی دستگیره مقاومت است. در ابتدا من پیچ را به M6 تغییر دادم ، اما سپس باید یک دستگیره درست کنم ، پس چرا فقط از یک پله پله NEMA 17 سمت چپ برای تغییر مقاومت استفاده نکنید؟ اگر قبلاً قطعات الکترونیکی وجود دارد ، چرا یک متر برق و یک اتصال بلوتوث به کامپیوتر اضافه نکنید تا یک مربی هوشمند بسازید؟

این امر بسیار دشوارتر از حد انتظار بود ، زیرا هیچ نمونه ای در مورد نحوه تقلید از متر برق با آردوینو و بلوتوث وجود نداشت. من حدود 20 ساعت برای برنامه نویسی و تفسیر مشخصات BLE GATT هزینه کردم. امیدوارم با ارائه یک مثال بتوانم به کسی کمک کنم که اینقدر وقت خود را صرف تلاش برای درک معنای دقیق "منظور از داده های سرویس AD Type Type" نکند …

نرم افزار

کل پروژه در GitHub است:

github.com/kswiorek/ble-ftms

اگر قصد انجام کاری جدی تر از کپی کردن کد من را دارید ، بسیار توصیه می کنم از Visual Studio با افزونه VisualGDB استفاده کنید.

اگر در مورد برنامه س questionsالی دارید ، لطفاً بپرسید ، من می دانم که نظرات مینیمالیستی من ممکن است کمک چندانی نکند.

وام

با تشکر از stoppi71 برای راهنمای وی در مورد نحوه ساخت متر برق. من با توجه به طراحی او میل لنگ را انجام دادم.

تدارکات:

مواد این پروژه بستگی به نوع دوچرخه شما دارد ، اما برخی قطعات جهانی وجود دارد.

میل لنگ:

  1. ماژول ESP32
  2. HX711 سنسور وزن ADC
  3. فشار سنج
  4. MPU - ژیروسکوپ
  5. یک باتری Li-Po کوچک (حدود 750 میلی آمپر ساعت)
  6. آستین جمع کننده حرارتی
  7. درایور A4988 Stepper
  8. تنظیم کننده 5 ولت
  9. جک بشکه آردوینو
  10. منبع تغذیه آردوینو 12 ولت

کنسول:

  1. پله NEMA 17 (باید بسیار قدرتمند باشد ،> 0.4 نیوتن متر)
  2. میله M6
  3. 12864 ال سی دی
  4. WeMos LOLIN32
  5. سوئیچ های تاکتیک

تجهیزات

برای انجام این کار ، احتمالاً می توانید با استفاده از یک چاپگر سه بعدی کنار بیایید ، با این حال می توانید با برش لیزری قاب و زمان زیادی را صرفه جویی کنید ، همچنین می توانید PCB تولید کنید. فایل های DXF و gerber در GitHub هستند ، بنابراین می توانید آنها را به صورت محلی سفارش دهید. کوپلر از میله رزوه دار تا موتور روی یک تراش چرخانده شد و این ممکن است تنها مشکل باشد ، زیرا قطعه برای کشیدن لنت ها باید بسیار محکم باشد ، اما فضای زیادی در این دوچرخه وجود ندارد.

از زمان ساخت اولین دوچرخه ، من یک دستگاه فرز را خریداری کردم که به من امکان می دهد تا سنسورهای سنسور را در میل لنگ ایجاد کنم. چسباندن آنها را کمی راحت تر می کند و همچنین در صورت برخورد با چیزی به میل لنگ از آنها محافظت می کند. (من چندین بار این سنسورها سقوط کرده اند بنابراین می خواستم ایمن باشم.)

مرحله 1: میل لنگ:

میل لنگ
میل لنگ
میل لنگ
میل لنگ
میل لنگ
میل لنگ

بهتر است فقط این آموزش را دنبال کنید:

شما اساساً باید سنسورها را در چهار قسمت به میل لنگ بچسبانید و آن ها را به کناره های صفحه وصل کنید.

اتصالات مناسب در حال حاضر وجود دارد ، بنابراین شما فقط باید جفت سیم را مستقیماً به این هشت پد روی صفحه بچسبانید.

برای اتصال به سنسورها از باریک ترین سیم ممکن استفاده کنید - بلند کردن پدها بسیار آسان است. ابتدا باید سنسورها را بچسبانید و به اندازه کافی آنها را بیرون بگذارید تا لحیم شوند ، سپس بقیه را با اپوکسی بپوشانید. اگر سعی می کنید قبل از چسباندن لحیم کنید ، آنها پیچ خورده و می شکنند.

برای مونتاژ PCB:

  1. گیره های طلایی را از پایین (طرفی که دارای آثار هستند) در همه سوراخ ها بجز سوراخ های عمودی در قسمت پایین قرار دهید.
  2. سه تخته (ESP32 در بالا ، سپس MPU ، HX711 در پایین) را قرار دهید تا گیره های طلا از هر دو سوراخ بچسبند.
  3. سرصفحه ها را به تخته های بالا بچسبانید
  4. گیره های طلا را از قسمت پایین جدا کنید. (ابتدا آنها را قبل از مونتاژ برش دهید ، بنابراین می دانید که "گیره های طلا" شما داخل آن فولادی نیستند - برش آنها تقریباً غیرممکن است و باید آنها را سوهان یا آسیاب کنید)
  5. سنجاق های طلای باقی مانده را به ته تخته بچسبانید.
  6. سیستم عامل کرنک را بارگذاری کنید

آخرین مرحله این است که کل میل لنگ را با آستین کوچک کننده حرارتی بسته بندی کنید.

این روش ساخت تخته ایده آل نیست ، زیرا تخته ها فضای زیادی را اشغال می کنند که می توانید چیزهای دیگر را در آن جا دهید. بهترین کار این است که همه قطعات را مستقیماً به برد بچسبانید ، اما من مهارت لازم را ندارم که خودم این SMD های کوچک را لحیم کنم. من نیاز به سفارش مونتاژ آن دارم و احتمالاً برخی اشتباهات را مرتکب می شوم و در نهایت سه بار آنها را سفارش می دهم و یک سال قبل از رسیدن آنها منتظر می مانم.

اگر کسی بتواند صفحه را طراحی کند ، بسیار عالی است که دارای محافظ محافظ باتری و سنسوری باشد که در صورت شروع حرکت میل لنگ ESP را روشن می کند.

مهم

سنسور HX711 به طور پیش فرض روی 10Hz تنظیم شده است - برای اندازه گیری قدرت بسیار کند است. شما باید پین 15 را از روی برد بردارید و آن را به پین 16 متصل کنید. این پین را به سمت بالا هدایت می کند و حالت 80 هرتز را فعال می کند. این 80Hz ، به هر حال ، نرخ کل حلقه آردوینو را تعیین می کند.

استفاده

ESP32 طوری برنامه ریزی شده است که بعد از 30 سالگی بدون اتصال دستگاه بلوتوث به خواب برود. برای روشن کردن مجدد آن باید دکمه تنظیم مجدد را فشار دهید. سنسورها همچنین از یک پین دیجیتال تغذیه می کنند که در حالت خواب LOW می شود. اگر می خواهید سنسورها را با کد نمونه از کتابخانه ها آزمایش کنید ، باید پین را بالا ببرید و کمی صبر کنید تا سنسورها روشن شوند.

پس از مونتاژ ، سنسورها باید با خواندن مقدار بدون نیرو و سپس با وزنه کالیبره شوند (من از کتری 12 کیلویی یا 16 کیلویی روی پدال آویزان کردم). این مقادیر باید در کد powerCrank قرار داده شوند.

بهتر است قبل از هر سواری میل لنگ را بچسبانید - وقتی شخصی در حال رکاب زدن است نباید بتواند خود را بترکاند ، اما بهتر از متأسفانه ایمن است و می توان آن را فقط یک بار در هر بار روشن کرد. اگر متوجه سطوح قدرت عجیبی شدید باید این روند را تکرار کنید:

  1. میل لنگ را مستقیماً پایین بیاورید تا چراغ شروع به چشمک زدن کند.
  2. پس از چند ثانیه چراغ روشن می ماند - پس به آن دست نزنید
  3. هنگامی که چراغ خاموش می شود ، نیروی فعلی را به عنوان 0 جدید تعیین می کند.

اگر می خواهید از میل لنگ ، بدون کنسول استفاده کنید ، کد اینجا در github قرار دارد. بقیه موارد یکسان عمل می کنند.

مرحله 2: کنسول

کنسول
کنسول
کنسول
کنسول
کنسول
کنسول

بدنه از اکریلیک 3 میلی متری برش خورده است ، دکمه ها به صورت سه بعدی چاپ شده اند و فاصله ای برای LCD وجود دارد که از اکریلیک 5 میلی متری بریده شده است. با چسب حرارتی چسبانده می شود (کاملاً به اکریلیک می چسبد) و یک "براکت" چاپ سه بعدی برای نگه داشتن PCB روی LCD وجود دارد. پین های LCD از طرف پایین لحیم می شوند تا با ESP تداخل نداشته باشد.

ESP برعکس لحیم شده است ، بنابراین درگاه USB در کیس جا می شود

PCB دکمه جداگانه با چسب حرارتی چسبانده می شود ، بنابراین دکمه ها در سوراخ های خود قرار می گیرند ، اما آنها همچنان کلیدها را فشار می دهند. دکمه ها با اتصالات JST PH 2.0 به برد متصل می شوند و ترتیب پین را به راحتی از طرح کلی می توان دریافت

بسیار مهم است که راننده پله را در جهت صحیح نصب کنید (پتانسیومتر نزدیک ESP)

تمام قسمت کارت SD غیرفعال است ، زیرا هیچ کس در نسخه اول از آن استفاده نکرده است. کد باید با برخی از تنظیمات UI مانند وزن سوار و تنظیم مشکل به روز شود.

این کنسول با استفاده از "بازوها" و زیپ های برش لیزری نصب شده است. دندان های کوچک در قسمت دسته فرمان حفر می کنند و کنسول را نگه می دارند.

مرحله 3: موتور

موتور
موتور
موتور
موتور
موتور
موتور

موتور خود را در جای دستگیره تنظیم کننده با براکت چاپ سه بعدی نگه می دارد. در شفت آن یک اتصال دهنده نصب شده است - یک طرف دارای یک سوراخ 5 میلی متری با پیچ های ثابت برای نگه داشتن شفت است ، در طرف دیگر یک نخ M6 با پیچ های تنظیم شده برای قفل کردن آن وجود دارد. در صورت تمایل ، احتمالاً می توانید آن را در یک مته مته از چند قطعه گرد 10 میلی متری تهیه کنید. نیازی به دقت زیاد نیست زیرا موتور خیلی محکم نصب نشده است.

یک قطعه میله رزوه دار M6 در کوپلر پیچ شده و مهره M6 برنجی را می کشد. من آن را ماشین کاری کردم ، اما می توان آن را به راحتی از یک تکه برنج با یک فایل تهیه کرد. حتی می توانید چند بیت را به مهره معمولی جوش دهید ، بنابراین نمی چرخد. مهره چاپ سه بعدی نیز ممکن است یک راه حل باشد.

نخ باید از پیچ استوک ظریف تر باشد. ارتفاع آن حدود 1.3 میلی متر و برای M6 0.8 میلی متر است. موتور گشتاور کافی برای چرخاندن پیچ استوک را ندارد.

مهره باید به خوبی روغن کاری شود ، زیرا موتور به سختی می تواند پیچ تنظیمات بالاتر را بچرخاند

مرحله 4: پیکربندی

پیکربندی
پیکربندی
پیکربندی
پیکربندی

برای بارگذاری کد در ESP32 از Arduino IDE ، باید این آموزش را دنبال کنید:

صفحه "WeMos LOLIN32" است ، اما "ماژول Dev" نیز کار می کند

من پیشنهاد می کنم از Visual Studio استفاده کنید ، اما اغلب می تواند خراب شود.

قبل از اولین استفاده

میل لنگ باید مطابق مرحله "میل لنگ" تنظیم شود

با استفاده از برنامه "nRF Connect" ، باید MAC آدرس کارتریج ESP32 را بررسی کرده و آن را در فایل BLE.h تنظیم کنید.

در خط 19 indoorBike.ino باید تعداد چرخش های پیچ را برای تنظیم مقاومت از حالت کاملا شل به حداکثر تنظیم کنید. ("حداکثر" عمداً ذهنی است ، شما با این تنظیم سختی را تنظیم می کنید.)

مربی هوشمند دارای "چرخ دنده های مجازی" است تا آنها را به درستی تنظیم کند ، شما باید آن را در خطوط 28 و 29 کالیبره کنید. شما باید با سرعت ثابت روی یک تنظیم مقاومت مشخص رکاب بزنید ، سپس قدرت را بخوانید و آن را در پرونده تنظیم کنید. این کار را دوباره با تنظیم دیگری تکرار کنید.

سمت چپ دکمه از حالت ERG (مقاومت مطلق) به حالت شبیه سازی (چرخ دنده های مجازی) تغییر می کند. حالت شبیه سازی بدون اتصال به کامپیوتر هیچ کاری انجام نمی دهد زیرا هیچ داده شبیه سازی وجود ندارد.

خط 36. دنده های مجازی - تعداد و نسبت ها را تنظیم می کند. آنها را با تقسیم تعداد دندانه های دنده جلو بر تعداد دندانه های دنده عقب محاسبه می کنید.

در خط 12. وزن سوارکار و دوچرخه (در [نیوتن] ، جرم بر شتاب گرانشی!)

کل بخش فیزیک این مورد احتمالاً بسیار پیچیده است و حتی من به خاطر ندارم که دقیقاً چه می کند ، اما من گشتاور مورد نیاز را برای کشیدن دوچرخه سوار به سمت بالا یا چیزی شبیه به آن محاسبه می کنم (به همین دلیل کالیبراسیون است).

این پارامترها بسیار ذهنی هستند ، شما باید آنها را بعد از چند حرکت تنظیم کنید تا به درستی کار کنند.

پورت اشکال زدایی COM داده های باینری مستقیم دریافت شده توسط بلوتوث را در نقل قول ها ('') و داده های شبیه سازی ارسال می کند.

تنظیم کننده

از آنجا که پیکربندی فیزیک ظاهراً واقع گرایانه برای ایجاد واقع گرایی دردسری بزرگ به نظر می رسد ، من یک تنظیم کننده GUI ایجاد کردم که به کاربران اجازه می دهد تا عملکردی را که از درجه تپه به سطح مقاومت مطلق تبدیل می شود به صورت گرافیکی تعریف کنند. هنوز به طور کامل به پایان نرسیده است و من فرصتی برای آزمایش آن نداشتم ، اما در ماه آینده دوچرخه دیگری را تغییر خواهم داد ، بنابراین آن را جلا می دهم.

در برگه "چرخ دنده ها" می توانید نسبت هر چرخ دنده را با حرکت دادن لغزنده ها تنظیم کنید. سپس باید بیت کد را برای جایگزینی چرخ دنده های تعریف شده در کد کپی کنید.

در برگه "نمره" نمودار عملکردی خطی به شما داده می شود (بله ، معلوم می شود که منفورترین درس ریاضی واقعاً مفید است) که نمره (محور عمودی) را گرفته و مراحل مقاومت مطلق (محور افقی) را نشان می دهد. من بعداً برای علاقه مندان وارد ریاضی می شوم.

کاربر می تواند این تابع را با استفاده از دو نقطه قرار داده شده روی آن تعریف کند. در سمت راست مکانی برای تعویض دنده فعلی وجود دارد. چرخ دنده انتخاب شده ، همانطور که ممکن است تصور کنید ، نحوه تغییر نقشه درجه مقاومت را تغییر می دهد - در چرخ دنده های پایین تر راحت تر پدال می زنید. حرکت دادن لغزنده ضریب دوم را تغییر می دهد ، که بر نحوه تغییر عملکرد چرخ دنده انتخاب شده تأثیر می گذارد. راحت تر است مدتی با آن بازی کنید تا ببینید چگونه رفتار می کند. همچنین ممکن است لازم باشد چند تنظیم مختلف را امتحان کنید تا بهترین کار را برای شما بیابید.

در پایتون 3 نوشته شده است و باید با کتابخانه های پیش فرض کار کند. برای استفاده از آن باید بلافاصله بعد از "برای استفاده از تنظیم کننده این خطوط را کامنت نکنید" کامنت گذاری کنید. همانطور که گفتم ، آزمایش نشده است ، بنابراین ممکن است خطاهایی وجود داشته باشد ، اما اگر چیزی پیش آمد ، لطفاً نظر بدهید یا مشکلی را باز کنید ، تا بتوانم آن را اصلاح کنم.

ریاضیات (و فیزیک)

تنها راهی که کنترل کننده می تواند باعث شود احساس کنید در حال سربالایی هستید چرخاندن پیچ مقاومت است. ما باید درجه را به تعداد چرخش تبدیل کنیم. برای سهولت راه اندازی ، کل محدوده از کاملاً شل تا عدم امکان چرخاندن میل لنگ به 40 مرحله تقسیم می شود ، همان مواردی که در حالت ERG استفاده می شود ، اما این بار به جای اعداد صحیح از اعداد واقعی استفاده می کند. این کار با یک تابع نقشه ساده انجام می شود - می توانید آن را در کد جستجو کنید. اکنون ما یک پله بالاتر هستیم - به جای برخورد با دور پیچ ، با مراحل خیالی سروکار داریم.

حالا وقتی با دوچرخه از سربالایی (با فرض سرعت ثابت) بالا می روید ، واقعاً چگونه کار می کند؟ بدیهی است که باید نیرویی وجود داشته باشد که شما را به سمت بالا هل دهد ، در غیر این صورت شما به سمت پایین حرکت خواهید کرد. این نیرو ، همانطور که اولین قانون حرکت به ما می گوید ، باید از نظر اندازه برابر باشد اما از جهت جهت مخالف نیرویی که شما را به سمت پایین می کشاند ، داشته باشید تا در حرکت یکنواخت باشید. این ناشی از اصطکاک بین چرخ و زمین است و اگر نمودار این نیروها را ترسیم کنید ، باید وزن دوچرخه و سوار بر درجه برابر باشد:

F = Fg*G

حالا چه چیزی باعث می شود که چرخ این نیرو را اعمال کند؟ از آنجا که ما با چرخ دنده ها و چرخ ها سروکار داریم ، راحت تر می توان در مورد گشتاور فکر کرد ، که به سادگی نیرویی برابر شعاع است:

t = F*R

همانطور که دنده ها درگیر هستند ، گشتاور را به میل لنگ منتقل می کنید که زنجیر را می کشد و چرخ را می چرخاند. گشتاور مورد نیاز برای چرخاندن چرخ در نسبت دنده ضرب می شود:

tp = tw*gr

و از فرمول گشتاور نیروی لازم برای چرخاندن پدال را دریافت می کنیم

Fp = tp/r

این چیزی است که ما می توانیم با استفاده از قدرت سنج در میل لنگ اندازه گیری کنیم. اصطکاک پویا به طور خطی با نیرو مرتبط است و از آنجا که این دوچرخه خاص از فنرها برای انتقال این نیرو استفاده می کند ، با حرکت پیچ خطی است.

نیرو بر نیرو بر سرعت است (با فرض جهت یکسان بردارها)

P = F*V

و سرعت خطی پدال به سرعت زاویه ای مربوط می شود:

V = ω*r

و بنابراین ما می توانیم نیروی لازم برای چرخاندن پدال ها را در سطح مقاومت تنظیم شده محاسبه کنیم. از آنجا که همه چیز به طور خطی مرتبط است ، می توانیم از تناسب برای این کار استفاده کنیم.

این در اصل همان چیزی بود که نرم افزار برای محاسبه در طول کالیبراسیون و استفاده از یک راه دور برای بدست آوردن یک کامپوزیت پیچیده ، اما یک تابع خطی مربوط به درجه به مقاومت نیاز داشت. من همه چیز را روی کاغذ نوشتم که معادله نهایی را محاسبه کرد و همه ثابت ها سه ضریب شدند.

این از نظر فنی یک عملکرد سه بعدی است که یک صفحه (من فکر می کنم) را نشان می دهد که درجه و نسبت چرخ دنده را به عنوان آرگومان در نظر می گیرد و این سه ضریب مربوط به ضخامت مورد نیاز برای تعریف صفحه است ، اما از آنجا که دنده ها اعداد گسسته هستند ، راحت تر بود. به جای پرداختن به پیش بینی ها و موارد دیگر ، آن را به یک پارامتر تبدیل کنید. ضرایب 1 و 3 را می توان با یک خط واحد تعریف کرد و (-1)* ضریب دوم مختصات X نقطه است ، جایی که هنگام تغییر دنده خط در اطراف می چرخد.

در این تجسم استدلال ها با خط عمودی و مقادیر با خط افقی نشان داده می شوند ، و من می دانم که ممکن است آزاردهنده باشد ، اما برای من شهودی تر بود و با GUI بهتر مطابقت داشت. احتمالاً به همین دلیل است که اقتصاددانان نمودارهای خود را این گونه ترسیم می کنند.

مرحله 5: تمام کنید

در حال حاضر شما نیاز به برخی از برنامه ها دارید تا با مربی جدید خود (که حدود 900 دلار در هزینه شما صرفه جویی کرده است) سوار شوید.) در اینجا نظرات من در مورد برخی از آنها آمده است.

  • RGT Cycling - به نظر من بهترین - دارای یک گزینه کاملاً رایگان است ، اما کمی آهنگ دارد. بهترین ارتباط را با بخش اتصال دارد ، زیرا تلفن شما از طریق بلوتوث متصل می شود و رایانه آهنگ را نشان می دهد. با یک دوچرخه سوار AR از ویدئوی واقع گرایانه استفاده می کند
  • Rouvy - تعداد زیادی آهنگ ، فقط اشتراک پولی ، به دلایلی برنامه رایانه شخصی با این کار نمی کند ، باید از تلفن خود استفاده کنید. وقتی لپ تاپ شما از کارت یکسانی برای بلوتوث و وای فای استفاده می کند ، ممکن است مشکلاتی پیش بیاید ، اغلب عقب می افتد و نمی خواهد بارگذاری شود
  • Zwift - یک بازی متحرک ، فقط پرداخت می شود ، با مربی بسیار خوب کار می کند ، اما UI کاملاً ابتدایی است - راه انداز از Internet Explorer برای نمایش منو استفاده می کند.

اگر از ساخت آن لذت بردید (یا نه) ، لطفاً در نظرات به من بگویید و اگر سوالی دارید می توانید در اینجا بپرسید یا مشکلی را به github ارسال کنید. من با خوشحالی همه چیز را توضیح می دهم زیرا بسیار پیچیده است.

توصیه شده: