كيف تحرك الأطباق حول رف مطبخك باستخدام الروبوت؟

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



الروبوت المنزلي

كيف توصل جميع الأجهزة الطرفية اللازمة لصنع روبوت محلي؟

الآن ، نحتاج إلى جمع المكونات المطلوبة والبدء في صنع الروبوت.



الخطوة 1: المكونات المستخدمة

  • اردوينو أونو
  • مستشعر الأشعة تحت الحمراء (x5)
  • دي سي موتورز
  • مطاردات عجلة السيارة
  • شريط اسود
  • أسلاك العبور
  • بطارية DC
  • مسدس الغراء
  • مجموعة مفك البراغي

الخطوة الثانية: دراسة المكونات

نظرًا لأننا قمنا بالفعل بإعداد قائمة بالمكونات ، فلنتحرك خطوة للأمام وننتقل إلى دراسة موجزة لعمل كل مكون.



ال اردوينو UNO عبارة عن لوحة تحكم دقيقة تتكون من رقاقة ATMega 328P تم تطويرها بواسطة Arduino.cc. تحتوي هذه اللوحة على مجموعة من دبابيس البيانات الرقمية والتناظرية التي يمكن ربطها بلوحات أو دوائر توسعة أخرى. تحتوي هذه اللوحة على 14 دبوسًا رقميًا و 6 دبابيس تناظرية وقابلة للبرمجة باستخدام Arduino IDE (بيئة التطوير المتكاملة) عبر كبل USB من النوع B. يتطلب 5V إلى السلطة على و أ كود C ليشغل.



اردوينو UNO

يستخدم L298N Motor Driver لتشغيل DC Motors. L298N هو محرك محرك مزدوج H-Bridge يسمح بالتحكم في السرعة والاتجاه لمحركين من محركات التيار المستمر في نفس الوقت. يمكن للوحدة أن تدفع محركات التيار المستمر ذات الفولتية بين 5 و 35 فولت ، مع تيار ذروة يصل إلى 2 أمبير. يعتمد ذلك على الجهد المستخدم في المحركات الطرفية VCC. في مشروعنا ، سيتم استخدام دبوس 5 فولت كمدخل حيث نحتاج إلى توصيله بمصدر طاقة 5 فولت حتى يعمل IC بشكل صحيح. مخطط دائرة محرك L298N مع توصيل محركات التيار المستمر موضح أدناه لفهم آلية محرك L298N. بالنسبة إلى العرض التوضيحي ، يتم تقديم المدخلات من دولة المنطق بدلا من مجسات الأشعة تحت الحمراء.

مخطط الدائرة مصنوع على Proteus 8 Professional



الخطوة 3: فهم مخطط الكتلة ومبدأ العمل

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

مخطط كتلة

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

  1. إلى الأمام على الخط: عندما يكون المستشعر الأوسط على السطح الأسود وبقية المستشعرات على السطح الأبيض ، سيتم تنفيذ الحالة الأمامية وسيتحرك الروبوت للأمام بشكل مستقيم. إذا بدأنا من جهاز الاستشعار 1 والمضي قدما حتى Sensor5 ، القيمة التي سيعطيها كل من أجهزة الاستشعار على التوالي (1 1 0 1 1) .
  2. انعطاف يمين حاد: عندما المستشعر 1 و المستشعر 2 على السطح الأبيض وبقية المستشعرات على السطح الأسود ، وسيتم تنفيذ حالة الانعطاف اليمنى الحادة وسيتحول الروبوت إلى اليمين. إذا بدأنا من جهاز الاستشعار 1 والمضي قدما حتى Sensor5 ، القيمة التي سيعطيها كل من أجهزة الاستشعار على التوالي (1 1 0 0 0).
  3. انعطاف حاد إلى اليسار: عندما المستشعر 4 و المستشعر 5 على السطح الأبيض وبقية المستشعرات على السطح الأسود ، وسيتم تنفيذ حالة الانعطاف إلى اليسار الحاد وسيتحول الروبوت إلى اليسار الحاد. إذا بدأنا من جهاز الاستشعار 1 والمضي قدما حتى Sensor5 ، القيمة التي سيعطيها كل من أجهزة الاستشعار على التوالي (0 0 0 1 1) .
  4. قف: عندما تكون جميع أجهزة الاستشعار الخمسة على السطح الأسود ، سيتوقف الروبوت وستدور المحركات إيقاف. ستكون هذه النقطة ذات الأسطح الخمسة السوداء بالقرب من الحوض حتى تتمكن غسالة الأطباق من تفريغ الألواح من الروبوت لغسلها.

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

