فهرست مطالب:

بازکن اتوماتیک کور با استفاده از EV3: 6 مرحله
بازکن اتوماتیک کور با استفاده از EV3: 6 مرحله

تصویری: بازکن اتوماتیک کور با استفاده از EV3: 6 مرحله

تصویری: بازکن اتوماتیک کور با استفاده از EV3: 6 مرحله
تصویری: مهمترین نکات دنده اتومات | بررسی نکات و قابلیت های گیربکس اتوماتیک 2024, جولای
Anonim
بازکن اتوماتیک کور با استفاده از EV3
بازکن اتوماتیک کور با استفاده از EV3
بازکن اتوماتیک کور با استفاده از EV3
بازکن اتوماتیک کور با استفاده از EV3

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

مرحله 1: ایده ها یا راه حل های بالقوه

پس از جستجو در سایت های مختلف مانند YouTube ، Instructables و Thingiverse ، متوجه شدم که رایج ترین راه حل این بود که با استفاده از یک موتور پله ای یا سروو ، موتور قرقره ای را که کوره ها را پیچیده و باز می کرد ، حرکت دهید. من 2 گزینه اصلی با مزایا و معایب مختلف پیدا کردم.

ایده 1: روش قرقره ای که موتور و چرخ دنده در داخل قرقره قرار دارد. این دارای مزایایی است که یک روش شیک و زیبا است ، اما دارای معایبی است که نیاز به اصلاحات عمده برای نابینایان دارد ، سیم دیگر قابل استفاده نیست و هنگام نگهداری ، دسترسی به مونتاژ بسیار دشوار خواهد بود.

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

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

مرحله 2: ایجاد مجمع

ساخت مجمع
ساخت مجمع
ساخت مجمع
ساخت مجمع

من این پروژه را با استفاده از Lego mindstorms EV3 انجام دادم که دارای قابلیت هایی است که باید نشان دهم که پروژه می تواند کار کند ، و من با نرم افزاری آشنا هستم که قطعاً کمک زیادی کرد. از آنجایی که پرده از زنجیره ای برای چرخاندن قرقره استفاده می کند ، چرخ دنده هایی که لگو با آن سازگار نیست ، من تصمیم گرفتم که بهترین راه حل این است که یک چرخ دنده با فاصله مناسب توپ در خارج طراحی کنم- با سوراخ استاندارد "متقاطع" در مرکز ، جایی که من می توانم طرح را به صورت سه بعدی چاپ کنم. در این مرحله من یک دکمه کالیبراسیون ایجاد کردم و یک سنسور نور را به پنجره و همچنین دکمه ای متصل کردم تا به عنوان لغو عمل کند.

مرحله 3: طراحی چرخ دنده کور

طراحی دنده کور
طراحی دنده کور
طراحی دنده کور
طراحی دنده کور
طراحی دنده کور
طراحی دنده کور
طراحی دنده کور
طراحی دنده کور

من کور را جدا کردم تا ببینم چگونه میل لنگ با جزئیات بیشتری ظاهر می شود. در حین جداسازی ، من یک چرخ دنده کوچک 16 دندانی پیدا کردم که توسط یک سیم پیچ کشیده در جای خود نگه داشته شده بود ، این قسمتی بود که من به دنبال آن بودم. پس از طراحی ماکت چرخ دنده ، من سوراخ های مورد نیاز سازگار با لگو را اضافه کردم ، 3 قسمت جداگانه را چاپ کردم و در نهایت آنها را با چسب فوق العاده به هم چسباندم. من در ابتدا با سازگاری قطعه لگو مشکل داشتم ، به این معنا که چاپگر سه بعدی من رزولوشن کافی برای ایجاد سوراخ "x" را نداشت ، اما هیچ مشکلی در سوراخ های مدور در دو طرف آن وجود نداشت. بنابراین "x" را با یک سوراخ دایره ای جایگزین کردم و خوب چاپ شد. سپس ، پس از کمی آزمایش ، متوجه شدم که می تواند گشتاور و وزن کور را تحمل کند. من طرح های خود را برای چرخ دنده در زیر پیوند می دهم یا می توانید آن را در Thingiverse پیدا کنید:

مرحله 4: کد نویسی برای نابینایان

کد نویسی برای نابینایان
کد نویسی برای نابینایان

من کدی می خواستم که وقتی پرده به سطح نوری مشخص می رسد به طور خودکار باز و بسته می شود ، اما دارای یک دکمه لغو نیز بود تا بتوان در صورت تمایل کرکره را باز یا بسته کرد. من GitHub خود را با نسخه نهایی کد در اینجا پیوند داده ام:

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

کد با کالیبره کردن موتورها و کور شروع می شود ، با بازکردن کامل کوره و پایین آوردن آن تا رسیدن به سنسور لمسی در پایین ، شمارش چند دور چرخش برای رسیدن به پایین ، که به عنوان "RotationsNeeded" ذخیره می شود. متغیر. سپس به متغیر "BlindOpen" که برای ردیابی موقعیت نابینایان استفاده می شود ، "false" می نویسد. در این مرحله کد به 4 حلقه تقسیم می شود.

یکی از این حلقه ها حلقه "Buttonstate" است که به طور مداوم وضعیت دکمه را در متغیری به نام "ButtonPressed" منتشر می کند. این کار نیازی به قرار دادن چند بلوک دکمه برای قرار دادن روی اسکریپت ندارد.

حلقه دوم "روشن یا تاریک" است که به طور مداوم سطح نور خارج از پنجره من را با ثابت تعیین شده در کد قبلی مقایسه می کند. اگر نتیجه زیر آن ثابت باشد ، حلقه برای متغیر "ItIsLight" "false" می نویسد ، در صورتی که اگر بالاتر از مقدار باشد "true" می نویسد.

حلقه سوم شامل یک لیست عددی از 3 گزینه است که اساساً به نابینایان می گوید که چه کار کنند ، 0 = کور کردن پایین ، 1 = کور کردن بالا ، 2 = هیچ کاری انجام ندهید زیرا کور در مکان مناسب است. حلقه با خواندن متغیر "BlindShould" شروع می شود که وظیفه صحیح کور را مشخص می کند ، سپس آن کار را انجام می دهد ، متغیر "BlindOpen" را به گزینه صحیح تغییر می دهد و سپس بیکار می شود تا زمانی که متغیر "BlindShould" در جایی تغییر کند تکرار می شود از مقدار "RotationsNeeded" و همچنین از توان 100/1 +برای حرکت یا بازکردن کور به طور کامل استفاده می کند.

چهارمین و آخرین حلقه پیچیده ترین حلقه است ، این حلقه "Decider" است که تمام داده ها را مدیریت می کند و تصمیم می گیرد که با هر جایگشت چه کار کند. این کار را با استفاده از "چنگال در جاده" بر اساس منطق انجام می دهد که در آن "دکمه فشار داده شده است" ، "سطح نور" ، "کور باز می شود" سوالات درست یا غلط هستند. همه جایگزینی ها دارای یک پاسخ سخت کدگذاری شده هستند که عبارت است از 0 = کور کردن پایین ، 1 = کور کردن بالا یا 2 = انجام هیچ کاری - این مقدار بر روی متغیر "BlindShould" نوشته می شود که سپس توسط حلقه قبلی مدیریت می شود. برخی از پاسخها سپس منتظر می مانند تا متغیر "ItIsLight" و/یا "ButtonPressed" قبل از پایان اسکریپت تغییر کند ، این فقط در مورد تغییرات دکمه فعال است ، زیرا در غیر این صورت بلافاصله سعی می کند موقعیت خود را اصلاح کند به این معنی که نابینایان باز می گردند. به حالت اولیه خود این فرآیند سپس حلقه می شود تا یک سیستم اتوماتیک قوی و نسبتاً ساده ایجاد شود ، که به راحتی می توان به آن اضافه کرد و اشکال زدایی کرد. پیو

مرحله 5: تکمیل لمس

لمس های نهایی
لمس های نهایی

بعداً تصمیم گرفتم با استفاده از چند رولپلاک و پیچ چوبی به عنوان "باتری" یک منبع تغذیه 9 ولت به EV3 خود متصل کنم ، این امر باعث می شود این محصول به باتری ها وابسته نباشد و از تعویض هر دو روز باتری جلوگیری کنم.

مرحله ششم: ارزیابی پروژه

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

توصیه شده: