جدول المحتويات:

فتح آلي للمكفوفين باستخدام EV3: 6 خطوات
فتح آلي للمكفوفين باستخدام EV3: 6 خطوات

فيديو: فتح آلي للمكفوفين باستخدام EV3: 6 خطوات

فيديو: فتح آلي للمكفوفين باستخدام EV3: 6 خطوات
فيديو: المشروع الاول: كيف تقوم بعمل روبوت تتبع بشري باستخدام الاردوينو مع البرمجة الخاصة بها 2024, يوليو
Anonim
الفتح الأوتوماتيكي للمكفوفين باستخدام EV3
الفتح الأوتوماتيكي للمكفوفين باستخدام EV3
الفتح الأوتوماتيكي للمكفوفين باستخدام EV3
الفتح الأوتوماتيكي للمكفوفين باستخدام EV3

لدي مجموعة من ستائر التعتيم الدوارة في غرفة نومي والتي غالبًا ما أنسى فتحها أو إغلاقها في الصباح أو في المساء. أريد أتمتة الافتتاح والإغلاق ، ولكن مع تجاوز عندما أتغير.

الخطوة 1: الأفكار أو الحلول المحتملة

بعد البحث في مواقع مختلفة مثل YouTube و Instructables و Thingiverse ، وجدت أن الحل الأكثر شيوعًا هو تشغيل البكرة التي تجرح وتزيل الستائر باستخدام محرك متدرج أو مؤازر. لقد وجدت خيارين رئيسيين لهما مزايا وعيوب مختلفة.

الفكرة 1: طريقة التخزين المؤقت حيث يوجد المحرك والتروس داخل البكرة. هذا له مزايا أنه طريقة أنيقة وأنيقة ، ولكن له عيوب أنه يتطلب تعديلًا كبيرًا للمكفوفين ، ولم يعد السلك قابلاً للاستخدام ، وسيكون من الصعب جدًا الوصول إلى التجميع للصيانة عند تنفيذه.

الفكرة 2: طريقة الحبل حيث يوجد المحرك والتروس على الحبل. يتميز هذا بأنه أبسط ويمكن الوصول إليه بسهولة. ومع ذلك ، فإن له عيبًا أنه قد يكون قبيحًا وضخمًا ، بالإضافة إلى حقيقة أنه يجب إرفاقه بالعتبة عند تنفيذه.

أفضل طريقة الحبل لأنها حل أبسط بكثير لا يمنع الاستخدام اليدوي للسلك ، ولن يتطلب المكفوفين أي تعديل كبير. أخطط لجعله سريًا ومضغوطًا قدر الإمكان عندما أقوم بعمل الإصدار النهائي باستخدام ESP8266.

الخطوة 2: عمل الجمعية

صنع الجمعية
صنع الجمعية
صنع الجمعية
صنع الجمعية

لقد أنجزت هذا المشروع باستخدام Lego mindstorms EV3 الخاص بي الذي يحتوي على وظائف أحتاجها لإظهار أن المشروع يمكن أن يعمل ، وأنا على دراية بالبرنامج الذي ساعد كثيرًا بالتأكيد. نظرًا لأن الستارة تستخدم سلسلة كروية لقيادة البكرة ، والتي لا تتوافق معها تروس Lego ، فقد قررت أن أفضل حل هو تصميم ترس بمسافة الكرة الصحيحة من الخارج - مع الفتحة القياسية "المتقاطعة" في المركز ، حيث سأقوم بعد ذلك بطباعة التصميم ثلاثي الأبعاد. في هذه المرحلة ، قمت أيضًا بعمل زر معايرة وقمت بإرفاق مستشعر ضوئي بنافذتي بالإضافة إلى زر ليكون بمثابة تجاوز.

الخطوة الثالثة: تصميم العتاد المكفوفين