مسار الروبوت

الخطوة 4: بدء استخدام Arduino

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

  1. عندما تكون لوحة Arduino متصلة بجهاز الكمبيوتر الخاص بك ، افتح 'لوحة التحكم' وانقر على 'الأجهزة والصوت'. ثم انقر فوق 'الأجهزة والطابعات'. ابحث عن اسم المنفذ الذي تتصل به لوحة Arduino. في حالتي هو “COM14” ولكنه قد يكون مختلفًا على جهاز الكمبيوتر الخاص بك.

    البحث عن ميناء

  2. الآن افتح Arduino IDE. من الأدوات ، اضبط لوحة Arduino على اردوينو / جينوينو أونو.

    لوحة الإعداد

  3. من نفس قائمة الأداة ، اضبط رقم المنفذ الذي رأيته في لوحة التحكم.

    منفذ الإعداد

  4. قم بتنزيل الكود المرفق أدناه وانسخه إلى IDE الخاص بك. لتحميل الكود ، اضغط على زر التحميل.

يمكنك تنزيل الكود من هنا

الخطوة 5: فهم المدونة

الكود بسيط جدا يتم شرحه بإيجاز أدناه:

  1. في بداية الكود ، تتم تهيئة دبابيس المستشعر جنبًا إلى جنب مع ذلك ، يتم أيضًا تهيئة المسامير الخاصة بمحرك المحرك L298N.
    int enable1pin = 10 ؛ // تهيئة PWM Pin للإدخال التناظري للمحرك 1 int motor1pin1 = 2 ؛ // تهيئة دبوس إيجابي للمحرك 1 int motor1pin2 = 3 ؛ // تهيئة الدبوس السلبي للمحرك 1 int enable2pin = 11 ؛ // تهيئة PWM Pin للإدخال التناظري للمحرك 2 int motor2pin1 = 4 ؛ // تهيئة دبوس إيجابي للمحرك 2 int motor2pin2 = 5 ؛ // تهيئة الدبوس السلبي للمحرك 2 int S1 = 12 ؛ // تهيئة الدبوس 12 للمستشعر 1 int S2 = 9 ؛ // تهيئة Pin 9 للمستشعر 2 int S3 = 8 ؛ // تهيئة Pin 8 للمستشعر 3 int S4 = 7 ؛ // تهيئة Pin 7 للمستشعر 4 int S5 = 6 ؛ // تهيئة الدبوس 6 لجهاز الاستشعار 5
  2. الإعداد باطل() هي وظيفة تُستخدم لضبط المسامير على أنها INPUT أو OUTPUT. كما أنه يحدد معدل الباود في Arduino. معدل الباود هو السرعة التي تتواصل بها لوحة وحدة التحكم الدقيقة مع المكونات الأخرى المرفقة.
    {pinMode (enable1pin ، الإخراج) ؛ // تمكين PWM للمحرك 1 pinMode (enable2pin ، الإخراج) ؛ // تمكين PWM للمحرك 2 pinMode (motor1pin1 ، الإخراج) ؛ // إعداد المحرك 1 pin1 كإخراج pinMode (motor1pin2 ، الإخراج) ؛ // إعداد المحرك 1 pin2 كإخراج pinMode (motor2pin1 ، الإخراج) ؛ // إعداد المحرك 2 pin1 كإخراج pinMode (motor2pin2 ، الإخراج) ؛ // إعداد المحرك 2 pin2 كإخراج pinMode (S1 ، INPUT) ؛ // إعداد المستشعر 1 كوضع إدخال pinMode (S2 ، INPUT) ؛ // إعداد المستشعر 2 كدخل pinMode (S3 ، INPUT) ؛ // إعداد المستشعر 3 كدخل pinMode (S4 ، INPUT) ؛ // إعداد المستشعر 4 كوضع إدخال pinMode (S5 ، INPUT) ؛ // إعداد المستشعر 5 كمدخل Serial.begin (9600) ؛ // ضبط معدل الباود}
  3. حلقة فارغة() هي وظيفة تعمل مرارًا وتكرارًا في دورة. في هذه الحلقة ، نقدم تعليمات إلى Arduino UNO بشأن العمليات التي يجب تنفيذها. السرعة القصوى للمحرك هي 255 ولكلا المحركين سرعة مختلفة. لذا ، إذا أردنا تحريك الروبوت للأمام ، واستدر لليمين وما إلى ذلك ، فنحن بحاجة إلى ضبط سرعة المحركات. لقد استخدمنا دبابيس تناظرية في الكود لأننا نريد تغيير سرعة المحركين في ظروف مختلفة. يمكنك ضبط سرعة محركاتك بنفسك.
    حلقة باطلة () {if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) // Forward on السطر {analogWrite (enable1pin، 61) ؛ // سرعة المحرك 1 analogWrite (enable2pin ، 63) ؛ // محرك رقمي 2 سرعات (motor1pin1 ، عالي) ؛ // Motor 1 pin 1 set to High digitalWrite (motor1pin2 ، LOW) ؛ // المحرك 1 pin 2 مضبوط على Low digitalWrite (motor2pin1 ، HIGH) ؛ // المحرك 2 pin 1 set to high digitalWrite (motor2pin2 ، LOW) ؛ // المحرك 2 pin 2 مضبوط على Low} if (! (digitalRead (S1)) &&! (digitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) / / Sharp Right Turn {analogWrite (enable1pin، 60) ؛ // سرعة المحرك 1 analogWrite (enable2pin ، 80) ؛ // محرك رقمي 2 سرعات (motor1pin1 ، عالي) ؛ // Motor 1 pin 1 set to High digitalWrite (motor1pin2 ، LOW) ؛ // المحرك 1 دبوس 2 مضبوط على الكتابة الرقمية المنخفضة (motor2pin1 ، LOW) ؛ // المحرك 2 pin 1 set to low digitalWrite (motor2pin2، LOW) ؛ // المحرك 2 pin 2 مضبوط على Low} if ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) &&! (digitalRead (S4)) &&! (digitalRead (S5))) / / Sharp Left Turn {analogWrite (enable1pin، 80) ؛ // سرعة المحرك 1 analogWrite (enable2pin ، 65) ؛ // محرك رقمي 2 سرعات (motor1pin1 ، LOW) ؛ // المحرك 1 دبوس 1 مضبوط على الكتابة الرقمية المنخفضة (motor1pin2 ، LOW) ؛ // المحرك 1 pin 2 مضبوط على Low digitalWrite (motor2pin1 ، HIGH) ؛ // المحرك 2 pin 1 set to high digitalWrite (motor2pin2 ، LOW) ؛ // المحرك 2 pin 2 مضبوط على Low} إذا ((digitalRead (S1)) && (digitalRead (S2)) && (digitalRead (S3)) && (digitalRead (S4)) && (digitalRead (S5))) // stop {analogWrite (enable1pin، 0) ؛ // سرعة المحرك 1 analogWrite (enable2pin ، 0) ؛ // محرك رقمي 2 سرعات (motor1pin1 ، LOW) ؛ // المحرك 1 دبوس 1 مضبوط على الكتابة الرقمية المنخفضة (motor1pin2 ، LOW) ؛ // المحرك 1 دبوس 2 مضبوط على الكتابة الرقمية المنخفضة (motor2pin1 ، LOW) ؛ // المحرك 2 pin 1 set to low digitalWrite (motor2pin2، LOW) ؛ // تم ضبط المحرك 2 pin 2 على Low}}

التطبيقات

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