- المواد المطلوبة:
- مفاهيم تابع الخط
- Raspberry Pi Line Follower مخطط دائرة روبوت وشرح:
- برمجة Raspberry PI الخاص بك:
- تابع تطبيق Raspberry Pi Line:
كما نعلم جميعًا ، فإن Raspberry Pi عبارة عن منصة تطوير رائعة تعتمد على معالج ARM. بفضل قدرته الحاسوبية العالية وخيارات التطوير ، يمكنه عمل العجائب في أيدي هواة الإلكترونيات أو الطلاب. لمعرفة المزيد حول Raspberry Pi وكيفية عمله ، دعونا نحاول بناء روبوت Line Follower باستخدام Raspberry Pi.
إذا كنت مهتمًا بالروبوتات ، فيجب أن تكون على دراية كبيرة باسم " Line Follower Robot ". هذا الروبوت قادر على تتبع خط ، فقط باستخدام زوج من أجهزة الاستشعار والمحركات. قد لا يبدو استخدام معالج دقيق قوي مثل Raspberry Pi فعالاً لبناء روبوت بسيط. لكن هذا الروبوت يمنحك مساحة لتطوير غير محدود والروبوتات مثل Kiva (روبوت مستودع أمازون) هي مثال على ذلك. يمكنك أيضًا التحقق من روبوتات متابعة الخطوط الأخرى لدينا:
- روبوت تابع الخط باستخدام متحكم 8051
- روبوت تابع الخط باستخدام Arduino
المواد المطلوبة:
- Raspberry Pi 3 (يجب أن يعمل أي نموذج)
- مستشعر الأشعة تحت الحمراء (2Nos)
- محرك تروس DC (عدد 2)
- سائق محرك L293D
- مقاعد (يمكنك أيضًا بناء كرسي خاص بك باستخدام الورق المقوى)
- بنك الطاقة (أي مصدر طاقة متاح)
مفاهيم تابع الخط
Line Follower Robot قادر على تتبع خط بمساعدة مستشعر الأشعة تحت الحمراء. يحتوي هذا المستشعر على جهاز إرسال IR وجهاز استقبال IR. يرسل مرسل IR (IR LED) الضوء وينتظر جهاز الاستقبال (Photodiode) الضوء المرسل للعودة مرة أخرى. لن يعود ضوء الأشعة تحت الحمراء إلا إذا انعكس بواسطة سطح ما. في حين أن جميع الأسطح لا تعكس ضوء الأشعة تحت الحمراء ، فإن اللون الأبيض فقط هو الذي يمكن أن يعكسها تمامًا وسيرصدها سطح اللون الأسود تمامًا كما هو موضح في الشكل أدناه. تعرف على المزيد حول وحدة مستشعر الأشعة تحت الحمراء هنا.
سنستخدم الآن مستشعرين يعملان بالأشعة تحت الحمراء للتحقق مما إذا كان الروبوت يسير على المسار الصحيح مع الخط ومحركين لتصحيح الروبوت إذا تحرك خارج المسار. تتطلب هذه المحركات تيارًا عاليًا ويجب أن تكون ثنائية الاتجاه ؛ ومن ثم نستخدم وحدة تشغيل محرك مثل L293D. سنحتاج أيضًا إلى جهاز حسابي مثل Raspberry Pi لتوجيه المحركات بناءً على القيم من مستشعر الأشعة تحت الحمراء. يظهر أدناه مخطط كتلة مبسط لنفسه.
سيتم وضع هذين المستشعرين بالأشعة تحت الحمراء واحدًا على جانبي الخط. إذا لم يكتشف أي من المستشعرات خطًا أسود ، فإن PI يوجه المحركات للمضي قدمًا كما هو موضح أدناه
إذا جاء المستشعر الأيسر على الخط الأسود ، فإن PI يوجه الروبوت إلى الالتفاف يسارًا بتدوير العجلة اليمنى وحدها.
إذا جاء المستشعر الأيمن على الخط الأسود ، فإن PI يوجه الروبوت إلى الدوران لليمين عن طريق تدوير العجلة اليسرى وحدها.
إذا ظهر كلا المستشعرين على خط أسود ، يتوقف الروبوت.
بهذه الطريقة ، سيتمكن الروبوت من متابعة الخط دون الخروج عن المسار. الآن دعونا نرى كيف تبدو الدائرة والكود.
Raspberry Pi Line Follower مخطط دائرة روبوت وشرح:
يظهر أدناه مخطط الدائرة الكاملة لروبوت Raspberry Pi Line Follower
كما ترون ، تشتمل الدائرة على مستشعر الأشعة تحت الحمراء وزوج من المحركات المتصلة بـ Raspberry pi. يتم تشغيل الدائرة الكاملة بواسطة بنك طاقة متنقل (تمثله بطارية AAA في الدائرة أعلاه).
نظرًا لعدم ذكر تفاصيل المسامير في Raspberry Pi ، نحتاج إلى التحقق من المسامير باستخدام الصورة أدناه
كما هو موضح في الصورة ، فإن دبوس الزاوية اليسرى العليا من PI هو دبوس + 5V ، نستخدم هذا الدبوس + 5V لتشغيل مستشعرات الأشعة تحت الحمراء كما هو موضح في مخطط الدائرة (سلكي أحمر). ثم نقوم بتوصيل المسامير الأرضية بأرض مستشعر الأشعة تحت الحمراء ووحدة محرك المحرك باستخدام سلك أسود. و يستخدم السلك الأصفر لتوصيل دبوس الناتج من أجهزة الاستشعار 1 و 2 إلى دبابيس GPIO و 3 على التوالي.
لقيادة المحركات ، نحتاج إلى أربعة دبابيس (A ، B ، A ، B). هذه الأربعة دبابيس متصلة من GPIO14 و 4 و 17 و 18 على التوالي. يشكل السلك البرتقالي والأبيض معًا التوصيل لمحرك واحد. لذلك لدينا زوجان من هذا القبيل لمحركين.
يتم توصيل المحركات بوحدة L293D Motor Driver كما هو موضح في الصورة ويتم تشغيل وحدة التشغيل بواسطة بنك طاقة. تأكد من توصيل أرضية بنك الطاقة بأرض Raspberry Pi ، عندها فقط سيعمل اتصالك.
برمجة Raspberry PI الخاص بك:
بمجرد الانتهاء من التجميع والوصلات ، يجب أن يبدو الروبوت الخاص بك شيئًا كهذا.
حان الوقت الآن لبرمجة الروبوت وتشغيله. يمكن العثور على الكود الكامل لهذا الروبوت في الجزء السفلي من هذا البرنامج التعليمي. تعرف على المزيد حول البرنامج وتشغيل الكود في Raspberry Pi هنا. يتم شرح الخطوط الهامة أدناه
سنقوم باستيراد ملف GPIO من المكتبة ، وتمكننا الوظيفة أدناه من برمجة دبابيس GPIO في PI. نقوم أيضًا بإعادة تسمية "GPIO" إلى "IO" ، لذلك في البرنامج عندما نريد الإشارة إلى دبابيس GPIO ، سنستخدم كلمة "IO".
استيراد RPi.GPIO كـ IO
في بعض الأحيان ، عندما تقوم دبابيس GPIO ، التي نحاول استخدامها ، ببعض الوظائف الأخرى. في هذه الحالة ، سوف نتلقى تحذيرات أثناء تنفيذ البرنامج. يخبر الأمر أدناه PI بتجاهل التحذيرات ومتابعة البرنامج.
تحذيرات IO.set (خطأ)
يمكننا إحالة دبابيس GPIO الخاصة بـ PI ، إما عن طريق رقم التعريف الشخصي على اللوحة أو عن طريق رقم وظيفتها. مثل "PIN 29" على السبورة هو "GPIO5". لذلك نقول هنا إما أننا سنمثل الدبوس هنا بـ "29" أو "5".
IO.setmode (IO.BCM)
نحن نضع 6 دبابيس كدبابيس إدخال / إخراج. أول دبابيس هما دبابيس الإدخال لقراءة مستشعر الأشعة تحت الحمراء. الأربعة التالية هي دبابيس الإخراج التي يتم استخدام أول اثنين منها للتحكم في المحرك الأيمن والاثنان التاليان للمحرك الأيسر.
IO.setup (2، IO.IN) #GPIO 2 -> Left IR out IO.setup (3، IO.IN) #GPIO 3 -> Right IR out IO.setup (4، IO.OUT) #GPIO 4 - > Motor 1 terminal A IO.setup (14، IO.OUT) #GPIO 14 -> Motor 1 terminal B IO.setup (17، IO.OUT) #GPIO 17 -> Motor Left terminal A IO.setup (18، IO.OUT) #GPIO 18 -> المحرك الأيسر محطة ب
يخرج مستشعر الأشعة تحت الحمراء "True" إذا كان فوق سطح أبيض. طالما أن كلا المستشعرين يقول صحيح ، يمكننا المضي قدمًا.
إذا كان (IO.input (2) == True و IO.input (3) == True): # كل من الأبيض يتحرك للأمام IO الناتج (4 ، صحيح) # 1A + IO الناتج (14 ، خطأ) # 1B- IO. Output (17، True) # 2A + IO.output (18، False) # 2B-
علينا أن نتحول إلى اليمين إذا تجاوز مستشعر الأشعة تحت الحمراء خطًا أسود. يتم ذلك من خلال قراءة مستشعر الأشعة تحت الحمراء وإذا تم استيفاء الحالة ، نوقف المحرك الأيمن وندير المحرك الأيسر وحده كما هو موضح في الكود أدناه
elif (IO.input (2) == False and IO.input (3) == True): #turn right IO.output (4، True) # 1A + IO.output (14، True) # 1B- IO.output (17 ، صحيح) # 2A + IO الناتج (18 ، خطأ) # 2B-
علينا أن نتحول إلى اليسار إذا تجاوز مستشعر الأشعة تحت الحمراء الثاني خطًا أسود. يتم ذلك من خلال قراءة مستشعر الأشعة تحت الحمراء وإذا تم استيفاء الحالة ، نوقف المحرك الأيسر وندير المحرك الأيمن وحده كما هو موضح في الكود أدناه
elif (IO.input (2) == True و IO.input (3) == False): #t turn left IO.output (4، True) # 1A + IO.output (14، False) # 1B- IO.output (17 ، صحيح) # 2A + IO الناتج (18 ، صحيح) # 2B-
إذا تجاوز كلا المستشعرين خطًا أسود ، فهذا يعني أن الروبوت يجب أن يتوقف. يمكن القيام بذلك عن طريق جعل طرفي المحرك صحيحين كما هو موضح في الكود أدناه
else: #stay still IO.output (4، True) # 1A + IO.output (14، True) # 1B- IO Output (17، True) # 2A + IO.output (18، True) # 2B-
تابع تطبيق Raspberry Pi Line:
قم بتحميل كود python لمتابع الخط إلى Raspberry Pi الخاص بك وقم بتشغيله. نحتاج إلى مصدر طاقة محمول ، يصبح بنك الطاقة في هذه الحالة مفيدًا ومن ثم استخدمت نفس الشيء. يأتي الجهاز الذي أستخدمه مزودًا بمنفذي USB ، لذا فقد اعتدت على تشغيل PI والآخر لتشغيل Power Motor Driver كما هو موضح في الصورة أدناه.
الآن كل ما عليك فعله هو إعداد مسار اللون الأسود الخاص بك وإطلاق الروبوت الخاص بك فوقه. لقد استخدمت شريط عازل باللون الأسود لإنشاء مسار يمكنك استخدام أي مادة سوداء اللون ، ولكن تأكد من أن لون الأرض ليس غامقًا.
يمكن العثور على عمل الروبوت الكامل في الفيديو أدناه. آمل أن تكون قد فهمت المشروع واستمتعت ببناء واحد. إذا كان لديك أي أسئلة ، فقم بنشرها في قسم التعليقات أدناه.