تصميم معدات المكفوفين
تصميم معدات المكفوفين
تصميم معدات المكفوفين
تصميم معدات المكفوفين
تصميم معدات المكفوفين
تصميم معدات المكفوفين
تصميم معدات المكفوفين
تصميم معدات المكفوفين

فككت الستارة لأرى كيف بدا الساعد بمزيد من التفصيل. أثناء التفكيك ، وجدت ترسًا صغيرًا مكونًا من 16 سنًا تم تثبيته في مكانه بواسطة ملف مشدود ، وكان هذا هو الجزء الذي كنت أبحث عنه. بعد تصميم نسخة طبق الأصل من العتاد ، أضفت الثقوب المتوافقة مع Lego المطلوبة ، وطبعت الأجزاء الثلاثة المنفصلة وأخيراً ربطتها مع superglue. واجهت في البداية مشاكل في جعل جزء Lego متوافقًا ، بمعنى أن الطابعة ثلاثية الأبعاد الخاصة بي لم تكن لديها الدقة اللازمة لعمل ثقب "x" بشكل كافٍ ، ومع ذلك لم يكن لديها مشاكل مع الثقوب الدائرية على جانبيها. لذلك استبدلت حرف "x" بفتحة دائرية وطبعها بشكل جيد. بعد ذلك ، بعد قدر صغير من الاختبار ، تمكنت من رؤية أنه يمكنه التعامل مع عزم الدوران والوزن من الستارة. سأربط تصميماتي للمعدات أدناه أو يمكنك العثور عليها على Thingiverse على:

الخطوة 4: تشفير المكفوفين

ترميز المكفوفين
ترميز المكفوفين

كنت أرغب في رمز يقوم بفتح وإغلاق الستارة تلقائيًا عند وصولها إلى مستوى ضوء معين ، ولكن هذا أيضًا يحتوي على زر تجاوز بحيث لا يزال بإمكان المرء فتح أو إغلاق الستارة عندما يريد ذلك. لقد قمت بربط GitHub الخاص بي بالإصدار النهائي من الكود هنا:

استغرق رمز المشروع عدة أيام لإكماله ، وكان المنطق الأساسي للبرنامج يعمل بشكل صحيح مع مستشعر الضوء ، لكن زر التجاوز اللحظي لم يكن يعمل بشكل صحيح. لقد غيرت بالفعل حالة المكفوفين عند الضغط عليها ، لكنها تفتقر إلى وظيفة "الإغلاق" التي تعني أن المكفوفين سيظلون في الموضع - مما يعني أن المكفوفين سيعيدونه فورًا إلى ما كان عليه من قبل. لقد أصلحت هذا باستخدام كتلة "انتظار حتى" ، مرتبطة ببوابة منطقية أو بوابة تقرأ قيم مستشعر الضوء ومستشعر اللمس ، والتي سأشرحها أدناه.

يبدأ الرمز بمعايرة المحركات والمكفوفين ، بدءًا من الستارة مفتوحة بالكامل وخفضها حتى تصل إلى مستشعر اللمس في الأسفل ، مع حساب عدد الدورات التي تستغرق ربع دورة للوصول إلى الجزء السفلي ، والذي يتم حفظه باسم "الدورات المطلوبة" عامل. ثم يكتب "خطأ" إلى المتغير "BlindOpen" الذي يستخدم لتتبع موضع المكفوفين. في هذه المرحلة ، ينقسم الكود إلى 4 حلقات.

إحدى هذه الحلقات هي حلقة "Buttonstate" التي تنشر باستمرار حالة الزر إلى متغير يسمى "ButtonPressed". هذا يلغي الحاجة إلى وضع كتل أزرار متعددة على البرنامج النصي.

الحلقة الثانية هي "الضوء أو الظلام" التي تقارن باستمرار مستوى الضوء خارج نافذتي ، بثابت تم تحديده مسبقًا في الكود. إذا كانت النتيجة أقل من هذا الثابت ، فستكتب الحلقة "خطأ" إلى متغير "ItIsLight" ، بينما إذا كانت أعلى من القيمة فستكتب "صواب".

تحتوي الحلقة الثالثة على قائمة عددية من 3 خيارات والتي تخبر المكفوفين بشكل أساسي بما يجب عليهم فعله ، 0 = أعمى ، 1 = أعمى ، 2 = لا تفعل شيئًا لأن المكفوفين في المكان الصحيح. تبدأ الحلقة بقراءة متغير "BlindShould" الذي يحدد المهمة الصحيحة التي يجب على المكفوفين القيام بها ، ثم ينفذ هذه المهمة ، ويغير متغير "BlindOpen" إلى الخيار الصحيح ثم يصبح خاملاً حتى يتم تغيير المتغير "BlindShould" حيث يتكرر. إنها تستخدم قيمة "RotationsNeeded" بالإضافة إلى +/- 100٪ من الطاقة لتحريك الستارة المفتوحة أو المغلقة بالكامل.

الحلقة الرابعة والأخيرة هي الأكثر تعقيدًا ، وهي حلقة "Decider" التي تعالج جميع البيانات وتقرر ما يجب فعله مع كل تبديل. يقوم بذلك باستخدام "مفترقات في الطريق" القائمة على المنطق حيث يتم الضغط على الزر "،" مستوى الضوء ، "فتح أعمى" هي الأسئلة الصحيحة أو الخاطئة. جميع التباديل لها استجابة مشفرة صلبة ، والتي تكون إما 0 = أعمى ، 1 = أعمى أو 2 = لا تفعل شيئًا - هذه القيمة مكتوبة إلى المتغير "BlindShould" الذي يتم التعامل معه بعد ذلك بواسطة حلقة سابقة. ستنتظر بعض الردود بعد ذلك إما تغيير متغير "ItIsLight" و / أو "ButtonPressed" قبل الانتهاء من النص ، وهذا هو الحال فقط بالنسبة إلى التباديل الذي يتم تنشيطه للزر وإلا فإنه سيحاول على الفور تصحيح موضعه مما يعني أن المكفوفين سيعودون إلى حالتها الأصلية. يتم بعد ذلك تكرار هذه العملية لإنشاء نظام آلي قوي وبسيط نسبيًا ، والذي يمكن إضافته بسهولة وتصحيح أخطائه. تفو.

الخطوة 5: اللمسات الأخيرة

اللمسات الأخيرة
اللمسات الأخيرة

قررت بعد ذلك توصيل مصدر طاقة 9 فولت إلى EV3 الخاص بي باستخدام بعض المسامير والمسامير الخشبية مثل "البطاريات" ، مما جعل المنتج غير معتمد على البطاريات ومنعني من الاضطرار إلى تغيير البطاريات كل يومين.

الخطوة السادسة: تقييم المشروع

أعتقد أن المشروع سار بشكل جيد بشكل عام ، وانتهى بي الأمر بنموذج أولي يعمل لتجميع الستائر التلقائية ، والتي يمكنني أخذ جميع المعلومات ذات الصلة التي وجدتها أثناء المشروع وتنفيذها في الإصدار النهائي. لقد نجحت في ترميز الجهاز ، ولم أجد لاحقًا أي مشكلات رئيسية في الكود حتى الآن. كنت أرغب في جعل الجهاز أكثر جاذبية من الناحية المرئية ولكن مرة أخرى هو دليل على المفهوم وسأبذل بعض الجهد لجعله يبدو جيدًا عندما أصنع الإصدار النهائي باستخدام ESP8266. عندما أقوم بالمشروع مرة أخرى ، سأصمم المحرك ليجلس داخل الستارة لأنه سيكون من السهل إخفاء ذلك. أكبر درس تعلمته هو التصحيح المنطقي والتفكير في التعليمات البرمجية وتوثيقها واختبارها قبل تنفيذها.

موصى به: